upgraded new settings

refactored multi account counter
This commit is contained in:
gdlbo
2022-06-15 02:13:33 +03:00
parent f498e7af73
commit 92e4c55cb5
9 changed files with 174 additions and 24 deletions
@@ -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
@@ -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));
}
@@ -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<MultiAccountItem> buildList() {
List<MultiAccountItem> 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<MultiAccountItem> accounts = buildList();
if (accounts.size() > 0)
switchAccount(buildList().get(0).index);
@@ -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");
@@ -200,7 +200,6 @@ public class Proxy {
return getPrefsValue("proxy").equals("apiproxy");
}
public static boolean proxyvk() {
return getBoolValue("proxyvk", false);
} // Official vk proxy enforcer
@@ -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;
+21
View File
@@ -4454,5 +4454,26 @@
<string name="vtsettaboutmod">О модификации</string>
<string name="vtsettmod">Настройки мода</string>
<string name="vtlsettenabled">Включено</string>
<string name="vtlsettdisabled">Отключено</string>
<string name="vtlsettverifno">Нет</string>
<string name="vtlsettverifyes">Да</string>
<string name="vtlfeedsumm">Блокировать рекламу</string>
<string name="vtldocksumm">Докбар элементов</string>
<string name="vtlmusicsumm">VKX интеграция</string>
<string name="vtlmsgsumm">Режим VK Me</string>
<string name="vtlactivitysumm">Офлайн режим</string>
<string name="vtlthemessumm">Покраска навбара</string>
<string name="vtltgssumm">Установлено паков</string>
<string name="vtlinterfacesumm">Округление чисел</string>
<string name="vtlproxysumm">Проксирование</string>
<string name="vtlothersumm">Отображение верификаций</string>
<string name="vtlmultiaccsumm">Доступно аккаунтов</string>
<string name="vtlhidesumm">Скрыть подписи в настройках</string>
<string name="vtlssfssumm">Имеется Огонь прометея</string>
<string name="empty_text" />
</resources>
+20
View File
@@ -4588,6 +4588,26 @@ May look like a fake leaving the online"</string>
<string name="vtsettaboutmod">About modification</string>
<string name="vtsettmod">Mod settings</string>
<string name="vtlsettenabled">enabled</string>
<string name="vtlsettdisabled">disabled</string>
<string name="vtlsettverifno">No</string>
<string name="vtlsettverifyes">Yes</string>
<string name="vtlfeedsumm">Block ads</string>
<string name="vtldocksumm">Dockbar elements</string>
<string name="vtlmusicsumm">VKX Integration</string>
<string name="vtlmsgsumm">VK Me mode</string>
<string name="vtlactivitysumm">Offline mode</string>
<string name="vtlthemessumm">Navbar coloring</string>
<string name="vtltgssumm">Installed packs</string>
<string name="vtlinterfacesumm">Round numbers</string>
<string name="vtlproxysumm">Proxy</string>
<string name="vtlothersumm">Show verifications</string>
<string name="vtlmultiaccsumm">Available accounts</string>
<string name="vtlhidesumm">Hide settings summaries</string>
<string name="vtlssfssumm">Have Prometheus verif</string>
<item type="string" name="APKTOOL_DUMMY_10be" />
<item type="string" name="APKTOOL_DUMMY_10bf" />
+4
View File
@@ -75,5 +75,9 @@
android:key="dockcounter"
android:summary="@string/docknumberssum"
android:title="@string/docknumbers" />
<com.vtosters.lite.ui.MaterialSwitchPreference
android:defaultValue="false"
android:key="disableSettingsSumms"
android:title="@string/vtlhidesumm" />
</PreferenceCategory>
</PreferenceScreen>