class AdbDeviceFileSystem implements DeviceFileSystem {

  @NotNull
  @Override
  public DeviceState getDeviceState() {
    IDevice.DeviceState state = myDevice.getState();

    if (state == null) {
      return DeviceState.DISCONNECTED;
    }

    switch (state) {
      case ONLINE:
        return DeviceState.ONLINE;
      case OFFLINE:
        return DeviceState.OFFLINE;
      case UNAUTHORIZED:
        return DeviceState.UNAUTHORIZED;
      case DISCONNECTED:
        return DeviceState.DISCONNECTED;
      case BOOTLOADER:
        return DeviceState.BOOTLOADER;
      case RECOVERY:
        return DeviceState.RECOVERY;
      case SIDELOAD:
        return DeviceState.SIDELOAD;
      default:
        return DeviceState.DISCONNECTED;
    }
  }

  public  AdbDeviceFileSystem(@NotNull IDevice device, @NotNull Executor edtExecutor, @NotNull Executor taskExecutor);
  public  AdbDeviceFileSystem(AdbDeviceFileSystemService service, IDevice device);

}