From afa70f51c27543b58e0800dafe4a5f199d2e900f Mon Sep 17 00:00:00 2001 From: Arman Singh Date: Mon, 27 Jan 2025 21:54:03 +0530 Subject: [PATCH] Refactored de-duplicate .csv/.tsv values both in IntentHandler and in ImportFileSelectionFragment. --- .../main/java/com/ichi2/anki/IntentHandler.kt | 10 ++----- .../dialogs/ImportFileSelectionFragment.kt | 13 ++------- .../com/ichi2/anki/utils/MimeTypeUtils.kt | 27 +++++++++++++++++++ 3 files changed, 31 insertions(+), 19 deletions(-) create mode 100644 AnkiDroid/src/main/java/com/ichi2/anki/utils/MimeTypeUtils.kt diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/IntentHandler.kt b/AnkiDroid/src/main/java/com/ichi2/anki/IntentHandler.kt index 70ce3e6fac71..3530c5b29a9c 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/IntentHandler.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/IntentHandler.kt @@ -32,6 +32,7 @@ import com.ichi2.anki.preferences.sharedPrefs import com.ichi2.anki.servicelayer.ScopedStorageService import com.ichi2.anki.services.ReminderService import com.ichi2.anki.ui.windows.reviewer.ReviewerFragment +import com.ichi2.anki.utils.MimeTypeUtils import com.ichi2.anki.worker.SyncWorker import com.ichi2.annotations.NeedsTest import com.ichi2.libanki.DeckId @@ -299,14 +300,7 @@ class IntentHandler : AbstractIntentHandler() { private const val CLIPBOARD_INTENT = "com.ichi2.anki.COPY_DEBUG_INFO" private const val CLIPBOARD_INTENT_EXTRA_DATA = "clip_data" - private val textMimeTypes = - setOf( - "text/tab-separated-values", - "text/tsv", - "text/comma-separated-values", - "text/csv", - "text/plain", - ) + private val textMimeTypes = MimeTypeUtils.CSV_TSV_MIME_TYPES private fun isValidViewIntent(intent: Intent): Boolean { // Negating a negative because we want to call specific attention to the fact that it's invalid diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/ImportFileSelectionFragment.kt b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/ImportFileSelectionFragment.kt index 63852ac8c5dd..3dec9996fae4 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/ImportFileSelectionFragment.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/ImportFileSelectionFragment.kt @@ -31,8 +31,8 @@ import com.ichi2.anki.AnkiActivity import com.ichi2.anki.R import com.ichi2.anki.analytics.UsageAnalytics import com.ichi2.anki.snackbar.showSnackbar +import com.ichi2.anki.utils.MimeTypeUtils import com.ichi2.annotations.NeedsTest -import com.ichi2.utils.AssetHelper.TEXT_PLAIN import com.ichi2.utils.title import kotlinx.parcelize.Parcelize import timber.log.Timber @@ -95,16 +95,7 @@ class ImportFileSelectionFragment : DialogFragment() { R.string.import_csv, UsageAnalytics.Actions.IMPORT_CSV_FILE, ImportFileType.CSV, - multiple = false, - mimeType = "*/*", - extraMimes = - arrayOf( - TEXT_PLAIN, - "text/comma-separated-values", - "text/csv", - "text/tab-separated-values", - "text/tsv", - ), + extraMimes = MimeTypeUtils.CSV_TSV_MIME_TYPES, ), ) } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/utils/MimeTypeUtils.kt b/AnkiDroid/src/main/java/com/ichi2/anki/utils/MimeTypeUtils.kt new file mode 100644 index 000000000000..56cc9b1bd3ca --- /dev/null +++ b/AnkiDroid/src/main/java/com/ichi2/anki/utils/MimeTypeUtils.kt @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2024 argon2r + * + * This program is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 3 of the License, or (at your option) any later + * version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ + +package com.ichi2.anki.utils + +object MimeTypeUtils { + val CSV_TSV_MIME_TYPES = + arrayOf( + "text/comma-separated-values", + "text/csv", + "text/tab-separated-values", + "text/tsv", + ) +}