Loading services/usb/java/com/android/server/usb/UsbDeviceManager.java +31 −16 Original line number Diff line number Diff line Loading @@ -153,6 +153,7 @@ public class UsbDeviceManager implements ActivityTaskManagerInternal.ScreenObser private static final int MSG_SET_FUNCTIONS_TIMEOUT = 15; private static final int MSG_GET_CURRENT_USB_FUNCTIONS = 16; private static final int MSG_FUNCTION_SWITCH_TIMEOUT = 17; private static final int MSG_GADGET_HAL_REGISTERED = 18; private static final int AUDIO_MODE_SOURCE = 1; Loading Loading @@ -1708,10 +1709,16 @@ public class UsbDeviceManager implements ActivityTaskManagerInternal.ScreenObser protected static final String CTL_STOP = "ctl.stop"; /** * Adb natvie daemon * Adb native daemon. */ protected static final String ADBD = "adbd"; /** * Gadget HAL fully qualified instance name for registering for ServiceNotification. */ protected static final String GADGET_HAL_FQ_NAME = "android.hardware.usb.gadget@1.0::IUsbGadget"; protected boolean mCurrentUsbFunctionsRequested; UsbHandlerHal(Looper looper, Context context, UsbDeviceManager deviceManager, Loading @@ -1721,8 +1728,7 @@ public class UsbDeviceManager implements ActivityTaskManagerInternal.ScreenObser ServiceNotification serviceNotification = new ServiceNotification(); boolean ret = IServiceManager.getService() .registerForNotifications("android.hardware.usb.gadget@1.0::IUsbGadget", "", serviceNotification); .registerForNotifications(GADGET_HAL_FQ_NAME, "", serviceNotification); if (!ret) { Slog.e(TAG, "Failed to register usb gadget service start notification"); return; Loading Loading @@ -1764,20 +1770,12 @@ public class UsbDeviceManager implements ActivityTaskManagerInternal.ScreenObser @Override public void onRegistration(String fqName, String name, boolean preexisting) { Slog.i(TAG, "Usb gadget hal service started " + fqName + " " + name); synchronized (mGadgetProxyLock) { try { mGadgetProxy = IUsbGadget.getService(); mGadgetProxy.linkToDeath(new UsbGadgetDeathRecipient(), USB_GADGET_HAL_DEATH_COOKIE); if (!mCurrentFunctionsApplied && !mCurrentUsbFunctionsRequested) { setEnabledFunctions(mCurrentFunctions, false); } } catch (NoSuchElementException e) { Slog.e(TAG, "Usb gadget hal not found", e); } catch (RemoteException e) { Slog.e(TAG, "Usb Gadget hal not responding", e); } if (!fqName.equals(GADGET_HAL_FQ_NAME)) { Slog.e(TAG, "fqName does not match"); return; } sendMessage(MSG_GADGET_HAL_REGISTERED, preexisting); } } Loading Loading @@ -1815,6 +1813,23 @@ public class UsbDeviceManager implements ActivityTaskManagerInternal.ScreenObser setEnabledFunctions(UsbManager.FUNCTION_NONE, !isAdbEnabled()); } break; case MSG_GADGET_HAL_REGISTERED: boolean preexisting = msg.arg1 == 1; synchronized (mGadgetProxyLock) { try { mGadgetProxy = IUsbGadget.getService(); mGadgetProxy.linkToDeath(new UsbGadgetDeathRecipient(), USB_GADGET_HAL_DEATH_COOKIE); if (!mCurrentFunctionsApplied && !preexisting) { setEnabledFunctions(mCurrentFunctions, false); } } catch (NoSuchElementException e) { Slog.e(TAG, "Usb gadget hal not found", e); } catch (RemoteException e) { Slog.e(TAG, "Usb Gadget hal not responding", e); } } break; default: super.handleMessage(msg); } Loading Loading
services/usb/java/com/android/server/usb/UsbDeviceManager.java +31 −16 Original line number Diff line number Diff line Loading @@ -153,6 +153,7 @@ public class UsbDeviceManager implements ActivityTaskManagerInternal.ScreenObser private static final int MSG_SET_FUNCTIONS_TIMEOUT = 15; private static final int MSG_GET_CURRENT_USB_FUNCTIONS = 16; private static final int MSG_FUNCTION_SWITCH_TIMEOUT = 17; private static final int MSG_GADGET_HAL_REGISTERED = 18; private static final int AUDIO_MODE_SOURCE = 1; Loading Loading @@ -1708,10 +1709,16 @@ public class UsbDeviceManager implements ActivityTaskManagerInternal.ScreenObser protected static final String CTL_STOP = "ctl.stop"; /** * Adb natvie daemon * Adb native daemon. */ protected static final String ADBD = "adbd"; /** * Gadget HAL fully qualified instance name for registering for ServiceNotification. */ protected static final String GADGET_HAL_FQ_NAME = "android.hardware.usb.gadget@1.0::IUsbGadget"; protected boolean mCurrentUsbFunctionsRequested; UsbHandlerHal(Looper looper, Context context, UsbDeviceManager deviceManager, Loading @@ -1721,8 +1728,7 @@ public class UsbDeviceManager implements ActivityTaskManagerInternal.ScreenObser ServiceNotification serviceNotification = new ServiceNotification(); boolean ret = IServiceManager.getService() .registerForNotifications("android.hardware.usb.gadget@1.0::IUsbGadget", "", serviceNotification); .registerForNotifications(GADGET_HAL_FQ_NAME, "", serviceNotification); if (!ret) { Slog.e(TAG, "Failed to register usb gadget service start notification"); return; Loading Loading @@ -1764,20 +1770,12 @@ public class UsbDeviceManager implements ActivityTaskManagerInternal.ScreenObser @Override public void onRegistration(String fqName, String name, boolean preexisting) { Slog.i(TAG, "Usb gadget hal service started " + fqName + " " + name); synchronized (mGadgetProxyLock) { try { mGadgetProxy = IUsbGadget.getService(); mGadgetProxy.linkToDeath(new UsbGadgetDeathRecipient(), USB_GADGET_HAL_DEATH_COOKIE); if (!mCurrentFunctionsApplied && !mCurrentUsbFunctionsRequested) { setEnabledFunctions(mCurrentFunctions, false); } } catch (NoSuchElementException e) { Slog.e(TAG, "Usb gadget hal not found", e); } catch (RemoteException e) { Slog.e(TAG, "Usb Gadget hal not responding", e); } if (!fqName.equals(GADGET_HAL_FQ_NAME)) { Slog.e(TAG, "fqName does not match"); return; } sendMessage(MSG_GADGET_HAL_REGISTERED, preexisting); } } Loading Loading @@ -1815,6 +1813,23 @@ public class UsbDeviceManager implements ActivityTaskManagerInternal.ScreenObser setEnabledFunctions(UsbManager.FUNCTION_NONE, !isAdbEnabled()); } break; case MSG_GADGET_HAL_REGISTERED: boolean preexisting = msg.arg1 == 1; synchronized (mGadgetProxyLock) { try { mGadgetProxy = IUsbGadget.getService(); mGadgetProxy.linkToDeath(new UsbGadgetDeathRecipient(), USB_GADGET_HAL_DEATH_COOKIE); if (!mCurrentFunctionsApplied && !preexisting) { setEnabledFunctions(mCurrentFunctions, false); } } catch (NoSuchElementException e) { Slog.e(TAG, "Usb gadget hal not found", e); } catch (RemoteException e) { Slog.e(TAG, "Usb Gadget hal not responding", e); } } break; default: super.handleMessage(msg); } Loading