From f9c11e3874f90cd3abd1a75f99ded02ddfef009c Mon Sep 17 00:00:00 2001 From: stom79 Date: Sun, 4 Nov 2018 10:01:16 +0100 Subject: [PATCH] Fix some issues --- .../gouv/etalab/mastodon/activities/TootActivity.java | 11 ++++++++--- .../asynctasks/RetrieveMissingFeedsAsyncTask.java | 2 ++ .../mastodon/fragments/DisplayStatusFragment.java | 2 ++ .../fr/gouv/etalab/mastodon/helper/CrossActions.java | 4 +--- .../java/fr/gouv/etalab/mastodon/helper/Helper.java | 8 ++++++++ 5 files changed, 21 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/TootActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/TootActivity.java index 67c3e165e..5060544d3 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/TootActivity.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/TootActivity.java @@ -21,6 +21,7 @@ import android.content.ContentResolver; import android.content.pm.PackageManager; import android.graphics.BitmapFactory; import android.os.Environment; +import android.os.Parcelable; import android.provider.MediaStore; import android.support.annotation.NonNull; import android.support.annotation.RequiresApi; @@ -311,11 +312,15 @@ public class TootActivity extends BaseActivity implements OnRetrieveSearcAccount Bundle b = getIntent().getExtras(); ArrayList sharedUri = new ArrayList<>(); - + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); restored = -1; if(b != null) { tootReply = b.getParcelable("tootReply"); - accountReply = b.getParcelable("accountReply"); + String accountReplyToken = b.getString("accountReplyToken", null); + accountReply = null; + if( accountReplyToken != null){ + accountReply = new AccountDAO(getApplicationContext(),db).getAccountByToken(accountReplyToken); + } tootMention = b.getString("tootMention", null); urlMention = b.getString("urlMention", null); fileMention = b.getString("fileMention", null); @@ -349,7 +354,7 @@ public class TootActivity extends BaseActivity implements OnRetrieveSearcAccount toot_it.setVisibility(View.GONE); invalidateOptionsMenu(); } - SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + String userIdReply; if( accountReply == null) userIdReply = sharedpreferences.getString(Helper.PREF_KEY_ID, null); diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/asynctasks/RetrieveMissingFeedsAsyncTask.java b/app/src/main/java/fr/gouv/etalab/mastodon/asynctasks/RetrieveMissingFeedsAsyncTask.java index 6cc7867cf..243339257 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/asynctasks/RetrieveMissingFeedsAsyncTask.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/asynctasks/RetrieveMissingFeedsAsyncTask.java @@ -59,6 +59,8 @@ public class RetrieveMissingFeedsAsyncTask extends AsyncTask { @Override protected Void doInBackground(Void... params) { + if( this.contextReference.get() == null) + return null; API api = new API(this.contextReference.get()); List tempStatus; APIResponse apiResponse = null; diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayStatusFragment.java b/app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayStatusFragment.java index 8bbbcdbe8..57ea61d84 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayStatusFragment.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayStatusFragment.java @@ -691,6 +691,8 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn @Override public void onRetrieveMissingFeeds(List statusesMissing) { + if(swipeRefreshLayout == null) + return; swipeRefreshLayout.setRefreshing(false); List statuses = Helper.filterToots(context, statusesMissing, mutedAccount, type); diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/helper/CrossActions.java b/app/src/main/java/fr/gouv/etalab/mastodon/helper/CrossActions.java index 8fd8de910..3ae495570 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/helper/CrossActions.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/helper/CrossActions.java @@ -26,7 +26,6 @@ import android.os.Bundle; import android.support.v7.app.AlertDialog; import android.support.v7.widget.RecyclerView; import android.text.Html; -import android.util.Log; import android.widget.Toast; import java.lang.ref.WeakReference; @@ -599,9 +598,8 @@ public class CrossActions { @Override public void onClick(final DialogInterface dialog, int which) { final Account account = accountArray[which]; - Intent intentToot = new Intent(context, TootActivity.class); - bundle.putParcelable("accountReply", account); + bundle.putString("accountReplyToken", account.getToken()); intentToot.putExtras(bundle); context.startActivity(intentToot); ((BaseActivity)context).finish(); diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java b/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java index 5c18d7dc7..489f0af02 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java @@ -19,6 +19,7 @@ package fr.gouv.etalab.mastodon.helper; import android.annotation.SuppressLint; import android.app.Activity; +import android.app.FragmentManager; import android.app.Notification; import android.app.NotificationChannel; import android.app.NotificationManager; @@ -1230,6 +1231,13 @@ public class Helper { navigationView.getMenu().findItem(R.id.nav_follow_request).setVisible(false); } SharedPreferences sharedpreferences = activity.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); + String token = sharedpreferences.getString(Helper.PREF_KEY_OAUTH_TOKEN, null); + if( !account.getToken().equals(token)){ + FragmentManager fm = activity.getFragmentManager(); + for(int i = 0; i < fm.getBackStackEntryCount(); ++i) { + fm.popBackStack(); + } + } SharedPreferences.Editor editor = sharedpreferences.edit(); editor.putString(Helper.PREF_KEY_OAUTH_TOKEN, account.getToken()); editor.putString(Helper.PREF_KEY_ID, account.getId());