Loading core/java/android/app/ContextImpl.java +1 −0 Original line number Original line Diff line number Diff line Loading @@ -1703,6 +1703,7 @@ class ContextImpl extends Context { if (packageName.equals("system") || packageName.equals("android")) { if (packageName.equals("system") || packageName.equals("android")) { final ContextImpl context = new ContextImpl(mMainThread.getSystemContext()); final ContextImpl context = new ContextImpl(mMainThread.getSystemContext()); context.mBasePackageName = mBasePackageName; context.mBasePackageName = mBasePackageName; context.mUser = user; return context; return context; } } Loading core/java/android/hardware/usb/IUsbManager.aidl +4 −4 Original line number Original line Diff line number Diff line Loading @@ -44,12 +44,12 @@ interface IUsbManager /* Sets the default package for a USB device /* Sets the default package for a USB device * (or clears it if the package name is null) * (or clears it if the package name is null) */ */ void setDevicePackage(in UsbDevice device, String packageName); void setDevicePackage(in UsbDevice device, String packageName, int userId); /* Sets the default package for a USB accessory /* Sets the default package for a USB accessory * (or clears it if the package name is null) * (or clears it if the package name is null) */ */ void setAccessoryPackage(in UsbAccessory accessory, String packageName); void setAccessoryPackage(in UsbAccessory accessory, String packageName, int userId); /* Returns true if the caller has permission to access the device. */ /* Returns true if the caller has permission to access the device. */ boolean hasDevicePermission(in UsbDevice device); boolean hasDevicePermission(in UsbDevice device); Loading Loading @@ -77,10 +77,10 @@ interface IUsbManager void grantAccessoryPermission(in UsbAccessory accessory, int uid); void grantAccessoryPermission(in UsbAccessory accessory, int uid); /* Returns true if the USB manager has default preferences or permissions for the package */ /* Returns true if the USB manager has default preferences or permissions for the package */ boolean hasDefaults(String packageName); boolean hasDefaults(String packageName, int userId); /* Clears default preferences and permissions for the package */ /* Clears default preferences and permissions for the package */ void clearDefaults(String packageName); void clearDefaults(String packageName, int userId); /* Sets the current USB function. */ /* Sets the current USB function. */ void setCurrentFunction(String function, boolean makeDefault); void setCurrentFunction(String function, boolean makeDefault); Loading packages/SystemUI/src/com/android/systemui/usb/UsbAccessoryUriActivity.java +2 −1 Original line number Original line Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.net.Uri; import android.hardware.usb.UsbAccessory; import android.hardware.usb.UsbAccessory; import android.hardware.usb.UsbManager; import android.hardware.usb.UsbManager; import android.os.Bundle; import android.os.Bundle; import android.os.UserHandle; import android.util.Log; import android.util.Log; import com.android.internal.app.AlertActivity; import com.android.internal.app.AlertActivity; Loading Loading @@ -90,7 +91,7 @@ public class UsbAccessoryUriActivity extends AlertActivity intent.addCategory(Intent.CATEGORY_BROWSABLE); intent.addCategory(Intent.CATEGORY_BROWSABLE); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); try { try { startActivity(intent); startActivityAsUser(intent, UserHandle.CURRENT); } catch (ActivityNotFoundException e) { } catch (ActivityNotFoundException e) { Log.e(TAG, "startActivity failed for " + mUri); Log.e(TAG, "startActivity failed for " + mUri); } } Loading packages/SystemUI/src/com/android/systemui/usb/UsbConfirmActivity.java +14 −15 Original line number Original line Diff line number Diff line Loading @@ -16,23 +16,21 @@ package com.android.systemui.usb; package com.android.systemui.usb; import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog; import android.content.ComponentName; import android.content.ComponentName; import android.content.Context; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface; import android.content.Intent; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.ResolveInfo; import android.hardware.usb.IUsbManager; import android.hardware.usb.IUsbManager; import android.hardware.usb.UsbDevice; import android.hardware.usb.UsbAccessory; import android.hardware.usb.UsbAccessory; import android.hardware.usb.UsbDevice; import android.hardware.usb.UsbManager; import android.hardware.usb.UsbManager; import android.os.Bundle; import android.os.Bundle; import android.os.IBinder; import android.os.IBinder; import android.os.RemoteException; import android.os.ServiceManager; import android.os.ServiceManager; import android.os.UserHandle; import android.util.Log; import android.util.Log; import android.view.LayoutInflater; import android.view.LayoutInflater; import android.view.View; import android.view.View; Loading @@ -42,7 +40,6 @@ import android.widget.TextView; import com.android.internal.app.AlertActivity; import com.android.internal.app.AlertActivity; import com.android.internal.app.AlertController; import com.android.internal.app.AlertController; import com.android.systemui.R; import com.android.systemui.R; public class UsbConfirmActivity extends AlertActivity public class UsbConfirmActivity extends AlertActivity Loading Loading @@ -117,7 +114,8 @@ public class UsbConfirmActivity extends AlertActivity try { try { IBinder b = ServiceManager.getService(USB_SERVICE); IBinder b = ServiceManager.getService(USB_SERVICE); IUsbManager service = IUsbManager.Stub.asInterface(b); IUsbManager service = IUsbManager.Stub.asInterface(b); int uid = mResolveInfo.activityInfo.applicationInfo.uid; final int uid = mResolveInfo.activityInfo.applicationInfo.uid; final int userId = UserHandle.myUserId(); boolean alwaysUse = mAlwaysUse.isChecked(); boolean alwaysUse = mAlwaysUse.isChecked(); Intent intent = null; Intent intent = null; Loading @@ -129,9 +127,10 @@ public class UsbConfirmActivity extends AlertActivity service.grantDevicePermission(mDevice, uid); service.grantDevicePermission(mDevice, uid); // set or clear default setting // set or clear default setting if (alwaysUse) { if (alwaysUse) { service.setDevicePackage(mDevice, mResolveInfo.activityInfo.packageName); service.setDevicePackage( mDevice, mResolveInfo.activityInfo.packageName, userId); } else { } else { service.setDevicePackage(mDevice, null); service.setDevicePackage(mDevice, null, userId); } } } else if (mAccessory != null) { } else if (mAccessory != null) { intent = new Intent(UsbManager.ACTION_USB_ACCESSORY_ATTACHED); intent = new Intent(UsbManager.ACTION_USB_ACCESSORY_ATTACHED); Loading @@ -141,10 +140,10 @@ public class UsbConfirmActivity extends AlertActivity service.grantAccessoryPermission(mAccessory, uid); service.grantAccessoryPermission(mAccessory, uid); // set or clear default setting // set or clear default setting if (alwaysUse) { if (alwaysUse) { service.setAccessoryPackage(mAccessory, service.setAccessoryPackage( mResolveInfo.activityInfo.packageName); mAccessory, mResolveInfo.activityInfo.packageName, userId); } else { } else { service.setAccessoryPackage(mAccessory, null); service.setAccessoryPackage(mAccessory, null, userId); } } } } Loading @@ -152,7 +151,7 @@ public class UsbConfirmActivity extends AlertActivity intent.setComponent( intent.setComponent( new ComponentName(mResolveInfo.activityInfo.packageName, new ComponentName(mResolveInfo.activityInfo.packageName, mResolveInfo.activityInfo.name)); mResolveInfo.activityInfo.name)); startActivity(intent); startActivityAsUser(intent, new UserHandle(userId)); } catch (Exception e) { } catch (Exception e) { Log.e(TAG, "Unable to start activity", e); Log.e(TAG, "Unable to start activity", e); } } Loading packages/SystemUI/src/com/android/systemui/usb/UsbPermissionActivity.java +6 −3 Original line number Original line Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.os.Bundle; import android.os.IBinder; import android.os.IBinder; import android.os.RemoteException; import android.os.RemoteException; import android.os.ServiceManager; import android.os.ServiceManager; import android.os.UserHandle; import android.util.Log; import android.util.Log; import android.view.LayoutInflater; import android.view.LayoutInflater; import android.view.View; import android.view.View; Loading Loading @@ -67,7 +68,7 @@ public class UsbPermissionActivity extends AlertActivity mDevice = (UsbDevice)intent.getParcelableExtra(UsbManager.EXTRA_DEVICE); mDevice = (UsbDevice)intent.getParcelableExtra(UsbManager.EXTRA_DEVICE); mAccessory = (UsbAccessory)intent.getParcelableExtra(UsbManager.EXTRA_ACCESSORY); mAccessory = (UsbAccessory)intent.getParcelableExtra(UsbManager.EXTRA_ACCESSORY); mPendingIntent = (PendingIntent)intent.getParcelableExtra(Intent.EXTRA_INTENT); mPendingIntent = (PendingIntent)intent.getParcelableExtra(Intent.EXTRA_INTENT); mUid = intent.getIntExtra("uid", 0); mUid = intent.getIntExtra(Intent.EXTRA_UID, -1); mPackageName = intent.getStringExtra("package"); mPackageName = intent.getStringExtra("package"); PackageManager packageManager = getPackageManager(); PackageManager packageManager = getPackageManager(); Loading Loading @@ -128,7 +129,8 @@ public class UsbPermissionActivity extends AlertActivity if (mPermissionGranted) { if (mPermissionGranted) { service.grantDevicePermission(mDevice, mUid); service.grantDevicePermission(mDevice, mUid); if (mAlwaysUse.isChecked()) { if (mAlwaysUse.isChecked()) { service.setDevicePackage(mDevice, mPackageName); final int userId = UserHandle.getUserId(mUid); service.setDevicePackage(mDevice, mPackageName, userId); } } } } } } Loading @@ -137,7 +139,8 @@ public class UsbPermissionActivity extends AlertActivity if (mPermissionGranted) { if (mPermissionGranted) { service.grantAccessoryPermission(mAccessory, mUid); service.grantAccessoryPermission(mAccessory, mUid); if (mAlwaysUse.isChecked()) { if (mAlwaysUse.isChecked()) { service.setAccessoryPackage(mAccessory, mPackageName); final int userId = UserHandle.getUserId(mUid); service.setAccessoryPackage(mAccessory, mPackageName, userId); } } } } } } Loading Loading
core/java/android/app/ContextImpl.java +1 −0 Original line number Original line Diff line number Diff line Loading @@ -1703,6 +1703,7 @@ class ContextImpl extends Context { if (packageName.equals("system") || packageName.equals("android")) { if (packageName.equals("system") || packageName.equals("android")) { final ContextImpl context = new ContextImpl(mMainThread.getSystemContext()); final ContextImpl context = new ContextImpl(mMainThread.getSystemContext()); context.mBasePackageName = mBasePackageName; context.mBasePackageName = mBasePackageName; context.mUser = user; return context; return context; } } Loading
core/java/android/hardware/usb/IUsbManager.aidl +4 −4 Original line number Original line Diff line number Diff line Loading @@ -44,12 +44,12 @@ interface IUsbManager /* Sets the default package for a USB device /* Sets the default package for a USB device * (or clears it if the package name is null) * (or clears it if the package name is null) */ */ void setDevicePackage(in UsbDevice device, String packageName); void setDevicePackage(in UsbDevice device, String packageName, int userId); /* Sets the default package for a USB accessory /* Sets the default package for a USB accessory * (or clears it if the package name is null) * (or clears it if the package name is null) */ */ void setAccessoryPackage(in UsbAccessory accessory, String packageName); void setAccessoryPackage(in UsbAccessory accessory, String packageName, int userId); /* Returns true if the caller has permission to access the device. */ /* Returns true if the caller has permission to access the device. */ boolean hasDevicePermission(in UsbDevice device); boolean hasDevicePermission(in UsbDevice device); Loading Loading @@ -77,10 +77,10 @@ interface IUsbManager void grantAccessoryPermission(in UsbAccessory accessory, int uid); void grantAccessoryPermission(in UsbAccessory accessory, int uid); /* Returns true if the USB manager has default preferences or permissions for the package */ /* Returns true if the USB manager has default preferences or permissions for the package */ boolean hasDefaults(String packageName); boolean hasDefaults(String packageName, int userId); /* Clears default preferences and permissions for the package */ /* Clears default preferences and permissions for the package */ void clearDefaults(String packageName); void clearDefaults(String packageName, int userId); /* Sets the current USB function. */ /* Sets the current USB function. */ void setCurrentFunction(String function, boolean makeDefault); void setCurrentFunction(String function, boolean makeDefault); Loading
packages/SystemUI/src/com/android/systemui/usb/UsbAccessoryUriActivity.java +2 −1 Original line number Original line Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.net.Uri; import android.hardware.usb.UsbAccessory; import android.hardware.usb.UsbAccessory; import android.hardware.usb.UsbManager; import android.hardware.usb.UsbManager; import android.os.Bundle; import android.os.Bundle; import android.os.UserHandle; import android.util.Log; import android.util.Log; import com.android.internal.app.AlertActivity; import com.android.internal.app.AlertActivity; Loading Loading @@ -90,7 +91,7 @@ public class UsbAccessoryUriActivity extends AlertActivity intent.addCategory(Intent.CATEGORY_BROWSABLE); intent.addCategory(Intent.CATEGORY_BROWSABLE); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); try { try { startActivity(intent); startActivityAsUser(intent, UserHandle.CURRENT); } catch (ActivityNotFoundException e) { } catch (ActivityNotFoundException e) { Log.e(TAG, "startActivity failed for " + mUri); Log.e(TAG, "startActivity failed for " + mUri); } } Loading
packages/SystemUI/src/com/android/systemui/usb/UsbConfirmActivity.java +14 −15 Original line number Original line Diff line number Diff line Loading @@ -16,23 +16,21 @@ package com.android.systemui.usb; package com.android.systemui.usb; import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog; import android.content.ComponentName; import android.content.ComponentName; import android.content.Context; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface; import android.content.Intent; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.ResolveInfo; import android.hardware.usb.IUsbManager; import android.hardware.usb.IUsbManager; import android.hardware.usb.UsbDevice; import android.hardware.usb.UsbAccessory; import android.hardware.usb.UsbAccessory; import android.hardware.usb.UsbDevice; import android.hardware.usb.UsbManager; import android.hardware.usb.UsbManager; import android.os.Bundle; import android.os.Bundle; import android.os.IBinder; import android.os.IBinder; import android.os.RemoteException; import android.os.ServiceManager; import android.os.ServiceManager; import android.os.UserHandle; import android.util.Log; import android.util.Log; import android.view.LayoutInflater; import android.view.LayoutInflater; import android.view.View; import android.view.View; Loading @@ -42,7 +40,6 @@ import android.widget.TextView; import com.android.internal.app.AlertActivity; import com.android.internal.app.AlertActivity; import com.android.internal.app.AlertController; import com.android.internal.app.AlertController; import com.android.systemui.R; import com.android.systemui.R; public class UsbConfirmActivity extends AlertActivity public class UsbConfirmActivity extends AlertActivity Loading Loading @@ -117,7 +114,8 @@ public class UsbConfirmActivity extends AlertActivity try { try { IBinder b = ServiceManager.getService(USB_SERVICE); IBinder b = ServiceManager.getService(USB_SERVICE); IUsbManager service = IUsbManager.Stub.asInterface(b); IUsbManager service = IUsbManager.Stub.asInterface(b); int uid = mResolveInfo.activityInfo.applicationInfo.uid; final int uid = mResolveInfo.activityInfo.applicationInfo.uid; final int userId = UserHandle.myUserId(); boolean alwaysUse = mAlwaysUse.isChecked(); boolean alwaysUse = mAlwaysUse.isChecked(); Intent intent = null; Intent intent = null; Loading @@ -129,9 +127,10 @@ public class UsbConfirmActivity extends AlertActivity service.grantDevicePermission(mDevice, uid); service.grantDevicePermission(mDevice, uid); // set or clear default setting // set or clear default setting if (alwaysUse) { if (alwaysUse) { service.setDevicePackage(mDevice, mResolveInfo.activityInfo.packageName); service.setDevicePackage( mDevice, mResolveInfo.activityInfo.packageName, userId); } else { } else { service.setDevicePackage(mDevice, null); service.setDevicePackage(mDevice, null, userId); } } } else if (mAccessory != null) { } else if (mAccessory != null) { intent = new Intent(UsbManager.ACTION_USB_ACCESSORY_ATTACHED); intent = new Intent(UsbManager.ACTION_USB_ACCESSORY_ATTACHED); Loading @@ -141,10 +140,10 @@ public class UsbConfirmActivity extends AlertActivity service.grantAccessoryPermission(mAccessory, uid); service.grantAccessoryPermission(mAccessory, uid); // set or clear default setting // set or clear default setting if (alwaysUse) { if (alwaysUse) { service.setAccessoryPackage(mAccessory, service.setAccessoryPackage( mResolveInfo.activityInfo.packageName); mAccessory, mResolveInfo.activityInfo.packageName, userId); } else { } else { service.setAccessoryPackage(mAccessory, null); service.setAccessoryPackage(mAccessory, null, userId); } } } } Loading @@ -152,7 +151,7 @@ public class UsbConfirmActivity extends AlertActivity intent.setComponent( intent.setComponent( new ComponentName(mResolveInfo.activityInfo.packageName, new ComponentName(mResolveInfo.activityInfo.packageName, mResolveInfo.activityInfo.name)); mResolveInfo.activityInfo.name)); startActivity(intent); startActivityAsUser(intent, new UserHandle(userId)); } catch (Exception e) { } catch (Exception e) { Log.e(TAG, "Unable to start activity", e); Log.e(TAG, "Unable to start activity", e); } } Loading
packages/SystemUI/src/com/android/systemui/usb/UsbPermissionActivity.java +6 −3 Original line number Original line Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.os.Bundle; import android.os.IBinder; import android.os.IBinder; import android.os.RemoteException; import android.os.RemoteException; import android.os.ServiceManager; import android.os.ServiceManager; import android.os.UserHandle; import android.util.Log; import android.util.Log; import android.view.LayoutInflater; import android.view.LayoutInflater; import android.view.View; import android.view.View; Loading Loading @@ -67,7 +68,7 @@ public class UsbPermissionActivity extends AlertActivity mDevice = (UsbDevice)intent.getParcelableExtra(UsbManager.EXTRA_DEVICE); mDevice = (UsbDevice)intent.getParcelableExtra(UsbManager.EXTRA_DEVICE); mAccessory = (UsbAccessory)intent.getParcelableExtra(UsbManager.EXTRA_ACCESSORY); mAccessory = (UsbAccessory)intent.getParcelableExtra(UsbManager.EXTRA_ACCESSORY); mPendingIntent = (PendingIntent)intent.getParcelableExtra(Intent.EXTRA_INTENT); mPendingIntent = (PendingIntent)intent.getParcelableExtra(Intent.EXTRA_INTENT); mUid = intent.getIntExtra("uid", 0); mUid = intent.getIntExtra(Intent.EXTRA_UID, -1); mPackageName = intent.getStringExtra("package"); mPackageName = intent.getStringExtra("package"); PackageManager packageManager = getPackageManager(); PackageManager packageManager = getPackageManager(); Loading Loading @@ -128,7 +129,8 @@ public class UsbPermissionActivity extends AlertActivity if (mPermissionGranted) { if (mPermissionGranted) { service.grantDevicePermission(mDevice, mUid); service.grantDevicePermission(mDevice, mUid); if (mAlwaysUse.isChecked()) { if (mAlwaysUse.isChecked()) { service.setDevicePackage(mDevice, mPackageName); final int userId = UserHandle.getUserId(mUid); service.setDevicePackage(mDevice, mPackageName, userId); } } } } } } Loading @@ -137,7 +139,8 @@ public class UsbPermissionActivity extends AlertActivity if (mPermissionGranted) { if (mPermissionGranted) { service.grantAccessoryPermission(mAccessory, mUid); service.grantAccessoryPermission(mAccessory, mUid); if (mAlwaysUse.isChecked()) { if (mAlwaysUse.isChecked()) { service.setAccessoryPackage(mAccessory, mPackageName); final int userId = UserHandle.getUserId(mUid); service.setAccessoryPackage(mAccessory, mPackageName, userId); } } } } } } Loading