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

Commit 9d918db3 authored by Vineeta Srivastava's avatar Vineeta Srivastava Committed by Android (Google) Code Review
Browse files

Merge "UsbDeviceManager: Add back support for persistent property" into mnc-dev

parents 7bc8f51a 84dce3c9
Loading
Loading
Loading
Loading
+18 −6
Original line number Diff line number Diff line
@@ -319,6 +319,7 @@ public class UsbDeviceManager {
        private String mCurrentFunctions;
        private UsbAccessory mCurrentAccessory;
        private int mUsbNotificationId;
        private String mDefaultFunctions;
        private boolean mAdbNotificationShown;
        private int mCurrentUser = UserHandle.USER_NULL;

@@ -341,12 +342,18 @@ public class UsbDeviceManager {
        public UsbHandler(Looper looper) {
            super(looper);
            try {
                // Special note about persist.sys.usb.config: We only ever look at the adb value
                // from that property. Other values are ignored. persist.sys.usb.config is now
                // only used to determine if adb is enabled or not.
                // TODO: rename persist.sys.usb.config to something more descriptive.
                // persist.sys.usb.config should never be unset.  But if it is, set it to "adb"
                // so we have a chance of debugging what happened.
                mDefaultFunctions = SystemProperties.get("persist.sys.usb.config", "adb");

                // sanity check the sys.usb.config system property
                // this may be necessary if we crashed while switching USB configurations
                String config = SystemProperties.get("sys.usb.config", "none");
                if (!config.equals(mDefaultFunctions)) {
                    Slog.w(TAG, "resetting config to persistent property: " + mDefaultFunctions);
                    SystemProperties.set("sys.usb.config", mDefaultFunctions);
                }

                mAdbEnabled = containsFunction(
                        SystemProperties.get(UsbManager.ADB_PERSISTENT_PROPERTY, "adb"),
@@ -414,11 +421,11 @@ public class UsbDeviceManager {
        }

        private void updatePersistentProperty() {
            String newValue = mAdbEnabled ? "adb" : "none";
            String newValue = getDefaultFunctions();
            String value = SystemProperties.get(UsbManager.ADB_PERSISTENT_PROPERTY);
            if (DEBUG) { Slog.d(TAG, "updatePersistentProperty newValue=" + newValue + " value=" + value); }
            if (!newValue.equals(value)) {
                SystemProperties.set(UsbManager.ADB_PERSISTENT_PROPERTY, mAdbEnabled ? "adb" : "none");
                SystemProperties.set(UsbManager.ADB_PERSISTENT_PROPERTY, getDefaultFunctions());
            }
            waitForState(newValue);
        }
@@ -797,7 +804,12 @@ public class UsbDeviceManager {
        }

        private String getDefaultFunctions() {
            return mAdbEnabled ? UsbManager.USB_FUNCTION_ADB : UsbManager.USB_FUNCTION_MTP;
            UserManager userManager = (UserManager)mContext.getSystemService(Context.USER_SERVICE);
            if(userManager.hasUserRestriction(UserManager.DISALLOW_USB_FILE_TRANSFER,
                new UserHandle(mCurrentUser))) {
               return "none";
             }
             return mDefaultFunctions;
        }

        public void dump(FileDescriptor fd, PrintWriter pw) {