Kaynağa Gözat

Changes from slim-launcher v2.4.21 (#124)

Joshua Kuestersteffen 3 yıl önce
ebeveyn
işleme
4e8fac641a
29 değiştirilmiş dosya ile 111 ekleme ve 191 silme
  1. 11 13
      app/build.gradle.kts
  2. 2 1
      app/src/main/AndroidManifest.xml
  3. 0 4
      app/src/main/java/com/sduduzog/slimlauncher/MainActivity.kt
  4. 1 1
      app/src/main/java/com/sduduzog/slimlauncher/data/BaseDatabase.kt
  5. 1 1
      app/src/main/java/com/sduduzog/slimlauncher/di/AppModule.kt
  6. 0 16
      app/src/main/java/com/sduduzog/slimlauncher/di/MainFragmentFactory.kt
  7. 0 11
      app/src/main/java/com/sduduzog/slimlauncher/di/MainFragmentFactoryEntryPoint.kt
  8. 19 0
      app/src/main/java/com/sduduzog/slimlauncher/di/RepositoryModule.kt
  9. 16 7
      app/src/main/java/com/sduduzog/slimlauncher/models/AddAppViewModel.kt
  10. 21 13
      app/src/main/java/com/sduduzog/slimlauncher/models/CustomiseAppsViewModel.kt
  11. 6 17
      app/src/main/java/com/sduduzog/slimlauncher/models/MainViewModel.kt
  12. 4 38
      app/src/main/java/com/sduduzog/slimlauncher/models/Repository.kt
  13. 4 1
      app/src/main/java/com/sduduzog/slimlauncher/ui/main/HomeFragment.kt
  14. 3 14
      app/src/main/java/com/sduduzog/slimlauncher/ui/options/AddAppFragment.kt
  15. 0 1
      app/src/main/java/com/sduduzog/slimlauncher/ui/options/CustomiseAppsFragment.kt
  16. 2 7
      app/src/main/java/com/sduduzog/slimlauncher/ui/options/OptionsFragment.kt
  17. 5 5
      app/src/main/java/com/sduduzog/slimlauncher/utils/BaseFragment.kt
  18. 14 29
      app/src/main/res/layout/options_fragment.xml
  19. 0 1
      app/src/main/res/values-de/strings.xml
  20. 0 1
      app/src/main/res/values-fr/strings.xml
  21. 0 1
      app/src/main/res/values-it/strings.xml
  22. 0 1
      app/src/main/res/values-nb/strings.xml
  23. 0 1
      app/src/main/res/values-nl/strings.xml
  24. 0 1
      app/src/main/res/values-ru/strings.xml
  25. 0 1
      app/src/main/res/values-uk/strings.xml
  26. 0 1
      app/src/main/res/values-zh-rCN/strings.xml
  27. 0 1
      app/src/main/res/values-zh-rTW/strings.xml
  28. 0 1
      app/src/main/res/values/strings.xml
  29. 2 2
      build.gradle.kts

+ 11 - 13
app/build.gradle.kts

@@ -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")) {
@@ -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")
@@ -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 {

+ 2 - 1
app/src/main/AndroidManifest.xml

@@ -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" />
 

+ 0 - 4
app/src/main/java/com/sduduzog/slimlauncher/MainActivity.kt

@@ -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
 
@@ -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)

+ 1 - 1
app/src/main/java/com/sduduzog/slimlauncher/data/BaseDatabase.kt

@@ -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, " +

+ 1 - 1
app/src/main/java/com/sduduzog/slimlauncher/di/AppModule.kt

@@ -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

+ 0 - 16
app/src/main/java/com/sduduzog/slimlauncher/di/MainFragmentFactory.kt

@@ -1,16 +0,0 @@
-package com.sduduzog.slimlauncher.di
-
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.FragmentFactory
-import com.sduduzog.slimlauncher.models.MainViewModel
-import com.sduduzog.slimlauncher.ui.main.HomeFragment
-import javax.inject.Inject
-
-class MainFragmentFactory @Inject constructor(private val mainViewModel: MainViewModel): FragmentFactory() {
-    override fun instantiate(classLoader: ClassLoader, className: String): Fragment {
-        return when(loadFragmentClass(classLoader, className)) {
-            HomeFragment::class.java -> HomeFragment(mainViewModel)
-            else -> super.instantiate(classLoader, className)
-        }
-    }
-}

+ 0 - 11
app/src/main/java/com/sduduzog/slimlauncher/di/MainFragmentFactoryEntryPoint.kt

@@ -1,11 +0,0 @@
-package com.sduduzog.slimlauncher.di
-
-import dagger.hilt.EntryPoint
-import dagger.hilt.InstallIn
-import dagger.hilt.android.components.ActivityComponent
-
-@EntryPoint
-@InstallIn(ActivityComponent::class)
-interface MainFragmentFactoryEntryPoint {
-    fun getMainFragmentFactory(): MainFragmentFactory
-}

+ 19 - 0
app/src/main/java/com/sduduzog/slimlauncher/di/RepositoryModule.kt

@@ -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)
+    }
+}

+ 16 - 7
app/src/main/java/com/sduduzog/slimlauncher/models/AddAppViewModel.kt

@@ -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>()
@@ -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>) {
@@ -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() {

+ 21 - 13
app/src/main/java/com/sduduzog/slimlauncher/models/CustomiseAppsViewModel.kt

@@ -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()
+        }
     }
 }

+ 6 - 17
app/src/main/java/com/sduduzog/slimlauncher/models/MainViewModel.kt

@@ -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))
-    }
 }

+ 4 - 38
app/src/main/java/com/sduduzog/slimlauncher/models/Repository.kt

@@ -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) {
 
@@ -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()
     }
 }

+ 4 - 1
app/src/main/java/com/sduduzog/slimlauncher/ui/main/HomeFragment.kt

@@ -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
@@ -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
 

+ 3 - 14
app/src/main/java/com/sduduzog/slimlauncher/ui/options/AddAppFragment.kt

@@ -1,21 +1,13 @@
 package com.sduduzog.slimlauncher.ui.options
 
-import android.app.Activity
-import android.content.Context
-import android.content.pm.LauncherApps
 import android.os.Bundle
-import android.os.Process
-import android.os.UserManager
 import android.text.Editable
 import android.text.TextWatcher
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
-import android.view.inputmethod.InputMethodManager
 import androidx.fragment.app.viewModels
-import androidx.lifecycle.Observer
 import androidx.navigation.Navigation
-import com.sduduzog.slimlauncher.BuildConfig
 import com.sduduzog.slimlauncher.R
 import com.sduduzog.slimlauncher.adapters.AddAppAdapter
 import com.sduduzog.slimlauncher.data.model.App
@@ -36,8 +28,8 @@ class AddAppFragment : BaseFragment(), OnAppClickedListener {
         return inflater.inflate(R.layout.add_app_fragment, container, false)
     }
 
-    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
-        super.onViewCreated(view, savedInstanceState)
+    override fun onActivityCreated(savedInstanceState: Bundle?) {
+        super.onActivityCreated(savedInstanceState)
         val adapter = AddAppAdapter(this)
 
         add_app_fragment_list.adapter = adapter
@@ -62,9 +54,6 @@ class AddAppFragment : BaseFragment(), OnAppClickedListener {
     override fun onPause() {
         super.onPause()
         add_app_fragment_edit_text?.removeTextChangedListener(onTextChangeListener)
-
-        val inputMethodManager = requireContext().getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager
-        inputMethodManager.hideSoftInputFromWindow(requireView().windowToken, 0)
     }
 
     private val onTextChangeListener: TextWatcher = object : TextWatcher {
@@ -86,4 +75,4 @@ class AddAppFragment : BaseFragment(), OnAppClickedListener {
         viewModel.addAppToHomeScreen(app)
         Navigation.findNavController(add_app_fragment).popBackStack()
     }
-}
+}

+ 0 - 1
app/src/main/java/com/sduduzog/slimlauncher/ui/options/CustomiseAppsFragment.kt

@@ -7,7 +7,6 @@ import android.view.View
 import android.view.ViewGroup
 import androidx.appcompat.widget.PopupMenu
 import androidx.fragment.app.viewModels
-import androidx.lifecycle.Observer
 import androidx.navigation.Navigation
 import androidx.recyclerview.widget.ItemTouchHelper
 import androidx.recyclerview.widget.RecyclerView

+ 2 - 7
app/src/main/java/com/sduduzog/slimlauncher/ui/options/OptionsFragment.kt

@@ -2,7 +2,6 @@ package com.sduduzog.slimlauncher.ui.options
 
 import android.content.Context.MODE_PRIVATE
 import android.content.Intent
-import android.net.Uri
 import android.os.Bundle
 import android.provider.Settings
 import android.text.SpannableStringBuilder
@@ -34,12 +33,8 @@ class OptionsFragment : BaseFragment() {
         return inflater.inflate(R.layout.options_fragment, container, false)
     }
 
-    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
-        super.onViewCreated(view, savedInstanceState)
-        options_fragment_about_slim.setOnClickListener {
-            val intent = Intent(Intent.ACTION_VIEW, Uri.parse(getString(R.string.slim_url)))
-            launchActivity(it, intent)
-        }
+    override fun onActivityCreated(savedInstanceState: Bundle?) {
+        super.onActivityCreated(savedInstanceState)
         options_fragment_device_settings.setOnClickListener {
             val intent = Intent(Settings.ACTION_SETTINGS)
             launchActivity(it, intent)

+ 5 - 5
app/src/main/java/com/sduduzog/slimlauncher/utils/BaseFragment.kt

@@ -74,15 +74,15 @@ abstract class BaseFragment : Fragment(), ISubscriber {
         val myUserHandle = Process.myUserHandle()
 
         for (profile in manager.userProfiles) {
-            val prefix = if (profile == myUserHandle) "" else "\uD83C\uDD46 " //Unicode for boxed w
+            val prefix = if (profile.equals(myUserHandle)) "" else "\uD83C\uDD46 " //Unicode for boxed w
             val profileSerial = manager.getSerialNumberForUser(profile)
 
             for (activityInfo in launcher.getActivityList(null, profile)) {
                 val app = App(
-                        appName = prefix + activityInfo.label.toString(),
-                        packageName = activityInfo.applicationInfo.packageName,
-                        activityName = activityInfo.name,
-                        userSerial = profileSerial
+                    appName = prefix + activityInfo.label.toString(),
+                    packageName = activityInfo.applicationInfo.packageName,
+                    activityName = activityInfo.name,
+                    userSerial = profileSerial
                 )
                 list.add(app)
             }

+ 14 - 29
app/src/main/res/layout/options_fragment.xml

@@ -27,35 +27,20 @@
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toTopOf="parent" />
 
-        <TextView
-            android:id="@+id/options_fragment_about_slim"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="24dp"
-            android:layout_marginLeft="24dp"
-            android:layout_marginTop="32dp"
-            android:stateListAnimator="@xml/animate_scale"
-            android:text="@string/options_fragment_about_slim"
-            android:textAppearance="@style/TextAppearance.AppCompat"
-            android:textSize="@dimen/_20ssp"
-            app:layout_constraintBottom_toTopOf="@+id/options_fragment_device_settings"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/textView5"
-            app:layout_constraintVertical_bias="0.17000002"
-            app:layout_constraintVertical_chainStyle="packed" />
-
-        <TextView
-            android:id="@+id/options_fragment_device_settings"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="32dp"
-            android:stateListAnimator="@xml/animate_scale"
-            android:text="@string/options_fragment_device_settings"
-            android:textAppearance="@style/TextAppearance.AppCompat"
-            android:textSize="@dimen/_20ssp"
-            app:layout_constraintBottom_toTopOf="@+id/options_fragment_change_theme"
-            app:layout_constraintStart_toStartOf="@+id/options_fragment_about_slim"
-            app:layout_constraintTop_toBottomOf="@+id/options_fragment_about_slim" />
+    <TextView
+        android:id="@+id/options_fragment_device_settings"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/options_fragment_device_settings"
+        android:textAppearance="@style/TextAppearance.AppCompat"
+        android:layout_marginStart="24dp"
+        android:layout_marginTop="32dp"
+        android:textSize="@dimen/_20ssp"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintBottom_toTopOf="@+id/options_fragment_change_theme"
+        app:layout_constraintVertical_bias="0.17000002"
+        app:layout_constraintVertical_chainStyle="packed"
+        app:layout_constraintTop_toBottomOf="@+id/textView5" />
 
         <TextView
             android:id="@+id/options_fragment_change_theme"

+ 0 - 1
app/src/main/res/values-de/strings.xml

@@ -15,7 +15,6 @@
     <string name="customise_apps_fragment_add">Hinzufügen</string>
     <string name="customise_apps_fragment_remove_all">Alles entfernen</string>
     <string name="main_fragment_options">Einstellungen</string>
-    <string name="options_fragment_about_slim">Über Slim</string>
     <string name="menu_remove">Entfernen</string>
     <string name="menu_rename">Umbenennen</string>
     <string name="options_fragment_change_theme">Aussehen ändern</string>

+ 0 - 1
app/src/main/res/values-fr/strings.xml

@@ -22,7 +22,6 @@
 
     <string name="choose_time_format_dialog_title">Format de l’heure</string>
     <string name="main_fragment_options">Options</string>
-    <string name="options_fragment_about_slim">À propos d’Unlauncher</string>
     <string name="options_fragment_device_settings">Paramètres Système</string>
     <string name="options_fragment_change_theme">Changer le Thème</string>
     <string name="options_fragment_choose_time_format">Format de l’Heure</string>

+ 0 - 1
app/src/main/res/values-it/strings.xml

@@ -22,7 +22,6 @@
 
     <string name="choose_time_format_dialog_title">Formato dell\'ora</string>
     <string name="main_fragment_options">Impostazioni</string>
-    <string name="options_fragment_about_slim">Informazioni su Unlauncher</string>
     <string name="options_fragment_device_settings">Impostazioni del dispositivo</string>
     <string name="options_fragment_change_theme">Cambia il tema</string>
     <string name="options_fragment_choose_time_format">Formato dell\'ora</string>

+ 0 - 1
app/src/main/res/values-nb/strings.xml

@@ -25,7 +25,6 @@
     <string name="prefs_settings_key_toggle_status_bar" translatable="false">hide_status_bar</string>
     <string name="choose_time_format_dialog_title">Velg tidsformat</string>
     <string name="main_fragment_options">Innstillinger</string>
-    <string name="options_fragment_about_slim">Om</string>
     <string name="options_fragment_device_settings">Enhetsinnstillinger</string>
     <string name="options_fragment_change_theme">Drakt</string>
     <string name="options_fragment_choose_time_format">Tidsformat</string>

+ 0 - 1
app/src/main/res/values-nl/strings.xml

@@ -25,7 +25,6 @@
     <string name="prefs_settings_key_toggle_status_bar" translatable="false">hide_status_bar</string>
     <string name="choose_time_format_dialog_title">Kies de tijdopmaak</string>
     <string name="main_fragment_options">Opties</string>
-    <string name="options_fragment_about_slim">Over Slim</string>
     <string name="options_fragment_device_settings">Systeeminstellingen</string>
     <string name="options_fragment_change_theme">Thema wijzigen</string>
     <string name="options_fragment_choose_time_format">Kies de tijdopmaak</string>

+ 0 - 1
app/src/main/res/values-ru/strings.xml

@@ -5,7 +5,6 @@
     <string name="customise_apps_fragment_add">Добавить</string>
     <string name="customise_apps_fragment_remove_all">Удалить все</string>
     <string name="main_fragment_options">Настройки</string>
-    <string name="options_fragment_about_slim">О Slim</string>
     <string name="menu_remove">Удалить</string>
     <string name="menu_rename">Переименовать</string>
     <string name="options_fragment_change_theme">Изменить тему</string>

+ 0 - 1
app/src/main/res/values-uk/strings.xml

@@ -7,7 +7,6 @@
     <string name="main_fragment_options">Налаштування</string>
     <string name="menu_remove">Видалити</string>
     <string name="menu_rename">Перейменувати</string>
-    <string name="options_fragment_about_slim">Про Slim</string>
     <string name="options_fragment_choose_time_format">Обрати формат часу</string>
     <string name="options_fragment_customise_apps">Налаштування програм</string>
     <string name="options_fragment_device_settings">Налаштування пристрою</string>

+ 0 - 1
app/src/main/res/values-zh-rCN/strings.xml

@@ -34,7 +34,6 @@
     <string name="prefs_settings_key_toggle_status_bar" translatable="false">hide_status_bar</string>
     <string name="choose_time_format_dialog_title">选择时间格式</string>
     <string name="main_fragment_options">选项</string>
-    <string name="options_fragment_about_slim">关于 Unlauncher</string>
     <string name="options_fragment_device_settings">设备设置</string>
     <string name="options_fragment_change_theme">更改主题</string>
     <string name="options_fragment_choose_time_format">选择时间格式</string>

+ 0 - 1
app/src/main/res/values-zh-rTW/strings.xml

@@ -26,7 +26,6 @@
     <string name="prefs_settings_key_toggle_status_bar" translatable="false">hide_status_bar</string>
     <string name="choose_time_format_dialog_title">選擇時間格式</string>
     <string name="main_fragment_options">選項</string>
-    <string name="options_fragment_about_slim">關於Unlauncher</string>
     <string name="options_fragment_device_settings">設備設置</string>
     <string name="options_fragment_change_theme">更換主題</string>
     <string name="options_fragment_choose_time_format">選擇時間格式</string>

+ 0 - 1
app/src/main/res/values/strings.xml

@@ -34,7 +34,6 @@
     <string name="prefs_settings_key_toggle_status_bar" translatable="false">hide_status_bar</string>
     <string name="choose_time_format_dialog_title">Choose Time Format</string>
     <string name="main_fragment_options">Options</string>
-    <string name="options_fragment_about_slim">About Unlauncher</string>
     <string name="options_fragment_device_settings">Device Settings</string>
     <string name="options_fragment_change_theme">Change Theme</string>
     <string name="options_fragment_choose_time_format">Choose Time Format</string>

+ 2 - 2
build.gradle.kts

@@ -6,9 +6,9 @@ buildscript {
         mavenCentral()
     }
     dependencies {
-        classpath("com.android.tools.build:gradle:4.2.1")
+        classpath("com.android.tools.build:gradle:4.2.2")
         classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.10")
-        classpath("com.google.dagger:hilt-android-gradle-plugin:2.28-alpha")
+        classpath("com.google.dagger:hilt-android-gradle-plugin:2.35")
 
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files