Merge "Add UVC support"
This commit is contained in:
committed by
Android (Google) Code Review
commit
63256a6e7b
@@ -129,6 +129,8 @@ public class ConnectedUsbDeviceUpdater {
|
||||
return R.string.usb_summary_photo_transfers;
|
||||
} else if (functions == UsbManager.FUNCTION_MIDI) {
|
||||
return R.string.usb_summary_MIDI;
|
||||
} else if (functions == UsbManager.FUNCTION_UVC) {
|
||||
return R.string.usb_summary_UVC;
|
||||
} else {
|
||||
return R.string.usb_summary_charging_only;
|
||||
}
|
||||
@@ -141,6 +143,8 @@ public class ConnectedUsbDeviceUpdater {
|
||||
return R.string.usb_summary_photo_transfers_power;
|
||||
} else if (functions == UsbManager.FUNCTION_MIDI) {
|
||||
return R.string.usb_summary_MIDI_power;
|
||||
} else if (functions == UsbManager.FUNCTION_UVC) {
|
||||
return R.string.usb_summary_UVC_power;
|
||||
} else {
|
||||
return R.string.usb_summary_power_only;
|
||||
}
|
||||
|
||||
@@ -53,6 +53,7 @@ public class UsbBackend {
|
||||
private final boolean mTetheringRestrictedBySystem;
|
||||
private final boolean mMidiSupported;
|
||||
private final boolean mTetheringSupported;
|
||||
private final boolean mUVCEnabled;
|
||||
private final boolean mIsAdminUser;
|
||||
|
||||
private UsbManager mUsbManager;
|
||||
@@ -74,12 +75,12 @@ public class UsbBackend {
|
||||
mFileTransferRestrictedBySystem = isUsbFileTransferRestrictedBySystem(userManager);
|
||||
mTetheringRestricted = isUsbTetheringRestricted(userManager);
|
||||
mTetheringRestrictedBySystem = isUsbTetheringRestrictedBySystem(userManager);
|
||||
mUVCEnabled = isUvcEnabled();
|
||||
mIsAdminUser = userManager.isAdminUser();
|
||||
|
||||
mMidiSupported = context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_MIDI);
|
||||
final TetheringManager tm = context.getSystemService(TetheringManager.class);
|
||||
mTetheringSupported = tm.isTetheringSupported();
|
||||
|
||||
updatePorts();
|
||||
}
|
||||
|
||||
@@ -200,6 +201,10 @@ public class UsbBackend {
|
||||
UserManager.DISALLOW_CONFIG_TETHERING, UserHandle.of(UserHandle.myUserId()));
|
||||
}
|
||||
|
||||
private static boolean isUvcEnabled() {
|
||||
return UsbManager.isUvcSupportEnabled();
|
||||
}
|
||||
|
||||
private boolean areFunctionDisallowed(long functions) {
|
||||
return (mFileTransferRestricted && ((functions & UsbManager.FUNCTION_MTP) != 0
|
||||
|| (functions & UsbManager.FUNCTION_PTP) != 0))
|
||||
@@ -209,7 +214,8 @@ public class UsbBackend {
|
||||
private boolean areFunctionsDisallowedBySystem(long functions) {
|
||||
return (mFileTransferRestrictedBySystem && ((functions & UsbManager.FUNCTION_MTP) != 0
|
||||
|| (functions & UsbManager.FUNCTION_PTP) != 0))
|
||||
|| (mTetheringRestrictedBySystem && ((functions & UsbManager.FUNCTION_RNDIS) != 0));
|
||||
|| (mTetheringRestrictedBySystem && ((functions & UsbManager.FUNCTION_RNDIS) != 0))
|
||||
|| (!mUVCEnabled && ((functions & UsbManager.FUNCTION_UVC) != 0));
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
|
||||
@@ -87,6 +87,9 @@ public class UsbConnectionBroadcastReceiver extends BroadcastReceiver implements
|
||||
if (intent.getExtras().getBoolean(UsbManager.USB_FUNCTION_NCM)) {
|
||||
functions |= UsbManager.FUNCTION_NCM;
|
||||
}
|
||||
if (intent.getExtras().getBoolean(UsbManager.USB_FUNCTION_UVC)) {
|
||||
functions |= UsbManager.FUNCTION_UVC;
|
||||
}
|
||||
mFunctions = functions;
|
||||
mDataRole = mUsbBackend.getDataRole();
|
||||
mPowerRole = mUsbBackend.getPowerRole();
|
||||
|
||||
@@ -52,6 +52,7 @@ public class UsbDetailsFunctionsController extends UsbDetailsController
|
||||
FUNCTIONS_MAP.put(UsbManager.FUNCTION_RNDIS, R.string.usb_use_tethering);
|
||||
FUNCTIONS_MAP.put(UsbManager.FUNCTION_MIDI, R.string.usb_use_MIDI);
|
||||
FUNCTIONS_MAP.put(UsbManager.FUNCTION_PTP, R.string.usb_use_photo_transfers);
|
||||
FUNCTIONS_MAP.put(UsbManager.FUNCTION_UVC, R.string.usb_use_uvc_webcam);
|
||||
FUNCTIONS_MAP.put(UsbManager.FUNCTION_NONE, R.string.usb_use_charging_only);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user