From f0158f69464e4e23b81f36880d97e3ddcadc0dd9 Mon Sep 17 00:00:00 2001 From: tarsin Date: Wed, 24 Aug 2022 21:00:41 +0800 Subject: [PATCH] Make dialog takes some blur --- .../java/com/hippo/app/BaseDialogBuilder.kt | 20 +++++++++++++++++++ .../com/hippo/app/CheckBoxDialogBuilder.kt | 3 +-- .../com/hippo/app/EditTextDialogBuilder.kt | 3 +-- .../hippo/app/ListCheckBoxDialogBuilder.kt | 3 +-- .../com/hippo/ehviewer/EhApplication.java | 4 ++-- .../hippo/ehviewer/ui/GalleryActivity.java | 6 +++--- .../com/hippo/ehviewer/ui/MainActivity.java | 6 +++--- .../ui/fragment/AdvancedFragment.java | 6 +++--- .../ui/fragment/DownloadFragment.java | 4 ++-- .../ehviewer/ui/fragment/FilterFragment.kt | 8 ++++---- .../ehviewer/ui/fragment/HostsFragment.java | 5 +++-- .../ehviewer/ui/scene/CookieSignInScene.java | 4 ++-- .../ehviewer/ui/scene/DownloadsScene.java | 10 +++++----- .../ehviewer/ui/scene/FavoritesScene.java | 8 ++++---- .../ui/scene/GalleryCommentsScene.java | 6 +++--- .../ehviewer/ui/scene/GalleryDetailScene.java | 20 +++++++++---------- .../ehviewer/ui/scene/GalleryListScene.java | 10 +++++----- .../ui/scene/GalleryPreviewsScene.java | 4 ++-- .../hippo/ehviewer/ui/scene/HistoryScene.kt | 10 +++++----- .../hippo/ehviewer/ui/scene/SignInScene.java | 4 ++-- .../widget/DialogWebChromeClient.java | 8 ++++---- .../com/hippo/ehviewer/widget/SearchBar.java | 4 ++-- .../com/hippo/ehviewer/widget/SearchLayout.kt | 4 ++-- .../hippo/preference/DialogPreference.java | 4 ++-- 24 files changed, 91 insertions(+), 73 deletions(-) create mode 100644 app/src/main/java/com/hippo/app/BaseDialogBuilder.kt diff --git a/app/src/main/java/com/hippo/app/BaseDialogBuilder.kt b/app/src/main/java/com/hippo/app/BaseDialogBuilder.kt new file mode 100644 index 000000000..1e49cadda --- /dev/null +++ b/app/src/main/java/com/hippo/app/BaseDialogBuilder.kt @@ -0,0 +1,20 @@ +package com.hippo.app + +import android.content.Context +import android.view.WindowManager +import androidx.appcompat.app.AlertDialog +import com.google.android.material.dialog.MaterialAlertDialogBuilder + +open class BaseDialogBuilder constructor( + context: Context +) : MaterialAlertDialogBuilder(context) { + override fun create(): AlertDialog { + return super.create().also { dialog -> + dialog.window?.let { + it.addFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND) + it.addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) + it.attributes.blurBehindRadius = 32 + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/hippo/app/CheckBoxDialogBuilder.kt b/app/src/main/java/com/hippo/app/CheckBoxDialogBuilder.kt index 6910c5afd..bdefecc37 100644 --- a/app/src/main/java/com/hippo/app/CheckBoxDialogBuilder.kt +++ b/app/src/main/java/com/hippo/app/CheckBoxDialogBuilder.kt @@ -18,7 +18,6 @@ package com.hippo.app import android.content.Context import android.view.LayoutInflater import android.widget.CheckBox -import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.hippo.ehviewer.R class CheckBoxDialogBuilder constructor( @@ -26,7 +25,7 @@ class CheckBoxDialogBuilder constructor( message: String?, checkText: String?, checked: Boolean -) : MaterialAlertDialogBuilder( +) : BaseDialogBuilder( context ) { private val mCheckBox: CheckBox diff --git a/app/src/main/java/com/hippo/app/EditTextDialogBuilder.kt b/app/src/main/java/com/hippo/app/EditTextDialogBuilder.kt index 8e720fdc2..267f9cb7c 100644 --- a/app/src/main/java/com/hippo/app/EditTextDialogBuilder.kt +++ b/app/src/main/java/com/hippo/app/EditTextDialogBuilder.kt @@ -23,7 +23,6 @@ import android.widget.EditText import android.widget.TextView import android.widget.TextView.OnEditorActionListener import androidx.appcompat.app.AlertDialog -import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.textfield.TextInputLayout import com.hippo.ehviewer.R @@ -31,7 +30,7 @@ class EditTextDialogBuilder constructor( context: Context, text: String?, hint: String? -) : MaterialAlertDialogBuilder( +) : BaseDialogBuilder( context ), OnEditorActionListener { private val mTextInputLayout: TextInputLayout diff --git a/app/src/main/java/com/hippo/app/ListCheckBoxDialogBuilder.kt b/app/src/main/java/com/hippo/app/ListCheckBoxDialogBuilder.kt index 800056338..71d7b3da8 100644 --- a/app/src/main/java/com/hippo/app/ListCheckBoxDialogBuilder.kt +++ b/app/src/main/java/com/hippo/app/ListCheckBoxDialogBuilder.kt @@ -23,14 +23,13 @@ import android.widget.ArrayAdapter import android.widget.CheckBox import android.widget.ListView import androidx.appcompat.app.AlertDialog -import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.hippo.ehviewer.R import com.hippo.yorozuya.ViewUtils class ListCheckBoxDialogBuilder constructor( context: Context, items: Array, listener: OnItemClickListener?, checkText: String?, checked: Boolean -) : MaterialAlertDialogBuilder( +) : BaseDialogBuilder( context ) { private val mCheckBox: CheckBox diff --git a/app/src/main/java/com/hippo/ehviewer/EhApplication.java b/app/src/main/java/com/hippo/ehviewer/EhApplication.java index 5d60aa981..3530023d2 100644 --- a/app/src/main/java/com/hippo/ehviewer/EhApplication.java +++ b/app/src/main/java/com/hippo/ehviewer/EhApplication.java @@ -44,8 +44,8 @@ import androidx.lifecycle.DefaultLifecycleObserver; import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.ProcessLifecycleOwner; -import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.hippo.Native; +import com.hippo.app.BaseDialogBuilder; import com.hippo.beerbelly.SimpleDiskCache; import com.hippo.conaco.Conaco; import com.hippo.ehviewer.client.EhClient; @@ -430,7 +430,7 @@ public class EhApplication extends SceneApplication { Activity activity = getTopActivity(); if (activity != null) { activity.runOnUiThread(() -> { - AlertDialog dialog = new MaterialAlertDialogBuilder(activity) + AlertDialog dialog = new BaseDialogBuilder(activity) .setMessage(Html.fromHtml(html)) .setPositiveButton(android.R.string.ok, null) .create(); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/GalleryActivity.java b/app/src/main/java/com/hippo/ehviewer/ui/GalleryActivity.java index ba940f184..0f5857b46 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/GalleryActivity.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/GalleryActivity.java @@ -67,8 +67,8 @@ import androidx.core.view.WindowCompat; import androidx.core.view.WindowInsetsCompat; import androidx.core.view.WindowInsetsControllerCompat; -import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.materialswitch.MaterialSwitch; +import com.hippo.app.BaseDialogBuilder; import com.hippo.app.EditTextDialogBuilder; import com.hippo.ehviewer.AppConfig; import com.hippo.ehviewer.BuildConfig; @@ -990,7 +990,7 @@ public class GalleryActivity extends EhActivity implements SeekBar.OnSeekBarChan private void showPageDialog(final int page) { Resources resources = GalleryActivity.this.getResources(); - MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(GalleryActivity.this); + BaseDialogBuilder builder = new BaseDialogBuilder(GalleryActivity.this); builder.setTitle(resources.getString(R.string.page_menu_title, page + 1)); final CharSequence[] items; @@ -1286,7 +1286,7 @@ public class GalleryActivity extends EhActivity implements SeekBar.OnSeekBarChan } private void onTapMenuArea() { - MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(GalleryActivity.this); + BaseDialogBuilder builder = new BaseDialogBuilder(GalleryActivity.this); GalleryMenuHelper helper = new GalleryMenuHelper(builder.getContext()); builder.setTitle(R.string.gallery_menu_title) .setView(helper.getView()) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.java b/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.java index 56bbe15ab..111fbed06 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.java @@ -42,9 +42,9 @@ import androidx.annotation.RequiresApi; import androidx.annotation.StringRes; import androidx.drawerlayout.widget.DrawerLayout; -import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.navigation.NavigationView; import com.google.android.material.snackbar.Snackbar; +import com.hippo.app.BaseDialogBuilder; import com.hippo.app.EditTextDialogBuilder; import com.hippo.ehviewer.AppConfig; import com.hippo.ehviewer.R; @@ -337,7 +337,7 @@ public final class MainActivity extends StageActivity break; } if (hasUnverified) { - new MaterialAlertDialogBuilder(this) + new BaseDialogBuilder(this) .setTitle(R.string.app_link_not_verified_title) .setMessage(R.string.app_link_not_verified_message) .setPositiveButton(R.string.open_settings, (dialogInterface, i) -> { @@ -363,7 +363,7 @@ public final class MainActivity extends StageActivity if (null == uniFile || uniFile.ensureDir()) { return; } - new MaterialAlertDialogBuilder(this) + new BaseDialogBuilder(this) .setTitle(R.string.waring) .setMessage(R.string.invalid_download_location) .setPositiveButton(R.string.get_it, null) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/fragment/AdvancedFragment.java b/app/src/main/java/com/hippo/ehviewer/ui/fragment/AdvancedFragment.java index 079127ce3..4675e76bf 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/fragment/AdvancedFragment.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/fragment/AdvancedFragment.java @@ -31,7 +31,7 @@ import androidx.appcompat.app.AppCompatDelegate; import androidx.core.os.LocaleListCompat; import androidx.preference.Preference; -import com.google.android.material.dialog.MaterialAlertDialogBuilder; +import com.hippo.app.BaseDialogBuilder; import com.hippo.ehviewer.AppConfig; import com.hippo.ehviewer.BuildConfig; import com.hippo.ehviewer.EhApplication; @@ -76,7 +76,7 @@ public class AdvancedFragment extends BasePreferenceFragment { e.printStackTrace(); } try { - AlertDialog alertDialog = new MaterialAlertDialogBuilder(requireActivity()) + AlertDialog alertDialog = new BaseDialogBuilder(requireActivity()) .setCancelable(false) .setView(R.layout.preference_dialog_task) .show(); @@ -193,7 +193,7 @@ public class AdvancedFragment extends BasePreferenceFragment { e.printStackTrace(); } try { - AlertDialog alertDialog = new MaterialAlertDialogBuilder(requireActivity()) + AlertDialog alertDialog = new BaseDialogBuilder(requireActivity()) .setCancelable(false) .setView(R.layout.preference_dialog_task) .show(); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/fragment/DownloadFragment.java b/app/src/main/java/com/hippo/ehviewer/ui/fragment/DownloadFragment.java index 79d18f5cf..79501fdad 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/fragment/DownloadFragment.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/fragment/DownloadFragment.java @@ -25,7 +25,7 @@ import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.Nullable; import androidx.preference.Preference; -import com.google.android.material.dialog.MaterialAlertDialogBuilder; +import com.hippo.app.BaseDialogBuilder; import com.hippo.ehviewer.AppConfig; import com.hippo.ehviewer.R; import com.hippo.ehviewer.Settings; @@ -99,7 +99,7 @@ public class DownloadFragment extends BasePreferenceFragment { if (KEY_DOWNLOAD_LOCATION.equals(key)) { UniFile file = Settings.getDownloadLocation(); if (file != null && !UniFile.isFileUri(Settings.getDownloadLocation().getUri())) { - new MaterialAlertDialogBuilder(requireContext()) + new BaseDialogBuilder(requireContext()) .setTitle(R.string.settings_download_download_location) .setMessage(file.getUri().toString()) .setPositiveButton(R.string.pick_new_download_location, (dialogInterface, i) -> openDirPickerL()) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/fragment/FilterFragment.kt b/app/src/main/java/com/hippo/ehviewer/ui/fragment/FilterFragment.kt index f8de56ccc..6d7972d87 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/fragment/FilterFragment.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/fragment/FilterFragment.kt @@ -31,9 +31,9 @@ import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.google.android.material.checkbox.MaterialCheckBox -import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.floatingactionbutton.FloatingActionButton import com.google.android.material.textfield.TextInputLayout +import com.hippo.app.BaseDialogBuilder import com.hippo.easyrecyclerview.EasyRecyclerView import com.hippo.ehviewer.R import com.hippo.ehviewer.client.EhFilter @@ -112,7 +112,7 @@ class FilterFragment : BaseFragment() { } private fun showTipDialog() { - MaterialAlertDialogBuilder(requireActivity()) + BaseDialogBuilder(requireActivity()) .setTitle(R.string.filter) .setMessage(R.string.filter_tip) .setPositiveButton(android.R.string.ok, null) @@ -120,7 +120,7 @@ class FilterFragment : BaseFragment() { } private fun showAddFilterDialog() { - val dialog = MaterialAlertDialogBuilder(requireActivity()) + val dialog = BaseDialogBuilder(requireActivity()) .setTitle(R.string.add_filter) .setView(R.layout.dialog_add_filter) .setPositiveButton(R.string.add, null) @@ -131,7 +131,7 @@ class FilterFragment : BaseFragment() { private fun showDeleteFilterDialog(filter: Filter) { val message = getString(R.string.delete_filter, filter.text) - MaterialAlertDialogBuilder(requireActivity()) + BaseDialogBuilder(requireActivity()) .setMessage(message) .setPositiveButton(R.string.delete) { _: DialogInterface?, which: Int -> if (DialogInterface.BUTTON_POSITIVE != which) { diff --git a/app/src/main/java/com/hippo/ehviewer/ui/fragment/HostsFragment.java b/app/src/main/java/com/hippo/ehviewer/ui/fragment/HostsFragment.java index 6fafe3314..180289d46 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/fragment/HostsFragment.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/fragment/HostsFragment.java @@ -34,9 +34,9 @@ import androidx.fragment.app.DialogFragment; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; -import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.google.android.material.textfield.TextInputLayout; +import com.hippo.app.BaseDialogBuilder; import com.hippo.ehviewer.EhApplication; import com.hippo.ehviewer.Hosts; import com.hippo.ehviewer.R; @@ -149,7 +149,8 @@ public class HostsFragment extends BaseFragment ip.setText(arguments.getString(KEY_IP)); } - MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(requireContext()).setView(view); + BaseDialogBuilder builder = new BaseDialogBuilder(requireContext()); + builder.setView(view); onCreateDialogBuilder(builder); AlertDialog dialog = builder.create(); dialog.setOnShowListener(d -> onCreateDialog((AlertDialog) d)); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/CookieSignInScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/CookieSignInScene.java index 29efb9b14..581aae542 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/CookieSignInScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/CookieSignInScene.java @@ -31,8 +31,8 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.textfield.TextInputLayout; +import com.hippo.app.BaseDialogBuilder; import com.hippo.ehviewer.EhApplication; import com.hippo.ehviewer.R; import com.hippo.ehviewer.client.EhCookieStore; @@ -217,7 +217,7 @@ public class CookieSignInScene extends SolidScene implements EditText.OnEditorAc hideSoftInput(); if (!checkIpbMemberId(ipbMemberId) || !(checkIpbPassHash(ipbPassHash))) { - new MaterialAlertDialogBuilder(context).setTitle(R.string.waring) + new BaseDialogBuilder(context).setTitle(R.string.waring) .setMessage(R.string.wrong_cookie_warning) .setPositiveButton(R.string.i_will_check_it, null) .setNegativeButton(R.string.i_dont_think_so, (dialog, which) -> { diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java index a9ec35439..cc23711f5 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java @@ -51,8 +51,8 @@ import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.SimpleItemAnimator; import androidx.recyclerview.widget.StaggeredGridLayoutManager; -import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.hippo.app.BaseDialogBuilder; import com.hippo.app.CheckBoxDialogBuilder; import com.hippo.app.EditTextDialogBuilder; import com.hippo.easyrecyclerview.EasyRecyclerView; @@ -423,7 +423,7 @@ public class DownloadsScene extends ToolbarScene int id = item.getItemId(); if (id == R.id.action_filter) { - new MaterialAlertDialogBuilder(requireActivity()) + new BaseDialogBuilder(requireActivity()) .setSingleChoiceItems(R.array.download_state, mType + 1, (dialog, which) -> { mType = which - 1; updateForLabel(); @@ -446,7 +446,7 @@ public class DownloadsScene extends ToolbarScene openDrawer(Gravity.RIGHT); return true; } else if (id == R.id.action_reset_reading_progress) { - new MaterialAlertDialogBuilder(getContext()) + new BaseDialogBuilder(getContext()) .setMessage(R.string.reset_reading_progress_message) .setNegativeButton(android.R.string.cancel, null) .setPositiveButton(android.R.string.ok, (dialog, which) -> { @@ -519,7 +519,7 @@ public class DownloadsScene extends ToolbarScene for (int i = 0, n = list.size(); i < n; i++) { items[i + 2] = list.get(i).getLabel(); } - new MaterialAlertDialogBuilder(context) + new BaseDialogBuilder(context) .setTitle(R.string.default_download_label) .setItems(items, (dialog1, which) -> { if (which == 0) { @@ -706,7 +706,7 @@ public class DownloadsScene extends ToolbarScene MoveDialogHelper helper = new MoveDialogHelper(labels, downloadInfoList); - new MaterialAlertDialogBuilder(context) + new BaseDialogBuilder(context) .setTitle(R.string.download_move_dialog_title) .setItems(labels, helper) .show(); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java index ca4e5eb21..20d48961d 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java @@ -45,9 +45,9 @@ import androidx.drawerlayout.widget.DrawerLayout; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; -import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.hippo.annotation.Implemented; +import com.hippo.app.BaseDialogBuilder; import com.hippo.app.EditTextDialogBuilder; import com.hippo.drawable.AddDeleteDrawable; import com.hippo.drawable.DrawerArrowDrawable; @@ -402,7 +402,7 @@ public class FavoritesScene extends BaseScene implements items[1] = getString(R.string.local_favorites); String[] favCat = Settings.getFavCat(); System.arraycopy(favCat, 0, items, 2, 10); - new MaterialAlertDialogBuilder(context) + new BaseDialogBuilder(context) .setTitle(R.string.default_favorites_collection) .setItems(items, (dialog, which) -> Settings.putDefaultFavSlot(which - 2)).show(); return true; @@ -731,7 +731,7 @@ public class FavoritesScene extends BaseScene implements } case 4: { // Delete DeleteDialogHelper helper = new DeleteDialogHelper(); - new MaterialAlertDialogBuilder(context) + new BaseDialogBuilder(context) .setTitle(R.string.delete_favorites_dialog_title) .setMessage(getString(R.string.delete_favorites_dialog_message, mModifyGiList.size())) .setPositiveButton(android.R.string.ok, helper) @@ -745,7 +745,7 @@ public class FavoritesScene extends BaseScene implements String[] array = new String[11]; array[0] = getString(R.string.local_favorites); System.arraycopy(Settings.getFavCat(), 0, array, 1, 10); - new MaterialAlertDialogBuilder(context) + new BaseDialogBuilder(context) .setTitle(R.string.move_favorites_dialog_title) .setItems(array, helper) .setOnCancelListener(helper) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.java index ba3c77015..7c049d455 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.java @@ -54,8 +54,8 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; -import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.hippo.app.BaseDialogBuilder; import com.hippo.easyrecyclerview.EasyRecyclerView; import com.hippo.ehviewer.EhApplication; import com.hippo.ehviewer.R; @@ -290,7 +290,7 @@ public final class GalleryCommentsScene extends ToolbarScene } } - MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(context); + BaseDialogBuilder builder = new BaseDialogBuilder(context); context = builder.getContext(); final LayoutInflater inflater = LayoutInflater.from(context); EasyRecyclerView rv = (EasyRecyclerView) inflater.inflate(R.layout.dialog_recycler_view, null); @@ -347,7 +347,7 @@ public final class GalleryCommentsScene extends ToolbarScene menuId.add(R.id.check_vote_status); } - new MaterialAlertDialogBuilder(context) + new BaseDialogBuilder(context) .setItems(menu.toArray(new String[0]), (dialog, which) -> { if (which < 0 || which >= menuId.size()) { return; diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java index 05fa3923e..69018615a 100755 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java @@ -62,9 +62,9 @@ import androidx.appcompat.app.AlertDialog; import androidx.core.content.ContextCompat; import androidx.core.view.ViewCompat; -import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.progressindicator.CircularProgressIndicator; import com.google.android.material.snackbar.Snackbar; +import com.hippo.app.BaseDialogBuilder; import com.hippo.app.EditTextDialogBuilder; import com.hippo.beerbelly.BeerBelly; import com.hippo.ehviewer.AppConfig; @@ -260,7 +260,7 @@ public class GalleryDetailScene extends ToolbarScene implements View.OnClickList result -> { if (result && mGalleryDetail != null) { TorrentListDialogHelper helper = new TorrentListDialogHelper(); - Dialog dialog = new MaterialAlertDialogBuilder(requireActivity()) + Dialog dialog = new BaseDialogBuilder(requireActivity()) .setTitle(R.string.torrents) .setView(R.layout.dialog_torrent_list) .setOnDismissListener(helper) @@ -1203,7 +1203,7 @@ public class GalleryDetailScene extends ToolbarScene implements View.OnClickList if (EhApplication.getDownloadManager(context).getDownloadState(galleryInfo.gid) == DownloadInfo.STATE_INVALID) { CommonOperations.startDownload(activity, galleryInfo, false); } else { - new MaterialAlertDialogBuilder(context) + new BaseDialogBuilder(context) .setTitle(R.string.download_remove_dialog_title) .setMessage(getString(R.string.download_remove_dialog_message, galleryInfo.title)) .setPositiveButton(android.R.string.ok, (dialog1, which1) -> EhApplication.getDownloadManager(context).deleteDownload(galleryInfo.gid)) @@ -1229,7 +1229,7 @@ public class GalleryDetailScene extends ToolbarScene implements View.OnClickList for (GalleryInfo newerVersion : mGalleryDetail.newerVersions) { titles.add(getString(R.string.newer_version_title, newerVersion.title, newerVersion.posted)); } - new MaterialAlertDialogBuilder(requireContext()) + new BaseDialogBuilder(requireContext()) .setItems(titles.toArray(new CharSequence[0]), (dialog, which) -> { GalleryInfo newerVersion = mGalleryDetail.newerVersions.get(which); Bundle args = new Bundle(); @@ -1275,7 +1275,7 @@ public class GalleryDetailScene extends ToolbarScene implements View.OnClickList requestStoragePermissionLauncher.launch(Manifest.permission.WRITE_EXTERNAL_STORAGE); } else { TorrentListDialogHelper helper = new TorrentListDialogHelper(); - Dialog dialog = new MaterialAlertDialogBuilder(context) + Dialog dialog = new BaseDialogBuilder(context) .setTitle(R.string.torrents) .setView(R.layout.dialog_torrent_list) .setOnDismissListener(helper) @@ -1292,7 +1292,7 @@ public class GalleryDetailScene extends ToolbarScene implements View.OnClickList return; } ArchiveListDialogHelper helper = new ArchiveListDialogHelper(); - Dialog dialog = new MaterialAlertDialogBuilder(context) + Dialog dialog = new BaseDialogBuilder(context) .setTitle(R.string.dialog_archive_title) .setView(R.layout.dialog_archive_list) .setOnDismissListener(helper) @@ -1307,7 +1307,7 @@ public class GalleryDetailScene extends ToolbarScene implements View.OnClickList return; } RateDialogHelper helper = new RateDialogHelper(); - Dialog dialog = new MaterialAlertDialogBuilder(context) + Dialog dialog = new BaseDialogBuilder(context) .setTitle(R.string.rate) .setView(R.layout.dialog_rate) .setNegativeButton(android.R.string.cancel, null) @@ -1369,7 +1369,7 @@ public class GalleryDetailScene extends ToolbarScene implements View.OnClickList return; } - new MaterialAlertDialogBuilder(context) + new BaseDialogBuilder(context) .setMessage(getString(R.string.filter_the_uploader, uploader)) .setPositiveButton(android.R.string.ok, (dialog, which) -> { Filter filter = new Filter(); @@ -1389,7 +1389,7 @@ public class GalleryDetailScene extends ToolbarScene implements View.OnClickList return; } - new MaterialAlertDialogBuilder(context) + new BaseDialogBuilder(context) .setMessage(getString(R.string.filter_the_tag, tag)) .setPositiveButton(android.R.string.ok, (dialog, which) -> { Filter filter = new Filter(); @@ -1438,7 +1438,7 @@ public class GalleryDetailScene extends ToolbarScene implements View.OnClickList menuId.add(R.id.vote_down); } - new MaterialAlertDialogBuilder(context) + new BaseDialogBuilder(context) .setTitle(tag) .setItems(menu.toArray(new String[0]), (dialog, which) -> { if (which < 0 || which >= menuId.size()) { diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java index 161ed59f1..7fb378570 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java @@ -55,8 +55,8 @@ import androidx.recyclerview.widget.ItemTouchHelper; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; -import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.hippo.app.BaseDialogBuilder; import com.hippo.app.EditTextDialogBuilder; import com.hippo.drawable.AddDeleteDrawable; import com.hippo.drawable.DrawerArrowDrawable; @@ -663,7 +663,7 @@ public final class GalleryListScene extends BaseScene if (null == context) { return; } - final MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(context); + final BaseDialogBuilder builder = new BaseDialogBuilder(context); builder.setMessage(R.string.add_quick_search_tip); builder.setTitle(R.string.readme); builder.show(); @@ -950,7 +950,7 @@ public final class GalleryListScene extends BaseScene favourited ? R.drawable.v_heart_broken_x24 : R.drawable.v_heart_x24, }; - new MaterialAlertDialogBuilder(context) + new BaseDialogBuilder(context) .setTitle(EhUtils.getSuitableTitle(gi)) .setAdapter(new SelectItemWithIconAdapter(context, items, icons), (dialog, which) -> { switch (which) { @@ -962,7 +962,7 @@ public final class GalleryListScene extends BaseScene break; case 1: // Download if (downloaded) { - new MaterialAlertDialogBuilder(context) + new BaseDialogBuilder(context) .setTitle(R.string.download_remove_dialog_title) .setMessage(getString(R.string.download_remove_dialog_message, gi.title)) .setPositiveButton(android.R.string.ok, (dialog1, which1) -> mDownloadManager.deleteDownload(gi.gid)) @@ -989,7 +989,7 @@ public final class GalleryListScene extends BaseScene MoveDialogHelper helper = new MoveDialogHelper(labels, gi); - new MaterialAlertDialogBuilder(context) + new BaseDialogBuilder(context) .setTitle(R.string.download_move_dialog_title) .setItems(labels, helper) .show(); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryPreviewsScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryPreviewsScene.java index 031024cae..b4c0014ea 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryPreviewsScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryPreviewsScene.java @@ -35,8 +35,8 @@ import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.recyclerview.widget.RecyclerView; -import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.slider.Slider; +import com.hippo.app.BaseDialogBuilder; import com.hippo.easyrecyclerview.EasyRecyclerView; import com.hippo.easyrecyclerview.MarginItemDecoration; import com.hippo.ehviewer.EhApplication; @@ -211,7 +211,7 @@ public class GalleryPreviewsScene extends ToolbarScene { int pages = mHelper.getPages(); if (pages > 1 && mHelper.canGoTo()) { GoToDialogHelper helper = new GoToDialogHelper(pages, mHelper.getPageForTop()); - AlertDialog dialog = new MaterialAlertDialogBuilder(context).setTitle(R.string.go_to) + AlertDialog dialog = new BaseDialogBuilder(context).setTitle(R.string.go_to) .setView(R.layout.dialog_go_to) .setPositiveButton(android.R.string.ok, null) .create(); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/HistoryScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/HistoryScene.kt index 452739419..30bc454aa 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/HistoryScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/HistoryScene.kt @@ -35,7 +35,7 @@ import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.StaggeredGridLayoutManager -import com.google.android.material.dialog.MaterialAlertDialogBuilder +import com.hippo.app.BaseDialogBuilder import com.hippo.easyrecyclerview.EasyRecyclerView import com.hippo.easyrecyclerview.FastScroller import com.hippo.easyrecyclerview.HandlerDrawable @@ -200,7 +200,7 @@ class HistoryScene : ToolbarScene() { @SuppressLint("NotifyDataSetChanged") private fun showClearAllDialog() { - MaterialAlertDialogBuilder(requireContext()) + BaseDialogBuilder(requireContext()) .setMessage(R.string.clear_all_history) .setPositiveButton(R.string.clear_all) { _: DialogInterface?, which: Int -> if (DialogInterface.BUTTON_POSITIVE != which || null == mAdapter) { @@ -260,7 +260,7 @@ class HistoryScene : ToolbarScene() { R.drawable.v_download_x24, if (favourited) R.drawable.v_heart_broken_x24 else R.drawable.v_heart_x24, ) - MaterialAlertDialogBuilder(context) + BaseDialogBuilder(context) .setTitle(EhUtils.getSuitableTitle(gi)) .setAdapter( SelectItemWithIconAdapter( @@ -277,7 +277,7 @@ class HistoryScene : ToolbarScene() { startActivity(intent) } 1 -> if (downloaded) { - MaterialAlertDialogBuilder(context) + BaseDialogBuilder(context) .setTitle(R.string.download_remove_dialog_title) .setMessage( getString( @@ -319,7 +319,7 @@ class HistoryScene : ToolbarScene() { } val labels = labelList.toTypedArray() val helper = MoveDialogHelper(labels, gi) - MaterialAlertDialogBuilder(context) + BaseDialogBuilder(context) .setTitle(R.string.download_move_dialog_title) .setItems(labels, helper) .show() diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/SignInScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/SignInScene.java index df136f19d..59ea3db09 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/SignInScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/SignInScene.java @@ -30,8 +30,8 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.textfield.TextInputLayout; +import com.hippo.app.BaseDialogBuilder; import com.hippo.ehviewer.EhApplication; import com.hippo.ehviewer.R; import com.hippo.ehviewer.Settings; @@ -333,7 +333,7 @@ public final class SignInScene extends SolidScene implements EditText.OnEditorAc return; } - new MaterialAlertDialogBuilder(context) + new BaseDialogBuilder(context) .setTitle(R.string.sign_in_failed) .setMessage(ExceptionUtils.getReadableString(e) + "\n\n" + getString(R.string.sign_in_failed_tip)) .setPositiveButton(R.string.get_it, null) diff --git a/app/src/main/java/com/hippo/ehviewer/widget/DialogWebChromeClient.java b/app/src/main/java/com/hippo/ehviewer/widget/DialogWebChromeClient.java index 8fc9deebf..894d41c77 100644 --- a/app/src/main/java/com/hippo/ehviewer/widget/DialogWebChromeClient.java +++ b/app/src/main/java/com/hippo/ehviewer/widget/DialogWebChromeClient.java @@ -26,7 +26,7 @@ import android.webkit.WebView; import android.widget.EditText; import android.widget.TextView; -import com.google.android.material.dialog.MaterialAlertDialogBuilder; +import com.hippo.app.BaseDialogBuilder; import com.hippo.ehviewer.R; public class DialogWebChromeClient extends WebChromeClient { @@ -39,7 +39,7 @@ public class DialogWebChromeClient extends WebChromeClient { @Override public boolean onJsAlert(WebView view, String url, String message, JsResult result) { - new MaterialAlertDialogBuilder(view.getContext()) + new BaseDialogBuilder(view.getContext()) .setMessage(message) .setPositiveButton(android.R.string.ok, (dialog, which) -> result.confirm()) .setOnCancelListener(dialog -> result.cancel()) @@ -49,7 +49,7 @@ public class DialogWebChromeClient extends WebChromeClient { @Override public boolean onJsConfirm(WebView view, String url, String message, JsResult result) { - new MaterialAlertDialogBuilder(view.getContext()) + new BaseDialogBuilder(view.getContext()) .setMessage(message) .setPositiveButton(android.R.string.ok, (dialog, which) -> result.confirm()) .setNegativeButton(android.R.string.cancel, (dialog, which) -> result.cancel()) @@ -67,7 +67,7 @@ public class DialogWebChromeClient extends WebChromeClient { final EditText valueView = promptView.findViewById(R.id.value); valueView.setText(defaultValue); - new MaterialAlertDialogBuilder(context) + new BaseDialogBuilder(context) .setView(promptView) .setPositiveButton(android.R.string.ok, (dialog, which) -> result.confirm(valueView.getText().toString())) .setOnCancelListener(dialog -> result.cancel()) diff --git a/app/src/main/java/com/hippo/ehviewer/widget/SearchBar.java b/app/src/main/java/com/hippo/ehviewer/widget/SearchBar.java index 59208c784..1dd48bb6e 100644 --- a/app/src/main/java/com/hippo/ehviewer/widget/SearchBar.java +++ b/app/src/main/java/com/hippo/ehviewer/widget/SearchBar.java @@ -46,7 +46,7 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.google.android.material.card.MaterialCardView; -import com.google.android.material.dialog.MaterialAlertDialogBuilder; +import com.hippo.app.BaseDialogBuilder; import com.hippo.easyrecyclerview.EasyRecyclerView; import com.hippo.ehviewer.R; import com.hippo.ehviewer.client.EhTagDatabase; @@ -668,7 +668,7 @@ public class SearchBar extends MaterialCardView implements View.OnClickListener, @Override public boolean onLongClick() { - new MaterialAlertDialogBuilder(getContext()) + new BaseDialogBuilder(getContext()) .setMessage(getContext().getString(R.string.delete_search_history, mKeyword)) .setNegativeButton(android.R.string.cancel, null) .setPositiveButton(R.string.delete, (dialog, which) -> { diff --git a/app/src/main/java/com/hippo/ehviewer/widget/SearchLayout.kt b/app/src/main/java/com/hippo/ehviewer/widget/SearchLayout.kt index 6e51c5d9b..55e44d015 100644 --- a/app/src/main/java/com/hippo/ehviewer/widget/SearchLayout.kt +++ b/app/src/main/java/com/hippo/ehviewer/widget/SearchLayout.kt @@ -34,9 +34,9 @@ import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.LinearLayoutManager import com.google.android.material.chip.Chip import com.google.android.material.chip.ChipGroup -import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayout.OnTabSelectedListener +import com.hippo.app.BaseDialogBuilder import com.hippo.easyrecyclerview.EasyRecyclerView import com.hippo.easyrecyclerview.MarginItemDecoration import com.hippo.easyrecyclerview.SimpleHolder @@ -217,7 +217,7 @@ class SearchLayout @JvmOverloads constructor( override fun onClick(v: View) { if (mNormalSearchModeHelp === v) { - MaterialAlertDialogBuilder(context) + BaseDialogBuilder(context) .setMessage(R.string.search_tip) .show() } diff --git a/app/src/main/java/com/hippo/preference/DialogPreference.java b/app/src/main/java/com/hippo/preference/DialogPreference.java index 350265b7e..e954dd87f 100644 --- a/app/src/main/java/com/hippo/preference/DialogPreference.java +++ b/app/src/main/java/com/hippo/preference/DialogPreference.java @@ -37,7 +37,7 @@ import androidx.appcompat.app.AlertDialog; import androidx.core.content.ContextCompat; import androidx.preference.Preference; -import com.google.android.material.dialog.MaterialAlertDialogBuilder; +import com.hippo.app.BaseDialogBuilder; import com.hippo.ehviewer.R; /** @@ -255,7 +255,7 @@ public abstract class DialogPreference extends Preference implements mWhichButtonClicked = DialogInterface.BUTTON_NEGATIVE; - mBuilder = new MaterialAlertDialogBuilder(context) + mBuilder = new BaseDialogBuilder(context) .setTitle(mDialogTitle) .setIcon(mDialogIcon) .setPositiveButton(mPositiveButtonText, this)