use proper defaults for notification. fix sound playing twice on Android 8

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/services/NotificationService.java | 24 
1 file changed, 12 insertions(+), 12 deletions(-)

Detailed changes

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

@@ -4,6 +4,7 @@ import android.app.Notification;
 import android.app.PendingIntent;
 import android.content.Intent;
 import android.content.SharedPreferences;
+import android.content.res.Resources;
 import android.graphics.Bitmap;
 import android.graphics.Typeface;
 import android.net.Uri;
@@ -271,7 +272,7 @@ public class NotificationService {
 				for(Map.Entry<String,ArrayList<Message>> entry : notifications.entrySet()) {
 					Builder singleBuilder = buildSingleConversations(entry.getValue());
 					singleBuilder.setGroup(CONVERSATIONS_GROUP);
-					modifyForSoundVibrationAndLight(singleBuilder,notify,preferences);
+					setNotificationColor(singleBuilder);
 					notificationManager.notify(entry.getKey(), NOTIFICATION_ID ,singleBuilder.build());
 				}
 				notificationManager.notify(NOTIFICATION_ID, mBuilder.build());
@@ -281,10 +282,11 @@ public class NotificationService {
 
 
 	private void modifyForSoundVibrationAndLight(Builder mBuilder, boolean notify, SharedPreferences preferences) {
-		final String ringtone = preferences.getString("notification_ringtone", null);
-		final boolean vibrate = preferences.getBoolean("vibrate_on_notification", true);
-		final boolean led = preferences.getBoolean("led", true);
-		final boolean headsup = preferences.getBoolean("notification_headsup", mXmppConnectionService.getResources().getBoolean(R.bool.headsup_notifications));
+		final Resources resources = mXmppConnectionService.getResources();
+		final String ringtone = preferences.getString("notification_ringtone", resources.getString(R.string.notification_ringtone));
+		final boolean vibrate = preferences.getBoolean("vibrate_on_notification", resources.getBoolean(R.bool.vibrate_on_notification));
+		final boolean led = preferences.getBoolean("led", resources.getBoolean(R.bool.led));
+		final boolean headsup = preferences.getBoolean("notification_headsup", resources.getBoolean(R.bool.headsup_notifications));
 		if (notify && !isQuietHours()) {
 			if (vibrate) {
 				final int dat = 70;
@@ -293,13 +295,11 @@ public class NotificationService {
 			} else {
 				mBuilder.setVibrate(new long[]{0});
 			}
-			if (ringtone != null) {
-				Uri uri = Uri.parse(ringtone);
-				try {
-					mBuilder.setSound(fixRingtoneUri(uri));
-				} catch (SecurityException e) {
-					Log.d(Config.LOGTAG,"unable to use custom notification sound "+uri.toString());
-				}
+			Uri uri = Uri.parse(ringtone);
+			try {
+				mBuilder.setSound(fixRingtoneUri(uri));
+			} catch (SecurityException e) {
+				Log.d(Config.LOGTAG,"unable to use custom notification sound "+uri.toString());
 			}
 		}
 		if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {