Fix Settings app crash for devices with no USB support.
On emulator and any device that does not support USB connection, the Settings app crashes as soon as the user tries to view the details of an installed app. This is because the InstalledAppDetails activity assumes that the USB service is always started, which is no longer true due to a change in SystemServer.java (frameworks/base, Change-Id I6dad511c652bcacc085f27ede5f8f22a6982c6bd). Adding null checks fixes this issue. Change-Id: I85263fb795ee06bd61ba28ec12a7161c1f17f4cc Signed-off-by: Yu Ning <yu.ning@intel.com>
This commit is contained in:
@@ -727,10 +727,12 @@ public class InstalledAppDetails extends Fragment
|
||||
if (localLOGV)
|
||||
Log.i(TAG, "Have " + prefActList.size() + " number of activities in preferred list");
|
||||
boolean hasUsbDefaults = false;
|
||||
try {
|
||||
hasUsbDefaults = mUsbManager.hasDefaults(packageName, UserHandle.myUserId());
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "mUsbManager.hasDefaults", e);
|
||||
if (mUsbManager != null) { // may be null because USB service is optional
|
||||
try {
|
||||
hasUsbDefaults = mUsbManager.hasDefaults(packageName, UserHandle.myUserId());
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "mUsbManager.hasDefaults", e);
|
||||
}
|
||||
}
|
||||
boolean hasBindAppWidgetPermission =
|
||||
mAppWidgetManager.hasBindAppWidgetPermission(mAppEntry.info.packageName);
|
||||
@@ -1378,10 +1380,12 @@ public class InstalledAppDetails extends Fragment
|
||||
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) { // may be null because USB service is optional
|
||||
try {
|
||||
mUsbManager.clearDefaults(packageName, UserHandle.myUserId());
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "mUsbManager.clearDefaults", e);
|
||||
}
|
||||
}
|
||||
mAppWidgetManager.setBindAppWidgetPermission(packageName, false);
|
||||
TextView autoLaunchTitleView =
|
||||
|
||||
Reference in New Issue
Block a user