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

Commit ba9e9d13 authored by Hyunho's avatar Hyunho Committed by Hyunho Shin
Browse files

If the device receive a failure response except 404 for SUBSCRIBE, do not...

If the device receive a failure response except 404 for SUBSCRIBE, do not stored the capability as a NON-RCS to the DB.

Bug: b/243772320
Test: atest SubscribeCoordinatorTest
Test: TMO network. When a 404 response to SUBSCRIBE is received, NON RCS capability is stored in DB. And when capability discovery is requested for the same number, information cached in DB is notified to the caller.
Test: TMO netowrk. If a response other than 404 for SUBSCRIBE is received, it informs the caller of NON RCS capability and is not stored in DB. And for the same number, the SUBSCRIBE method is sent to the server during capability discovery.
Change-Id: If694e61606820558bceaf3a9a0ec4b6426c43314
parent f6adbcd0
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -297,7 +297,9 @@ public class SubscribeRequestCoordinator extends UceRequestCoordinator {
            // Trigger capabilities updated callback if there is any.
            List<RcsContactUceCapability> updatedCapList = response.getUpdatedContactCapability();
            if (!updatedCapList.isEmpty()) {
                if (response.isNotFound()) {
                    mRequestManagerCallback.saveCapabilities(updatedCapList);
                }
                triggerCapabilitiesReceivedCallback(updatedCapList);
                response.removeUpdatedCapabilities(updatedCapList);
            }
+12 −1
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ import androidx.test.filters.SmallTest;
import com.android.ims.ImsTestBase;
import com.android.ims.rcs.uce.UceDeviceState.DeviceStateResult;
import com.android.ims.rcs.uce.UceStatsWriter;
import com.android.ims.rcs.uce.eab.EabCapabilityResult;
import com.android.ims.rcs.uce.request.UceRequestCoordinator.RequestResult;
import com.android.ims.rcs.uce.request.UceRequestManager.RequestManagerCallback;

@@ -150,10 +151,20 @@ public class SubscribeCoordinatorTest extends ImsTestBase {

        SubscribeRequestCoordinator coordinator = getSubscribeCoordinator();

        List<EabCapabilityResult> eabResultList = new ArrayList<>();

        Uri contactUri = Uri.fromParts("tel", "123456789", null);
        EabCapabilityResult result = new EabCapabilityResult(contactUri,
                EabCapabilityResult.EAB_CONTACT_NOT_FOUND_FAILURE, null);
        eabResultList.add(result);

        doReturn(eabResultList).when(mRequestMgrCallback).
                getCapabilitiesFromCacheIncludingExpired(any());

        coordinator.onRequestUpdated(mTaskId, REQUEST_UPDATE_NETWORK_RESPONSE);

        verify(mUceStatsWriter).setSubscribeResponse(eq(mSubId), eq(mTaskId), eq(400));

        verify(mRequestMgrCallback, never()).saveCapabilities(any());
        verify(mRequest).onFinish();
    }