mirror of
https://github.com/ankidroid/Anki-Android.git
synced 2024-09-20 12:02:16 +02:00
Allow only single imports on the .colpkg option. (#11303)
This commit is contained in:
parent
20ff63ae8d
commit
6148c90ebb
@ -22,9 +22,13 @@ import com.ichi2.anki.DeckPicker
|
|||||||
import com.ichi2.anki.R
|
import com.ichi2.anki.R
|
||||||
import com.ichi2.anki.analytics.UsageAnalytics
|
import com.ichi2.anki.analytics.UsageAnalytics
|
||||||
import com.ichi2.anki.dialogs.HelpDialog.FunctionItem
|
import com.ichi2.anki.dialogs.HelpDialog.FunctionItem
|
||||||
|
import com.ichi2.annotations.NeedsTest
|
||||||
import com.ichi2.utils.KotlinCleanup
|
import com.ichi2.utils.KotlinCleanup
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
|
|
||||||
|
@NeedsTest("Selecting APKG allows multiple files")
|
||||||
|
@NeedsTest("Selecting COLPKG does not allow multiple files")
|
||||||
|
@NeedsTest("Restore backup dialog does not allow multiple files")
|
||||||
class ImportFileSelectionFragment {
|
class ImportFileSelectionFragment {
|
||||||
companion object {
|
companion object {
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
@ -33,9 +37,9 @@ class ImportFileSelectionFragment {
|
|||||||
// this needs a deckPicker for now. See use of PICK_APKG_FILE
|
// this needs a deckPicker for now. See use of PICK_APKG_FILE
|
||||||
|
|
||||||
// This is required for serialization of the lambda
|
// This is required for serialization of the lambda
|
||||||
val openFilePicker = object : FunctionItem.ActivityConsumer {
|
class OpenFilePicker(var multiple: Boolean = false) : FunctionItem.ActivityConsumer {
|
||||||
override fun consume(activity: AnkiActivity) {
|
override fun consume(activity: AnkiActivity) {
|
||||||
openImportFilePicker(activity)
|
openImportFilePicker(activity, multiple)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -44,13 +48,13 @@ class ImportFileSelectionFragment {
|
|||||||
R.string.import_deck_package,
|
R.string.import_deck_package,
|
||||||
R.drawable.ic_manual_black_24dp,
|
R.drawable.ic_manual_black_24dp,
|
||||||
UsageAnalytics.Actions.IMPORT_APKG_FILE,
|
UsageAnalytics.Actions.IMPORT_APKG_FILE,
|
||||||
openFilePicker
|
OpenFilePicker(true)
|
||||||
),
|
),
|
||||||
FunctionItem(
|
FunctionItem(
|
||||||
R.string.import_collection_package,
|
R.string.import_collection_package,
|
||||||
R.drawable.ic_manual_black_24dp,
|
R.drawable.ic_manual_black_24dp,
|
||||||
UsageAnalytics.Actions.IMPORT_COLPKG_FILE,
|
UsageAnalytics.Actions.IMPORT_COLPKG_FILE,
|
||||||
openFilePicker
|
OpenFilePicker()
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
return RecursivePictureMenu.createInstance(ArrayList(importItems), R.string.menu_import)
|
return RecursivePictureMenu.createInstance(ArrayList(importItems), R.string.menu_import)
|
||||||
@ -58,7 +62,7 @@ class ImportFileSelectionFragment {
|
|||||||
|
|
||||||
// needs to be static for serialization
|
// needs to be static for serialization
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun openImportFilePicker(activity: AnkiActivity) {
|
fun openImportFilePicker(activity: AnkiActivity, multiple: Boolean = false) {
|
||||||
Timber.d("openImportFilePicker() delegating to file picker intent")
|
Timber.d("openImportFilePicker() delegating to file picker intent")
|
||||||
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT)
|
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT)
|
||||||
intent.addCategory(Intent.CATEGORY_OPENABLE)
|
intent.addCategory(Intent.CATEGORY_OPENABLE)
|
||||||
@ -66,7 +70,7 @@ class ImportFileSelectionFragment {
|
|||||||
intent.putExtra("android.content.extra.SHOW_ADVANCED", true)
|
intent.putExtra("android.content.extra.SHOW_ADVANCED", true)
|
||||||
intent.putExtra("android.content.extra.FANCY", true)
|
intent.putExtra("android.content.extra.FANCY", true)
|
||||||
intent.putExtra("android.content.extra.SHOW_FILESIZE", true)
|
intent.putExtra("android.content.extra.SHOW_FILESIZE", true)
|
||||||
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true)
|
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, multiple)
|
||||||
activity.startActivityForResultWithoutAnimation(intent, DeckPicker.PICK_APKG_FILE)
|
activity.startActivityForResultWithoutAnimation(intent, DeckPicker.PICK_APKG_FILE)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user