fix silent in-thread notification

Fixes #5090
Closes #5091
// FREEBIE
fork-5.53.8
Christian Ascheberg 2016-01-18 13:39:13 +01:00 zatwierdzone przez Moxie Marlinspike
rodzic 39a0567e52
commit 4049b997ee
1 zmienionych plików z 14 dodań i 6 usunięć

Wyświetl plik

@ -25,7 +25,6 @@ import android.content.Intent;
import android.database.Cursor; import android.database.Cursor;
import android.media.AudioAttributes; import android.media.AudioAttributes;
import android.media.AudioManager; import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.Ringtone; import android.media.Ringtone;
import android.media.RingtoneManager; import android.media.RingtoneManager;
import android.net.Uri; import android.net.Uri;
@ -58,7 +57,6 @@ import org.thoughtcrime.securesms.util.SpanUtil;
import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.TextSecurePreferences;
import org.whispersystems.textsecure.api.messages.TextSecureEnvelope; import org.whispersystems.textsecure.api.messages.TextSecureEnvelope;
import java.io.IOException;
import java.util.List; import java.util.List;
import java.util.ListIterator; import java.util.ListIterator;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@ -290,18 +288,28 @@ public class MessageNotifier {
if (ringtone == null) { if (ringtone == null) {
Log.w(TAG, "ringtone preference was null."); Log.w(TAG, "ringtone preference was null.");
return; return;
} else { }
uri = Uri.parse(ringtone);
uri = Uri.parse(ringtone);
if (uri == null) {
Log.w(TAG, "couldn't parse ringtone uri " + ringtone);
return;
} }
} }
if (uri == null) { if (uri.toString().isEmpty()) {
Log.w(TAG, "couldn't parse ringtone uri " + TextSecurePreferences.getNotificationRingtone(context)); Log.d(TAG, "ringtone uri is empty");
return; return;
} }
Ringtone ringtone = RingtoneManager.getRingtone(context, uri); Ringtone ringtone = RingtoneManager.getRingtone(context, uri);
if (ringtone == null) {
Log.w(TAG, "ringtone is null");
return;
}
if (Build.VERSION.SDK_INT >= 21) { if (Build.VERSION.SDK_INT >= 21) {
ringtone.setAudioAttributes(new AudioAttributes.Builder().setContentType(AudioAttributes.CONTENT_TYPE_UNKNOWN) ringtone.setAudioAttributes(new AudioAttributes.Builder().setContentType(AudioAttributes.CONTENT_TYPE_UNKNOWN)
.setUsage(AudioAttributes.USAGE_NOTIFICATION_COMMUNICATION_INSTANT) .setUsage(AudioAttributes.USAGE_NOTIFICATION_COMMUNICATION_INSTANT)