Notifications improvements
This commit is contained in:
parent
2d905fba50
commit
fec86cacc8
7 changed files with 26 additions and 9 deletions
|
@ -931,10 +931,6 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick
|
||||||
changeCurrentFragment(FragmentsAvailable.ACCOUNT_SETTINGS, bundle);
|
changeCurrentFragment(FragmentsAvailable.ACCOUNT_SETTINGS, bundle);
|
||||||
}
|
}
|
||||||
|
|
||||||
public StatusFragment getStatusFragment() {
|
|
||||||
return statusFragment;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void refreshMissedChatCountDisplay() {
|
public void refreshMissedChatCountDisplay() {
|
||||||
displayMissedChats(LinphoneManager.getInstance().getUnreadMessageCount());
|
displayMissedChats(LinphoneManager.getInstance().getUnreadMessageCount());
|
||||||
}
|
}
|
||||||
|
@ -958,6 +954,9 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick
|
||||||
missedChats.clearAnimation();
|
missedChats.clearAnimation();
|
||||||
missedChats.setVisibility(View.GONE);
|
missedChats.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
if (currentFragment == FragmentsAvailable.CHAT_LIST) {
|
||||||
|
((ChatRoomsFragment)fragment).invalidate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void displayCustomToast(final String message, final int duration) {
|
public void displayCustomToast(final String message, final int duration) {
|
||||||
|
|
|
@ -189,6 +189,12 @@ public class ChatRoomsFragment extends Fragment implements ContactsUpdatedListen
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void invalidate() {
|
||||||
|
if (mChatRoomsAdapter != null) {
|
||||||
|
mChatRoomsAdapter.notifyDataSetChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
|
|
|
@ -30,10 +30,12 @@ import android.graphics.Bitmap;
|
||||||
import android.graphics.drawable.Icon;
|
import android.graphics.drawable.Icon;
|
||||||
|
|
||||||
import org.linphone.R;
|
import org.linphone.R;
|
||||||
|
import org.linphone.mediastream.Log;
|
||||||
import org.linphone.notifications.Notifiable;
|
import org.linphone.notifications.Notifiable;
|
||||||
import org.linphone.notifications.NotifiableMessage;
|
import org.linphone.notifications.NotifiableMessage;
|
||||||
import org.linphone.notifications.NotificationBroadcastReceiver;
|
import org.linphone.notifications.NotificationBroadcastReceiver;
|
||||||
|
|
||||||
|
import static org.linphone.compatibility.Compatibility.CHAT_NOTIFICATIONS_GROUP;
|
||||||
import static org.linphone.compatibility.Compatibility.INTENT_LOCAL_IDENTITY;
|
import static org.linphone.compatibility.Compatibility.INTENT_LOCAL_IDENTITY;
|
||||||
import static org.linphone.compatibility.Compatibility.INTENT_NOTIF_ID;
|
import static org.linphone.compatibility.Compatibility.INTENT_NOTIF_ID;
|
||||||
import static org.linphone.compatibility.Compatibility.INTENT_REPLY_NOTIF_ACTION;
|
import static org.linphone.compatibility.Compatibility.INTENT_REPLY_NOTIF_ACTION;
|
||||||
|
@ -64,20 +66,24 @@ public class ApiTwentyEightPlus {
|
||||||
for (NotifiableMessage message : notif.getMessages()) {
|
for (NotifiableMessage message : notif.getMessages()) {
|
||||||
Icon userIcon = Icon.createWithBitmap(message.getSenderBitmap());
|
Icon userIcon = Icon.createWithBitmap(message.getSenderBitmap());
|
||||||
Person user = new Person.Builder().setName(message.getSender()).setIcon(userIcon).build();
|
Person user = new Person.Builder().setName(message.getSender()).setIcon(userIcon).build();
|
||||||
style.addMessage(message.getMessage(), message.getTime(), user);
|
style.addMessage(message.getMessage(), message.getTime() * 1000, user);
|
||||||
}
|
}
|
||||||
if (notif.isGroup()) {
|
if (notif.isGroup()) {
|
||||||
style.setConversationTitle(notif.getGroupTitle());
|
style.setConversationTitle(notif.getGroupTitle());
|
||||||
}
|
}
|
||||||
style.setGroupConversation(notif.isGroup());
|
style.setGroupConversation(notif.isGroup());
|
||||||
|
|
||||||
|
Log.e("System current time " + System.currentTimeMillis());
|
||||||
|
Log.e("Message timestamp " + notif.getMessages().get(0).getTime());
|
||||||
|
|
||||||
return new Notification.Builder(context, context.getString(R.string.notification_channel_id))
|
return new Notification.Builder(context, context.getString(R.string.notification_channel_id))
|
||||||
.setSmallIcon(R.drawable.topbar_chat_notification)
|
.setSmallIcon(R.drawable.topbar_chat_notification)
|
||||||
.setAutoCancel(true)
|
.setAutoCancel(true)
|
||||||
.setContentIntent(intent)
|
.setContentIntent(intent)
|
||||||
.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE)
|
.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE | Notification.DEFAULT_LIGHTS)
|
||||||
.setLargeIcon(contactIcon)
|
.setLargeIcon(contactIcon)
|
||||||
.setCategory(Notification.CATEGORY_MESSAGE)
|
.setCategory(Notification.CATEGORY_MESSAGE)
|
||||||
|
.setGroup(CHAT_NOTIFICATIONS_GROUP)
|
||||||
.setVisibility(Notification.VISIBILITY_PRIVATE)
|
.setVisibility(Notification.VISIBILITY_PRIVATE)
|
||||||
.setPriority(Notification.PRIORITY_HIGH)
|
.setPriority(Notification.PRIORITY_HIGH)
|
||||||
.setNumber(notif.getMessages().size())
|
.setNumber(notif.getMessages().size())
|
||||||
|
|
|
@ -32,6 +32,7 @@ import org.linphone.notifications.Notifiable;
|
||||||
import org.linphone.notifications.NotifiableMessage;
|
import org.linphone.notifications.NotifiableMessage;
|
||||||
import org.linphone.notifications.NotificationBroadcastReceiver;
|
import org.linphone.notifications.NotificationBroadcastReceiver;
|
||||||
|
|
||||||
|
import static org.linphone.compatibility.Compatibility.CHAT_NOTIFICATIONS_GROUP;
|
||||||
import static org.linphone.compatibility.Compatibility.INTENT_ANSWER_CALL_NOTIF_ACTION;
|
import static org.linphone.compatibility.Compatibility.INTENT_ANSWER_CALL_NOTIF_ACTION;
|
||||||
import static org.linphone.compatibility.Compatibility.INTENT_HANGUP_CALL_NOTIF_ACTION;
|
import static org.linphone.compatibility.Compatibility.INTENT_HANGUP_CALL_NOTIF_ACTION;
|
||||||
import static org.linphone.compatibility.Compatibility.INTENT_LOCAL_IDENTITY;
|
import static org.linphone.compatibility.Compatibility.INTENT_LOCAL_IDENTITY;
|
||||||
|
@ -79,9 +80,10 @@ public class ApiTwentyFourPlus {
|
||||||
.setSmallIcon(R.drawable.topbar_chat_notification)
|
.setSmallIcon(R.drawable.topbar_chat_notification)
|
||||||
.setAutoCancel(true)
|
.setAutoCancel(true)
|
||||||
.setContentIntent(intent)
|
.setContentIntent(intent)
|
||||||
.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE)
|
.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE | Notification.DEFAULT_LIGHTS)
|
||||||
.setLargeIcon(contactIcon)
|
.setLargeIcon(contactIcon)
|
||||||
.setCategory(Notification.CATEGORY_MESSAGE)
|
.setCategory(Notification.CATEGORY_MESSAGE)
|
||||||
|
.setGroup(CHAT_NOTIFICATIONS_GROUP)
|
||||||
.setVisibility(Notification.VISIBILITY_PRIVATE)
|
.setVisibility(Notification.VISIBILITY_PRIVATE)
|
||||||
.setPriority(Notification.PRIORITY_HIGH)
|
.setPriority(Notification.PRIORITY_HIGH)
|
||||||
.setNumber(notif.getMessages().size())
|
.setNumber(notif.getMessages().size())
|
||||||
|
|
|
@ -51,7 +51,8 @@ public class ApiTwentyOnePlus {
|
||||||
.setAutoCancel(true)
|
.setAutoCancel(true)
|
||||||
.setContentIntent(intent)
|
.setContentIntent(intent)
|
||||||
.setDefaults(Notification.DEFAULT_SOUND
|
.setDefaults(Notification.DEFAULT_SOUND
|
||||||
| Notification.DEFAULT_VIBRATE)
|
| Notification.DEFAULT_VIBRATE
|
||||||
|
| Notification.DEFAULT_LIGHTS)
|
||||||
.setLargeIcon(contactIcon)
|
.setLargeIcon(contactIcon)
|
||||||
.setLights(ContextCompat.getColor(context, R.color.notification_color_led),
|
.setLights(ContextCompat.getColor(context, R.color.notification_color_led),
|
||||||
context.getResources().getInteger(R.integer.notification_ms_on),
|
context.getResources().getInteger(R.integer.notification_ms_on),
|
||||||
|
|
|
@ -35,6 +35,7 @@ import org.linphone.notifications.Notifiable;
|
||||||
import org.linphone.notifications.NotifiableMessage;
|
import org.linphone.notifications.NotifiableMessage;
|
||||||
import org.linphone.notifications.NotificationBroadcastReceiver;
|
import org.linphone.notifications.NotificationBroadcastReceiver;
|
||||||
|
|
||||||
|
import static org.linphone.compatibility.Compatibility.CHAT_NOTIFICATIONS_GROUP;
|
||||||
import static org.linphone.compatibility.Compatibility.INTENT_ANSWER_CALL_NOTIF_ACTION;
|
import static org.linphone.compatibility.Compatibility.INTENT_ANSWER_CALL_NOTIF_ACTION;
|
||||||
import static org.linphone.compatibility.Compatibility.INTENT_HANGUP_CALL_NOTIF_ACTION;
|
import static org.linphone.compatibility.Compatibility.INTENT_HANGUP_CALL_NOTIF_ACTION;
|
||||||
import static org.linphone.compatibility.Compatibility.INTENT_LOCAL_IDENTITY;
|
import static org.linphone.compatibility.Compatibility.INTENT_LOCAL_IDENTITY;
|
||||||
|
@ -112,9 +113,10 @@ public class ApiTwentySixPlus {
|
||||||
.setSmallIcon(R.drawable.topbar_chat_notification)
|
.setSmallIcon(R.drawable.topbar_chat_notification)
|
||||||
.setAutoCancel(true)
|
.setAutoCancel(true)
|
||||||
.setContentIntent(intent)
|
.setContentIntent(intent)
|
||||||
.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE)
|
.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE | Notification.DEFAULT_LIGHTS)
|
||||||
.setLargeIcon(contactIcon)
|
.setLargeIcon(contactIcon)
|
||||||
.setCategory(Notification.CATEGORY_MESSAGE)
|
.setCategory(Notification.CATEGORY_MESSAGE)
|
||||||
|
.setGroup(CHAT_NOTIFICATIONS_GROUP)
|
||||||
.setVisibility(Notification.VISIBILITY_PRIVATE)
|
.setVisibility(Notification.VISIBILITY_PRIVATE)
|
||||||
.setPriority(Notification.PRIORITY_HIGH)
|
.setPriority(Notification.PRIORITY_HIGH)
|
||||||
.setNumber(notif.getMessages().size())
|
.setNumber(notif.getMessages().size())
|
||||||
|
|
|
@ -32,6 +32,7 @@ import org.linphone.mediastream.Version;
|
||||||
import org.linphone.notifications.Notifiable;
|
import org.linphone.notifications.Notifiable;
|
||||||
|
|
||||||
public class Compatibility {
|
public class Compatibility {
|
||||||
|
public static final String CHAT_NOTIFICATIONS_GROUP = "CHAT_NOTIF_GROUP";
|
||||||
public static final String KEY_TEXT_REPLY = "key_text_reply";
|
public static final String KEY_TEXT_REPLY = "key_text_reply";
|
||||||
public static final String INTENT_NOTIF_ID = "NOTIFICATION_ID";
|
public static final String INTENT_NOTIF_ID = "NOTIFICATION_ID";
|
||||||
public static final String INTENT_REPLY_NOTIF_ACTION = "org.linphone.REPLY_ACTION";
|
public static final String INTENT_REPLY_NOTIF_ACTION = "org.linphone.REPLY_ACTION";
|
||||||
|
|
Loading…
Reference in a new issue