From b81e7937b37feae24773a1342084ba9fad827b39 Mon Sep 17 00:00:00 2001 From: Fabrice Di Meglio Date: Thu, 6 Nov 2014 15:16:09 -0800 Subject: [PATCH] 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 --- .../applications/InstalledAppDetails.java | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java index 4b1bc1051d8..4edb45fe888 100755 --- a/src/com/android/settings/applications/InstalledAppDetails.java +++ b/src/com/android/settings/applications/InstalledAppDetails.java @@ -728,7 +728,9 @@ public class InstalledAppDetails extends Fragment 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 @@ public class InstalledAppDetails extends Fragment } 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()) {