summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/src/main/java/app/olauncher/MainViewModel.kt15
-rw-r--r--app/src/main/java/app/olauncher/data/Prefs.kt24
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) }