Loading services/usb/java/com/android/server/usb/UsbDeviceManager.java +24 −2 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.hardware.usb.UsbAccessory; import android.hardware.usb.UsbManager; import android.hardware.usb.UsbPort; import android.hardware.usb.UsbPortStatus; import android.os.BatteryManager; import android.os.FileUtils; import android.os.Handler; import android.os.Looper; Loading Loading @@ -111,6 +112,7 @@ public class UsbDeviceManager { private static final int MSG_USER_SWITCHED = 5; private static final int MSG_UPDATE_USER_RESTRICTIONS = 6; private static final int MSG_UPDATE_HOST_STATE = 7; private static final int MSG_UPDATE_CHARGING_STATE = 9; private static final int AUDIO_MODE_SOURCE = 1; Loading Loading @@ -192,6 +194,15 @@ public class UsbDeviceManager { } }; private final BroadcastReceiver mChargingReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { int chargePlug = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1); boolean usbCharging = chargePlug == BatteryManager.BATTERY_PLUGGED_USB; mHandler.sendMessage(MSG_UPDATE_CHARGING_STATE, usbCharging); } }; public UsbDeviceManager(Context context, UsbAlsaManager alsaManager) { mContext = context; mUsbAlsaManager = alsaManager; Loading @@ -216,6 +227,8 @@ public class UsbDeviceManager { } mContext.registerReceiver(mHostReceiver, new IntentFilter(UsbManager.ACTION_USB_PORT_CHANGED)); mContext.registerReceiver(mChargingReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); } private UsbSettingsManager getCurrentSettings() { Loading Loading @@ -330,6 +343,7 @@ public class UsbDeviceManager { private int mUsbNotificationId; private boolean mAdbNotificationShown; private int mCurrentUser = UserHandle.USER_NULL; private boolean mUsbCharging; public UsbHandler(Looper looper) { super(looper); Loading Loading @@ -428,7 +442,10 @@ public class UsbDeviceManager { args.argi2 = sourcePower ? 1 :0; args.argi3 = sinkPower ? 1 :0; obtainMessage(MSG_UPDATE_HOST_STATE, args).sendToTarget(); removeMessages(MSG_UPDATE_HOST_STATE); Message msg = obtainMessage(MSG_UPDATE_HOST_STATE, args); // debounce rapid transitions of connect/disconnect on type-c ports sendMessageDelayed(msg, UPDATE_DELAY); } private boolean waitForState(String state) { Loading Loading @@ -766,6 +783,10 @@ public class UsbDeviceManager { mPendingBootBroadcast = true; } break; case MSG_UPDATE_CHARGING_STATE: mUsbCharging = (msg.arg1 == 1); updateUsbNotification(); break; case MSG_ENABLE_ADB: setAdbEnabled(msg.arg1 == 1); break; Loading Loading @@ -850,7 +871,7 @@ public class UsbDeviceManager { } } else if (mSourcePower) { id = com.android.internal.R.string.usb_supplying_notification_title; } else if (mHostConnected && mSinkPower) { } else if (mHostConnected && mSinkPower && mUsbCharging) { id = com.android.internal.R.string.usb_charging_notification_title; } if (id != mUsbNotificationId) { Loading Loading @@ -954,6 +975,7 @@ public class UsbDeviceManager { pw.println(" mHostConnected: " + mHostConnected); pw.println(" mSourcePower: " + mSourcePower); pw.println(" mSinkPower: " + mSinkPower); pw.println(" mUsbCharging: " + mUsbCharging); try { pw.println(" Kernel state: " + FileUtils.readTextFile(new File(STATE_PATH), 0, null).trim()); Loading Loading
services/usb/java/com/android/server/usb/UsbDeviceManager.java +24 −2 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.hardware.usb.UsbAccessory; import android.hardware.usb.UsbManager; import android.hardware.usb.UsbPort; import android.hardware.usb.UsbPortStatus; import android.os.BatteryManager; import android.os.FileUtils; import android.os.Handler; import android.os.Looper; Loading Loading @@ -111,6 +112,7 @@ public class UsbDeviceManager { private static final int MSG_USER_SWITCHED = 5; private static final int MSG_UPDATE_USER_RESTRICTIONS = 6; private static final int MSG_UPDATE_HOST_STATE = 7; private static final int MSG_UPDATE_CHARGING_STATE = 9; private static final int AUDIO_MODE_SOURCE = 1; Loading Loading @@ -192,6 +194,15 @@ public class UsbDeviceManager { } }; private final BroadcastReceiver mChargingReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { int chargePlug = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1); boolean usbCharging = chargePlug == BatteryManager.BATTERY_PLUGGED_USB; mHandler.sendMessage(MSG_UPDATE_CHARGING_STATE, usbCharging); } }; public UsbDeviceManager(Context context, UsbAlsaManager alsaManager) { mContext = context; mUsbAlsaManager = alsaManager; Loading @@ -216,6 +227,8 @@ public class UsbDeviceManager { } mContext.registerReceiver(mHostReceiver, new IntentFilter(UsbManager.ACTION_USB_PORT_CHANGED)); mContext.registerReceiver(mChargingReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); } private UsbSettingsManager getCurrentSettings() { Loading Loading @@ -330,6 +343,7 @@ public class UsbDeviceManager { private int mUsbNotificationId; private boolean mAdbNotificationShown; private int mCurrentUser = UserHandle.USER_NULL; private boolean mUsbCharging; public UsbHandler(Looper looper) { super(looper); Loading Loading @@ -428,7 +442,10 @@ public class UsbDeviceManager { args.argi2 = sourcePower ? 1 :0; args.argi3 = sinkPower ? 1 :0; obtainMessage(MSG_UPDATE_HOST_STATE, args).sendToTarget(); removeMessages(MSG_UPDATE_HOST_STATE); Message msg = obtainMessage(MSG_UPDATE_HOST_STATE, args); // debounce rapid transitions of connect/disconnect on type-c ports sendMessageDelayed(msg, UPDATE_DELAY); } private boolean waitForState(String state) { Loading Loading @@ -766,6 +783,10 @@ public class UsbDeviceManager { mPendingBootBroadcast = true; } break; case MSG_UPDATE_CHARGING_STATE: mUsbCharging = (msg.arg1 == 1); updateUsbNotification(); break; case MSG_ENABLE_ADB: setAdbEnabled(msg.arg1 == 1); break; Loading Loading @@ -850,7 +871,7 @@ public class UsbDeviceManager { } } else if (mSourcePower) { id = com.android.internal.R.string.usb_supplying_notification_title; } else if (mHostConnected && mSinkPower) { } else if (mHostConnected && mSinkPower && mUsbCharging) { id = com.android.internal.R.string.usb_charging_notification_title; } if (id != mUsbNotificationId) { Loading Loading @@ -954,6 +975,7 @@ public class UsbDeviceManager { pw.println(" mHostConnected: " + mHostConnected); pw.println(" mSourcePower: " + mSourcePower); pw.println(" mSinkPower: " + mSinkPower); pw.println(" mUsbCharging: " + mUsbCharging); try { pw.println(" Kernel state: " + FileUtils.readTextFile(new File(STATE_PATH), 0, null).trim()); Loading