fix: incoming ringer fix on receiving call, call notification priorities and notification channel update
This commit is contained in:
parent
ad9cd8b231
commit
23e644150a
|
@ -44,14 +44,15 @@ public class NotificationChannels {
|
|||
private static final String TAG = NotificationChannels.class.getSimpleName();
|
||||
|
||||
private static final int VERSION_MESSAGES_CATEGORY = 2;
|
||||
private static final int VERSION_SESSION_CALLS = 3;
|
||||
|
||||
private static final int VERSION = 2;
|
||||
private static final int VERSION = 3;
|
||||
|
||||
private static final String CATEGORY_MESSAGES = "messages";
|
||||
private static final String CONTACT_PREFIX = "contact_";
|
||||
private static final String MESSAGES_PREFIX = "messages_";
|
||||
|
||||
public static final String CALLS = "calls_v2";
|
||||
public static final String CALLS = "calls_v3";
|
||||
public static final String FAILURES = "failures";
|
||||
public static final String APP_UPDATES = "app_updates";
|
||||
public static final String BACKUPS = "backups_v2";
|
||||
|
@ -427,7 +428,7 @@ public class NotificationChannels {
|
|||
notificationManager.createNotificationChannelGroup(messagesGroup);
|
||||
|
||||
NotificationChannel messages = new NotificationChannel(getMessagesChannel(context), context.getString(R.string.NotificationChannel_messages), NotificationManager.IMPORTANCE_HIGH);
|
||||
NotificationChannel calls = new NotificationChannel(CALLS, context.getString(R.string.NotificationChannel_calls), NotificationManager.IMPORTANCE_DEFAULT);
|
||||
NotificationChannel calls = new NotificationChannel(CALLS, context.getString(R.string.NotificationChannel_calls), NotificationManager.IMPORTANCE_HIGH);
|
||||
NotificationChannel failures = new NotificationChannel(FAILURES, context.getString(R.string.NotificationChannel_failures), NotificationManager.IMPORTANCE_HIGH);
|
||||
NotificationChannel backups = new NotificationChannel(BACKUPS, context.getString(R.string.NotificationChannel_backups), NotificationManager.IMPORTANCE_LOW);
|
||||
NotificationChannel lockedStatus = new NotificationChannel(LOCKED_STATUS, context.getString(R.string.NotificationChannel_locked_status), NotificationManager.IMPORTANCE_LOW);
|
||||
|
@ -439,6 +440,7 @@ public class NotificationChannels {
|
|||
setLedPreference(messages, TextSecurePreferences.getNotificationLedColor(context));
|
||||
|
||||
calls.setShowBadge(false);
|
||||
calls.setSound(null, null);
|
||||
backups.setShowBadge(false);
|
||||
lockedStatus.setShowBadge(false);
|
||||
other.setShowBadge(false);
|
||||
|
@ -463,6 +465,8 @@ public class NotificationChannels {
|
|||
notificationManager.deleteNotificationChannel("locked_status");
|
||||
notificationManager.deleteNotificationChannel("backups");
|
||||
notificationManager.deleteNotificationChannel("other");
|
||||
} if (oldVersion < VERSION_SESSION_CALLS) {
|
||||
notificationManager.deleteNotificationChannel("calls_v2");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -15,7 +15,6 @@ import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
|||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import org.session.libsession.utilities.Address
|
||||
import org.session.libsession.utilities.FutureTaskListener
|
||||
import org.session.libsession.utilities.TextSecurePreferences
|
||||
import org.session.libsession.utilities.Util
|
||||
import org.session.libsession.utilities.recipients.Recipient
|
||||
import org.session.libsignal.utilities.Log
|
||||
|
@ -310,9 +309,8 @@ class WebRtcCallService: Service(), PeerConnection.Observer {
|
|||
callManager.onIncomingRing(offer, callId, recipient, timestamp)
|
||||
callManager.postConnectionEvent(STATE_LOCAL_RINGING)
|
||||
callManager.postViewModelState(CallViewModel.State.CALL_RINGING)
|
||||
if (TextSecurePreferences.isCallNotificationsEnabled(this)) {
|
||||
callManager.startIncomingRinger()
|
||||
}
|
||||
callManager.initializeAudioForCall()
|
||||
callManager.startIncomingRinger()
|
||||
registerPowerButtonReceiver()
|
||||
}
|
||||
|
||||
|
|
|
@ -28,12 +28,14 @@ class CallNotificationBuilder {
|
|||
val contentIntent = Intent(context, WebRtcCallActivity::class.java)
|
||||
.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)
|
||||
|
||||
val pendingIntent = PendingIntent.getActivity(context, 0, contentIntent, 0)
|
||||
val pendingIntent = PendingIntent.getActivity(context, 0, contentIntent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE)
|
||||
|
||||
val builder = NotificationCompat.Builder(context, NotificationChannels.CALLS)
|
||||
.setSmallIcon(R.drawable.ic_baseline_call_24)
|
||||
.setContentIntent(pendingIntent)
|
||||
.setOngoing(true)
|
||||
.setSound(null)
|
||||
.setSmallIcon(R.drawable.ic_baseline_call_24)
|
||||
.setContentIntent(pendingIntent)
|
||||
.setOngoing(true)
|
||||
.setPriority(NotificationCompat.PRIORITY_LOW)
|
||||
|
||||
recipient?.name?.let { name ->
|
||||
builder.setContentTitle(name)
|
||||
|
@ -42,7 +44,7 @@ class CallNotificationBuilder {
|
|||
when (type) {
|
||||
TYPE_INCOMING_CONNECTING -> {
|
||||
builder.setContentText(context.getString(R.string.CallNotificationBuilder_connecting))
|
||||
builder.priority = NotificationCompat.PRIORITY_MIN
|
||||
builder.priority = NotificationCompat.PRIORITY_LOW
|
||||
}
|
||||
TYPE_INCOMING_RINGING -> {
|
||||
builder.setContentText(context.getString(R.string.NotificationBarManager__incoming_signal_call))
|
||||
|
@ -89,7 +91,7 @@ class CallNotificationBuilder {
|
|||
val intent = Intent(context, WebRtcCallService::class.java)
|
||||
.setAction(action)
|
||||
|
||||
val pendingIntent = PendingIntent.getService(context, 0, intent, 0)
|
||||
val pendingIntent = PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT or PendingIntent.FLAG_IMMUTABLE)
|
||||
|
||||
return NotificationCompat.Action(iconResId, context.getString(titleResId), pendingIntent)
|
||||
}
|
||||
|
@ -100,7 +102,7 @@ class CallNotificationBuilder {
|
|||
val intent = Intent(context, WebRtcCallActivity::class.java)
|
||||
.setAction(action)
|
||||
|
||||
val pendingIntent = PendingIntent.getActivity(context, 0, intent, 0)
|
||||
val pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT or PendingIntent.FLAG_IMMUTABLE)
|
||||
|
||||
return NotificationCompat.Action(iconResId, context.getString(titleResId), pendingIntent)
|
||||
}
|
||||
|
|
|
@ -4,18 +4,13 @@ import android.content.BroadcastReceiver
|
|||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.IntentFilter
|
||||
import android.media.AudioFocusRequest
|
||||
import android.media.AudioManager
|
||||
import android.media.SoundPool
|
||||
import android.net.Uri
|
||||
import android.os.Build
|
||||
import android.os.HandlerThread
|
||||
import network.loki.messenger.R
|
||||
import org.session.libsession.utilities.ServiceUtil
|
||||
import org.session.libsession.utilities.concurrent.SignalExecutors
|
||||
import org.session.libsignal.utilities.Log
|
||||
import org.thoughtcrime.securesms.webrtc.AudioManagerCommand
|
||||
import org.thoughtcrime.securesms.webrtc.audio.SignalBluetoothManager.State
|
||||
|
||||
private val TAG = Log.tag(SignalAudioManager::class.java)
|
||||
|
||||
|
@ -347,7 +342,6 @@ class SignalAudioManager(private val context: Context,
|
|||
private fun startIncomingRinger(vibrate: Boolean) {
|
||||
Log.i(TAG, "startIncomingRinger(): vibrate: $vibrate")
|
||||
androidAudioManager.mode = AudioManager.MODE_RINGTONE
|
||||
setMicrophoneMute(false)
|
||||
setDefaultAudioDevice(AudioDevice.SPEAKER_PHONE, false)
|
||||
|
||||
incomingRinger.start(vibrate)
|
||||
|
|
Loading…
Reference in New Issue