From a01b71d3ac5e1eb70ac98cd550ca7cb463baf343 Mon Sep 17 00:00:00 2001 From: NekoInverter <42698724+NekoInverter@users.noreply.github.com> Date: Tue, 24 Mar 2020 11:12:46 +0800 Subject: [PATCH] Add theme switch --- .../com/hippo/ehviewer/ui/MainActivity.java | 12 ++++++---- .../drawable/ic_baseline_brightness_2_24.xml | 10 +++++++++ app/src/main/res/layout/nav_header_main.xml | 22 +++++++++++++++++++ 3 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 app/src/main/res/drawable/ic_baseline_brightness_2_24.xml 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 d23717fbe..a58259b13 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.java @@ -16,7 +16,6 @@ package com.hippo.ehviewer.ui; -import android.Manifest; import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; @@ -39,13 +38,14 @@ import androidx.annotation.IdRes; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.StringRes; -import androidx.appcompat.app.AlertDialog; +import androidx.appcompat.app.AppCompatDelegate; 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; +import com.hippo.ehviewer.EhApplication; import com.hippo.ehviewer.R; import com.hippo.ehviewer.Settings; import com.hippo.ehviewer.client.EhTagDatabase; @@ -82,7 +82,6 @@ import com.hippo.scene.SceneFragment; import com.hippo.scene.StageActivity; import com.hippo.unifile.UniFile; import com.hippo.util.BitmapUtils; -import com.hippo.util.PermissionRequester; import com.hippo.widget.LoadImageView; import com.hippo.yorozuya.IOUtils; import com.hippo.yorozuya.SimpleHandler; @@ -321,7 +320,12 @@ 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); - + ViewUtils.$$(headerLayout, R.id.night_mode).setOnClickListener(v -> { + int theme = isNightMode(getResources().getConfiguration()) ? AppCompatDelegate.MODE_NIGHT_NO : AppCompatDelegate.MODE_NIGHT_YES; + AppCompatDelegate.setDefaultNightMode(theme); + ((EhApplication) getApplication()).recreate(); + Settings.putTheme(theme); + }); updateProfile(); if (mNavView != null) { diff --git a/app/src/main/res/drawable/ic_baseline_brightness_2_24.xml b/app/src/main/res/drawable/ic_baseline_brightness_2_24.xml new file mode 100644 index 000000000..70ffd09c7 --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_brightness_2_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layout/nav_header_main.xml b/app/src/main/res/layout/nav_header_main.xml index ab190ac90..7500bafc7 100644 --- a/app/src/main/res/layout/nav_header_main.xml +++ b/app/src/main/res/layout/nav_header_main.xml @@ -15,14 +15,17 @@ --> @@ -44,4 +47,23 @@ android:textColor="@android:color/white" android:textSize="@dimen/text_small" /> + + + + +