From 5f1edf8f86226c646638fdd7e9638069f31fc0ab Mon Sep 17 00:00:00 2001 From: Balazs Toldi Date: Wed, 11 Oct 2023 13:56:14 +0200 Subject: [PATCH] Fix autherntiction on first logging in to Lemmy 0.19 --- .../infinityforlemmy/activities/LoginActivity.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/activities/LoginActivity.java b/app/src/main/java/eu/toldi/infinityforlemmy/activities/LoginActivity.java index 15ceb6ab..1c443f0c 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/activities/LoginActivity.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/activities/LoginActivity.java @@ -8,7 +8,6 @@ import android.os.Bundle; import android.os.Handler; import android.text.Editable; import android.util.Log; -import android.util.Patterns; import android.view.InflateException; import android.view.MenuItem; import android.widget.Button; @@ -180,6 +179,7 @@ public class LoginActivity extends BaseActivity { try { JSONObject responseJSON = new JSONObject(accountResponse); String accessToken = responseJSON.getString("jwt"); + mRetrofit.setAccessToken(null); FetchMyInfo.fetchAccountInfo(mRetrofit.getRetrofit(), mRedditDataRoomDatabase, username, accessToken, new FetchMyInfo.FetchMyInfoListener() { @@ -189,13 +189,23 @@ public class LoginActivity extends BaseActivity { @Override public void onFetchSiteInfoSuccess(SiteInfo siteInfo) { boolean canDownvote = siteInfo.isEnable_downvotes(); - ParseAndInsertNewAccount.parseAndInsertNewAccount(mExecutor, new Handler(), name,display_name, accessToken, profileImageUrl, bannerImageUrl, authCode, finalInstance,canDownvote, mRedditDataRoomDatabase.accountDao(), + ParseAndInsertNewAccount.parseAndInsertNewAccount(mExecutor, new Handler(), name, display_name, accessToken, profileImageUrl, bannerImageUrl, authCode, finalInstance, canDownvote, mRedditDataRoomDatabase.accountDao(), () -> { Intent resultIntent = new Intent(); setResult(Activity.RESULT_OK, resultIntent); finish(); }); mCurrentAccountSharedPreferences.edit().putBoolean(SharedPreferencesUtils.CAN_DOWNVOTE, canDownvote).apply(); + String[] version = siteInfo.getVersion().split("\\."); + if (version.length > 0) { + Log.d("SwitchAccount", "Lemmy Version: " + version[0] + "." + version[1]); + int majorVersion = Integer.parseInt(version[0]); + int minorVersion = Integer.parseInt(version[1]); + if (majorVersion > 0 || (majorVersion == 0 && minorVersion >= 19)) { + mRetrofit.setAccessToken(accessToken); + mCurrentAccountSharedPreferences.edit().putBoolean(SharedPreferencesUtils.BEARER_TOKEN_AUTH, true).apply(); + } + } } @Override