Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 64fb695d authored by Aleksander Morgado's avatar Aleksander Morgado
Browse files

Return DISABLED_FOR_USER in IMEI availability if not admin user

The correct return when checking for the IMEI field availability
for non-admin users is DISABLED_FOR_USER.

UNSUPPORTED_ON_DEVICE should only be used when the setting is
unconditionally hidden as the device does not support the feature.

Bug: 395714454
Flag: EXEMPT bugfix
Test: atest ImeiInfoPreferenceControllerTest
Test: atest MobileNetworkImeiPreferenceControllerTest

Change-Id: I4ee89a84953993daad539d33d3a2e576540c580f
parent 2a0ad1ef
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -132,10 +132,13 @@ public class ImeiInfoPreferenceController extends BasePreferenceController {

    @Override
    public int getAvailabilityStatus() {
        boolean isAvailable = SubscriptionUtil.isSimHardwareVisible(mContext) &&
                mContext.getSystemService(UserManager.class).isAdminUser() &&
                !Utils.isWifiOnly(mContext);
        return isAvailable ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
        if (!SubscriptionUtil.isSimHardwareVisible(mContext) || Utils.isWifiOnly(mContext)) {
            return UNSUPPORTED_ON_DEVICE;
        }
        if (!mContext.getSystemService(UserManager.class).isAdminUser()) {
            return DISABLED_FOR_USER;
        }
        return AVAILABLE;
    }

    @Override
+2 −2
Original line number Diff line number Diff line
@@ -67,8 +67,8 @@ class MobileNetworkImeiPreferenceController(context: Context, key: String) :
        !SubscriptionUtil.isSimHardwareVisible(mContext)
            || Utils.isWifiOnly(mContext) -> UNSUPPORTED_ON_DEVICE
        !Flags.isDualSimOnboardingEnabled()
            || !SubscriptionManager.isValidSubscriptionId(subId)
            || !mContext.userManager.isAdminUser -> CONDITIONALLY_UNAVAILABLE
            || !SubscriptionManager.isValidSubscriptionId(subId) -> CONDITIONALLY_UNAVAILABLE
        !mContext.userManager.isAdminUser -> DISABLED_FOR_USER
        else -> AVAILABLE
    }

+1 −1
Original line number Diff line number Diff line
@@ -265,7 +265,7 @@ public class ImeiInfoPreferenceControllerTest {

        when(mUserManager.isAdminUser()).thenReturn(false);
        assertThat(mController.getAvailabilityStatus()).isEqualTo(
                BasePreferenceController.UNSUPPORTED_ON_DEVICE);
                BasePreferenceController.DISABLED_FOR_USER);
    }

    private <T> void mockService(String serviceName, Class<T> serviceClass, T service) {
+1 −1
Original line number Diff line number Diff line
@@ -187,7 +187,7 @@ class MobileNetworkImeiPreferenceControllerTest {
        }

        val availabilityStatus = controller.availabilityStatus
        assertThat(availabilityStatus).isEqualTo(BasePreferenceController.CONDITIONALLY_UNAVAILABLE)
        assertThat(availabilityStatus).isEqualTo(BasePreferenceController.DISABLED_FOR_USER)
    }

    @Test