diff --git a/.idea/misc.xml b/.idea/misc.xml index 99c712693..de0b2cec0 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -10,6 +10,8 @@ + + @@ -17,11 +19,13 @@ + + diff --git a/app/build.gradle b/app/build.gradle index 8101bbcef..5a17eb049 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,7 +16,7 @@ android { minSdkVersion 21 targetSdkVersion 30 versionCode gitCommits - versionName '1.0-rc2' + versionName '1.0-rc3' kapt { arguments { diff --git a/app/src/main/java/org/koitharu/kotatsu/base/ui/AlertDialogFragment.kt b/app/src/main/java/org/koitharu/kotatsu/base/ui/AlertDialogFragment.kt index 080aa9d91..9f21bcc83 100644 --- a/app/src/main/java/org/koitharu/kotatsu/base/ui/AlertDialogFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/base/ui/AlertDialogFragment.kt @@ -8,6 +8,7 @@ import androidx.annotation.CallSuper import androidx.appcompat.app.AlertDialog import androidx.fragment.app.DialogFragment import androidx.viewbinding.ViewBinding +import com.google.android.material.dialog.MaterialAlertDialogBuilder abstract class AlertDialogFragment : DialogFragment() { @@ -20,7 +21,7 @@ abstract class AlertDialogFragment : DialogFragment() { val inflater = activity?.layoutInflater ?: LayoutInflater.from(requireContext()) val binding = onInflateView(inflater, null) viewBinding = binding - return AlertDialog.Builder(requireContext(), theme) + return MaterialAlertDialogBuilder(requireContext(), theme) .setView(binding.root) .also(::onBuildDialog) .create() diff --git a/app/src/main/java/org/koitharu/kotatsu/base/ui/dialog/CheckBoxAlertDialog.kt b/app/src/main/java/org/koitharu/kotatsu/base/ui/dialog/CheckBoxAlertDialog.kt index ef059eff7..c452bd1ce 100644 --- a/app/src/main/java/org/koitharu/kotatsu/base/ui/dialog/CheckBoxAlertDialog.kt +++ b/app/src/main/java/org/koitharu/kotatsu/base/ui/dialog/CheckBoxAlertDialog.kt @@ -6,6 +6,7 @@ import android.view.LayoutInflater import androidx.annotation.DrawableRes import androidx.annotation.StringRes import androidx.appcompat.app.AlertDialog +import com.google.android.material.dialog.MaterialAlertDialogBuilder import org.koitharu.kotatsu.databinding.DialogCheckboxBinding class CheckBoxAlertDialog private constructor(private val delegate: AlertDialog) : @@ -17,7 +18,7 @@ class CheckBoxAlertDialog private constructor(private val delegate: AlertDialog) private val binding = DialogCheckboxBinding.inflate(LayoutInflater.from(context)) - private val delegate = AlertDialog.Builder(context) + private val delegate = MaterialAlertDialogBuilder(context) .setView(binding.root) fun setTitle(@StringRes titleResId: Int): Builder { diff --git a/app/src/main/java/org/koitharu/kotatsu/base/ui/dialog/StorageSelectDialog.kt b/app/src/main/java/org/koitharu/kotatsu/base/ui/dialog/StorageSelectDialog.kt index 5b843358f..481b54dcf 100644 --- a/app/src/main/java/org/koitharu/kotatsu/base/ui/dialog/StorageSelectDialog.kt +++ b/app/src/main/java/org/koitharu/kotatsu/base/ui/dialog/StorageSelectDialog.kt @@ -7,6 +7,7 @@ import android.view.ViewGroup import android.widget.BaseAdapter import androidx.annotation.StringRes import androidx.appcompat.app.AlertDialog +import com.google.android.material.dialog.MaterialAlertDialogBuilder import org.koitharu.kotatsu.R import org.koitharu.kotatsu.databinding.ItemStorageBinding import org.koitharu.kotatsu.local.domain.LocalMangaRepository @@ -23,7 +24,7 @@ class StorageSelectDialog private constructor(private val delegate: AlertDialog) class Builder(context: Context, defaultValue: File?, listener: OnStorageSelectListener) { private val adapter = VolumesAdapter(context) - private val delegate = AlertDialog.Builder(context) + private val delegate = MaterialAlertDialogBuilder(context) init { if (adapter.isEmpty) { diff --git a/app/src/main/java/org/koitharu/kotatsu/base/ui/dialog/TextInputDialog.kt b/app/src/main/java/org/koitharu/kotatsu/base/ui/dialog/TextInputDialog.kt index 73a3f8d4c..6512f0855 100644 --- a/app/src/main/java/org/koitharu/kotatsu/base/ui/dialog/TextInputDialog.kt +++ b/app/src/main/java/org/koitharu/kotatsu/base/ui/dialog/TextInputDialog.kt @@ -6,6 +6,7 @@ import android.text.InputFilter import android.view.LayoutInflater import androidx.annotation.StringRes import androidx.appcompat.app.AlertDialog +import com.google.android.material.dialog.MaterialAlertDialogBuilder import org.koitharu.kotatsu.databinding.DialogInputBinding class TextInputDialog private constructor( @@ -18,7 +19,7 @@ class TextInputDialog private constructor( private val binding = DialogInputBinding.inflate(LayoutInflater.from(context)) - private val delegate = AlertDialog.Builder(context) + private val delegate = MaterialAlertDialogBuilder(context) .setView(binding.root) fun setTitle(@StringRes titleResId: Int): Builder { diff --git a/app/src/main/java/org/koitharu/kotatsu/details/ui/DetailsActivity.kt b/app/src/main/java/org/koitharu/kotatsu/details/ui/DetailsActivity.kt index e8560319a..fa8951c28 100644 --- a/app/src/main/java/org/koitharu/kotatsu/details/ui/DetailsActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/details/ui/DetailsActivity.kt @@ -7,7 +7,6 @@ import android.os.Bundle import android.view.Menu import android.view.MenuItem import android.widget.Toast -import androidx.appcompat.app.AlertDialog import androidx.appcompat.view.ActionMode import androidx.appcompat.widget.Toolbar import androidx.core.content.pm.ShortcutManagerCompat @@ -15,6 +14,7 @@ import androidx.core.graphics.Insets import androidx.core.net.toFile import androidx.core.view.updatePadding import androidx.lifecycle.lifecycleScope +import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.snackbar.Snackbar import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayoutMediator @@ -144,7 +144,7 @@ class DetailsActivity : BaseActivity(), } R.id.action_delete -> { viewModel.manga.value?.let { m -> - AlertDialog.Builder(this) + MaterialAlertDialogBuilder(this) .setTitle(R.string.delete_manga) .setMessage(getString(R.string.text_delete_local_manga, m.title)) .setPositiveButton(R.string.delete) { _, _ -> @@ -159,7 +159,7 @@ class DetailsActivity : BaseActivity(), viewModel.manga.value?.let { val chaptersCount = it.chapters?.size ?: 0 if (chaptersCount > 5) { - AlertDialog.Builder(this) + MaterialAlertDialogBuilder(this) .setTitle(R.string.save_manga) .setMessage( getString( diff --git a/app/src/main/java/org/koitharu/kotatsu/favourites/ui/categories/CategoriesEditDelegate.kt b/app/src/main/java/org/koitharu/kotatsu/favourites/ui/categories/CategoriesEditDelegate.kt index a9a80ce59..d05b46585 100644 --- a/app/src/main/java/org/koitharu/kotatsu/favourites/ui/categories/CategoriesEditDelegate.kt +++ b/app/src/main/java/org/koitharu/kotatsu/favourites/ui/categories/CategoriesEditDelegate.kt @@ -2,7 +2,7 @@ package org.koitharu.kotatsu.favourites.ui.categories import android.content.Context import android.text.InputType -import androidx.appcompat.app.AlertDialog +import com.google.android.material.dialog.MaterialAlertDialogBuilder import org.koitharu.kotatsu.R import org.koitharu.kotatsu.base.ui.dialog.TextInputDialog import org.koitharu.kotatsu.core.model.FavouriteCategory @@ -13,7 +13,7 @@ class CategoriesEditDelegate( ) { fun deleteCategory(category: FavouriteCategory) { - AlertDialog.Builder(context) + MaterialAlertDialogBuilder(context) .setMessage(context.getString(R.string.category_delete_confirm, category.title)) .setTitle(R.string.remove_category) .setNegativeButton(android.R.string.cancel, null) diff --git a/app/src/main/java/org/koitharu/kotatsu/history/ui/HistoryListFragment.kt b/app/src/main/java/org/koitharu/kotatsu/history/ui/HistoryListFragment.kt index 76dc36ee8..550fab1a5 100644 --- a/app/src/main/java/org/koitharu/kotatsu/history/ui/HistoryListFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/history/ui/HistoryListFragment.kt @@ -5,7 +5,7 @@ import android.view.Menu import android.view.MenuInflater import android.view.MenuItem import android.view.View -import androidx.appcompat.app.AlertDialog +import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.snackbar.Snackbar import org.koin.androidx.viewmodel.ext.android.viewModel import org.koitharu.kotatsu.R @@ -42,7 +42,7 @@ class HistoryListFragment : MangaListFragment() { override fun onOptionsItemSelected(item: MenuItem): Boolean { return when (item.itemId) { R.id.action_clear_history -> { - AlertDialog.Builder(context ?: return false) + MaterialAlertDialogBuilder(context ?: return false) .setTitle(R.string.clear_history) .setMessage(R.string.text_clear_history_prompt) .setNegativeButton(android.R.string.cancel, null) diff --git a/app/src/main/java/org/koitharu/kotatsu/local/ui/LocalListFragment.kt b/app/src/main/java/org/koitharu/kotatsu/local/ui/LocalListFragment.kt index bc30d30d4..ff975f9df 100644 --- a/app/src/main/java/org/koitharu/kotatsu/local/ui/LocalListFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/local/ui/LocalListFragment.kt @@ -9,7 +9,7 @@ import android.view.MenuItem import android.view.View import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts -import androidx.appcompat.app.AlertDialog +import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.snackbar.Snackbar import org.koin.androidx.viewmodel.ext.android.viewModel import org.koitharu.kotatsu.BuildConfig @@ -77,7 +77,7 @@ class LocalListFragment : MangaListFragment(), ActivityResultCallback { override fun onPopupMenuItemSelected(item: MenuItem, data: Manga): Boolean { return when (item.itemId) { R.id.action_delete -> { - AlertDialog.Builder(context ?: return false) + MaterialAlertDialogBuilder(context ?: return false) .setTitle(R.string.delete_manga) .setMessage(getString(R.string.text_delete_local_manga, data.title)) .setPositiveButton(R.string.delete) { _, _ -> diff --git a/app/src/main/java/org/koitharu/kotatsu/reader/ui/ReaderActivity.kt b/app/src/main/java/org/koitharu/kotatsu/reader/ui/ReaderActivity.kt index ec6655951..90d8ce8d4 100644 --- a/app/src/main/java/org/koitharu/kotatsu/reader/ui/ReaderActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/reader/ui/ReaderActivity.kt @@ -10,12 +10,12 @@ import android.view.* import android.widget.Toast import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts -import androidx.appcompat.app.AlertDialog import androidx.core.content.ContextCompat import androidx.core.graphics.Insets import androidx.core.view.* import androidx.fragment.app.commit import androidx.lifecycle.lifecycleScope +import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.snackbar.Snackbar import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.launchIn @@ -207,7 +207,7 @@ class ReaderActivity : BaseFullscreenActivity(), } private fun onError(e: Throwable) { - val dialog = AlertDialog.Builder(this) + val dialog = MaterialAlertDialogBuilder(this) .setTitle(R.string.error_occurred) .setMessage(e.getDisplayMessage(resources)) .setPositiveButton(R.string.close, null) diff --git a/app/src/main/java/org/koitharu/kotatsu/settings/AppUpdateChecker.kt b/app/src/main/java/org/koitharu/kotatsu/settings/AppUpdateChecker.kt index 0b6b67e5e..90e9f9bbe 100644 --- a/app/src/main/java/org/koitharu/kotatsu/settings/AppUpdateChecker.kt +++ b/app/src/main/java/org/koitharu/kotatsu/settings/AppUpdateChecker.kt @@ -7,8 +7,8 @@ import android.content.pm.PackageManager import android.net.Uri import androidx.activity.ComponentActivity import androidx.annotation.MainThread -import androidx.appcompat.app.AlertDialog import androidx.lifecycle.lifecycleScope +import com.google.android.material.dialog.MaterialAlertDialogBuilder import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job import kotlinx.coroutines.launch @@ -77,7 +77,7 @@ class AppUpdateChecker(private val activity: ComponentActivity) { @MainThread private fun showUpdateDialog(version: AppVersion) { - AlertDialog.Builder(activity) + MaterialAlertDialogBuilder(activity) .setTitle(R.string.app_update_available) .setMessage(buildString { append(activity.getString(R.string.new_version_s, version.name)) diff --git a/app/src/main/java/org/koitharu/kotatsu/settings/backup/BackupDialogFragment.kt b/app/src/main/java/org/koitharu/kotatsu/settings/backup/BackupDialogFragment.kt index f97d04d11..775988f3c 100644 --- a/app/src/main/java/org/koitharu/kotatsu/settings/backup/BackupDialogFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/settings/backup/BackupDialogFragment.kt @@ -6,6 +6,7 @@ import android.view.View import android.view.ViewGroup import androidx.appcompat.app.AlertDialog import androidx.core.view.isVisible +import com.google.android.material.dialog.MaterialAlertDialogBuilder import org.koin.androidx.viewmodel.ext.android.viewModel import org.koitharu.kotatsu.R import org.koitharu.kotatsu.base.ui.AlertDialogFragment @@ -40,7 +41,7 @@ class BackupDialogFragment : AlertDialogFragment() { } private fun onError(e: Throwable) { - AlertDialog.Builder(context ?: return) + MaterialAlertDialogBuilder(context ?: return) .setNegativeButton(R.string.close, null) .setTitle(R.string.error) .setMessage(e.getDisplayMessage(resources)) diff --git a/app/src/main/java/org/koitharu/kotatsu/settings/backup/RestoreDialogFragment.kt b/app/src/main/java/org/koitharu/kotatsu/settings/backup/RestoreDialogFragment.kt index bd880aa06..ef9e795c3 100644 --- a/app/src/main/java/org/koitharu/kotatsu/settings/backup/RestoreDialogFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/settings/backup/RestoreDialogFragment.kt @@ -7,6 +7,7 @@ import android.view.View import android.view.ViewGroup import androidx.appcompat.app.AlertDialog import androidx.core.view.isVisible +import com.google.android.material.dialog.MaterialAlertDialogBuilder import org.koin.androidx.viewmodel.ext.android.viewModel import org.koin.core.parameter.parametersOf import org.koitharu.kotatsu.R @@ -44,7 +45,7 @@ class RestoreDialogFragment : AlertDialogFragment() { } private fun onError(e: Throwable) { - AlertDialog.Builder(context ?: return) + MaterialAlertDialogBuilder(context ?: return) .setNegativeButton(R.string.close, null) .setTitle(R.string.error) .setMessage(e.getDisplayMessage(resources)) @@ -64,7 +65,7 @@ class RestoreDialogFragment : AlertDialogFragment() { } private fun onRestoreDone(result: CompositeResult) { - val builder = AlertDialog.Builder(context ?: return) + val builder = MaterialAlertDialogBuilder(context ?: return) when { result.isAllSuccess -> builder.setTitle(R.string.data_restored) .setMessage(R.string.data_restored_success) diff --git a/app/src/main/java/org/koitharu/kotatsu/tracker/ui/FeedFragment.kt b/app/src/main/java/org/koitharu/kotatsu/tracker/ui/FeedFragment.kt index c6e970ab9..9ae2058f9 100644 --- a/app/src/main/java/org/koitharu/kotatsu/tracker/ui/FeedFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/tracker/ui/FeedFragment.kt @@ -2,9 +2,9 @@ package org.koitharu.kotatsu.tracker.ui import android.os.Bundle import android.view.* -import androidx.appcompat.app.AlertDialog import androidx.core.graphics.Insets import androidx.core.view.updatePadding +import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.snackbar.Snackbar import org.koin.android.ext.android.get import org.koin.androidx.viewmodel.ext.android.viewModel @@ -80,7 +80,7 @@ class FeedFragment : BaseFragment(), PaginationScrollListen true } R.id.action_clear_feed -> { - AlertDialog.Builder(context ?: return false) + MaterialAlertDialogBuilder(context ?: return false) .setTitle(R.string.clear_updates_feed) .setMessage(R.string.text_clear_updates_feed_prompt) .setNegativeButton(android.R.string.cancel, null) diff --git a/app/src/main/res/layout/dialog_favorite_categories.xml b/app/src/main/res/layout/dialog_favorite_categories.xml index 785ae6552..064a9a733 100644 --- a/app/src/main/res/layout/dialog_favorite_categories.xml +++ b/app/src/main/res/layout/dialog_favorite_categories.xml @@ -10,7 +10,6 @@ diff --git a/app/src/main/res/layout/dialog_list_mode.xml b/app/src/main/res/layout/dialog_list_mode.xml index b99d9039b..01d5e426e 100644 --- a/app/src/main/res/layout/dialog_list_mode.xml +++ b/app/src/main/res/layout/dialog_list_mode.xml @@ -44,7 +44,7 @@