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

Commit 78a8467f authored by James.cf Lin's avatar James.cf Lin
Browse files

Update the collection type of feature tags from List to Set

Bug: 181175307
Test: atest RcsUceAdapterTest ImsServiceTest
Merged-In: Iecc1b0f95ca0a05dd93ac3dc16f5eee632711459
Change-Id: Iecc1b0f95ca0a05dd93ac3dc16f5eee632711459
parent 5c23cba0
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -637,18 +637,18 @@ public class EabControllerImpl implements EabController {
        Uri result = mContext.getContentResolver().insert(EabProvider.COMMON_URI, contentValues);

        int commonId = Integer.valueOf(result.getLastPathSegment());
        ContentValues[] optionContent =
                new ContentValues[capability.getOptionsFeatureTags().size()];

        for (int i = 0; i < optionContent.length; i++) {
            String feature = capability.getOptionsFeatureTags().get(i);
        List<ContentValues> optionContentList = new ArrayList<>();
        for (String feature : capability.getFeatureTags()) {
            contentValues = new ContentValues();
            contentValues.put(EabProvider.OptionsColumns.EAB_COMMON_ID, commonId);
            contentValues.put(EabProvider.OptionsColumns.FEATURE_TAG, feature);
            contentValues.put(EabProvider.OptionsColumns.REQUEST_TIMESTAMP,
                    Instant.now().getEpochSecond());
            optionContent[i] = contentValues;
            optionContentList.add(contentValues);
        }

        ContentValues[] optionContent = new ContentValues[optionContentList.size()];
        optionContent = optionContentList.toArray(optionContent);
        mContext.getContentResolver().bulkInsert(EabProvider.OPTIONS_URI, optionContent);
    }

+2 −2
Original line number Diff line number Diff line
@@ -23,7 +23,7 @@ import android.telephony.ims.aidl.IOptionsResponseCallback;

import com.android.ims.rcs.uce.ControllerBase;

import java.util.List;
import java.util.Set;

/**
 * The interface to define the operations of the SIP OPTIONS
@@ -35,6 +35,6 @@ public interface OptionsController extends ControllerBase {
     * @param deviceFeatureTags The feature tags of the device's capabilities.
     * @param c The response callback of the OPTIONS capabilities request.
     */
    void sendCapabilitiesRequest(@NonNull Uri contactUri, @NonNull List<String> deviceFeatureTags,
    void sendCapabilitiesRequest(@NonNull Uri contactUri, @NonNull Set<String> deviceFeatureTags,
            @NonNull IOptionsResponseCallback c) throws RemoteException;
}
+5 −4
Original line number Diff line number Diff line
@@ -27,7 +27,8 @@ import android.util.Log;
import com.android.ims.RcsFeatureManager;
import com.android.ims.rcs.uce.util.UceUtils;

import java.util.List;
import java.util.ArrayList;
import java.util.Set;

/**
 * The implementation of OptionsController.
@@ -67,8 +68,7 @@ public class OptionsControllerImpl implements OptionsController {
        // Nothing required here.
    }

    @Override
    public void sendCapabilitiesRequest(Uri contactUri, @NonNull List<String> deviceFeatureTags,
    public void sendCapabilitiesRequest(Uri contactUri, @NonNull Set<String> deviceFeatureTags,
            IOptionsResponseCallback c) throws RemoteException {

        if (mIsDestroyedFlag) {
@@ -82,6 +82,7 @@ public class OptionsControllerImpl implements OptionsController {
            return;
        }

        featureManager.sendOptionsCapabilityRequest(contactUri, deviceFeatureTags, c);
        featureManager.sendOptionsCapabilityRequest(contactUri, new ArrayList<>(deviceFeatureTags),
            c);
    }
}
+5 −3
Original line number Diff line number Diff line
@@ -32,9 +32,11 @@ import com.android.ims.rcs.uce.util.UceUtils;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;

/**
@@ -78,7 +80,7 @@ public class CapabilityRequestResponse {
    private final List<RcsContactUceCapability> mUpdatedCapabilityList;

    // The list of the remote contact's capability.
    private final List<String> mRemoteCaps;
    private final Set<String> mRemoteCaps;

    // The callback to notify the result of this request.
    public IRcsUceControllerCallback mCapabilitiesCallback;
@@ -93,7 +95,7 @@ public class CapabilityRequestResponse {
        mRetryAfterMillis = Optional.of(0L);
        mTerminatedResource = new ArrayList<>();
        mUpdatedCapabilityList = new ArrayList<>();
        mRemoteCaps = new ArrayList<>();
        mRemoteCaps = new HashSet<>();
    }

    /**
@@ -284,7 +286,7 @@ public class CapabilityRequestResponse {
    /**
     * Set the remote's capabilities which are sent from the network.
     */
    public void setRemoteCapabilities(Uri contact, List<String> remoteCaps) {
    public void setRemoteCapabilities(Uri contact, Set<String> remoteCaps) {
        // Set the remote capabilities
        if (remoteCaps != null) {
            remoteCaps.stream().filter(Objects::nonNull).forEach(cap -> mRemoteCaps.add(cap));
+4 −2
Original line number Diff line number Diff line
@@ -27,7 +27,9 @@ import com.android.ims.rcs.uce.options.OptionsController;
import com.android.ims.rcs.uce.request.UceRequestManager.RequestManagerCallback;
import com.android.internal.annotations.VisibleForTesting;

import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * The UceRequest to request the capabilities when the OPTIONS mechanism is supported by the
@@ -95,7 +97,7 @@ public class OptionsRequest extends UceRequest {
        }

        mContactUri = requestCapUris.get(0);
        List<String> featureTags = deviceCap.getOptionsFeatureTags();
        Set<String> featureTags = deviceCap.getFeatureTags();

        logi("requestCapabilities: featureTag size=" + featureTags.size());
        try {
@@ -134,7 +136,7 @@ public class OptionsRequest extends UceRequest {

        // Set the network response code and the remote contact capabilities
        mRequestResponse.setNetworkResponseCode(sipCode, reason);
        mRequestResponse.setRemoteCapabilities(mContactUri, remoteCaps);
        mRequestResponse.setRemoteCapabilities(mContactUri, new HashSet<>(remoteCaps));

        // Notify the request result
        if (mRequestResponse.isNetworkResponseOK()) {
Loading