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