package
com.ayush.gfgapp;
import
android.content.Context;
import
android.hardware.usb.UsbDevice;
import
android.hardware.usb.UsbManager;
import
android.os.Bundle;
import
android.view.LayoutInflater;
import
android.view.View;
import
android.widget.Button;
import
android.widget.LinearLayout;
import
android.widget.TextView;
import
android.widget.Toast;
import
androidx.annotation.Nullable;
import
androidx.appcompat.app.AppCompatActivity;
import
com.google.android.material.bottomsheet.BottomSheetDialog;
import
java.util.HashMap;
public
class
MainActivity2
extends
AppCompatActivity {
private
Button getDevice;
private
UsbManager usbManager;
@Override
protected
void
onCreate(
@Nullable
Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
getDevice = findViewById(R.id.getDevice);
usbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
getDevice.setOnClickListener(
new
View.OnClickListener() {
@Override
public
void
onClick(View v) {
HashMap<String, UsbDevice> deviceList = usbManager.getDeviceList();
showDevicesDialog(deviceList);
}
});
}
private
void
showDevicesDialog(HashMap<String, UsbDevice> deviceList) {
if
(deviceList.isEmpty()) {
Toast.makeText(
this
,
"No USB devices found"
, Toast.LENGTH_SHORT).show();
}
else
{
View bottomSheetView = LayoutInflater.from(
this
).inflate(R.layout.bottom_sheet_device_list,
null
);
LinearLayout devicesLayout = bottomSheetView.findViewById(R.id.devicesLayout);
for
(UsbDevice device : deviceList.values()) {
View deviceItemLayout = LayoutInflater.from(
this
).inflate(R.layout.device_list_item,
null
);
TextView deviceNameTextView = deviceItemLayout.findViewById(R.id.deviceNameTextView);
TextView vendorIdTextView = deviceItemLayout.findViewById(R.id.vendorIdTextView);
TextView manufacturerTextView = deviceItemLayout.findViewById(R.id.manufacturerTextView);
TextView productNameTextView = deviceItemLayout.findViewById(R.id.ProductNameTextView);
TextView emptyTV = deviceItemLayout.findViewById(R.id.emptyTV);
deviceNameTextView.setText(
"Device Name: "
+ device.getDeviceName());
vendorIdTextView.setText(
"Vendor ID: "
+ device.getVendorId());
manufacturerTextView.setText(
"Manufacturer Name: "
+ device.getManufacturerName());
productNameTextView.setText(
"Product Name: "
+ device.getProductName());
emptyTV.setText(
"Testing:- "
+ device.getProductId());
deviceItemLayout.setOnClickListener(
new
View.OnClickListener() {
@Override
public
void
onClick(View v) {
Toast.makeText(MainActivity2.
this
,
"Device Selected: "
+ device.getDeviceName() +
" (Vendor ID: "
+ device.getVendorId() +
")"
, Toast.LENGTH_SHORT).show();
}
});
devicesLayout.addView(deviceItemLayout);
}
BottomSheetDialog bottomSheetDialog =
new
BottomSheetDialog(
this
);
bottomSheetDialog.setContentView(bottomSheetView);
bottomSheetDialog.show();
}
}
}