diff --git a/.idea/misc.xml b/.idea/misc.xml
index 8309c45df..4dad43766 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -6,8 +6,12 @@
+
+
+
+
@@ -27,6 +31,7 @@
+
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 9f21bcc83..080aa9d91 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,7 +8,6 @@ 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() {
@@ -21,7 +20,7 @@ abstract class AlertDialogFragment : DialogFragment() {
val inflater = activity?.layoutInflater ?: LayoutInflater.from(requireContext())
val binding = onInflateView(inflater, null)
viewBinding = binding
- return MaterialAlertDialogBuilder(requireContext(), theme)
+ return AlertDialog.Builder(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 c452bd1ce..ef059eff7 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,7 +6,6 @@ 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) :
@@ -18,7 +17,7 @@ class CheckBoxAlertDialog private constructor(private val delegate: AlertDialog)
private val binding = DialogCheckboxBinding.inflate(LayoutInflater.from(context))
- private val delegate = MaterialAlertDialogBuilder(context)
+ private val delegate = AlertDialog.Builder(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 481b54dcf..74a019a82 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
@@ -24,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 = MaterialAlertDialogBuilder(context)
+ private val delegate = AlertDialog.Builder(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 6512f0855..b645d8cd8 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
@@ -19,7 +19,7 @@ class TextInputDialog private constructor(
private val binding = DialogInputBinding.inflate(LayoutInflater.from(context))
- private val delegate = MaterialAlertDialogBuilder(context)
+ private val delegate = AlertDialog.Builder(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 fa8951c28..e8560319a 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,6 +7,7 @@ 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
@@ -14,7 +15,6 @@ 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 ->
- MaterialAlertDialogBuilder(this)
+ AlertDialog.Builder(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) {
- MaterialAlertDialogBuilder(this)
+ AlertDialog.Builder(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 d05b46585..a9a80ce59 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 com.google.android.material.dialog.MaterialAlertDialogBuilder
+import androidx.appcompat.app.AlertDialog
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) {
- MaterialAlertDialogBuilder(context)
+ AlertDialog.Builder(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 550fab1a5..76dc36ee8 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 com.google.android.material.dialog.MaterialAlertDialogBuilder
+import androidx.appcompat.app.AlertDialog
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 -> {
- MaterialAlertDialogBuilder(context ?: return false)
+ AlertDialog.Builder(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 ff975f9df..bc30d30d4 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 com.google.android.material.dialog.MaterialAlertDialogBuilder
+import androidx.appcompat.app.AlertDialog
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 -> {
- MaterialAlertDialogBuilder(context ?: return false)
+ AlertDialog.Builder(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 90d8ce8d4..ec6655951 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 = MaterialAlertDialogBuilder(this)
+ val dialog = AlertDialog.Builder(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 90e9f9bbe..0b6b67e5e 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) {
- MaterialAlertDialogBuilder(activity)
+ AlertDialog.Builder(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 775988f3c..f97d04d11 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,7 +6,6 @@ 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
@@ -41,7 +40,7 @@ class BackupDialogFragment : AlertDialogFragment() {
}
private fun onError(e: Throwable) {
- MaterialAlertDialogBuilder(context ?: return)
+ AlertDialog.Builder(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 ef9e795c3..bd880aa06 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,7 +7,6 @@ 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
@@ -45,7 +44,7 @@ class RestoreDialogFragment : AlertDialogFragment() {
}
private fun onError(e: Throwable) {
- MaterialAlertDialogBuilder(context ?: return)
+ AlertDialog.Builder(context ?: return)
.setNegativeButton(R.string.close, null)
.setTitle(R.string.error)
.setMessage(e.getDisplayMessage(resources))
@@ -65,7 +64,7 @@ class RestoreDialogFragment : AlertDialogFragment() {
}
private fun onRestoreDone(result: CompositeResult) {
- val builder = MaterialAlertDialogBuilder(context ?: return)
+ val builder = AlertDialog.Builder(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/settings/sources/SourceViewHolder.kt b/app/src/main/java/org/koitharu/kotatsu/settings/sources/SourceViewHolder.kt
index 1d81f8e4c..1660f9bd7 100644
--- a/app/src/main/java/org/koitharu/kotatsu/settings/sources/SourceViewHolder.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/settings/sources/SourceViewHolder.kt
@@ -13,6 +13,6 @@ class SourceViewHolder(parent: ViewGroup) :
override fun onBind(data: MangaSource, extra: Boolean) {
binding.textViewTitle.text = data.title
- binding.imageViewHidden.isChecked = extra
+ binding.switchToggle.isChecked = extra
}
}
\ No newline at end of file
diff --git a/app/src/main/java/org/koitharu/kotatsu/settings/sources/SourcesAdapter.kt b/app/src/main/java/org/koitharu/kotatsu/settings/sources/SourcesAdapter.kt
index 29a76001b..739f35032 100644
--- a/app/src/main/java/org/koitharu/kotatsu/settings/sources/SourcesAdapter.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/settings/sources/SourcesAdapter.kt
@@ -37,7 +37,7 @@ class SourcesAdapter(
@SuppressLint("ClickableViewAccessibility")
private fun onViewHolderCreated(holder: SourceViewHolder) {
- holder.binding.imageViewHidden.setOnCheckedChangeListener {
+ holder.binding.switchToggle.setOnCheckedChangeListener { _, it ->
if (it) {
hiddenItems.remove(holder.requireData())
} else {
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 9ae2058f9..c6e970ab9 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 -> {
- MaterialAlertDialogBuilder(context ?: return false)
+ AlertDialog.Builder(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-w600dp/activity_details.xml b/app/src/main/res/layout-w600dp/activity_details.xml
index 432d66736..e5fc1b45a 100644
--- a/app/src/main/res/layout-w600dp/activity_details.xml
+++ b/app/src/main/res/layout-w600dp/activity_details.xml
@@ -30,6 +30,7 @@
android:background="@android:color/transparent"
app:tabGravity="start"
app:tabMode="scrollable"
+ app:tabIndicatorColor="?colorOnPrimarySurface"
app:tabSelectedTextColor="?colorOnPrimarySurface" />
diff --git a/app/src/main/res/layout/item_source_config.xml b/app/src/main/res/layout/item_source_config.xml
index b6a5b0e51..69e2815f3 100644
--- a/app/src/main/res/layout/item_source_config.xml
+++ b/app/src/main/res/layout/item_source_config.xml
@@ -4,6 +4,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="?android:listPreferredItemHeightSmall"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="?android:windowBackground"
android:gravity="center_vertical"
android:orientation="horizontal">
@@ -28,20 +29,17 @@
android:textColor="?android:attr/textColorPrimary"
tools:text="@tools:sample/lorem[1]" />
-
+ android:layout_height="wrap_content"/>