Multiaccount impl test

This commit is contained in:
gdlbo
2022-04-02 22:00:01 +03:00
committed by Vologhat
parent c683947d20
commit 883cb34bdb
4 changed files with 122 additions and 0 deletions
@@ -0,0 +1,53 @@
package ru.vtosters.lite.ui.fragments;
import static ru.vtosters.lite.utils.Helper.GetPreferences;
import static ru.vtosters.lite.utils.Helper.getUserLastName;
import android.os.Bundle;
import com.vk.audio.AudioMessageUtils;
import com.vk.core.f.FileUtils;
import com.vk.imageloader.VKImageLoader;
import com.vtosters.lite.fragments.MaterialPreferenceToolbarFragment;
import com.vtosters.lite.im.ImEngineProvider;
import ru.vtosters.lite.tgs.TGRoot;
import ru.vtosters.lite.ui.PreferencesUtil;
import ru.vtosters.lite.utils.AccountManager;
import ru.vtosters.lite.utils.Helper;
public class AccountsFragment extends MaterialPreferenceToolbarFragment {
@Override
public void b(Bundle bundle) {
super.b(bundle);
int vtosterXml = Helper.GetContext().getResources().getIdentifier("empty", "xml", Helper.GetContext().getPackageName());
this.a(vtosterXml);
PreferencesUtil.addPreferenceCategory(this, "Аккаунты");
PreferencesUtil.addListPreference(this, "account", "", "Выберите аккаунт", new CharSequence[]{
AccountManager.getName(""), AccountManager.getName("1")
}, new String[]{
"", "1"
});
a("account").b(AccountManager.getCurrentAccountName());
a("account").a((preference, o) -> {
VKImageLoader.b();
ImEngineProvider.a().h();
AudioMessageUtils.j();
FileUtils.l();
//Helper.restarting(); TODO Implement a soft restart for activities and fragments or hard restart after applying changes
return true;
});
}
@Override
public int aq() {
return Helper.GetContext().getResources().getIdentifier("sett_account", "string", Helper.GetContext().getPackageName());
}
}
@@ -0,0 +1,34 @@
package ru.vtosters.lite.utils;
import static android.content.Context.MODE_PRIVATE;
import android.content.SharedPreferences;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class AccountManager {
public static SharedPreferences getCurrentAccount() {
String Value = ru.vtosters.lite.utils.Helper.GetPreferences().getString("account", "");
return Helper.GetContext().getSharedPreferences("pref_account_manager" + Value, MODE_PRIVATE);
}
public static String getCurrentAccountName() {
String Value = ru.vtosters.lite.utils.Helper.GetPreferences().getString("account", "");
return getName(Value);
}
public static SharedPreferences getNeededAccount(String str) {
return Helper.GetContext().getSharedPreferences("pref_account_manager" + str, MODE_PRIVATE);
}
public static String getName(String str) {
Pattern pattern = Pattern.compile(".*\"name\":\\{.*?:\"(.*?)\"\\}.*");
Matcher matcher = pattern.matcher(getNeededAccount(str).getString("key_vk_account", ""));
if (matcher.find()) {
String group = matcher.group(1);
return group;
}
return "err";
}
}