summaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
authorTanuj <thetanuj@hotmail.com>2026-03-10 18:19:42 +0530
committerTanuj <thetanuj@hotmail.com>2026-03-10 18:19:42 +0530
commit9988c09be17137ed54b05b91ddb6ca1efa900793 (patch)
treec84d3a1b79a693ed88da666389eae41fc9d63584 /app/src
parent77f72d34361c632e54674f46dac9cf6afa1e027b (diff)
downloadSidePhOnelauncher-9988c09be17137ed54b05b91ddb6ca1efa900793.tar.gz
SidePhOnelauncher-9988c09be17137ed54b05b91ddb6ca1efa900793.tar.bz2
SidePhOnelauncher-9988c09be17137ed54b05b91ddb6ca1efa900793.zip
Fixed: Apps not opening from home when their app icon changes
Diffstat (limited to 'app/src')
-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) }