Merge "Create new RcsMessageQueryResultParcelable"
am: 6af6e3a4f6
Change-Id: Id86442efa84f9c2ed49dc362f4a17466851dacfe
This commit is contained in:
@@ -20,13 +20,9 @@ import static android.provider.Telephony.RcsColumns.RcsUnifiedMessageColumns.MES
|
|||||||
|
|
||||||
import android.annotation.NonNull;
|
import android.annotation.NonNull;
|
||||||
import android.annotation.Nullable;
|
import android.annotation.Nullable;
|
||||||
import android.os.Parcel;
|
|
||||||
import android.os.Parcelable;
|
|
||||||
|
|
||||||
import com.android.ims.RcsTypeIdPair;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The result of a {@link RcsMessageStore#getRcsMessages(RcsMessageQueryParams)}
|
* The result of a {@link RcsMessageStore#getRcsMessages(RcsMessageQueryParams)}
|
||||||
@@ -35,23 +31,11 @@ import java.util.List;
|
|||||||
*
|
*
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
public final class RcsMessageQueryResult implements Parcelable {
|
public final class RcsMessageQueryResult {
|
||||||
// The token to continue the query to get the next batch of results
|
private final RcsMessageQueryResultParcelable mRcsMessageQueryResultParcelable;
|
||||||
private RcsQueryContinuationToken mContinuationToken;
|
|
||||||
// The message type and message ID pairs for all the messages in this query result
|
|
||||||
private List<RcsTypeIdPair> mMessageTypeIdPairs;
|
|
||||||
|
|
||||||
/**
|
RcsMessageQueryResult(RcsMessageQueryResultParcelable rcsMessageQueryResultParcelable) {
|
||||||
* Internal constructor for {@link com.android.internal.telephony.ims.RcsMessageStoreController}
|
mRcsMessageQueryResultParcelable = rcsMessageQueryResultParcelable;
|
||||||
* to create query results
|
|
||||||
*
|
|
||||||
* @hide
|
|
||||||
*/
|
|
||||||
public RcsMessageQueryResult(
|
|
||||||
RcsQueryContinuationToken continuationToken,
|
|
||||||
List<RcsTypeIdPair> messageTypeIdPairs) {
|
|
||||||
mContinuationToken = continuationToken;
|
|
||||||
mMessageTypeIdPairs = messageTypeIdPairs;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -61,7 +45,7 @@ public final class RcsMessageQueryResult implements Parcelable {
|
|||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
public RcsQueryContinuationToken getContinuationToken() {
|
public RcsQueryContinuationToken getContinuationToken() {
|
||||||
return mContinuationToken;
|
return mRcsMessageQueryResultParcelable.mContinuationToken;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -71,45 +55,10 @@ public final class RcsMessageQueryResult implements Parcelable {
|
|||||||
*/
|
*/
|
||||||
@NonNull
|
@NonNull
|
||||||
public List<RcsMessage> getMessages() {
|
public List<RcsMessage> getMessages() {
|
||||||
List<RcsMessage> messages = new ArrayList<>();
|
return mRcsMessageQueryResultParcelable.mMessageTypeIdPairs.stream()
|
||||||
for (RcsTypeIdPair typeIdPair : mMessageTypeIdPairs) {
|
.map(typeIdPair -> typeIdPair.getType() == MESSAGE_TYPE_INCOMING
|
||||||
if (typeIdPair.getType() == MESSAGE_TYPE_INCOMING) {
|
? new RcsIncomingMessage(typeIdPair.getId())
|
||||||
messages.add(new RcsIncomingMessage(typeIdPair.getId()));
|
: new RcsOutgoingMessage(typeIdPair.getId()))
|
||||||
} else {
|
.collect(Collectors.toList());
|
||||||
messages.add(new RcsOutgoingMessage(typeIdPair.getId()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return messages;
|
|
||||||
}
|
|
||||||
|
|
||||||
private RcsMessageQueryResult(Parcel in) {
|
|
||||||
mContinuationToken = in.readParcelable(
|
|
||||||
RcsQueryContinuationToken.class.getClassLoader());
|
|
||||||
in.readTypedList(mMessageTypeIdPairs, RcsTypeIdPair.CREATOR);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final @android.annotation.NonNull Creator<RcsMessageQueryResult> CREATOR =
|
|
||||||
new Creator<RcsMessageQueryResult>() {
|
|
||||||
@Override
|
|
||||||
public RcsMessageQueryResult createFromParcel(Parcel in) {
|
|
||||||
return new RcsMessageQueryResult(in);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RcsMessageQueryResult[] newArray(int size) {
|
|
||||||
return new RcsMessageQueryResult[size];
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int describeContents() {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void writeToParcel(Parcel dest, int flags) {
|
|
||||||
dest.writeParcelable(mContinuationToken, flags);
|
|
||||||
dest.writeTypedList(mMessageTypeIdPairs);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,4 +17,4 @@
|
|||||||
|
|
||||||
package android.telephony.ims;
|
package android.telephony.ims;
|
||||||
|
|
||||||
parcelable RcsMessageQueryResult;
|
parcelable RcsMessageQueryResultParcelable;
|
||||||
@@ -0,0 +1,74 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2019 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package android.telephony.ims;
|
||||||
|
|
||||||
|
import android.os.Parcel;
|
||||||
|
import android.os.Parcelable;
|
||||||
|
|
||||||
|
import com.android.ims.RcsTypeIdPair;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @hide - used only for internal communication with the ircs service
|
||||||
|
*/
|
||||||
|
public class RcsMessageQueryResultParcelable implements Parcelable {
|
||||||
|
// The token to continue the query to get the next batch of results
|
||||||
|
final RcsQueryContinuationToken mContinuationToken;
|
||||||
|
// The message type and message ID pairs for all the messages in this query result
|
||||||
|
final List<RcsTypeIdPair> mMessageTypeIdPairs;
|
||||||
|
|
||||||
|
public RcsMessageQueryResultParcelable(
|
||||||
|
RcsQueryContinuationToken continuationToken,
|
||||||
|
List<RcsTypeIdPair> messageTypeIdPairs) {
|
||||||
|
mContinuationToken = continuationToken;
|
||||||
|
mMessageTypeIdPairs = messageTypeIdPairs;
|
||||||
|
}
|
||||||
|
|
||||||
|
private RcsMessageQueryResultParcelable(Parcel in) {
|
||||||
|
mContinuationToken = in.readParcelable(
|
||||||
|
RcsQueryContinuationToken.class.getClassLoader());
|
||||||
|
|
||||||
|
mMessageTypeIdPairs = new ArrayList<>();
|
||||||
|
in.readTypedList(mMessageTypeIdPairs, RcsTypeIdPair.CREATOR);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final Creator<RcsMessageQueryResultParcelable> CREATOR =
|
||||||
|
new Creator<RcsMessageQueryResultParcelable>() {
|
||||||
|
@Override
|
||||||
|
public RcsMessageQueryResultParcelable createFromParcel(Parcel in) {
|
||||||
|
return new RcsMessageQueryResultParcelable(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RcsMessageQueryResultParcelable[] newArray(int size) {
|
||||||
|
return new RcsMessageQueryResultParcelable[size];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int describeContents() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeToParcel(Parcel dest, int flags) {
|
||||||
|
dest.writeParcelable(mContinuationToken, flags);
|
||||||
|
dest.writeTypedList(mMessageTypeIdPairs);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -104,7 +104,8 @@ public class RcsMessageStore {
|
|||||||
@NonNull
|
@NonNull
|
||||||
public RcsMessageQueryResult getRcsMessages(
|
public RcsMessageQueryResult getRcsMessages(
|
||||||
@Nullable RcsMessageQueryParams queryParameters) throws RcsMessageStoreException {
|
@Nullable RcsMessageQueryParams queryParameters) throws RcsMessageStoreException {
|
||||||
return RcsControllerCall.call(iRcs -> iRcs.getMessages(queryParameters));
|
return new RcsMessageQueryResult(
|
||||||
|
RcsControllerCall.call(iRcs -> iRcs.getMessages(queryParameters)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -118,7 +119,8 @@ public class RcsMessageStore {
|
|||||||
@NonNull
|
@NonNull
|
||||||
public RcsMessageQueryResult getRcsMessages(
|
public RcsMessageQueryResult getRcsMessages(
|
||||||
@NonNull RcsQueryContinuationToken continuationToken) throws RcsMessageStoreException {
|
@NonNull RcsQueryContinuationToken continuationToken) throws RcsMessageStoreException {
|
||||||
return RcsControllerCall.call(iRcs -> iRcs.getMessagesWithToken(continuationToken));
|
return new RcsMessageQueryResult(
|
||||||
|
RcsControllerCall.call(iRcs -> iRcs.getMessagesWithToken(continuationToken)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ import com.android.internal.annotations.VisibleForTesting;
|
|||||||
public abstract class RcsThread {
|
public abstract class RcsThread {
|
||||||
/**
|
/**
|
||||||
* The rcs_participant_thread_id that represents this thread in the database
|
* The rcs_participant_thread_id that represents this thread in the database
|
||||||
|
*
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
protected int mThreadId;
|
protected int mThreadId;
|
||||||
@@ -110,7 +111,8 @@ public abstract class RcsThread {
|
|||||||
public RcsMessageQueryResult getMessages() throws RcsMessageStoreException {
|
public RcsMessageQueryResult getMessages() throws RcsMessageStoreException {
|
||||||
RcsMessageQueryParams queryParameters =
|
RcsMessageQueryParams queryParameters =
|
||||||
new RcsMessageQueryParams.Builder().setThread(this).build();
|
new RcsMessageQueryParams.Builder().setThread(this).build();
|
||||||
return RcsControllerCall.call(iRcs -> iRcs.getMessages(queryParameters));
|
return new RcsMessageQueryResult(
|
||||||
|
RcsControllerCall.call(iRcs -> iRcs.getMessages(queryParameters)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import android.telephony.ims.RcsFileTransferCreationParams;
|
|||||||
import android.telephony.ims.RcsIncomingMessageCreationParams;
|
import android.telephony.ims.RcsIncomingMessageCreationParams;
|
||||||
import android.telephony.ims.RcsMessageSnippet;
|
import android.telephony.ims.RcsMessageSnippet;
|
||||||
import android.telephony.ims.RcsMessageQueryParams;
|
import android.telephony.ims.RcsMessageQueryParams;
|
||||||
import android.telephony.ims.RcsMessageQueryResult;
|
import android.telephony.ims.RcsMessageQueryResultParcelable;
|
||||||
import android.telephony.ims.RcsOutgoingMessageCreationParams;
|
import android.telephony.ims.RcsOutgoingMessageCreationParams;
|
||||||
import android.telephony.ims.RcsParticipantQueryParams;
|
import android.telephony.ims.RcsParticipantQueryParams;
|
||||||
import android.telephony.ims.RcsParticipantQueryResultParcelable;
|
import android.telephony.ims.RcsParticipantQueryResultParcelable;
|
||||||
@@ -49,9 +49,9 @@ interface IRcs {
|
|||||||
RcsParticipantQueryResultParcelable getParticipantsWithToken(
|
RcsParticipantQueryResultParcelable getParticipantsWithToken(
|
||||||
in RcsQueryContinuationToken continuationToken);
|
in RcsQueryContinuationToken continuationToken);
|
||||||
|
|
||||||
RcsMessageQueryResult getMessages(in RcsMessageQueryParams queryParams);
|
RcsMessageQueryResultParcelable getMessages(in RcsMessageQueryParams queryParams);
|
||||||
|
|
||||||
RcsMessageQueryResult getMessagesWithToken(
|
RcsMessageQueryResultParcelable getMessagesWithToken(
|
||||||
in RcsQueryContinuationToken continuationToken);
|
in RcsQueryContinuationToken continuationToken);
|
||||||
|
|
||||||
RcsEventQueryResultDescriptor getEvents(in RcsEventQueryParams queryParams);
|
RcsEventQueryResultDescriptor getEvents(in RcsEventQueryParams queryParams);
|
||||||
|
|||||||
Reference in New Issue
Block a user