From e134a4bcdb9f09d5220bcfc69d1f72fe9c7ca5f3 Mon Sep 17 00:00:00 2001 From: Mark Renouf Date: Mon, 13 Nov 2023 15:46:24 -0500 Subject: Fix type issues with Kotlin and Context.getSystemService ``` import androidx.core.content.getSystemService val userManager: UserManager = lazy { context.systemService()!! } ``` Types are inferred as expected, (returns T?) Change-Id: I7ad3531397d6afea25f25bb27c9f29d31a470ca2 --- .../com/android/intentresolver/v2/ActivityLogic.kt | 33 ++++------------------ .../intentresolver/v2/ResolverActivityLogic.kt | 7 ++--- 2 files changed, 8 insertions(+), 32 deletions(-) (limited to 'java/src/com') diff --git a/java/src/com/android/intentresolver/v2/ActivityLogic.kt b/java/src/com/android/intentresolver/v2/ActivityLogic.kt index e5b89dfa..8999343e 100644 --- a/java/src/com/android/intentresolver/v2/ActivityLogic.kt +++ b/java/src/com/android/intentresolver/v2/ActivityLogic.kt @@ -1,16 +1,14 @@ package com.android.intentresolver.v2 -import android.app.Activity import android.app.admin.DevicePolicyManager import android.app.admin.DevicePolicyResources.Strings.Core.FORWARD_INTENT_TO_PERSONAL import android.app.admin.DevicePolicyResources.Strings.Core.FORWARD_INTENT_TO_WORK -import android.content.Context import android.content.Intent -import android.net.Uri import android.os.UserHandle import android.os.UserManager import android.util.Log import androidx.activity.ComponentActivity +import androidx.core.content.getSystemService import com.android.intentresolver.AnnotatedUserHandles import com.android.intentresolver.R import com.android.intentresolver.icons.TargetDataLoader @@ -74,13 +72,6 @@ interface CommonActivityLogic { /** Returns display message indicating intent forwarding or null if not intent forwarding. */ fun forwardMessageFor(intent: Intent): String? - - // TODO: For some reason the IDE complains about getting Activity fields from a - // ComponentActivity. These are a band-aid until the bug is fixed and should be removed when - // possible. - val ComponentActivity.context: Context - val ComponentActivity.intent: Intent - val ComponentActivity.referrer: Uri? } /** @@ -105,13 +96,9 @@ class CommonActivityLogicImpl( } } - override val userManager: UserManager by lazy { - activity.context.getSystemService(Context.USER_SERVICE) as UserManager - } + override val userManager: UserManager by lazy { activity.getSystemService()!! } - override val devicePolicyManager: DevicePolicyManager by lazy { - activity.context.getSystemService(DevicePolicyManager::class.java)!! - } + override val devicePolicyManager: DevicePolicyManager by lazy { activity.getSystemService()!! } override val annotatedUserHandles: AnnotatedUserHandles? by lazy { try { @@ -124,13 +111,13 @@ class CommonActivityLogicImpl( private val forwardToPersonalMessage: String? by lazy { devicePolicyManager.resources.getString(FORWARD_INTENT_TO_PERSONAL) { - activity.context.getString(R.string.forward_intent_to_owner) + activity.getString(R.string.forward_intent_to_owner) } } private val forwardToWorkMessage: String? by lazy { devicePolicyManager.resources.getString(FORWARD_INTENT_TO_WORK) { - activity.context.getString(R.string.forward_intent_to_work) + activity.getString(R.string.forward_intent_to_work) } } @@ -154,14 +141,4 @@ class CommonActivityLogicImpl( companion object { private const val ANDROID_APP_URI_SCHEME = "android-app" } - - // TODO: For some reason the IDE complains about getting Activity fields from a - // ComponentActivity. These are a band-aid until the bug is fixed and should be removed when - // possible. - override val ComponentActivity.context: Context - get() = (this as Activity) - override val ComponentActivity.intent: Intent - get() = (this as Activity).intent - override val ComponentActivity.referrer: Uri? - get() = (this as Activity).referrer } diff --git a/java/src/com/android/intentresolver/v2/ResolverActivityLogic.kt b/java/src/com/android/intentresolver/v2/ResolverActivityLogic.kt index 1b936159..bf8df12f 100644 --- a/java/src/com/android/intentresolver/v2/ResolverActivityLogic.kt +++ b/java/src/com/android/intentresolver/v2/ResolverActivityLogic.kt @@ -32,9 +32,8 @@ class ResolverActivityLogic( } override val resolvingHome: Boolean by lazy { - Intent.ACTION_MAIN == targetIntent.action && - targetIntent.categories?.size == 1 && - targetIntent.categories.contains(Intent.CATEGORY_HOME) + targetIntent.action == Intent.ACTION_MAIN && + targetIntent.categories.singleOrNull() == Intent.CATEGORY_HOME } override val additionalTargets: List? = null @@ -49,7 +48,7 @@ class ResolverActivityLogic( override val targetDataLoader: TargetDataLoader by lazy { DefaultTargetDataLoader( - activity.context, + activity, activity.lifecycle, activity.intent.getBooleanExtra( ResolverActivity.EXTRA_IS_AUDIO_CAPTURE_DEVICE, -- cgit v1.2.3-59-g8ed1b