fix instance info v2 never getting saved

This commit is contained in:
sk
2022-12-23 21:49:21 +01:00
parent c4ad325e5c
commit 459e32caf8

View File

@@ -13,8 +13,6 @@ import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.util.Log; import android.util.Log;
import com.google.gson.JsonParseException;
import org.joinmastodon.android.BuildConfig; import org.joinmastodon.android.BuildConfig;
import org.joinmastodon.android.E; import org.joinmastodon.android.E;
import org.joinmastodon.android.MainActivity; import org.joinmastodon.android.MainActivity;
@@ -104,12 +102,11 @@ public class AccountSessionManager{
public void addAccount(Instance instance, Token token, Account self, Application app, AccountActivationInfo activationInfo){ public void addAccount(Instance instance, Token token, Account self, Application app, AccountActivationInfo activationInfo){
instances.put(instance.uri, instance); instances.put(instance.uri, instance);
updateInstanceInfoV2(instance);
AccountSession session=new AccountSession(token, self, app, instance.uri, activationInfo==null, activationInfo); AccountSession session=new AccountSession(token, self, app, instance.uri, activationInfo==null, activationInfo);
sessions.put(session.getID(), session); sessions.put(session.getID(), session);
lastActiveAccountID=session.getID(); lastActiveAccountID=session.getID();
writeAccountsFile(); writeAccountsFile();
updateInstanceEmojis(instance, instance.uri); updateMoreInstanceInfo(instance, instance.uri);
if(PushSubscriptionManager.arePushNotificationsAvailable()){ if(PushSubscriptionManager.arePushNotificationsAvailable()){
session.getPushSubscriptionManager().registerAccountForPush(null); session.getPushSubscriptionManager().registerAccountForPush(null);
} }
@@ -328,10 +325,7 @@ public class AccountSessionManager{
@Override @Override
public void onSuccess(Instance instance){ public void onSuccess(Instance instance){
instances.put(domain, instance); instances.put(domain, instance);
updateInstanceEmojis(instance, domain); updateMoreInstanceInfo(instance, domain);
try {
updateInstanceInfoV2(instance);
} catch (Exception ignored) {}
} }
@Override @Override
@@ -342,16 +336,18 @@ public class AccountSessionManager{
.execNoAuth(domain); .execNoAuth(domain);
} }
public void updateInstanceInfoV2(Instance instance) { public void updateMoreInstanceInfo(Instance instance, String domain) {
new GetInstance.V2().setCallback(new Callback<>() { new GetInstance.V2().setCallback(new Callback<>() {
@Override @Override
public void onSuccess(Instance.V2 v2) { public void onSuccess(Instance.V2 v2) {
if (instance != null) instance.v2 = v2; if (instance != null) instance.v2 = v2;
writeAccountsFile(); updateInstanceEmojis(instance, domain);
} }
@Override @Override
public void onError(ErrorResponse errorResponse) {} public void onError(ErrorResponse errorResponse) {
updateInstanceEmojis(instance, domain);
}
}).execNoAuth(instance.uri); }).execNoAuth(instance.uri);
} }