Merge "InstalledAppDetails: "Clear defaults" button now clears USB service settings"

This commit is contained in:
Mike Lockwood
2011-03-01 11:58:49 -08:00
committed by Android (Google) Code Review
2 changed files with 20 additions and 2 deletions

View File

@@ -48,6 +48,7 @@
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" /> <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" /> <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.STATUS_BAR" /> <uses-permission android:name="android.permission.STATUS_BAR" />
<uses-permission android:name="android.permission.MANAGE_USB" />
<application android:label="@string/settings_label" <application android:label="@string/settings_label"
android:icon="@mipmap/ic_launcher_settings" android:icon="@mipmap/ic_launcher_settings"

View File

@@ -37,13 +37,16 @@ import android.content.pm.PackageInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo; import android.content.pm.ResolveInfo;
import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.PackageManager.NameNotFoundException;
import android.hardware.usb.IUsbManager;
import android.net.Uri; import android.net.Uri;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.os.Bundle; import android.os.Bundle;
import android.os.Environment; import android.os.Environment;
import android.os.Handler; import android.os.Handler;
import android.os.IBinder;
import android.os.Message; import android.os.Message;
import android.os.RemoteException; import android.os.RemoteException;
import android.os.ServiceManager;
import android.preference.PreferenceActivity; import android.preference.PreferenceActivity;
import android.text.format.Formatter; import android.text.format.Formatter;
import android.util.Log; import android.util.Log;
@@ -79,6 +82,7 @@ public class InstalledAppDetails extends Fragment
public static final String ARG_PACKAGE_NAME = "package"; public static final String ARG_PACKAGE_NAME = "package";
private PackageManager mPm; private PackageManager mPm;
private IUsbManager mUsbManager;
private ApplicationsState mState; private ApplicationsState mState;
private ApplicationsState.AppEntry mAppEntry; private ApplicationsState.AppEntry mAppEntry;
private PackageInfo mPackageInfo; private PackageInfo mPackageInfo;
@@ -305,7 +309,9 @@ public class InstalledAppDetails extends Fragment
mState = ApplicationsState.getInstance(getActivity().getApplication()); mState = ApplicationsState.getInstance(getActivity().getApplication());
mPm = getActivity().getPackageManager(); mPm = getActivity().getPackageManager();
IBinder b = ServiceManager.getService(Context.USB_SERVICE);
mUsbManager = IUsbManager.Stub.asInterface(b);
mCanBeOnSdCardChecker = new CanBeOnSdCardChecker(); mCanBeOnSdCardChecker = new CanBeOnSdCardChecker();
} }
@@ -444,8 +450,14 @@ public class InstalledAppDetails extends Fragment
List<IntentFilter> intentList = new ArrayList<IntentFilter>(); List<IntentFilter> intentList = new ArrayList<IntentFilter>();
mPm.getPreferredActivities(intentList, prefActList, packageName); mPm.getPreferredActivities(intentList, prefActList, packageName);
if(localLOGV) Log.i(TAG, "Have "+prefActList.size()+" number of activities in prefered list"); 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)mRootView.findViewById(R.id.auto_launch); TextView autoLaunchView = (TextView)mRootView.findViewById(R.id.auto_launch);
if (prefActList.size() <= 0) { if (prefActList.size() <= 0 && !hasUsbDefaults) {
// Disable clear activities button // Disable clear activities button
autoLaunchView.setText(R.string.auto_launch_disable_text); autoLaunchView.setText(R.string.auto_launch_disable_text);
mActivitiesButton.setEnabled(false); mActivitiesButton.setEnabled(false);
@@ -784,6 +796,11 @@ public class InstalledAppDetails extends Fragment
} }
} else if(v == mActivitiesButton) { } else if(v == mActivitiesButton) {
mPm.clearPackagePreferredActivities(packageName); mPm.clearPackagePreferredActivities(packageName);
try {
mUsbManager.clearDefaults(packageName, mAppEntry.info.uid);
} catch (RemoteException e) {
Log.e(TAG, "mUsbManager.clearDefaults", e);
}
mActivitiesButton.setEnabled(false); mActivitiesButton.setEnabled(false);
} else if(v == mClearDataButton) { } else if(v == mClearDataButton) {
if (mAppEntry.info.manageSpaceActivityName != null) { if (mAppEntry.info.manageSpaceActivityName != null) {