feature: use RoleManager to set as default home

This commit is contained in:
Josia Pietsch 2024-08-02 22:28:37 +02:00
parent a97de134d7
commit 7a60611ec5
Signed by: jrpie
GPG key ID: E70B571D66986A2D

View file

@ -2,23 +2,26 @@ package de.jrpie.android.launcher
import android.app.Activity import android.app.Activity
import android.app.AlertDialog import android.app.AlertDialog
import android.content.ComponentName import android.app.Service
import android.app.role.RoleManager
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.SharedPreferences import android.content.SharedPreferences
import android.content.pm.LauncherApps
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.content.pm.ResolveInfo
import android.graphics.BlendMode import android.graphics.BlendMode
import android.graphics.BlendModeColorFilter import android.graphics.BlendModeColorFilter
import android.graphics.ColorMatrix import android.graphics.ColorMatrix
import android.graphics.ColorMatrixColorFilter import android.graphics.ColorMatrixColorFilter
import android.graphics.PorterDuff import android.graphics.PorterDuff
import android.graphics.PorterDuffColorFilter import android.graphics.PorterDuffColorFilter
import android.graphics.drawable.Drawable
import android.media.AudioManager import android.media.AudioManager
import android.net.Uri import android.net.Uri
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.os.SystemClock import android.os.SystemClock
import android.os.UserManager
import android.provider.Settings import android.provider.Settings
import android.util.DisplayMetrics import android.util.DisplayMetrics
import android.util.Log import android.util.Log
@ -78,6 +81,8 @@ var vibrantColor = 0
const val REQUEST_CHOOSE_APP = 1 const val REQUEST_CHOOSE_APP = 1
const val REQUEST_UNINSTALL = 2 const val REQUEST_UNINSTALL = 2
const val REQUEST_SET_DEFAULT_HOME = 42
/* Animate */ /* Animate */
// Taken from https://stackoverflow.com/questions/47293269 // Taken from https://stackoverflow.com/questions/47293269
@ -105,6 +110,17 @@ fun getPreferences(context: Context): SharedPreferences{
} }
fun setDefaultHomeScreen(context: Context, checkDefault: Boolean = false) { fun setDefaultHomeScreen(context: Context, checkDefault: Boolean = false) {
if (checkDefault
&& Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q
&& context is Activity) {
val roleManager = context.getSystemService(RoleManager::class.java)
if(!roleManager.isRoleHeld(RoleManager.ROLE_HOME)) {
context.startActivityForResult(roleManager.createRequestRoleIntent(RoleManager.ROLE_HOME), REQUEST_SET_DEFAULT_HOME)
}
return
}
if(checkDefault) { if(checkDefault) {
val testIntent = Intent(Intent.ACTION_MAIN) val testIntent = Intent(Intent.ACTION_MAIN)
testIntent.addCategory(Intent.CATEGORY_HOME) testIntent.addCategory(Intent.CATEGORY_HOME)