summaryrefslogtreecommitdiffstats
path: root/app/src/main/java/app/fedilab/android/helper
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/app/fedilab/android/helper')
-rw-r--r--app/src/main/java/app/fedilab/android/helper/Helper.java15
-rw-r--r--app/src/main/java/app/fedilab/android/helper/SpannableHelper.java4
-rw-r--r--app/src/main/java/app/fedilab/android/helper/TimelineHelper.java21
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;
+ }
+ }
}
}
}