Mark as read - use message ID retrieved from server

Minimal set of changes, to be cleaned-up.

Signed-off-by: Dariusz Olszewski <starypatyk@users.noreply.github.com>
This commit is contained in:
Dariusz Olszewski 2022-07-10 22:27:30 +02:00 committed by Marcel Hibbe (Rebase PR Action)
parent f977b566a5
commit 7243142676
2 changed files with 12 additions and 3 deletions

View File

@ -247,6 +247,8 @@ public class NotificationWorker extends Worker {
} }
} }
decryptedPushMessage.setObjectId(notification.getObjectId());
showNotification(intent); showNotification(intent);
} }
@ -427,7 +429,9 @@ public class NotificationWorker extends Worker {
actualIntent.putExtra(BundleKeys.INSTANCE.getKEY_SYSTEM_NOTIFICATION_ID(), systemNotificationId); actualIntent.putExtra(BundleKeys.INSTANCE.getKEY_SYSTEM_NOTIFICATION_ID(), systemNotificationId);
actualIntent.putExtra(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN(), decryptedPushMessage.getId()); actualIntent.putExtra(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN(), decryptedPushMessage.getId());
if (decryptedPushMessage.getNotificationId() != null) { if (decryptedPushMessage.getNotificationId() != null) {
actualIntent.putExtra(BundleKeys.KEY_MESSAGE_ID, decryptedPushMessage.getNotificationId().intValue()); // TODO - improve parsing when server returns unexpected objectId
int messageId = Integer.parseInt(decryptedPushMessage.getObjectId().split("/")[1]);
actualIntent.putExtra(BundleKeys.KEY_MESSAGE_ID, messageId);
} }
int intentFlag; int intentFlag;

View File

@ -62,10 +62,13 @@ data class DecryptedPushMessage(
var text: String?, var text: String?,
@JsonIgnore @JsonIgnore
var timestamp: Long var timestamp: Long,
@JsonIgnore
var objectId: String?
) : Parcelable { ) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'
constructor() : this(null, null, "", null, 0, null, false, false, false, null, null, 0) constructor() : this(null, null, "", null, 0, null, false, false, false, null, null, 0, null)
override fun equals(other: Any?): Boolean { override fun equals(other: Any?): Boolean {
if (this === other) return true if (this === other) return true
@ -88,6 +91,7 @@ data class DecryptedPushMessage(
if (notificationUser != other.notificationUser) return false if (notificationUser != other.notificationUser) return false
if (text != other.text) return false if (text != other.text) return false
if (timestamp != other.timestamp) return false if (timestamp != other.timestamp) return false
if (objectId != other.objectId) return false
return true return true
} }
@ -105,6 +109,7 @@ data class DecryptedPushMessage(
result = 31 * result + (notificationUser?.hashCode() ?: 0) result = 31 * result + (notificationUser?.hashCode() ?: 0)
result = 31 * result + (text?.hashCode() ?: 0) result = 31 * result + (text?.hashCode() ?: 0)
result = 31 * result + (timestamp?.hashCode() ?: 0) result = 31 * result + (timestamp?.hashCode() ?: 0)
result = 31 * result + (objectId?.hashCode() ?: 0)
return result return result
} }
} }