Loading app/src/main/java/app/fedilab/android/helper/TimelineHelper.java +2 −16 Original line number Diff line number Diff line Loading @@ -60,17 +60,6 @@ public class TimelineHelper { return retrofit.create(MastodonAccountsService.class); } /** * Allows to filter statuses, should be called in API calls (background) * * @param context - Context * @param statuses - List of {@link Status} * @param filterTimeLineType - {@link Timeline.TimeLineEnum} * @return filtered List<Status> */ public static List<Status> filterStatus(Context context, List<Status> statuses, Timeline.TimeLineEnum filterTimeLineType) { return filterStatus(context, statuses, filterTimeLineType, false); } /** * Allows to filter statuses, should be called in API calls (background) Loading @@ -80,7 +69,7 @@ public class TimelineHelper { * @param filterTimeLineType - {@link Timeline.TimeLineEnum} * @return filtered List<Status> */ public static List<Status> filterStatus(Context context, List<Status> statuses, Timeline.TimeLineEnum filterTimeLineType, boolean cached) { public static List<Status> filterStatus(Context context, List<Status> statuses, Timeline.TimeLineEnum filterTimeLineType) { //A security to make sure filters have been fetched before displaying messages List<Status> statusesToRemove = new ArrayList<>(); if (!BaseMainActivity.filterFetched) { Loading @@ -102,9 +91,6 @@ public class TimelineHelper { } //If there are filters: if (BaseMainActivity.mainFilters != null && BaseMainActivity.mainFilters.size() > 0 && statuses != null && statuses.size() > 0) { for (Status status : statuses) { status.cached = cached; } for (Filter filter : BaseMainActivity.mainFilters) { if (filter.irreversible) { //Dealt by the server continue; Loading Loading @@ -200,7 +186,7 @@ public class TimelineHelper { for (String filterContext : filter.context) { if (Timeline.TimeLineEnum.NOTIFICATION.getValue().equalsIgnoreCase(filterContext)) { if (filter.whole_word) { Pattern p = Pattern.compile("(^" + Pattern.quote(filter.phrase) + "\\b|\\b" + Pattern.quote(filter.phrase) + "$)"); Pattern p = Pattern.compile("(^" + Pattern.quote(filter.phrase) + "\\b|\\b" + Pattern.quote(filter.phrase) + "$)", Pattern.CASE_INSENSITIVE); for (Notification notification : notifications) { notification.cached = cached; if (notification.status != null) { Loading app/src/main/java/app/fedilab/android/viewmodel/mastodon/TimelinesVM.java +21 −17 Original line number Diff line number Diff line Loading @@ -413,9 +413,12 @@ public class TimelinesVM extends AndroidViewModel { List<Status> statusList = timelineResponse.body(); statuses.statuses = TimelineHelper.filterStatus(getApplication().getApplicationContext(), statusList, timelineParams.type); statuses.pagination = MastodonHelper.getPagination(timelineResponse.headers()); if (statuses.statuses != null && statuses.statuses.size() > 0) { //Fetch More is added on filtered statuses addFetchMore(statuses.statuses, timelineStatuses, timelineParams); //All statuses (even filtered will be added to cache) if (statusList != null && statusList.size() > 0) { addFetchMore(statusList, timelineStatuses, timelineParams); for (Status status : statuses.statuses) { for (Status status : statusList) { StatusCache statusCacheDAO = new StatusCache(getApplication().getApplicationContext()); StatusCache statusCache = new StatusCache(); statusCache.instance = timelineParams.instance; Loading @@ -433,6 +436,7 @@ public class TimelinesVM extends AndroidViewModel { } } } } } } catch (Exception e) { Loading Loading @@ -465,7 +469,7 @@ public class TimelinesVM extends AndroidViewModel { //Only not already present statuses are added statusesDb.statuses = notPresentStatuses; } statuses.statuses = TimelineHelper.filterStatus(getApplication().getApplicationContext(), statusesDb.statuses, timelineParams.type, true); statuses.statuses = TimelineHelper.filterStatus(getApplication().getApplicationContext(), statusesDb.statuses, timelineParams.type); if (statuses.statuses != null && statuses.statuses.size() > 0) { addFetchMore(statuses.statuses, timelineStatuses, timelineParams); statuses.pagination = new Pagination(); Loading Loading
app/src/main/java/app/fedilab/android/helper/TimelineHelper.java +2 −16 Original line number Diff line number Diff line Loading @@ -60,17 +60,6 @@ public class TimelineHelper { return retrofit.create(MastodonAccountsService.class); } /** * Allows to filter statuses, should be called in API calls (background) * * @param context - Context * @param statuses - List of {@link Status} * @param filterTimeLineType - {@link Timeline.TimeLineEnum} * @return filtered List<Status> */ public static List<Status> filterStatus(Context context, List<Status> statuses, Timeline.TimeLineEnum filterTimeLineType) { return filterStatus(context, statuses, filterTimeLineType, false); } /** * Allows to filter statuses, should be called in API calls (background) Loading @@ -80,7 +69,7 @@ public class TimelineHelper { * @param filterTimeLineType - {@link Timeline.TimeLineEnum} * @return filtered List<Status> */ public static List<Status> filterStatus(Context context, List<Status> statuses, Timeline.TimeLineEnum filterTimeLineType, boolean cached) { public static List<Status> filterStatus(Context context, List<Status> statuses, Timeline.TimeLineEnum filterTimeLineType) { //A security to make sure filters have been fetched before displaying messages List<Status> statusesToRemove = new ArrayList<>(); if (!BaseMainActivity.filterFetched) { Loading @@ -102,9 +91,6 @@ public class TimelineHelper { } //If there are filters: if (BaseMainActivity.mainFilters != null && BaseMainActivity.mainFilters.size() > 0 && statuses != null && statuses.size() > 0) { for (Status status : statuses) { status.cached = cached; } for (Filter filter : BaseMainActivity.mainFilters) { if (filter.irreversible) { //Dealt by the server continue; Loading Loading @@ -200,7 +186,7 @@ public class TimelineHelper { for (String filterContext : filter.context) { if (Timeline.TimeLineEnum.NOTIFICATION.getValue().equalsIgnoreCase(filterContext)) { if (filter.whole_word) { Pattern p = Pattern.compile("(^" + Pattern.quote(filter.phrase) + "\\b|\\b" + Pattern.quote(filter.phrase) + "$)"); Pattern p = Pattern.compile("(^" + Pattern.quote(filter.phrase) + "\\b|\\b" + Pattern.quote(filter.phrase) + "$)", Pattern.CASE_INSENSITIVE); for (Notification notification : notifications) { notification.cached = cached; if (notification.status != null) { Loading
app/src/main/java/app/fedilab/android/viewmodel/mastodon/TimelinesVM.java +21 −17 Original line number Diff line number Diff line Loading @@ -413,9 +413,12 @@ public class TimelinesVM extends AndroidViewModel { List<Status> statusList = timelineResponse.body(); statuses.statuses = TimelineHelper.filterStatus(getApplication().getApplicationContext(), statusList, timelineParams.type); statuses.pagination = MastodonHelper.getPagination(timelineResponse.headers()); if (statuses.statuses != null && statuses.statuses.size() > 0) { //Fetch More is added on filtered statuses addFetchMore(statuses.statuses, timelineStatuses, timelineParams); //All statuses (even filtered will be added to cache) if (statusList != null && statusList.size() > 0) { addFetchMore(statusList, timelineStatuses, timelineParams); for (Status status : statuses.statuses) { for (Status status : statusList) { StatusCache statusCacheDAO = new StatusCache(getApplication().getApplicationContext()); StatusCache statusCache = new StatusCache(); statusCache.instance = timelineParams.instance; Loading @@ -433,6 +436,7 @@ public class TimelinesVM extends AndroidViewModel { } } } } } } catch (Exception e) { Loading Loading @@ -465,7 +469,7 @@ public class TimelinesVM extends AndroidViewModel { //Only not already present statuses are added statusesDb.statuses = notPresentStatuses; } statuses.statuses = TimelineHelper.filterStatus(getApplication().getApplicationContext(), statusesDb.statuses, timelineParams.type, true); statuses.statuses = TimelineHelper.filterStatus(getApplication().getApplicationContext(), statusesDb.statuses, timelineParams.type); if (statuses.statuses != null && statuses.statuses.size() > 0) { addFetchMore(statuses.statuses, timelineStatuses, timelineParams); statuses.pagination = new Pagination(); Loading