@@ -131,8 +131,6 @@ import com.ichi2.anki.dialogs.EmptyCardsDialogFragment
131131import com.ichi2.anki.dialogs.ImportDialog.ImportDialogListener
132132import com.ichi2.anki.dialogs.ImportFileSelectionFragment.ApkgImportResultLauncherProvider
133133import com.ichi2.anki.dialogs.ImportFileSelectionFragment.CsvImportResultLauncherProvider
134- import com.ichi2.anki.dialogs.MediaCheckDialog
135- import com.ichi2.anki.dialogs.MediaCheckDialog.MediaCheckDialogListener
136134import com.ichi2.anki.dialogs.SyncErrorDialog
137135import com.ichi2.anki.dialogs.SyncErrorDialog.Companion.newInstance
138136import com.ichi2.anki.dialogs.SyncErrorDialog.SyncErrorDialogListener
@@ -144,6 +142,7 @@ import com.ichi2.anki.export.ExportDialogsFactory
144142import com.ichi2.anki.export.ExportDialogsFactoryProvider
145143import com.ichi2.anki.introduction.CollectionPermissionScreenLauncher
146144import com.ichi2.anki.introduction.hasCollectionStoragePermissions
145+ import com.ichi2.anki.mediacheck.MediaCheckFragment
147146import com.ichi2.anki.noteeditor.NoteEditorLauncher
148147import com.ichi2.anki.notetype.ManageNotetypes
149148import com.ichi2.anki.pages.AnkiPackageImporterFragment
@@ -154,7 +153,6 @@ import com.ichi2.anki.preferences.PreferencesActivity
154153import com.ichi2.anki.preferences.sharedPrefs
155154import com.ichi2.anki.receiver.SdCardReceiver
156155import com.ichi2.anki.servicelayer.ScopedStorageService
157- import com.ichi2.anki.servicelayer.checkMedia
158156import com.ichi2.anki.settings.Prefs
159157import com.ichi2.anki.snackbar.BaseSnackbarBuilderProvider
160158import com.ichi2.anki.snackbar.SnackbarBuilder
@@ -166,13 +164,11 @@ import com.ichi2.anki.worker.SyncMediaWorker
166164import com.ichi2.anki.worker.SyncWorker
167165import com.ichi2.anki.worker.UniqueWorkNames
168166import com.ichi2.annotations.NeedsTest
169- import com.ichi2.async.deleteMedia
170167import com.ichi2.compat.CompatHelper.Companion.getSerializableCompat
171168import com.ichi2.compat.CompatHelper.Companion.sdkVersion
172169import com.ichi2.libanki.ChangeManager
173170import com.ichi2.libanki.DeckId
174171import com.ichi2.libanki.Decks
175- import com.ichi2.libanki.MediaCheckResult
176172import com.ichi2.libanki.exception.ConfirmModSchemaException
177173import com.ichi2.libanki.sched.DeckNode
178174import com.ichi2.libanki.utils.TimeManager
@@ -245,7 +241,6 @@ open class DeckPicker :
245241 StudyOptionsListener ,
246242 SyncErrorDialogListener ,
247243 ImportDialogListener ,
248- MediaCheckDialogListener ,
249244 OnRequestPermissionsResultCallback ,
250245 ChangeManager .Subscriber ,
251246 SyncCompletionListener ,
@@ -1181,7 +1176,7 @@ open class DeckPicker :
11811176 }
11821177 R .id.action_check_media -> {
11831178 Timber .i(" DeckPicker:: Check media button pressed" )
1184- showMediaCheckDialog(MediaCheckDialog . Type . DIALOG_CONFIRM_MEDIA_CHECK )
1179+ showMediaCheckDialog()
11851180 return true
11861181 }
11871182 R .id.action_empty_cards -> {
@@ -1226,6 +1221,17 @@ open class DeckPicker :
12261221 }
12271222 }
12281223
1224+ private fun showMediaCheckDialog () {
1225+ AlertDialog .Builder (this ).show {
1226+ title(text = getString(R .string.check_media_title))
1227+ message(text = getString(R .string.check_media_warning))
1228+ positiveButton(R .string.dialog_ok) {
1229+ startActivity(MediaCheckFragment .getIntent(this @DeckPicker))
1230+ }
1231+ negativeButton(R .string.dialog_cancel)
1232+ }
1233+ }
1234+
12291235 fun showCreateFilteredDeckDialog () {
12301236 val createFilteredDeckDialog =
12311237 CreateDeckDialog (this @DeckPicker, R .string.new_deck, CreateDeckDialog .DeckDialogType .FILTERED_DECK , null )
@@ -1495,7 +1501,7 @@ open class DeckPicker :
14951501 }
14961502 KeyEvent .KEYCODE_M -> {
14971503 Timber .i(" Check media from keypress" )
1498- showMediaCheckDialog(MediaCheckDialog . Type . DIALOG_CONFIRM_MEDIA_CHECK )
1504+ showMediaCheckDialog()
14991505 return true
15001506 }
15011507 KeyEvent .KEYCODE_E -> {
@@ -1813,17 +1819,6 @@ open class DeckPicker :
18131819 }
18141820 }
18151821
1816- override fun showMediaCheckDialog (dialogType : MediaCheckDialog .Type ) {
1817- showAsyncDialogFragment(MediaCheckDialog .newInstance(dialogType))
1818- }
1819-
1820- override fun showMediaCheckDialog (
1821- dialogType : MediaCheckDialog .Type ,
1822- checkList : MediaCheckResult ,
1823- ) {
1824- showAsyncDialogFragment(MediaCheckDialog .newInstance(dialogType, checkList))
1825- }
1826-
18271822 /* *
18281823 * Show a specific sync error dialog
18291824 * @param dialogType id of dialog to show
@@ -1896,43 +1891,8 @@ open class DeckPicker :
18961891 handleDatabaseCheck()
18971892 }
18981893
1899- /* *
1900- * Schedules a background job to find missing, unused and invalid media files.
1901- * Shows a progress dialog while operation is running.
1902- * When check is finished a dialog box shows number of missing, unused and invalid media files.
1903- *
1904- * If has the storage permission, job is scheduled, otherwise storage permission is asked first.
1905- */
19061894 override fun mediaCheck () {
1907- launchCatchingTask {
1908- val mediaCheckResult = checkMedia()
1909- showMediaCheckDialog(MediaCheckDialog .Type .DIALOG_MEDIA_CHECK_RESULTS , mediaCheckResult)
1910- }
1911- }
1912-
1913- override fun deleteUnused (unused : List <String >) {
1914- launchCatchingTask {
1915- // Number of deleted files
1916- val noOfDeletedFiles =
1917- withProgress(resources.getString(R .string.delete_media_message)) {
1918- withCol { deleteMedia(this @withCol, unused) }
1919- }
1920- showSimpleMessageDialog(
1921- title = resources.getString(R .string.delete_media_result_title),
1922- message = resources.getQuantityString(R .plurals.delete_media_result_message, noOfDeletedFiles, noOfDeletedFiles),
1923- )
1924- }
1925- }
1926-
1927- override fun tagMissing (missingMediaNotes : List <Long >? ) {
1928- if (missingMediaNotes == null ) return
1929-
1930- Timber .d(" DeckPicker:: Adding missing media tag" )
1931- launchCatchingTask {
1932- withCol {
1933- tags.bulkAdd(missingMediaNotes, TR .mediaCheckMissingMediaTag())
1934- }
1935- }
1895+ showMediaCheckDialog()
19361896 }
19371897
19381898 open fun handleDbError () {
0 commit comments