Multiaccount impl test
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user