From 1736ee73f1255f2828687620428707e38d197fd9 Mon Sep 17 00:00:00 2001 From: NekoInverter <42698724+NekoInverter@users.noreply.github.com> Date: Mon, 23 Mar 2020 18:56:39 +0800 Subject: [PATCH] Replace alert dialog with material alert dialog --- app/.gitignore | 1 - app/build.gradle | 8 +-- app/src/main/AndroidManifest.xml | 6 -- .../hippo/ehviewer/ui/CommonOperations.java | 19 ++---- .../hippo/ehviewer/ui/DirPickerActivity.java | 3 +- .../com/hippo/ehviewer/ui/EhActivity.java | 3 - .../com/hippo/ehviewer/ui/FilterActivity.java | 7 ++- .../hippo/ehviewer/ui/GalleryActivity.java | 22 +++---- .../com/hippo/ehviewer/ui/HostsActivity.java | 3 +- .../hippo/ehviewer/ui/LicenseActivity.java | 63 ------------------- .../com/hippo/ehviewer/ui/MainActivity.java | 4 +- .../ehviewer/ui/fragment/AboutFragment.java | 13 ++-- .../ui/fragment/AdvancedFragment.java | 3 +- .../ui/fragment/DownloadFragment.java | 43 ++++--------- .../ehviewer/ui/fragment/EhFragment.java | 9 --- .../ehviewer/ui/scene/CookieSignInScene.java | 14 ++--- .../ui/scene/DownloadLabelsScene.java | 21 +++---- .../ehviewer/ui/scene/DownloadsScene.java | 7 ++- .../ehviewer/ui/scene/FavoritesScene.java | 14 ++--- .../ui/scene/GalleryCommentsScene.java | 60 +++++++++--------- .../ehviewer/ui/scene/GalleryDetailScene.java | 15 ++--- .../ehviewer/ui/scene/GalleryListScene.java | 5 +- .../ui/scene/GalleryPreviewsScene.java | 3 +- .../hippo/ehviewer/ui/scene/HistoryScene.java | 24 ++++--- .../ehviewer/ui/scene/QuickSearchScene.java | 23 +++---- .../hippo/ehviewer/ui/scene/SignInScene.java | 3 +- .../widget/DialogWebChromeClient.java | 7 ++- .../hippo/ehviewer/widget/SearchLayout.java | 3 +- .../hippo/preference/DialogPreference.java | 3 +- .../com/hippo/util/PermissionRequester.java | 11 ++-- app/src/main/res/values-night-v29/colors.xml | 3 + app/src/main/res/values-night/bools.xml | 22 +++++++ app/src/main/res/values-night/colors.xml | 1 + app/src/main/res/values-v27/colors.xml | 3 + app/src/main/res/values-v29/colors.xml | 3 + app/src/main/res/values/bools.xml | 1 + app/src/main/res/values/colors.xml | 1 + app/src/main/res/values/themes.xml | 5 +- app/src/main/res/xml/about_settings.xml | 18 +++--- app/src/main/res/xml/eh_settings.xml | 6 -- 40 files changed, 192 insertions(+), 291 deletions(-) delete mode 100644 app/src/main/java/com/hippo/ehviewer/ui/LicenseActivity.java create mode 100644 app/src/main/res/values-night-v29/colors.xml create mode 100644 app/src/main/res/values-night/bools.xml create mode 100644 app/src/main/res/values-v27/colors.xml create mode 100644 app/src/main/res/values-v29/colors.xml diff --git a/app/.gitignore b/app/.gitignore index f16d7161c..c9d6c9a6d 100644 --- a/app/.gitignore +++ b/app/.gitignore @@ -1,4 +1,3 @@ -/src/main/assets/NOTICE.html /build /src/main/java-gen manifest-merger-release-report.txt diff --git a/app/build.gradle b/app/build.gradle index aac402ebf..417c60195 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,4 +1,5 @@ apply plugin: 'com.android.application' +apply plugin: 'com.google.android.gms.oss-licenses-plugin' android { compileSdkVersion 29 @@ -67,8 +68,6 @@ android { } task copyNotice(type: Copy) { - from '../NOTICE.html' - into './src/main/assets' finalizedBy ":daogenerator:executeDaoGenerator" } @@ -76,14 +75,11 @@ tasks.withType(JavaCompile) { task -> task.dependsOn copyNotice } -clean { - delete file('src/main/assets/NOTICE.html').absolutePath -} - dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'androidx.appcompat:appcompat:1.2.0-alpha03' implementation 'androidx.cardview:cardview:1.0.0' + implementation 'com.google.android.gms:play-services-oss-licenses:17.0.0' implementation 'com.google.android.material:material:1.1.0' implementation 'com.getkeepsafe.relinker:relinker:1.3.1' implementation 'com.github.amlcurran.showcaseview:library:5.4.3' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5a080473c..152a19e3b 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -163,12 +163,6 @@ android:label="@string/dir_picker" android:theme="@style/AppTheme.Toolbar" /> - - UrlOpener.openUrl(mActivity, url, false)) + .setNegativeButton(R.string.update_ignore, (dialog, which) -> Settings.putSkipUpdateVersion(versionCode)).show(); } private void handleResult(JSONObject jo) { diff --git a/app/src/main/java/com/hippo/ehviewer/ui/DirPickerActivity.java b/app/src/main/java/com/hippo/ehviewer/ui/DirPickerActivity.java index 85de2e9b5..efbb47717 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/DirPickerActivity.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/DirPickerActivity.java @@ -29,6 +29,7 @@ import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.core.content.ContextCompat; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.hippo.android.resource.AttrResources; import com.hippo.ehviewer.AppConfig; import com.hippo.ehviewer.R; @@ -149,7 +150,7 @@ public class DirPickerActivity extends ToolbarActivity items[i] = getString(R.string.application_file_directory, i); } - new AlertDialog.Builder(this).setItems(items, (dialog, which) -> { + new MaterialAlertDialogBuilder(this).setItems(items, (dialog, which) -> { File dir = dirs[which]; if (!FileUtils.ensureDirectory(dir)) { Toast.makeText(DirPickerActivity.this, R.string.directory_not_writable, Toast.LENGTH_SHORT).show(); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/EhActivity.java b/app/src/main/java/com/hippo/ehviewer/ui/EhActivity.java index f855e340c..92ac3578b 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/EhActivity.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/EhActivity.java @@ -98,9 +98,6 @@ public abstract class EhActivity extends AppCompatActivity { ((EhApplication) getApplication()).registerActivity(this); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && Settings.getApplyNavBarThemeColor()) { - getWindow().setNavigationBarColor(AttrResources.getAttrColor(this, R.attr.colorPrimaryDark)); - } mTheme = getTheme(this); } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/FilterActivity.java b/app/src/main/java/com/hippo/ehviewer/ui/FilterActivity.java index 69b642254..7d12ff4df 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/FilterActivity.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/FilterActivity.java @@ -35,6 +35,7 @@ import androidx.appcompat.app.AlertDialog; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.textfield.TextInputLayout; import com.hippo.easyrecyclerview.EasyRecyclerView; import com.hippo.ehviewer.R; @@ -131,14 +132,14 @@ public class FilterActivity extends ToolbarActivity { } private void showTipDialog() { - new AlertDialog.Builder(this) + new MaterialAlertDialogBuilder(this) .setTitle(R.string.filter) .setMessage(R.string.filter_tip) .show(); } private void showAddFilterDialog() { - AlertDialog dialog = new AlertDialog.Builder(this) + AlertDialog dialog = new MaterialAlertDialogBuilder(this) .setTitle(R.string.add_filter) .setView(R.layout.dialog_add_filter) .setPositiveButton(R.string.add, null) @@ -149,7 +150,7 @@ public class FilterActivity extends ToolbarActivity { private void showDeleteFilterDialog(final Filter filter) { String message = getString(R.string.delete_filter, filter.text); - new AlertDialog.Builder(this) + new MaterialAlertDialogBuilder(this) .setMessage(message) .setPositiveButton(R.string.delete, (dialog, which) -> { if (DialogInterface.BUTTON_POSITIVE != which || null == mFilterList) { 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 35c1abc68..ead4d5fec 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/GalleryActivity.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/GalleryActivity.java @@ -51,6 +51,7 @@ import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatDelegate; import androidx.appcompat.widget.SwitchCompat; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.hippo.android.resource.AttrResources; import com.hippo.ehviewer.AppConfig; import com.hippo.ehviewer.BuildConfig; @@ -852,22 +853,15 @@ public class GalleryActivity extends EhActivity implements SeekBar.OnSeekBarChan private void showPageDialog(final int page) { Resources resources = GalleryActivity.this.getResources(); - AlertDialog.Builder builder = new AlertDialog.Builder(GalleryActivity.this); + AlertDialog.Builder builder = new MaterialAlertDialogBuilder(GalleryActivity.this); builder.setTitle(resources.getString(R.string.page_menu_title, page + 1)); final CharSequence[] items; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { - items = new CharSequence[]{ - getString(R.string.page_menu_refresh), - getString(R.string.page_menu_share), - getString(R.string.page_menu_save), - getString(R.string.page_menu_save_to)}; - } else { - items = new CharSequence[]{ - getString(R.string.page_menu_refresh), - getString(R.string.page_menu_share), - getString(R.string.page_menu_save)}; - } + items = new CharSequence[]{ + getString(R.string.page_menu_refresh), + getString(R.string.page_menu_share), + getString(R.string.page_menu_save), + getString(R.string.page_menu_save_to)}; pageDialogListener(builder, items, page); builder.show(); } @@ -1063,7 +1057,7 @@ public class GalleryActivity extends EhActivity implements SeekBar.OnSeekBarChan } private void onTapMenuArea() { - AlertDialog.Builder builder = new AlertDialog.Builder(GalleryActivity.this); + AlertDialog.Builder builder = new MaterialAlertDialogBuilder(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/HostsActivity.java b/app/src/main/java/com/hippo/ehviewer/ui/HostsActivity.java index 02eeb2b66..60912b03d 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/HostsActivity.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/HostsActivity.java @@ -39,6 +39,7 @@ 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.android.resource.AttrResources; @@ -161,7 +162,7 @@ public class HostsActivity extends ToolbarActivity ip.setText(arguments.getString(KEY_IP)); } - AlertDialog.Builder builder = new AlertDialog.Builder(getContext()).setView(view); + AlertDialog.Builder builder = new MaterialAlertDialogBuilder(requireContext()).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/LicenseActivity.java b/app/src/main/java/com/hippo/ehviewer/ui/LicenseActivity.java deleted file mode 100644 index ae44e323f..000000000 --- a/app/src/main/java/com/hippo/ehviewer/ui/LicenseActivity.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2016 Hippo Seven - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.hippo.ehviewer.ui; - -import android.os.Bundle; -import android.view.MenuItem; -import android.webkit.WebView; - -import androidx.annotation.Nullable; - -import com.hippo.ehviewer.R; - -public class LicenseActivity extends ToolbarActivity { - - @Nullable - private WebView mWebView; - - @Override - protected void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - mWebView = new WebView(this); - mWebView.loadUrl("file:///android_asset/NOTICE.html"); - setContentView(mWebView); - - setNavigationIcon(R.drawable.v_arrow_left_dark_x24); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - - if (null != mWebView) { - mWebView.destroy(); - mWebView = null; - } - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case android.R.id.home: - finish(); - return true; - default: - return super.onOptionsItemSelected(item); - } - } -} 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 fac7141eb..6f17c538b 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.java @@ -42,6 +42,7 @@ import androidx.annotation.StringRes; import androidx.appcompat.app.AlertDialog; 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.ehviewer.AppConfig; @@ -320,6 +321,7 @@ public final class MainActivity extends StageActivity View headerLayout = mNavView.getHeaderView(0); mAvatar = (LoadImageView) ViewUtils.$$(headerLayout, R.id.avatar); mDisplayName = (TextView) ViewUtils.$$(headerLayout, R.id.display_name); + mDrawerLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); updateProfile(); @@ -347,7 +349,7 @@ public final class MainActivity extends StageActivity if (null == uniFile || uniFile.ensureDir()) { return; } - new AlertDialog.Builder(this) + new MaterialAlertDialogBuilder(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/AboutFragment.java b/app/src/main/java/com/hippo/ehviewer/ui/fragment/AboutFragment.java index ecdf74860..bca499093 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/fragment/AboutFragment.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/fragment/AboutFragment.java @@ -30,6 +30,8 @@ import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.preference.Preference; +import com.google.android.gms.oss.licenses.OssLicensesMenuActivity; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.hippo.ehviewer.EhApplication; import com.hippo.ehviewer.R; import com.hippo.ehviewer.ui.CommonOperations; @@ -55,14 +57,15 @@ public class AboutFragment extends PreferenceFragmentCompat addPreferencesFromResource(R.xml.about_settings); Preference author = findPreference(KEY_AUTHOR); - Preference donate = findPreference(KEY_DONATE); - Preference checkForUpdate = findPreference(KEY_CHECK_FOR_UPDATES); + //Preference donate = findPreference(KEY_DONATE); + //Preference checkForUpdate = findPreference(KEY_CHECK_FOR_UPDATES); author.setSummary(getString(R.string.settings_about_author_summary).replace('$', '@')); author.setOnPreferenceClickListener(this); - donate.setOnPreferenceClickListener(this); - checkForUpdate.setOnPreferenceClickListener(this); + //donate.setOnPreferenceClickListener(this); + //checkForUpdate.setOnPreferenceClickListener(this); + OssLicensesMenuActivity.setActivityTitle(getString(R.string.license)); } @Override @@ -80,7 +83,7 @@ public class AboutFragment extends PreferenceFragmentCompat } private void showDonationDialog() { - AlertDialog dialog = new AlertDialog.Builder(getActivity()) + AlertDialog dialog = new MaterialAlertDialogBuilder(requireActivity()) .setView(R.layout.dialog_donate) .show(); 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 fe5bbb51c..71bc2c2fd 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 @@ -26,6 +26,7 @@ import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.preference.Preference; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.hippo.ehviewer.AppConfig; import com.hippo.ehviewer.EhApplication; import com.hippo.ehviewer.EhDB; @@ -57,7 +58,7 @@ public class AdvancedFragment extends PreferenceFragmentCompat return; } Arrays.sort(files); - new AlertDialog.Builder(context).setItems(files, (dialog, which) -> { + new MaterialAlertDialogBuilder(context).setItems(files, (dialog, which) -> { File file = new File(dir, files[which]); String error = EhDB.importDB(context, file); if (null == error) { 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 35ef4a1d3..d8c9abd46 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 @@ -28,6 +28,7 @@ import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.preference.Preference; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.hippo.ehviewer.R; import com.hippo.ehviewer.Settings; import com.hippo.ehviewer.ui.CommonOperations; @@ -88,45 +89,25 @@ public class DownloadFragment extends PreferenceFragmentCompat implements public boolean onPreferenceClick(Preference preference) { String key = preference.getKey(); if (KEY_DOWNLOAD_LOCATION.equals(key)) { - int sdk = Build.VERSION.SDK_INT; - if (sdk < Build.VERSION_CODES.KITKAT) { - openDirPicker(); - } else if (sdk < Build.VERSION_CODES.LOLLIPOP) { - showDirPickerDialogKK(); - } else { - showDirPickerDialogL(); - } + showDirPickerDialogL(); return true; } return false; } - private void showDirPickerDialogKK() { - new AlertDialog.Builder(getActivity()).setMessage(R.string.settings_download_pick_dir_kk) - .setPositiveButton(R.string.settings_download_continue, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - openDirPicker(); - } - }).show(); - } - private void showDirPickerDialogL() { - DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - switch (which) { - case DialogInterface.BUTTON_POSITIVE: - openDirPicker(); - break; - case DialogInterface.BUTTON_NEUTRAL: - openDirPickerL(); - break; - } + DialogInterface.OnClickListener listener = (dialog, which) -> { + switch (which) { + case DialogInterface.BUTTON_POSITIVE: + openDirPicker(); + break; + case DialogInterface.BUTTON_NEUTRAL: + openDirPickerL(); + break; } }; - new AlertDialog.Builder(getActivity()).setMessage(R.string.settings_download_pick_dir_l) + new MaterialAlertDialogBuilder(requireActivity()).setMessage(R.string.settings_download_pick_dir_l) .setPositiveButton(R.string.settings_download_continue, listener) .setNeutralButton(R.string.settings_download_document, listener) .show(); @@ -172,7 +153,7 @@ public class DownloadFragment extends PreferenceFragmentCompat implements case REQUEST_CODE_PICK_IMAGE_DIR_L: { if (resultCode == Activity.RESULT_OK && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Uri treeUri = data.getData(); - getActivity().getContentResolver().takePersistableUriPermission( + requireActivity().getContentResolver().takePersistableUriPermission( treeUri, Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); UniFile uniFile = UniFile.fromTreeUri(getActivity(), treeUri); if (uniFile != null) { diff --git a/app/src/main/java/com/hippo/ehviewer/ui/fragment/EhFragment.java b/app/src/main/java/com/hippo/ehviewer/ui/fragment/EhFragment.java index c1422b600..07119701e 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/fragment/EhFragment.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/fragment/EhFragment.java @@ -39,7 +39,6 @@ public class EhFragment extends PreferenceFragmentCompat Preference theme = findPreference(Settings.KEY_THEME); Preference blackDarkTheme = findPreference(Settings.KEY_BLACK_DARK_THEME); - Preference applyNavBarThemeColor = findPreference(Settings.KEY_APPLY_NAV_BAR_THEME_COLOR); Preference gallerySite = findPreference(Settings.KEY_GALLERY_SITE); Preference listMode = findPreference(Settings.KEY_LIST_MODE); Preference detailSize = findPreference(Settings.KEY_DETAIL_SIZE); @@ -48,7 +47,6 @@ public class EhFragment extends PreferenceFragmentCompat Preference tagTranslationsSource = findPreference("tag_translations_source"); theme.setOnPreferenceChangeListener(this); - applyNavBarThemeColor.setOnPreferenceChangeListener(this); gallerySite.setOnPreferenceChangeListener(this); listMode.setOnPreferenceChangeListener(this); detailSize.setOnPreferenceChangeListener(this); @@ -56,10 +54,6 @@ public class EhFragment extends PreferenceFragmentCompat showTagTranslations.setOnPreferenceChangeListener(this); blackDarkTheme.setOnPreferenceChangeListener(this); - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { - getPreferenceScreen().removePreference(applyNavBarThemeColor); - } - if (!EhTagDatabase.isPossible(getActivity())) { getPreferenceScreen().removePreference(showTagTranslations); getPreferenceScreen().removePreference(tagTranslationsSource); @@ -73,9 +67,6 @@ public class EhFragment extends PreferenceFragmentCompat AppCompatDelegate.setDefaultNightMode(Integer.parseInt((String) newValue)); ((EhApplication) getActivity().getApplication()).recreate(); return true; - } else if (Settings.KEY_APPLY_NAV_BAR_THEME_COLOR.equals(key)) { - ((EhApplication) getActivity().getApplication()).recreate(); - return true; } else if (Settings.KEY_GALLERY_SITE.equals(key)) { getActivity().setResult(Activity.RESULT_OK); return true; 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 5e017019b..c8d128897 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,6 +31,7 @@ import android.widget.TextView; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.textfield.TextInputLayout; import com.hippo.ehviewer.EhApplication; import com.hippo.ehviewer.R; @@ -207,16 +208,13 @@ public class CookieSignInScene extends SolidScene implements EditText.OnEditorAc hideSoftInput(); if (!checkIpbMemberId(ipbMemberId) || !(checkIpbPassHash(ipbPassHash))) { - new AlertDialog.Builder(context).setTitle(R.string.waring) + new MaterialAlertDialogBuilder(context).setTitle(R.string.waring) .setMessage(R.string.wrong_cookie_warning) .setNegativeButton(R.string.i_dont_think_so, null) - .setPositiveButton(R.string.i_will_check_it, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - storeCookie(ipbMemberId, ipbPassHash, igneous); - setResult(RESULT_OK, null); - finish(); - } + .setPositiveButton(R.string.i_will_check_it, (dialog, which) -> { + storeCookie(ipbMemberId, ipbPassHash, igneous); + setResult(RESULT_OK, null); + finish(); }).show(); } else { storeCookie(ipbMemberId, ipbPassHash, igneous); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadLabelsScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadLabelsScene.java index fc33115da..b252fc3e3 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadLabelsScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadLabelsScene.java @@ -34,6 +34,7 @@ import androidx.appcompat.app.AlertDialog; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.h6ah4i.android.widget.advrecyclerview.animator.GeneralItemAnimator; import com.h6ah4i.android.widget.advrecyclerview.animator.SwipeDismissItemAnimator; import com.h6ah4i.android.widget.advrecyclerview.draggable.DraggableItemAdapter; @@ -308,23 +309,15 @@ public class DownloadLabelsScene extends ToolbarScene { new RenameLabelDialogHelper(builder, dialog, raw.getLabel(), position); } else if (delete == v) { final DownloadLabel label = mList.get(position); - new AlertDialog.Builder(context) + new MaterialAlertDialogBuilder(context) .setTitle(R.string.delete_label_title) .setMessage(getString(R.string.delete_label_message, label.getLabel())) - .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - EhApplication.getDownloadManager(context).deleteLabel(label.getLabel()); - } - }) - .setOnDismissListener(new DialogInterface.OnDismissListener() { - @Override - public void onDismiss(DialogInterface dialog) { - if (null != mAdapter) { - mAdapter.notifyDataSetChanged(); - } - updateView(); + .setPositiveButton(android.R.string.ok, (dialog, which) -> EhApplication.getDownloadManager(context).deleteLabel(label.getLabel())) + .setOnDismissListener(dialog -> { + if (null != mAdapter) { + mAdapter.notifyDataSetChanged(); } + updateView(); }).show(); } } 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 ae5ac3f47..6a48547bf 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 @@ -58,6 +58,7 @@ import com.github.amlcurran.showcaseview.ShowcaseView; import com.github.amlcurran.showcaseview.SimpleShowcaseEventListener; import com.github.amlcurran.showcaseview.targets.PointTarget; import com.github.amlcurran.showcaseview.targets.ViewTarget; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.hippo.android.resource.AttrResources; import com.hippo.app.CheckBoxDialogBuilder; @@ -502,7 +503,7 @@ public class DownloadsScene extends ToolbarScene return true; } case R.id.action_reset_reading_progress: { - new AlertDialog.Builder(getContext()) + new MaterialAlertDialogBuilder(getContext()) .setMessage(R.string.reset_reading_progress_message) .setNegativeButton(android.R.string.cancel, null) .setPositiveButton(android.R.string.ok, (dialog, which) -> { @@ -558,7 +559,7 @@ public class DownloadsScene extends ToolbarScene for (int i = 0, n = list.size(); i < n; i++) { items[i + 2] = list.get(i).getLabel(); } - new AlertDialog.Builder(context) + new MaterialAlertDialogBuilder(context) .setTitle(R.string.default_download_label) .setItems(items, new DialogInterface.OnClickListener() { @Override @@ -774,7 +775,7 @@ public class DownloadsScene extends ToolbarScene MoveDialogHelper helper = new MoveDialogHelper(labels, downloadInfoList); - new AlertDialog.Builder(context) + new MaterialAlertDialogBuilder(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 45d0e633e..be22c6e99 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 @@ -52,6 +52,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.github.amlcurran.showcaseview.ShowcaseView; import com.github.amlcurran.showcaseview.SimpleShowcaseEventListener; import com.github.amlcurran.showcaseview.targets.PointTarget; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.hippo.android.resource.AttrResources; import com.hippo.annotation.Implemented; @@ -456,14 +457,9 @@ 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 AlertDialog.Builder(context) + new MaterialAlertDialogBuilder(context) .setTitle(R.string.default_favorites_collection) - .setItems(items, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - Settings.putDefaultFavSlot(which - 2); - } - }).show(); + .setItems(items, (dialog, which) -> Settings.putDefaultFavSlot(which - 2)).show(); return true; } return false; @@ -801,7 +797,7 @@ public class FavoritesScene extends BaseScene implements } case 3: { // Delete DeleteDialogHelper helper = new DeleteDialogHelper(); - new AlertDialog.Builder(context) + new MaterialAlertDialogBuilder(context) .setTitle(R.string.delete_favorites_dialog_title) .setMessage(getString(R.string.delete_favorites_dialog_message, mModifyGiList.size())) .setPositiveButton(android.R.string.ok, helper) @@ -815,7 +811,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 AlertDialog.Builder(context) + new MaterialAlertDialogBuilder(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 a11887b9a..68ef8199e 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 @@ -53,6 +53,7 @@ import androidx.recyclerview.widget.DefaultItemAnimator; 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.android.resource.AttrResources; import com.hippo.easyrecyclerview.EasyRecyclerView; @@ -311,7 +312,7 @@ public final class GalleryCommentsScene extends ToolbarScene } } - AlertDialog.Builder builder = new AlertDialog.Builder(context); + AlertDialog.Builder builder = new MaterialAlertDialogBuilder(context); context = builder.getContext(); final LayoutInflater inflater = LayoutInflater.from(context); EasyRecyclerView rv = (EasyRecyclerView) inflater.inflate(R.layout.dialog_recycler_view, null); @@ -373,36 +374,33 @@ public final class GalleryCommentsScene extends ToolbarScene menuId.add(R.id.check_vote_status); } - new AlertDialog.Builder(context) - .setItems(menu.toArray(new String[menu.size()]), new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - if (which < 0 || which >= menuId.size()) { - return; - } - int id = menuId.get(which); - switch (id) { - case R.id.copy: - ClipboardManager cmb = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); - cmb.setPrimaryClip(ClipData.newPlainText(null, comment.comment)); - showTip(R.string.copied_to_clipboard, LENGTH_SHORT); - break; - case R.id.vote_up: - voteComment(comment.id, 1); - break; - case R.id.vote_down: - voteComment(comment.id, -1); - break; - case R.id.check_vote_status: - showVoteStatusDialog(context, comment.voteState); - break; - case R.id.edit_comment: - prepareEditComment(comment.id); - if (!mInAnimation && mEditPanel != null && mEditPanel.getVisibility() != View.VISIBLE) { - showEditPanel(true); - } - break; - } + new MaterialAlertDialogBuilder(context) + .setItems(menu.toArray(new String[menu.size()]), (dialog, which) -> { + if (which < 0 || which >= menuId.size()) { + return; + } + int id = menuId.get(which); + switch (id) { + case R.id.copy: + ClipboardManager cmb = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); + cmb.setPrimaryClip(ClipData.newPlainText(null, comment.comment)); + showTip(R.string.copied_to_clipboard, LENGTH_SHORT); + break; + case R.id.vote_up: + voteComment(comment.id, 1); + break; + case R.id.vote_down: + voteComment(comment.id, -1); + break; + case R.id.check_vote_status: + showVoteStatusDialog(context, comment.voteState); + break; + case R.id.edit_comment: + prepareEditComment(comment.id); + if (!mInAnimation && mEditPanel != null && mEditPanel.getVisibility() != View.VISIBLE) { + showEditPanel(true); + } + break; } }).show(); } 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 39d065325..11cc78760 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 @@ -53,6 +53,7 @@ import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentTransaction; import androidx.transition.TransitionInflater; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.hippo.android.resource.AttrResources; import com.hippo.beerbelly.BeerBelly; import com.hippo.drawable.RoundSideRectDrawable; @@ -1183,7 +1184,7 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene if (EhApplication.getDownloadManager(context).getDownloadState(galleryInfo.gid) == DownloadInfo.STATE_INVALID) { CommonOperations.startDownload(activity, galleryInfo, false); } else { - new AlertDialog.Builder(context) + new MaterialAlertDialogBuilder(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)) @@ -1234,7 +1235,7 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene } else if (mTorrent == v) { if (mGalleryDetail != null) { TorrentListDialogHelper helper = new TorrentListDialogHelper(); - Dialog dialog = new AlertDialog.Builder(context) + Dialog dialog = new MaterialAlertDialogBuilder(context) .setTitle(R.string.torrents) .setView(R.layout.dialog_torrent_list) .setOnDismissListener(helper) @@ -1250,7 +1251,7 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene return; } ArchiveListDialogHelper helper = new ArchiveListDialogHelper(); - Dialog dialog = new AlertDialog.Builder(context) + Dialog dialog = new MaterialAlertDialogBuilder(context) .setTitle(R.string.dialog_archive_title) .setView(R.layout.dialog_archive_list) .setOnDismissListener(helper) @@ -1265,7 +1266,7 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene return; } RateDialogHelper helper = new RateDialogHelper(); - Dialog dialog = new AlertDialog.Builder(context) + Dialog dialog = new MaterialAlertDialogBuilder(context) .setTitle(R.string.rate) .setView(R.layout.dialog_rate) .setNegativeButton(android.R.string.cancel, null) @@ -1327,7 +1328,7 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene return; } - new AlertDialog.Builder(context) + new MaterialAlertDialogBuilder(context) .setMessage(getString(R.string.filter_the_uploader, uploader)) .setPositiveButton(android.R.string.ok, (dialog, which) -> { if (which != DialogInterface.BUTTON_POSITIVE) { @@ -1349,7 +1350,7 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene return; } - new AlertDialog.Builder(context) + new MaterialAlertDialogBuilder(context) .setMessage(getString(R.string.filter_the_tag, tag)) .setPositiveButton(android.R.string.ok, (dialog, which) -> { if (which != DialogInterface.BUTTON_POSITIVE) { @@ -1379,7 +1380,7 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene } final String tag2 = temp; - new AlertDialog.Builder(context) + new MaterialAlertDialogBuilder(context) .setTitle(tag) .setItems(R.array.tag_menu_entries, (dialog, which) -> { switch (which) { 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 385bc30b1..baabaf56a 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,6 +55,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.github.amlcurran.showcaseview.ShowcaseView; import com.github.amlcurran.showcaseview.SimpleShowcaseEventListener; import com.github.amlcurran.showcaseview.targets.PointTarget; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.hippo.android.resource.AttrResources; import com.hippo.app.CheckBoxDialogBuilder; @@ -1010,7 +1011,7 @@ public final class GalleryListScene extends BaseScene favourited ? R.drawable.v_heart_broken_x24 : R.drawable.v_heart_x24, }; - new AlertDialog.Builder(context) + new MaterialAlertDialogBuilder(context) .setTitle(EhUtils.getSuitableTitle(gi)) .setAdapter(new SelectItemWithIconAdapter(context, items, icons), (dialog, which) -> { switch (which) { @@ -1022,7 +1023,7 @@ public final class GalleryListScene extends BaseScene break; case 1: // Download if (downloaded) { - new AlertDialog.Builder(context) + new MaterialAlertDialogBuilder(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)) 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 bb0ac3d90..2463d3601 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,6 +35,7 @@ import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.recyclerview.widget.RecyclerView; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.hippo.easyrecyclerview.EasyRecyclerView; import com.hippo.easyrecyclerview.MarginItemDecoration; import com.hippo.ehviewer.EhApplication; @@ -211,7 +212,7 @@ public class GalleryPreviewsScene extends ToolbarScene implements EasyRecyclerVi int pages = mHelper.getPages(); if (pages > 0 && mHelper.canGoTo()) { GoToDialogHelper helper = new GoToDialogHelper(pages, mHelper.getPageForTop()); - AlertDialog dialog = new AlertDialog.Builder(context).setTitle(R.string.go_to) + AlertDialog dialog = new MaterialAlertDialogBuilder(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.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/HistoryScene.java index e86017b7e..ae235dba5 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/HistoryScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/HistoryScene.java @@ -36,6 +36,7 @@ import androidx.core.view.ViewCompat; import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.StaggeredGridLayoutManager; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.h6ah4i.android.widget.advrecyclerview.animator.GeneralItemAnimator; import com.h6ah4i.android.widget.advrecyclerview.animator.SwipeDismissItemAnimator; import com.h6ah4i.android.widget.advrecyclerview.swipeable.RecyclerViewSwipeManager; @@ -213,20 +214,17 @@ public class HistoryScene extends ToolbarScene } private void showClearAllDialog() { - new AlertDialog.Builder(getContext2()) + new MaterialAlertDialogBuilder(getContext2()) .setMessage(R.string.clear_all_history) - .setPositiveButton(R.string.clear_all, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - if (DialogInterface.BUTTON_POSITIVE != which || null == mAdapter) { - return; - } - - EhDB.clearHistoryInfo(); - updateLazyList(); - mAdapter.notifyDataSetChanged(); - updateView(true); + .setPositiveButton(R.string.clear_all, (dialog, which) -> { + if (DialogInterface.BUTTON_POSITIVE != which || null == mAdapter) { + return; } + + EhDB.clearHistoryInfo(); + updateLazyList(); + mAdapter.notifyDataSetChanged(); + updateView(true); }).show(); } @@ -275,7 +273,7 @@ public class HistoryScene extends ToolbarScene } final GalleryInfo gi = mLazyList.get(position); - new AlertDialog.Builder(context) + new MaterialAlertDialogBuilder(context) .setTitle(EhUtils.getSuitableTitle(gi)) .setItems(R.array.gallery_list_menu_entries, new DialogInterface.OnClickListener() { @Override diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/QuickSearchScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/QuickSearchScene.java index 5dbb9dd22..5a988a9d8 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/QuickSearchScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/QuickSearchScene.java @@ -31,6 +31,7 @@ import androidx.appcompat.app.AlertDialog; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.h6ah4i.android.widget.advrecyclerview.animator.DraggableItemAnimator; import com.h6ah4i.android.widget.advrecyclerview.animator.GeneralItemAnimator; import com.h6ah4i.android.widget.advrecyclerview.draggable.DraggableItemAdapter; @@ -178,24 +179,18 @@ public final class QuickSearchScene extends ToolbarScene { } final QuickSearch quickSearch = mQuickSearchList.get(position); - new AlertDialog.Builder(context) + new MaterialAlertDialogBuilder(context) .setTitle(R.string.delete_quick_search_title) .setMessage(getString(R.string.delete_quick_search_message, quickSearch.name)) - .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - EhDB.deleteQuickSearch(quickSearch); - mQuickSearchList.remove(position); - } + .setPositiveButton(android.R.string.ok, (dialog, which) -> { + EhDB.deleteQuickSearch(quickSearch); + mQuickSearchList.remove(position); }) - .setOnDismissListener(new DialogInterface.OnDismissListener() { - @Override - public void onDismiss(DialogInterface dialog) { - if (null != mAdapter) { - mAdapter.notifyDataSetChanged(); - } - updateView(); + .setOnDismissListener(dialog -> { + if (null != mAdapter) { + mAdapter.notifyDataSetChanged(); } + updateView(); }).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 1ef997899..5a65d42b2 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,6 +30,7 @@ import android.widget.TextView; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.textfield.TextInputLayout; import com.hippo.ehviewer.EhApplication; import com.hippo.ehviewer.R; @@ -327,7 +328,7 @@ public final class SignInScene extends SolidScene implements EditText.OnEditorAc return; } - new AlertDialog.Builder(context) + new MaterialAlertDialogBuilder(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 544de3290..292a22bbd 100644 --- a/app/src/main/java/com/hippo/ehviewer/widget/DialogWebChromeClient.java +++ b/app/src/main/java/com/hippo/ehviewer/widget/DialogWebChromeClient.java @@ -28,6 +28,7 @@ import android.widget.TextView; import androidx.appcompat.app.AlertDialog; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.hippo.ehviewer.R; public class DialogWebChromeClient extends WebChromeClient { @@ -40,7 +41,7 @@ public class DialogWebChromeClient extends WebChromeClient { @Override public boolean onJsAlert(WebView view, String url, String message, JsResult result) { - new AlertDialog.Builder(view.getContext()) + new MaterialAlertDialogBuilder(view.getContext()) .setMessage(message) .setPositiveButton(android.R.string.ok, (dialog, which) -> result.confirm()) .setOnCancelListener(dialog -> result.cancel()) @@ -50,7 +51,7 @@ public class DialogWebChromeClient extends WebChromeClient { @Override public boolean onJsConfirm(WebView view, String url, String message, JsResult result) { - new AlertDialog.Builder(view.getContext()) + new MaterialAlertDialogBuilder(view.getContext()) .setMessage(message) .setPositiveButton(android.R.string.ok, (dialog, which) -> result.confirm()) .setNegativeButton(android.R.string.cancel, (dialog, which) -> result.cancel()) @@ -68,7 +69,7 @@ public class DialogWebChromeClient extends WebChromeClient { final EditText valueView = promptView.findViewById(R.id.value); valueView.setText(defaultValue); - new AlertDialog.Builder(context) + new MaterialAlertDialogBuilder(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/SearchLayout.java b/app/src/main/java/com/hippo/ehviewer/widget/SearchLayout.java index a982a95a5..c00e0be4c 100644 --- a/app/src/main/java/com/hippo/ehviewer/widget/SearchLayout.java +++ b/app/src/main/java/com/hippo/ehviewer/widget/SearchLayout.java @@ -39,6 +39,7 @@ import androidx.appcompat.widget.SwitchCompat; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.hippo.android.resource.AttrResources; import com.hippo.easyrecyclerview.EasyRecyclerView; import com.hippo.easyrecyclerview.MarginItemDecoration; @@ -313,7 +314,7 @@ public class SearchLayout extends EasyRecyclerView implements CompoundButton.OnC @Override public void onClick(View v) { if (mNormalSearchModeHelp == v) { - new AlertDialog.Builder(getContext()) + new MaterialAlertDialogBuilder(getContext()) .setMessage(R.string.search_tip) .show(); } else if (mAction == v) { diff --git a/app/src/main/java/com/hippo/preference/DialogPreference.java b/app/src/main/java/com/hippo/preference/DialogPreference.java index aa85430ba..a85d96f91 100644 --- a/app/src/main/java/com/hippo/preference/DialogPreference.java +++ b/app/src/main/java/com/hippo/preference/DialogPreference.java @@ -37,6 +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.ehviewer.R; /** @@ -254,7 +255,7 @@ public abstract class DialogPreference extends Preference implements mWhichButtonClicked = DialogInterface.BUTTON_NEGATIVE; - mBuilder = new AlertDialog.Builder(context) + mBuilder = new MaterialAlertDialogBuilder(context) .setTitle(mDialogTitle) .setIcon(mDialogIcon) .setPositiveButton(mPositiveButtonText, this) diff --git a/app/src/main/java/com/hippo/util/PermissionRequester.java b/app/src/main/java/com/hippo/util/PermissionRequester.java index f7547bd8e..62406d7a3 100644 --- a/app/src/main/java/com/hippo/util/PermissionRequester.java +++ b/app/src/main/java/com/hippo/util/PermissionRequester.java @@ -23,6 +23,8 @@ import android.content.pm.PackageManager; import androidx.appcompat.app.AlertDialog; import androidx.core.app.ActivityCompat; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + public class PermissionRequester { /** @@ -40,14 +42,9 @@ public class PermissionRequester { } if (ActivityCompat.shouldShowRequestPermissionRationale(activity, permission)) { - new AlertDialog.Builder(activity) + new MaterialAlertDialogBuilder(activity) .setMessage(rationale) - .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - requestPermissions(activity, new String[]{permission}, requestCode); - } - }).setNegativeButton(android.R.string.cancel, null) + .setPositiveButton(android.R.string.ok, (dialog, which) -> requestPermissions(activity, new String[]{permission}, requestCode)).setNegativeButton(android.R.string.cancel, null) .show(); } else { return requestPermissions(activity, new String[]{permission}, requestCode); diff --git a/app/src/main/res/values-night-v29/colors.xml b/app/src/main/res/values-night-v29/colors.xml new file mode 100644 index 000000000..1c01a12e7 --- /dev/null +++ b/app/src/main/res/values-night-v29/colors.xml @@ -0,0 +1,3 @@ + + @android:color/transparent + \ No newline at end of file diff --git a/app/src/main/res/values-night/bools.xml b/app/src/main/res/values-night/bools.xml new file mode 100644 index 000000000..8cdfc95b3 --- /dev/null +++ b/app/src/main/res/values-night/bools.xml @@ -0,0 +1,22 @@ + + + + + + false + + diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml index c217ea9f9..625841e95 100644 --- a/app/src/main/res/values-night/colors.xml +++ b/app/src/main/res/values-night/colors.xml @@ -127,4 +127,5 @@ #F5F5F5 + ?android:windowBackground diff --git a/app/src/main/res/values-v27/colors.xml b/app/src/main/res/values-v27/colors.xml new file mode 100644 index 000000000..1a289f8ab --- /dev/null +++ b/app/src/main/res/values-v27/colors.xml @@ -0,0 +1,3 @@ + + ?android:windowBackground + \ No newline at end of file diff --git a/app/src/main/res/values-v29/colors.xml b/app/src/main/res/values-v29/colors.xml new file mode 100644 index 000000000..1c01a12e7 --- /dev/null +++ b/app/src/main/res/values-v29/colors.xml @@ -0,0 +1,3 @@ + + @android:color/transparent + \ No newline at end of file diff --git a/app/src/main/res/values/bools.xml b/app/src/main/res/values/bools.xml index f1c3b1d75..e25623667 100644 --- a/app/src/main/res/values/bools.xml +++ b/app/src/main/res/values/bools.xml @@ -19,5 +19,6 @@ false true + true diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index cff4ec29c..130349baf 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -167,4 +167,5 @@ #F5F5F5 + ?colorPrimaryDark diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 024cba553..bc2994d4a 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -14,12 +14,14 @@ ~ limitations under the License. --> - + diff --git a/app/src/main/res/xml/about_settings.xml b/app/src/main/res/xml/about_settings.xml index 61e88a82c..d8b4091cc 100644 --- a/app/src/main/res/xml/about_settings.xml +++ b/app/src/main/res/xml/about_settings.xml @@ -38,21 +38,21 @@ android:key="latest_release" android:title="@string/settings_about_latest_release" app:iconSpaceReserved="false" - app:url="https://github.com/seven332/EhViewer/releases/latest" /> + app:url="https://github.com/NekoInverter/EhViewer/releases/latest" /> - + app:url="http://www.ehviewer.com" />--> + app:url="https://github.com/NekoInverter/EhViewer" /> - + app:url="http://www.ehviewer.com/help" />--> - @@ -90,6 +90,6 @@ + app:iconSpaceReserved="false" />--> diff --git a/app/src/main/res/xml/eh_settings.xml b/app/src/main/res/xml/eh_settings.xml index 14f7bec99..3cdb1e4c3 100644 --- a/app/src/main/res/xml/eh_settings.xml +++ b/app/src/main/res/xml/eh_settings.xml @@ -68,12 +68,6 @@ android:title="@string/black_dark_theme" app:iconSpaceReserved="false" /> - -