summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2020-02-21 02:21:58 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2020-02-21 02:21:58 +0000
commitef33e63fbd515898f1216c1ae9af12a1bb10f3e8 (patch)
treee70f61025c0e8a36f0229853e954f748a6a50da2
parent9bb03ebce29e157ca3d69914281fae019f87d4a3 (diff)
parentb2d00e02683db564832222dc6b29bb17d0e22d86 (diff)
downloadMessenger-ef33e63fbd515898f1216c1ae9af12a1bb10f3e8.tar.gz
Snap for 6224676 from b2d00e02683db564832222dc6b29bb17d0e22d86 to qt-d4-release
Change-Id: I123faaa92e6867a33291237a3d0aefb7b832e378
-rw-r--r--src/com/android/car/messenger/MapMessage.java21
-rw-r--r--src/com/android/car/messenger/MessengerDelegate.java15
-rw-r--r--src/com/android/car/messenger/MessengerService.java2
-rw-r--r--src/com/android/car/messenger/SmsDatabaseHandler.java3
-rw-r--r--tests/robotests/src/com/android/car/messenger/MessengerDelegateTest.java6
5 files changed, 30 insertions, 17 deletions
diff --git a/src/com/android/car/messenger/MapMessage.java b/src/com/android/car/messenger/MapMessage.java
index b4b7aee..c7e91e6 100644
--- a/src/com/android/car/messenger/MapMessage.java
+++ b/src/com/android/car/messenger/MapMessage.java
@@ -34,7 +34,7 @@ class MapMessage {
private String mMessageText;
private long mReceiveTime;
private boolean mIsReadOnPhone;
- private boolean mIsReadOnCar;
+ private boolean mShouldInclude;
/**
* Constructs a {@link MapMessage} from {@code intent} that was received from MAP service via
@@ -151,8 +151,13 @@ class MapMessage {
return mMessageText;
}
- public void markMessageAsRead() {
- mIsReadOnCar = true;
+ /**
+ * Sets the message to be excluded from the notification. Messages that have been read aloud on
+ * the car, or that have been dismissed by the user should be excluded from the notification if/
+ * when the notification gets updated. Note: this state will not be propagated to the phone.
+ */
+ public void excludeFromNotification() {
+ mShouldInclude = false;
}
/**
@@ -163,10 +168,12 @@ class MapMessage {
}
/**
- * Returns {@code true} if message was read on the car.
+ * Returns {@code true} if message should be included in the notification. Messages that
+ * have been read aloud on the car, or that have been dismissed by the user should be excluded
+ * from the notification if/when the notification gets updated.
*/
- public boolean isReadOnCar() {
- return mIsReadOnCar;
+ public boolean shouldIncludeInNotification() {
+ return mShouldInclude;
}
@Override
@@ -179,7 +186,7 @@ class MapMessage {
", mSenderName='" + mSenderName + '\'' +
", mReceiveTime=" + mReceiveTime + '\'' +
", mIsReadOnPhone= " + mIsReadOnPhone + '\'' +
- ", mIsReadOnCar= " + mIsReadOnCar +
+ ", mShouldInclude= " + mShouldInclude +
"}";
}
}
diff --git a/src/com/android/car/messenger/MessengerDelegate.java b/src/com/android/car/messenger/MessengerDelegate.java
index 58193d4..8fb77d7 100644
--- a/src/com/android/car/messenger/MessengerDelegate.java
+++ b/src/com/android/car/messenger/MessengerDelegate.java
@@ -14,7 +14,6 @@ import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.Icon;
import android.net.Uri;
-import android.util.Log;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
@@ -210,12 +209,17 @@ public class MessengerDelegate implements BluetoothMonitor.OnBluetoothEventListe
}
}
- protected void markAsRead(SenderKey senderKey) {
+
+ /**
+ * Excludes messages from a notification so that the messages are not shown to the user once
+ * the notification gets updated with newer messages.
+ */
+ protected void excludeFromNotification(SenderKey senderKey) {
NotificationInfo info = mNotificationInfos.get(senderKey);
for (MessageKey key : info.mMessageKeys) {
MapMessage message = mMessages.get(key);
- if (!message.isReadOnCar()) {
- message.markMessageAsRead();
+ if (message.shouldIncludeInNotification()) {
+ message.excludeFromNotification();
mSmsDatabaseHandler.addOrUpdate(message);
}
}
@@ -239,6 +243,7 @@ public class MessengerDelegate implements BluetoothMonitor.OnBluetoothEventListe
if (predicate.test(senderKey)) {
mNotificationManager.cancel(notificationInfo.mNotificationId);
}
+ excludeFromNotification(senderKey);
});
}
@@ -361,7 +366,7 @@ public class MessengerDelegate implements BluetoothMonitor.OnBluetoothEventListe
.setUri(notificationInfo.mSenderContactUri)
.build();
notificationInfo.mMessageKeys.stream().map(mMessages::get).forEachOrdered(message -> {
- if (!message.isReadOnCar()) {
+ if (message.shouldIncludeInNotification()) {
messagingStyle.addMessage(
message.getMessageText(),
message.getReceiveTime(),
diff --git a/src/com/android/car/messenger/MessengerService.java b/src/com/android/car/messenger/MessengerService.java
index 0b0e4e4..a441d99 100644
--- a/src/com/android/car/messenger/MessengerService.java
+++ b/src/com/android/car/messenger/MessengerService.java
@@ -243,7 +243,7 @@ public class MessengerService extends Service {
public void markAsRead(Intent intent) {
final SenderKey senderKey = intent.getParcelableExtra(EXTRA_SENDER_KEY);
L.d(TAG, "markAsRead");
- mMessengerDelegate.markAsRead(senderKey);
+ mMessengerDelegate.excludeFromNotification(senderKey);
}
/**
diff --git a/src/com/android/car/messenger/SmsDatabaseHandler.java b/src/com/android/car/messenger/SmsDatabaseHandler.java
index 77d8e29..a8fd107 100644
--- a/src/com/android/car/messenger/SmsDatabaseHandler.java
+++ b/src/com/android/car/messenger/SmsDatabaseHandler.java
@@ -168,7 +168,8 @@ class SmsDatabaseHandler {
newMessage.put(Telephony.Sms.PERSON,
getContactId(mContentResolver,
message.getSenderContactUri()));
- newMessage.put(Telephony.Sms.READ, (message.isReadOnPhone() || message.isReadOnCar()));
+ newMessage.put(Telephony.Sms.READ, (message.isReadOnPhone()
+ || !message.shouldIncludeInNotification()));
return newMessage;
}
diff --git a/tests/robotests/src/com/android/car/messenger/MessengerDelegateTest.java b/tests/robotests/src/com/android/car/messenger/MessengerDelegateTest.java
index b160736..5720497 100644
--- a/tests/robotests/src/com/android/car/messenger/MessengerDelegateTest.java
+++ b/tests/robotests/src/com/android/car/messenger/MessengerDelegateTest.java
@@ -191,12 +191,12 @@ public class MessengerDelegateTest {
public void testHandleMarkAsRead() {
mMessengerDelegate.onMessageReceived(mMessageOneIntent);
- mMessengerDelegate.markAsRead(mSenderKey);
+ mMessengerDelegate.excludeFromNotification(mSenderKey);
MessengerDelegate.NotificationInfo info = mMessengerDelegate.mNotificationInfos.get(
mSenderKey);
MessengerDelegate.MessageKey key = info.mMessageKeys.get(0);
- assertThat(mMessengerDelegate.mMessages.get(key).isReadOnCar()).isTrue();
+ assertThat(mMessengerDelegate.mMessages.get(key).shouldIncludeInNotification()).isFalse();
}
@Test
@@ -210,7 +210,7 @@ public class MessengerDelegateTest {
MessengerDelegate.NotificationInfo info = mMessengerDelegate.mNotificationInfos.get(
mSenderKey);
MessengerDelegate.MessageKey key = info.mMessageKeys.get(0);
- assertThat(mMessengerDelegate.mMessages.get(key).isReadOnCar()).isFalse();
+ assertThat(mMessengerDelegate.mMessages.get(key).shouldIncludeInNotification()).isTrue();
assertThat(mMessengerDelegate.mMessages.get(key).isReadOnPhone()).isTrue();
}