parent
0413cb8ff6
commit
37db43405f
@ -43,33 +43,36 @@ class LauncherAppSerializer : SearchableSerializer {
|
|||||||
|
|
||||||
class LauncherAppDeserializer(val context: Context) : SearchableDeserializer {
|
class LauncherAppDeserializer(val context: Context) : SearchableDeserializer {
|
||||||
override suspend fun deserialize(serialized: String): SavableSearchable? {
|
override suspend fun deserialize(serialized: String): SavableSearchable? {
|
||||||
val json = JSONObject(serialized)
|
|
||||||
val launcherApps = context.getSystemService<LauncherApps>()!!
|
|
||||||
val userManager = context.getSystemService<UserManager>()!!
|
|
||||||
val userSerial = json.optLong("user")
|
|
||||||
val user = userManager.getUserForSerialNumber(userSerial) ?: return null
|
|
||||||
|
|
||||||
val pkg = json.getString("package")
|
|
||||||
val activity = json.getString("activity")
|
|
||||||
|
|
||||||
val componentName = ComponentName(pkg, activity)
|
|
||||||
|
|
||||||
if (isAtLeastApiLevel(35)) {
|
|
||||||
val launcherUser = launcherApps.getLauncherUserInfo(user) ?: return null
|
|
||||||
if (launcherUser.userType == UserManager.USER_TYPE_PROFILE_PRIVATE && userManager.isQuietModeEnabled(user)) {
|
|
||||||
return LockedPrivateProfileApp(
|
|
||||||
label = context.getString(R.string.app_label_locked_profile),
|
|
||||||
componentName = componentName,
|
|
||||||
user = user,
|
|
||||||
userSerialNumber = userSerial
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val intent = Intent().also {
|
|
||||||
it.component = componentName
|
|
||||||
}
|
|
||||||
try {
|
try {
|
||||||
|
val json = JSONObject(serialized)
|
||||||
|
val launcherApps = context.getSystemService<LauncherApps>()!!
|
||||||
|
val userManager = context.getSystemService<UserManager>()!!
|
||||||
|
val userSerial = json.optLong("user")
|
||||||
|
val user = userManager.getUserForSerialNumber(userSerial) ?: return null
|
||||||
|
|
||||||
|
val pkg = json.getString("package")
|
||||||
|
val activity = json.getString("activity")
|
||||||
|
|
||||||
|
val componentName = ComponentName(pkg, activity)
|
||||||
|
|
||||||
|
if (isAtLeastApiLevel(35)) {
|
||||||
|
val launcherUser = launcherApps.getLauncherUserInfo(user) ?: return null
|
||||||
|
if (launcherUser.userType == UserManager.USER_TYPE_PROFILE_PRIVATE && userManager.isQuietModeEnabled(
|
||||||
|
user
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
return LockedPrivateProfileApp(
|
||||||
|
label = context.getString(R.string.app_label_locked_profile),
|
||||||
|
componentName = componentName,
|
||||||
|
user = user,
|
||||||
|
userSerialNumber = userSerial
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val intent = Intent().also {
|
||||||
|
it.component = componentName
|
||||||
|
}
|
||||||
val launcherActivityInfo = launcherApps.resolveActivity(intent, user) ?: return null
|
val launcherActivityInfo = launcherApps.resolveActivity(intent, user) ?: return null
|
||||||
return LauncherApp(context, launcherActivityInfo)
|
return LauncherApp(context, launcherActivityInfo)
|
||||||
} catch (e: SecurityException) {
|
} catch (e: SecurityException) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user