allow dnd overwrite for incoming calls
This commit is contained in:
parent
442b952700
commit
3c0b3f4b94
|
@ -72,6 +72,9 @@ public class NotificationService {
|
||||||
|
|
||||||
private static final int LED_COLOR = 0xff00ff00;
|
private static final int LED_COLOR = 0xff00ff00;
|
||||||
|
|
||||||
|
private static final int CALL_DAT = 120;
|
||||||
|
private static final long[] CALL_PATTERN = {0, 3 * CALL_DAT, CALL_DAT, CALL_DAT, 3 * CALL_DAT, CALL_DAT, CALL_DAT};
|
||||||
|
|
||||||
private static final String CONVERSATIONS_GROUP = "eu.siacs.conversations";
|
private static final String CONVERSATIONS_GROUP = "eu.siacs.conversations";
|
||||||
private static final int NOTIFICATION_ID_MULTIPLIER = 1024 * 1024;
|
private static final int NOTIFICATION_ID_MULTIPLIER = 1024 * 1024;
|
||||||
static final int FOREGROUND_NOTIFICATION_ID = NOTIFICATION_ID_MULTIPLIER * 4;
|
static final int FOREGROUND_NOTIFICATION_ID = NOTIFICATION_ID_MULTIPLIER * 4;
|
||||||
|
@ -167,6 +170,9 @@ public class NotificationService {
|
||||||
incomingCallsChannel.setLightColor(LED_COLOR);
|
incomingCallsChannel.setLightColor(LED_COLOR);
|
||||||
incomingCallsChannel.enableLights(true);
|
incomingCallsChannel.enableLights(true);
|
||||||
incomingCallsChannel.setGroup("calls");
|
incomingCallsChannel.setGroup("calls");
|
||||||
|
incomingCallsChannel.setBypassDnd(true);
|
||||||
|
incomingCallsChannel.enableVibration(true);
|
||||||
|
incomingCallsChannel.setVibrationPattern(CALL_PATTERN);
|
||||||
notificationManager.createNotificationChannel(incomingCallsChannel);
|
notificationManager.createNotificationChannel(incomingCallsChannel);
|
||||||
|
|
||||||
final NotificationChannel ongoingCallsChannel = new NotificationChannel("ongoing_calls",
|
final NotificationChannel ongoingCallsChannel = new NotificationChannel("ongoing_calls",
|
||||||
|
@ -351,10 +357,15 @@ public class NotificationService {
|
||||||
builder.setSmallIcon(R.drawable.ic_call_white_24dp);
|
builder.setSmallIcon(R.drawable.ic_call_white_24dp);
|
||||||
builder.setContentTitle(mXmppConnectionService.getString(R.string.rtp_state_incoming_call));
|
builder.setContentTitle(mXmppConnectionService.getString(R.string.rtp_state_incoming_call));
|
||||||
}
|
}
|
||||||
|
final Contact contact = id.getContact();
|
||||||
builder.setLargeIcon(mXmppConnectionService.getAvatarService().get(
|
builder.setLargeIcon(mXmppConnectionService.getAvatarService().get(
|
||||||
id.getContact(),
|
contact,
|
||||||
AvatarService.getSystemUiAvatarSize(mXmppConnectionService))
|
AvatarService.getSystemUiAvatarSize(mXmppConnectionService))
|
||||||
);
|
);
|
||||||
|
final Uri systemAccount = contact.getSystemAccount();
|
||||||
|
if (systemAccount != null) {
|
||||||
|
builder.addPerson(systemAccount.toString());
|
||||||
|
}
|
||||||
builder.setContentText(id.account.getRoster().getContact(id.with).getDisplayName());
|
builder.setContentText(id.account.getRoster().getContact(id.with).getDisplayName());
|
||||||
builder.setVisibility(NotificationCompat.VISIBILITY_PUBLIC);
|
builder.setVisibility(NotificationCompat.VISIBILITY_PUBLIC);
|
||||||
builder.setPriority(NotificationCompat.PRIORITY_HIGH);
|
builder.setPriority(NotificationCompat.PRIORITY_HIGH);
|
||||||
|
@ -579,10 +590,8 @@ public class NotificationService {
|
||||||
final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(mXmppConnectionService);
|
final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(mXmppConnectionService);
|
||||||
final Resources resources = mXmppConnectionService.getResources();
|
final Resources resources = mXmppConnectionService.getResources();
|
||||||
final String ringtone = preferences.getString("call_ringtone", resources.getString(R.string.incoming_call_ringtone));
|
final String ringtone = preferences.getString("call_ringtone", resources.getString(R.string.incoming_call_ringtone));
|
||||||
final int dat = 70;
|
mBuilder.setVibrate(CALL_PATTERN);
|
||||||
final long[] pattern = {0, 3 * dat, dat, dat, 3 * dat, dat, dat};
|
final Uri uri = Uri.parse(ringtone);
|
||||||
mBuilder.setVibrate(pattern);
|
|
||||||
Uri uri = Uri.parse(ringtone);
|
|
||||||
try {
|
try {
|
||||||
mBuilder.setSound(fixRingtoneUri(uri));
|
mBuilder.setSound(fixRingtoneUri(uri));
|
||||||
} catch (SecurityException e) {
|
} catch (SecurityException e) {
|
||||||
|
|
Loading…
Reference in a new issue