summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/development/OemUnlockPreferenceController.java
diff options
context:
space:
mode:
authorbohu <bohu@google.com>2019-02-14 08:23:25 -0800
committerbohu <bohu@google.com>2019-02-21 08:08:12 -0800
commit9bc365febd0204ae043613422649bd779d215fb8 (patch)
treeac3420f5eecfdf74e6e5e82e41ac4164ec324614 /src/com/android/settings/development/OemUnlockPreferenceController.java
parentcd15971f1402416d19885fc99164e16cd9897d86 (diff)
downloadpackages_apps_Settings-9bc365febd0204ae043613422649bd779d215fb8.tar.gz
packages_apps_Settings-9bc365febd0204ae043613422649bd779d215fb8.tar.bz2
packages_apps_Settings-9bc365febd0204ae043613422649bd779d215fb8.zip
developer-options: avoid oem-unlock preference controller crash
If there is no FEATURE_TELEPHONY_CARRIERLOCK. BUG: 123583878 Test: lunch sdk_phone_x86-eng make -j emulator the Settings->System->Developer options should not crash Test: make RunSettingsRoboTests ROBOTEST_FILTER=OemUnlockPreferenceControllerTest should all pass (12 tests: 11 existing and 1 new) Change-Id: I18c08c1ff1a7860616b0081ede4eb19dcfa8814b
Diffstat (limited to 'src/com/android/settings/development/OemUnlockPreferenceController.java')
-rw-r--r--src/com/android/settings/development/OemUnlockPreferenceController.java14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/com/android/settings/development/OemUnlockPreferenceController.java b/src/com/android/settings/development/OemUnlockPreferenceController.java
index b6b4d1765e..c6707d6511 100644
--- a/src/com/android/settings/development/OemUnlockPreferenceController.java
+++ b/src/com/android/settings/development/OemUnlockPreferenceController.java
@@ -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;
@@ -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;
@@ -52,7 +55,16 @@ public class OemUnlockPreferenceController extends DeveloperOptionsPreferenceCon
public OemUnlockPreferenceController(Context context, Activity activity,
DevelopmentSettingsDashboardFragment fragment) {
super(context);
- mOemLockManager = (OemLockManager) context.getSystemService(Context.OEM_LOCK_SERVICE);
+
+ 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;