diff --git a/app/src/main/java/app/fedilab/android/BaseMainActivity.java b/app/src/main/java/app/fedilab/android/BaseMainActivity.java index f99cea43..b97b26cf 100644 --- a/app/src/main/java/app/fedilab/android/BaseMainActivity.java +++ b/app/src/main/java/app/fedilab/android/BaseMainActivity.java @@ -212,6 +212,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt public static List mainFilters; public static List filteredAccounts; public static boolean filterFetched; + public static int filterFetchedRetry = 0; public static boolean show_boosts, show_replies, show_dms, show_art_nsfw, show_self_boosts, show_self_replies, show_my_messages; public static String regex_home, regex_local, regex_public; public static iconLauncher mLauncher = iconLauncher.BUBBLES; @@ -1358,6 +1359,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt filteredAccounts = new ArrayList<>(); filterFetched = false; + filterFetchedRetry = 0; networkStateReceiver = new NetworkStateReceiver(); networkStateReceiver.addListener(this); registerReceiver(networkStateReceiver, new IntentFilter(android.net.ConnectivityManager.CONNECTIVITY_ACTION)); diff --git a/app/src/main/java/app/fedilab/android/mastodon/helper/TimelineHelper.java b/app/src/main/java/app/fedilab/android/mastodon/helper/TimelineHelper.java index 119718d7..16803bba 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/helper/TimelineHelper.java +++ b/app/src/main/java/app/fedilab/android/mastodon/helper/TimelineHelper.java @@ -76,7 +76,7 @@ public class TimelineHelper { */ public static List filterStatus(Context context, List statuses, Timeline.TimeLineEnum filterTimeLineType) { //A security to make sure filters have been fetched before displaying messages - if (!BaseMainActivity.filterFetched) { + if (!BaseMainActivity.filterFetched && BaseMainActivity.filterFetchedRetry < 3) { MastodonFiltersService mastodonFiltersService = initv2(context); List filterList; Call> getFiltersCall = mastodonFiltersService.getFilters(BaseMainActivity.currentToken); @@ -92,6 +92,7 @@ public class TimelineHelper { e.printStackTrace(); } } + BaseMainActivity.filterFetchedRetry++; } //If there are filters: @@ -222,7 +223,7 @@ public class TimelineHelper { public static List filterNotification(Context context, List notifications) { //A security to make sure filters have been fetched before displaying messages List notificationToRemove = new ArrayList<>(); - if (!BaseMainActivity.filterFetched) { + if (!BaseMainActivity.filterFetched && BaseMainActivity.filterFetchedRetry < 3) { try { FiltersVM filtersVM = new ViewModelProvider((ViewModelStoreOwner) context).get(FiltersVM.class); filtersVM.getFilters(BaseMainActivity.currentInstance, BaseMainActivity.currentToken).observe((LifecycleOwner) context, filters -> { @@ -232,6 +233,7 @@ public class TimelineHelper { } catch (Exception e) { return notifications; } + BaseMainActivity.filterFetchedRetry++; } //If there are filters: if (BaseMainActivity.mainFilters != null && !BaseMainActivity.mainFilters.isEmpty() && notifications != null && !notifications.isEmpty()) {