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";
}
}
@@ -587,6 +587,12 @@
.method public static e()Landroid/content/SharedPreferences;
.locals 3
invoke-static {}, Lru/vtosters/lite/utils/AccountManager;->getCurrentAccount()Landroid/content/SharedPreferences;
move-result-object v0
return-object v0
.line 184
sget-object v0, Lcom/vk/core/util/AppContextHolder;->a:Landroid/content/Context;
@@ -122,6 +122,35 @@
if-eqz v5, :cond_7
new-instance v5, Lcom/vtosters/lite/fragments/SettingsListFragment$a;
const v6, 0x7f08063e
iget-object v7, p0, Lcom/vtosters/lite/fragments/SettingsListFragment$b;->a:Lcom/vtosters/lite/fragments/SettingsListFragment;
invoke-static {v7}, Lcom/vtosters/lite/fragments/SettingsListFragment;->a(Lcom/vtosters/lite/fragments/SettingsListFragment;)I
move-result v7
# const v8, 0x7f110fef
# invoke-static {v8}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
# move-result-object v8
const-string v8, "Мультиаккаунт"
const-class v9, Lru/vtosters/lite/ui/fragments/AccountsFragment;
invoke-direct {v5, v6, v7, v8, v9}, Lcom/vtosters/lite/fragments/SettingsListFragment$a;-><init>(IILjava/lang/Object;Ljava/lang/Class;)V
invoke-static {v4, v5}, Lcom/vtosters/lite/ui/holder/RecyclerSectionAdapter$a;->a(ILjava/lang/Object;)Lcom/vtosters/lite/ui/holder/RecyclerSectionAdapter$a;
move-result-object v5
invoke-virtual {v0, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
new-instance v5, Lcom/vtosters/lite/fragments/SettingsListFragment$a;
const v6, 0x7f0802d3