From 92e4c55cb5956839e19d809b5e9c937b8a42a030 Mon Sep 17 00:00:00 2001 From: gdlbo <41114720+gdlbo@users.noreply.github.com> Date: Wed, 15 Jun 2022 02:13:33 +0300 Subject: [PATCH] upgraded new settings refactored multi account counter --- .../lite/ui/fragments/VTSettings.java | 117 +++++++++++++++--- .../ui/fragments/dockbar/DockBarManager.java | 4 + .../multiaccount/MultiAccountManager.java | 20 ++- .../ru/vtosters/lite/utils/Preferences.java | 10 ++ .../java/ru/vtosters/lite/utils/Proxy.java | 1 - .../java/ru/vtosters/lite/utils/Themes.java | 1 - smali/res/values-ru/strings.xml | 21 ++++ smali/res/values/strings.xml | 20 +++ smali/res/xml/preferences_interface.xml | 4 + 9 files changed, 174 insertions(+), 24 deletions(-) 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 f8979d848..b16ddda26 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,16 +1,29 @@ package ru.vtosters.lite.ui.fragments; +import static bruhcollective.itaysonlab.libvkx.client.LibVKXClient.isIntegrationEnabled; +import static ru.vtosters.lite.f0x1d.VTVerifications.vtverif; +import static ru.vtosters.lite.ui.fragments.multiaccount.MultiAccountManager.getAccountPrefsCount; import static ru.vtosters.lite.ui.fragments.multiaccount.MultiAccountManager.getCurrentAccount; import static ru.vtosters.lite.ui.fragments.multiaccount.MultiAccountManager.withRegex; +import static ru.vtosters.lite.ui.fragments.multiaccount.MultiAccountManager.workingAccounts; +import static ru.vtosters.lite.utils.About.getBuildNumber; +import static ru.vtosters.lite.utils.About.getCommitLink; import static ru.vtosters.lite.utils.Globals.drawableFromUrl; import static ru.vtosters.lite.utils.Globals.edit; import static ru.vtosters.lite.utils.Globals.getContext; import static ru.vtosters.lite.utils.Globals.getIdentifier; +import static ru.vtosters.lite.utils.Globals.getPrefsValue; import static ru.vtosters.lite.utils.Globals.getString; import static ru.vtosters.lite.utils.Globals.getUserId; import static ru.vtosters.lite.utils.Globals.isGmsInstalled; import static ru.vtosters.lite.utils.Globals.restartApplicationWithTimer; +import static ru.vtosters.lite.utils.Preferences.ads; import static ru.vtosters.lite.utils.Preferences.devmenu; +import static ru.vtosters.lite.utils.Preferences.disableSettingsSumms; +import static ru.vtosters.lite.utils.Preferences.hasSpecialVerif; +import static ru.vtosters.lite.utils.Preferences.navbar; +import static ru.vtosters.lite.utils.Preferences.offline; +import static ru.vtosters.lite.utils.Preferences.shortinfo; import static ru.vtosters.lite.utils.Preferences.vkme; import static ru.vtosters.lite.utils.Themes.applyTheme; import static ru.vtosters.lite.utils.Themes.getDarkTheme; @@ -25,6 +38,7 @@ import android.net.Uri; import android.os.Build; import android.os.Bundle; +import com.aefyr.tsg.g2.TelegramStickersService; import com.vk.about.AboutAppFragment; import com.vk.identity.fragments.IdentityListFragment; import com.vk.navigation.Navigator; @@ -43,6 +57,7 @@ import com.vtosters.lite.fragments.money.music.control.subscription.MusicSubscri import ru.vtosters.lite.ui.PreferencesUtil; import ru.vtosters.lite.ui.fragments.dockbar.DockBarFragment; +import ru.vtosters.lite.ui.fragments.dockbar.DockBarManager; import ru.vtosters.lite.ui.fragments.multiaccount.MultiAccountFragment; import ru.vtosters.lite.ui.fragments.tgstickers.StickersFragment; @@ -56,15 +71,41 @@ public class VTSettings extends MaterialPreferenceToolbarFragment { String avatarUrl = withRegex(keyVKAccount, ".*\"photo\":\\{.*?:\"(.*?)\"\\}.*", "https://vk.com/images/camera_200.png").replace("\\/", "/"); String name = withRegex(keyVKAccount, ".*\"name\":\\{.*?:\"(.*?)\"\\}.*", ""); String id = "@id" + getUserId(); + + String feedsumm = getValAsString("vtlfeedsumm", ads()); + String docksumm = getDocksumm(); + String musicsumm = getValAsString("vtlmusicsumm", isIntegrationEnabled()); + String msgsumm = getValAsString("vtlmsgsumm", vkme()); + String activitysumm = getValAsString("vtlactivitysumm", !offline()); + String themessumm = getValAsString("vtlthemessumm", navbar()); + String tgssumm = getTGSsumm(); + String interfacesumm = getValAsString("vtlinterfacesumm", shortinfo()); + String proxysumm = getValAsString("vtlproxysumm", !getPrefsValue("proxy").equals("noproxy")); + String othersumm = getValAsString("vtlothersumm", vtverif()); + String multiaccsumm = getMultiAccsumm(); + String ssfs = getSSFSsumm(); + String about = "Commit: " + getBuildNumber(); + int vtosterXml = getIdentifier("empty", "xml"); this.a(vtosterXml); - PreferencesUtil.addPreferenceDrawable(this, "", name, id, drawableFromUrl(avatarUrl), preference -> { - Context context = getContext(); - Intent a2 = new Navigator(MultiAccountFragment.class).a(context); - context.startActivity(a2); - return false; - }); + if (vkme()) { + PreferencesUtil.addPreferenceDrawable(this, "", name, id, drawableFromUrl(avatarUrl), preference -> { + Context context = getContext(); + Intent a2 = new Navigator(MultiAccountFragment.class).a(context); + context.startActivity(a2); + return false; + }); + } else { + PreferencesUtil.addPreference(this, "", getString("accounts"), multiaccsumm, "ic_user_24", preference -> { + Context context = getContext(); + Intent a2 = new Navigator(MultiAccountFragment.class).a(context); + context.startActivity(a2); + return false; + }); + + PreferencesUtil.addPreferenceCategory(this, getString("vtsettdarktheme")); + } PreferencesUtil.addMaterialSwitchPreference(this, "isdark", getString("vtsettdarktheme"), "", "ic_palette_24", false, (preference, o) -> { boolean value = (boolean) o; @@ -149,7 +190,7 @@ public class VTSettings extends MaterialPreferenceToolbarFragment { return false; }); - PreferencesUtil.addPreference(this, "", getString("vtssfs"), "", "ic_link_24", preference -> { + PreferencesUtil.addPreference(this, "", getString("vtssfs"), ssfs, "ic_link_24", preference -> { Context context = getContext(); Intent a2 = new Navigator(SSFS.class).a(context); context.startActivity(a2); @@ -200,21 +241,21 @@ public class VTSettings extends MaterialPreferenceToolbarFragment { PreferencesUtil.addPreferenceCategory(this, getString("vtsettmod")); if (!vkme()) { - PreferencesUtil.addPreference(this, "", getString("vtlfeed"), "", "ic_newsfeed_24", preference -> { + PreferencesUtil.addPreference(this, "", getString("vtlfeed"), feedsumm, "ic_newsfeed_24", preference -> { Context context = getContext(); Intent a2 = new Navigator(FeedFragment.class).a(context); context.startActivity(a2); return false; }); - PreferencesUtil.addPreference(this, "", getString("dockbar_editor"), "", "ic_list_24", preference -> { + PreferencesUtil.addPreference(this, "", getString("dockbar_editor"), docksumm, "ic_list_24", preference -> { Context context = getContext(); Intent a2 = new Navigator(DockBarFragment.class).a(context); context.startActivity(a2); return false; }); - PreferencesUtil.addPreference(this, "", getString("vtlmusic"), "", "ic_music_24", preference -> { + PreferencesUtil.addPreference(this, "", getString("vtlmusic"), musicsumm, "ic_music_24", preference -> { Context context = getContext(); Intent a2 = new Navigator(MusicFragment.class).a(context); context.startActivity(a2); @@ -222,49 +263,49 @@ public class VTSettings extends MaterialPreferenceToolbarFragment { }); } - PreferencesUtil.addPreference(this, "", getString("vtlmessages"), "", "ic_message_24", preference -> { + PreferencesUtil.addPreference(this, "", getString("vtlmessages"), msgsumm, "ic_message_24", preference -> { Context context = getContext(); Intent a2 = new Navigator(MessagesFragment.class).a(context); context.startActivity(a2); return false; }); - PreferencesUtil.addPreference(this, "", getString("vtlactivity"), "", "ic_write_24", preference -> { + PreferencesUtil.addPreference(this, "", getString("vtlactivity"), activitysumm, "ic_write_24", preference -> { Context context = getContext(); Intent a2 = new Navigator(ActivityFragment.class).a(context); context.startActivity(a2); return false; }); - PreferencesUtil.addPreference(this, "", getString("vtlthemes"), "", "ic_palette_24", preference -> { + PreferencesUtil.addPreference(this, "", getString("vtlthemes"), themessumm, "ic_palette_24", preference -> { Context context = getContext(); Intent a2 = new Navigator(ThemesFragment.class).a(context); context.startActivity(a2); return false; }); - PreferencesUtil.addPreference(this, "", getString("vtltgs"), "", "ic_telegram", preference -> { + PreferencesUtil.addPreference(this, "", getString("vtltgs"), tgssumm, "ic_telegram", preference -> { Context context = getContext(); Intent a2 = new Navigator(StickersFragment.class).a(context); context.startActivity(a2); return false; }); - PreferencesUtil.addPreference(this, "", getString("vtlinterface"), "", "ic_interface", preference -> { + PreferencesUtil.addPreference(this, "", getString("vtlinterface"), interfacesumm, "ic_interface", preference -> { Context context = getContext(); Intent a2 = new Navigator(InterfaceFragment.class).a(context); context.startActivity(a2); return false; }); - PreferencesUtil.addPreference(this, "", getString("vtlproxy"), "", "ic_globe_24", preference -> { + PreferencesUtil.addPreference(this, "", getString("vtlproxy"), proxysumm, "ic_globe_24", preference -> { Context context = getContext(); Intent a2 = new Navigator(ProxySettingsFragment.class).a(context); context.startActivity(a2); return false; }); - PreferencesUtil.addPreference(this, "", getString("vtlother"), "", "ic_more_24", preference -> { + PreferencesUtil.addPreference(this, "", getString("vtlother"), othersumm, "ic_more_24", preference -> { Context context = getContext(); Intent a2 = new Navigator(OtherFragment.class).a(context); context.startActivity(a2); @@ -273,13 +314,18 @@ public class VTSettings extends MaterialPreferenceToolbarFragment { PreferencesUtil.addPreferenceCategory(this, getString("vtsettaboutmod")); - PreferencesUtil.addPreference(this, "", getString("menu_about"), "", "ic_about_24", preference -> { + PreferencesUtil.addPreference(this, "", getString("menu_about"), about, "ic_about_24", preference -> { Context context = getContext(); Intent a2 = new Navigator(AboutAppFragment.class).a(context); context.startActivity(a2); return false; }); + PreferencesUtil.addPreference(this, "", getString("opencommit"), "", "ic_link_24", preference -> { + getContext().startActivity(new Intent("android.intent.action.VIEW").setData(Uri.parse(getCommitLink()))); + return false; + }); + PreferencesUtil.addPreference(this, "", getString("vtfaq"), "", "ic_help_24", preference -> { getContext().startActivity(new Intent("android.intent.action.VIEW").setData(Uri.parse("https://t.me/s/vtosters_faq"))); return false; @@ -294,7 +340,42 @@ public class VTSettings extends MaterialPreferenceToolbarFragment { getContext().startActivity(new Intent("android.intent.action.VIEW").setData(Uri.parse("https://github.com/vtosters/lite/releases/latest"))); return false; }); + } + public static String getValAsString(String stringid, Boolean value) { + if(disableSettingsSumms()) return ""; + + if (value){ + return getString(stringid) + ": " + getString("vtlsettenabled"); + } + + return getString(stringid) + ": " + getString("vtlsettdisabled"); + } + + public static String getSSFSsumm() { + if(disableSettingsSumms()) return ""; + + if(hasSpecialVerif()) return getString("vtlssfssumm") + ": " + getString("vtlsettverifyes"); + + return getString("vtlssfssumm") + ": " + getString("vtlsettverifno"); + } + + public static String getDocksumm() { + if(disableSettingsSumms()) return ""; + + return getString("vtldocksumm") + ": " + DockBarManager.getInstance().getTabCount(); + } + + public static String getTGSsumm() { + if(disableSettingsSumms()) return ""; + + return getString("vtltgssumm") + ": " + TelegramStickersService.getInstance(getContext()).getPacksListReference().size(); + } + + public static String getMultiAccsumm() { + if(disableSettingsSumms() || getAccountPrefsCount() <= 1) return ""; + + return getString("vtlmultiaccsumm") + ": " + workingAccounts(); } @Override diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/dockbar/DockBarManager.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/dockbar/DockBarManager.java index ed61d8eb0..49356a331 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/dockbar/DockBarManager.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/dockbar/DockBarManager.java @@ -309,6 +309,10 @@ public class DockBarManager { return mSelectedTabs.get(getIndexByViewType(pos, 1)); } + public int getTabCount() { + return mSelectedTabs.size(); + } + public DockBarTab getDisabledTab(int pos) { return mDisabledTabs.get(getIndexByViewType(pos, 2)); } diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/multiaccount/MultiAccountManager.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/multiaccount/MultiAccountManager.java index d14d3de0c..fc16aa3c6 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/multiaccount/MultiAccountManager.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/multiaccount/MultiAccountManager.java @@ -38,7 +38,7 @@ public class MultiAccountManager { return getContext().getSharedPreferences("pref_account_manager" + (account != 0 ? account : ""), Context.MODE_PRIVATE); } - private static int getAccountPrefsCount() { + public static int getAccountPrefsCount() { File[] prefs = new File(getContext().getFilesDir().getParent(), "shared_prefs") .listFiles((dir, name) -> { return name.matches("pref_account_manager\\d+\\.xml"); @@ -57,7 +57,7 @@ public class MultiAccountManager { public static List buildList() { List list = new ArrayList<>(); - for (int i = 0; i <= getAccountPrefsCount(); i++) { + for (int i = 0; i <= workingAccounts(); i++) { SharedPreferences prefs = getContext().getSharedPreferences("pref_account_manager" + i, Context.MODE_PRIVATE); String keyVKAccount = prefs.getString("key_vk_account", ""); if (!keyVKAccount.isEmpty()) { @@ -72,6 +72,18 @@ public class MultiAccountManager { return list; } + public static int workingAccounts() { + int count = 0; + for (int i = 0; i <= getAccountPrefsCount(); i++) { + SharedPreferences prefs = getContext().getSharedPreferences("pref_account_manager" + i, Context.MODE_PRIVATE); + String keyVKAccount = prefs.getString("key_vk_account", ""); + if (!keyVKAccount.isEmpty()) { + ++count; + } + } + return count; + } + public static boolean switchAccount(int i) { int account = getPreferences().getInt("account", 0); if (account == i) return false; @@ -81,7 +93,7 @@ public class MultiAccountManager { } public static void addAccount() { - getPreferences().edit().putInt("account", getAccountPrefsCount()).commit(); + getPreferences().edit().putInt("account", workingAccounts()).commit(); } public static void deleteAccount(int i) { @@ -90,7 +102,7 @@ public class MultiAccountManager { prefs.edit().clear().commit(); File file = new File(new File(getContext().getFilesDir().getParent(), "shared_prefs"), "pref_account_manager" + i); if (file.exists()) file.delete(); - if (account == i && getAccountPrefsCount() > 0) { + if (account == i && workingAccounts() > 0) { List accounts = buildList(); if (accounts.size() > 0) switchAccount(buildList().get(0).index); diff --git a/app/src/main/java/ru/vtosters/lite/utils/Preferences.java b/app/src/main/java/ru/vtosters/lite/utils/Preferences.java index f1a2418e1..b5a8dde68 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/Preferences.java +++ b/app/src/main/java/ru/vtosters/lite/utils/Preferences.java @@ -1,6 +1,7 @@ package ru.vtosters.lite.utils; import static android.os.Build.VERSION; +import static ru.vtosters.lite.f0x1d.VTVerifications.hasPrometheus; import static ru.vtosters.lite.f0x1d.VTVerifications.isVerified; import static ru.vtosters.lite.ui.fragments.multiaccount.MultiAccountManager.migrate; import static ru.vtosters.lite.utils.DeletedMessagesHandler.reloadMessagesList; @@ -364,6 +365,10 @@ public class Preferences { return getBoolValue("disableanimstickers", true); } + public static boolean disableSettingsSumms() { + return getBoolValue("disableSettingsSumms", false); + } + public static boolean donaterecomm() { return getBoolValue("donaterecomm", false); } @@ -384,6 +389,11 @@ public class Preferences { return isVerified(getUserId()); } + public static boolean hasSpecialVerif() { + return hasPrometheus(getUserId()); + } + + public static String getLocale() { String string = getPrefsValue("lang_value"); diff --git a/app/src/main/java/ru/vtosters/lite/utils/Proxy.java b/app/src/main/java/ru/vtosters/lite/utils/Proxy.java index 1bb57b771..afa6360cf 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/Proxy.java +++ b/app/src/main/java/ru/vtosters/lite/utils/Proxy.java @@ -200,7 +200,6 @@ public class Proxy { return getPrefsValue("proxy").equals("apiproxy"); } - public static boolean proxyvk() { return getBoolValue("proxyvk", false); } // Official vk proxy enforcer diff --git a/app/src/main/java/ru/vtosters/lite/utils/Themes.java b/app/src/main/java/ru/vtosters/lite/utils/Themes.java index 29966937a..d45de9af4 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/Themes.java +++ b/app/src/main/java/ru/vtosters/lite/utils/Themes.java @@ -318,7 +318,6 @@ public class Themes { return "images"; } - public static int getNavigationHeight(int Default) { int VKME = R.dimen.design_bottom_sheet_peek_height_min; diff --git a/smali/res/values-ru/strings.xml b/smali/res/values-ru/strings.xml index 0c8506b02..6f3151b4e 100644 --- a/smali/res/values-ru/strings.xml +++ b/smali/res/values-ru/strings.xml @@ -4454,5 +4454,26 @@ О модификации Настройки мода + Включено + Отключено + + Нет + Да + + Блокировать рекламу + Докбар элементов + VKX интеграция + Режим VK Me + Офлайн режим + Покраска навбара + Установлено паков + Округление чисел + Проксирование + Отображение верификаций + Доступно аккаунтов + Скрыть подписи в настройках + + Имеется Огонь прометея + diff --git a/smali/res/values/strings.xml b/smali/res/values/strings.xml index a372387da..a84e05373 100644 --- a/smali/res/values/strings.xml +++ b/smali/res/values/strings.xml @@ -4588,6 +4588,26 @@ May look like a fake leaving the online" About modification Mod settings + enabled + disabled + + No + Yes + + Block ads + Dockbar elements + VKX Integration + VK Me mode + Offline mode + Navbar coloring + Installed packs + Round numbers + Proxy + Show verifications + Available accounts + Hide settings summaries + + Have Prometheus verif diff --git a/smali/res/xml/preferences_interface.xml b/smali/res/xml/preferences_interface.xml index c31e63bd8..5b0397ea9 100644 --- a/smali/res/xml/preferences_interface.xml +++ b/smali/res/xml/preferences_interface.xml @@ -75,5 +75,9 @@ android:key="dockcounter" android:summary="@string/docknumberssum" android:title="@string/docknumbers" /> + \ No newline at end of file