0
0
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:
Nishant Bhandari 2022-05-11 19:17:06 +05:30 committed by GitHub
parent 20ff63ae8d
commit 6148c90ebb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -22,9 +22,13 @@ import com.ichi2.anki.DeckPicker
import com.ichi2.anki.R
import com.ichi2.anki.analytics.UsageAnalytics
import com.ichi2.anki.dialogs.HelpDialog.FunctionItem
import com.ichi2.annotations.NeedsTest
import com.ichi2.utils.KotlinCleanup
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 {
companion object {
@JvmStatic
@ -33,9 +37,9 @@ class ImportFileSelectionFragment {
// this needs a deckPicker for now. See use of PICK_APKG_FILE
// 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) {
openImportFilePicker(activity)
openImportFilePicker(activity, multiple)
}
}
@ -44,13 +48,13 @@ class ImportFileSelectionFragment {
R.string.import_deck_package,
R.drawable.ic_manual_black_24dp,
UsageAnalytics.Actions.IMPORT_APKG_FILE,
openFilePicker
OpenFilePicker(true)
),
FunctionItem(
R.string.import_collection_package,
R.drawable.ic_manual_black_24dp,
UsageAnalytics.Actions.IMPORT_COLPKG_FILE,
openFilePicker
OpenFilePicker()
),
)
return RecursivePictureMenu.createInstance(ArrayList(importItems), R.string.menu_import)
@ -58,7 +62,7 @@ class ImportFileSelectionFragment {
// needs to be static for serialization
@JvmStatic
fun openImportFilePicker(activity: AnkiActivity) {
fun openImportFilePicker(activity: AnkiActivity, multiple: Boolean = false) {
Timber.d("openImportFilePicker() delegating to file picker intent")
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT)
intent.addCategory(Intent.CATEGORY_OPENABLE)
@ -66,7 +70,7 @@ class ImportFileSelectionFragment {
intent.putExtra("android.content.extra.SHOW_ADVANCED", true)
intent.putExtra("android.content.extra.FANCY", 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)
}
}