diff --git a/app/src/main/java/de/jrpie/android/launcher/Functions.kt b/app/src/main/java/de/jrpie/android/launcher/Functions.kt
index 7bbbdb5..afc2c31 100644
--- a/app/src/main/java/de/jrpie/android/launcher/Functions.kt
+++ b/app/src/main/java/de/jrpie/android/launcher/Functions.kt
@@ -38,6 +38,8 @@ import androidx.core.net.toUri
const val LOG_TAG = "Launcher"
+const val REQUEST_SET_DEFAULT_HOME = 42
+
fun isDefaultHomeScreen(context: Context): Boolean {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
val roleManager = context.getSystemService(RoleManager::class.java)
@@ -59,11 +61,12 @@ fun setDefaultHomeScreen(context: Context, checkDefault: Boolean = false) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q
&& context is Activity
- && !isDefault // using role manager only works when µLauncher is not already the default.
+ && checkDefault // using role manager only works when µLauncher is not already the default.
) {
val roleManager = context.getSystemService(RoleManager::class.java)
- context.startActivity(
- roleManager.createRequestRoleIntent(RoleManager.ROLE_HOME)
+ context.startActivityForResult(
+ roleManager.createRequestRoleIntent(RoleManager.ROLE_HOME),
+ REQUEST_SET_DEFAULT_HOME
)
return
}
diff --git a/app/src/main/java/de/jrpie/android/launcher/actions/LauncherAction.kt b/app/src/main/java/de/jrpie/android/launcher/actions/LauncherAction.kt
index ee9502c..6ba467e 100644
--- a/app/src/main/java/de/jrpie/android/launcher/actions/LauncherAction.kt
+++ b/app/src/main/java/de/jrpie/android/launcher/actions/LauncherAction.kt
@@ -154,6 +154,12 @@ enum class LauncherAction(
R.drawable.baseline_flashlight_on_24,
::toggleTorch,
),
+ LAUNCH_OTHER_LAUNCHER(
+ "launcher_other_launcher",
+ R.string.list_other_launch_other_launcher,
+ R.drawable.baseline_home_24,
+ ::launchOtherLauncher
+ ),
NOP("nop", R.string.list_other_nop, R.drawable.baseline_not_interested_24, {});
override fun invoke(context: Context, rect: Rect?): Boolean {
@@ -258,6 +264,15 @@ private fun expandSettingsPanel(context: Context) {
}
}
+private fun launchOtherLauncher(context: Context) {
+ context.startActivity(
+ Intent.createChooser(
+ Intent(Intent.ACTION_MAIN).also { it.addCategory(Intent.CATEGORY_HOME) },
+ context.getString(R.string.list_other_launch_other_launcher)
+ )
+ )
+}
+
private fun openSettings(context: Context) {
context.startActivity(Intent(context, SettingsActivity::class.java))
}
diff --git a/app/src/main/res/drawable/baseline_home_24.xml b/app/src/main/res/drawable/baseline_home_24.xml
new file mode 100644
index 0000000..935d1b6
--- /dev/null
+++ b/app/src/main/res/drawable/baseline_home_24.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 83b963b..a8bc9b3 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -256,6 +256,7 @@
Do nothing
Lock Screen
Toggle Torch
+ Launch other Home Screen
Add Shortcut