diff --git a/src/com/android/settings/applications/intentpicker/AppLaunchSettings.java b/src/com/android/settings/applications/intentpicker/AppLaunchSettings.java index 72f754379aa..676c35a3226 100644 --- a/src/com/android/settings/applications/intentpicker/AppLaunchSettings.java +++ b/src/com/android/settings/applications/intentpicker/AppLaunchSettings.java @@ -288,6 +288,7 @@ public class AppLaunchSettings extends AppInfoBase implements .create(); if (dialog.getListView() != null) { dialog.getListView().setTextDirection(View.TEXT_DIRECTION_LOCALE); + dialog.getListView().setEnabled(false); } else { Log.w(TAG, "createVerifiedLinksDialog: dialog.getListView() is null, please check it."); } diff --git a/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.kt b/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.kt index 1d2b73f3daf..84cdec44a64 100644 --- a/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.kt +++ b/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.kt @@ -21,7 +21,6 @@ import android.content.Intent import android.provider.Settings import android.telephony.ServiceState import android.telephony.TelephonyManager -import androidx.annotation.VisibleForTesting import androidx.lifecycle.LifecycleOwner import androidx.preference.Preference import androidx.preference.PreferenceScreen @@ -39,13 +38,16 @@ import kotlinx.coroutines.withContext /** * Preference controller for "Open network select" */ -class OpenNetworkSelectPagePreferenceController(context: Context, key: String) : - TelephonyBasePreferenceController(context, key), +class OpenNetworkSelectPagePreferenceController @JvmOverloads constructor( + context: Context, + key: String, + private val allowedNetworkTypesFlowFactory: (subId: Int) -> Flow = + context::allowedNetworkTypesFlow, + private val serviceStateFlowFactory: (subId: Int) -> Flow = + context::serviceStateFlow, +) : TelephonyBasePreferenceController(context, key), AutoSelectPreferenceController.OnNetworkSelectModeListener { - private lateinit var allowedNetworkTypesFlow: Flow - private lateinit var serviceStateFlow: Flow - private var preference: Preference? = null /** @@ -53,22 +55,9 @@ class OpenNetworkSelectPagePreferenceController(context: Context, key: String) : */ fun init(subId: Int): OpenNetworkSelectPagePreferenceController { mSubId = subId - allowedNetworkTypesFlow = mContext.allowedNetworkTypesFlow(subId) - serviceStateFlow = mContext.serviceStateFlow(subId) return this } - @VisibleForTesting - fun init( - subId: Int, - allowedNetworkTypesFlow: Flow, - serviceStateFlow: Flow, - ) { - mSubId = subId - this.allowedNetworkTypesFlow = allowedNetworkTypesFlow - this.serviceStateFlow = serviceStateFlow - } - override fun getAvailabilityStatus(subId: Int) = if (MobileNetworkUtils.shouldDisplayNetworkSelectOptions(mContext, subId)) AVAILABLE else CONDITIONALLY_UNAVAILABLE @@ -83,13 +72,13 @@ class OpenNetworkSelectPagePreferenceController(context: Context, key: String) : } override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) { - allowedNetworkTypesFlow.collectLatestWithLifecycle(viewLifecycleOwner) { + allowedNetworkTypesFlowFactory(mSubId).collectLatestWithLifecycle(viewLifecycleOwner) { preference?.isVisible = withContext(Dispatchers.Default) { MobileNetworkUtils.shouldDisplayNetworkSelectOptions(mContext, mSubId) } } - serviceStateFlow + serviceStateFlowFactory(mSubId) .collectLatestWithLifecycle(viewLifecycleOwner) { serviceState -> preference?.summary = if (serviceState.state == ServiceState.STATE_IN_SERVICE) { withContext(Dispatchers.Default) { diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntryTest.java index 6f1dce64cb6..4567bc398d5 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntryTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntryTest.java @@ -59,6 +59,7 @@ import java.util.Locale; public final class BatteryDiffEntryTest { private static final int UID = 100; + private static final int USER_ID = 0; private static final int UNINSTALLED_UID = 101; private static final String PACKAGE_NAME = "com.android.testing"; private static final String UNINSTALLED_PACKAGE_NAME = "com.android.testing.uninstalled"; @@ -87,13 +88,14 @@ public final class BatteryDiffEntryTest { doReturn(mMockPackageManager).when(mContext).getPackageManager(); doReturn(UID) .when(mMockPackageManager) - .getPackageUid(PACKAGE_NAME, PackageManager.GET_META_DATA); + .getPackageUidAsUser(PACKAGE_NAME, PackageManager.GET_META_DATA, USER_ID); doReturn(BatteryUtils.UID_NULL) .when(mMockPackageManager) - .getPackageUid(UNINSTALLED_PACKAGE_NAME, PackageManager.GET_META_DATA); + .getPackageUidAsUser( + UNINSTALLED_PACKAGE_NAME, PackageManager.GET_META_DATA, USER_ID); doReturn(BatteryUtils.UID_ZERO) .when(mMockPackageManager) - .getPackageUid(UID_ZERO_PACKAGE_NAME, PackageManager.GET_META_DATA); + .getPackageUidAsUser(UID_ZERO_PACKAGE_NAME, PackageManager.GET_META_DATA, USER_ID); BatteryDiffEntry.clearCache(); } diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceControllerTest.kt index b749a3afff0..0deeafbf9da 100644 --- a/tests/spa_unit/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceControllerTest.kt +++ b/tests/spa_unit/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceControllerTest.kt @@ -59,21 +59,19 @@ class OpenNetworkSelectPagePreferenceControllerTest { private val preference = Preference(context).apply { key = TEST_KEY } private val preferenceScreen = PreferenceManager(context).createPreferenceScreen(context) - private val controller = OpenNetworkSelectPagePreferenceController(context, TEST_KEY) - private val serviceState = ServiceState() + private val controller = OpenNetworkSelectPagePreferenceController( + context = context, + key = TEST_KEY, + allowedNetworkTypesFlowFactory = { emptyFlow() }, + serviceStateFlowFactory = { flowOf(serviceState) }, + ).init(subId = SUB_ID) + @Before fun setUp() { preferenceScreen.addPreference(preference) - controller.apply { - init( - subId = SUB_ID, - allowedNetworkTypesFlow = emptyFlow(), - serviceStateFlow = flowOf(serviceState), - ) - displayPreference(preferenceScreen) - } + controller.displayPreference(preferenceScreen) } @Test