Skip to content
This repository has been archived by the owner on Dec 5, 2024. It is now read-only.

Commit

Permalink
Refactor: Changed resetDefaultLauncher to better suit OEM
Browse files Browse the repository at this point in the history
  • Loading branch information
CreativeCodeCat committed May 26, 2024
1 parent 5a4c439 commit b701c18
Showing 1 changed file with 26 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -229,19 +229,29 @@ fun getDefaultLauncherPackage(context: Context): String {
} else "android"
}

// Source: https://stackoverflow.com/a/13239706
fun resetDefaultLauncher(context: Context) {
val manufacturer = Build.MANUFACTURER.lowercase()
when (manufacturer) {
"google", "essential" -> runningStockAndroid(context)
else -> notRunningStockAndroid(context)
}
}

private fun runningStockAndroid(context: Context) {
try {
val packageManager = context.packageManager
val componentName = ComponentName(context, FakeHomeActivity::class.java)

packageManager.setComponentEnabledSetting(
componentName,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP
)

val selector = Intent(Intent.ACTION_MAIN)
selector.addCategory(Intent.CATEGORY_HOME)
context.startActivity(selector)

packageManager.setComponentEnabledSetting(
componentName,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
Expand All @@ -252,6 +262,21 @@ fun resetDefaultLauncher(context: Context) {
}
}

private fun notRunningStockAndroid(context: Context) {
try {
val intent = Intent("android.settings.HOME_SETTINGS")
context.startActivity(intent)
} catch (e: ActivityNotFoundException) {
// Fallback to general settings if specific launcher settings are not found
try {
val intent = Intent(Settings.ACTION_SETTINGS)
context.startActivity(intent)
} catch (e: Exception) {
e.printStackTrace()
}
}
}

fun openAppInfo(context: Context, userHandle: UserHandle, packageName: String) {
val launcher = context.getSystemService(Context.LAUNCHER_APPS_SERVICE) as LauncherApps
val intent: Intent? = context.packageManager.getLaunchIntentForPackage(packageName)
Expand Down

0 comments on commit b701c18

Please sign in to comment.