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"/>