diff options
| author | Sreejith <sreejith@healthify.co> | 2022-08-18 16:33:24 +0530 |
|---|---|---|
| committer | Sreejith <sreejith@healthify.co> | 2022-08-18 16:33:24 +0530 |
| commit | b2cbb6d8aefcace4bebc83fc6789d4f135068cdf (patch) | |
| tree | 7cf139bb8dfd46cabda80ba2ace5363007ea1d02 /app/src/main/java | |
| parent | f9b7169bee6b3ffb9b8e4e41e4de0ec5df3a5ccd (diff) | |
| download | SidePhOnelauncher-b2cbb6d8aefcace4bebc83fc6789d4f135068cdf.tar.gz SidePhOnelauncher-b2cbb6d8aefcace4bebc83fc6789d4f135068cdf.tar.bz2 SidePhOnelauncher-b2cbb6d8aefcace4bebc83fc6789d4f135068cdf.zip | |
Handled multiple launch activities in an app (except for Hidden Apps).
Diffstat (limited to 'app/src/main/java')
| -rw-r--r-- | app/src/main/java/app/olauncher/MainViewModel.kt | 35 | ||||
| -rw-r--r-- | app/src/main/java/app/olauncher/data/AppModel.kt | 1 | ||||
| -rw-r--r-- | app/src/main/java/app/olauncher/data/Prefs.kt | 64 | ||||
| -rw-r--r-- | app/src/main/java/app/olauncher/helper/Utils.kt | 4 | ||||
| -rw-r--r-- | app/src/main/java/app/olauncher/ui/HomeFragment.kt | 9 |
5 files changed, 98 insertions, 15 deletions
diff --git a/app/src/main/java/app/olauncher/MainViewModel.kt b/app/src/main/java/app/olauncher/MainViewModel.kt index 9312620..8f3517a 100644 --- a/app/src/main/java/app/olauncher/MainViewModel.kt +++ b/app/src/main/java/app/olauncher/MainViewModel.kt @@ -35,69 +35,79 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { fun selectedApp(appModel: AppModel, flag: Int) { when (flag) { Constants.FLAG_LAUNCH_APP -> { - launchApp(appModel.appPackage, appModel.user) + launchApp(appModel.appPackage, appModel.activityClassName, appModel.user) } Constants.FLAG_HIDDEN_APPS -> { - launchApp(appModel.appPackage, appModel.user) + launchApp(appModel.appPackage, appModel.activityClassName, appModel.user) } Constants.FLAG_SET_HOME_APP_1 -> { prefs.appName1 = appModel.appLabel prefs.appPackage1 = appModel.appPackage prefs.appUser1 = appModel.user.toString() + prefs.appActivityClassName1 = appModel.activityClassName refreshHome(false) } Constants.FLAG_SET_HOME_APP_2 -> { prefs.appName2 = appModel.appLabel prefs.appPackage2 = appModel.appPackage prefs.appUser2 = appModel.user.toString() + prefs.appActivityClassName2 = appModel.activityClassName refreshHome(false) } Constants.FLAG_SET_HOME_APP_3 -> { prefs.appName3 = appModel.appLabel prefs.appPackage3 = appModel.appPackage prefs.appUser3 = appModel.user.toString() + prefs.appActivityClassName3 = appModel.activityClassName refreshHome(false) } Constants.FLAG_SET_HOME_APP_4 -> { prefs.appName4 = appModel.appLabel prefs.appPackage4 = appModel.appPackage prefs.appUser4 = appModel.user.toString() + prefs.appActivityClassName4 = appModel.activityClassName refreshHome(false) } Constants.FLAG_SET_HOME_APP_5 -> { prefs.appName5 = appModel.appLabel prefs.appPackage5 = appModel.appPackage prefs.appUser5 = appModel.user.toString() + prefs.appActivityClassName5 = appModel.activityClassName refreshHome(false) } Constants.FLAG_SET_HOME_APP_6 -> { prefs.appName6 = appModel.appLabel prefs.appPackage6 = appModel.appPackage prefs.appUser6 = appModel.user.toString() + prefs.appActivityClassName6 = appModel.activityClassName refreshHome(false) } Constants.FLAG_SET_HOME_APP_7 -> { prefs.appName7 = appModel.appLabel prefs.appPackage7 = appModel.appPackage prefs.appUser7 = appModel.user.toString() + prefs.appActivityClassName7 = appModel.activityClassName refreshHome(false) } Constants.FLAG_SET_HOME_APP_8 -> { prefs.appName8 = appModel.appLabel prefs.appPackage8 = appModel.appPackage prefs.appUser8 = appModel.user.toString() + prefs.appActivityClassName8 = appModel.activityClassName refreshHome(false) } Constants.FLAG_SET_SWIPE_LEFT_APP -> { prefs.appNameSwipeLeft = appModel.appLabel prefs.appPackageSwipeLeft = appModel.appPackage prefs.appUserSwipeLeft = appModel.user.toString() + prefs.appActivityClassNameSwipeLeft = appModel.activityClassName updateSwipeApps() } Constants.FLAG_SET_SWIPE_RIGHT_APP -> { prefs.appNameSwipeRight = appModel.appLabel prefs.appPackageSwipeRight = appModel.appPackage prefs.appUserSwipeRight = appModel.user.toString() + prefs.appActivityClassNameRight = appModel.activityClassName updateSwipeApps() } } @@ -119,18 +129,23 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { updateSwipeApps.postValue(Unit) } - private fun launchApp(packageName: String, userHandle: UserHandle) { + private fun launchApp(packageName: String, activityClassName: String?, userHandle: UserHandle) { val launcher = appContext.getSystemService(Context.LAUNCHER_APPS_SERVICE) as LauncherApps val activityInfo = launcher.getActivityList(packageName, userHandle) - // TODO: Handle multiple launch activities in an app. This is NOT the way. - val component = when (activityInfo.size) { - 0 -> { - showToastShort(appContext, "App not found") - return + val component = if (activityClassName.isNullOrBlank()) { + // TODO: Handle multiple launch activities in an app. This is NOT the way. + // activityClassName will be null for hidden apps. + when (activityInfo.size) { + 0 -> { + showToastShort(appContext, "App not found") + return + } + 1 -> ComponentName(packageName, activityInfo[0].name) + else -> ComponentName(packageName, activityInfo[activityInfo.size - 1].name) } - 1 -> ComponentName(packageName, activityInfo[0].name) - else -> ComponentName(packageName, activityInfo[activityInfo.size - 1].name) + } else { + ComponentName(packageName, activityClassName) } try { diff --git a/app/src/main/java/app/olauncher/data/AppModel.kt b/app/src/main/java/app/olauncher/data/AppModel.kt index f7f2c6c..60ccfe4 100644 --- a/app/src/main/java/app/olauncher/data/AppModel.kt +++ b/app/src/main/java/app/olauncher/data/AppModel.kt @@ -7,6 +7,7 @@ data class AppModel( val appLabel: String, val key: CollationKey?, val appPackage: String, + val activityClassName: String?, val user: UserHandle ) : Comparable<AppModel> { override fun compareTo(other: AppModel): Int = when { diff --git a/app/src/main/java/app/olauncher/data/Prefs.kt b/app/src/main/java/app/olauncher/data/Prefs.kt index 6ee52c1..9247f92 100644 --- a/app/src/main/java/app/olauncher/data/Prefs.kt +++ b/app/src/main/java/app/olauncher/data/Prefs.kt @@ -50,6 +50,14 @@ class Prefs(context: Context) { private val APP_PACKAGE_6 = "APP_PACKAGE_6" private val APP_PACKAGE_7 = "APP_PACKAGE_7" private val APP_PACKAGE_8 = "APP_PACKAGE_8" + private val APP_ACTIVITY_CLASS_NAME_1 = "APP_ACTIVITY_CLASS_NAME_1" + private val APP_ACTIVITY_CLASS_NAME_2 = "APP_ACTIVITY_CLASS_NAME_2" + private val APP_ACTIVITY_CLASS_NAME_3 = "APP_ACTIVITY_CLASS_NAME_3" + private val APP_ACTIVITY_CLASS_NAME_4 = "APP_ACTIVITY_CLASS_NAME_4" + private val APP_ACTIVITY_CLASS_NAME_5 = "APP_ACTIVITY_CLASS_NAME_5" + private val APP_ACTIVITY_CLASS_NAME_6 = "APP_ACTIVITY_CLASS_NAME_6" + private val APP_ACTIVITY_CLASS_NAME_7 = "APP_ACTIVITY_CLASS_NAME_7" + private val APP_ACTIVITY_CLASS_NAME_8 = "APP_ACTIVITY_CLASS_NAME_8" private val APP_USER_1 = "APP_USER_1" private val APP_USER_2 = "APP_USER_2" private val APP_USER_3 = "APP_USER_3" @@ -63,6 +71,8 @@ class Prefs(context: Context) { private val APP_NAME_SWIPE_RIGHT = "APP_NAME_SWIPE_RIGHT" private val APP_PACKAGE_SWIPE_LEFT = "APP_PACKAGE_SWIPE_LEFT" private val APP_PACKAGE_SWIPE_RIGHT = "APP_PACKAGE_SWIPE_RIGHT" + private val APP_ACTIVITY_CLASS_NAME_SWIPE_LEFT = "APP_ACTIVITY_CLASS_NAME_SWIPE_LEFT" + private val APP_ACTIVITY_CLASS_NAME_SWIPE_RIGHT = "APP_ACTIVITY_CLASS_NAME_SWIPE_RIGHT" private val APP_USER_SWIPE_LEFT = "APP_USER_SWIPE_LEFT" private val APP_USER_SWIPE_RIGHT = "APP_USER_SWIPE_RIGHT" @@ -232,6 +242,38 @@ class Prefs(context: Context) { get() = prefs.getString(APP_PACKAGE_8, "").toString() set(value) = prefs.edit().putString(APP_PACKAGE_8, value).apply() + var appActivityClassName1: String? + get() = prefs.getString(APP_ACTIVITY_CLASS_NAME_1, "").toString() + set(value) = prefs.edit().putString(APP_ACTIVITY_CLASS_NAME_1, value).apply() + + var appActivityClassName2: String? + get() = prefs.getString(APP_ACTIVITY_CLASS_NAME_2, "").toString() + set(value) = prefs.edit().putString(APP_ACTIVITY_CLASS_NAME_2, value).apply() + + var appActivityClassName3: String? + get() = prefs.getString(APP_ACTIVITY_CLASS_NAME_3, "").toString() + set(value) = prefs.edit().putString(APP_ACTIVITY_CLASS_NAME_3, value).apply() + + var appActivityClassName4: String? + get() = prefs.getString(APP_ACTIVITY_CLASS_NAME_4, "").toString() + set(value) = prefs.edit().putString(APP_ACTIVITY_CLASS_NAME_4, value).apply() + + var appActivityClassName5: String? + get() = prefs.getString(APP_ACTIVITY_CLASS_NAME_5, "").toString() + set(value) = prefs.edit().putString(APP_ACTIVITY_CLASS_NAME_5, value).apply() + + var appActivityClassName6: String? + get() = prefs.getString(APP_ACTIVITY_CLASS_NAME_6, "").toString() + set(value) = prefs.edit().putString(APP_ACTIVITY_CLASS_NAME_6, value).apply() + + var appActivityClassName7: String? + get() = prefs.getString(APP_ACTIVITY_CLASS_NAME_7, "").toString() + set(value) = prefs.edit().putString(APP_ACTIVITY_CLASS_NAME_7, value).apply() + + var appActivityClassName8: String? + get() = prefs.getString(APP_ACTIVITY_CLASS_NAME_8, "").toString() + set(value) = prefs.edit().putString(APP_ACTIVITY_CLASS_NAME_8, value).apply() + var appUser1: String get() = prefs.getString(APP_USER_1, "").toString() set(value) = prefs.edit().putString(APP_USER_1, value).apply() @@ -276,10 +318,18 @@ class Prefs(context: Context) { get() = prefs.getString(APP_PACKAGE_SWIPE_LEFT, "").toString() set(value) = prefs.edit().putString(APP_PACKAGE_SWIPE_LEFT, value).apply() + var appActivityClassNameSwipeLeft: String? + get() = prefs.getString(APP_ACTIVITY_CLASS_NAME_SWIPE_LEFT, "").toString() + set(value) = prefs.edit().putString(APP_ACTIVITY_CLASS_NAME_SWIPE_LEFT, value).apply() + var appPackageSwipeRight: String get() = prefs.getString(APP_PACKAGE_SWIPE_RIGHT, "").toString() set(value) = prefs.edit().putString(APP_PACKAGE_SWIPE_RIGHT, value).apply() + var appActivityClassNameRight: String? + get() = prefs.getString(APP_ACTIVITY_CLASS_NAME_SWIPE_RIGHT, "").toString() + set(value) = prefs.edit().putString(APP_ACTIVITY_CLASS_NAME_SWIPE_RIGHT, value).apply() + var appUserSwipeLeft: String get() = prefs.getString(APP_USER_SWIPE_LEFT, "").toString() set(value) = prefs.edit().putString(APP_USER_SWIPE_LEFT, value).apply() @@ -316,6 +366,20 @@ class Prefs(context: Context) { } } + fun getAppActivityClassName(location: Int): String { + return when (location) { + 1 -> prefs.getString(APP_ACTIVITY_CLASS_NAME_1, "").toString() + 2 -> prefs.getString(APP_ACTIVITY_CLASS_NAME_2, "").toString() + 3 -> prefs.getString(APP_ACTIVITY_CLASS_NAME_3, "").toString() + 4 -> prefs.getString(APP_ACTIVITY_CLASS_NAME_4, "").toString() + 5 -> prefs.getString(APP_ACTIVITY_CLASS_NAME_5, "").toString() + 6 -> prefs.getString(APP_ACTIVITY_CLASS_NAME_6, "").toString() + 7 -> prefs.getString(APP_ACTIVITY_CLASS_NAME_7, "").toString() + 8 -> prefs.getString(APP_ACTIVITY_CLASS_NAME_8, "").toString() + else -> "" + } + } + fun getAppUser(location: Int): String { return when (location) { 1 -> prefs.getString(APP_USER_1, "").toString() diff --git a/app/src/main/java/app/olauncher/helper/Utils.kt b/app/src/main/java/app/olauncher/helper/Utils.kt index 3d4d6bd..c5ca47e 100644 --- a/app/src/main/java/app/olauncher/helper/Utils.kt +++ b/app/src/main/java/app/olauncher/helper/Utils.kt @@ -66,6 +66,7 @@ suspend fun getAppsList(context: Context, showHiddenApps: Boolean = false): Muta app.label.toString(), collator.getCollationKey(app.label.toString()), app.applicationInfo.packageName, + app.componentName.className, profile ) ) @@ -77,6 +78,7 @@ suspend fun getAppsList(context: Context, showHiddenApps: Boolean = false): Muta app.label.toString(), collator.getCollationKey(app.label.toString()), app.applicationInfo.packageName, + app.componentName.className, profile ) ) @@ -113,7 +115,7 @@ suspend fun getHiddenAppsList(context: Context): MutableList<AppModel> { val appInfo = pm.getApplicationInfo(appPackage, 0) val appName = pm.getApplicationLabel(appInfo).toString() val appKey = collator.getCollationKey(appName) - appList.add(AppModel(appName, appKey, appPackage, userHandle)) + appList.add(AppModel(appName, appKey, appPackage, null, userHandle)) } catch (e: Exception) { e.printStackTrace() } diff --git a/app/src/main/java/app/olauncher/ui/HomeFragment.kt b/app/src/main/java/app/olauncher/ui/HomeFragment.kt index 34e42e4..6afe4d3 100644 --- a/app/src/main/java/app/olauncher/ui/HomeFragment.kt +++ b/app/src/main/java/app/olauncher/ui/HomeFragment.kt @@ -258,13 +258,14 @@ class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener else launchApp( prefs.getAppName(location), prefs.getAppPackage(location), + prefs.getAppActivityClassName(location), prefs.getAppUser(location) ) } - private fun launchApp(appName: String, packageName: String, userString: String) { + private fun launchApp(appName: String, packageName: String, activityClassName:String?, userString: String) { viewModel.selectedApp( - AppModel(appName, null, packageName, getUserHandleFromString(requireContext(), userString)), + AppModel(appName, null, packageName, activityClassName, getUserHandleFromString(requireContext(), userString)), Constants.FLAG_LAUNCH_APP ) } @@ -295,14 +296,14 @@ class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener private fun openSwipeRightApp() { if (!prefs.swipeRightEnabled) return if (prefs.appPackageSwipeRight.isNotEmpty()) - launchApp(prefs.appNameSwipeRight, prefs.appPackageSwipeRight, android.os.Process.myUserHandle().toString()) + launchApp(prefs.appNameSwipeRight, prefs.appPackageSwipeRight, prefs.appActivityClassNameRight, android.os.Process.myUserHandle().toString()) else openDialerApp(requireContext()) } private fun openSwipeLeftApp() { if (!prefs.swipeLeftEnabled) return if (prefs.appPackageSwipeLeft.isNotEmpty()) - launchApp(prefs.appNameSwipeLeft, prefs.appPackageSwipeLeft, android.os.Process.myUserHandle().toString()) + launchApp(prefs.appNameSwipeLeft, prefs.appPackageSwipeLeft, prefs.appActivityClassNameSwipeLeft, android.os.Process.myUserHandle().toString()) else openCameraApp(requireContext()) } |
