Adding a toggle for custom notification icons

This commit is contained in:
LucasGGamerM
2022-12-23 11:33:08 -03:00
parent 33dfb2a30d
commit 009016a835
4 changed files with 25 additions and 10 deletions

View File

@@ -27,6 +27,7 @@ public class GlobalUserPreferences{
public static boolean disableMarquee; public static boolean disableMarquee;
public static boolean disableSwipe; public static boolean disableSwipe;
public static boolean voteButtonForSingleChoice; public static boolean voteButtonForSingleChoice;
public static boolean showDifferentiatedPushNoticationIcons;
public static ThemePreference theme; public static ThemePreference theme;
public static ColorPreference color; public static ColorPreference color;
@@ -50,6 +51,7 @@ public class GlobalUserPreferences{
showReplies=prefs.getBoolean("showReplies", true); showReplies=prefs.getBoolean("showReplies", true);
showBoosts=prefs.getBoolean("showBoosts", true); showBoosts=prefs.getBoolean("showBoosts", true);
loadNewPosts=prefs.getBoolean("loadNewPosts", true); loadNewPosts=prefs.getBoolean("loadNewPosts", true);
showDifferentiatedPushNoticationIcons=prefs.getBoolean("showDifferentiatedPushNoticationIcons", false);
showFederatedTimeline=prefs.getBoolean("showFederatedTimeline", !BuildConfig.BUILD_TYPE.equals("playRelease")); showFederatedTimeline=prefs.getBoolean("showFederatedTimeline", !BuildConfig.BUILD_TYPE.equals("playRelease"));
showInteractionCounts=prefs.getBoolean("showInteractionCounts", false); showInteractionCounts=prefs.getBoolean("showInteractionCounts", false);
alwaysExpandContentWarnings=prefs.getBoolean("alwaysExpandContentWarnings", false); alwaysExpandContentWarnings=prefs.getBoolean("alwaysExpandContentWarnings", false);
@@ -84,6 +86,7 @@ public class GlobalUserPreferences{
.putBoolean("alwaysExpandContentWarnings", alwaysExpandContentWarnings) .putBoolean("alwaysExpandContentWarnings", alwaysExpandContentWarnings)
.putBoolean("disableMarquee", disableMarquee) .putBoolean("disableMarquee", disableMarquee)
.putBoolean("disableSwipe", disableSwipe) .putBoolean("disableSwipe", disableSwipe)
.putBoolean("showDifferentiatedPushNoticationIcons", showDifferentiatedPushNoticationIcons)
.putInt("theme", theme.ordinal()) .putInt("theme", theme.ordinal())
.putString("color", color.name()) .putString("color", color.name())
.putString("recentLanguages", gson.toJson(recentLanguages)) .putString("recentLanguages", gson.toJson(recentLanguages))

View File

@@ -143,14 +143,19 @@ public class PushNotificationReceiver extends BroadcastReceiver{
.setCategory(Notification.CATEGORY_SOCIAL) .setCategory(Notification.CATEGORY_SOCIAL)
.setAutoCancel(true) .setAutoCancel(true)
.setColor(context.getColor(R.color.shortcut_icon_background)); .setColor(context.getColor(R.color.shortcut_icon_background));
switch (pn.notificationType) { if(GlobalUserPreferences.showDifferentiatedPushNoticationIcons){
case FAVORITE -> builder.setSmallIcon(R.drawable.ic_fluent_star_24_filled); switch (pn.notificationType) {
case REBLOG -> builder.setSmallIcon(R.drawable.ic_fluent_arrow_repeat_all_24_filled); case FAVORITE -> builder.setSmallIcon(R.drawable.ic_fluent_star_24_filled);
case FOLLOW -> builder.setSmallIcon(R.drawable.ic_fluent_person_add_24_filled); case REBLOG -> builder.setSmallIcon(R.drawable.ic_fluent_arrow_repeat_all_24_filled);
case MENTION -> builder.setSmallIcon(R.drawable.ic_fluent_mention_24_filled); case FOLLOW -> builder.setSmallIcon(R.drawable.ic_fluent_person_add_24_filled);
case POLL -> builder.setSmallIcon(R.drawable.ic_fluent_poll_24_filled); case MENTION -> builder.setSmallIcon(R.drawable.ic_fluent_mention_24_filled);
default -> builder.setSmallIcon(R.drawable.ic_ntf_logo); case POLL -> builder.setSmallIcon(R.drawable.ic_fluent_poll_24_filled);
default -> builder.setSmallIcon(R.drawable.ic_ntf_logo);
}
}else{
builder.setSmallIcon(R.drawable.ic_ntf_logo);
} }
if(avatar!=null){ if(avatar!=null){
builder.setLargeIcon(UiUtils.getBitmapFromDrawable(avatar)); builder.setLargeIcon(UiUtils.getBitmapFromDrawable(avatar));
} }

View File

@@ -9,6 +9,7 @@ import android.graphics.Canvas;
import android.graphics.Rect; import android.graphics.Rect;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.provider.Settings;
import android.view.Gravity; import android.view.Gravity;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.MenuItem; import android.view.MenuItem;
@@ -18,8 +19,6 @@ import android.view.WindowInsets;
import android.view.WindowManager; import android.view.WindowManager;
import android.view.animation.LinearInterpolator; import android.view.animation.LinearInterpolator;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.ImageButton; import android.widget.ImageButton;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.PopupMenu; import android.widget.PopupMenu;
@@ -52,7 +51,6 @@ import org.joinmastodon.android.ui.utils.UiUtils;
import org.joinmastodon.android.updater.GithubSelfUpdater; import org.joinmastodon.android.updater.GithubSelfUpdater;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Objects;
import java.util.function.Consumer; import java.util.function.Consumer;
import androidx.annotation.DrawableRes; import androidx.annotation.DrawableRes;
@@ -146,6 +144,8 @@ public class SettingsFragment extends MastodonToolbarFragment{
GlobalUserPreferences.save(); GlobalUserPreferences.save();
needAppRestart=true; needAppRestart=true;
})); }));
items.add(new SwitchItem(R.string.sk_settings_show_differentiated_notification_icons, R.drawable.ic_fluent_earth_24_regular, GlobalUserPreferences.showDifferentiatedPushNoticationIcons, this::onNotificationStyleChanged));
items.add(new HeaderItem(R.string.home_timeline)); items.add(new HeaderItem(R.string.home_timeline));
items.add(new SwitchItem(R.string.sk_settings_show_replies, R.drawable.ic_fluent_chat_multiple_24_regular, GlobalUserPreferences.showReplies, i->{ items.add(new SwitchItem(R.string.sk_settings_show_replies, R.drawable.ic_fluent_chat_multiple_24_regular, GlobalUserPreferences.showReplies, i->{
@@ -355,6 +355,12 @@ public class SettingsFragment extends MastodonToolbarFragment{
needUpdateNotificationSettings=true; needUpdateNotificationSettings=true;
} }
private void onNotificationStyleChanged(SwitchItem item){
GlobalUserPreferences.showDifferentiatedPushNoticationIcons=item.checked;
GlobalUserPreferences.save();
}
private void onNotificationsPolicyChanged(PushSubscription.Policy policy){ private void onNotificationsPolicyChanged(PushSubscription.Policy policy){
PushSubscription subscription=getPushSubscription(); PushSubscription subscription=getPushSubscription();
PushSubscription.Policy prevPolicy=subscription.policy; PushSubscription.Policy prevPolicy=subscription.policy;

View File

@@ -78,6 +78,7 @@
<string name="sk_clear_all_notifications_confirm_action">Delete all</string> <string name="sk_clear_all_notifications_confirm_action">Delete all</string>
<string name="sk_clear_all_notifications_confirm">Are you sure you want to clear all notifications\?</string> <string name="sk_clear_all_notifications_confirm">Are you sure you want to clear all notifications\?</string>
<string name="sk_enable_delete_notifications">Enable deleting notifications</string> <string name="sk_enable_delete_notifications">Enable deleting notifications</string>
<string name="sk_settings_show_differentiated_notification_icons">Custom icons for interactions</string>
<string name="sk_settings_publish_button_text">Publish button text</string> <string name="sk_settings_publish_button_text">Publish button text</string>
<string name="sk_settings_publish_button_text_title">Customize Publish button text</string> <string name="sk_settings_publish_button_text_title">Customize Publish button text</string>
<string name="sk_settings_hide_translate_in_timeline">Hide translate button in timeline</string> <string name="sk_settings_hide_translate_in_timeline">Hide translate button in timeline</string>