Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Changes from slim-launcher v2.4.21 #124

Merged
merged 4 commits into from
Sep 5, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 11 additions & 13 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,13 @@ plugins {
}

android {
compileSdkVersion(30)
compileSdkVersion(31)
defaultConfig {
applicationId = "com.jkuester.unlauncher"
minSdkVersion(21)
targetSdkVersion(30)
targetSdkVersion(31)
versionName = "2.0.0-beta.1"
versionCode = 15
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables { useSupportLibrary = true }
// signingConfigs {
// if (project.extra.has("RELEASE_STORE_FILE")) {
Expand Down Expand Up @@ -70,19 +69,19 @@ dependencies {
implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar"))))

// Kotlin Libraries
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.72")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.21")

// Support Libraries
implementation("androidx.appcompat:appcompat:1.2.0")
implementation("androidx.recyclerview:recyclerview:1.1.0")
implementation("androidx.constraintlayout:constraintlayout:2.0.1")
implementation("androidx.appcompat:appcompat:1.3.1")
implementation("androidx.recyclerview:recyclerview:1.2.1")
implementation("androidx.constraintlayout:constraintlayout:2.1.0")
implementation("androidx.datastore:datastore:1.0.0")
implementation("androidx.datastore:datastore-core:1.0.0")
implementation("com.google.protobuf:protobuf-javalite:3.10.0")

// Arch Components
implementation("androidx.core:core-ktx:1.5.0-alpha03")
implementation("androidx.fragment:fragment-ktx:1.2.5")
implementation("androidx.core:core-ktx:1.7.0-beta01")
implementation("androidx.fragment:fragment-ktx:1.3.6")
implementation("androidx.lifecycle:lifecycle-extensions:2.2.0")
implementation("androidx.navigation:navigation-fragment-ktx:2.3.0")
implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.3.1")
Expand All @@ -93,10 +92,9 @@ dependencies {
//3rd party libs
implementation("com.intuit.sdp:sdp-android:1.0.6")
implementation("com.intuit.ssp:ssp-android:1.0.6")
implementation("com.google.dagger:hilt-android:2.29-alpha")
implementation("androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha02")
kapt("androidx.hilt:hilt-compiler:1.0.0-alpha02")
kapt("com.google.dagger:hilt-android-compiler:2.29-alpha")
implementation("com.google.dagger:hilt-android:2.35")
kapt("androidx.hilt:hilt-compiler:1.0.0")
kapt("com.google.dagger:hilt-android-compiler:2.35")
}
protobuf {
protoc {
Expand Down
3 changes: 2 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:stateNotNeeded="true"
tools:ignore="LockedOrientationActivity">
tools:ignore="LockedOrientationActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

Expand Down
4 changes: 0 additions & 4 deletions app/src/main/java/com/sduduzog/slimlauncher/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,8 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.constraintlayout.motion.widget.MotionLayout
import androidx.navigation.NavController
import androidx.navigation.Navigation.findNavController
import com.sduduzog.slimlauncher.di.MainFragmentFactoryEntryPoint
import com.sduduzog.slimlauncher.utils.*
import dagger.hilt.android.AndroidEntryPoint
import dagger.hilt.android.EntryPointAccessors
import java.lang.reflect.Method
import kotlin.math.absoluteValue

Expand Down Expand Up @@ -58,8 +56,6 @@ class MainActivity : AppCompatActivity(),
}

override fun onCreate(savedInstanceState: Bundle?) {
val entryPoint = EntryPointAccessors.fromActivity(this, MainFragmentFactoryEntryPoint::class.java)
supportFragmentManager.fragmentFactory = entryPoint.getMainFragmentFactory()
super.onCreate(savedInstanceState)
setContentView(R.layout.main_activity)
settings = getSharedPreferences(getString(R.string.prefs_settings), MODE_PRIVATE)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ abstract class BaseDatabase : RoomDatabase() {
val MIGRATION_7_8 = object : Migration(7, 8){
override fun migrate(database: SupportSQLiteDatabase) {
val userSerial = Process.myUserHandle().hashCode()
database.execSQL("ALTER TABLE `home_apps` ADD COLUMN `user_serial` INTEGER NOT NULL DEFAULT " + userSerial.toString())
database.execSQL("ALTER TABLE `home_apps` ADD COLUMN `user_serial` INTEGER NOT NULL DEFAULT $userSerial")

database.execSQL("CREATE TABLE home_apps_copy(" +
"package_name TEXT NOT NULL, " +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import dagger.hilt.components.SingletonComponent
import javax.inject.Singleton

@Module
@InstallIn(SingletonComponent::class) // TODO: wip
@InstallIn(SingletonComponent::class)
class AppModule {
@Provides
@Singleton
Expand Down

This file was deleted.

This file was deleted.

19 changes: 19 additions & 0 deletions app/src/main/java/com/sduduzog/slimlauncher/di/RepositoryModule.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.sduduzog.slimlauncher.di

import com.sduduzog.slimlauncher.data.BaseDao
import com.sduduzog.slimlauncher.models.Repository
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.components.ViewModelComponent
import dagger.hilt.android.scopes.ViewModelScoped

@Module
@InstallIn(ViewModelComponent::class)
class RepositoryModule {
@Provides
@ViewModelScoped
fun providesRepository(baseDao: BaseDao): Repository {
return Repository(baseDao)
}
}
Original file line number Diff line number Diff line change
@@ -1,14 +1,19 @@
package com.sduduzog.slimlauncher.models

import androidx.hilt.lifecycle.ViewModelInject
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModel
import com.sduduzog.slimlauncher.data.BaseDao
import androidx.lifecycle.viewModelScope
import com.sduduzog.slimlauncher.data.model.App

class AddAppViewModel @ViewModelInject constructor (baseDao: BaseDao) : ViewModel() {
private val repository = Repository(baseDao)
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import javax.inject.Inject

@HiltViewModel
class AddAppViewModel @Inject constructor(
private val repository: Repository
) : ViewModel() {
private var filterQuery = ""
private val regex = Regex("[!@#\$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>/? ]")
private val _installedApps = mutableListOf<App>()
Expand All @@ -31,7 +36,9 @@ class AddAppViewModel @ViewModelInject constructor (baseDao: BaseDao) : ViewMode

private fun updateDisplayedApps() {
val filteredApps = _installedApps.filterNot { _homeApps.contains(it) }
this.apps.postValue(filteredApps.filter { regex.replace(it.appName, "").contains(filterQuery, ignoreCase = true) })
this.apps.postValue(filteredApps.filter {
regex.replace(it.appName, "").contains(filterQuery, ignoreCase = true)
})
}

fun setInstalledApps(apps: List<App>) {
Expand All @@ -42,7 +49,9 @@ class AddAppViewModel @ViewModelInject constructor (baseDao: BaseDao) : ViewMode

fun addAppToHomeScreen(app: App) {
val index = _homeApps.size
repository.add(HomeApp.from(app, index))
viewModelScope.launch(Dispatchers.IO) {
repository.add(HomeApp.from(app, index))
}
}

override fun onCleared() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,35 +1,43 @@
package com.sduduzog.slimlauncher.models

import androidx.hilt.lifecycle.ViewModelInject
import androidx.lifecycle.LiveData
import androidx.lifecycle.ViewModel
import com.sduduzog.slimlauncher.data.BaseDao
import androidx.lifecycle.viewModelScope
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import javax.inject.Inject

class CustomiseAppsViewModel @ViewModelInject constructor(baseDao: BaseDao) : ViewModel() {
@HiltViewModel
class CustomiseAppsViewModel @Inject constructor(
private val repository: Repository
) : ViewModel() {

private val repository = Repository(baseDao)
private var _apps: LiveData<List<HomeApp>>

init {
_apps = repository.apps
}
private var _apps: LiveData<List<HomeApp>> = repository.apps

val apps: LiveData<List<HomeApp>>
get() = _apps

fun update(vararg args: HomeApp) {
repository.update(*args)
viewModelScope.launch(Dispatchers.IO) {
repository.update(*args)
}
}

fun reset(homeApp: HomeApp) {
homeApp.appNickname = null
update(homeApp)
}

fun remove(app: HomeApp) {
repository.remove(app)
viewModelScope.launch(Dispatchers.IO) {
repository.remove(app)
}
}

fun clearTable(){
repository.clearTable()
fun clearTable() {
viewModelScope.launch(Dispatchers.IO) {
repository.clearTable()
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,27 +2,16 @@ package com.sduduzog.slimlauncher.models

import androidx.lifecycle.LiveData
import androidx.lifecycle.ViewModel
import com.sduduzog.slimlauncher.data.BaseDao
import com.sduduzog.slimlauncher.data.model.App
import dagger.hilt.android.lifecycle.HiltViewModel
import javax.inject.Inject

class MainViewModel @Inject constructor(baseDao: BaseDao) : ViewModel() {
@HiltViewModel
class MainViewModel @Inject constructor(
_baseRepository: Repository
) : ViewModel() {

private val _baseRepository = Repository(baseDao)

private var _apps: LiveData<List<HomeApp>>

init {
_apps = _baseRepository.apps
}
private var _apps: LiveData<List<HomeApp>> = _baseRepository.apps

val apps: LiveData<List<HomeApp>>
get() = _apps

val addAppViewModel = AddAppViewModel(baseDao)

fun add(app: App) {
val index = _apps.value!!.size
_baseRepository.add(HomeApp.from(app, index))
}
}
42 changes: 4 additions & 38 deletions app/src/main/java/com/sduduzog/slimlauncher/models/Repository.kt
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
package com.sduduzog.slimlauncher.models

import android.os.AsyncTask
import androidx.lifecycle.LiveData
import com.sduduzog.slimlauncher.data.BaseDao
import javax.inject.Singleton

class Repository(private val baseDao: BaseDao) {

Expand All @@ -13,50 +11,18 @@ class Repository(private val baseDao: BaseDao) {
get() = _apps

fun add(app: HomeApp) {
AddAppAsyncTask(baseDao).execute(app)
baseDao.add(app)
}

fun update(vararg list : HomeApp) {
UpdateAppAsyncTask(baseDao).execute(*list)
baseDao.update(*list)
}

fun remove(app: HomeApp) {
RemoveAppAsyncTask(baseDao).execute(app)
baseDao.remove(app)
}

fun clearTable(){
ClearTableAsyncTask(baseDao).execute()
}

private class AddAppAsyncTask(private val mAsyncTaskDao: BaseDao) : AsyncTask<HomeApp, Void, Void>() {

override fun doInBackground(vararg params: HomeApp): Void? {
mAsyncTaskDao.add(params[0])
return null
}
}

private class UpdateAppAsyncTask(private val mAsyncTaskDao: BaseDao) : AsyncTask<HomeApp, Void, Void>() {

override fun doInBackground(vararg params: HomeApp): Void? {
mAsyncTaskDao.update(*params)
return null
}
}

private class RemoveAppAsyncTask(private val mAsyncTaskDao: BaseDao) : AsyncTask<HomeApp, Void, Void>() {

override fun doInBackground(vararg params: HomeApp): Void? {
mAsyncTaskDao.remove(params[0])
return null
}
}

private class ClearTableAsyncTask(private val mAsyncTaskDao: BaseDao) : AsyncTask<Void, Void, Void>() {

override fun doInBackground(vararg params: Void): Void? {
mAsyncTaskDao.clearTable()
return null
}
baseDao.clearTable()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import android.view.ViewGroup
import android.view.inputmethod.InputMethodManager
import androidx.constraintlayout.motion.widget.MotionLayout
import androidx.constraintlayout.motion.widget.MotionLayout.TransitionListener
import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope
import androidx.navigation.Navigation
import androidx.recyclerview.widget.LinearLayoutManager
Expand All @@ -36,10 +37,12 @@ import java.util.*
import javax.inject.Inject

@AndroidEntryPoint
class HomeFragment(private val viewModel: MainViewModel) : BaseFragment(), OnLaunchAppListener {
class HomeFragment : BaseFragment(), OnLaunchAppListener {
@Inject
lateinit var unlauncherDataSource: UnlauncherDataSource

private val viewModel: MainViewModel by viewModels()

private lateinit var receiver: BroadcastReceiver
private lateinit var appDrawerAdapter: AppDrawerAdapter

Expand Down
Loading