From b8e649e995b47ae22b94670709e6081fc76d7744 Mon Sep 17 00:00:00 2001 From: tarsin Date: Fri, 16 Sep 2022 10:30:16 +0800 Subject: [PATCH] Add support to visit login status --- .../java/com/hippo/ehviewer/Settings.java | 3 + .../hippo/ehviewer/ui/fragment/EhFragment.kt | 137 ++++++++---------- app/src/main/res/values-zh-rCN/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + app/src/main/res/xml/eh_settings.xml | 6 + 5 files changed, 75 insertions(+), 73 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/Settings.java b/app/src/main/java/com/hippo/ehviewer/Settings.java index b1c900533..5b8d3f6a7 100755 --- a/app/src/main/java/com/hippo/ehviewer/Settings.java +++ b/app/src/main/java/com/hippo/ehviewer/Settings.java @@ -50,6 +50,8 @@ public class Settings { ********************/ public static final String KEY_THEME = "theme"; + + public static final String KEY_ACCOUNT = "account"; public static final String KEY_BLACK_DARK_THEME = "black_dark_theme"; public static final int THEME_LIGHT = 1; public static final int THEME_SYSTEM = -1; @@ -434,6 +436,7 @@ public class Settings { putInt(KEY_VERSION_CODE, value); } + @Nullable public static String getDisplayName() { return getString(KEY_DISPLAY_NAME, DEFAULT_DISPLAY_NAME); } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/fragment/EhFragment.kt b/app/src/main/java/com/hippo/ehviewer/ui/fragment/EhFragment.kt index 74d845e36..cae18cd42 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/fragment/EhFragment.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/fragment/EhFragment.kt @@ -13,88 +13,79 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +package com.hippo.ehviewer.ui.fragment -package com.hippo.ehviewer.ui.fragment; - -import android.app.Activity; -import android.content.res.Configuration; -import android.os.Bundle; - -import androidx.annotation.Nullable; -import androidx.appcompat.app.AppCompatDelegate; -import androidx.preference.Preference; - -import com.hippo.ehviewer.R; -import com.hippo.ehviewer.Settings; -import com.hippo.ehviewer.client.EhTagDatabase; - -public class EhFragment extends BasePreferenceFragment { - - @Override - public void onCreatePreferences(@Nullable Bundle savedInstanceState, String rootKey) { - addPreferencesFromResource(R.xml.eh_settings); - - Preference theme = findPreference(Settings.KEY_THEME); - Preference blackDarkTheme = findPreference(Settings.KEY_BLACK_DARK_THEME); - Preference gallerySite = findPreference(Settings.KEY_GALLERY_SITE); - Preference listMode = findPreference(Settings.KEY_LIST_MODE); - Preference listThumbSize = findPreference(Settings.KEY_LIST_THUMB_SIZE); - Preference detailSize = findPreference(Settings.KEY_DETAIL_SIZE); - Preference thumbSize = findPreference(Settings.KEY_THUMB_SIZE); - Preference showTagTranslations = findPreference(Settings.KEY_SHOW_TAG_TRANSLATIONS); - Preference tagTranslationsSource = findPreference("tag_translations_source"); - - theme.setOnPreferenceChangeListener(this); - gallerySite.setOnPreferenceChangeListener(this); - listMode.setOnPreferenceChangeListener(this); - listThumbSize.setOnPreferenceChangeListener(this); - detailSize.setOnPreferenceChangeListener(this); - thumbSize.setOnPreferenceChangeListener(this); - showTagTranslations.setOnPreferenceChangeListener(this); - blackDarkTheme.setOnPreferenceChangeListener(this); +import android.app.Activity +import android.content.res.Configuration +import android.os.Bundle +import androidx.appcompat.app.AppCompatDelegate +import androidx.preference.Preference +import com.hippo.ehviewer.R +import com.hippo.ehviewer.Settings +import com.hippo.ehviewer.client.EhTagDatabase +class EhFragment : BasePreferenceFragment() { + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { + addPreferencesFromResource(R.xml.eh_settings) + val account = findPreference(Settings.KEY_ACCOUNT) + val theme = findPreference(Settings.KEY_THEME) + val blackDarkTheme = findPreference(Settings.KEY_BLACK_DARK_THEME) + val gallerySite = findPreference(Settings.KEY_GALLERY_SITE) + val listMode = findPreference(Settings.KEY_LIST_MODE) + val listThumbSize = findPreference(Settings.KEY_LIST_THUMB_SIZE) + val detailSize = findPreference(Settings.KEY_DETAIL_SIZE) + val thumbSize = findPreference(Settings.KEY_THUMB_SIZE) + val showTagTranslations = findPreference(Settings.KEY_SHOW_TAG_TRANSLATIONS) + val tagTranslationsSource = findPreference("tag_translations_source") + Settings.getDisplayName()?.let { account?.summary = it } + theme!!.onPreferenceChangeListener = this + gallerySite!!.onPreferenceChangeListener = this + listMode!!.onPreferenceChangeListener = this + listThumbSize!!.onPreferenceChangeListener = this + detailSize!!.onPreferenceChangeListener = this + thumbSize!!.onPreferenceChangeListener = this + showTagTranslations!!.onPreferenceChangeListener = this + blackDarkTheme!!.onPreferenceChangeListener = this if (!EhTagDatabase.isPossible(requireActivity())) { - getPreferenceScreen().removePreference(showTagTranslations); - getPreferenceScreen().removePreference(tagTranslationsSource); + preferenceScreen.removePreference(showTagTranslations) + preferenceScreen.removePreference(tagTranslationsSource!!) } } - @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { - String key = preference.getKey(); - if (Settings.KEY_THEME.equals(key)) { - AppCompatDelegate.setDefaultNightMode(Integer.parseInt((String) newValue)); - requireActivity().recreate(); - return true; - } else if (Settings.KEY_GALLERY_SITE.equals(key)) { - requireActivity().setResult(Activity.RESULT_OK); - return true; - } else if (Settings.KEY_LIST_MODE.equals(key)) { - requireActivity().setResult(Activity.RESULT_OK); - return true; - } else if (Settings.KEY_LIST_THUMB_SIZE.equals(key)) { - Settings.LIST_THUMB_SIZE_INITED = false; - requireActivity().setResult(Activity.RESULT_OK); - return true; - } else if (Settings.KEY_DETAIL_SIZE.equals(key)) { - requireActivity().setResult(Activity.RESULT_OK); - } else if (Settings.KEY_THUMB_SIZE.equals(key)) { - requireActivity().setResult(Activity.RESULT_OK); - } else if (Settings.KEY_SHOW_TAG_TRANSLATIONS.equals(key)) { - if (Boolean.TRUE.equals(newValue)) { - EhTagDatabase.update(requireActivity()); + override fun onPreferenceChange(preference: Preference, newValue: Any): Boolean { + val key = preference.key + if (Settings.KEY_THEME == key) { + AppCompatDelegate.setDefaultNightMode(newValue as Int) + requireActivity().recreate() + return true + } else if (Settings.KEY_GALLERY_SITE == key) { + requireActivity().setResult(Activity.RESULT_OK) + return true + } else if (Settings.KEY_LIST_MODE == key) { + requireActivity().setResult(Activity.RESULT_OK) + return true + } else if (Settings.KEY_LIST_THUMB_SIZE == key) { + Settings.LIST_THUMB_SIZE_INITED = false + requireActivity().setResult(Activity.RESULT_OK) + return true + } else if (Settings.KEY_DETAIL_SIZE == key) { + requireActivity().setResult(Activity.RESULT_OK) + } else if (Settings.KEY_THUMB_SIZE == key) { + requireActivity().setResult(Activity.RESULT_OK) + } else if (Settings.KEY_SHOW_TAG_TRANSLATIONS == key) { + if (java.lang.Boolean.TRUE == newValue) { + EhTagDatabase.update(requireActivity()) } - } else if (Settings.KEY_BLACK_DARK_THEME.equals(key)) { - if ((requireActivity().getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_YES) > 0) { - requireActivity().recreate(); + } else if (Settings.KEY_BLACK_DARK_THEME == key) { + if (requireActivity().resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_YES > 0) { + requireActivity().recreate() } - return true; + return true } - return true; + return true } - @Override - public int getFragmentTitle() { - return R.string.settings_eh; + override fun getFragmentTitle(): Int { + return R.string.settings_eh } -} +} \ No newline at end of file diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index f2bbc1c0d..11ef53a90 100755 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -777,4 +777,5 @@ 备份收藏列表失败 备份收藏列表成功 正在备份收藏列表 + 账户 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index dd2e9a562..221e2ad2b 100755 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -841,4 +841,5 @@ Backup favorite list failed backup favorite list success Now starting backup favorite list + Account diff --git a/app/src/main/res/xml/eh_settings.xml b/app/src/main/res/xml/eh_settings.xml index 69fd618d5..43f634971 100644 --- a/app/src/main/res/xml/eh_settings.xml +++ b/app/src/main/res/xml/eh_settings.xml @@ -17,6 +17,12 @@ + +