From 9f4b5990b7adcfb11d5cba2e3bc056c50c222b7f Mon Sep 17 00:00:00 2001 From: Vologhat <47892605+Vologhat@users.noreply.github.com> Date: Thu, 29 Dec 2022 19:08:15 +0300 Subject: [PATCH] refactor PreferencesUtil.java to PreferenceFragmentUtils.java --- .../java/com/vk/core/util/DownloadUtils.java | 4 +- .../lite/ui/PreferenceFragmentUtils.java | 340 ++++++++ .../ru/vtosters/lite/ui/PreferencesUtil.java | 274 ------- .../lite/ui/components/CrashReporter.java | 2 +- .../ru/vtosters/lite/ui/dialogs/Start.java | 10 +- .../lite/ui/fragments/IconsFragment.java | 104 ++- .../lite/ui/fragments/SystemInfo.java | 149 ++-- .../lite/ui/fragments/ThemesFragment.java | 11 +- .../lite/ui/fragments/VKPayFragment.java | 7 +- .../lite/ui/fragments/VTSettings.java | 740 +++++++++++------- .../StickersPreferencesFragment.java | 42 +- .../ui/wallpapers/WallpaperMenuFragment.java | 54 +- 12 files changed, 950 insertions(+), 787 deletions(-) create mode 100644 app/src/main/java/ru/vtosters/lite/ui/PreferenceFragmentUtils.java delete mode 100644 app/src/main/java/ru/vtosters/lite/ui/PreferencesUtil.java diff --git a/app/src/main/java/com/vk/core/util/DownloadUtils.java b/app/src/main/java/com/vk/core/util/DownloadUtils.java index d771702ca..23ba63975 100644 --- a/app/src/main/java/com/vk/core/util/DownloadUtils.java +++ b/app/src/main/java/com/vk/core/util/DownloadUtils.java @@ -191,7 +191,7 @@ public class DownloadUtils { if (!file.exists()) { return false; } - Intent intent = new Intent("android.intent.action.VIEW"); + Intent intent = new Intent(Intent.ACTION_VIEW); intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); var mimeType = FileUtils.f(file); var uri = FileUtils.uriFromFile(file); @@ -222,7 +222,7 @@ public class DownloadUtils { var mimeType = FileUtils.f(file); var uri = FileUtils.uriFromFile(file); - Intent intent = new Intent("android.intent.action.VIEW"); + Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(uri, mimeType); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Log.d("DownloadUtils", "openFile: " + file.getAbsolutePath() + "| mimetype " + mimeType + "| uri " + uri); diff --git a/app/src/main/java/ru/vtosters/lite/ui/PreferenceFragmentUtils.java b/app/src/main/java/ru/vtosters/lite/ui/PreferenceFragmentUtils.java new file mode 100644 index 000000000..3c735a425 --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/ui/PreferenceFragmentUtils.java @@ -0,0 +1,340 @@ +package ru.vtosters.lite.ui; + +import android.graphics.drawable.Drawable; +import android.preference.PreferenceManager; +import android.view.ViewGroup; +import android.widget.EditText; +import android.widget.LinearLayout; +import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; +import androidx.preference.ListPreference; +import androidx.preference.Preference; +import androidx.preference.PreferenceCategory; +import androidx.preference.PreferenceScreen; +import com.vk.core.dialogs.alert.VkAlertDialog; +import com.vtosters.lite.ui.MaterialSwitchPreference; +import ru.vtosters.lite.utils.AndroidUtils; +import ru.vtosters.lite.utils.ImageUtils; +import ru.vtosters.lite.utils.ThemesUtils; + +public class PreferenceFragmentUtils { + + public static ListPreference addListPreference( + PreferenceScreen screen, + String key, + String def, + int titleRes, + CharSequence[] entries, + CharSequence[] entriesValue + ) { + return addListPreference(screen, key, def, titleRes, 0, 0, entries, entriesValue, null); + } + + public static ListPreference addListPreference( + PreferenceScreen screen, + String key, + String def, + CharSequence title, + CharSequence[] entries, + CharSequence[] entriesValue + ) { + return addListPreference(screen, key, def, title, null, "", entries, entriesValue, null); + } + + // change icon accent color + public static ListPreference addListPreference( + PreferenceScreen screen, + String key, + String def, + int titleRes, + int iconRes, + int summaryRes, + CharSequence[] entries, + CharSequence[] entriesValue, + Preference.OnPreferenceChangeListener listener + ) { + var icon = iconRes > 0 + ? ImageUtils.setTint(screen.getContext(), ContextCompat.getDrawable(screen.getContext(), iconRes)) + : null; + var title = titleRes > 0 + ? screen.getContext().getString(titleRes) + : ""; + var summary = summaryRes > 0 + ? screen.getContext().getString(summaryRes) + : ""; + return addListPreference(screen, key, def, title, icon, summary, entries, entriesValue, listener); + } + + // change icon accent color + public static ListPreference addListPreference( + PreferenceScreen screen, + String key, + String def, + CharSequence title, + int iconRes, + CharSequence summary, + CharSequence[] entries, + CharSequence[] entriesValue, + Preference.OnPreferenceChangeListener listener + ) { + var icon = iconRes > 0 + ? ImageUtils.setTint(screen.getContext(), ContextCompat.getDrawable(screen.getContext(), iconRes)) + : null; + return addListPreference(screen, key, def, title, icon, summary, entries, entriesValue, listener); + } + + public static ListPreference addListPreference( + PreferenceScreen screen, + String key, + String def, + CharSequence title, + @Nullable Drawable icon, + CharSequence summary, + CharSequence[] entries, + CharSequence[] entriesValue, + Preference.OnPreferenceChangeListener listener + ) { + ListPreference preference = new ListPreference(screen.getContext()); + preference.setEntries(entries); + preference.setEntryValues(entriesValue); + preference.setSummary(summary); + preference.setTitle(title); + preference.setDialogTitle(title); + preference.setKey(key); + preference.setDefaultValue(def); + preference.setValue(def); + preference.setOnPreferenceChangeListener(listener); + + if (icon != null) + preference.setIcon(icon); + + screen.addPreference(preference); + + return preference; + } + + public static MaterialSwitchPreference addMaterialSwitchPreference( + PreferenceScreen screen, + String key, + CharSequence title, + CharSequence summary, + boolean defValue + ) { + return addMaterialSwitchPreference(screen, key, title, summary, 0, defValue, null); + } + + // change icon accent color + public static MaterialSwitchPreference addMaterialSwitchPreference( + PreferenceScreen screen, + String key, + int titleRes, + int summaryRes, + int iconRes, + boolean defValue, + Preference.OnPreferenceChangeListener listener + ) { + var icon = iconRes > 0 + ? ImageUtils.setTint(screen.getContext(), ContextCompat.getDrawable(screen.getContext(), iconRes)) + : null; + var title = titleRes > 0 + ? screen.getContext().getString(titleRes) + : ""; + var summary = summaryRes > 0 + ? screen.getContext().getString(summaryRes) + : ""; + return addMaterialSwitchPreference(screen, key, title, summary, icon, defValue, listener); + } + + // change icon accent color + public static MaterialSwitchPreference addMaterialSwitchPreference( + PreferenceScreen screen, + String key, + CharSequence title, + CharSequence summary, + int iconRes, + boolean defValue, + Preference.OnPreferenceChangeListener listener + ) { + var icon = iconRes > 0 + ? ImageUtils.setTint(screen.getContext(), ContextCompat.getDrawable(screen.getContext(), iconRes)) + : null; + return addMaterialSwitchPreference(screen, key, title, summary, icon, defValue, listener); + } + + public static MaterialSwitchPreference addMaterialSwitchPreference( + PreferenceScreen screen, + String key, + CharSequence title, + CharSequence summary, + @Nullable Drawable icon, + boolean defValue, + Preference.OnPreferenceChangeListener listener + ) { + MaterialSwitchPreference preference = new MaterialSwitchPreference(screen.getContext()); + preference.setTitle(title); + preference.setSummary(summary); + preference.setKey(key); + preference.setDefaultValue(defValue); + + if (icon != null) + preference.setIcon(icon); + preference.setOnPreferenceChangeListener(listener); + + screen.addPreference(preference); + + return preference; + } + + public static Preference addPreference( + PreferenceScreen screen, + String key, + int titleRes, + int summaryRes + ) { + var title = titleRes > 0 + ? screen.getContext().getString(titleRes) + : ""; + var summary = summaryRes > 0 + ? screen.getContext().getString(summaryRes) + : ""; + return addPreference(screen, key, title, summary, null, null); + } + + public static Preference addPreference( + PreferenceScreen screen, + String key, + CharSequence title, + CharSequence summary + ) { + return addPreference(screen, key, title, summary, null, null); + } + + // change icon accent color + public static Preference addPreference( + PreferenceScreen screen, + String key, + int titleRes, + int summaryRes, + int iconRes, + Preference.OnPreferenceClickListener listener) { + var icon = iconRes > 0 + ? ImageUtils.setTint(screen.getContext(), screen.getContext().getDrawable(iconRes)) + : null; + var title = titleRes > 0 + ? screen.getContext().getString(titleRes) + : ""; + var summary = summaryRes > 0 + ? screen.getContext().getString(summaryRes) + : ""; + return addPreference(screen, key, title, summary, icon, listener); + } + + // change icon accent color + public static Preference addPreference( + PreferenceScreen screen, + String key, + CharSequence title, + CharSequence summary, + int iconRes, + Preference.OnPreferenceClickListener listener) { + var icon = iconRes > 0 + ? ImageUtils.setTint(screen.getContext(), screen.getContext().getDrawable(iconRes)) + : null; + return addPreference(screen, key, title, summary, icon, listener); + } + + public static Preference addPreference( + PreferenceScreen screen, + String key, + CharSequence title, + CharSequence summary, + @Nullable Drawable icon, + Preference.OnPreferenceClickListener listener + ) { + Preference preference = new Preference(screen.getContext()); + preference.setSummary(summary); + preference.setTitle(title); + preference.setKey(key); + + if (icon != null) + preference.setIcon(icon); + preference.setOnPreferenceClickListener(listener); + + screen.addPreference(preference); + + return preference; + } + + public static PreferenceCategory addPreferenceCategory(PreferenceScreen screen, int titleRes) { + var title = titleRes > 0 + ? screen.getContext().getString(titleRes) + : ""; + return addPreferenceCategory(screen, title); + } + + public static PreferenceCategory addPreferenceCategory(PreferenceScreen screen, CharSequence title) { + PreferenceCategory preference = new PreferenceCategory(screen.getContext(), null); + preference.setTitle(title); + screen.addPreference(preference); + + return preference; + } + + public static Preference addEditTextPreference( + PreferenceScreen screen, + String key, + int titleRes, + onPreferenceTextValueChangeListener editTextPrefChangeListener + ) { + var title = titleRes > 0 + ? screen.getContext().getString(titleRes) + : ""; + return addEditTextPreference(screen, key, title, editTextPrefChangeListener); + } + + public static Preference addEditTextPreference( + PreferenceScreen screen, + String key, + CharSequence title, + onPreferenceTextValueChangeListener editTextPrefChangeListener + ) { + return addPreference(screen, key, title, null, null, preference -> { + LinearLayout linearLayout = new LinearLayout(screen.getContext()); + + final EditText editText = new EditText(screen.getContext()); + editText.setText(PreferenceManager.getDefaultSharedPreferences(screen.getContext()).getString(key, "")); + editText.setHint(title); + editText.setTextColor(ThemesUtils.getTextAttr()); + editText.setHintTextColor(ThemesUtils.getSTextAttr()); + + editText.setBackgroundTintList(ThemesUtils.getAccenedColorStateList()); + + linearLayout.addView(editText); + editText.getLayoutParams().width = ViewGroup.LayoutParams.MATCH_PARENT; + ViewGroup.MarginLayoutParams margin = ((ViewGroup.MarginLayoutParams) editText.getLayoutParams()); + margin.setMargins(AndroidUtils.dp2px(20f), 0, AndroidUtils.dp2px(20f), 0); + editText.setLayoutParams(margin); + + new VkAlertDialog.Builder(screen.getContext()) + .setTitle(title) + .setView(linearLayout) + .setPositiveButton("OK", (dialog, which) -> { + boolean change = editTextPrefChangeListener.onChanged(preference, editText.getText().toString()); + if (!change) + return; + + PreferenceManager.getDefaultSharedPreferences(screen.getContext()) + .edit() + .putString(key, editText.getText().toString()) + .apply(); + }) + .show(); + + return false; + }); + } + + public interface onPreferenceTextValueChangeListener { + boolean onChanged(Preference preference, String newValue); + } +} diff --git a/app/src/main/java/ru/vtosters/lite/ui/PreferencesUtil.java b/app/src/main/java/ru/vtosters/lite/ui/PreferencesUtil.java deleted file mode 100644 index 65986e0ed..000000000 --- a/app/src/main/java/ru/vtosters/lite/ui/PreferencesUtil.java +++ /dev/null @@ -1,274 +0,0 @@ -package ru.vtosters.lite.ui; - -import android.content.Context; -import android.graphics.drawable.Drawable; -import android.preference.PreferenceManager; -import android.util.TypedValue; -import android.view.ViewGroup; -import android.widget.EditText; -import android.widget.LinearLayout; -import androidx.annotation.Nullable; -import androidx.core.content.ContextCompat; -import androidx.preference.ListPreference; -import androidx.preference.Preference; -import androidx.preference.PreferenceCategory; -import com.vk.core.dialogs.alert.VkAlertDialog; -import com.vtosters.lite.general.fragments.MaterialPreferenceToolbarFragment; -import com.vtosters.lite.ui.MaterialSwitchPreference; -import ru.vtosters.lite.utils.AndroidUtils; -import ru.vtosters.lite.utils.ImageUtils; -import ru.vtosters.lite.utils.ThemesUtils; - -public class PreferencesUtil { - - public static void addListPreference( - MaterialPreferenceToolbarFragment fragment, - String key, - String def, - CharSequence title, - CharSequence[] entries, - CharSequence[] entriesValue - ) { - ListPreference preference = new ListPreference(fragment.requireContext()); - preference.setEntries(entries); - preference.setEntryValues(entriesValue); - preference.setTitle(title); // setTitle - preference.setDialogTitle(title); // setDialogTitle - preference.setKey(key); // setKey - preference.setDefaultValue(def); // setDefaultValue - fragment.getPreferenceScreen().addPreference(preference); // fragment.getPreferenceScreen().addPreference(preference) - } - - public static void addListPreferenceIcon( - MaterialPreferenceToolbarFragment fragment, - String key, - String def, - CharSequence title, - int iconRes, - CharSequence summary, - CharSequence[] entries, - CharSequence[] entriesValue, - Preference.OnPreferenceChangeListener listener - ) { - ListPreference preference = new ListPreference(fragment.requireContext()); - preference.setEntries(entries); - preference.setEntryValues(entriesValue); - preference.setSummary(summary); // setSummary - preference.setTitle(title); // setTitle - preference.setDialogTitle(title); // setDialogTitle - preference.setKey(key); // setKey - preference.setDefaultValue(def); // setDefaultValue - preference.setValue(def); - preference.setOnPreferenceChangeListener(listener); - - if (iconRes != 0) - preference.setIcon(ImageUtils.setTint(fragment.requireContext(), getDrawable(fragment.requireContext(), iconRes))); // preference.setIcon - fragment.getPreferenceScreen().addPreference(preference); // fragment.getPreferenceScreen().addPreference(preference) - } - - public static void addMaterialSwitchPreference( - MaterialPreferenceToolbarFragment materialPreferenceToolbarFragment, - String key, - CharSequence title, - CharSequence summary, - boolean defValue - ) { - MaterialSwitchPreference materialSwitchPreference = new MaterialSwitchPreference(materialPreferenceToolbarFragment.requireContext()); - materialSwitchPreference.setTitle(title); // setTitle - materialSwitchPreference.setSummary(summary); // setSummary - materialSwitchPreference.setKey(key); // setKey - materialSwitchPreference.setDefaultValue(defValue); // setDefaultValue - - materialPreferenceToolbarFragment.getPreferenceScreen().addPreference(materialSwitchPreference); // materialPreferenceToolbarFragment.getPreferenceScreen().addPreference(preference) - } - -// public static void addMaterialSwitchPreference( -// MaterialPreferenceToolbarFragment fragment, -// String key, -// CharSequence title, -// CharSequence summary, -// int iconRes, -// boolean defValue, -// Preference.OnPreferenceChangeListener listener -// ) { -// MaterialSwitchPreference materialSwitchPreference = new MaterialSwitchPreference(fragment.requireContext()); -// materialSwitchPreference.setTitle(title); // setTitle -// materialSwitchPreference.setSummary(summary); // setSummary -// materialSwitchPreference.setKey(key); // setKey -// materialSwitchPreference.setDefaultValue(defValue); // setDefaultValue -// materialSwitchPreference.setOnPreferenceChangeListener(listener); // setOnPreferenceClickListener -// -// if (iconRes != 0) -// materialSwitchPreference.setIcon(setTint(fragment.requireContext(), Objects.requireNonNull(ContextCompat.getDrawable(fragment.requireContext(), iconRes)))); // preference.setIcon -// -// fragment.getPreferenceScreen().addPreference(materialSwitchPreference); // fragment.getPreferenceScreen().addPreference(preference) -// } - - public static void addMaterialSwitchPreference( - MaterialPreferenceToolbarFragment fragment, - String key, - CharSequence title, - CharSequence summary, - int iconRes, - boolean defValue, - Preference.OnPreferenceChangeListener listener - ) { - MaterialSwitchPreference materialSwitchPreference = new MaterialSwitchPreference(fragment.requireContext()); - materialSwitchPreference.setTitle(title); // setTitle - materialSwitchPreference.setSummary(summary); // setSummary - materialSwitchPreference.setKey(key); // setKey - materialSwitchPreference.setDefaultValue(defValue); // setDefaultValue - fragment.getPreferenceScreen().addPreference(materialSwitchPreference); // materialPreferenceToolbarFragment.getPreferenceScreen().addPreference(preference) - - if (iconRes != 0) - materialSwitchPreference.setIcon(ImageUtils.setTint(fragment.requireContext(), getDrawable(fragment.requireContext(), iconRes))); // preference.setIcon - materialSwitchPreference.setOnPreferenceChangeListener(listener); // setOnPreferenceClickListener(listener) - - fragment.getPreferenceScreen().addPreference(materialSwitchPreference); // fragment.getPreferenceScreen().addPreference(preference) - } - - public static void addPreference( - MaterialPreferenceToolbarFragment fragment, - String key, - CharSequence title, - CharSequence summary - ) { - Preference preference = new Preference(fragment.requireContext()); - preference.setSummary(summary); // setSummary - preference.setTitle(title); // setTitle - preference.setKey(key); // setKey - - fragment.getPreferenceScreen().addPreference(preference); // fragment.getPreferenceScreen().addPreference(preference) - } - - public static void addPreference( - MaterialPreferenceToolbarFragment fragment, - CharSequence title, - CharSequence summary, - int iconRes, - Preference.OnPreferenceClickListener listener - ) { - Preference preference = new Preference(fragment.requireContext()); - preference.setSummary(summary); // setSummary - preference.setTitle(title); // setTitle - - if (iconRes != 0) - preference.setIcon(ImageUtils.setTint(fragment.requireContext(), getDrawable(fragment.requireContext(), iconRes))); // preference.setIcon - preference.setOnPreferenceClickListener(listener); // preference.setOnPreferenceClickListener(listener) - - fragment.getPreferenceScreen().addPreference(preference); // fragment.getPreferenceScreen().addPreference(preference) - } - - public static void addPreference( - MaterialPreferenceToolbarFragment fragment, - String key, - CharSequence title, - CharSequence summary, - int iconRes, - Preference.OnPreferenceClickListener listener) { - Preference preference = new Preference(fragment.requireContext()); - preference.setSummary(summary); // setSummary - preference.setTitle(title); // setTitle - preference.setKey(key); // setKey - - if (iconRes != 0) - preference.setIcon(ImageUtils.setTint(fragment.requireContext(), getDrawable(fragment.requireContext(), iconRes))); // preference.setIcon - preference.setOnPreferenceClickListener(listener); // preference.setOnPreferenceClickListener(listener) - - fragment.getPreferenceScreen().addPreference(preference); // fragment.getPreferenceScreen().addPreference(preference) - } - - public static void addPreferenceDrawable( - MaterialPreferenceToolbarFragment fragment, - String key, - CharSequence title, - CharSequence summary, - @Nullable Drawable icon, - Preference.OnPreferenceClickListener listener - ) { - Preference preference = new Preference(fragment.requireContext()); - preference.setSummary(summary); // setSummary - preference.setTitle(title); // setTitle - preference.setKey(key); // setKey - - if (icon != null) - preference.setIcon(icon); // preference.setIcon - preference.setOnPreferenceClickListener(listener); // preference.setOnPreferenceClickListener(listener) - - fragment.getPreferenceScreen().addPreference(preference); // fragment.getPreferenceScreen().addPreference(preference) - } - - public static void addPreferenceCategory(MaterialPreferenceToolbarFragment fragment, CharSequence title) { - PreferenceCategory preference = new PreferenceCategory(fragment.requireContext(), null); - preference.setTitle(title); // setTitle - fragment.getPreferenceScreen().addPreference(preference); // fragment.getPreferenceScreen().addPreference(preference) - } - - public static void addPreferenceCategory(MaterialPreferenceToolbarFragment fragment, CharSequence title, int collapsedSize) { - PreferenceCategory preference = new PreferenceCategory(fragment.requireContext(), null); - preference.setTitle(title); // setTitle - fragment.getPreferenceScreen().addPreference(preference); // fragment.getPreferenceScreen().addPreference(preference) - } - - public static void addEditTextPreference(MaterialPreferenceToolbarFragment fragment, String key, CharSequence title, EditTextPrefChangeListener editTextPrefChangeListener) { - Preference preference = new Preference(fragment.requireContext()); - - preference.setTitle(title); // setTitle - preference.setKey(key); // setKey - preference.setOnPreferenceClickListener(preference1 -> { - LinearLayout linearLayout = new LinearLayout(fragment.requireContext()); - - final EditText editText = new EditText(fragment.requireContext()); - editText.setText(PreferenceManager.getDefaultSharedPreferences(fragment.requireContext()).getString(key, "")); - editText.setHint(title); - editText.setTextColor(ThemesUtils.getTextAttr()); - editText.setHintTextColor(ThemesUtils.getSTextAttr()); - - editText.setBackgroundTintList(ThemesUtils.getAccenedColorStateList()); - - linearLayout.addView(editText); - editText.getLayoutParams().width = ViewGroup.LayoutParams.MATCH_PARENT; - ViewGroup.MarginLayoutParams margin = ((ViewGroup.MarginLayoutParams) editText.getLayoutParams()); - margin.setMargins(AndroidUtils.dp2px(20f), 0, AndroidUtils.dp2px(20f), 0); - editText.setLayoutParams(margin); - - new VkAlertDialog.Builder(fragment.getContext()) - .setTitle(title) - .setView(linearLayout) - .setPositiveButton("OK", (dialog, which) -> { - boolean change = editTextPrefChangeListener.onChanged(preference, editText.getText().toString()); - if (!change) - return; - - PreferenceManager.getDefaultSharedPreferences(fragment.requireContext()) - .edit() - .putString(key, editText.getText().toString()) - .apply(); - }) - .show(); - return false; - }); // preference.setOnPreferenceClickListener(listener) - - fragment.getPreferenceScreen().addPreference(preference); // fragment.getPreferenceScreen().addPreference(preference) - } - - public static int getTextColor(Context ctx) { - TypedValue typedValue = new TypedValue(); - ctx.getTheme().resolveAttribute(ThemesUtils.getTextAttr(), typedValue, true); - return typedValue.data; - } - - public static int getSTextColor(Context ctx) { - TypedValue typedValue = new TypedValue(); - ctx.getTheme().resolveAttribute(ThemesUtils.getSTextAttr(), typedValue, true); - return typedValue.data; - } - - private static Drawable getDrawable(Context ctx, int drawableRes) { - return ContextCompat.getDrawable(ctx, drawableRes); - } - - public interface EditTextPrefChangeListener { - boolean onChanged(Preference preference, Object obj); - } -} diff --git a/app/src/main/java/ru/vtosters/lite/ui/components/CrashReporter.java b/app/src/main/java/ru/vtosters/lite/ui/components/CrashReporter.java index 268db839a..dc49599cd 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/components/CrashReporter.java +++ b/app/src/main/java/ru/vtosters/lite/ui/components/CrashReporter.java @@ -52,7 +52,7 @@ public class CrashReporter { foxbinIntent.putExtra("android.intent.extra.TEXT", logString); foxbinIntent.setType("text/plain"); if (!isFoxbinInstalled()) { - foxbinIntent = new Intent("android.intent.action.VIEW"); + foxbinIntent = new Intent(Intent.ACTION_VIEW); foxbinIntent.setData(Uri.parse("https://play.google.com/store/apps/details?id=com.f0x1d.dogbin")); foxbinIntent.addFlags(Intent.FLAG_ACTIVITY_NO_USER_ACTION); } diff --git a/app/src/main/java/ru/vtosters/lite/ui/dialogs/Start.java b/app/src/main/java/ru/vtosters/lite/ui/dialogs/Start.java index 7514d9cf7..940d2c2af 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/dialogs/Start.java +++ b/app/src/main/java/ru/vtosters/lite/ui/dialogs/Start.java @@ -1,19 +1,17 @@ package ru.vtosters.lite.ui.dialogs; -import static ru.vtosters.lite.utils.AndroidUtils.edit; -import static ru.vtosters.lite.utils.Preferences.getBoolValue; - import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Build; - import com.vk.core.dialogs.alert.VkAlertDialog; import com.vtosters.lite.R; - import ru.vtosters.lite.deviceinfo.OEMDetector; import ru.vtosters.lite.utils.AndroidUtils; +import static ru.vtosters.lite.utils.AndroidUtils.edit; +import static ru.vtosters.lite.utils.Preferences.getBoolValue; + public class Start { public static void alert(final Activity activity) { if (Build.VERSION.SDK_INT >= 23) { @@ -30,7 +28,7 @@ public class Start { .setNeutralButton(R.string.startbtn1, (dialogInterface, i) -> { edit().putBoolean("showAlert", false).apply(); - activity.startActivity(new Intent("android.intent.action.VIEW").setData(Uri.parse("https://t.me/vtosters"))); + activity.startActivity(new Intent(Intent.ACTION_VIEW).setData(Uri.parse("https://t.me/vtosters"))); } ) .show(); diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/IconsFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/IconsFragment.java index f384d9f63..57697865f 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/IconsFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/IconsFragment.java @@ -1,22 +1,5 @@ package ru.vtosters.lite.ui.fragments; -import static ru.vtosters.lite.ui.PreferencesUtil.addPreference; -import static ru.vtosters.lite.ui.PreferencesUtil.addPreferenceCategory; -import static ru.vtosters.lite.ui.PreferencesUtil.addPreferenceDrawable; -import static ru.vtosters.lite.ui.components.IconManager.icons; -import static ru.vtosters.lite.ui.components.IconManager.iconsValues; -import static ru.vtosters.lite.ui.components.IconManager.sIconsPlus; -import static ru.vtosters.lite.ui.components.IconManager.sIconsPlusNames; -import static ru.vtosters.lite.ui.components.IconManager.switchComponent; -import static ru.vtosters.lite.utils.AndroidUtils.dp2px; -import static ru.vtosters.lite.utils.AndroidUtils.edit; -import static ru.vtosters.lite.utils.AndroidUtils.getIdentifier; -import static ru.vtosters.lite.utils.AndroidUtils.sendToast; -import static ru.vtosters.lite.utils.Preferences.getBoolValue; -import static ru.vtosters.lite.utils.Preferences.hasVerification; -import static ru.vtosters.lite.utils.Preferences.preferences; -import static ru.vtosters.lite.utils.ThemesUtils.getTextAttr; - import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; @@ -26,44 +9,47 @@ import android.os.Bundle; import android.util.TypedValue; import android.widget.RadioButton; import android.widget.RadioGroup; - import androidx.appcompat.view.ContextThemeWrapper; import androidx.core.content.res.ResourcesCompat; - import com.vk.core.dialogs.alert.VkAlertDialog; import com.vtosters.lite.R; import com.vtosters.lite.general.fragments.MaterialPreferenceToolbarFragment; +import ru.vtosters.lite.ui.PreferenceFragmentUtils; +import ru.vtosters.lite.ui.components.IconManager; +import ru.vtosters.lite.utils.AndroidUtils; +import ru.vtosters.lite.utils.Preferences; +import ru.vtosters.lite.utils.ThemesUtils; public class IconsFragment extends MaterialPreferenceToolbarFragment { @SuppressLint("SetTextI18n") public static void callSelectDialog(Context ctx, String appicon) { - var defname = preferences.getString("appname", "vt"); - var deficon = preferences.getString("selectedicon", "vt"); + var defname = Preferences.preferences.getString("appname", "vt"); + var deficon = Preferences.preferences.getString("selectedicon", "vt"); RadioGroup rg = new RadioGroup(ctx); - RadioButton rgDefault = new RadioButton(new ContextThemeWrapper(ctx, com.vtosters.lite.R.style.Widget_AppCompat_CompoundButton_RadioButton)); - RadioButton rgVK = new RadioButton(new ContextThemeWrapper(ctx, com.vtosters.lite.R.style.Widget_AppCompat_CompoundButton_RadioButton)); - RadioButton rgVKontakte = new RadioButton(new ContextThemeWrapper(ctx, com.vtosters.lite.R.style.Widget_AppCompat_CompoundButton_RadioButton)); + RadioButton rgDefault = new RadioButton(new ContextThemeWrapper(ctx, R.style.Widget_AppCompat_CompoundButton_RadioButton)); + RadioButton rgVK = new RadioButton(new ContextThemeWrapper(ctx, R.style.Widget_AppCompat_CompoundButton_RadioButton)); + RadioButton rgVKontakte = new RadioButton(new ContextThemeWrapper(ctx, R.style.Widget_AppCompat_CompoundButton_RadioButton)); rg.addView(rgDefault); rg.addView(rgVK); rg.addView(rgVKontakte); - rgDefault.setTextSize(TypedValue.COMPLEX_UNIT_PX, dp2px(14f)); - rgVK.setTextSize(TypedValue.COMPLEX_UNIT_PX, dp2px(14f)); - rgVKontakte.setTextSize(TypedValue.COMPLEX_UNIT_PX, dp2px(14f)); + rgDefault.setTextSize(TypedValue.COMPLEX_UNIT_PX, AndroidUtils.dp2px(14f)); + rgVK.setTextSize(TypedValue.COMPLEX_UNIT_PX, AndroidUtils.dp2px(14f)); + rgVKontakte.setTextSize(TypedValue.COMPLEX_UNIT_PX, AndroidUtils.dp2px(14f)); - rg.setPadding(dp2px(18f), dp2px(12f), dp2px(18f), 0); + rg.setPadding(AndroidUtils.dp2px(18f), AndroidUtils.dp2px(12f), AndroidUtils.dp2px(18f), 0); rgDefault.setText("VTLite"); - rgDefault.setTextColor(getTextAttr()); + rgDefault.setTextColor(ThemesUtils.getTextAttr()); rgVK.setText("VK"); - rgVK.setTextColor(getTextAttr()); + rgVK.setTextColor(ThemesUtils.getTextAttr()); rgVKontakte.setText(ctx.getString(R.string.app_name_alter)); - rgVKontakte.setTextColor(getTextAttr()); + rgVKontakte.setTextColor(ThemesUtils.getTextAttr()); rgVKontakte.setChecked(defname.contains("vkontakte")); rgVK.setChecked(defname.contains("standard")); @@ -74,20 +60,20 @@ public class IconsFragment extends MaterialPreferenceToolbarFragment { .setView(rg) .setPositiveButton(R.string.vtl_confirm, ((dialog, which) -> { if (rgDefault.isChecked()) { - edit().putString("appname", "vt").commit(); - edit().putString("selectedicon", appicon).commit(); + AndroidUtils.edit().putString("appname", "vt").commit(); + AndroidUtils.edit().putString("selectedicon", appicon).commit(); - switchComponent(appicon, "vt", deficon, defname); + IconManager.switchComponent(appicon, "vt", deficon, defname); } else if (rgVK.isChecked()) { - edit().putString("appname", "standard").commit(); - edit().putString("selectedicon", appicon).commit(); + AndroidUtils.edit().putString("appname", "standard").commit(); + AndroidUtils.edit().putString("selectedicon", appicon).commit(); - switchComponent(appicon, "standard", deficon, defname); + IconManager.switchComponent(appicon, "standard", deficon, defname); } else if (rgVKontakte.isChecked()) { - edit().putString("appname", "vkontakte").commit(); - edit().putString("selectedicon", appicon).commit(); + AndroidUtils.edit().putString("appname", "vkontakte").commit(); + AndroidUtils.edit().putString("selectedicon", appicon).commit(); - switchComponent(appicon, "vkontakte", deficon, defname); + IconManager.switchComponent(appicon, "vkontakte", deficon, defname); } })) .setNegativeButton(R.string.cancel, @@ -102,20 +88,20 @@ public class IconsFragment extends MaterialPreferenceToolbarFragment { this.addPreferencesFromResource(R.xml.empty); - if (!hasVerification() && !getBoolValue("dialogrecomm", false)) { - addPreference(this, "", requireContext().getString(R.string.icons_warning), requireContext().getString(R.string.icons_warning_info), R.drawable.ic_about_outline_28, preference -> { - getContext().startActivity(new Intent("android.intent.action.VIEW").setData(Uri.parse("https://vtosters.app/donate/"))); + if (!Preferences.hasVerification() && !Preferences.getBoolValue("dialogrecomm", false)) { + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", requireContext().getString(R.string.icons_warning), requireContext().getString(R.string.icons_warning_info), R.drawable.ic_about_outline_28, preference -> { + getContext().startActivity(new Intent(Intent.ACTION_VIEW).setData(Uri.parse("https://vtosters.app/donate/"))); return false; }); } - addPreferenceCategory(this, requireContext().getString(R.string.icons_title)); + PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), requireContext().getString(R.string.icons_title)); - for (var i = 0; i < icons().size(); i++) { - if (icons().get(i) == null || iconsValues().get(i) == null) return; + for (var i = 0; i < IconManager.icons().size(); i++) { + if (IconManager.icons().get(i) == null || IconManager.iconsValues().get(i) == null) return; - String iconname = icons().get(i); - String icon = iconsValues().get(i); + String iconname = IconManager.icons().get(i); + String icon = IconManager.iconsValues().get(i); int iconRes; @@ -124,7 +110,7 @@ public class IconsFragment extends MaterialPreferenceToolbarFragment { } else if (icon.contains("standard")) { iconRes = R.mipmap.ic_launcher_round; } else { - iconRes = getIdentifier("ic_launcher_" + icon, "mipmap"); + iconRes = AndroidUtils.getIdentifier("ic_launcher_" + icon, "mipmap"); } Drawable drawable = ResourcesCompat.getDrawable(getResources(), iconRes, null); @@ -133,20 +119,20 @@ public class IconsFragment extends MaterialPreferenceToolbarFragment { drawable = ResourcesCompat.getDrawable(getResources(), R.drawable.ic_bug_outline_28, null); } - addPreferenceDrawable(this, icon, iconname, "", drawable, preference -> { + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), icon, iconname, "", drawable, preference -> { callSelectDialog(this.getContext(), icon); return false; }); } - if (!hasVerification() && !getBoolValue("dialogrecomm", false)) { - addPreferenceCategory(this, requireContext().getString(R.string.unavailable_icons)); + if (!Preferences.hasVerification() && !Preferences.getBoolValue("dialogrecomm", false)) { + PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), requireContext().getString(R.string.unavailable_icons)); - for (var i = 2; i < sIconsPlusNames.size(); i++) { - if (sIconsPlusNames.get(i) == null || sIconsPlus.get(i) == null) return; + for (var i = 2; i < IconManager.sIconsPlusNames.size(); i++) { + if (IconManager.sIconsPlusNames.get(i) == null || IconManager.sIconsPlus.get(i) == null) return; - String iconname = sIconsPlusNames.get(i); - String icon = sIconsPlus.get(i); + String iconname = IconManager.sIconsPlusNames.get(i); + String icon = IconManager.sIconsPlus.get(i); int iconRes; @@ -155,7 +141,7 @@ public class IconsFragment extends MaterialPreferenceToolbarFragment { } else if (icon.contains("standard")) { iconRes = R.mipmap.ic_launcher_round; } else { - iconRes = getIdentifier("ic_launcher_" + icon, "mipmap"); + iconRes = AndroidUtils.getIdentifier("ic_launcher_" + icon, "mipmap"); } Drawable drawable = ResourcesCompat.getDrawable(getResources(), iconRes, null); @@ -164,8 +150,8 @@ public class IconsFragment extends MaterialPreferenceToolbarFragment { drawable = ResourcesCompat.getDrawable(getResources(), R.drawable.ic_bug_outline_28, null); } - addPreferenceDrawable(this, icon, iconname, "", drawable, preference -> { - sendToast(requireContext().getString(R.string.unavailable_icon_warning)); + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), icon, iconname, "", drawable, preference -> { + AndroidUtils.sendToast(requireContext().getString(R.string.unavailable_icon_warning)); return false; }); } diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/SystemInfo.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/SystemInfo.java index d9e243c7a..93924ece4 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/SystemInfo.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/SystemInfo.java @@ -1,34 +1,17 @@ package ru.vtosters.lite.ui.fragments; -import static ru.vtosters.lite.deviceinfo.OEMDetector.getEmuiVersionCode; -import static ru.vtosters.lite.deviceinfo.OEMDetector.getMiuiUiVersionCode; -import static ru.vtosters.lite.deviceinfo.OEMDetector.getMiuiUiVersionIncrementalCode; -import static ru.vtosters.lite.deviceinfo.OEMDetector.getMiuiUiVersionName; -import static ru.vtosters.lite.deviceinfo.OEMDetector.getOneUiMajorVersion; -import static ru.vtosters.lite.deviceinfo.OEMDetector.getOneUiMinorVersion; -import static ru.vtosters.lite.deviceinfo.OEMDetector.hasMiuiIncrCode; -import static ru.vtosters.lite.deviceinfo.OEMDetector.isEMUI; -import static ru.vtosters.lite.deviceinfo.OEMDetector.isFlyme; -import static ru.vtosters.lite.deviceinfo.OEMDetector.isMIUI; -import static ru.vtosters.lite.deviceinfo.OEMDetector.isOneUi; -import static ru.vtosters.lite.deviceinfo.OEMDetector.isSamsung; -import static ru.vtosters.lite.deviceinfo.OEMDetector.isVivo; -import static ru.vtosters.lite.deviceinfo.OEMDetector.isZenUI; -import static ru.vtosters.lite.ui.PreferencesUtil.addPreference; -import static ru.vtosters.lite.ui.PreferencesUtil.addPreferenceCategory; -import static ru.vtosters.lite.utils.About.getBuildNumber; -import static ru.vtosters.lite.utils.AndroidUtils.isTablet; -import static ru.vtosters.lite.utils.AndroidUtils.sendToast; -import static ru.vtosters.lite.utils.Preferences.isValidSignature; - import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; import android.os.Build; import android.os.Bundle; - import com.vtosters.lite.R; import com.vtosters.lite.general.fragments.MaterialPreferenceToolbarFragment; +import ru.vtosters.lite.deviceinfo.OEMDetector; +import ru.vtosters.lite.ui.PreferenceFragmentUtils; +import ru.vtosters.lite.utils.About; +import ru.vtosters.lite.utils.AndroidUtils; +import ru.vtosters.lite.utils.Preferences; public class SystemInfo extends MaterialPreferenceToolbarFragment { @@ -37,8 +20,8 @@ public class SystemInfo extends MaterialPreferenceToolbarFragment { super.onCreate(bundle); addPreferencesFromResource(R.xml.empty); - var oneUiMajorVersion = String.valueOf(getOneUiMajorVersion()); - var oneUiMinorVersion = String.valueOf(getOneUiMinorVersion()); + var oneUiMajorVersion = String.valueOf(OEMDetector.getOneUiMajorVersion()); + var oneUiMinorVersion = String.valueOf(OEMDetector.getOneUiMinorVersion()); var sdkVersion = String.valueOf(Build.VERSION.SDK_INT); var productName = Build.PRODUCT; var deviceName = Build.DEVICE; @@ -46,145 +29,145 @@ public class SystemInfo extends MaterialPreferenceToolbarFragment { var manufacturerName = Build.MANUFACTURER; var brandName = Build.BRAND; var modelName = Build.MODEL; - var miuiUiVersionName = getMiuiUiVersionName(); - var miuiIncrementalCodeName = getMiuiUiVersionIncrementalCode(); - var miuiUiVersionCodeName = getMiuiUiVersionCode(); - var emuiVersionCode = getEmuiVersionCode(); + var miuiUiVersionName = OEMDetector.getMiuiUiVersionName(); + var miuiIncrementalCodeName = OEMDetector.getMiuiUiVersionIncrementalCode(); + var miuiUiVersionCodeName = OEMDetector.getMiuiUiVersionCode(); + var emuiVersionCode = OEMDetector.getEmuiVersionCode(); var packageName = requireContext().getPackageName(); - var commit = getBuildNumber(); + var commit = About.getBuildNumber(); - var isMiui = isMIUI(); - var isFlyme = isFlyme(); - var isSamsung = isSamsung(); - var isOneUi = isOneUi(); - var isVivo = isVivo(); - var isZenUI = isZenUI(); - var isEMUI = isEMUI(); - var hasMiuiIncrCode = hasMiuiIncrCode(); + var isMiui = OEMDetector.isMIUI(); + var isFlyme = OEMDetector.isFlyme(); + var isSamsung = OEMDetector.isSamsung(); + var isOneUi = OEMDetector.isOneUi(); + var isVivo = OEMDetector.isVivo(); + var isZenUI = OEMDetector.isZenUI(); + var isEMUI = OEMDetector.isEMUI(); + var hasMiuiIncrCode = OEMDetector.hasMiuiIncrCode(); - var isValidSignature = isValidSignature(); - var isTablet = isTablet(); + var isValidSignature = Preferences.isValidSignature(); + var isTablet = AndroidUtils.isTablet(); - addPreferenceCategory(this, "App information"); + PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), "App information"); - addPreference(this, "", "Package name", packageName, 0, preference -> { + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "Package name", packageName, 0, preference -> { ((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", packageName)); - sendToast(requireContext().getString(R.string.copied_to_clipboard)); + AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard)); return false; }); - addPreference(this, "", "Commit", commit, 0, preference -> { + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "Commit", commit, 0, preference -> { ((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", commit)); - sendToast(requireContext().getString(R.string.copied_to_clipboard)); + AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard)); return false; }); - addPreference(this, "", "Valid Signature", "Value: " + isValidSignature, 0, null); + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "Valid Signature", "Value: " + isValidSignature, 0, null); - addPreference(this, "", "isTablet", "Value: " + isTablet, 0, null); + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "isTablet", "Value: " + isTablet, 0, null); - addPreferenceCategory(this, "System information"); + PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), "System information"); - addPreference(this, "", "SDK Version", sdkVersion, 0, preference -> { + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "SDK Version", sdkVersion, 0, preference -> { ((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", sdkVersion)); - sendToast(requireContext().getString(R.string.copied_to_clipboard)); + AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard)); return false; }); - addPreference(this, "", "Product Name", productName, 0, preference -> { + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "Product Name", productName, 0, preference -> { ((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", productName)); - sendToast(requireContext().getString(R.string.copied_to_clipboard)); + AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard)); return false; }); - addPreference(this, "", "Device Name", deviceName, 0, preference -> { + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "Device Name", deviceName, 0, preference -> { ((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", deviceName)); - sendToast(requireContext().getString(R.string.copied_to_clipboard)); + AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard)); return false; }); - addPreference(this, "", "Board Name", boardName, 0, preference -> { + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "Board Name", boardName, 0, preference -> { ((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", boardName)); - sendToast(requireContext().getString(R.string.copied_to_clipboard)); + AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard)); return false; }); - addPreference(this, "", "Manufacturer Name", manufacturerName, 0, preference -> { + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "Manufacturer Name", manufacturerName, 0, preference -> { ((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", manufacturerName)); - sendToast(requireContext().getString(R.string.copied_to_clipboard)); + AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard)); return false; }); - addPreference(this, "", "Brand Name", brandName, 0, preference -> { + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "Brand Name", brandName, 0, preference -> { ((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", brandName)); - sendToast(requireContext().getString(R.string.copied_to_clipboard)); + AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard)); return false; }); - addPreference(this, "", "Model Name", modelName, 0, preference -> { + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "Model Name", modelName, 0, preference -> { ((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", modelName)); - sendToast(requireContext().getString(R.string.copied_to_clipboard)); + AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard)); return false; }); - addPreferenceCategory(this, "OEM Information"); + PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), "OEM Information"); if (isOneUi) { - addPreference(this, "", "OneUiMajorVersion", oneUiMajorVersion, 0, preference -> { + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "OneUiMajorVersion", oneUiMajorVersion, 0, preference -> { ((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", oneUiMajorVersion)); - sendToast(requireContext().getString(R.string.copied_to_clipboard)); + AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard)); return false; }); - addPreference(this, "", "OneUiMinorVersion", oneUiMinorVersion, 0, preference -> { + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "OneUiMinorVersion", oneUiMinorVersion, 0, preference -> { ((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", oneUiMinorVersion)); - sendToast(requireContext().getString(R.string.copied_to_clipboard)); + AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard)); return false; }); } else if (isMiui) { - addPreference(this, "", "miuiUiVersionName", miuiUiVersionName, 0, preference -> { + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "miuiUiVersionName", miuiUiVersionName, 0, preference -> { ((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", miuiUiVersionName)); - sendToast(requireContext().getString(R.string.copied_to_clipboard)); + AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard)); return false; }); - addPreference(this, "", "miuiUiVersionCodeName", miuiUiVersionCodeName, 0, preference -> { + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "miuiUiVersionCodeName", miuiUiVersionCodeName, 0, preference -> { ((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", miuiUiVersionCodeName)); - sendToast(requireContext().getString(R.string.copied_to_clipboard)); + AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard)); return false; }); if (hasMiuiIncrCode) { - addPreference(this, "", "miuiIncrementalCodeName", miuiIncrementalCodeName, 0, preference -> { + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "miuiIncrementalCodeName", miuiIncrementalCodeName, 0, preference -> { ((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", miuiIncrementalCodeName)); - sendToast(requireContext().getString(R.string.copied_to_clipboard)); + AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard)); return false; }); } } else if (isEMUI) { - addPreference(this, "", "emuiVersionCode", emuiVersionCode, 0, preference -> { + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "emuiVersionCode", emuiVersionCode, 0, preference -> { ((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", emuiVersionCode)); - sendToast(requireContext().getString(R.string.copied_to_clipboard)); + AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard)); return false; }); } else { - addPreference(this, "", "No info", "No information about OEM", 0, null); + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "No info", "No information about OEM", 0, null); } - addPreferenceCategory(this, "OEM List"); + PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), "OEM List"); - addPreference(this, "", "isOneUi", "Value: " + isOneUi, 0, null); + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "isOneUi", "Value: " + isOneUi, 0, null); - addPreference(this, "", "isMiui", "Value: " + isMiui, 0, null); + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "isMiui", "Value: " + isMiui, 0, null); - addPreference(this, "", "isEMUI", "Value: " + isEMUI, 0, null); + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "isEMUI", "Value: " + isEMUI, 0, null); - addPreference(this, "", "isFlyme", "Value: " + isFlyme, 0, null); + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "isFlyme", "Value: " + isFlyme, 0, null); - addPreference(this, "", "isSamsung", "Value: " + isSamsung, 0, null); + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "isSamsung", "Value: " + isSamsung, 0, null); - addPreference(this, "", "isVivo", "Value: " + isVivo, 0, null); + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "isVivo", "Value: " + isVivo, 0, null); - addPreference(this, "", "isZenUI", "Value: " + isZenUI, 0, null); + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "isZenUI", "Value: " + isZenUI, 0, null); } } diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/ThemesFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/ThemesFragment.java index cc605709b..494926519 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/ThemesFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/ThemesFragment.java @@ -2,7 +2,6 @@ package ru.vtosters.lite.ui.fragments; import android.content.DialogInterface; import android.content.Intent; -import android.graphics.Color; import android.os.Build; import android.os.Bundle; import android.view.WindowManager; @@ -97,7 +96,7 @@ public class ThemesFragment extends MaterialPreferenceToolbarFragment { findPreference("accentprefs").setVisible(!ThemesUtils.isMonetTheme() && ThemesUtils.isMilkshake()); - if (AndroidUtils.isTablet()) { + if(AndroidUtils.isTablet()) { PreferenceCategory dockbarSettingsPreferenceCategory = (PreferenceCategory) findPreference("dockbarsett"); dockbarSettingsPreferenceCategory.setVisible(false); } @@ -113,7 +112,7 @@ public class ThemesFragment extends MaterialPreferenceToolbarFragment { new VkAlertDialog.Builder(requireContext()) .setTitle(AndroidUtils.getString("change_accent_color")) .setItems(titles, (dialog, which) -> { - switch (which) { + switch(which) { case 0: showColorPicker(); break; @@ -154,8 +153,8 @@ public class ThemesFragment extends MaterialPreferenceToolbarFragment { void showPalettesDialog() { final var manager = PalettesManager.getInstance(); final var titles = new String[manager.getPalettesCount()]; - if (titles.length > 0) { - for (int i = 0; i < titles.length; ++i) + if(titles.length > 0) { + for(int i = 0; i < titles.length; ++i) titles[i] = manager.getPalette(i).name; new VkAlertDialog.Builder(requireContext()) .setTitle(AndroidUtils.getString("select_palette")) @@ -178,7 +177,7 @@ public class ThemesFragment extends MaterialPreferenceToolbarFragment { LifecycleUtils.restartApplicationWithTimer(); } - private void switchFragment(Class fragmentClz) { + private void switchFragment(Class< ? extends FragmentImpl > fragmentClz) { var intent = new Navigator(fragmentClz) .b(requireContext()) .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/VKPayFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/VKPayFragment.java index d57f055ad..60a83f3ce 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/VKPayFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/VKPayFragment.java @@ -15,8 +15,9 @@ public class VKPayFragment extends FragmentImpl { public void start() { VKUIwrapper.setLink("https://vk.com/vkpay"); - Intent a2 = new Navigator(VKUIwrapper.class).b(getActivity()); - a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - startActivity(a2); + Intent intent = new Navigator(VKUIwrapper.class) + .b(getActivity()) + .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(intent); } } diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java index f475f355d..5b1ebf2f6 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java @@ -1,6 +1,5 @@ package ru.vtosters.lite.ui.fragments; -import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; @@ -9,6 +8,7 @@ import androidx.annotation.StringRes; import com.aefyr.tsg.g2.TelegramStickersService; import com.vk.about.AboutAppFragment; import com.vk.balance.BalanceFragment; +import com.vk.core.fragments.FragmentImpl; import com.vk.navigation.Navigator; import com.vk.notifications.settings.NotificationsSettingsFragment; import com.vk.webapp.fragments.PrivacyFragment; @@ -25,30 +25,19 @@ import com.vtosters.lite.general.fragments.SettingsGeneralFragment; import com.vtosters.lite.ui.MaterialSwitchPreference; import ru.vtosters.lite.concurrent.VTExecutors; import ru.vtosters.lite.hooks.ui.SystemThemeChangerHook; +import ru.vtosters.lite.ui.PreferenceFragmentUtils; import ru.vtosters.lite.ui.components.DockBarEditorManager; import ru.vtosters.lite.ui.components.SuperAppEditorManager; import ru.vtosters.lite.ui.dialogs.OTADialog; import ru.vtosters.lite.ui.fragments.tgstickers.StickersFragment; -import ru.vtosters.lite.utils.AndroidUtils; -import ru.vtosters.lite.utils.SSFSUtils; -import ru.vtosters.lite.utils.ThemesUtils; - -import static ru.vtosters.lite.ui.PreferencesUtil.*; -import static ru.vtosters.lite.utils.About.getBuildNumber; -import static ru.vtosters.lite.utils.About.getCommitLink; -import static ru.vtosters.lite.utils.AccountManagerUtils.*; -import static ru.vtosters.lite.utils.AndroidUtils.*; -import static ru.vtosters.lite.utils.GmsUtils.isGmsInstalled; -import static ru.vtosters.lite.utils.ImageUtils.getDrawableFromUrl; -import static ru.vtosters.lite.utils.Preferences.*; -import static ru.vtosters.lite.utils.ThemesUtils.*; -import static ru.vtosters.lite.utils.VTVerifications.vtverif; +import ru.vtosters.lite.utils.*; public class VTSettings extends MaterialPreferenceToolbarFragment { - public static String getValAsString(@StringRes int strRes, Boolean value) { - if (disableSettingsSumms()) return null; - if (value) { + public static String getValAsString(@StringRes int strRes, Boolean value) { + if(Preferences.disableSettingsSumms()) return null; + + if(value) { return AndroidUtils.getString(strRes) + ": " + AndroidUtils.getString(R.string.vtlsettenabled); } @@ -56,44 +45,44 @@ public class VTSettings extends MaterialPreferenceToolbarFragment { } public static String getSSFSsumm() { - if (disableSettingsSumms()) return null; + if(Preferences.disableSettingsSumms()) return null; - if (hasSpecialVerif()) + if(Preferences.hasSpecialVerif()) return AndroidUtils.getString(R.string.vtlssfssumm) + ": " + AndroidUtils.getString(R.string.vtlsettverifyes); return AndroidUtils.getString(R.string.vtlssfssumm) + ": " + AndroidUtils.getString(R.string.vtlsettverifno); } public static String getDocksumm() { - if (disableSettingsSumms()) return null; + if(Preferences.disableSettingsSumms()) return null; return AndroidUtils.getString(R.string.vtldocksumm) + ": " + DockBarEditorManager.getInstance().getSelectedTabs().size(); } public static String getTGSsumm() { - if (disableSettingsSumms()) return null; + if(Preferences.disableSettingsSumms()) return null; return AndroidUtils.getString(R.string.vtltgssumm) + ": " + TelegramStickersService.getInstance(AndroidUtils.getGlobalContext()).getPacksListReference().size(); } public static String getProxysumm() { - var type = getPrefsValue("proxy"); + var type = AndroidUtils.getPrefsValue("proxy"); - if (disableSettingsSumms()) return null; + if(Preferences.disableSettingsSumms()) return null; - if (type.equals("noproxy") || type.isEmpty()) + if(type.equals("noproxy") || type.isEmpty()) type = AndroidUtils.getString(R.string.vtlsettdisabled); return AndroidUtils.getString(R.string.vtlproxysumm) + ": " + type; } public static String getThemesumm() { - if (disableSettingsSumms()) return null; + if(Preferences.disableSettingsSumms()) return null; String str; String[] themeTypeName = AndroidUtils.getArray("theme_type_name"); - switch (getPrefsValue("currsystemtheme")) { + switch(AndroidUtils.getPrefsValue("currsystemtheme")) { default: case "system": str = themeTypeName[0]; @@ -110,45 +99,31 @@ public class VTSettings extends MaterialPreferenceToolbarFragment { } public static String getSuperappsumm() { - if (disableSettingsSumms()) return null; + if(Preferences.disableSettingsSumms()) return null; return AndroidUtils.getString(R.string.elements_hidden_count) + ": " + SuperAppEditorManager.getInstance().getDisabledTabs().size(); } private void switchTheme(boolean isDarkTheme) { - setTheme(isDarkTheme ? getDarkTheme() : getLightTheme(), requireActivity()); + ThemesUtils.setTheme(isDarkTheme ? ThemesUtils.getDarkTheme() : ThemesUtils.getLightTheme(), requireActivity()); } @Override public void onCreate(Bundle bundle) { super.onCreate(bundle); - var feedsumm = getValAsString(R.string.vtlfeedsumm, ads()); - var docksumm = getDocksumm(); - var msgsumm = isTablet() ? getValAsString(R.string.autotranslate_title, autotranslate()) : getValAsString(R.string.vtlmsgsumm, vkme()); - var activitysumm = getValAsString(R.string.vtlactivitysumm, offline()); - var themessumm = getValAsString(R.string.vtlthemessumm, navbar()); - var tgssumm = getTGSsumm(); - var superapp = getSuperappsumm(); - var mediasumm = getValAsString(R.string.vtlinterfacesumm, shortinfo()); - var interfacesumm = getValAsString(R.string.showstories, stories()); - var proxysumm = getProxysumm(); - var othersumm = getValAsString(R.string.vtlothersumm, vtverif()); - var ssfs = getSSFSsumm(); - var about = "Commit: " + getBuildNumber(); - this.addPreferencesFromResource(R.xml.empty); - addPreferenceDrawable( - this, + var accountSwitcher = PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), "account_switcher", - getUsername(), + AccountManagerUtils.getUsername(), requireContext().getString(R.string.vtllogout), requireContext().getDrawable(R.drawable.ic_user_circle_outline_28), preference -> { try { VKAuth.a("logout", false); - } catch (Exception ignored) { + } catch(Exception ignored) { } var intent = new Intent(requireContext(), MainActivity.class) @@ -158,310 +133,475 @@ public class VTSettings extends MaterialPreferenceToolbarFragment { requireContext().startActivity(intent); return false; - }); + }); VTExecutors.getIoScheduler().a(() -> { - var icon = getDrawableFromUrl(getUserPhoto(), 0, true, true); - if (icon == null) return; + var icon = ImageUtils.getDrawableFromUrl(AccountManagerUtils.getUserPhoto(), 0, true, true); + if(icon == null) return; requireActivity().runOnUiThread(() -> { - findPreference("account_switcher").setIcon(icon); + accountSwitcher.setIcon(icon); }); }); - addPreference(this, "", requireContext().getString(R.string.vtssfs), ssfs, R.drawable.ic_link_circle_outline_28, preference -> { - Context context = requireContext(); - VKUIwrapper.setLink(SSFSUtils.getSSFSLink()); - Intent a2 = new Navigator(VKUIwrapper.class).b(context); - a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(a2); - return false; - }); + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.vtssfs), + getSSFSsumm(), + R.drawable.ic_link_circle_outline_28, + preference -> { + VKUIwrapper.setLink(SSFSUtils.getSSFSLink()); + launchFragment(VKUIwrapper.class); + return false; + } + ); - addPreferenceCategory(this, requireContext().getString(R.string.appearance_theme_use_system)); + PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), R.string.appearance_theme_use_system); - if (Build.VERSION.SDK_INT >= 28 && milkshake()) { - addListPreferenceIcon( - this, + if(Build.VERSION.SDK_INT >= 28 && Preferences.milkshake()) { + PreferenceFragmentUtils.addListPreference( + getPreferenceScreen(), "currsystemtheme", "system", requireContext().getString(R.string.appearance_theme_use_system), - R.drawable.ic_palette_outline_28, getThemesumm(), + R.drawable.ic_palette_outline_28, + getThemesumm(), AndroidUtils.getArray("theme_type_name_checkbox"), - new String[]{"system", "dark", "light"}, + new String[] { "system", "dark", "light" }, (preference, o) -> { String value = (String) o; - if (!value.equals("system")) { + if(!value.equals("system")) { var theme = value.equals("dark") ? ThemesUtils.getDarkTheme() : ThemesUtils.getLightTheme(); ThemesUtils.applyTheme(theme); } - edit().putString("currsystemtheme", value).commit(); + AndroidUtils.edit().putString("currsystemtheme", value).commit(); SystemThemeChangerHook.onThemeChanged(getResources().getConfiguration()); return true; }); } else { - addMaterialSwitchPreference(this, "", requireContext().getString(R.string.vtsettdarktheme), "", R.drawable.ic_palette_outline_28, isDarkTheme(), (preference, o) -> { - final var switchPreference = (MaterialSwitchPreference) preference; - final var isDarkTheme = !switchPreference.isChecked(); - switchTheme(isDarkTheme); - return true; - }); + PreferenceFragmentUtils.addMaterialSwitchPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.vtsettdarktheme), + "", + R.drawable.ic_palette_outline_28, + ThemesUtils.isDarkTheme(), + (preference, o) -> { + final var switchPreference = (MaterialSwitchPreference) preference; + final var isDarkTheme = !switchPreference.isChecked(); + switchTheme(isDarkTheme); + return true; + } + ); } - if (!isGmsInstalled()) { - addPreferenceCategory(this, requireContext().getString(R.string.gmsname)); + if(!GmsUtils.isGmsInstalled()) { + PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), R.string.gmsname); - addPreference(this, "", requireContext().getString(R.string.installgms), "", R.drawable.ic_about_outline_28, preference -> { - Context context = requireContext(); - Intent a2 = new Navigator(InstallGMSFragment.class).b(context); - a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(a2); - return false; - }); + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.installgms), + "", + R.drawable.ic_about_outline_28, + preference -> { + launchFragment(InstallGMSFragment.class); + return false; + } + ); } - if (devmenu()) { - addPreferenceCategory(this, requireContext().getString(R.string.sett_debug)); + if(Preferences.devmenu()) { + PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), R.string.sett_debug); - addPreference(this, "", requireContext().getString(R.string.sett_debug), "", R.drawable.ic_bug_outline_28, preference -> { - Context context = requireContext(); - Intent a2 = new Navigator(SettingsDebugFragment.class).b(context); - a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(a2); - return false; - }); + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.sett_debug), + "", + R.drawable.ic_bug_outline_28, + preference -> { + launchFragment(SettingsDebugFragment.class); + return false; + } + ); - addMaterialSwitchPreference(this, "ssl", requireContext().getString(R.string.debug_developer_force_ssl), requireContext().getString(R.string.debug_developer_force_ssl_summary), R.drawable.ic_globe_outline_28, true, (preference, o) -> { - boolean value = (boolean) o; - edit().putBoolean("ssl", value).commit(); - return true; - }); + PreferenceFragmentUtils.addMaterialSwitchPreference( + getPreferenceScreen(), + "ssl", + requireContext().getString(R.string.debug_developer_force_ssl), + requireContext().getString(R.string.debug_developer_force_ssl_summary), + R.drawable.ic_globe_outline_28, + true, + (preference, o) -> { + AndroidUtils.edit().putBoolean("ssl", (boolean) o).commit(); + return true; + } + ); - if (dev() && isValidSignature()) { - addMaterialSwitchPreference(this, "autoupdates", requireContext().getString(R.string.checkupdates), "", R.drawable.ic_camera_switch_outline_24, true, (preference, o) -> { - boolean value = (boolean) o; - edit().putBoolean("autoupdates", value).commit(); - return true; - }); + if(Preferences.dev() && Preferences.isValidSignature()) { + PreferenceFragmentUtils.addMaterialSwitchPreference( + getPreferenceScreen(), + "autoupdates", + requireContext().getString(R.string.checkupdates), + "", + R.drawable.ic_camera_switch_outline_24, + true, + (preference, o) -> { + boolean value = (boolean) o; + AndroidUtils.edit().putBoolean("autoupdates", value).commit(); + return true; + } + ); } } - addPreferenceCategory(this, requireContext().getString(R.string.vtsettaccount)); + PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), R.string.vtsettaccount); - addPreference(this, "", requireContext().getString(R.string.vkconnect), "", R.drawable.ic_user_circle_outline_28, preference -> { - Context context = requireContext(); - VKUIwrapper.officalLinks("account"); - Intent a2 = new Navigator(VKUIwrapper.class).b(context); - a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(a2); - return false; - }); - - addPreference(this, "", requireContext().getString(R.string.privacy_settings), "", R.drawable.ic_privacy_outline_28, preference -> { - Context context = requireContext(); - Intent a2 = new Navigator(PrivacyFragment.class).b(context); - a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(a2); - return false; - }); - - addPreference(this, "", requireContext().getString(R.string.sett_account), "", R.drawable.ic_user_outline_28, preference -> { - Context context = requireContext(); - Intent a2 = new Navigator(SettingsAccountFragment.class).b(context); - a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(a2); - return false; - }); - - if (isVKTester()) { - addPreference(this, "", requireContext().getString(R.string.bugs), "", R.drawable.ic_bug_outline_28, preference -> { - Context context = requireContext(); - VKUIwrapper.officalLinks("bugs"); - Intent a2 = new Navigator(VKUIwrapper.class).b(context); - a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(a2); - return false; - }); - } - - addPreferenceCategory(this, requireContext().getString(R.string.vtlvksettings)); - - addPreference(this, "", requireContext().getString(R.string.sett_general), "", R.drawable.ic_settings_outline_28, preference -> { - Context context = requireContext(); - Intent a2 = new Navigator(SettingsGeneralFragment.class).b(context); - a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(a2); - return false; - }); - - addPreference(this, "", requireContext().getString(R.string.blacklist), "", R.drawable.ic_users_outline_28, preference -> { - Context context = requireContext(); - Intent a2 = new Navigator(BlacklistFragment.class).b(context); - a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(a2); - return false; - }); - - addPreference(this, "", requireContext().getString(R.string.sett_notifications), "", R.drawable.ic_menu_notification_outline_28, preference -> { - Context context = requireContext(); - Intent a2 = new Navigator(NotificationsSettingsFragment.class).b(context); - a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(a2); - return false; - }); - - if (VKAccountManager.d().isMusicSubs()) { - addPreference(this, "", requireContext().getString(R.string.subscription_music), "", R.drawable.ic_music_outline_28, preference -> { - Context context = requireContext(); - Intent a2 = new Navigator(MusicSubscriptionControlFragment.class).b(context); - a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(a2); - return false; - }); - } - - addPreference(this, "", requireContext().getString(R.string.votes), "", R.drawable.ic_coins_outline_28, preference -> { - Context context = requireContext(); - Intent a2 = new Navigator(BalanceFragment.class).b(context); - a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(a2); - return false; - }); - - addPreferenceCategory(this, requireContext().getString(R.string.vtsettmod)); - - if (vkme()) { - addPreference(this, "", requireContext().getString(R.string.warning), requireContext().getString(R.string.vkme_mode_info), R.drawable.ic_about_outline_28, preference -> false); - } else { - addPreference(this, "", requireContext().getString(R.string.vtlfeed), feedsumm, R.drawable.ic_newsfeed_outline_28, preference -> { - Context context = requireContext(); - Intent a2 = new Navigator(FeedFragment.class).b(context); - a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(a2); - return false; - }); - } - - addPreference(this, "", requireContext().getString(R.string.vtlmedia), mediasumm, R.drawable.ic_media_outline_28, preference -> { - Context context = requireContext(); - Intent a2 = new Navigator(MediaFragment.class).b(context); - a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(a2); - return false; - }); - - addPreference(this, "", requireContext().getString(R.string.vtlmessages), msgsumm, R.drawable.ic_message_outline_28, preference -> { - Context context = requireContext(); - Intent a2 = new Navigator(MessagesFragment.class).b(context); - a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(a2); - return false; - }); - - addPreference(this, "", requireContext().getString(R.string.vtltgs), tgssumm, R.drawable.ic_telegram_outline_28, preference -> { - Context context = requireContext(); - Intent a2 = new Navigator(StickersFragment.class).b(context); - a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(a2); - return false; - }); - - addPreference(this, "", requireContext().getString(R.string.vtlthemes), themessumm, R.drawable.ic_write_outline_28, preference -> { - Context context = requireContext(); - Intent a2 = new Navigator(ThemesFragment.class).b(context); - a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(a2); - return false; - }); - - addPreference(this, "", requireContext().getString(R.string.vtlinterface), interfacesumm, R.drawable.ic_interface_outline_28, preference -> { - Context context = requireContext(); - Intent a2 = new Navigator(InterfaceFragment.class).b(context); - a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(a2); - return false; - }); - - if (!vkme()) { - if (!isTablet()) { - addPreference(this, "", requireContext().getString(R.string.dockbar_editor), docksumm, R.drawable.ic_list_outline_28, preference -> { - Context context = requireContext(); - Intent intent = new Navigator(DockBarEditorFragment.class).b(context); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(intent); + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.vkconnect), + "", + R.drawable.ic_user_circle_outline_28, + preference -> { + VKUIwrapper.officalLinks("account"); + launchFragment(VKUIwrapper.class); return false; - }); + } + ); - if (milkshake() && superapp()) { - addPreference(this, "", requireContext().getString(R.string.superapp_editor), superapp, R.drawable.ic_services_outline_28, (preference) -> { - Context context = requireContext(); - Intent intent = new Navigator(SuperAppEditorFragment.class).b(context); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(intent); - return true; - }); + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.privacy_settings), + "", + R.drawable.ic_privacy_outline_28, + preference -> { + launchFragment(PrivacyFragment.class); + return false; + } + ); + + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.sett_account), + "", + R.drawable.ic_user_outline_28, + preference -> { + launchFragment(SettingsAccountFragment.class); + return false; + } + ); + + if(AccountManagerUtils.isVKTester()) { + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.bugs), + "", + R.drawable.ic_bug_outline_28, + preference -> { + VKUIwrapper.officalLinks("bugs"); + launchFragment(VKUIwrapper.class); + return false; + } + ); + } + + PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), requireContext().getString(R.string.vtlvksettings)); + + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.sett_general), + "", + R.drawable.ic_settings_outline_28, + preference -> { + launchFragment(SettingsGeneralFragment.class); + return false; + } + ); + + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.blacklist), + "", + R.drawable.ic_users_outline_28, + preference -> { + launchFragment(BlacklistFragment.class); + return false; + } + ); + + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.sett_notifications), + "", + R.drawable.ic_menu_notification_outline_28, + preference -> { + launchFragment(NotificationsSettingsFragment.class); + return false; + } + ); + + if(VKAccountManager.d().isMusicSubs()) { + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.subscription_music), + "", + R.drawable.ic_music_outline_28, + preference -> { + launchFragment(MusicSubscriptionControlFragment.class); + return false; + } + ); + } + + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.votes), + "", + R.drawable.ic_coins_outline_28, + preference -> { + launchFragment(BalanceFragment.class); + return false; + } + ); + + PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), requireContext().getString(R.string.vtsettmod)); + + if(Preferences.vkme()) { + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.warning), + requireContext().getString(R.string.vkme_mode_info), + R.drawable.ic_about_outline_28, + preference -> false + ); + } else { + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.vtlfeed), + getValAsString(R.string.vtlfeedsumm, Preferences.ads()), + R.drawable.ic_newsfeed_outline_28, + preference -> { + launchFragment(FeedFragment.class); + return false; + } + ); + } + + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.vtlmedia), + getValAsString(R.string.vtlinterfacesumm, Preferences.shortinfo()), + R.drawable.ic_media_outline_28, + preference -> { + launchFragment(MediaFragment.class); + return false; + } + ); + + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.vtlmessages), + AndroidUtils.isTablet() + ? getValAsString(R.string.autotranslate_title, Preferences.autotranslate()) + : getValAsString(R.string.vtlmsgsumm, Preferences.vkme()), + R.drawable.ic_message_outline_28, + preference -> { + launchFragment(MessagesFragment.class); + return false; + } + ); + + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.vtltgs), + getTGSsumm(), + R.drawable.ic_telegram_outline_28, + preference -> { + launchFragment(StickersFragment.class); + return false; + } + ); + + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.vtlthemes), + getThemesumm(), + R.drawable.ic_write_outline_28, + preference -> { + launchFragment(ThemesFragment.class); + return false; + } + ); + + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.vtlinterface), + getValAsString(R.string.showstories, Preferences.stories()), + R.drawable.ic_interface_outline_28, + preference -> { + launchFragment(InterfaceFragment.class); + return false; + } + ); + + if(!Preferences.vkme()) { + if(!AndroidUtils.isTablet()) { + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.dockbar_editor), + getDocksumm(), + R.drawable.ic_list_outline_28, + preference -> { + launchFragment(DockBarEditorFragment.class); + return false; + } + ); + + if(Preferences.milkshake() && Preferences.superapp()) { + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.superapp_editor), + getSuperappsumm(), + R.drawable.ic_services_outline_28, + (preference) -> { + launchFragment(SuperAppEditorFragment.class); + return true; + } + ); } } } - addPreference(this, "", requireContext().getString(R.string.vtlactivity), activitysumm, R.drawable.ic_write_outline_28_new_accent, preference -> { - Context context = requireContext(); - Intent a2 = new Navigator(ActivityFragment.class).b(context); - a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(a2); - return false; - }); + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.vtlactivity), + getValAsString(R.string.vtlactivitysumm, Preferences.offline()), + R.drawable.ic_write_outline_28_new_accent, + preference -> { + launchFragment(ActivityFragment.class); + return false; + } + ); - addPreference(this, "", requireContext().getString(R.string.vtlproxy), proxysumm, R.drawable.ic_globe_outline_28, preference -> { - Context context = requireContext(); - Intent a2 = new Navigator(ProxySettingsFragment.class).b(context); - a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(a2); - return false; - }); + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.vtlproxy), + getProxysumm(), + R.drawable.ic_globe_outline_28, + preference -> { + launchFragment(ProxySettingsFragment.class); + return false; + } + ); - addPreference(this, "", requireContext().getString(R.string.vtlother), othersumm, R.drawable.ic_more_horizontal_28, preference -> { - Context context = requireContext(); - Intent a2 = new Navigator(OtherFragment.class).b(context); - a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(a2); - return false; - }); + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.vtlother), + getValAsString(R.string.vtlothersumm, VTVerifications.vtverif()), + R.drawable.ic_more_horizontal_28, + preference -> { + launchFragment(OtherFragment.class); + return false; + } + ); - addPreferenceCategory(this, requireContext().getString(R.string.vtsettaboutmod)); + PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), requireContext().getString(R.string.vtsettaboutmod)); - addPreference(this, "", requireContext().getString(R.string.menu_about), about, R.drawable.ic_about_outline_28, preference -> { - Context context = requireContext(); - Intent a2 = new Navigator(AboutAppFragment.class).b(context); - a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(a2); - return false; - }); + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.menu_about), + "Commit: " + About.getBuildNumber(), + R.drawable.ic_about_outline_28, + preference -> { + launchFragment(AboutAppFragment.class); + return false; + } + ); - addPreference(this, "", requireContext().getString(R.string.opencommit), "", R.drawable.ic_link_outline_28, preference -> { - requireContext().startActivity(new Intent("android.intent.action.VIEW").setData(Uri.parse(getCommitLink()))); - return false; - }); + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.opencommit), + "", + R.drawable.ic_link_outline_28, + preference -> { + requireContext().startActivity(new Intent(Intent.ACTION_VIEW).setData(Uri.parse(About.getCommitLink()))); + return false; + } + ); + - addPreference(this, "", requireContext().getString(R.string.vtfaq), requireContext().getString(R.string.vtfaqsumm), R.drawable.ic_help_outline_28, preference -> { - requireContext().startActivity(new Intent("android.intent.action.VIEW").setData(Uri.parse("https://t.me/s/vtosters_faq"))); - return false; - }); + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.vtfaq), + requireContext().getString(R.string.vtfaqsumm), + R.drawable.ic_help_outline_28, + preference -> { + requireContext().startActivity(new Intent(Intent.ACTION_VIEW).setData(Uri.parse("https://t.me/s/vtosters_faq"))); + return false; + } + ); - addPreference(this, "", requireContext().getString(R.string.reportbug), requireContext().getString(R.string.reportbugsumm), R.drawable.ic_bug_outline_28, preference -> { - requireContext().startActivity(new Intent("android.intent.action.VIEW").setData(Uri.parse("https://github.com/vtosters/lite/issues"))); - return false; - }); + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.reportbug), + requireContext().getString(R.string.reportbugsumm), + R.drawable.ic_bug_outline_28, + preference -> { + requireContext().startActivity(new Intent(Intent.ACTION_VIEW).setData(Uri.parse("https://github.com/vtosters/lite/issues"))); + return false; + } + ); - if (isValidSignature()) { - addPreferenceCategory(this, requireContext().getString(R.string.updates)); + if(Preferences.isValidSignature()) { + PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), requireContext().getString(R.string.updates)); - addPreference(this, "", requireContext().getString(R.string.checkforupdates), "", R.drawable.ic_download_outline_28, preference -> { - OTADialog.checkUpdates(getActivity()); - return false; - }); + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + requireContext().getString(R.string.checkforupdates), + "", + R.drawable.ic_download_outline_28, + preference -> { + OTADialog.checkUpdates(getActivity()); + return false; + } + ); } } + private void launchFragment(Class< ? extends FragmentImpl > fragmentClz) { + Intent intent = new Navigator(fragmentClz) + .b(requireContext()) + .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + requireContext().startActivity(intent); + } + @Override public void onResume() { super.onResume(); diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/tgstickers/StickersPreferencesFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/tgstickers/StickersPreferencesFragment.java index f48363c88..90a9a2e4b 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/tgstickers/StickersPreferencesFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/tgstickers/StickersPreferencesFragment.java @@ -1,15 +1,13 @@ package ru.vtosters.lite.ui.fragments.tgstickers; import android.os.Bundle; - import com.aefyr.tsg.g2.stickersgrabber.TelegramStickersGrabber; import com.vk.core.util.ToastUtils; import com.vtosters.lite.R; import com.vtosters.lite.general.fragments.MaterialPreferenceToolbarFragment; - import ru.vtosters.lite.tgs.TGPref; import ru.vtosters.lite.tgs.TGRoot; -import ru.vtosters.lite.ui.PreferencesUtil; +import ru.vtosters.lite.ui.PreferenceFragmentUtils; public class StickersPreferencesFragment extends MaterialPreferenceToolbarFragment { @@ -20,17 +18,17 @@ public class StickersPreferencesFragment extends MaterialPreferenceToolbarFragme int vtosterXml = R.xml.empty; addPreferencesFromResource(vtosterXml); - PreferencesUtil.addPreferenceCategory(this, requireContext().getString(R.string.sprefsstickers)); - PreferencesUtil.addPreference(this, "", requireContext().getString(R.string.sprefsdelkey), "", 0, preference -> { + PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), requireContext().getString(R.string.sprefsstickers)); + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", R.string.sprefsdelkey, 0, 0, preference -> { TGPref.setTGBotKey(null); ToastUtils.a(requireContext().getString(R.string.sprefsdelkey2)); return false; }); - PreferencesUtil.addPreferenceCategory(this, requireContext().getString(R.string.sprefsnetwork)); - PreferencesUtil.addListPreference(this, "VTGS:CM", "0", requireContext().getString(R.string.sprefsctype), new CharSequence[]{ + PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), requireContext().getString(R.string.sprefsnetwork)); + PreferenceFragmentUtils.addListPreference(getPreferenceScreen(), "VTGS:CM", "0", requireContext().getString(R.string.sprefsctype), new CharSequence[] { requireContext().getString(R.string.ctypedirect), requireContext().getString(R.string.ctypesocks) - }, new String[]{ + }, new String[] { "0", "2" }); @@ -40,40 +38,40 @@ public class StickersPreferencesFragment extends MaterialPreferenceToolbarFragme String newData = (String) o; TGPref.setTGConnectMethod(Integer.parseInt(newData)); TelegramStickersGrabber.updateURLs(); - preference.setTitle(TGRoot.getSummary()); // setTitle + preference.setTitle(TGRoot.getSummary()); return true; }); - PreferencesUtil.addPreferenceCategory(this, requireContext().getString(R.string.ssocks)); + PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), R.string.ssocks); - PreferencesUtil.addEditTextPreference(this, "tg_proxy_host", requireContext().getString(R.string.ssockshost), (preference, o) -> { - TGPref.setTGProxyIP((String) o); + PreferenceFragmentUtils.addEditTextPreference(getPreferenceScreen(), "tg_proxy_host", R.string.ssockshost, (preference, o) -> { + TGPref.setTGProxyIP(o); return true; }); - PreferencesUtil.addEditTextPreference(this, "tg_proxy_port", requireContext().getString(R.string.ssocksport), (preference, o) -> { + PreferenceFragmentUtils.addEditTextPreference(getPreferenceScreen(), "tg_proxy_port", R.string.ssocksport, (preference, o) -> { try { - TGPref.setTGProxyPort(Integer.parseInt((String) o)); + TGPref.setTGProxyPort(Integer.parseInt(o)); return true; - } catch (Exception e) { + } catch(Exception e) { ToastUtils.a(requireContext().getString(R.string.ssockswport)); return false; } }); - PreferencesUtil.addMaterialSwitchPreference(this, "tg_proxy_auth", requireContext().getString(R.string.ssocksauth), "", 0, false, (preference, o) -> { + PreferenceFragmentUtils.addMaterialSwitchPreference(getPreferenceScreen(), "tg_proxy_auth", requireContext().getString(R.string.ssocksauth), "", 0, false, (preference, o) -> { boolean value = (boolean) o; - findPreference("tg_proxy_login").setEnabled(value); // findPreference("tg_proxy_login").setEnabled(value); - findPreference("tg_proxy_pass").setEnabled(value); // findPreference("tg_proxy_pass").setEnabled(booleanValue); + findPreference("tg_proxy_login").setEnabled(value); + findPreference("tg_proxy_pass").setEnabled(value); TGPref.setTGProxyPassEnabled(value); return true; }); - PreferencesUtil.addEditTextPreference(this, "tg_proxy_login", requireContext().getString(R.string.ssockslogin), (preference, o) -> { - TGPref.setTGProxyUserPass((String) o, TGPref.getTGProxyPass()); + PreferenceFragmentUtils.addEditTextPreference(getPreferenceScreen(), "tg_proxy_login", R.string.ssockslogin, (preference, o) -> { + TGPref.setTGProxyUserPass(o, TGPref.getTGProxyPass()); return true; }); - PreferencesUtil.addEditTextPreference(this, "tg_proxy_pass", requireContext().getString(R.string.ssockspass), (preference, o) -> { - TGPref.setTGProxyUserPass(TGPref.getTGProxyUser(), (String) o); + PreferenceFragmentUtils.addEditTextPreference(getPreferenceScreen(), "tg_proxy_pass", R.string.ssockspass, (preference, o) -> { + TGPref.setTGProxyUserPass(TGPref.getTGProxyUser(), o); return true; }); diff --git a/app/src/main/java/ru/vtosters/lite/ui/wallpapers/WallpaperMenuFragment.java b/app/src/main/java/ru/vtosters/lite/ui/wallpapers/WallpaperMenuFragment.java index cd48bdcfd..eac75f554 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/wallpapers/WallpaperMenuFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/wallpapers/WallpaperMenuFragment.java @@ -1,36 +1,28 @@ package ru.vtosters.lite.ui.wallpapers; -import static ru.vtosters.lite.ui.wallpapers.WallpapersHooks.getDimmingSummary; -import static ru.vtosters.lite.ui.wallpapers.WallpapersHooks.getMosaicSummary; -import static ru.vtosters.lite.ui.wallpapers.WallpapersHooks.getRadiusSummary; -import static ru.vtosters.lite.ui.wallpapers.WallpapersHooks.getWallpaperFile; -import static ru.vtosters.lite.ui.wallpapers.WallpapersHooks.removeWallpaper; -import static ru.vtosters.lite.ui.wallpapers.WallpapersHooks.requestUpdateWallpaper; -import static ru.vtosters.lite.utils.AndroidUtils.edit; -import static ru.vtosters.lite.utils.Preferences.getBoolValue; -import static ru.vtosters.lite.utils.Preferences.hasVerification; - import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.net.Uri; import android.os.Bundle; import android.widget.Toast; - import androidx.annotation.Nullable; import androidx.preference.ListPreference; - import com.vtosters.lite.R; import com.vtosters.lite.general.fragments.MaterialPreferenceToolbarFragment; import com.vtosters.lite.im.ImEngineProvider; +import ru.vtosters.lite.ui.PreferenceFragmentUtils; +import ru.vtosters.lite.utils.AndroidUtils; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import ru.vtosters.lite.ui.PreferencesUtil; -import ru.vtosters.lite.utils.AndroidUtils; +import static ru.vtosters.lite.ui.wallpapers.WallpapersHooks.*; +import static ru.vtosters.lite.utils.AndroidUtils.edit; +import static ru.vtosters.lite.utils.Preferences.getBoolValue; +import static ru.vtosters.lite.utils.Preferences.hasVerification; public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment { @@ -55,20 +47,20 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment { addPreferencesFromResource(R.xml.empty); - PreferencesUtil.addPreferenceCategory(this, requireContext().getString(R.string.vkim_settings_appearance_chat_preview_title)); + PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), requireContext().getString(R.string.vkim_settings_appearance_chat_preview_title)); mWPPreviewPref = new WallpaperPreferences(getContext()); mWPPreviewPref.setIcon(null); mWPPreviewPref.setIconSpaceReserved(false); getPreferenceScreen().addPreference(mWPPreviewPref); - PreferencesUtil.addPreference(this, "wp_set", requireContext().getString(R.string.wallpaper_select), requireContext().getString(R.string.wallpaper_from_gallery), R.drawable.ic_picture_outline_28, preference -> { + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "wp_set", requireContext().getString(R.string.wallpaper_select), requireContext().getString(R.string.wallpaper_from_gallery), R.drawable.ic_picture_outline_28, preference -> { startActivityForResult(new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI), 1488); removeStickCache(); return true; }); - PreferencesUtil.addPreference(this, "wp_clear", requireContext().getString(R.string.wallpaper_remove), "", R.drawable.ic_delete_outline_28, preference -> { + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "wp_clear", requireContext().getString(R.string.wallpaper_remove), "", R.drawable.ic_delete_outline_28, preference -> { removeWallpaper(); requestUpdateWallpaper(); mWPPreviewPref.redraw(); @@ -76,30 +68,30 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment { return true; }); - PreferencesUtil.addPreferenceCategory(this, requireContext().getString(R.string.vtlfilters)); + PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), requireContext().getString(R.string.vtlfilters)); if (!hasVerification() && !getBoolValue("dialogrecomm", false)) { - PreferencesUtil.addPreference(this, "", requireContext().getString(R.string.filters_warning), requireContext().getString(R.string.icons_warning_info), 0, preference -> { - requireContext().startActivity(new Intent("android.intent.action.VIEW").setData(Uri.parse("https://vtosters.app/donate/"))); + PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", requireContext().getString(R.string.filters_warning), requireContext().getString(R.string.icons_warning_info), 0, preference -> { + requireContext().startActivity(new Intent(Intent.ACTION_VIEW).setData(Uri.parse("https://vtosters.app/donate/"))); return false; }); } - PreferencesUtil.addListPreference(this, "msg_blur_radius", "disabled", requireContext().getString(R.string.filter_blur), AndroidUtils.getArray(R.array.filter_types), new String[]{ + PreferenceFragmentUtils.addListPreference(getPreferenceScreen(), "msg_blur_radius", "disabled", requireContext().getString(R.string.filter_blur), AndroidUtils.getArray(R.array.filter_types), new String[]{ "disabled", "low", "med", "high" }); - PreferencesUtil.addListPreference(this, "msg_dim", "off", requireContext().getString(R.string.filter_dim), AndroidUtils.getArray(R.array.filter_dim_types), new String[]{ + PreferenceFragmentUtils.addListPreference(getPreferenceScreen(), "msg_dim", "off", requireContext().getString(R.string.filter_dim), AndroidUtils.getArray(R.array.filter_dim_types), new String[]{ "off", "dim_black", "dim_white" }); - PreferencesUtil.addListPreference(this, "msg_mosaic", "disabled", requireContext().getString(R.string.filter_mosaic), AndroidUtils.getArray(R.array.filter_types), new String[]{ + PreferenceFragmentUtils.addListPreference(getPreferenceScreen(), "msg_mosaic", "disabled", requireContext().getString(R.string.filter_mosaic), AndroidUtils.getArray(R.array.filter_types), new String[]{ "disabled", "low", "med", "high" }); if (hasVerification()) { - PreferencesUtil.addMaterialSwitchPreference(this, "msg_monochrome", requireContext().getString(R.string.filter_monochrome), "", 0, false, (preference, o) -> { + PreferenceFragmentUtils.addMaterialSwitchPreference(getPreferenceScreen(), "msg_monochrome", requireContext().getString(R.string.filter_monochrome), "", 0, false, (preference, o) -> { boolean value = (boolean) o; edit().putBoolean("msg_monochrome", value).commit(); requestUpdateWallpaper(); @@ -107,7 +99,7 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment { return true; }); - PreferencesUtil.addMaterialSwitchPreference(this, "msg_invert", requireContext().getString(R.string.filter_invert_colors), "", 0, false, (preference, o) -> { + PreferenceFragmentUtils.addMaterialSwitchPreference(getPreferenceScreen(), "msg_invert", requireContext().getString(R.string.filter_invert_colors), "", 0, false, (preference, o) -> { boolean value = (boolean) o; edit().putBoolean("msg_invert", value).commit(); requestUpdateWallpaper(); @@ -115,7 +107,7 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment { return true; }); - PreferencesUtil.addMaterialSwitchPreference(this, "msg_sepia", requireContext().getString(R.string.filter_sepia), "", 0, false, (preference, o) -> { + PreferenceFragmentUtils.addMaterialSwitchPreference(getPreferenceScreen(), "msg_sepia", requireContext().getString(R.string.filter_sepia), "", 0, false, (preference, o) -> { boolean value = (boolean) o; edit().putBoolean("msg_sepia", value).commit(); requestUpdateWallpaper(); @@ -123,7 +115,7 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment { return true; }); - PreferencesUtil.addMaterialSwitchPreference(this, "msg_emboss", requireContext().getString(R.string.filter_emboss), requireContext().getString(R.string.filter_maybe_lag), 0, false, (preference, o) -> { + PreferenceFragmentUtils.addMaterialSwitchPreference(getPreferenceScreen(), "msg_emboss", requireContext().getString(R.string.filter_emboss), requireContext().getString(R.string.filter_maybe_lag), 0, false, (preference, o) -> { boolean value = (boolean) o; edit().putBoolean("msg_emboss", value).commit(); requestUpdateWallpaper(); @@ -131,7 +123,7 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment { return true; }); - PreferencesUtil.addMaterialSwitchPreference(this, "msg_engrave", requireContext().getString(R.string.filter_engrave), requireContext().getString(R.string.filter_maybe_lag), 0, false, (preference, o) -> { + PreferenceFragmentUtils.addMaterialSwitchPreference(getPreferenceScreen(), "msg_engrave", requireContext().getString(R.string.filter_engrave), requireContext().getString(R.string.filter_maybe_lag), 0, false, (preference, o) -> { boolean value = (boolean) o; edit().putBoolean("msg_engrave", value).commit(); requestUpdateWallpaper(); @@ -139,7 +131,7 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment { return true; }); - PreferencesUtil.addMaterialSwitchPreference(this, "msg_flea", requireContext().getString(R.string.filter_flea), "", 0, false, (preference, o) -> { + PreferenceFragmentUtils.addMaterialSwitchPreference(getPreferenceScreen(), "msg_flea", requireContext().getString(R.string.filter_flea), "", 0, false, (preference, o) -> { boolean value = (boolean) o; edit().putBoolean("msg_flea", value).commit(); requestUpdateWallpaper(); @@ -147,7 +139,7 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment { return true; }); - PreferencesUtil.addMaterialSwitchPreference(this, "msg_snow", requireContext().getString(R.string.filter_flea), "", 0, false, (preference, o) -> { + PreferenceFragmentUtils.addMaterialSwitchPreference(getPreferenceScreen(), "msg_snow", requireContext().getString(R.string.filter_flea), "", 0, false, (preference, o) -> { boolean value = (boolean) o; edit().putBoolean("msg_snow", value).commit(); requestUpdateWallpaper(); @@ -156,7 +148,7 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment { }); } - PreferencesUtil.addMaterialSwitchPreference(this, "compresswp", requireContext().getString(R.string.compress_wallpaper_title), requireContext().getString(R.string.compress_wallpaper_summ), 0, true, (preference, o) -> { + PreferenceFragmentUtils.addMaterialSwitchPreference(getPreferenceScreen(), "compresswp", requireContext().getString(R.string.compress_wallpaper_title), requireContext().getString(R.string.compress_wallpaper_summ), 0, true, (preference, o) -> { boolean value = (boolean) o; edit().putBoolean("compresswp", value).commit(); requestUpdateWallpaper();