Loading src/com/android/settings/development/OemUnlockPreferenceController.java +13 −1 Original line number Diff line number Diff line Loading @@ -21,11 +21,13 @@ import static com.android.settings.development.DevelopmentOptionsActivityRequest import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.res.Resources; import android.os.UserHandle; import android.os.UserManager; import android.service.oemlock.OemLockManager; import android.telephony.TelephonyManager; import android.util.Log; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; Loading @@ -41,6 +43,7 @@ public class OemUnlockPreferenceController extends DeveloperOptionsPreferenceCon Preference.OnPreferenceChangeListener, PreferenceControllerMixin, OnActivityResultListener { private static final String PREFERENCE_KEY = "oem_unlock_enable"; private static final String TAG = "OemUnlockPreferenceController"; private final OemLockManager mOemLockManager; private final UserManager mUserManager; Loading @@ -52,7 +55,16 @@ public class OemUnlockPreferenceController extends DeveloperOptionsPreferenceCon public OemUnlockPreferenceController(Context context, Activity activity, DevelopmentSettingsDashboardFragment fragment) { super(context); if (context.getPackageManager().hasSystemFeature(PackageManager .FEATURE_TELEPHONY_CARRIERLOCK)) { mOemLockManager = (OemLockManager) context.getSystemService(Context.OEM_LOCK_SERVICE); } else { mOemLockManager = null; Log.i(TAG, "Missing FEATURE_TELEPHONY_CARRIERLOCK, OemUnlock Preference" + " Controller disabled."); } mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE); mTelephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); mFragment = fragment; Loading tests/robotests/src/com/android/settings/development/OemUnlockPreferenceControllerTest.java +16 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import static org.mockito.Mockito.when; import android.app.Activity; import android.content.Context; import android.content.pm.PackageManager; import android.content.res.Resources; import android.os.UserManager; import android.service.oemlock.OemLockManager; Loading Loading @@ -60,6 +61,8 @@ public class OemUnlockPreferenceControllerTest { @Mock private RestrictedSwitchPreference mPreference; @Mock private PackageManager mPackageManager; @Mock private PreferenceScreen mPreferenceScreen; @Mock private OemLockManager mOemLockManager; Loading @@ -74,6 +77,9 @@ public class OemUnlockPreferenceControllerTest { @Before public void setup() { MockitoAnnotations.initMocks(this); when(mContext.getPackageManager()).thenReturn(mPackageManager); when(mContext.getPackageManager().hasSystemFeature(PackageManager .FEATURE_TELEPHONY_CARRIERLOCK)).thenReturn(true); when(mContext.getSystemService(Context.OEM_LOCK_SERVICE)).thenReturn(mOemLockManager); when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager); when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager); Loading @@ -86,6 +92,16 @@ public class OemUnlockPreferenceControllerTest { mController.displayPreference(mPreferenceScreen); } @Test public void OemUnlockPreferenceController_shouldNotCrashWhenMissingFEATURE_TELEPHONY_CARRIERLOCK() { when(mContext.getPackageManager().hasSystemFeature(PackageManager .FEATURE_TELEPHONY_CARRIERLOCK)).thenReturn(false); when(mContext.getSystemService(Context.OEM_LOCK_SERVICE)).thenThrow (new RuntimeException()); new OemUnlockPreferenceController(mContext, mActivity, mFragment); } @Test public void isAvailable_shouldReturnTrueWhenOemLockManagerIsNotNull() { boolean returnValue = mController.isAvailable(); Loading Loading
src/com/android/settings/development/OemUnlockPreferenceController.java +13 −1 Original line number Diff line number Diff line Loading @@ -21,11 +21,13 @@ import static com.android.settings.development.DevelopmentOptionsActivityRequest import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.res.Resources; import android.os.UserHandle; import android.os.UserManager; import android.service.oemlock.OemLockManager; import android.telephony.TelephonyManager; import android.util.Log; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; Loading @@ -41,6 +43,7 @@ public class OemUnlockPreferenceController extends DeveloperOptionsPreferenceCon Preference.OnPreferenceChangeListener, PreferenceControllerMixin, OnActivityResultListener { private static final String PREFERENCE_KEY = "oem_unlock_enable"; private static final String TAG = "OemUnlockPreferenceController"; private final OemLockManager mOemLockManager; private final UserManager mUserManager; Loading @@ -52,7 +55,16 @@ public class OemUnlockPreferenceController extends DeveloperOptionsPreferenceCon public OemUnlockPreferenceController(Context context, Activity activity, DevelopmentSettingsDashboardFragment fragment) { super(context); if (context.getPackageManager().hasSystemFeature(PackageManager .FEATURE_TELEPHONY_CARRIERLOCK)) { mOemLockManager = (OemLockManager) context.getSystemService(Context.OEM_LOCK_SERVICE); } else { mOemLockManager = null; Log.i(TAG, "Missing FEATURE_TELEPHONY_CARRIERLOCK, OemUnlock Preference" + " Controller disabled."); } mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE); mTelephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); mFragment = fragment; Loading
tests/robotests/src/com/android/settings/development/OemUnlockPreferenceControllerTest.java +16 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import static org.mockito.Mockito.when; import android.app.Activity; import android.content.Context; import android.content.pm.PackageManager; import android.content.res.Resources; import android.os.UserManager; import android.service.oemlock.OemLockManager; Loading Loading @@ -60,6 +61,8 @@ public class OemUnlockPreferenceControllerTest { @Mock private RestrictedSwitchPreference mPreference; @Mock private PackageManager mPackageManager; @Mock private PreferenceScreen mPreferenceScreen; @Mock private OemLockManager mOemLockManager; Loading @@ -74,6 +77,9 @@ public class OemUnlockPreferenceControllerTest { @Before public void setup() { MockitoAnnotations.initMocks(this); when(mContext.getPackageManager()).thenReturn(mPackageManager); when(mContext.getPackageManager().hasSystemFeature(PackageManager .FEATURE_TELEPHONY_CARRIERLOCK)).thenReturn(true); when(mContext.getSystemService(Context.OEM_LOCK_SERVICE)).thenReturn(mOemLockManager); when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager); when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager); Loading @@ -86,6 +92,16 @@ public class OemUnlockPreferenceControllerTest { mController.displayPreference(mPreferenceScreen); } @Test public void OemUnlockPreferenceController_shouldNotCrashWhenMissingFEATURE_TELEPHONY_CARRIERLOCK() { when(mContext.getPackageManager().hasSystemFeature(PackageManager .FEATURE_TELEPHONY_CARRIERLOCK)).thenReturn(false); when(mContext.getSystemService(Context.OEM_LOCK_SERVICE)).thenThrow (new RuntimeException()); new OemUnlockPreferenceController(mContext, mActivity, mFragment); } @Test public void isAvailable_shouldReturnTrueWhenOemLockManagerIsNotNull() { boolean returnValue = mController.isAvailable(); Loading