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

Commit 124f980e authored by Calvin Pan's avatar Calvin Pan Committed by Gerrit Code Review
Browse files

Merge "Add EabProvider and EabControllerImpl"

parents 2f669888 2ce3f283
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ public class UceController {
        /**
         * Retrieve the capabilities associated with the given uris from the cache.
         */
        EabCapabilityResult getCapabilitiesFromCache(@NonNull List<Uri> uris);
        List<EabCapabilityResult> getCapabilitiesFromCache(@NonNull List<Uri> uris);

        /**
         * Retrieve the contact's capabilities from the availability cache.
@@ -282,7 +282,7 @@ public class UceController {
     */
    private UceControllerCallback mCtrlCallback = new UceControllerCallback() {
        @Override
        public EabCapabilityResult getCapabilitiesFromCache(List<Uri> uris) {
        public List<EabCapabilityResult> getCapabilitiesFromCache(List<Uri> uris) {
            return mEabController.getCapabilities(uris);
        }

+61 −14
Original line number Diff line number Diff line
@@ -16,38 +16,85 @@

package com.android.ims.rcs.uce.eab;

import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.net.Uri;
import android.telephony.ims.RcsContactUceCapability;

import java.util.List;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

/**
 * The result class of retrieving capabilities from cache.
 */
public class EabCapabilityResult {
    private final List<RcsContactUceCapability> mContactCapabilities;
    private final List<Uri> mExpiredContacts;

    public EabCapabilityResult(List<RcsContactUceCapability> capabilities,
            List<Uri> expiredContacts) {
    /**
     * Query successful.
     */
    public static final int EAB_QUERY_SUCCESSFUL = 0;

    /**
     * The {@link EabControllerImpl} has been destroyed.
     */
    public static final int EAB_CONTROLLER_DESTROYED_FAILURE = 1;

    /**
     * The contact's capabilities expired.
     */
    public static final int EAB_CONTACT_EXPIRED_FAILURE = 2;

    /**
     * The contact cannot be found in the contact provider.
     */
    public static final int EAB_CONTACT_NOT_FOUND_FAILURE = 3;

    /** @hide */
    @Retention(RetentionPolicy.SOURCE)
    @IntDef(prefix = "EAB_", value = {
            EAB_QUERY_SUCCESSFUL,
            EAB_CONTROLLER_DESTROYED_FAILURE,
            EAB_CONTACT_EXPIRED_FAILURE,
            EAB_CONTACT_NOT_FOUND_FAILURE
    })
    public @interface QueryResult {}

    private final @QueryResult int mStatus;
    private final Uri mContactUri;
    private final RcsContactUceCapability mContactCapabilities;

    public EabCapabilityResult(@QueryResult Uri contactUri, int status,
            RcsContactUceCapability capabilities) {
        mStatus = status;
        mContactUri = contactUri;
        mContactCapabilities = capabilities;
        mExpiredContacts = expiredContacts;
    }

    /**
     * Return the contacts capabilities which are cached in the EAB database and
     * are not expired.
     * Return the status of query. The possible values are
     * {@link EabCapabilityResult#EAB_QUERY_SUCCESSFUL},
     * {@link EabCapabilityResult#EAB_CONTROLLER_DESTROYED_FAILURE},
     * {@link EabCapabilityResult#EAB_CONTACT_EXPIRED_FAILURE},
     * {@link EabCapabilityResult#EAB_CONTACT_NOT_FOUND_FAILURE}.
     *
     */
    public @NonNull List<RcsContactUceCapability> getContactCapabilities() {
        return mContactCapabilities;
    public @NonNull int getStatus() {
        return mStatus;
    }

    /**
     * Return the contact uri.
     */
    public @NonNull Uri getContact() {
        return mContactUri;
    }

    /**
     * Return the expired contacts which are required to refresh the capabilities
     * from the carrier network.
     * Return the contacts capabilities which are cached in the EAB database and
     * are not expired.
     */
    public @NonNull List<Uri> getExpiredContacts() {
        return mExpiredContacts;
    public @Nullable RcsContactUceCapability getContactCapabilities() {
        return mContactCapabilities;
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@ public interface EabController extends ControllerBase {
    /**
     * Retrieve the contacts' capabilities from the EAB database.
     */
    @NonNull EabCapabilityResult getCapabilities(@NonNull List<Uri> uris);
    @NonNull List<EabCapabilityResult> getCapabilities(@NonNull List<Uri> uris);

    /**
     * Retrieve the contact's capabilities from the availability cache.
+495 −14

File changed.

Preview size limit exceeded, changes collapsed.

+635 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading