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

Commit 23c6d928 authored by Android Build Merger (Role)'s avatar Android Build Merger (Role) Committed by Android (Google) Code Review
Browse files

Merge changes Idf939fd3,I6ae3f730 into nyc-mr1-dev-plus-aosp

* changes:
  Merge \"Handle USB power role \'sink\'\" into nyc-mr1-dev am: d021ba34
  Handle USB power role \'sink\' am: 01355161
parents eba36e8d 74206f05
Loading
Loading
Loading
Loading
+22 −3
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ import android.util.Pair;
import android.util.Slog;

import com.android.internal.annotations.GuardedBy;
import com.android.internal.os.SomeArgs;
import com.android.internal.util.IndentingPrintWriter;
import com.android.server.FgThread;

@@ -320,6 +321,7 @@ public class UsbDeviceManager {
        private boolean mConnected;
        private boolean mHostConnected;
        private boolean mSourcePower;
        private boolean mSinkPower;
        private boolean mConfigured;
        private boolean mUsbDataUnlocked;
        private String mCurrentFunctions;
@@ -401,7 +403,19 @@ public class UsbDeviceManager {
        public void updateHostState(UsbPort port, UsbPortStatus status) {
            boolean hostConnected = status.getCurrentDataRole() == UsbPort.DATA_ROLE_HOST;
            boolean sourcePower = status.getCurrentPowerRole() == UsbPort.POWER_ROLE_SOURCE;
            obtainMessage(MSG_UPDATE_HOST_STATE, hostConnected ? 1 :0, sourcePower ? 1 :0).sendToTarget();
            boolean sinkPower = status.getCurrentPowerRole() == UsbPort.POWER_ROLE_SINK;

            if (DEBUG) {
                Slog.i(TAG, "updateHostState " + port + ": dataRole=" + status.getCurrentDataRole() +
                        ", powerRole=" + status.getCurrentPowerRole());
            }

            SomeArgs args = SomeArgs.obtain();
            args.argi1 = hostConnected ? 1 :0;
            args.argi2 = sourcePower ? 1 :0;
            args.argi3 = sinkPower ? 1 :0;

            obtainMessage(MSG_UPDATE_HOST_STATE, args).sendToTarget();
        }

        private boolean waitForState(String state) {
@@ -718,8 +732,11 @@ public class UsbDeviceManager {
                    }
                    break;
                case MSG_UPDATE_HOST_STATE:
                    mHostConnected = (msg.arg1 == 1);
                    mSourcePower = (msg.arg2 == 1);
                    SomeArgs args = (SomeArgs) msg.obj;
                    mHostConnected = (args.argi1 == 1);
                    mSourcePower = (args.argi2 == 1);
                    mSinkPower = (args.argi3 == 1);
                    args.recycle();
                    updateUsbNotification();
                    if (mBootCompleted) {
                        updateUsbStateBroadcastIfNeeded();
@@ -809,6 +826,8 @@ public class UsbDeviceManager {
                }
            } else if (mSourcePower) {
                id = com.android.internal.R.string.usb_supplying_notification_title;
            } else if (mSinkPower) {
                id = com.android.internal.R.string.usb_charging_notification_title;
            }
            if (id != mUsbNotificationId) {
                // clear notification if title needs changing