From 16202efc7b212f0784dcf7002bbb0b256985cc6c Mon Sep 17 00:00:00 2001 From: tarsin Date: Sat, 24 Dec 2022 10:35:37 +0800 Subject: [PATCH] Allow obfuscate settings --- app/proguard-rules.pro | 3 - .../ui/fragment/BasePreferenceFragment.kt | 106 +++++++++--------- .../hippo/ehviewer/ui/fragment/EhFragment.kt | 7 +- .../ehviewer/ui/fragment/PrivacyFragment.kt | 7 +- app/src/main/res/xml/advanced_settings.xml | 2 +- app/src/main/res/xml/eh_settings.xml | 6 +- app/src/main/res/xml/settings_headers.xml | 10 +- 7 files changed, 67 insertions(+), 74 deletions(-) diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 6d916e3ea..dab0c76c1 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -11,9 +11,6 @@ native ; } --keep,allowoptimization class com.hippo.ehviewer.ui.fragment.* extends com.hippo.ehviewer.ui.fragment.BaseFragment { } --keep,allowoptimization class com.hippo.ehviewer.ui.fragment.* extends com.hippo.ehviewer.ui.fragment.BasePreferenceFragment { } - -keep class androidx.viewpager.widget.ViewPager$LayoutParams { int position; } -keepattributes LineNumberTable,SourceFile diff --git a/app/src/main/java/com/hippo/ehviewer/ui/fragment/BasePreferenceFragment.kt b/app/src/main/java/com/hippo/ehviewer/ui/fragment/BasePreferenceFragment.kt index 0628f4c87..7d050396e 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/fragment/BasePreferenceFragment.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/fragment/BasePreferenceFragment.kt @@ -15,76 +15,70 @@ * You should have received a copy of the GNU General Public License along with EhViewer. * If not, see . */ +package com.hippo.ehviewer.ui.fragment -package com.hippo.ehviewer.ui.fragment; +import android.os.Bundle +import androidx.annotation.StringRes +import androidx.fragment.app.FragmentTransaction +import androidx.preference.Preference +import androidx.preference.PreferenceFragmentCompat +import com.hippo.ehviewer.R +import com.hippo.ehviewer.ui.SettingsActivity -import android.os.Bundle; - -import androidx.annotation.Nullable; -import androidx.annotation.StringRes; -import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentTransaction; -import androidx.preference.Preference; -import androidx.preference.PreferenceFragmentCompat; - -import com.hippo.ehviewer.R; -import com.hippo.ehviewer.ui.SettingsActivity; - - -public class BasePreferenceFragment extends PreferenceFragmentCompat - implements Preference.OnPreferenceClickListener, Preference.OnPreferenceChangeListener { - @Override - public void onStart() { - super.onStart(); - setTitle(getFragmentTitle()); +open class BasePreferenceFragment : PreferenceFragmentCompat(), + Preference.OnPreferenceClickListener, Preference.OnPreferenceChangeListener { + override fun onStart() { + super.onStart() + setTitle(fragmentTitle) } - @StringRes - public int getFragmentTitle() { - return -1; + @get:StringRes + open val fragmentTitle: Int + get() = -1 + + override fun onPreferenceChange(preference: Preference, newValue: Any): Boolean { + return false } - @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { - return false; + override fun onPreferenceClick(preference: Preference): Boolean { + return false } - @Override - public boolean onPreferenceClick(Preference preference) { - return false; - } + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {} - @Override - public void onCreatePreferences(@Nullable Bundle savedInstanceState, String rootKey) { - - } - - @Override - public boolean onPreferenceTreeClick(Preference preference) { - String key = preference.getKey(); - try { - Fragment classObj = (Fragment) Class.forName(key).newInstance(); - requireActivity().getSupportFragmentManager() - .beginTransaction() - .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE) - .replace(R.id.fragment, classObj) - .addToBackStack(null) - .commitAllowingStateLoss(); - } catch (ClassNotFoundException | IllegalAccessException | - java.lang.InstantiationException ignored) { + override fun onPreferenceTreeClick(preference: Preference): Boolean { + val fragment = when (preference.key) { + "eh" -> EhFragment() + "download" -> DownloadFragment() + "privacy" -> PrivacyFragment() + "advance" -> AdvancedFragment() + "about" -> AboutFragment() + "filter" -> FilterFragment() + "mytags" -> MyTagsFragment() + "uconfig" -> UConfigFragment() + "hosts" -> HostsFragment() + else -> null } - return true; + fragment?.let { + requireActivity().supportFragmentManager + .beginTransaction() + .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE) + .replace(R.id.fragment, it) + .addToBackStack(null) + .commitAllowingStateLoss() + } + return true } - private void setTitle(@StringRes int string) { - requireActivity().setTitle(string); + private fun setTitle(@StringRes string: Int) { + requireActivity().setTitle(string) } - public void showTip(@StringRes int id, int length) { - ((SettingsActivity) requireActivity()).showTip(getString(id), length); + fun showTip(@StringRes id: Int, length: Int) { + (requireActivity() as SettingsActivity).showTip(getString(id), length) } - public void showTip(CharSequence message, int length) { - ((SettingsActivity) requireActivity()).showTip(message, length); + fun showTip(message: CharSequence?, length: Int) { + (requireActivity() as SettingsActivity).showTip(message, length) } -} +} \ No newline at end of file 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 d600d7f48..eba8ecfab 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 @@ -18,6 +18,7 @@ package com.hippo.ehviewer.ui.fragment import android.app.Activity import android.content.res.Configuration import android.os.Bundle +import androidx.annotation.StringRes import androidx.appcompat.app.AppCompatDelegate import androidx.preference.ListPreference import androidx.preference.Preference @@ -91,7 +92,7 @@ class EhFragment : BasePreferenceFragment() { return true } - override fun getFragmentTitle(): Int { - return R.string.settings_eh - } + @get:StringRes + override val fragmentTitle: Int + get() = R.string.settings_eh } \ No newline at end of file diff --git a/app/src/main/java/com/hippo/ehviewer/ui/fragment/PrivacyFragment.kt b/app/src/main/java/com/hippo/ehviewer/ui/fragment/PrivacyFragment.kt index 05cb540a1..35fcc0d35 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/fragment/PrivacyFragment.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/fragment/PrivacyFragment.kt @@ -19,6 +19,7 @@ package com.hippo.ehviewer.ui.fragment import android.os.Bundle +import androidx.annotation.StringRes import androidx.preference.SeekBarPreference import androidx.preference.SwitchPreferenceCompat import com.hippo.ehviewer.R @@ -59,9 +60,9 @@ class PrivacyFragment : BasePreferenceFragment() { } } - override fun getFragmentTitle(): Int { - return R.string.settings_privacy - } + @get:StringRes + override val fragmentTitle: Int + get() = R.string.settings_privacy private fun setUnlockDelaySummary(value: Int) { unlockDelay.summary = if (value == 0) { diff --git a/app/src/main/res/xml/advanced_settings.xml b/app/src/main/res/xml/advanced_settings.xml index 74664dd9a..8bd149500 100644 --- a/app/src/main/res/xml/advanced_settings.xml +++ b/app/src/main/res/xml/advanced_settings.xml @@ -74,7 +74,7 @@ app:iconSpaceReserved="false" /> diff --git a/app/src/main/res/xml/eh_settings.xml b/app/src/main/res/xml/eh_settings.xml index c14251732..0124cb53f 100644 --- a/app/src/main/res/xml/eh_settings.xml +++ b/app/src/main/res/xml/eh_settings.xml @@ -33,13 +33,13 @@ app:iconSpaceReserved="false" /> @@ -158,7 +158,7 @@ app:singleLineTitle="false" /> diff --git a/app/src/main/res/xml/settings_headers.xml b/app/src/main/res/xml/settings_headers.xml index 59e8e77d8..f8dae4a20 100644 --- a/app/src/main/res/xml/settings_headers.xml +++ b/app/src/main/res/xml/settings_headers.xml @@ -18,26 +18,26 @@