mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-19 18:58:19 +00:00
Merge "Prompting the user to set Pixel/Quickstep as default Home app." into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
cf3a0ef2f0
@@ -17,24 +17,32 @@ package com.android.launcher3.uioverrides
|
||||
|
||||
import android.app.ActivityOptions
|
||||
import android.app.PendingIntent
|
||||
import android.app.role.RoleManager
|
||||
import android.content.Context
|
||||
import android.content.IIntentReceiver
|
||||
import android.content.IIntentSender
|
||||
import android.content.Intent
|
||||
import android.content.pm.ActivityInfo
|
||||
import android.content.pm.LauncherActivityInfo
|
||||
import android.content.pm.LauncherApps
|
||||
import android.content.pm.ShortcutInfo
|
||||
import android.os.Bundle
|
||||
import android.os.Flags.allowPrivateProfile
|
||||
import android.os.IBinder
|
||||
import android.os.UserHandle
|
||||
import android.os.UserManager
|
||||
import android.util.ArrayMap
|
||||
import android.widget.Toast
|
||||
import android.window.RemoteTransition
|
||||
import com.android.launcher3.Flags.enablePrivateSpace
|
||||
import com.android.launcher3.Flags.enablePrivateSpaceInstallShortcut
|
||||
import com.android.launcher3.Flags.privateSpaceAppInstallerButton
|
||||
import com.android.launcher3.Flags.privateSpaceSysAppsSeparation
|
||||
import com.android.launcher3.R
|
||||
import com.android.launcher3.Utilities
|
||||
import com.android.launcher3.proxy.ProxyActivityStarter
|
||||
import com.android.launcher3.util.ApiWrapper
|
||||
import com.android.launcher3.util.Executors
|
||||
import com.android.launcher3.util.StartActivityParams
|
||||
import com.android.launcher3.util.UserIconInfo
|
||||
import com.android.quickstep.util.FadeOutRemoteTransition
|
||||
@@ -115,8 +123,7 @@ open class SystemApiWrapper(context: Context?) : ApiWrapper(context) {
|
||||
intentSender =
|
||||
mContext
|
||||
.getSystemService(LauncherApps::class.java)
|
||||
?.privateSpaceSettingsIntent
|
||||
?: return null
|
||||
?.privateSpaceSettingsIntent ?: return null
|
||||
options =
|
||||
ActivityOptions.makeBasic()
|
||||
.setPendingIntentBackgroundActivityStartMode(
|
||||
@@ -130,4 +137,50 @@ open class SystemApiWrapper(context: Context?) : ApiWrapper(context) {
|
||||
|
||||
override fun isNonResizeableActivity(lai: LauncherActivityInfo) =
|
||||
lai.activityInfo.resizeMode == ActivityInfo.RESIZE_MODE_UNRESIZEABLE
|
||||
|
||||
/**
|
||||
* Starts an Activity which can be used to set this Launcher as the HOME app, via a consent
|
||||
* screen. In case the consent screen cannot be shown, or the user does not set current Launcher
|
||||
* as HOME app, a toast asking the user to do the latter is shown.
|
||||
*/
|
||||
override fun assignDefaultHomeRole(context: Context) {
|
||||
val roleManager = context.getSystemService(RoleManager::class.java)
|
||||
if (
|
||||
(roleManager!!.isRoleAvailable(RoleManager.ROLE_HOME) &&
|
||||
!roleManager.isRoleHeld(RoleManager.ROLE_HOME))
|
||||
) {
|
||||
val roleRequestIntent = roleManager.createRequestRoleIntent(RoleManager.ROLE_HOME)
|
||||
val pendingIntent =
|
||||
PendingIntent(
|
||||
object : IIntentSender.Stub() {
|
||||
override fun send(
|
||||
code: Int,
|
||||
intent: Intent,
|
||||
resolvedType: String?,
|
||||
allowlistToken: IBinder?,
|
||||
finishedReceiver: IIntentReceiver?,
|
||||
requiredPermission: String?,
|
||||
options: Bundle?
|
||||
) {
|
||||
if (code != -1) {
|
||||
Executors.MAIN_EXECUTOR.execute {
|
||||
Toast.makeText(
|
||||
context,
|
||||
context.getString(
|
||||
R.string.set_default_home_app,
|
||||
context.getString(R.string.derived_app_name)
|
||||
),
|
||||
Toast.LENGTH_LONG
|
||||
)
|
||||
.show()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
val params = StartActivityParams(pendingIntent, 0)
|
||||
params.intent = roleRequestIntent
|
||||
context.startActivity(ProxyActivityStarter.getLaunchIntent(context, params))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user