Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 10 additions & 2 deletions app/src/main/java/com/openipc/pixelpilot/UsbDeviceFilter.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ public static List<UsbDeviceFilter> parseXml(Context context, int resourceId)
String vendorIdString = parser.getAttributeValue(null, "vendor-id");
String productIdString = parser.getAttributeValue(null, "product-id");

int vendorId = Integer.parseInt(vendorIdString, 16);
int productId = Integer.parseInt(productIdString, 16);
int vendorId = parseHexId(vendorIdString);
int productId = parseHexId(productIdString);

UsbDeviceFilter device = new UsbDeviceFilter(vendorId, productId);
devices.add(device);
Expand All @@ -42,4 +42,12 @@ public static List<UsbDeviceFilter> parseXml(Context context, int resourceId)
}
return devices;
}

private static int parseHexId(String value) {
if (value == null) {
throw new IllegalArgumentException("USB ID is missing");
}
String normalized = value.trim().replaceFirst("^0[xX]", "");
return Integer.parseInt(normalized, 16);
}
}
4 changes: 2 additions & 2 deletions app/src/main/java/com/openipc/pixelpilot/WfbLinkManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -97,8 +97,8 @@ public Map<String, UsbDevice> getAttachedAdapters() {
try {
filters = UsbDeviceFilter.parseXml(context, R.xml.usb_device_filter);
} catch (Exception e) {
e.printStackTrace();
return null;
Log.e(TAG, "Unable to parse USB device filter", e);
return new HashMap<>();
}

Map<String, UsbDevice> res = new HashMap<>();
Expand Down
84 changes: 56 additions & 28 deletions app/src/main/res/xml/usb_device_filter.xml
Original file line number Diff line number Diff line change
@@ -1,45 +1,73 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<usb-device
product-id="8812"
vendor-id="0BDA" /> <!-- RTL8812AU -->
product-id="0x8812"
vendor-id="0x0BDA" /> <!-- RTL8812AU -->
<usb-device
product-id="881A"
vendor-id="0BDA" /> <!-- RTL8812AU-VS -->
product-id="0x881A"
vendor-id="0x0BDA" /> <!-- RTL8812AU-VS -->
<usb-device
product-id="881B"
vendor-id="0BDA" /> <!-- RTL8812AU-VL -->
product-id="0x881B"
vendor-id="0x0BDA" /> <!-- RTL8812AU-VL -->
<usb-device
product-id="0101"
vendor-id="2357" /> <!-- Archer T4U -->
product-id="0x0101"
vendor-id="0x2357" /> <!-- Archer T4U -->
<usb-device
product-id="0103"
vendor-id="2357" /> <!-- Archer T4UH -->
product-id="0x0103"
vendor-id="0x2357" /> <!-- Archer T4UH -->
<usb-device
product-id="010D"
vendor-id="2357" /> <!-- Archer T4U V2 -->
product-id="0x010D"
vendor-id="0x2357" /> <!-- Archer T4U V2 -->
<usb-device
product-id="010E"
vendor-id="2357" /> <!-- Archer T4UH V2 -->
product-id="0x010E"
vendor-id="0x2357" /> <!-- Archer T4UH V2 -->
<usb-device
product-id="17D2"
vendor-id="0B05" /> <!-- Asus AC56 -->
product-id="0x17D2"
vendor-id="0x0B05" /> <!-- Asus AC56 -->
<usb-device
product-id="0012"
vendor-id="2604" /> <!-- Tenda U12 -->
product-id="0x0012"
vendor-id="0x2604" /> <!-- Tenda U12 -->
<usb-device
product-id="0408"
vendor-id="0409" /> <!-- NEC AtermWL900U -->
product-id="0x0408"
vendor-id="0x0409" /> <!-- NEC AtermWL900U -->
<usb-device
product-id="3426"
vendor-id="0586" /> <!-- ZyXel 6605 -->
product-id="0x3426"
vendor-id="0x0586" /> <!-- ZyXel 6605 -->
<!-- RTL8811AU / RTL8821AU -->
<usb-device product-id="0x0811" vendor-id="0x0BDA" />
<usb-device product-id="0xA811" vendor-id="0x0BDA" />
<usb-device product-id="0xB811" vendor-id="0x0BDA" />
<usb-device product-id="0x0820" vendor-id="0x0BDA" />
<usb-device product-id="0x0821" vendor-id="0x0BDA" />
<usb-device product-id="0x0823" vendor-id="0x0BDA" />
<usb-device product-id="0x8822" vendor-id="0x0BDA" />
<usb-device product-id="0x0242" vendor-id="0x0411" />
<usb-device product-id="0x029B" vendor-id="0x0411" />
<usb-device product-id="0x0953" vendor-id="0x04BB" />
<usb-device product-id="0x4007" vendor-id="0x056E" />
<usb-device product-id="0x400E" vendor-id="0x056E" />
<usb-device product-id="0x400F" vendor-id="0x056E" />
<usb-device product-id="0x9052" vendor-id="0x0846" />
<usb-device product-id="0x0023" vendor-id="0x0E66" />
<usb-device product-id="0x3314" vendor-id="0x2001" />
<usb-device product-id="0x3318" vendor-id="0x2001" />
<usb-device product-id="0xAB32" vendor-id="0x2019" />
<usb-device product-id="0x804B" vendor-id="0x20F4" />
<usb-device product-id="0x011E" vendor-id="0x2357" />
<usb-device product-id="0x0120" vendor-id="0x2357" />
<usb-device product-id="0x0122" vendor-id="0x2357" />
<usb-device product-id="0x6249" vendor-id="0x3823" />
<usb-device product-id="0xA811" vendor-id="0x7392" />
<usb-device product-id="0xA812" vendor-id="0x7392" />
<usb-device product-id="0xA813" vendor-id="0x7392" />
<usb-device product-id="0xB611" vendor-id="0x7392" />
<usb-device
product-id="A81A"
vendor-id="0BDA" /> <!-- RTL8812EU (e.g. LB-LINK BL-M8812EU2) -->
product-id="0xA81A"
vendor-id="0x0BDA" /> <!-- RTL8812EU (e.g. LB-LINK BL-M8812EU2) -->
<usb-device
product-id="A82A"
vendor-id="0BDA" /> <!-- RTL8822EU -->
product-id="0xA82A"
vendor-id="0x0BDA" /> <!-- RTL8822EU -->
<usb-device
product-id="E822"
vendor-id="0BDA" /> <!-- RTL8822EU (multi-function) -->
product-id="0xE822"
vendor-id="0x0BDA" /> <!-- RTL8822EU (multi-function) -->
</resources>