Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0552d336 authored by Mike Lockwood's avatar Mike Lockwood
Browse files

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: default avatarMike Lockwood <lockwood@android.com>
parent bd044818
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@
    <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
    <uses-permission android:name="com.android.launcher.permission.WRITE_SETTINGS" />
    <uses-permission android:name="android.permission.MOVE_PACKAGE" />
    <uses-permission android:name="android.permission.MANAGE_USB" />

    <application android:label="@string/settings_label"
            android:icon="@drawable/ic_launcher_settings"
+19 −3
Original line number Diff line number Diff line
@@ -37,10 +37,12 @@ import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.pm.PackageManager.NameNotFoundException;
import android.hardware.usb.IUsbManager;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.os.RemoteException;
import android.os.ServiceManager;
@@ -74,6 +76,7 @@ public class InstalledAppDetails extends Activity
    private static final boolean localLOGV = false;
    
    private PackageManager mPm;
    private IUsbManager mUsbManager;
    private ApplicationsState mState;
    private ApplicationsState.AppEntry mAppEntry;
    private PackageInfo mPackageInfo;
@@ -294,6 +297,8 @@ public class InstalledAppDetails extends Activity
        
        mState = ApplicationsState.getInstance(getApplication());
        mPm = getPackageManager();
        IBinder b = ServiceManager.getService(Context.USB_SERVICE);
        mUsbManager = IUsbManager.Stub.asInterface(b);

        mCanBeOnSdCardChecker = new CanBeOnSdCardChecker();
        
@@ -421,8 +426,14 @@ public class InstalledAppDetails extends Activity
        List<IntentFilter> intentList = new ArrayList<IntentFilter>();
        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);
@@ -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) {