diff options
Diffstat (limited to 'app/src/main/java/app/fedilab/android/helper')
3 files changed, 39 insertions, 1 deletions
diff --git a/app/src/main/java/app/fedilab/android/helper/Helper.java b/app/src/main/java/app/fedilab/android/helper/Helper.java index 2b1aa30ab..e1d55937b 100644 --- a/app/src/main/java/app/fedilab/android/helper/Helper.java +++ b/app/src/main/java/app/fedilab/android/helper/Helper.java @@ -1953,4 +1953,19 @@ public class Helper { public interface OnAttachmentCopied { void onAttachmentCopied(Attachment attachment); } + + public static void addMutedAccount(app.fedilab.android.client.entities.api.Account target) { + if (MainActivity.filteredAccounts == null) { + MainActivity.filteredAccounts = new ArrayList<>(); + } + if (!MainActivity.filteredAccounts.contains(target)) { + MainActivity.filteredAccounts.add(target); + } + } + + public static void removeMutedAccount(app.fedilab.android.client.entities.api.Account target) { + if (MainActivity.filteredAccounts != null) { + MainActivity.filteredAccounts.remove(target); + } + } } diff --git a/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java b/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java index 0d5b7bf38..03e9a52c5 100644 --- a/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java +++ b/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java @@ -494,7 +494,9 @@ public class SpannableHelper { contentUrl = new SpannableString(Html.fromHtml(value, Html.FROM_HTML_MODE_LEGACY)); else contentUrl = new SpannableString(Html.fromHtml(value)); - + if (contentUrl.toString().trim().isEmpty()) { + continue; + } Pattern word = Pattern.compile(Pattern.quote(contentUrl.toString())); Matcher matcherLink = word.matcher(content); while (matcherLink.find()) { diff --git a/app/src/main/java/app/fedilab/android/helper/TimelineHelper.java b/app/src/main/java/app/fedilab/android/helper/TimelineHelper.java index 2f0366d76..66b01ba87 100644 --- a/app/src/main/java/app/fedilab/android/helper/TimelineHelper.java +++ b/app/src/main/java/app/fedilab/android/helper/TimelineHelper.java @@ -14,6 +14,8 @@ package app.fedilab.android.helper; * You should have received a copy of the GNU General Public License along with Fedilab; if not, * see <http://www.gnu.org/licenses>. */ +import static app.fedilab.android.BaseMainActivity.filteredAccounts; + import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; @@ -35,6 +37,7 @@ import java.util.regex.Pattern; import app.fedilab.android.BaseMainActivity; import app.fedilab.android.activities.MainActivity; import app.fedilab.android.client.endpoints.MastodonFiltersService; +import app.fedilab.android.client.entities.api.Account; import app.fedilab.android.client.entities.api.Filter; import app.fedilab.android.client.entities.api.Notification; import app.fedilab.android.client.entities.api.Status; @@ -90,6 +93,7 @@ public class TimelineHelper { } } } + //If there are filters: if (BaseMainActivity.mainFilters != null && BaseMainActivity.mainFilters.size() > 0 && statuses != null && statuses.size() > 0) { @@ -143,6 +147,23 @@ public class TimelineHelper { Matcher ms = p.matcher(spoilerText); if (ms.find()) { status.filteredByApp = filter; + continue; + } + } + + if (filterTimeLineType == Timeline.TimeLineEnum.HOME) { + if (filteredAccounts != null && filteredAccounts.size() > 0) { + for (Account account : filteredAccounts) { + if (account.acct.equals(status.account.acct) || (status.reblog != null && account.acct.equals(status.reblog.account.acct))) { + Filter filterCustom = new Filter(); + filterCustom.filter_action = "hide"; + ArrayList<String> contextCustom = new ArrayList<>(); + contextCustom.add("home"); + filterCustom.title = "Fedilab"; + filterCustom.context = contextCustom; + status.filteredByApp = filterCustom; + } + } } } } |