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.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.stream.Collectors;
|
||||
|
||||
/**
|
||||
* The result of a {@link RcsMessageStore#getRcsMessages(RcsMessageQueryParams)}
|
||||
@@ -35,23 +31,11 @@ import java.util.List;
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public final class RcsMessageQueryResult implements Parcelable {
|
||||
// The token to continue the query to get the next batch of results
|
||||
private RcsQueryContinuationToken mContinuationToken;
|
||||
// The message type and message ID pairs for all the messages in this query result
|
||||
private List<RcsTypeIdPair> mMessageTypeIdPairs;
|
||||
public final class RcsMessageQueryResult {
|
||||
private final RcsMessageQueryResultParcelable mRcsMessageQueryResultParcelable;
|
||||
|
||||
/**
|
||||
* Internal constructor for {@link com.android.internal.telephony.ims.RcsMessageStoreController}
|
||||
* to create query results
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public RcsMessageQueryResult(
|
||||
RcsQueryContinuationToken continuationToken,
|
||||
List<RcsTypeIdPair> messageTypeIdPairs) {
|
||||
mContinuationToken = continuationToken;
|
||||
mMessageTypeIdPairs = messageTypeIdPairs;
|
||||
RcsMessageQueryResult(RcsMessageQueryResultParcelable rcsMessageQueryResultParcelable) {
|
||||
mRcsMessageQueryResultParcelable = rcsMessageQueryResultParcelable;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -61,7 +45,7 @@ public final class RcsMessageQueryResult implements Parcelable {
|
||||
*/
|
||||
@Nullable
|
||||
public RcsQueryContinuationToken getContinuationToken() {
|
||||
return mContinuationToken;
|
||||
return mRcsMessageQueryResultParcelable.mContinuationToken;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -71,45 +55,10 @@ public final class RcsMessageQueryResult implements Parcelable {
|
||||
*/
|
||||
@NonNull
|
||||
public List<RcsMessage> getMessages() {
|
||||
List<RcsMessage> messages = new ArrayList<>();
|
||||
for (RcsTypeIdPair typeIdPair : mMessageTypeIdPairs) {
|
||||
if (typeIdPair.getType() == MESSAGE_TYPE_INCOMING) {
|
||||
messages.add(new RcsIncomingMessage(typeIdPair.getId()));
|
||||
} else {
|
||||
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);
|
||||
return mRcsMessageQueryResultParcelable.mMessageTypeIdPairs.stream()
|
||||
.map(typeIdPair -> typeIdPair.getType() == MESSAGE_TYPE_INCOMING
|
||||
? new RcsIncomingMessage(typeIdPair.getId())
|
||||
: new RcsOutgoingMessage(typeIdPair.getId()))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,4 +17,4 @@
|
||||
|
||||
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
|
||||
public RcsMessageQueryResult getRcsMessages(
|
||||
@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
|
||||
public RcsMessageQueryResult getRcsMessages(
|
||||
@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 {
|
||||
/**
|
||||
* The rcs_participant_thread_id that represents this thread in the database
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
protected int mThreadId;
|
||||
@@ -110,7 +111,8 @@ public abstract class RcsThread {
|
||||
public RcsMessageQueryResult getMessages() throws RcsMessageStoreException {
|
||||
RcsMessageQueryParams queryParameters =
|
||||
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.RcsMessageSnippet;
|
||||
import android.telephony.ims.RcsMessageQueryParams;
|
||||
import android.telephony.ims.RcsMessageQueryResult;
|
||||
import android.telephony.ims.RcsMessageQueryResultParcelable;
|
||||
import android.telephony.ims.RcsOutgoingMessageCreationParams;
|
||||
import android.telephony.ims.RcsParticipantQueryParams;
|
||||
import android.telephony.ims.RcsParticipantQueryResultParcelable;
|
||||
@@ -49,9 +49,9 @@ interface IRcs {
|
||||
RcsParticipantQueryResultParcelable getParticipantsWithToken(
|
||||
in RcsQueryContinuationToken continuationToken);
|
||||
|
||||
RcsMessageQueryResult getMessages(in RcsMessageQueryParams queryParams);
|
||||
RcsMessageQueryResultParcelable getMessages(in RcsMessageQueryParams queryParams);
|
||||
|
||||
RcsMessageQueryResult getMessagesWithToken(
|
||||
RcsMessageQueryResultParcelable getMessagesWithToken(
|
||||
in RcsQueryContinuationToken continuationToken);
|
||||
|
||||
RcsEventQueryResultDescriptor getEvents(in RcsEventQueryParams queryParams);
|
||||
|
||||
Reference in New Issue
Block a user