From 0552d3366487b27c619c055a04c81b8af0b84d33 Mon Sep 17 00:00:00 2001 From: Mike Lockwood Date: Sun, 27 Feb 2011 09:05:10 -0800 Subject: [PATCH] DO NOT MERGE: InstalledAppDetails: "Clear defaults" button now clears USB service settings The USB service caches the preferred activity preferences for USB devices and accessories and allows permission to access the hardware based on the user's selection. The "Clear defaults" button can now be used to clear these settings. Change-Id: If865df98214506cf2f1e35c8c6a3dbe319b125f2 Signed-off-by: Mike Lockwood --- AndroidManifest.xml | 1 + .../applications/InstalledAppDetails.java | 22 ++++++++++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index b0866da2b08..660a44ae406 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -41,6 +41,7 @@ + intentList = new ArrayList(); mPm.getPreferredActivities(intentList, prefActList, packageName); if(localLOGV) Log.i(TAG, "Have "+prefActList.size()+" number of activities in prefered list"); + boolean hasUsbDefaults = false; + try { + hasUsbDefaults = mUsbManager.hasDefaults(packageName, mAppEntry.info.uid); + } catch (RemoteException e) { + Log.e(TAG, "mUsbManager.hasDefaults", e); + } TextView autoLaunchView = (TextView)findViewById(R.id.auto_launch); - if (prefActList.size() <= 0) { + if (prefActList.size() <= 0 && !hasUsbDefaults) { // Disable clear activities button autoLaunchView.setText(R.string.auto_launch_disable_text); mActivitiesButton.setEnabled(false); @@ -431,7 +442,7 @@ public class InstalledAppDetails extends Activity mActivitiesButton.setEnabled(true); mActivitiesButton.setOnClickListener(this); } - + // Security permissions section LinearLayout permsView = (LinearLayout) findViewById(R.id.permissions_section); AppSecurityPermissions asp = new AppSecurityPermissions(this, packageName); @@ -740,6 +751,11 @@ public class InstalledAppDetails extends Activity } } else if(v == mActivitiesButton) { mPm.clearPackagePreferredActivities(packageName); + try { + mUsbManager.clearDefaults(packageName, mAppEntry.info.uid); + } catch (RemoteException e) { + Log.e(TAG, "mUsbManager.clearDefaults", e); + } mActivitiesButton.setEnabled(false); } else if(v == mClearDataButton) { if (mAppEntry.info.manageSpaceActivityName != null) {