diff --git a/app/build.gradle b/app/build.gradle index bc4f2469b566..969be5e36518 100755 --- a/app/build.gradle +++ b/app/build.gradle @@ -262,7 +262,7 @@ dependencies { implementation "info.android15.nucleus:nucleus-support-v7:$nucleus_version" // Dependency injection - implementation "com.github.inorichi.injekt:injekt-core:65b0440" + implementation "com.github.mihonapp:injekt:91edab2317" // Image library final glide_version = '4.16.0' @@ -284,9 +284,8 @@ dependencies { // UI implementation 'com.dmitrymalkovich.android:material-design-dimens:1.4' implementation 'com.github.dmytrodanylyk.android-process-button:library:1.0.4' - implementation 'eu.davidea:flexible-adapter:5.1.0' - implementation 'eu.davidea:flexible-adapter-ui:1.0.0' - implementation 'com.nononsenseapps:filepicker:2.5.2' + implementation 'com.github.arkon.FlexibleAdapter:flexible-adapter:c8013533' + implementation 'com.github.arkon.FlexibleAdapter:flexible-adapter-ui:c8013533' implementation 'com.nightlynexus.viewstatepageradapter:viewstatepageradapter:1.1.0' implementation 'com.github.mthli:Slice:v1.3' implementation 'com.github.chrisbanes:PhotoView:2.3.0' @@ -408,6 +407,7 @@ buildscript { repositories { mavenCentral() + jcenter() } // See https://kotlinlang.org/docs/reference/experimental.html#experimental-status-of-experimental-api-markers diff --git a/app/src/main/java/eu/kanade/tachiyomi/AppInfo.kt b/app/src/main/java/eu/kanade/tachiyomi/AppInfo.kt index 2321b5fb30b4..6b48836529a2 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/AppInfo.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/AppInfo.kt @@ -1,5 +1,7 @@ package eu.kanade.tachiyomi +import eu.kanade.tachiyomi.util.system.ImageUtil + /** * Used by extensions. * @@ -9,4 +11,6 @@ object AppInfo { fun getVersionCode() = BuildConfig.VERSION_CODE fun getVersionName() = BuildConfig.VERSION_NAME + + fun getSupportedImageMimeTypes() = ImageUtil.ImageType.entries.map { it.mime } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupNotifier.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupNotifier.kt index b73a44e15654..11b52ed518f2 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupNotifier.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupNotifier.kt @@ -160,7 +160,7 @@ class BackupNotifier(private val context: Context) { val uri = destFile.getUriCompat(context) addAction( - R.drawable.nnf_ic_file_folder, + R.drawable.ic_folder_24dp, context.getString(R.string.action_open_log), NotificationReceiver.openErrorLogPendingActivity(context, uri) ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt index d81d27e8a467..dd2006631bad 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt @@ -112,7 +112,7 @@ class LibraryUpdateNotifier(private val context: Context) { ) setSmallIcon(R.drawable.ic_tachi) addAction( - R.drawable.nnf_ic_file_folder, + R.drawable.ic_folder_24dp, context.getString(R.string.action_open_log), NotificationReceiver.openErrorLogPendingActivity(context, uri) ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsBackupController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsBackupController.kt index 128c87f166a7..3c505c7fd8b6 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsBackupController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsBackupController.kt @@ -3,7 +3,6 @@ package eu.kanade.tachiyomi.ui.setting import android.Manifest.permission.WRITE_EXTERNAL_STORAGE import android.app.Activity import android.app.Dialog -import android.content.ActivityNotFoundException import android.content.Context import android.content.Intent import android.net.Uri @@ -38,7 +37,6 @@ import eu.kanade.tachiyomi.util.preference.preferenceCategory import eu.kanade.tachiyomi.util.preference.summaryRes import eu.kanade.tachiyomi.util.preference.switchPreference import eu.kanade.tachiyomi.util.preference.titleRes -import eu.kanade.tachiyomi.util.system.getFilePicker import eu.kanade.tachiyomi.util.system.toast import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach @@ -130,13 +128,8 @@ class SettingsBackupController : SettingsController() { onClick { val currentDir = preferences.backupsDirectory().get() - try { - val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE) - startActivityForResult(intent, CODE_BACKUP_DIR) - } catch (e: ActivityNotFoundException) { - // Fall back to custom picker on error - startActivityForResult(preferences.context.getFilePicker(currentDir), CODE_BACKUP_DIR) - } + val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE) + startActivityForResult(intent, CODE_BACKUP_DIR) } preferences.backupInterval().asImmediateFlow { isVisible = it > 0 } @@ -287,19 +280,14 @@ class SettingsBackupController : SettingsController() { else -> Backup.getDefaultFilename() } - try { - // Use Android's built-in file creator - val intent = - Intent(Intent.ACTION_CREATE_DOCUMENT) - .addCategory(Intent.CATEGORY_OPENABLE) - .setType("application/*") - .putExtra(Intent.EXTRA_TITLE, fileName) - - startActivityForResult(intent, code) - } catch (e: ActivityNotFoundException) { - // Handle errors where the Android ROM doesn't support the built in picker - startActivityForResult(preferences.context.getFilePicker(currentDir), code) - } + // Use Android's built-in file creator + val intent = + Intent(Intent.ACTION_CREATE_DOCUMENT) + .addCategory(Intent.CATEGORY_OPENABLE) + .setType("application/*") + .putExtra(Intent.EXTRA_TITLE, fileName) + + startActivityForResult(intent, code) } class CreateBackupDialog(bundle: Bundle? = null) : DialogController(bundle) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsDownloadController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsDownloadController.kt index 2e00cf4f06b7..fe88a23f58da 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsDownloadController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsDownloadController.kt @@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.ui.setting import android.app.Activity import android.app.Dialog -import android.content.ActivityNotFoundException import android.content.Intent import android.net.Uri import android.os.Bundle @@ -27,7 +26,6 @@ import eu.kanade.tachiyomi.util.preference.preference import eu.kanade.tachiyomi.util.preference.preferenceCategory import eu.kanade.tachiyomi.util.preference.switchPreference import eu.kanade.tachiyomi.util.preference.titleRes -import eu.kanade.tachiyomi.util.system.getFilePicker import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import uy.kohesive.injekt.Injekt @@ -161,11 +159,7 @@ class SettingsDownloadController : SettingsController() { fun customDirectorySelected(currentDir: String) { val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE) - try { - startActivityForResult(intent, DOWNLOAD_DIR) - } catch (e: ActivityNotFoundException) { - startActivityForResult(preferences.context.getFilePicker(currentDir), DOWNLOAD_DIR) - } + startActivityForResult(intent, DOWNLOAD_DIR) } class DownloadDirectoriesDialog : DialogController() { diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt index ce06a13e51a2..93fc9065a219 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt @@ -31,10 +31,8 @@ import androidx.core.app.NotificationCompat import androidx.core.content.ContextCompat import androidx.localbroadcastmanager.content.LocalBroadcastManager import com.hippo.unifile.UniFile -import com.nononsenseapps.filepicker.FilePickerActivity import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.util.lang.truncateCenter -import eu.kanade.tachiyomi.widget.CustomLayoutPickerActivity import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch @@ -123,19 +121,6 @@ fun Context.notification( return builder.build() } -/** - * Helper method to construct an Intent to use a custom file picker. - * @param currentDir the path the file picker will open with. - * @return an Intent to start the file picker activity. - */ -fun Context.getFilePicker(currentDir: String): Intent { - return Intent(this, CustomLayoutPickerActivity::class.java) - .putExtra(FilePickerActivity.EXTRA_ALLOW_MULTIPLE, false) - .putExtra(FilePickerActivity.EXTRA_ALLOW_CREATE_DIR, true) - .putExtra(FilePickerActivity.EXTRA_MODE, FilePickerActivity.MODE_DIR) - .putExtra(FilePickerActivity.EXTRA_START_PATH, currentDir) -} - /** * Checks if the give permission is granted. * diff --git a/app/src/main/java/eu/kanade/tachiyomi/widget/CustomLayoutPicker.kt b/app/src/main/java/eu/kanade/tachiyomi/widget/CustomLayoutPicker.kt deleted file mode 100644 index cc1857496c1e..000000000000 --- a/app/src/main/java/eu/kanade/tachiyomi/widget/CustomLayoutPicker.kt +++ /dev/null @@ -1,38 +0,0 @@ -package eu.kanade.tachiyomi.widget - -import android.view.ViewGroup -import com.nononsenseapps.filepicker.AbstractFilePickerFragment -import com.nononsenseapps.filepicker.FilePickerActivity -import com.nononsenseapps.filepicker.FilePickerFragment -import com.nononsenseapps.filepicker.LogicHandler -import eu.kanade.tachiyomi.R -import eu.kanade.tachiyomi.util.view.inflate -import java.io.File - -class CustomLayoutPickerActivity : FilePickerActivity() { - override fun getFragment( - startPath: String?, - mode: Int, - allowMultiple: Boolean, - allowCreateDir: Boolean - ): AbstractFilePickerFragment { - val fragment = CustomLayoutFilePickerFragment() - fragment.setArgs(startPath, mode, allowMultiple, allowCreateDir) - return fragment - } -} - -class CustomLayoutFilePickerFragment : FilePickerFragment() { - override fun onCreateViewHolder( - parent: ViewGroup, - viewType: Int - ): androidx.recyclerview.widget.RecyclerView.ViewHolder { - return when (viewType) { - LogicHandler.VIEWTYPE_DIR -> { - val view = parent.inflate(R.layout.common_listitem_dir) - DirViewHolder(view) - } - else -> super.onCreateViewHolder(parent, viewType) - } - } -} diff --git a/app/src/main/res/layout/common_listitem_dir.xml b/app/src/main/res/layout/common_listitem_dir.xml deleted file mode 100755 index 2c82acdedaa1..000000000000 --- a/app/src/main/res/layout/common_listitem_dir.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 0ef4b9fb5e78..a8fcae0a9de6 100755 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -351,7 +351,7 @@ -