Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 229e65e5 authored by Andrew Cheng's avatar Andrew Cheng Committed by Gerrit Code Review
Browse files

Merge "mapclient: add builder to MessagesFilter" into main

parents 46db655f e9c19dce
Loading
Loading
Loading
Loading
+18 −9
Original line number Diff line number Diff line
@@ -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:
+93 −0
Original line number Diff line number Diff line
@@ -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;
    }
@@ -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);
        }
    }
}
+33 −0
Original line number Diff line number Diff line
@@ -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;

@@ -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());
    }
}