Use theme colour for notifications

Stephen Paul Weber created

Change summary

src/main/java/eu/siacs/conversations/services/NotificationService.java   | 5 
src/main/java/eu/siacs/conversations/services/XmppConnectionService.java | 2 
src/main/java/eu/siacs/conversations/ui/SettingsActivity.java            | 1 
3 files changed, 7 insertions(+), 1 deletion(-)

Detailed changes

src/main/java/eu/siacs/conversations/services/NotificationService.java 🔗

@@ -28,6 +28,7 @@ import android.text.SpannableString;
 import android.text.style.StyleSpan;
 import android.util.DisplayMetrics;
 import android.util.Log;
+import android.util.TypedValue;
 
 import androidx.annotation.RequiresApi;
 import androidx.core.app.NotificationCompat;
@@ -750,7 +751,9 @@ public class NotificationService {
     }
 
     private void setNotificationColor(final Builder mBuilder) {
-        mBuilder.setColor(ContextCompat.getColor(mXmppConnectionService, R.color.perpy));
+        TypedValue typedValue = new TypedValue();
+        mXmppConnectionService.getTheme().resolveAttribute(R.attr.colorPrimary, typedValue, true);
+        mBuilder.setColor(typedValue.data);
     }
 
     public void updateNotification() {

src/main/java/eu/siacs/conversations/services/XmppConnectionService.java 🔗

@@ -137,6 +137,7 @@ import eu.siacs.conversations.utils.Resolver;
 import eu.siacs.conversations.utils.SerialSingleThreadExecutor;
 import eu.siacs.conversations.utils.StringUtils;
 import eu.siacs.conversations.utils.TorServiceUtils;
+import eu.siacs.conversations.utils.ThemeHelper;
 import eu.siacs.conversations.utils.WakeLockHelper;
 import eu.siacs.conversations.utils.XmppUri;
 import eu.siacs.conversations.xml.Element;
@@ -1133,6 +1134,7 @@ public class XmppConnectionService extends Service {
     @SuppressLint("TrulyRandom")
     @Override
     public void onCreate() {
+        setTheme(ThemeHelper.find(this));
         if (Compatibility.runsTwentySix()) {
             mNotificationService.initializeChannels();
         }

src/main/java/eu/siacs/conversations/ui/SettingsActivity.java 🔗

@@ -394,6 +394,7 @@ public class SettingsActivity extends XmppActivity implements
 		} else if (name.equals(THEME)) {
 			final int theme = findTheme();
 			if (this.mTheme != theme) {
+				xmppConnectionService.setTheme(theme);
 				recreate();
 			}
 		} else if(name.equals(PREVENT_SCREENSHOTS)){