Display contact name or username in call notification

This commit is contained in:
Sylvain Berfini 2012-07-25 10:58:46 +02:00
parent 6e207f19ac
commit 45bd91b7a6
3 changed files with 32 additions and 29 deletions

View file

@ -239,7 +239,8 @@ public final class LinphoneService extends Service implements LinphoneServiceLis
} catch (Exception e) { } catch (Exception e) {
bm = BitmapFactory.decodeResource(getResources(), R.drawable.unknown_small); bm = BitmapFactory.decodeResource(getResources(), R.drawable.unknown_small);
} }
mIncallNotif = Compatibility.createInCallNotification(getApplicationContext(), mNotificationTitle, getString(notificationTextId), inconId, bm, mNotifContentIntent); String name = address.getDisplayName() == null ? address.getUserName() : address.getDisplayName();
mIncallNotif = Compatibility.createInCallNotification(getApplicationContext(), mNotificationTitle, getString(notificationTextId), inconId, bm, name, mNotifContentIntent);
notifyWrapper(INCALL_NOTIF_ID, mIncallNotif); notifyWrapper(INCALL_NOTIF_ID, mIncallNotif);
} }

View file

@ -11,47 +11,49 @@ import android.graphics.Bitmap;
@TargetApi(16) @TargetApi(16)
public class ApiSixteenPlus { public class ApiSixteenPlus {
public static Notification createMessageNotification(Context context, int msgCount, String msgSender, String msg, Bitmap contactIcon, PendingIntent intent) { public static Notification createMessageNotification(Context context,
int msgCount, String msgSender, String msg, Bitmap contactIcon,
PendingIntent intent) {
String title, summary; String title, summary;
if (msgCount == 1) { if (msgCount == 1) {
title = "Unread message from %s".replace("%s", msgSender); title = "Unread message from %s".replace("%s", msgSender);
summary = ""; summary = "";
} else { } else {
title = "%i unread messages".replace("%i", String.valueOf(msgCount)); title = "%i unread messages"
summary = "+" + (msgCount - 1) + " more"; .replace("%i", String.valueOf(msgCount));
summary = "";
} }
Notification notif = new Notification.BigPictureStyle( Notification notif = new Notification.BigPictureStyle(
new Notification.Builder(context) new Notification.Builder(context)
.setContentTitle(title) .setContentTitle(title)
.setContentText(msg) .setContentText(msg)
.setSmallIcon(R.drawable.chat_icon_default) .setSmallIcon(R.drawable.chat_icon_over)
.setAutoCancel(true) .setAutoCancel(true)
.setDefaults(Notification.DEFAULT_LIGHTS | Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE) .setDefaults(
.setWhen(System.currentTimeMillis()) Notification.DEFAULT_LIGHTS
.setLargeIcon(contactIcon)) | Notification.DEFAULT_SOUND
.setSummaryText(summary) | Notification.DEFAULT_VIBRATE)
.build(); .setWhen(System.currentTimeMillis())
.setLargeIcon(contactIcon)).setSummaryText(summary)
.build();
notif.contentIntent = intent; notif.contentIntent = intent;
return notif; return notif;
} }
public static Notification createInCallNotification(Context context, public static Notification createInCallNotification(Context context,
String title, String msg, int iconID, Bitmap contactIcon, String title, String msg, int iconID, Bitmap contactIcon,
PendingIntent intent) { String contactName, PendingIntent intent) {
Notification notif = new Notification.BigPictureStyle( Notification notif = new Notification.BigPictureStyle(
new Notification.Builder(context) new Notification.Builder(context).setContentTitle(contactName)
.setContentTitle(title) .setContentText(msg).setSmallIcon(iconID)
.setContentText(msg) .setAutoCancel(false)
.setSmallIcon(iconID) .setWhen(System.currentTimeMillis())
.setAutoCancel(false) .setLargeIcon(contactIcon)).build();
.setWhen(System.currentTimeMillis())
.setLargeIcon(contactIcon))
.build();
notif.contentIntent = intent; notif.contentIntent = intent;
return notif; return notif;
} }
} }

View file

@ -152,11 +152,11 @@ public class Compatibility {
return notif; return notif;
} }
public static Notification createInCallNotification(Context context, String title, String msg, int iconID, Bitmap contactIcon, PendingIntent intent) { public static Notification createInCallNotification(Context context, String title, String msg, int iconID, Bitmap contactIcon, String contactName, PendingIntent intent) {
Notification notif = null; Notification notif = null;
if (Version.sdkAboveOrEqual(16)) { if (Version.sdkAboveOrEqual(16)) {
notif = ApiSixteenPlus.createInCallNotification(context, title, msg, iconID, contactIcon, intent); notif = ApiSixteenPlus.createInCallNotification(context, title, msg, iconID, contactIcon, contactName, intent);
} else { } else {
notif = new Notification(); notif = new Notification();
notif.iconLevel = 0; notif.iconLevel = 0;