Use injected instance of RcsControllerCall
Instead of static methods, create an instance of RcsControllerCall that
holds a reference to the Context and inject it where it is used.
This will be used in a follow up commit that will require the calling
package name be passed when calling IRcs methods.
This change will allow passing a calling package name to an
RcsServiceCall or an RcsServiceCallWithNoReturn, so uses of the call
method might look something like:
```
mRcsControllerCall.call((iRcs, callingPackage) ->
iRcs.getFileTransferContentUri(mId, callingPackage));
```
Alternatives to storing the context here would have been:
1. To store the context everywhere the RcsControllerCall is injected and
get the calling package name at each RcsControllerCall call
2. To store the calling package name everywhere that the
RcsControllerCall instance is injected
Compared to solution 1, the implemented solution avoids repeating the
logic of retrieving the calling package.
Compared to solution 2, the implemented solution does not introduce any
complexity. In addition, the individual classes do not care about the
calling package name outside of the need to pass it to an IRcs method.
In the future, the implemented solution may also provide a useful point
to provide logic involving calls and the context (or other injected
dependencies). Though this future concern is not alone enough to justify
the solution, since the solution adds no additional complexity against
other solutions, it seems like a nice benefit.
Note, to avoid polluting this commit, a follow-up issue (b/128029441)
has been created to adjust the name of RcsControllerCall to reflect that
an instance of RcsControllerCall does not represent a single call to
RcsController.
Bug: 123699565
Test: Existing tests pass
Change-Id: Ib0f55f14397e5eb1e5a55864094c0be0c4e37c06
Merged-In: Ib0f55f14397e5eb1e5a55864094c0be0c4e37c06
This commit is contained in:
@@ -618,7 +618,7 @@ final class SystemServiceRegistry {
|
||||
new CachedServiceFetcher<RcsManager>() {
|
||||
@Override
|
||||
public RcsManager createService(ContextImpl ctx) {
|
||||
return new RcsManager();
|
||||
return new RcsManager(ctx.getOuterContext());
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -33,8 +33,8 @@ public class Rcs1To1Thread extends RcsThread {
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public Rcs1To1Thread(int threadId) {
|
||||
super(threadId);
|
||||
public Rcs1To1Thread(RcsControllerCall rcsControllerCall, int threadId) {
|
||||
super(rcsControllerCall, threadId);
|
||||
mThreadId = threadId;
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ public class Rcs1To1Thread extends RcsThread {
|
||||
*/
|
||||
@WorkerThread
|
||||
public long getFallbackThreadId() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.get1To1ThreadFallbackThreadId(mThreadId));
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.get1To1ThreadFallbackThreadId(mThreadId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -69,7 +69,7 @@ public class Rcs1To1Thread extends RcsThread {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void setFallbackThreadId(long fallbackThreadId) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(
|
||||
mRcsControllerCall.callWithNoReturn(
|
||||
iRcs -> iRcs.set1To1ThreadFallbackThreadId(mThreadId, fallbackThreadId));
|
||||
}
|
||||
|
||||
@@ -81,6 +81,7 @@ public class Rcs1To1Thread extends RcsThread {
|
||||
@WorkerThread
|
||||
public RcsParticipant getRecipient() throws RcsMessageStoreException {
|
||||
return new RcsParticipant(
|
||||
RcsControllerCall.call(iRcs -> iRcs.get1To1ThreadOtherParticipantId(mThreadId)));
|
||||
mRcsControllerCall,
|
||||
mRcsControllerCall.call(iRcs -> iRcs.get1To1ThreadOtherParticipantId(mThreadId)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,13 @@ import android.telephony.ims.aidl.IRcs;
|
||||
* @hide - not meant for public use
|
||||
*/
|
||||
class RcsControllerCall {
|
||||
static <R> R call(RcsServiceCall<R> serviceCall) throws RcsMessageStoreException {
|
||||
private final Context mContext;
|
||||
|
||||
RcsControllerCall(Context context) {
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
<R> R call(RcsServiceCall<R> serviceCall) throws RcsMessageStoreException {
|
||||
IRcs iRcs = IRcs.Stub.asInterface(ServiceManager.getService(Context.TELEPHONY_RCS_SERVICE));
|
||||
if (iRcs == null) {
|
||||
throw new RcsMessageStoreException("Could not connect to RCS storage service");
|
||||
@@ -40,18 +46,12 @@ class RcsControllerCall {
|
||||
}
|
||||
}
|
||||
|
||||
static void callWithNoReturn(RcsServiceCallWithNoReturn serviceCall)
|
||||
void callWithNoReturn(RcsServiceCallWithNoReturn serviceCall)
|
||||
throws RcsMessageStoreException {
|
||||
IRcs iRcs = IRcs.Stub.asInterface(ServiceManager.getService(Context.TELEPHONY_RCS_SERVICE));
|
||||
if (iRcs == null) {
|
||||
throw new RcsMessageStoreException("Could not connect to RCS storage service");
|
||||
}
|
||||
|
||||
try {
|
||||
call(iRcs -> {
|
||||
serviceCall.methodOnIRcs(iRcs);
|
||||
} catch (RemoteException exception) {
|
||||
throw new RcsMessageStoreException(exception.getMessage());
|
||||
}
|
||||
return null;
|
||||
});
|
||||
}
|
||||
|
||||
interface RcsServiceCall<R> {
|
||||
|
||||
@@ -40,5 +40,5 @@ public abstract class RcsEvent {
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
abstract void persist() throws RcsMessageStoreException;
|
||||
abstract void persist(RcsControllerCall rcsControllerCall) throws RcsMessageStoreException;
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ public abstract class RcsEventDescriptor implements Parcelable {
|
||||
* descriptor.
|
||||
*/
|
||||
@VisibleForTesting(visibility = PROTECTED)
|
||||
public abstract RcsEvent createRcsEvent();
|
||||
public abstract RcsEvent createRcsEvent(RcsControllerCall rcsControllerCall);
|
||||
|
||||
RcsEventDescriptor(Parcel in) {
|
||||
mTimestamp = in.readLong();
|
||||
|
||||
@@ -39,9 +39,9 @@ public class RcsEventQueryResultDescriptor implements Parcelable {
|
||||
mEvents = events;
|
||||
}
|
||||
|
||||
protected RcsEventQueryResult getRcsEventQueryResult() {
|
||||
protected RcsEventQueryResult getRcsEventQueryResult(RcsControllerCall rcsControllerCall) {
|
||||
List<RcsEvent> rcsEvents = mEvents.stream()
|
||||
.map(RcsEventDescriptor::createRcsEvent)
|
||||
.map(rcsEvent -> rcsEvent.createRcsEvent(rcsControllerCall))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
return new RcsEventQueryResult(mContinuationToken, rcsEvents);
|
||||
|
||||
@@ -103,12 +103,15 @@ public class RcsFileTransferPart {
|
||||
public @interface RcsFileTransferStatus {
|
||||
}
|
||||
|
||||
private final RcsControllerCall mRcsControllerCall;
|
||||
|
||||
private int mId;
|
||||
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
RcsFileTransferPart(int id) {
|
||||
RcsFileTransferPart(RcsControllerCall rcsControllerCall, int id) {
|
||||
mRcsControllerCall = rcsControllerCall;
|
||||
mId = id;
|
||||
}
|
||||
|
||||
@@ -134,7 +137,7 @@ public class RcsFileTransferPart {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void setFileTransferSessionId(String sessionId) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(iRcs -> iRcs.setFileTransferSessionId(mId, sessionId));
|
||||
mRcsControllerCall.callWithNoReturn(iRcs -> iRcs.setFileTransferSessionId(mId, sessionId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -143,7 +146,7 @@ public class RcsFileTransferPart {
|
||||
*/
|
||||
@WorkerThread
|
||||
public String getFileTransferSessionId() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getFileTransferSessionId(mId));
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.getFileTransferSessionId(mId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -155,7 +158,8 @@ public class RcsFileTransferPart {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void setContentUri(Uri contentUri) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(iRcs -> iRcs.setFileTransferContentUri(mId, contentUri));
|
||||
mRcsControllerCall.callWithNoReturn(
|
||||
iRcs -> iRcs.setFileTransferContentUri(mId, contentUri));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -165,7 +169,7 @@ public class RcsFileTransferPart {
|
||||
@Nullable
|
||||
@WorkerThread
|
||||
public Uri getContentUri() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getFileTransferContentUri(mId));
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.getFileTransferContentUri(mId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -177,7 +181,7 @@ public class RcsFileTransferPart {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void setContentMimeType(String contentMimeType) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(
|
||||
mRcsControllerCall.callWithNoReturn(
|
||||
iRcs -> iRcs.setFileTransferContentType(mId, contentMimeType));
|
||||
}
|
||||
|
||||
@@ -188,7 +192,7 @@ public class RcsFileTransferPart {
|
||||
@WorkerThread
|
||||
@Nullable
|
||||
public String getContentMimeType() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getFileTransferContentType(mId));
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.getFileTransferContentType(mId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -199,7 +203,7 @@ public class RcsFileTransferPart {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void setFileSize(long contentLength) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(
|
||||
mRcsControllerCall.callWithNoReturn(
|
||||
iRcs -> iRcs.setFileTransferFileSize(mId, contentLength));
|
||||
}
|
||||
|
||||
@@ -209,7 +213,7 @@ public class RcsFileTransferPart {
|
||||
*/
|
||||
@WorkerThread
|
||||
public long getFileSize() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getFileTransferFileSize(mId));
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.getFileTransferFileSize(mId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -222,7 +226,7 @@ public class RcsFileTransferPart {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void setTransferOffset(long transferOffset) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(
|
||||
mRcsControllerCall.callWithNoReturn(
|
||||
iRcs -> iRcs.setFileTransferTransferOffset(mId, transferOffset));
|
||||
}
|
||||
|
||||
@@ -232,7 +236,7 @@ public class RcsFileTransferPart {
|
||||
*/
|
||||
@WorkerThread
|
||||
public long getTransferOffset() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getFileTransferTransferOffset(mId));
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.getFileTransferTransferOffset(mId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -244,7 +248,7 @@ public class RcsFileTransferPart {
|
||||
@WorkerThread
|
||||
public void setFileTransferStatus(@RcsFileTransferStatus int status)
|
||||
throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(iRcs -> iRcs.setFileTransferStatus(mId, status));
|
||||
mRcsControllerCall.callWithNoReturn(iRcs -> iRcs.setFileTransferStatus(mId, status));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -253,7 +257,7 @@ public class RcsFileTransferPart {
|
||||
*/
|
||||
@WorkerThread
|
||||
public @RcsFileTransferStatus int getFileTransferStatus() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getFileTransferStatus(mId));
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.getFileTransferStatus(mId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -262,7 +266,7 @@ public class RcsFileTransferPart {
|
||||
*/
|
||||
@WorkerThread
|
||||
public int getWidth() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getFileTransferWidth(mId));
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.getFileTransferWidth(mId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -273,7 +277,7 @@ public class RcsFileTransferPart {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void setWidth(int width) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(iRcs -> iRcs.setFileTransferWidth(mId, width));
|
||||
mRcsControllerCall.callWithNoReturn(iRcs -> iRcs.setFileTransferWidth(mId, width));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -282,7 +286,7 @@ public class RcsFileTransferPart {
|
||||
*/
|
||||
@WorkerThread
|
||||
public int getHeight() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getFileTransferHeight(mId));
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.getFileTransferHeight(mId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -293,7 +297,7 @@ public class RcsFileTransferPart {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void setHeight(int height) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(iRcs -> iRcs.setFileTransferHeight(mId, height));
|
||||
mRcsControllerCall.callWithNoReturn(iRcs -> iRcs.setFileTransferHeight(mId, height));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -302,7 +306,7 @@ public class RcsFileTransferPart {
|
||||
*/
|
||||
@WorkerThread
|
||||
public long getLength() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getFileTransferLength(mId));
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.getFileTransferLength(mId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -313,7 +317,7 @@ public class RcsFileTransferPart {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void setLength(long length) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(iRcs -> iRcs.setFileTransferLength(mId, length));
|
||||
mRcsControllerCall.callWithNoReturn(iRcs -> iRcs.setFileTransferLength(mId, length));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -323,7 +327,7 @@ public class RcsFileTransferPart {
|
||||
*/
|
||||
@WorkerThread
|
||||
public Uri getPreviewUri() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getFileTransferPreviewUri(mId));
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.getFileTransferPreviewUri(mId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -334,7 +338,8 @@ public class RcsFileTransferPart {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void setPreviewUri(Uri previewUri) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(iRcs -> iRcs.setFileTransferPreviewUri(mId, previewUri));
|
||||
mRcsControllerCall.callWithNoReturn(
|
||||
iRcs -> iRcs.setFileTransferPreviewUri(mId, previewUri));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -343,7 +348,7 @@ public class RcsFileTransferPart {
|
||||
*/
|
||||
@WorkerThread
|
||||
public String getPreviewMimeType() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getFileTransferPreviewType(mId));
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.getFileTransferPreviewType(mId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -354,7 +359,7 @@ public class RcsFileTransferPart {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void setPreviewMimeType(String previewMimeType) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(
|
||||
mRcsControllerCall.callWithNoReturn(
|
||||
iRcs -> iRcs.setFileTransferPreviewType(mId, previewMimeType));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,8 +38,8 @@ public class RcsGroupThread extends RcsThread {
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public RcsGroupThread(int threadId) {
|
||||
super(threadId);
|
||||
public RcsGroupThread(RcsControllerCall rcsControllerCall, int threadId) {
|
||||
super(rcsControllerCall, threadId);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -58,7 +58,7 @@ public class RcsGroupThread extends RcsThread {
|
||||
@Nullable
|
||||
@WorkerThread
|
||||
public String getGroupName() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getGroupThreadName(mThreadId));
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.getGroupThreadName(mThreadId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -69,7 +69,7 @@ public class RcsGroupThread extends RcsThread {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void setGroupName(String groupName) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(iRcs -> iRcs.setGroupThreadName(mThreadId, groupName));
|
||||
mRcsControllerCall.callWithNoReturn(iRcs -> iRcs.setGroupThreadName(mThreadId, groupName));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -79,7 +79,7 @@ public class RcsGroupThread extends RcsThread {
|
||||
*/
|
||||
@Nullable
|
||||
public Uri getGroupIcon() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getGroupThreadIcon(mThreadId));
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.getGroupThreadIcon(mThreadId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -90,7 +90,7 @@ public class RcsGroupThread extends RcsThread {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void setGroupIcon(@Nullable Uri groupIcon) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(iRcs -> iRcs.setGroupThreadIcon(mThreadId, groupIcon));
|
||||
mRcsControllerCall.callWithNoReturn(iRcs -> iRcs.setGroupThreadIcon(mThreadId, groupIcon));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -100,8 +100,9 @@ public class RcsGroupThread extends RcsThread {
|
||||
@Nullable
|
||||
@WorkerThread
|
||||
public RcsParticipant getOwner() throws RcsMessageStoreException {
|
||||
return new RcsParticipant(RcsControllerCall.call(
|
||||
iRcs -> iRcs.getGroupThreadOwner(mThreadId)));
|
||||
return new RcsParticipant(
|
||||
mRcsControllerCall,
|
||||
mRcsControllerCall.call(iRcs -> iRcs.getGroupThreadOwner(mThreadId)));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -114,7 +115,7 @@ public class RcsGroupThread extends RcsThread {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void setOwner(@Nullable RcsParticipant participant) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(
|
||||
mRcsControllerCall.callWithNoReturn(
|
||||
iRcs -> iRcs.setGroupThreadOwner(mThreadId, participant.getId()));
|
||||
}
|
||||
|
||||
@@ -133,7 +134,7 @@ public class RcsGroupThread extends RcsThread {
|
||||
return;
|
||||
}
|
||||
|
||||
RcsControllerCall.callWithNoReturn(
|
||||
mRcsControllerCall.callWithNoReturn(
|
||||
iRcs -> iRcs.addParticipantToGroupThread(mThreadId, participant.getId()));
|
||||
}
|
||||
|
||||
@@ -150,7 +151,7 @@ public class RcsGroupThread extends RcsThread {
|
||||
return;
|
||||
}
|
||||
|
||||
RcsControllerCall.callWithNoReturn(
|
||||
mRcsControllerCall.callWithNoReturn(
|
||||
iRcs -> iRcs.removeParticipantFromGroupThread(mThreadId, participant.getId()));
|
||||
}
|
||||
|
||||
@@ -170,7 +171,8 @@ public class RcsGroupThread extends RcsThread {
|
||||
new RcsParticipantQueryParams.Builder().setThread(this).build();
|
||||
|
||||
RcsParticipantQueryResult queryResult = new RcsParticipantQueryResult(
|
||||
RcsControllerCall.call(
|
||||
mRcsControllerCall,
|
||||
mRcsControllerCall.call(
|
||||
iRcs -> iRcs.getParticipants(queryParameters)));
|
||||
|
||||
List<RcsParticipant> participantList = queryResult.getParticipants();
|
||||
@@ -187,7 +189,7 @@ public class RcsGroupThread extends RcsThread {
|
||||
@Nullable
|
||||
@WorkerThread
|
||||
public Uri getConferenceUri() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getGroupThreadConferenceUri(mThreadId));
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.getGroupThreadConferenceUri(mThreadId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -200,7 +202,7 @@ public class RcsGroupThread extends RcsThread {
|
||||
@Nullable
|
||||
@WorkerThread
|
||||
public void setConferenceUri(Uri conferenceUri) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(
|
||||
mRcsControllerCall.callWithNoReturn(
|
||||
iRcs -> iRcs.setGroupThreadConferenceUri(mThreadId, conferenceUri));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,14 +23,14 @@ import android.annotation.NonNull;
|
||||
* @hide
|
||||
*/
|
||||
public abstract class RcsGroupThreadEvent extends RcsEvent {
|
||||
private final int mRcsGroupThreadId;
|
||||
private final int mOriginatingParticipantId;
|
||||
private final RcsGroupThread mRcsGroupThread;
|
||||
private final RcsParticipant mOriginatingParticipant;
|
||||
|
||||
RcsGroupThreadEvent(long timestamp, int rcsGroupThreadId,
|
||||
int originatingParticipantId) {
|
||||
RcsGroupThreadEvent(long timestamp, RcsGroupThread rcsGroupThread,
|
||||
RcsParticipant originatingParticipant) {
|
||||
super(timestamp);
|
||||
mRcsGroupThreadId = rcsGroupThreadId;
|
||||
mOriginatingParticipantId = originatingParticipantId;
|
||||
mRcsGroupThread = rcsGroupThread;
|
||||
mOriginatingParticipant = originatingParticipant;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -38,7 +38,7 @@ public abstract class RcsGroupThreadEvent extends RcsEvent {
|
||||
*/
|
||||
@NonNull
|
||||
public RcsGroupThread getRcsGroupThread() {
|
||||
return new RcsGroupThread(mRcsGroupThreadId);
|
||||
return mRcsGroupThread;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -46,6 +46,6 @@ public abstract class RcsGroupThreadEvent extends RcsEvent {
|
||||
*/
|
||||
@NonNull
|
||||
public RcsParticipant getOriginatingParticipant() {
|
||||
return new RcsParticipant(mOriginatingParticipantId);
|
||||
return mOriginatingParticipant;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,9 +40,10 @@ public final class RcsGroupThreadIconChangedEvent extends RcsGroupThreadEvent {
|
||||
* @param newIcon {@link Uri} to the new icon of this {@link RcsGroupThread}
|
||||
* @see RcsMessageStore#persistRcsEvent(RcsEvent)
|
||||
*/
|
||||
public RcsGroupThreadIconChangedEvent(long timestamp, @NonNull RcsGroupThread rcsGroupThread,
|
||||
@NonNull RcsParticipant originatingParticipant, @Nullable Uri newIcon) {
|
||||
super(timestamp, rcsGroupThread.getThreadId(), originatingParticipant.getId());
|
||||
public RcsGroupThreadIconChangedEvent(long timestamp,
|
||||
@NonNull RcsGroupThread rcsGroupThread, @NonNull RcsParticipant originatingParticipant,
|
||||
@Nullable Uri newIcon) {
|
||||
super(timestamp, rcsGroupThread, originatingParticipant);
|
||||
mNewIcon = newIcon;
|
||||
}
|
||||
|
||||
@@ -61,9 +62,9 @@ public final class RcsGroupThreadIconChangedEvent extends RcsGroupThreadEvent {
|
||||
* @hide - not meant for public use.
|
||||
*/
|
||||
@Override
|
||||
public void persist() throws RcsMessageStoreException {
|
||||
void persist(RcsControllerCall rcsControllerCall) throws RcsMessageStoreException {
|
||||
// TODO ensure failure throws
|
||||
RcsControllerCall.call(iRcs -> iRcs.createGroupThreadIconChangedEvent(
|
||||
rcsControllerCall.call(iRcs -> iRcs.createGroupThreadIconChangedEvent(
|
||||
getTimestamp(), getRcsGroupThread().getThreadId(),
|
||||
getOriginatingParticipant().getId(), mNewIcon));
|
||||
}
|
||||
|
||||
@@ -38,9 +38,10 @@ public class RcsGroupThreadIconChangedEventDescriptor extends RcsGroupThreadEven
|
||||
|
||||
@Override
|
||||
@VisibleForTesting(visibility = PROTECTED)
|
||||
public RcsGroupThreadIconChangedEvent createRcsEvent() {
|
||||
return new RcsGroupThreadIconChangedEvent(mTimestamp, new RcsGroupThread(mRcsGroupThreadId),
|
||||
new RcsParticipant(mOriginatingParticipantId), mNewIcon);
|
||||
public RcsGroupThreadIconChangedEvent createRcsEvent(RcsControllerCall rcsControllerCall) {
|
||||
return new RcsGroupThreadIconChangedEvent(mTimestamp,
|
||||
new RcsGroupThread(rcsControllerCall, mRcsGroupThreadId),
|
||||
new RcsParticipant(rcsControllerCall, mOriginatingParticipantId), mNewIcon);
|
||||
}
|
||||
|
||||
public static final @NonNull Creator<RcsGroupThreadIconChangedEventDescriptor> CREATOR =
|
||||
|
||||
@@ -41,7 +41,7 @@ public final class RcsGroupThreadNameChangedEvent extends RcsGroupThreadEvent {
|
||||
*/
|
||||
public RcsGroupThreadNameChangedEvent(long timestamp, @NonNull RcsGroupThread rcsGroupThread,
|
||||
@NonNull RcsParticipant originatingParticipant, @Nullable String newName) {
|
||||
super(timestamp, rcsGroupThread.getThreadId(), originatingParticipant.getId());
|
||||
super(timestamp, rcsGroupThread, originatingParticipant);
|
||||
mNewName = newName;
|
||||
}
|
||||
|
||||
@@ -60,8 +60,8 @@ public final class RcsGroupThreadNameChangedEvent extends RcsGroupThreadEvent {
|
||||
* @hide - not meant for public use.
|
||||
*/
|
||||
@Override
|
||||
public void persist() throws RcsMessageStoreException {
|
||||
RcsControllerCall.call(iRcs -> iRcs.createGroupThreadNameChangedEvent(
|
||||
void persist(RcsControllerCall rcsControllerCall) throws RcsMessageStoreException {
|
||||
rcsControllerCall.call(iRcs -> iRcs.createGroupThreadNameChangedEvent(
|
||||
getTimestamp(), getRcsGroupThread().getThreadId(),
|
||||
getOriginatingParticipant().getId(), mNewName));
|
||||
}
|
||||
|
||||
@@ -37,11 +37,11 @@ public class RcsGroupThreadNameChangedEventDescriptor extends RcsGroupThreadEven
|
||||
|
||||
@Override
|
||||
@VisibleForTesting(visibility = PROTECTED)
|
||||
public RcsGroupThreadNameChangedEvent createRcsEvent() {
|
||||
public RcsGroupThreadNameChangedEvent createRcsEvent(RcsControllerCall rcsControllerCall) {
|
||||
return new RcsGroupThreadNameChangedEvent(
|
||||
mTimestamp,
|
||||
new RcsGroupThread(mRcsGroupThreadId),
|
||||
new RcsParticipant(mOriginatingParticipantId),
|
||||
new RcsGroupThread(rcsControllerCall, mRcsGroupThreadId),
|
||||
new RcsParticipant(rcsControllerCall, mOriginatingParticipantId),
|
||||
mNewName);
|
||||
}
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ public final class RcsGroupThreadParticipantJoinedEvent extends RcsGroupThreadEv
|
||||
public RcsGroupThreadParticipantJoinedEvent(long timestamp,
|
||||
@NonNull RcsGroupThread rcsGroupThread, @NonNull RcsParticipant originatingParticipant,
|
||||
@NonNull RcsParticipant joinedParticipant) {
|
||||
super(timestamp, rcsGroupThread.getThreadId(), originatingParticipant.getId());
|
||||
super(timestamp, rcsGroupThread, originatingParticipant);
|
||||
mJoinedParticipantId = joinedParticipant;
|
||||
}
|
||||
|
||||
@@ -59,8 +59,8 @@ public final class RcsGroupThreadParticipantJoinedEvent extends RcsGroupThreadEv
|
||||
* @hide - not meant for public use.
|
||||
*/
|
||||
@Override
|
||||
public void persist() throws RcsMessageStoreException {
|
||||
RcsControllerCall.call(
|
||||
void persist(RcsControllerCall rcsControllerCall) throws RcsMessageStoreException {
|
||||
rcsControllerCall.call(
|
||||
iRcs -> iRcs.createGroupThreadParticipantJoinedEvent(getTimestamp(),
|
||||
getRcsGroupThread().getThreadId(), getOriginatingParticipant().getId(),
|
||||
getJoinedParticipant().getId()));
|
||||
|
||||
@@ -36,12 +36,13 @@ public class RcsGroupThreadParticipantJoinedEventDescriptor extends RcsGroupThre
|
||||
|
||||
@Override
|
||||
@VisibleForTesting(visibility = PROTECTED)
|
||||
public RcsGroupThreadParticipantJoinedEvent createRcsEvent() {
|
||||
public RcsGroupThreadParticipantJoinedEvent createRcsEvent(
|
||||
RcsControllerCall rcsControllerCall) {
|
||||
return new RcsGroupThreadParticipantJoinedEvent(
|
||||
mTimestamp,
|
||||
new RcsGroupThread(mRcsGroupThreadId),
|
||||
new RcsParticipant(mOriginatingParticipantId),
|
||||
new RcsParticipant(mJoinedParticipantId));
|
||||
new RcsGroupThread(rcsControllerCall, mRcsGroupThreadId),
|
||||
new RcsParticipant(rcsControllerCall, mOriginatingParticipantId),
|
||||
new RcsParticipant(rcsControllerCall, mJoinedParticipantId));
|
||||
}
|
||||
|
||||
public static final @NonNull Creator<RcsGroupThreadParticipantJoinedEventDescriptor> CREATOR =
|
||||
|
||||
@@ -44,7 +44,7 @@ public final class RcsGroupThreadParticipantLeftEvent extends RcsGroupThreadEven
|
||||
public RcsGroupThreadParticipantLeftEvent(long timestamp,
|
||||
@NonNull RcsGroupThread rcsGroupThread, @NonNull RcsParticipant originatingParticipant,
|
||||
@NonNull RcsParticipant leavingParticipant) {
|
||||
super(timestamp, rcsGroupThread.getThreadId(), originatingParticipant.getId());
|
||||
super(timestamp, rcsGroupThread, originatingParticipant);
|
||||
mLeavingParticipant = leavingParticipant;
|
||||
}
|
||||
|
||||
@@ -58,8 +58,8 @@ public final class RcsGroupThreadParticipantLeftEvent extends RcsGroupThreadEven
|
||||
}
|
||||
|
||||
@Override
|
||||
public void persist() throws RcsMessageStoreException {
|
||||
RcsControllerCall.call(
|
||||
void persist(RcsControllerCall rcsControllerCall) throws RcsMessageStoreException {
|
||||
rcsControllerCall.call(
|
||||
iRcs -> iRcs.createGroupThreadParticipantLeftEvent(getTimestamp(),
|
||||
getRcsGroupThread().getThreadId(), getOriginatingParticipant().getId(),
|
||||
getLeavingParticipant().getId()));
|
||||
|
||||
@@ -37,12 +37,12 @@ public class RcsGroupThreadParticipantLeftEventDescriptor extends RcsGroupThread
|
||||
|
||||
@Override
|
||||
@VisibleForTesting(visibility = PROTECTED)
|
||||
public RcsGroupThreadParticipantLeftEvent createRcsEvent() {
|
||||
public RcsGroupThreadParticipantLeftEvent createRcsEvent(RcsControllerCall rcsControllerCall) {
|
||||
return new RcsGroupThreadParticipantLeftEvent(
|
||||
mTimestamp,
|
||||
new RcsGroupThread(mRcsGroupThreadId),
|
||||
new RcsParticipant(mOriginatingParticipantId),
|
||||
new RcsParticipant(mLeavingParticipantId));
|
||||
new RcsGroupThread(rcsControllerCall, mRcsGroupThreadId),
|
||||
new RcsParticipant(rcsControllerCall, mOriginatingParticipantId),
|
||||
new RcsParticipant(rcsControllerCall, mLeavingParticipantId));
|
||||
}
|
||||
|
||||
@NonNull
|
||||
|
||||
@@ -26,8 +26,8 @@ public class RcsIncomingMessage extends RcsMessage {
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
RcsIncomingMessage(int id) {
|
||||
super(id);
|
||||
RcsIncomingMessage(RcsControllerCall rcsControllerCall, int id) {
|
||||
super(rcsControllerCall, id);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -39,7 +39,7 @@ public class RcsIncomingMessage extends RcsMessage {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void setArrivalTimestamp(long arrivalTimestamp) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(
|
||||
mRcsControllerCall.callWithNoReturn(
|
||||
iRcs -> iRcs.setMessageArrivalTimestamp(mId, true, arrivalTimestamp));
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ public class RcsIncomingMessage extends RcsMessage {
|
||||
*/
|
||||
@WorkerThread
|
||||
public long getArrivalTimestamp() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getMessageArrivalTimestamp(mId, true));
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.getMessageArrivalTimestamp(mId, true));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -62,7 +62,7 @@ public class RcsIncomingMessage extends RcsMessage {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void setSeenTimestamp(long notifiedTimestamp) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(
|
||||
mRcsControllerCall.callWithNoReturn(
|
||||
iRcs -> iRcs.setMessageSeenTimestamp(mId, true, notifiedTimestamp));
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ public class RcsIncomingMessage extends RcsMessage {
|
||||
*/
|
||||
@WorkerThread
|
||||
public long getSeenTimestamp() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getMessageSeenTimestamp(mId, true));
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.getMessageSeenTimestamp(mId, true));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -83,7 +83,8 @@ public class RcsIncomingMessage extends RcsMessage {
|
||||
@WorkerThread
|
||||
public RcsParticipant getSenderParticipant() throws RcsMessageStoreException {
|
||||
return new RcsParticipant(
|
||||
RcsControllerCall.call(iRcs -> iRcs.getSenderParticipant(mId)));
|
||||
mRcsControllerCall,
|
||||
mRcsControllerCall.call(iRcs -> iRcs.getSenderParticipant(mId)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -25,20 +25,19 @@ import android.content.Context;
|
||||
*/
|
||||
@SystemService(Context.TELEPHONY_RCS_SERVICE)
|
||||
public class RcsManager {
|
||||
private final RcsMessageStore mRcsMessageStore;
|
||||
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
public RcsManager() {
|
||||
// empty constructor
|
||||
public RcsManager(Context context) {
|
||||
mRcsMessageStore = new RcsMessageStore(context);
|
||||
}
|
||||
|
||||
private static final RcsMessageStore sRcsMessageStoreInstance = new RcsMessageStore();
|
||||
|
||||
/**
|
||||
* Returns an instance of {@link RcsMessageStore}
|
||||
*/
|
||||
public RcsMessageStore getRcsMessageStore() {
|
||||
return sRcsMessageStoreInstance;
|
||||
return mRcsMessageStore;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -83,6 +83,11 @@ public abstract class RcsMessage {
|
||||
*/
|
||||
public static final int SEEN = 9;
|
||||
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
protected final RcsControllerCall mRcsControllerCall;
|
||||
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
@@ -95,7 +100,8 @@ public abstract class RcsMessage {
|
||||
public @interface RcsMessageStatus {
|
||||
}
|
||||
|
||||
RcsMessage(int id) {
|
||||
RcsMessage(RcsControllerCall rcsControllerCall, int id) {
|
||||
mRcsControllerCall = rcsControllerCall;
|
||||
mId = id;
|
||||
}
|
||||
|
||||
@@ -115,7 +121,7 @@ public abstract class RcsMessage {
|
||||
* @see android.telephony.SubscriptionInfo#getSubscriptionId
|
||||
*/
|
||||
public int getSubscriptionId() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getMessageSubId(mId, isIncoming()));
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.getMessageSubId(mId, isIncoming()));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -128,7 +134,7 @@ public abstract class RcsMessage {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void setSubscriptionId(int subId) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(iRcs -> iRcs.setMessageSubId(mId, isIncoming(), subId));
|
||||
mRcsControllerCall.callWithNoReturn(iRcs -> iRcs.setMessageSubId(mId, isIncoming(), subId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -139,7 +145,7 @@ public abstract class RcsMessage {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void setStatus(@RcsMessageStatus int rcsMessageStatus) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(
|
||||
mRcsControllerCall.callWithNoReturn(
|
||||
iRcs -> iRcs.setMessageStatus(mId, isIncoming(), rcsMessageStatus));
|
||||
}
|
||||
|
||||
@@ -150,7 +156,7 @@ public abstract class RcsMessage {
|
||||
*/
|
||||
@WorkerThread
|
||||
public @RcsMessageStatus int getStatus() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getMessageStatus(mId, isIncoming()));
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.getMessageStatus(mId, isIncoming()));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -163,7 +169,7 @@ public abstract class RcsMessage {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void setOriginationTimestamp(long timestamp) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(
|
||||
mRcsControllerCall.callWithNoReturn(
|
||||
iRcs -> iRcs.setMessageOriginationTimestamp(mId, isIncoming(), timestamp));
|
||||
}
|
||||
|
||||
@@ -175,7 +181,7 @@ public abstract class RcsMessage {
|
||||
*/
|
||||
@WorkerThread
|
||||
public long getOriginationTimestamp() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(
|
||||
return mRcsControllerCall.call(
|
||||
iRcs -> iRcs.getMessageOriginationTimestamp(mId, isIncoming()));
|
||||
}
|
||||
|
||||
@@ -189,7 +195,7 @@ public abstract class RcsMessage {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void setRcsMessageId(String rcsMessageGlobalId) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(
|
||||
mRcsControllerCall.callWithNoReturn(
|
||||
iRcs -> iRcs.setGlobalMessageIdForMessage(mId, isIncoming(), rcsMessageGlobalId));
|
||||
}
|
||||
|
||||
@@ -200,7 +206,8 @@ public abstract class RcsMessage {
|
||||
*/
|
||||
@WorkerThread
|
||||
public String getRcsMessageId() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getGlobalMessageIdForMessage(mId, isIncoming()));
|
||||
return mRcsControllerCall.call(
|
||||
iRcs -> iRcs.getGlobalMessageIdForMessage(mId, isIncoming()));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -209,7 +216,7 @@ public abstract class RcsMessage {
|
||||
*/
|
||||
@WorkerThread
|
||||
public String getText() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getTextForMessage(mId, isIncoming()));
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.getTextForMessage(mId, isIncoming()));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -220,7 +227,8 @@ public abstract class RcsMessage {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void setText(String text) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(iRcs -> iRcs.setTextForMessage(mId, isIncoming(), text));
|
||||
mRcsControllerCall.callWithNoReturn(
|
||||
iRcs -> iRcs.setTextForMessage(mId, isIncoming(), text));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -231,7 +239,7 @@ public abstract class RcsMessage {
|
||||
*/
|
||||
@WorkerThread
|
||||
public double getLatitude() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getLatitudeForMessage(mId, isIncoming()));
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.getLatitudeForMessage(mId, isIncoming()));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -242,7 +250,7 @@ public abstract class RcsMessage {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void setLatitude(double latitude) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(
|
||||
mRcsControllerCall.callWithNoReturn(
|
||||
iRcs -> iRcs.setLatitudeForMessage(mId, isIncoming(), latitude));
|
||||
}
|
||||
|
||||
@@ -254,7 +262,7 @@ public abstract class RcsMessage {
|
||||
*/
|
||||
@WorkerThread
|
||||
public double getLongitude() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getLongitudeForMessage(mId, isIncoming()));
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.getLongitudeForMessage(mId, isIncoming()));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -265,7 +273,7 @@ public abstract class RcsMessage {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void setLongitude(double longitude) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(
|
||||
mRcsControllerCall.callWithNoReturn(
|
||||
iRcs -> iRcs.setLongitudeForMessage(mId, isIncoming(), longitude));
|
||||
}
|
||||
|
||||
@@ -282,7 +290,7 @@ public abstract class RcsMessage {
|
||||
public RcsFileTransferPart insertFileTransfer(
|
||||
RcsFileTransferCreationParams fileTransferCreationParameters)
|
||||
throws RcsMessageStoreException {
|
||||
return new RcsFileTransferPart(RcsControllerCall.call(
|
||||
return new RcsFileTransferPart(mRcsControllerCall, mRcsControllerCall.call(
|
||||
iRcs -> iRcs.storeFileTransfer(mId, isIncoming(), fileTransferCreationParameters)));
|
||||
}
|
||||
|
||||
@@ -296,11 +304,11 @@ public abstract class RcsMessage {
|
||||
public Set<RcsFileTransferPart> getFileTransferParts() throws RcsMessageStoreException {
|
||||
Set<RcsFileTransferPart> fileTransferParts = new HashSet<>();
|
||||
|
||||
int[] fileTransferIds = RcsControllerCall.call(
|
||||
int[] fileTransferIds = mRcsControllerCall.call(
|
||||
iRcs -> iRcs.getFileTransfersAttachedToMessage(mId, isIncoming()));
|
||||
|
||||
for (int fileTransfer : fileTransferIds) {
|
||||
fileTransferParts.add(new RcsFileTransferPart(fileTransfer));
|
||||
fileTransferParts.add(new RcsFileTransferPart(mRcsControllerCall, fileTransfer));
|
||||
}
|
||||
|
||||
return Collections.unmodifiableSet(fileTransferParts);
|
||||
@@ -319,7 +327,7 @@ public abstract class RcsMessage {
|
||||
return;
|
||||
}
|
||||
|
||||
RcsControllerCall.callWithNoReturn(
|
||||
mRcsControllerCall.callWithNoReturn(
|
||||
iRcs -> iRcs.deleteFileTransfer(fileTransferPart.getId()));
|
||||
}
|
||||
|
||||
|
||||
@@ -32,9 +32,12 @@ import java.util.stream.Collectors;
|
||||
* @hide
|
||||
*/
|
||||
public final class RcsMessageQueryResult {
|
||||
private final RcsControllerCall mRcsControllerCall;
|
||||
private final RcsMessageQueryResultParcelable mRcsMessageQueryResultParcelable;
|
||||
|
||||
RcsMessageQueryResult(RcsMessageQueryResultParcelable rcsMessageQueryResultParcelable) {
|
||||
RcsMessageQueryResult(RcsControllerCall rcsControllerCall,
|
||||
RcsMessageQueryResultParcelable rcsMessageQueryResultParcelable) {
|
||||
mRcsControllerCall = rcsControllerCall;
|
||||
mRcsMessageQueryResultParcelable = rcsMessageQueryResultParcelable;
|
||||
}
|
||||
|
||||
@@ -57,8 +60,8 @@ public final class RcsMessageQueryResult {
|
||||
public List<RcsMessage> getMessages() {
|
||||
return mRcsMessageQueryResultParcelable.mMessageTypeIdPairs.stream()
|
||||
.map(typeIdPair -> typeIdPair.getType() == MESSAGE_TYPE_INCOMING
|
||||
? new RcsIncomingMessage(typeIdPair.getId())
|
||||
: new RcsOutgoingMessage(typeIdPair.getId()))
|
||||
? new RcsIncomingMessage(mRcsControllerCall, typeIdPair.getId())
|
||||
: new RcsOutgoingMessage(mRcsControllerCall, typeIdPair.getId()))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ package android.telephony.ims;
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.annotation.WorkerThread;
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
|
||||
import java.util.List;
|
||||
@@ -30,6 +31,12 @@ import java.util.List;
|
||||
* @hide
|
||||
*/
|
||||
public class RcsMessageStore {
|
||||
RcsControllerCall mRcsControllerCall;
|
||||
|
||||
RcsMessageStore(Context context) {
|
||||
mRcsControllerCall = new RcsControllerCall(context);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the first chunk of existing {@link RcsThread}s in the common storage.
|
||||
*
|
||||
@@ -41,8 +48,8 @@ public class RcsMessageStore {
|
||||
@NonNull
|
||||
public RcsThreadQueryResult getRcsThreads(@Nullable RcsThreadQueryParams queryParameters)
|
||||
throws RcsMessageStoreException {
|
||||
return new RcsThreadQueryResult(
|
||||
RcsControllerCall.call(iRcs -> iRcs.getRcsThreads(queryParameters)));
|
||||
return new RcsThreadQueryResult(mRcsControllerCall,
|
||||
mRcsControllerCall.call(iRcs -> iRcs.getRcsThreads(queryParameters)));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -56,8 +63,8 @@ public class RcsMessageStore {
|
||||
@NonNull
|
||||
public RcsThreadQueryResult getRcsThreads(@NonNull RcsQueryContinuationToken continuationToken)
|
||||
throws RcsMessageStoreException {
|
||||
return new RcsThreadQueryResult(
|
||||
RcsControllerCall.call(iRcs -> iRcs.getRcsThreadsWithToken(continuationToken)));
|
||||
return new RcsThreadQueryResult(mRcsControllerCall,
|
||||
mRcsControllerCall.call(iRcs -> iRcs.getRcsThreadsWithToken(continuationToken)));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -72,8 +79,8 @@ public class RcsMessageStore {
|
||||
public RcsParticipantQueryResult getRcsParticipants(
|
||||
@Nullable RcsParticipantQueryParams queryParameters)
|
||||
throws RcsMessageStoreException {
|
||||
return new RcsParticipantQueryResult(
|
||||
RcsControllerCall.call(iRcs -> iRcs.getParticipants(queryParameters)));
|
||||
return new RcsParticipantQueryResult(mRcsControllerCall,
|
||||
mRcsControllerCall.call(iRcs -> iRcs.getParticipants(queryParameters)));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -89,23 +96,23 @@ public class RcsMessageStore {
|
||||
public RcsParticipantQueryResult getRcsParticipants(
|
||||
@NonNull RcsQueryContinuationToken continuationToken)
|
||||
throws RcsMessageStoreException {
|
||||
return new RcsParticipantQueryResult(
|
||||
RcsControllerCall.call(iRcs -> iRcs.getParticipantsWithToken(continuationToken)));
|
||||
return new RcsParticipantQueryResult(mRcsControllerCall,
|
||||
mRcsControllerCall.call(iRcs -> iRcs.getParticipantsWithToken(continuationToken)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the first chunk of existing {@link RcsMessage}s in the common storage.
|
||||
*
|
||||
* @param queryParameters Parameters to specify to return a subset of all RcsMessages.
|
||||
* Passing a value of null will return all messages.
|
||||
* @param queryParams Parameters to specify to return a subset of all RcsMessages.
|
||||
* Passing a value of null will return all messages.
|
||||
* @throws RcsMessageStoreException if the query could not be completed on the storage
|
||||
*/
|
||||
@WorkerThread
|
||||
@NonNull
|
||||
public RcsMessageQueryResult getRcsMessages(
|
||||
@Nullable RcsMessageQueryParams queryParameters) throws RcsMessageStoreException {
|
||||
return new RcsMessageQueryResult(
|
||||
RcsControllerCall.call(iRcs -> iRcs.getMessages(queryParameters)));
|
||||
@Nullable RcsMessageQueryParams queryParams) throws RcsMessageStoreException {
|
||||
return new RcsMessageQueryResult(mRcsControllerCall,
|
||||
mRcsControllerCall.call(iRcs -> iRcs.getMessages(queryParams)));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -119,8 +126,8 @@ public class RcsMessageStore {
|
||||
@NonNull
|
||||
public RcsMessageQueryResult getRcsMessages(
|
||||
@NonNull RcsQueryContinuationToken continuationToken) throws RcsMessageStoreException {
|
||||
return new RcsMessageQueryResult(
|
||||
RcsControllerCall.call(iRcs -> iRcs.getMessagesWithToken(continuationToken)));
|
||||
return new RcsMessageQueryResult(mRcsControllerCall,
|
||||
mRcsControllerCall.call(iRcs -> iRcs.getMessagesWithToken(continuationToken)));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -134,8 +141,8 @@ public class RcsMessageStore {
|
||||
@NonNull
|
||||
public RcsEventQueryResult getRcsEvents(
|
||||
@Nullable RcsEventQueryParams queryParams) throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getEvents(queryParams))
|
||||
.getRcsEventQueryResult();
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.getEvents(queryParams))
|
||||
.getRcsEventQueryResult(mRcsControllerCall);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -149,14 +156,14 @@ public class RcsMessageStore {
|
||||
@NonNull
|
||||
public RcsEventQueryResult getRcsEvents(
|
||||
@NonNull RcsQueryContinuationToken continuationToken) throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getEventsWithToken(continuationToken))
|
||||
.getRcsEventQueryResult();
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.getEventsWithToken(continuationToken))
|
||||
.getRcsEventQueryResult(mRcsControllerCall);
|
||||
}
|
||||
|
||||
/**
|
||||
* Persists an {@link RcsEvent} to common storage.
|
||||
*
|
||||
* @param persistableEvent The {@link RcsEvent} to persist into storage.
|
||||
* @param rcsEvent The {@link RcsEvent} to persist into storage.
|
||||
* @throws RcsMessageStoreException if the query could not be completed on the storage
|
||||
* @see RcsGroupThreadNameChangedEvent
|
||||
* @see RcsGroupThreadIconChangedEvent
|
||||
@@ -166,8 +173,8 @@ public class RcsMessageStore {
|
||||
*/
|
||||
@WorkerThread
|
||||
@NonNull
|
||||
public void persistRcsEvent(RcsEvent persistableEvent) throws RcsMessageStoreException {
|
||||
persistableEvent.persist();
|
||||
public void persistRcsEvent(RcsEvent rcsEvent) throws RcsMessageStoreException {
|
||||
rcsEvent.persist(mRcsControllerCall);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -182,7 +189,8 @@ public class RcsMessageStore {
|
||||
public Rcs1To1Thread createRcs1To1Thread(@NonNull RcsParticipant recipient)
|
||||
throws RcsMessageStoreException {
|
||||
return new Rcs1To1Thread(
|
||||
RcsControllerCall.call(iRcs -> iRcs.createRcs1To1Thread(recipient.getId())));
|
||||
mRcsControllerCall,
|
||||
mRcsControllerCall.call(iRcs -> iRcs.createRcs1To1Thread(recipient.getId())));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -204,8 +212,11 @@ public class RcsMessageStore {
|
||||
}
|
||||
|
||||
int[] finalRecipientIds = recipientIds;
|
||||
return new RcsGroupThread(RcsControllerCall.call(
|
||||
iRcs -> iRcs.createGroupThread(finalRecipientIds, groupName, groupIcon)));
|
||||
|
||||
int threadId = mRcsControllerCall.call(
|
||||
iRcs -> iRcs.createGroupThread(finalRecipientIds, groupName, groupIcon));
|
||||
|
||||
return new RcsGroupThread(mRcsControllerCall, threadId);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -220,7 +231,7 @@ public class RcsMessageStore {
|
||||
return;
|
||||
}
|
||||
|
||||
boolean isDeleteSucceeded = RcsControllerCall.call(
|
||||
boolean isDeleteSucceeded = mRcsControllerCall.call(
|
||||
iRcs -> iRcs.deleteThread(thread.getThreadId(), thread.getThreadType()));
|
||||
|
||||
if (!isDeleteSucceeded) {
|
||||
@@ -239,7 +250,7 @@ public class RcsMessageStore {
|
||||
@NonNull
|
||||
public RcsParticipant createRcsParticipant(String canonicalAddress, @Nullable String alias)
|
||||
throws RcsMessageStoreException {
|
||||
return new RcsParticipant(
|
||||
RcsControllerCall.call(iRcs -> iRcs.createRcsParticipant(canonicalAddress, alias)));
|
||||
return new RcsParticipant(mRcsControllerCall, mRcsControllerCall.call(
|
||||
iRcs -> iRcs.createRcsParticipant(canonicalAddress, alias)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,8 +27,8 @@ import java.util.List;
|
||||
* @hide
|
||||
*/
|
||||
public class RcsOutgoingMessage extends RcsMessage {
|
||||
RcsOutgoingMessage(int id) {
|
||||
super(id);
|
||||
RcsOutgoingMessage(RcsControllerCall rcsControllerCall, int id) {
|
||||
super(rcsControllerCall, id);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -45,12 +45,13 @@ public class RcsOutgoingMessage extends RcsMessage {
|
||||
int[] deliveryParticipants;
|
||||
List<RcsOutgoingMessageDelivery> messageDeliveries = new ArrayList<>();
|
||||
|
||||
deliveryParticipants = RcsControllerCall.call(
|
||||
deliveryParticipants = mRcsControllerCall.call(
|
||||
iRcs -> iRcs.getMessageRecipients(mId));
|
||||
|
||||
if (deliveryParticipants != null) {
|
||||
for (Integer deliveryParticipant : deliveryParticipants) {
|
||||
messageDeliveries.add(new RcsOutgoingMessageDelivery(deliveryParticipant, mId));
|
||||
messageDeliveries.add(new RcsOutgoingMessageDelivery(
|
||||
mRcsControllerCall, deliveryParticipant, mId));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@ import android.annotation.WorkerThread;
|
||||
* @hide
|
||||
*/
|
||||
public class RcsOutgoingMessageDelivery {
|
||||
private final RcsControllerCall mRcsControllerCall;
|
||||
// The participant that this delivery is intended for
|
||||
private final int mRecipientId;
|
||||
// The message this delivery is associated with
|
||||
@@ -35,7 +36,9 @@ public class RcsOutgoingMessageDelivery {
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
RcsOutgoingMessageDelivery(int recipientId, int messageId) {
|
||||
RcsOutgoingMessageDelivery(
|
||||
RcsControllerCall rcsControllerCall, int recipientId, int messageId) {
|
||||
mRcsControllerCall = rcsControllerCall;
|
||||
mRecipientId = recipientId;
|
||||
mRcsOutgoingMessageId = messageId;
|
||||
}
|
||||
@@ -49,7 +52,7 @@ public class RcsOutgoingMessageDelivery {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void setDeliveredTimestamp(long deliveredTimestamp) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(iRcs -> iRcs.setOutgoingDeliveryDeliveredTimestamp(
|
||||
mRcsControllerCall.callWithNoReturn(iRcs -> iRcs.setOutgoingDeliveryDeliveredTimestamp(
|
||||
mRcsOutgoingMessageId, mRecipientId, deliveredTimestamp));
|
||||
}
|
||||
|
||||
@@ -61,7 +64,7 @@ public class RcsOutgoingMessageDelivery {
|
||||
*/
|
||||
@WorkerThread
|
||||
public long getDeliveredTimestamp() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getOutgoingDeliveryDeliveredTimestamp(
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.getOutgoingDeliveryDeliveredTimestamp(
|
||||
mRcsOutgoingMessageId, mRecipientId));
|
||||
}
|
||||
|
||||
@@ -74,7 +77,7 @@ public class RcsOutgoingMessageDelivery {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void setSeenTimestamp(long seenTimestamp) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(iRcs -> iRcs.setOutgoingDeliverySeenTimestamp(
|
||||
mRcsControllerCall.callWithNoReturn(iRcs -> iRcs.setOutgoingDeliverySeenTimestamp(
|
||||
mRcsOutgoingMessageId, mRecipientId, seenTimestamp));
|
||||
}
|
||||
|
||||
@@ -86,7 +89,7 @@ public class RcsOutgoingMessageDelivery {
|
||||
*/
|
||||
@WorkerThread
|
||||
public long getSeenTimestamp() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(
|
||||
return mRcsControllerCall.call(
|
||||
iRcs -> iRcs.getOutgoingDeliverySeenTimestamp(mRcsOutgoingMessageId, mRecipientId));
|
||||
}
|
||||
|
||||
@@ -99,7 +102,7 @@ public class RcsOutgoingMessageDelivery {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void setStatus(@RcsMessage.RcsMessageStatus int status) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(iRcs -> iRcs.setOutgoingDeliveryStatus(
|
||||
mRcsControllerCall.callWithNoReturn(iRcs -> iRcs.setOutgoingDeliveryStatus(
|
||||
mRcsOutgoingMessageId, mRecipientId, status));
|
||||
}
|
||||
|
||||
@@ -109,7 +112,7 @@ public class RcsOutgoingMessageDelivery {
|
||||
*/
|
||||
@WorkerThread
|
||||
public @RcsMessage.RcsMessageStatus int getStatus() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(
|
||||
return mRcsControllerCall.call(
|
||||
iRcs -> iRcs.getOutgoingDeliveryStatus(mRcsOutgoingMessageId, mRecipientId));
|
||||
}
|
||||
|
||||
@@ -118,7 +121,7 @@ public class RcsOutgoingMessageDelivery {
|
||||
*/
|
||||
@NonNull
|
||||
public RcsParticipant getRecipient() {
|
||||
return new RcsParticipant(mRecipientId);
|
||||
return new RcsParticipant(mRcsControllerCall, mRecipientId);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -126,6 +129,6 @@ public class RcsOutgoingMessageDelivery {
|
||||
*/
|
||||
@NonNull
|
||||
public RcsOutgoingMessage getMessage() {
|
||||
return new RcsOutgoingMessage(mRcsOutgoingMessageId);
|
||||
return new RcsOutgoingMessage(mRcsControllerCall, mRcsOutgoingMessageId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,8 +24,9 @@ import android.annotation.WorkerThread;
|
||||
* @hide
|
||||
*/
|
||||
public class RcsParticipant {
|
||||
private final RcsControllerCall mRcsControllerCall;
|
||||
// The row ID of this participant in the database
|
||||
private int mId;
|
||||
private final int mId;
|
||||
|
||||
/**
|
||||
* Constructor for {@link com.android.internal.telephony.ims.RcsMessageStoreController}
|
||||
@@ -33,7 +34,8 @@ public class RcsParticipant {
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public RcsParticipant(int id) {
|
||||
public RcsParticipant(RcsControllerCall rcsControllerCall, int id) {
|
||||
mRcsControllerCall = rcsControllerCall;
|
||||
mId = id;
|
||||
}
|
||||
|
||||
@@ -45,7 +47,7 @@ public class RcsParticipant {
|
||||
@Nullable
|
||||
@WorkerThread
|
||||
public String getCanonicalAddress() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getRcsParticipantCanonicalAddress(mId));
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.getRcsParticipantCanonicalAddress(mId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -57,7 +59,7 @@ public class RcsParticipant {
|
||||
@Nullable
|
||||
@WorkerThread
|
||||
public String getAlias() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getRcsParticipantAlias(mId));
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.getRcsParticipantAlias(mId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -70,7 +72,7 @@ public class RcsParticipant {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void setAlias(String alias) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(iRcs -> iRcs.setRcsParticipantAlias(mId, alias));
|
||||
mRcsControllerCall.callWithNoReturn(iRcs -> iRcs.setRcsParticipantAlias(mId, alias));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -82,7 +84,7 @@ public class RcsParticipant {
|
||||
@Nullable
|
||||
@WorkerThread
|
||||
public String getContactId() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getRcsParticipantContactId(mId));
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.getRcsParticipantContactId(mId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -95,7 +97,8 @@ public class RcsParticipant {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void setContactId(String contactId) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(iRcs -> iRcs.setRcsParticipantContactId(mId, contactId));
|
||||
mRcsControllerCall.callWithNoReturn(
|
||||
iRcs -> iRcs.setRcsParticipantContactId(mId, contactId));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -69,8 +69,8 @@ public final class RcsParticipantAliasChangedEvent extends RcsEvent {
|
||||
* @hide - not meant for public use.
|
||||
*/
|
||||
@Override
|
||||
public void persist() throws RcsMessageStoreException {
|
||||
RcsControllerCall.call(iRcs -> iRcs.createParticipantAliasChangedEvent(
|
||||
void persist(RcsControllerCall rcsControllerCall) throws RcsMessageStoreException {
|
||||
rcsControllerCall.call(iRcs -> iRcs.createParticipantAliasChangedEvent(
|
||||
getTimestamp(), getParticipant().getId(), getNewAlias()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,9 +41,9 @@ public class RcsParticipantAliasChangedEventDescriptor extends RcsEventDescripto
|
||||
|
||||
@Override
|
||||
@VisibleForTesting(visibility = PROTECTED)
|
||||
public RcsParticipantAliasChangedEvent createRcsEvent() {
|
||||
public RcsParticipantAliasChangedEvent createRcsEvent(RcsControllerCall rcsControllerCall) {
|
||||
return new RcsParticipantAliasChangedEvent(
|
||||
mTimestamp, new RcsParticipant(mParticipantId), mNewAlias);
|
||||
mTimestamp, new RcsParticipant(rcsControllerCall, mParticipantId), mNewAlias);
|
||||
}
|
||||
|
||||
public static final @NonNull Creator<RcsParticipantAliasChangedEventDescriptor> CREATOR =
|
||||
|
||||
@@ -30,10 +30,13 @@ import java.util.stream.Collectors;
|
||||
* @hide
|
||||
*/
|
||||
public final class RcsParticipantQueryResult {
|
||||
private final RcsControllerCall mRcsControllerCall;
|
||||
private final RcsParticipantQueryResultParcelable mRcsParticipantQueryResultParcelable;
|
||||
|
||||
RcsParticipantQueryResult(
|
||||
RcsControllerCall rcsControllerCall,
|
||||
RcsParticipantQueryResultParcelable rcsParticipantQueryResultParcelable) {
|
||||
mRcsControllerCall = rcsControllerCall;
|
||||
mRcsParticipantQueryResultParcelable = rcsParticipantQueryResultParcelable;
|
||||
}
|
||||
|
||||
@@ -55,7 +58,7 @@ public final class RcsParticipantQueryResult {
|
||||
@NonNull
|
||||
public List<RcsParticipant> getParticipants() {
|
||||
return mRcsParticipantQueryResultParcelable.mParticipantIds.stream()
|
||||
.map(RcsParticipant::new)
|
||||
.map(participantId -> new RcsParticipant(mRcsControllerCall, participantId))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,8 +41,14 @@ public abstract class RcsThread {
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
protected RcsThread(int threadId) {
|
||||
protected final RcsControllerCall mRcsControllerCall;
|
||||
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
protected RcsThread(RcsControllerCall rcsControllerCall, int threadId) {
|
||||
mThreadId = threadId;
|
||||
mRcsControllerCall = rcsControllerCall;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -52,7 +58,7 @@ public abstract class RcsThread {
|
||||
@WorkerThread
|
||||
@NonNull
|
||||
public RcsMessageSnippet getSnippet() throws RcsMessageStoreException {
|
||||
return RcsControllerCall.call(iRcs -> iRcs.getMessageSnippet(mThreadId));
|
||||
return mRcsControllerCall.call(iRcs -> iRcs.getMessageSnippet(mThreadId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -65,8 +71,9 @@ public abstract class RcsThread {
|
||||
public RcsIncomingMessage addIncomingMessage(
|
||||
@NonNull RcsIncomingMessageCreationParams rcsIncomingMessageCreationParams)
|
||||
throws RcsMessageStoreException {
|
||||
return new RcsIncomingMessage(RcsControllerCall.call(iRcs -> iRcs.addIncomingMessage(
|
||||
mThreadId, rcsIncomingMessageCreationParams)));
|
||||
int messageId = mRcsControllerCall.call(
|
||||
iRcs -> iRcs.addIncomingMessage(mThreadId, rcsIncomingMessageCreationParams));
|
||||
return new RcsIncomingMessage(mRcsControllerCall, messageId);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -79,10 +86,10 @@ public abstract class RcsThread {
|
||||
public RcsOutgoingMessage addOutgoingMessage(
|
||||
@NonNull RcsOutgoingMessageCreationParams rcsOutgoingMessageCreationParams)
|
||||
throws RcsMessageStoreException {
|
||||
int messageId = RcsControllerCall.call(iRcs -> iRcs.addOutgoingMessage(
|
||||
int messageId = mRcsControllerCall.call(iRcs -> iRcs.addOutgoingMessage(
|
||||
mThreadId, rcsOutgoingMessageCreationParams));
|
||||
|
||||
return new RcsOutgoingMessage(messageId);
|
||||
return new RcsOutgoingMessage(mRcsControllerCall, messageId);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -93,7 +100,7 @@ public abstract class RcsThread {
|
||||
*/
|
||||
@WorkerThread
|
||||
public void deleteMessage(@NonNull RcsMessage rcsMessage) throws RcsMessageStoreException {
|
||||
RcsControllerCall.callWithNoReturn(
|
||||
mRcsControllerCall.callWithNoReturn(
|
||||
iRcs -> iRcs.deleteMessage(rcsMessage.getId(), rcsMessage.isIncoming(), mThreadId,
|
||||
isGroup()));
|
||||
}
|
||||
@@ -109,10 +116,10 @@ public abstract class RcsThread {
|
||||
@WorkerThread
|
||||
@NonNull
|
||||
public RcsMessageQueryResult getMessages() throws RcsMessageStoreException {
|
||||
RcsMessageQueryParams queryParameters =
|
||||
RcsMessageQueryParams queryParams =
|
||||
new RcsMessageQueryParams.Builder().setThread(this).build();
|
||||
return new RcsMessageQueryResult(
|
||||
RcsControllerCall.call(iRcs -> iRcs.getMessages(queryParameters)));
|
||||
return new RcsMessageQueryResult(mRcsControllerCall,
|
||||
mRcsControllerCall.call(iRcs -> iRcs.getMessages(queryParams)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -33,9 +33,12 @@ import java.util.stream.Collectors;
|
||||
* @hide
|
||||
*/
|
||||
public final class RcsThreadQueryResult {
|
||||
private final RcsControllerCall mRcsControllerCall;
|
||||
private final RcsThreadQueryResultParcelable mRcsThreadQueryResultParcelable;
|
||||
|
||||
RcsThreadQueryResult(RcsThreadQueryResultParcelable rcsThreadQueryResultParcelable) {
|
||||
RcsThreadQueryResult(RcsControllerCall rcsControllerCall,
|
||||
RcsThreadQueryResultParcelable rcsThreadQueryResultParcelable) {
|
||||
mRcsControllerCall = rcsControllerCall;
|
||||
mRcsThreadQueryResultParcelable = rcsThreadQueryResultParcelable;
|
||||
}
|
||||
|
||||
@@ -58,8 +61,8 @@ public final class RcsThreadQueryResult {
|
||||
public List<RcsThread> getThreads() {
|
||||
return mRcsThreadQueryResultParcelable.mRcsThreadIds.stream()
|
||||
.map(typeIdPair -> typeIdPair.getType() == THREAD_TYPE_1_TO_1
|
||||
? new Rcs1To1Thread(typeIdPair.getId())
|
||||
: new RcsGroupThread(typeIdPair.getId()))
|
||||
? new Rcs1To1Thread(mRcsControllerCall, typeIdPair.getId())
|
||||
: new RcsGroupThread(mRcsControllerCall, typeIdPair.getId()))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,9 +50,7 @@ public class RcsGroupThreadIconChangedEventTest {
|
||||
RcsGroupThreadIconChangedEventDescriptor.CREATOR.createFromParcel(parcel);
|
||||
|
||||
RcsGroupThreadIconChangedEvent iconChangedEvent =
|
||||
iconChangedEventDescriptor.createRcsEvent();
|
||||
|
||||
|
||||
iconChangedEventDescriptor.createRcsEvent(null);
|
||||
|
||||
assertThat(iconChangedEvent.getNewIcon()).isEqualTo(newIconUri);
|
||||
assertThat(iconChangedEvent.getRcsGroupThread().getThreadId()).isEqualTo(1);
|
||||
|
||||
@@ -49,7 +49,7 @@ public class RcsGroupThreadNameChangedEventTest {
|
||||
.createFromParcel(parcel);
|
||||
|
||||
RcsGroupThreadNameChangedEvent nameChangedEvent =
|
||||
nameChangedEventDescriptor.createRcsEvent();
|
||||
nameChangedEventDescriptor.createRcsEvent(null);
|
||||
|
||||
assertThat(nameChangedEvent.getNewName()).isEqualTo(newName);
|
||||
assertThat(nameChangedEvent.getRcsGroupThread().getThreadId()).isEqualTo(1);
|
||||
|
||||
@@ -48,7 +48,7 @@ public class RcsGroupThreadParticipantJoinedEventTest {
|
||||
.createFromParcel(parcel);
|
||||
|
||||
RcsGroupThreadParticipantJoinedEvent participantJoinedEvent =
|
||||
participantJoinedEventDescriptor.createRcsEvent();
|
||||
participantJoinedEventDescriptor.createRcsEvent(null);
|
||||
|
||||
assertThat(participantJoinedEvent.getJoinedParticipant().getId()).isEqualTo(2);
|
||||
assertThat(participantJoinedEvent.getRcsGroupThread().getThreadId()).isEqualTo(1);
|
||||
|
||||
@@ -49,7 +49,7 @@ public class RcsGroupThreadParticipantLeftEventTest {
|
||||
.createFromParcel(parcel);
|
||||
|
||||
RcsGroupThreadParticipantLeftEvent participantLeftEvent =
|
||||
participantLeftEventDescriptor.createRcsEvent();
|
||||
participantLeftEventDescriptor.createRcsEvent(null);
|
||||
|
||||
assertThat(participantLeftEvent.getRcsGroupThread().getThreadId()).isEqualTo(1);
|
||||
assertThat(participantLeftEvent.getLeavingParticipant().getId()).isEqualTo(2);
|
||||
|
||||
@@ -48,7 +48,7 @@ public class RcsParticipantAliasChangedEventTest {
|
||||
.createFromParcel(parcel);
|
||||
|
||||
RcsParticipantAliasChangedEvent aliasChangedEvent =
|
||||
aliasChangedEventDescriptor.createRcsEvent();
|
||||
aliasChangedEventDescriptor.createRcsEvent(null);
|
||||
|
||||
assertThat(aliasChangedEvent.getParticipant().getId()).isEqualTo(mParticipantId);
|
||||
assertThat(aliasChangedEvent.getNewAlias()).isEqualTo(NEW_ALIAS);
|
||||
|
||||
@@ -34,7 +34,7 @@ public class RcsThreadQueryParamsTest {
|
||||
|
||||
@Test
|
||||
public void testCanUnparcel() {
|
||||
RcsParticipant rcsParticipant = new RcsParticipant(1);
|
||||
RcsParticipant rcsParticipant = new RcsParticipant(null, 1);
|
||||
RcsThreadQueryParams rcsThreadQueryParams = new RcsThreadQueryParams.Builder()
|
||||
.setThreadType(THREAD_TYPE_GROUP)
|
||||
.setParticipant(rcsParticipant)
|
||||
|
||||
Reference in New Issue
Block a user