@@ -130,8 +130,6 @@ import com.ichi2.anki.dialogs.EmptyCardsDialogFragment
130130import com.ichi2.anki.dialogs.ImportDialog.ImportDialogListener
131131import com.ichi2.anki.dialogs.ImportFileSelectionFragment.ApkgImportResultLauncherProvider
132132import com.ichi2.anki.dialogs.ImportFileSelectionFragment.CsvImportResultLauncherProvider
133- import com.ichi2.anki.dialogs.MediaCheckDialog
134- import com.ichi2.anki.dialogs.MediaCheckDialog.MediaCheckDialogListener
135133import com.ichi2.anki.dialogs.SyncErrorDialog
136134import com.ichi2.anki.dialogs.SyncErrorDialog.Companion.newInstance
137135import com.ichi2.anki.dialogs.SyncErrorDialog.SyncErrorDialogListener
@@ -143,6 +141,7 @@ import com.ichi2.anki.export.ExportDialogsFactory
143141import com.ichi2.anki.export.ExportDialogsFactoryProvider
144142import com.ichi2.anki.introduction.CollectionPermissionScreenLauncher
145143import com.ichi2.anki.introduction.hasCollectionStoragePermissions
144+ import com.ichi2.anki.mediacheck.MediaCheckFragment
146145import com.ichi2.anki.noteeditor.NoteEditorLauncher
147146import com.ichi2.anki.notetype.ManageNotetypes
148147import com.ichi2.anki.pages.AnkiPackageImporterFragment
@@ -153,7 +152,6 @@ import com.ichi2.anki.preferences.PreferencesActivity
153152import com.ichi2.anki.preferences.sharedPrefs
154153import com.ichi2.anki.receiver.SdCardReceiver
155154import com.ichi2.anki.servicelayer.ScopedStorageService
156- import com.ichi2.anki.servicelayer.checkMedia
157155import com.ichi2.anki.settings.Prefs
158156import com.ichi2.anki.snackbar.BaseSnackbarBuilderProvider
159157import com.ichi2.anki.snackbar.SnackbarBuilder
@@ -165,13 +163,11 @@ import com.ichi2.anki.worker.SyncMediaWorker
165163import com.ichi2.anki.worker.SyncWorker
166164import com.ichi2.anki.worker.UniqueWorkNames
167165import com.ichi2.annotations.NeedsTest
168- import com.ichi2.async.deleteMedia
169166import com.ichi2.compat.CompatHelper.Companion.getSerializableCompat
170167import com.ichi2.compat.CompatHelper.Companion.sdkVersion
171168import com.ichi2.libanki.ChangeManager
172169import com.ichi2.libanki.DeckId
173170import com.ichi2.libanki.Decks
174- import com.ichi2.libanki.MediaCheckResult
175171import com.ichi2.libanki.exception.ConfirmModSchemaException
176172import com.ichi2.libanki.sched.DeckNode
177173import com.ichi2.libanki.utils.TimeManager
@@ -244,7 +240,6 @@ open class DeckPicker :
244240 StudyOptionsListener ,
245241 SyncErrorDialogListener ,
246242 ImportDialogListener ,
247- MediaCheckDialogListener ,
248243 OnRequestPermissionsResultCallback ,
249244 ChangeManager .Subscriber ,
250245 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 -> {
@@ -1812,17 +1818,6 @@ open class DeckPicker :
18121818 }
18131819 }
18141820
1815- override fun showMediaCheckDialog (dialogType : MediaCheckDialog .Type ) {
1816- showAsyncDialogFragment(MediaCheckDialog .newInstance(dialogType))
1817- }
1818-
1819- override fun showMediaCheckDialog (
1820- dialogType : MediaCheckDialog .Type ,
1821- checkList : MediaCheckResult ,
1822- ) {
1823- showAsyncDialogFragment(MediaCheckDialog .newInstance(dialogType, checkList))
1824- }
1825-
18261821 /* *
18271822 * Show a specific sync error dialog
18281823 * @param dialogType id of dialog to show
@@ -1895,43 +1890,8 @@ open class DeckPicker :
18951890 handleDatabaseCheck()
18961891 }
18971892
1898- /* *
1899- * Schedules a background job to find missing, unused and invalid media files.
1900- * Shows a progress dialog while operation is running.
1901- * When check is finished a dialog box shows number of missing, unused and invalid media files.
1902- *
1903- * If has the storage permission, job is scheduled, otherwise storage permission is asked first.
1904- */
19051893 override fun mediaCheck () {
1906- launchCatchingTask {
1907- val mediaCheckResult = checkMedia()
1908- showMediaCheckDialog(MediaCheckDialog .Type .DIALOG_MEDIA_CHECK_RESULTS , mediaCheckResult)
1909- }
1910- }
1911-
1912- override fun deleteUnused (unused : List <String >) {
1913- launchCatchingTask {
1914- // Number of deleted files
1915- val noOfDeletedFiles =
1916- withProgress(resources.getString(R .string.delete_media_message)) {
1917- withCol { deleteMedia(this @withCol, unused) }
1918- }
1919- showSimpleMessageDialog(
1920- title = resources.getString(R .string.delete_media_result_title),
1921- message = resources.getQuantityString(R .plurals.delete_media_result_message, noOfDeletedFiles, noOfDeletedFiles),
1922- )
1923- }
1924- }
1925-
1926- override fun tagMissing (missingMediaNotes : List <Long >? ) {
1927- if (missingMediaNotes == null ) return
1928-
1929- Timber .d(" DeckPicker:: Adding missing media tag" )
1930- launchCatchingTask {
1931- withCol {
1932- tags.bulkAdd(missingMediaNotes, TR .mediaCheckMissingMediaTag())
1933- }
1934- }
1894+ showMediaCheckDialog()
19351895 }
19361896
19371897 open fun handleDbError () {
0 commit comments