diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 000000000..d3b8a94b0
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,32 @@
+---
+name: Bug report
+about: Create a report to help us improve
+title: ''
+labels: bug
+assignees: ''
+
+---
+
+**Describe the bug**
+A clear and concise description of what the bug is.
+
+**To Reproduce**
+Steps to reproduce the behavior:
+1. Go to '...'
+2. Click on '....'
+3. Scroll down to '....'
+4. See error
+
+**Screenshots and screen recordings**
+If applicable, add screenshots (and screen recordings, if possible) to help explain your problem.
+
+**Version**
+Megalodon version: [e.g. v1.1.4+fork.#]
+
+**Additional context**
+- Does this issue also occur with the respective upstream release? (Please test using the respective `upstream-xxxxxx.apk` provided in [Releases](https://github.com/sk22/megalodon/releases)) No / Yes (`mastodon#…`)
+
+ > In this case, please consider filing an [upstream bug report](https://github.com/mastodon/mastodon-android/issues) instead. If this bug is seriously impacting your usage or you think I might want to try to fix it for Megalodon, feel free to still create this issue!
+
+**Crash log**
+If you know your way around Android development tools, please consider attaching a crash log, if possible.
diff --git a/.github/ISSUE_TEMPLATE/feature-ui-request.md b/.github/ISSUE_TEMPLATE/feature-ui-request.md
new file mode 100644
index 000000000..7a56c359a
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature-ui-request.md
@@ -0,0 +1,20 @@
+---
+name: Feature/UI request
+about: Suggest an idea for this project
+title: ''
+labels: feature
+assignees: ''
+
+---
+
+**Is your feature request related to a problem? Please describe.**
+A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
+
+**Describe the solution you'd like**
+A clear and concise description of what you want to happen.
+
+**Describe alternatives you've considered**
+If applicable: a clear and concise description of any alternative solutions or features you've considered.
+
+**Additional context**
+Add any other context or screenshots about the feature request here.
diff --git a/.github/ISSUE_TEMPLATE/something-else.md b/.github/ISSUE_TEMPLATE/something-else.md
new file mode 100644
index 000000000..995600f1e
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/something-else.md
@@ -0,0 +1,10 @@
+---
+name: It's something else…
+about: Issues that can't be categorized as feature requests or bug reports
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+
diff --git a/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java b/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java
index c72c63861..da3e4c7c4 100644
--- a/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java
+++ b/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java
@@ -32,6 +32,7 @@ public class GlobalUserPreferences{
public static boolean enableDeleteNotifications;
public static boolean relocatePublishButton;
public static boolean reduceMotion;
+ public static boolean keepOnlyLatestNotification;
public static String publishButtonText;
public static ThemePreference theme;
public static ColorPreference color;
@@ -69,6 +70,8 @@ public class GlobalUserPreferences{
relocatePublishButton=prefs.getBoolean("relocatePublishButton", true);
voteButtonForSingleChoice=prefs.getBoolean("voteButtonForSingleChoice", true);
enableDeleteNotifications=prefs.getBoolean("enableDeleteNotifications", true);
+ reduceMotion=prefs.getBoolean("reduceMotion", false);
+ keepOnlyLatestNotification=prefs.getBoolean("keepOnlyLatestNotification", false);
theme=ThemePreference.values()[prefs.getInt("theme", 0)];
recentLanguages=fromJson(prefs.getString("recentLanguages", "{}"), recentLanguagesType, new HashMap<>());
recentEmojis=fromJson(prefs.getString("recentEmojis", "{}"), recentEmojisType, new HashMap<>());
@@ -104,6 +107,7 @@ public class GlobalUserPreferences{
.putBoolean("uniformNotificationIcon", uniformNotificationIcon)
.putBoolean("enableDeleteNotifications", enableDeleteNotifications)
.putBoolean("reduceMotion", reduceMotion)
+ .putBoolean("keepOnlyLatestNotification", keepOnlyLatestNotification)
.putString("publishButtonText", publishButtonText)
.putInt("theme", theme.ordinal())
.putString("color", color.name())
diff --git a/mastodon/src/main/java/org/joinmastodon/android/PushNotificationReceiver.java b/mastodon/src/main/java/org/joinmastodon/android/PushNotificationReceiver.java
index 00946de41..560127c64 100644
--- a/mastodon/src/main/java/org/joinmastodon/android/PushNotificationReceiver.java
+++ b/mastodon/src/main/java/org/joinmastodon/android/PushNotificationReceiver.java
@@ -160,6 +160,6 @@ public class PushNotificationReceiver extends BroadcastReceiver{
if(AccountSessionManager.getInstance().getLoggedInAccounts().size()>1){
builder.setSubText(accountName);
}
- nm.notify(accountID, NOTIFICATION_ID, builder.build());
+ nm.notify(accountID, GlobalUserPreferences.keepOnlyLatestNotification ? NOTIFICATION_ID : (int)System.currentTimeMillis(), builder.build());
}
}
diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java
index b50936034..ce7c8ecc4 100644
--- a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java
+++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java
@@ -243,6 +243,10 @@ public class SettingsFragment extends MastodonToolbarFragment{
items.add(new SwitchItem(R.string.notify_reblog, R.drawable.ic_fluent_arrow_repeat_all_24_regular, pushSubscription.alerts.reblog, i->onNotificationsChanged(PushNotification.Type.REBLOG, i.checked)));
items.add(new SwitchItem(R.string.notify_mention, R.drawable.ic_fluent_mention_24_regular, pushSubscription.alerts.mention, i->onNotificationsChanged(PushNotification.Type.MENTION, i.checked)));
items.add(new SwitchItem(R.string.sk_notify_posts, R.drawable.ic_fluent_alert_24_regular, pushSubscription.alerts.status, i->onNotificationsChanged(PushNotification.Type.STATUS, i.checked)));
+ items.add(new SwitchItem(R.string.sk_keep_only_latest_notification, R.drawable.ic_fluent_custom_alert_latest_24_regular, GlobalUserPreferences.keepOnlyLatestNotification, i->{
+ GlobalUserPreferences.keepOnlyLatestNotification=i.checked;
+ GlobalUserPreferences.save();
+ }));
items.add(new HeaderItem(R.string.settings_account));
items.add(new TextItem(R.string.sk_settings_profile, ()->UiUtils.launchWebBrowser(getActivity(), "https://"+session.domain+"/settings/profile"), R.drawable.ic_fluent_open_24_regular));
diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java
index a5ad255fc..da595a0d5 100644
--- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java
+++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java
@@ -311,7 +311,11 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{
favorite.setSelected(!item.status.favourited);
AccountSessionManager.getInstance().getAccount(item.accountID).getStatusInteractionController().setFavorited(item.status, !item.status.favourited, r->{
if (item.status.favourited) {
- v.startAnimation(animSet);
+ if(GlobalUserPreferences.reduceMotion){
+ v.startAnimation(opacityIn);
+ }else{
+ v.startAnimation(animSet);
+ }
} else {
v.startAnimation(opacityIn);
}
diff --git a/mastodon/src/main/res/drawable/ic_fluent_chat_multiple_24_regular_text.xml b/mastodon/src/main/res/drawable/ic_fluent_chat_multiple_24_regular_text.xml
new file mode 100644
index 000000000..eb2b42580
--- /dev/null
+++ b/mastodon/src/main/res/drawable/ic_fluent_chat_multiple_24_regular_text.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/mastodon/src/main/res/drawable/ic_fluent_chat_multiple_24_selector_text.xml b/mastodon/src/main/res/drawable/ic_fluent_chat_multiple_24_selector_text.xml
new file mode 100644
index 000000000..d1ad62c0f
--- /dev/null
+++ b/mastodon/src/main/res/drawable/ic_fluent_chat_multiple_24_selector_text.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/mastodon/src/main/res/drawable/ic_fluent_custom_alert_latest_24_regular.xml b/mastodon/src/main/res/drawable/ic_fluent_custom_alert_latest_24_regular.xml
new file mode 100644
index 000000000..fef28319b
--- /dev/null
+++ b/mastodon/src/main/res/drawable/ic_fluent_custom_alert_latest_24_regular.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/mastodon/src/main/res/layout/display_item_footer.xml b/mastodon/src/main/res/layout/display_item_footer.xml
index b41397197..d3aa1c3db 100644
--- a/mastodon/src/main/res/layout/display_item_footer.xml
+++ b/mastodon/src/main/res/layout/display_item_footer.xml
@@ -17,7 +17,7 @@
android:layout_width="wrap_content"
android:layout_height="24dp"
android:layout_gravity="center"
- android:drawableStart="@drawable/ic_fluent_chat_multiple_24_regular"
+ android:drawableStart="@drawable/ic_fluent_chat_multiple_24_selector_text"
android:drawablePadding="8dp"
android:drawableTint="?android:textColorSecondary"
android:gravity="center_vertical"
diff --git a/mastodon/src/main/res/values-de-rDE/strings_sk.xml b/mastodon/src/main/res/values-de-rDE/strings_sk.xml
index 1af340463..fbdc82e94 100644
--- a/mastodon/src/main/res/values-de-rDE/strings_sk.xml
+++ b/mastodon/src/main/res/values-de-rDE/strings_sk.xml
@@ -4,14 +4,14 @@
Angeheftet
Löschen und neu erstellen
Beitrag löschen und neu erstellen
- Bist du dir sicher, dass du diesen Beitrag löschen und neu erstellen möchtest?
+ Bist du dir sicher, dass du diesen Beitrag löschen und neu erstellen möchtest\?
An Profil anheften
Beitrag an Profil anheften
Möchtest du den Beitrag an dein Profil anheften?
Wird angeheftet…
Von Profil lösen
Angehefteten Beitrag von Profil lösen
- Bist du dir sicher, dass du den angehefteten Beitrag von deinem Profil lösen möchtest?
+ Bist du dir sicher, dass du den angehefteten Beitrag von deinem Profil lösen möchtest\?
Wird vom Profil gelöst…
Bildbeschreibung
Nicht gelistet
@@ -37,7 +37,7 @@
Listen mit %s
Inhaltswarnungen immer ausklappen
Laufschrift in Titelleisten deaktivieren
- Tröt Trennung deaktivieren
+ Beitrags Trennung deaktivieren
Veröffentlichen Schaltfläche verschieben
Zu Moshidon beitragen
Föderierte Timeline anzeigen
@@ -75,10 +75,10 @@
Spenden
Benachrichtigung löschen
Benachrichtigung löschen
- Benachrichtigung wirklich löschen?
+ Benachrichtigung wirklich löschen\?
Alle Benachrichtigungen löschen
Alle löschen
- Wirklich alle Benachrichtigungen löschen?
+ Wirklich alle Benachrichtigungen löschen\?
Löschen von Benachrichtigungen aktivieren
Veröffentlichen-Button-Text
Veröffentlichen-Button-Text anpassen
@@ -111,9 +111,9 @@
Entwurf
Planen
Entwurf löschen
- Möchtest du diesen entworfenen Beitrag wirklich löschen?
+ Möchtest du diesen entworfenen Beitrag wirklich löschen\?
Geplanten Beitrag löschen
- Möchtest du diesen geplanten Beitrag wirklich löschen?
+ Möchtest du diesen geplanten Beitrag wirklich löschen\?
Entwurf oder Planen
Beitrag wird als Entwurf gespeichert.
Geplant für
@@ -134,4 +134,6 @@
Die enthaltenen Bilder haben keine Beschreibung. Bitte füge eine Beschreibung hinzu, damit auch sehbehinderte Personen teilnehmen können.
Kürzlich verwendet
Kürzlich verwendete Emojis löschen
-
\ No newline at end of file
+ Deaktiviere die Funktion "Veröffentlichen Schaltfläche verschieben", um eine Anpassung zu ermöglichen.
+ Nur neueste Benachrichtigung behalten
+
diff --git a/mastodon/src/main/res/values/strings_sk.xml b/mastodon/src/main/res/values/strings_sk.xml
index 8000d628a..6ff34be41 100644
--- a/mastodon/src/main/res/values/strings_sk.xml
+++ b/mastodon/src/main/res/values/strings_sk.xml
@@ -136,6 +136,7 @@
Recently used
Clear recently used emoji
Disable "Relocate publish button" to allow customization
+ Keep only latest notification
Add new poll option