diff options
| -rw-r--r-- | app/src/main/java/app/olauncher/MainViewModel.kt | 15 | ||||
| -rw-r--r-- | app/src/main/java/app/olauncher/data/Prefs.kt | 24 |
2 files changed, 33 insertions, 6 deletions
diff --git a/app/src/main/java/app/olauncher/MainViewModel.kt b/app/src/main/java/app/olauncher/MainViewModel.kt index e2c42e2..36909ed 100644 --- a/app/src/main/java/app/olauncher/MainViewModel.kt +++ b/app/src/main/java/app/olauncher/MainViewModel.kt @@ -336,8 +336,12 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { val launcher = appContext.getSystemService(Context.LAUNCHER_APPS_SERVICE) as LauncherApps val activityInfo = launcher.getActivityList(packageName, userHandle) - val component = if (activityClassName.isNullOrBlank()) { - // activityClassName will be null for hidden apps. + val isActivityValid = activityClassName.isNullOrBlank().not() + && activityInfo.any { it.componentName.className == activityClassName } + + val component = if (isActivityValid) + ComponentName(packageName, activityClassName) + else { when (activityInfo.size) { 0 -> { appContext.showToast(appContext.getString(R.string.app_not_found)) @@ -346,9 +350,7 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { 1 -> ComponentName(packageName, activityInfo[0].name) else -> ComponentName(packageName, activityInfo[activityInfo.size - 1].name) - } - } else { - ComponentName(packageName, activityClassName) + }.also { prefs.updateAppActivityClassName(packageName, it.className) } } try { @@ -414,7 +416,8 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { if (prefs.screenTimeLastUpdated.hasBeenMinutes(1).not()) return val eventLogWrapper = EventLogWrapper( - appContext) + appContext + ) // Start of today in millis val calendar = Calendar.getInstance().apply { set(Calendar.HOUR_OF_DAY, 0) diff --git a/app/src/main/java/app/olauncher/data/Prefs.kt b/app/src/main/java/app/olauncher/data/Prefs.kt index 1d11c9e..904ea66 100644 --- a/app/src/main/java/app/olauncher/data/Prefs.kt +++ b/app/src/main/java/app/olauncher/data/Prefs.kt @@ -610,6 +610,30 @@ class Prefs(context: Context) { } } + fun setAppActivityClassName(location: Int, activityClassName: String) { + when (location) { + 1 -> appActivityClassName1 = activityClassName + 2 -> appActivityClassName2 = activityClassName + 3 -> appActivityClassName3 = activityClassName + 4 -> appActivityClassName4 = activityClassName + 5 -> appActivityClassName5 = activityClassName + 6 -> appActivityClassName6 = activityClassName + 7 -> appActivityClassName7 = activityClassName + 8 -> appActivityClassName8 = activityClassName + } + } + + fun updateAppActivityClassName(packageName: String, activityClassName: String) { + for (i in 1..8) { + if (getAppPackage(i) == packageName) setAppActivityClassName(i, activityClassName) + } + if (clockAppPackage == packageName) clockAppClassName = activityClassName + if (calendarAppPackage == packageName) calendarAppClassName = activityClassName + if (screenTimeAppPackage == packageName) screenTimeAppClassName = activityClassName + if (appPackageSwipeLeft == packageName) appActivityClassNameSwipeLeft = activityClassName + if (appPackageSwipeRight == packageName) appActivityClassNameRight = activityClassName + } + fun getAppRenameLabel(appPackage: String): String = prefs.getString(appPackage, "").toString() fun setAppRenameLabel(appPackage: String, renameLabel: String) = prefs.edit { putString(appPackage, renameLabel) } |
