|
|
|
|
@ -31,10 +31,6 @@ class MainActivity : AppCompatActivity() {
|
|
|
|
|
private lateinit var binding: ActivityMainBinding |
|
|
|
|
private val executor = Executors.newSingleThreadExecutor() |
|
|
|
|
private val mediaItems = mutableListOf<MediaItem>() |
|
|
|
|
private var uploadMode = UploadMode.ALL |
|
|
|
|
private var lastXCount = 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private lateinit var mediaAdapter: ArrayAdapter<String> |
|
|
|
|
|
|
|
|
|
companion object { |
|
|
|
|
@ -53,7 +49,7 @@ class MainActivity : AppCompatActivity() {
|
|
|
|
|
|
|
|
|
|
private const val REQ_READ_STORAGE = 2001 |
|
|
|
|
|
|
|
|
|
// v0.3.3 upload rewrite defaults |
|
|
|
|
// v0.3.0 upload rewrite defaults |
|
|
|
|
private const val VIDEO_BATCH_SIZE = 2 |
|
|
|
|
private const val IMAGE_BATCH_SIZE = 25 |
|
|
|
|
private const val PAUSE_BETWEEN_FILES_MS = 350L |
|
|
|
|
@ -69,12 +65,6 @@ class MainActivity : AppCompatActivity() {
|
|
|
|
|
BOTH |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
enum class UploadMode { |
|
|
|
|
ALL, |
|
|
|
|
SELECTED, |
|
|
|
|
LAST_X |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
data class MediaItem( |
|
|
|
|
val path: String, |
|
|
|
|
val displayName: String, |
|
|
|
|
@ -128,7 +118,12 @@ class MainActivity : AppCompatActivity() {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
binding.uploadSelectedButton.setOnClickListener { |
|
|
|
|
showUploadModeDialog() |
|
|
|
|
val selected = getSelectedItems() |
|
|
|
|
if (selected.isEmpty()) { |
|
|
|
|
Toast.makeText(this, "No media selected", Toast.LENGTH_SHORT).show() |
|
|
|
|
return@setOnClickListener |
|
|
|
|
} |
|
|
|
|
uploadSelectedMedia(selected) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
binding.resetActivationButton.setOnClickListener { |
|
|
|
|
@ -609,60 +604,7 @@ class MainActivity : AppCompatActivity() {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private fun showUploadModeDialog() { |
|
|
|
|
val options = arrayOf("All Media", "Selected Media", "Last X Media") |
|
|
|
|
|
|
|
|
|
android.app.AlertDialog.Builder(this) |
|
|
|
|
.setTitle("Upload Mode") |
|
|
|
|
.setItems(options) { _, which -> |
|
|
|
|
when (which) { |
|
|
|
|
0 -> { |
|
|
|
|
uploadMode = UploadMode.ALL |
|
|
|
|
uploadSelectedMedia(getItemsForUpload()) |
|
|
|
|
} |
|
|
|
|
1 -> { |
|
|
|
|
uploadMode = UploadMode.SELECTED |
|
|
|
|
uploadSelectedMedia(getItemsForUpload()) |
|
|
|
|
} |
|
|
|
|
2 -> { |
|
|
|
|
promptForLastX() |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
.show() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private fun promptForLastX() { |
|
|
|
|
val input = android.widget.EditText(this) |
|
|
|
|
input.inputType = android.text.InputType.TYPE_CLASS_NUMBER |
|
|
|
|
|
|
|
|
|
android.app.AlertDialog.Builder(this) |
|
|
|
|
.setTitle("Last X Media") |
|
|
|
|
.setMessage("Enter number of most recent items to upload") |
|
|
|
|
.setView(input) |
|
|
|
|
.setPositiveButton("OK") { _, _ -> |
|
|
|
|
lastXCount = input.text.toString().toIntOrNull() ?: 0 |
|
|
|
|
if (lastXCount > 0) { |
|
|
|
|
uploadMode = UploadMode.LAST_X |
|
|
|
|
uploadSelectedMedia(getItemsForUpload()) |
|
|
|
|
} else { |
|
|
|
|
Toast.makeText(this, "Invalid number", Toast.LENGTH_SHORT).show() |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
.setNegativeButton("Cancel", null) |
|
|
|
|
.show() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private fun getItemsForUpload(): List<MediaItem> { |
|
|
|
|
return when (uploadMode) { |
|
|
|
|
UploadMode.ALL -> mediaItems |
|
|
|
|
UploadMode.SELECTED -> getSelectedItems() |
|
|
|
|
UploadMode.LAST_X -> mediaItems.take(lastXCount) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private fun getSelectedItems(): List<MediaItem> { |
|
|
|
|
private fun getSelectedItems(): List<MediaItem> { |
|
|
|
|
val selected = mutableListOf<MediaItem>() |
|
|
|
|
for (i in mediaItems.indices) { |
|
|
|
|
if (binding.mediaListView.isItemChecked(i)) { |
|
|
|
|
|