EtchDroid/app/src/main/java/eu/depau/ddroid/fragments/USBDriveFragment.kt

79 lines
3.1 KiB
Kotlin

package eu.depau.ddroid.fragments
import android.os.Bundle
import android.support.design.widget.Snackbar
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import eu.depau.ddroid.*
import eu.depau.ddroid.abc.WizardActivity
import eu.depau.ddroid.abc.WizardFragment
import eu.depau.ddroid.values.FlashMethod
import eu.depau.ddroid.values.WizardStep
import java.nio.file.FileSystems.getFileSystem
import com.github.mjdev.libaums.UsbMassStorageDevice
import android.app.PendingIntent
import android.content.Context
import android.content.Intent
import android.hardware.usb.UsbManager
import android.os.Build
import android.support.annotation.RequiresApi
import android.support.v4.content.ContextCompat.getSystemService
/**
* A placeholder fragment containing a simple view.
*/
class USBDriveFragment : WizardFragment() {
val TAG = "USBDriveFragment"
val ACTION_USB_PERMISSION = "eu.depau.ddroid.USB_PERMISSION"
override fun nextStep(view: View) {
// if (StateKeeper.flashMethod == null)
// Snackbar.make(view, "Please select writing method", Snackbar.LENGTH_LONG).show()
// else
// (activity as WizardActivity).goToNewFragment(ImageLocationFragment())
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
StateKeeper.currentFragment = this
StateKeeper.wizardStep = WizardStep.SELECT_USB_DRIVE
return inflater.inflate(R.layout.fragment_select_usb_drive, container, false)
}
@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
override fun onButtonClicked(view: View) {
// val usbManager = activity!!.getSystemService(Context.USB_SERVICE) as UsbManager
val devices = UsbMassStorageDevice.getMassStorageDevices(activity)
for (device in devices) {
Log.d(TAG, """USB device ${device.usbDevice.deviceName}
| proto ${device.usbDevice.deviceProtocol}
| id ${device.usbDevice.deviceId}
| class ${device.usbDevice.deviceClass}
| subclass ${device.usbDevice.deviceSubclass}
| iface count ${device.usbDevice.interfaceCount}
| manuf name ${device.usbDevice.manufacturerName}
| product name ${device.usbDevice.productName}
| id ${device.usbDevice.vendorId}:${device.usbDevice.productId}
""".trimMargin())
// val permissionIntent = PendingIntent.getBroadcast(activity, 0, Intent(MY_PERMISSIONS_REQUEST_USB_DRIVE), 0)
// usbManager.requestPermission(device.usbDevice, permissionIntent)
// // before interacting with a device you need to call init()!
// device.init()
//
// // Only uses the first partition on the device
// val currentFs = device.partitions[0].fileSystem
// Log.d(TAG, "Capacity: " + currentFs.capacity)
// Log.d(TAG, "Occupied Space: " + currentFs.occupiedSpace)
// Log.d(TAG, "Free Space: " + currentFs.freeSpace)
// Log.d(TAG, "Chunk size: " + currentFs.chunkSize)
}
}
}