summaryrefslogtreecommitdiff
path: root/app/src/main/java
diff options
context:
space:
mode:
authorSreejith <sreejith@healthify.co>2022-08-18 16:33:24 +0530
committerSreejith <sreejith@healthify.co>2022-08-18 16:33:24 +0530
commitb2cbb6d8aefcace4bebc83fc6789d4f135068cdf (patch)
tree7cf139bb8dfd46cabda80ba2ace5363007ea1d02 /app/src/main/java
parentf9b7169bee6b3ffb9b8e4e41e4de0ec5df3a5ccd (diff)
downloadSidePhOnelauncher-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.kt35
-rw-r--r--app/src/main/java/app/olauncher/data/AppModel.kt1
-rw-r--r--app/src/main/java/app/olauncher/data/Prefs.kt64
-rw-r--r--app/src/main/java/app/olauncher/helper/Utils.kt4
-rw-r--r--app/src/main/java/app/olauncher/ui/HomeFragment.kt9
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())
}