summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas <tschneider.ac@gmail.com>2022-12-20 10:24:03 +0100
committerThomas <tschneider.ac@gmail.com>2022-12-20 10:24:03 +0100
commitb428cf4de912e5344689d323c4f34ca624622eb5 (patch)
treeb9ac0f9ba1131dedaa916d565e4ea7f66d6f7f6d
parent611c22a5c878077dc7d4df700af315e4f4ed7477 (diff)
Group reblogs
-rw-r--r--app/src/main/java/app/fedilab/android/helper/TimelineHelper.java30
-rw-r--r--app/src/main/res/values/strings.xml3
-rw-r--r--app/src/main/res/xml/pref_timelines.xml7
-rw-r--r--src/fdroid/fastlane/metadata/android/en/changelogs/451.txt1
4 files changed, 36 insertions, 5 deletions
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 4ad014c17..6c94cf293 100644
--- a/app/src/main/java/app/fedilab/android/helper/TimelineHelper.java
+++ b/app/src/main/java/app/fedilab/android/helper/TimelineHelper.java
@@ -17,6 +17,7 @@ package app.fedilab.android.helper;
import static app.fedilab.android.BaseMainActivity.filteredAccounts;
import android.content.Context;
+import android.content.SharedPreferences;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Build;
@@ -25,6 +26,7 @@ import android.text.Html;
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.ViewModelProvider;
import androidx.lifecycle.ViewModelStoreOwner;
+import androidx.preference.PreferenceManager;
import java.io.IOException;
import java.util.ArrayList;
@@ -35,6 +37,7 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
import app.fedilab.android.BaseMainActivity;
+import app.fedilab.android.R;
import app.fedilab.android.activities.MainActivity;
import app.fedilab.android.client.endpoints.MastodonFiltersService;
import app.fedilab.android.client.entities.api.Account;
@@ -153,21 +156,40 @@ public class TimelineHelper {
}
}
}
+
+ SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context);
+ boolean groupReblogs = sharedpreferences.getBoolean(context.getString(R.string.SET_GROUP_REBLOGS), true);
if (filterTimeLineType == Timeline.TimeLineEnum.HOME) {
- if (filteredAccounts != null && filteredAccounts.size() > 0) {
- for (Status status : statuses) {
+
+ for (int i = 0; i < statuses.size(); i++) {
+ 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))) {
+ if (account.acct.equals(statuses.get(i).account.acct) || (statuses.get(i).reblog != null && account.acct.equals(statuses.get(i).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;
+ statuses.get(i).filteredByApp = filterCustom;
}
}
}
+ //Group boosts
+ if (groupReblogs && statuses.get(i).filteredByApp == null && statuses.get(i).reblog != null) {
+ for (int j = 0; j < i; j++) {
+ if (statuses.get(j).reblog != null && statuses.get(j).reblog.id.equals(statuses.get(i).reblog.id)) {
+ Filter filterCustom = new Filter();
+ filterCustom.filter_action = "hide";
+ ArrayList<String> contextCustom = new ArrayList<>();
+ contextCustom.add("home");
+ filterCustom.title = "Fedilab reblog";
+ filterCustom.context = contextCustom;
+ statuses.get(i).filteredByApp = filterCustom;
+ }
+ }
+ }
+
}
}
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index a6f5edb45..acded866a 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1409,6 +1409,8 @@
<string name="SET_DISPLAY_ALL_NOTIFICATIONS_TYPE" translatable="false">SET_DISPLAY_ALL_NOTIFICATIONS_TYPE</string>
<string name="SET_EXCLUDED_NOTIFICATIONS_TYPE" translatable="false">SET_EXCLUDED_NOTIFICATIONS_TYPE</string>
<string name="SET_EXPAND_MEDIA" translatable="false">SET_EXPAND_MEDIA</string>
+ <string name="SET_GROUP_REBLOGS" translatable="false">SET_GROUP_REBLOGS</string>
+
<string name="SET_LIVE_TRANSLATE" translatable="false">SET_LIVE_TRANSLATE</string>
<string name="SET_TRUNCATE_TOOTS_SIZE" translatable="false">SET_TRUNCATE_TOOTS_SIZE</string>
<string name="SET_ART_WITH_NSFW" translatable="false">SET_ART_WITH_NSFW</string>
@@ -2108,4 +2110,5 @@
<string name="put_all_accounts_in_home_muted">All accounts will be muted for the Home timeline.</string>
<string name="mute_them_all">Mute them all</string>
<string name="import_data">Import data</string>
+ <string name="group_reblogs">Group reblogs in home timeline</string>
</resources> \ No newline at end of file
diff --git a/app/src/main/res/xml/pref_timelines.xml b/app/src/main/res/xml/pref_timelines.xml
index 4afdb7d7b..4ba37efa0 100644
--- a/app/src/main/res/xml/pref_timelines.xml
+++ b/app/src/main/res/xml/pref_timelines.xml
@@ -19,7 +19,12 @@
app:key="@string/SET_EXPAND_MEDIA"
app:singleLineTitle="false"
app:title="@string/expand_image" />
-
+ <SwitchPreferenceCompat
+ android:defaultValue="true"
+ app:iconSpaceReserved="false"
+ app:key="@string/SET_GROUP_REBLOGS"
+ app:singleLineTitle="false"
+ app:title="@string/group_reblogs" />
<ListPreference
android:defaultValue="default"
app:entries="@array/SET_LIVE_TRANSLATE_VALUES"
diff --git a/src/fdroid/fastlane/metadata/android/en/changelogs/451.txt b/src/fdroid/fastlane/metadata/android/en/changelogs/451.txt
index d748e4ab8..146394a37 100644
--- a/src/fdroid/fastlane/metadata/android/en/changelogs/451.txt
+++ b/src/fdroid/fastlane/metadata/android/en/changelogs/451.txt
@@ -1,5 +1,6 @@
Added:
- Post random quotes
+- Group reblogs in home timeline
Changed:
- Display translate button only when language is different