Fix bug #17936169 subsettings activity crashes on emulator for android-21
- prevent the NPE by checking if the UsbManager is not null
Change-Id: I65114ffe66f90d6de66bb98ad841df64840278ce
diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java
index 4b1bc10..4edb45f 100755
--- a/src/com/android/settings/applications/InstalledAppDetails.java
+++ b/src/com/android/settings/applications/InstalledAppDetails.java
@@ -728,7 +728,9 @@
Log.i(TAG, "Have " + prefActList.size() + " number of activities in preferred list");
boolean hasUsbDefaults = false;
try {
- hasUsbDefaults = mUsbManager.hasDefaults(packageName, UserHandle.myUserId());
+ if (mUsbManager != null) {
+ hasUsbDefaults = mUsbManager.hasDefaults(packageName, UserHandle.myUserId());
+ }
} catch (RemoteException e) {
Log.e(TAG, "mUsbManager.hasDefaults", e);
}
@@ -1377,17 +1379,19 @@
} else if(v == mSpecialDisableButton) {
showDialogInner(DLG_SPECIAL_DISABLE, 0);
} else if(v == mActivitiesButton) {
- mPm.clearPackagePreferredActivities(packageName);
- try {
- mUsbManager.clearDefaults(packageName, UserHandle.myUserId());
- } catch (RemoteException e) {
- Log.e(TAG, "mUsbManager.clearDefaults", e);
+ if (mUsbManager != null) {
+ mPm.clearPackagePreferredActivities(packageName);
+ try {
+ mUsbManager.clearDefaults(packageName, UserHandle.myUserId());
+ } catch (RemoteException e) {
+ Log.e(TAG, "mUsbManager.clearDefaults", e);
+ }
+ mAppWidgetManager.setBindAppWidgetPermission(packageName, false);
+ TextView autoLaunchTitleView =
+ (TextView) mRootView.findViewById(R.id.auto_launch_title);
+ TextView autoLaunchView = (TextView) mRootView.findViewById(R.id.auto_launch);
+ resetLaunchDefaultsUi(autoLaunchTitleView, autoLaunchView);
}
- mAppWidgetManager.setBindAppWidgetPermission(packageName, false);
- TextView autoLaunchTitleView =
- (TextView) mRootView.findViewById(R.id.auto_launch_title);
- TextView autoLaunchView = (TextView) mRootView.findViewById(R.id.auto_launch);
- resetLaunchDefaultsUi(autoLaunchTitleView, autoLaunchView);
} else if(v == mClearDataButton) {
if (mAppEntry.info.manageSpaceActivityName != null) {
if (!Utils.isMonkeyRunning()) {