Loading android/app/src/com/android/bluetooth/mapclient/MceStateMachine.java +18 −9 Original line number Diff line number Diff line Loading @@ -725,21 +725,30 @@ class MceStateMachine extends StateMachine { case MSG_GET_MESSAGE_LISTING: // Get latest 50 Unread messages in the last week MessagesFilter filter = new MessagesFilter(); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE, -7); byte messageType; if (Utils.isPtsTestMode()) { filter.setMessageType( messageType = (byte) SystemProperties.getInt( FETCH_MESSAGE_TYPE, MessagesFilter.MESSAGE_TYPE_ALL)); MessagesFilter.MESSAGE_TYPE_ALL); } else { filter.setMessageType(MessagesFilter.MESSAGE_TYPE_ALL); messageType = MessagesFilter.MESSAGE_TYPE_ALL; } Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE, -7); filter.setPeriod(calendar.getTime(), null); mMasClient.makeRequest(new RequestGetMessagesListing( (String) message.obj, 0, filter, 0, 50, 0)); mMasClient.makeRequest( new RequestGetMessagesListing( (String) message.obj, 0, new MessagesFilter.Builder() .setPeriod(calendar.getTime(), null) .setMessageType(messageType) .build(), 0, 50, 0)); break; case MSG_SET_MESSAGE_STATUS: Loading android/app/src/com/android/bluetooth/mapclient/obex/MessagesFilter.java +93 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,16 @@ public final class MessagesFilter { public MessagesFilter() { } public MessagesFilter(MessagesFilter filter) { this.messageType = filter.messageType; this.periodBegin = filter.periodBegin; this.periodEnd = filter.periodEnd; this.readStatus = filter.readStatus; this.recipient = filter.recipient; this.originator = filter.originator; this.priority = filter.priority; } public void setMessageType(byte filter) { messageType = filter; } Loading Loading @@ -78,4 +88,87 @@ public final class MessagesFilter { public void setPriority(byte filter) { priority = filter; } /** Builder for a {@link MessagesFilter}. */ public static class Builder { private MessagesFilter mMessagesFilter = new MessagesFilter(); /** * Sets the `Message Type` field of the filter. * * @param messageType to filter on. * @return This {@link Builder} object. */ public Builder setMessageType(byte messageType) { mMessagesFilter.setMessageType(messageType); return this; } /** * Sets the `Originator` field of the filter. * * @param originator to filter on. * @return This {@link Builder} object. */ public Builder setOriginator(String originator) { mMessagesFilter.setOriginator(originator); return this; } /** * Sets the `Period` field of the filter. * * @param filterBegin filter out messages that arrive before this time instance. Can be * {@code null}, in which case no limit on how old a message can be. * @param filterEnd filter out messages that arrive after this time instance. Can be {@code * null}, in which case no limit on how new a message can be. * @return This {@link Builder} object. */ public Builder setPeriod(Date filterBegin, Date filterEnd) { mMessagesFilter.setPeriod(filterBegin, filterEnd); return this; } /** * Sets the `Priority` field of the filter. * * @param priority to filter on. * @return This {@link Builder} object. */ public Builder setPriority(byte priority) { mMessagesFilter.setPriority(priority); return this; } /** * Sets the `Read Status` field of the filter. * * @param status to filter on. * @return This {@link Builder} object. */ public Builder setReadStatus(byte status) { mMessagesFilter.setReadStatus(status); return this; } /** * Sets the `Recipient` field of the filter. * * @param recipient to filter on. * @return This {@link Builder} object. */ public Builder setRecipient(String recipient) { mMessagesFilter.setRecipient(recipient); return this; } /** * Build the {@link MessagesFilter}. * * @return A {@link MessagesFilter} object. */ public MessagesFilter build() { return new MessagesFilter(mMessagesFilter); } } } android/app/tests/unit/src/com/android/bluetooth/mapclient/MessagesFilterTest.java +33 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,8 @@ import static com.google.common.truth.Truth.assertThat; import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; import java.util.Calendar; import org.junit.Test; import org.junit.runner.RunWith; Loading Loading @@ -78,4 +80,35 @@ public class MessagesFilterTest { assertThat(filter.recipient).isEqualTo(null); } /** Test Builder creates and sets everything correctly. */ @Test public void testBuilder() { String originator = "test_originator"; String recipient = "test_recipient"; byte messageType = MessagesFilter.MESSAGE_TYPE_EMAIL; byte readStatus = MessagesFilter.READ_STATUS_READ; byte priority = MessagesFilter.PRIORITY_HIGH; Calendar begin = Calendar.getInstance(); begin.add(Calendar.DATE, -14); Calendar end = Calendar.getInstance(); end.add(Calendar.DATE, -7); MessagesFilter filter = new MessagesFilter.Builder() .setOriginator(originator) .setRecipient(recipient) .setMessageType(messageType) .setReadStatus(readStatus) .setPriority(priority) .setPeriod(begin.getTime(), end.getTime()) .build(); assertThat(filter.originator).isEqualTo(originator); assertThat(filter.recipient).isEqualTo(recipient); assertThat(filter.messageType).isEqualTo(messageType); assertThat(filter.readStatus).isEqualTo(readStatus); assertThat(filter.priority).isEqualTo(priority); assertThat(filter.periodBegin).isEqualTo((new ObexTime(begin.getTime())).toString()); assertThat(filter.periodEnd).isEqualTo((new ObexTime(end.getTime())).toString()); } } Loading
android/app/src/com/android/bluetooth/mapclient/MceStateMachine.java +18 −9 Original line number Diff line number Diff line Loading @@ -725,21 +725,30 @@ class MceStateMachine extends StateMachine { case MSG_GET_MESSAGE_LISTING: // Get latest 50 Unread messages in the last week MessagesFilter filter = new MessagesFilter(); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE, -7); byte messageType; if (Utils.isPtsTestMode()) { filter.setMessageType( messageType = (byte) SystemProperties.getInt( FETCH_MESSAGE_TYPE, MessagesFilter.MESSAGE_TYPE_ALL)); MessagesFilter.MESSAGE_TYPE_ALL); } else { filter.setMessageType(MessagesFilter.MESSAGE_TYPE_ALL); messageType = MessagesFilter.MESSAGE_TYPE_ALL; } Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE, -7); filter.setPeriod(calendar.getTime(), null); mMasClient.makeRequest(new RequestGetMessagesListing( (String) message.obj, 0, filter, 0, 50, 0)); mMasClient.makeRequest( new RequestGetMessagesListing( (String) message.obj, 0, new MessagesFilter.Builder() .setPeriod(calendar.getTime(), null) .setMessageType(messageType) .build(), 0, 50, 0)); break; case MSG_SET_MESSAGE_STATUS: Loading
android/app/src/com/android/bluetooth/mapclient/obex/MessagesFilter.java +93 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,16 @@ public final class MessagesFilter { public MessagesFilter() { } public MessagesFilter(MessagesFilter filter) { this.messageType = filter.messageType; this.periodBegin = filter.periodBegin; this.periodEnd = filter.periodEnd; this.readStatus = filter.readStatus; this.recipient = filter.recipient; this.originator = filter.originator; this.priority = filter.priority; } public void setMessageType(byte filter) { messageType = filter; } Loading Loading @@ -78,4 +88,87 @@ public final class MessagesFilter { public void setPriority(byte filter) { priority = filter; } /** Builder for a {@link MessagesFilter}. */ public static class Builder { private MessagesFilter mMessagesFilter = new MessagesFilter(); /** * Sets the `Message Type` field of the filter. * * @param messageType to filter on. * @return This {@link Builder} object. */ public Builder setMessageType(byte messageType) { mMessagesFilter.setMessageType(messageType); return this; } /** * Sets the `Originator` field of the filter. * * @param originator to filter on. * @return This {@link Builder} object. */ public Builder setOriginator(String originator) { mMessagesFilter.setOriginator(originator); return this; } /** * Sets the `Period` field of the filter. * * @param filterBegin filter out messages that arrive before this time instance. Can be * {@code null}, in which case no limit on how old a message can be. * @param filterEnd filter out messages that arrive after this time instance. Can be {@code * null}, in which case no limit on how new a message can be. * @return This {@link Builder} object. */ public Builder setPeriod(Date filterBegin, Date filterEnd) { mMessagesFilter.setPeriod(filterBegin, filterEnd); return this; } /** * Sets the `Priority` field of the filter. * * @param priority to filter on. * @return This {@link Builder} object. */ public Builder setPriority(byte priority) { mMessagesFilter.setPriority(priority); return this; } /** * Sets the `Read Status` field of the filter. * * @param status to filter on. * @return This {@link Builder} object. */ public Builder setReadStatus(byte status) { mMessagesFilter.setReadStatus(status); return this; } /** * Sets the `Recipient` field of the filter. * * @param recipient to filter on. * @return This {@link Builder} object. */ public Builder setRecipient(String recipient) { mMessagesFilter.setRecipient(recipient); return this; } /** * Build the {@link MessagesFilter}. * * @return A {@link MessagesFilter} object. */ public MessagesFilter build() { return new MessagesFilter(mMessagesFilter); } } }
android/app/tests/unit/src/com/android/bluetooth/mapclient/MessagesFilterTest.java +33 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,8 @@ import static com.google.common.truth.Truth.assertThat; import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; import java.util.Calendar; import org.junit.Test; import org.junit.runner.RunWith; Loading Loading @@ -78,4 +80,35 @@ public class MessagesFilterTest { assertThat(filter.recipient).isEqualTo(null); } /** Test Builder creates and sets everything correctly. */ @Test public void testBuilder() { String originator = "test_originator"; String recipient = "test_recipient"; byte messageType = MessagesFilter.MESSAGE_TYPE_EMAIL; byte readStatus = MessagesFilter.READ_STATUS_READ; byte priority = MessagesFilter.PRIORITY_HIGH; Calendar begin = Calendar.getInstance(); begin.add(Calendar.DATE, -14); Calendar end = Calendar.getInstance(); end.add(Calendar.DATE, -7); MessagesFilter filter = new MessagesFilter.Builder() .setOriginator(originator) .setRecipient(recipient) .setMessageType(messageType) .setReadStatus(readStatus) .setPriority(priority) .setPeriod(begin.getTime(), end.getTime()) .build(); assertThat(filter.originator).isEqualTo(originator); assertThat(filter.recipient).isEqualTo(recipient); assertThat(filter.messageType).isEqualTo(messageType); assertThat(filter.readStatus).isEqualTo(readStatus); assertThat(filter.priority).isEqualTo(priority); assertThat(filter.periodBegin).isEqualTo((new ObexTime(begin.getTime())).toString()); assertThat(filter.periodEnd).isEqualTo((new ObexTime(end.getTime())).toString()); } }