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

Commit c57ecbaf authored by Anh Pham's avatar Anh Pham Committed by Sergei Makarov
Browse files

Add ContactKeysManager for contact keys.

Bug: 290696572
Test: atest CtsContactKeysManagerTestCases
Change-Id: Id79f6c6e8b54ed4c8a79acef9bb6de2e5ac0ac25
parent 27f61b48
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -20,5 +20,15 @@
        "core/tests/coretests/src/com/android/internal/inputmethod/.*"
      ]
    }
  ],
  "postsubmit": [
      {
        "name": "ContactKeysManagerTest",
        "options": [
          {
            "include-filter": "android.provider.cts.contactkeys."
          }
        ]
      }
    ]
}
+49 −0
Original line number Diff line number Diff line
@@ -10592,6 +10592,7 @@ package android.content {
    field public static final String CONNECTIVITY_DIAGNOSTICS_SERVICE = "connectivity_diagnostics";
    field public static final String CONNECTIVITY_SERVICE = "connectivity";
    field public static final String CONSUMER_IR_SERVICE = "consumer_ir";
    field @FlaggedApi("android.provider.user_keys") public static final String CONTACT_KEYS_SERVICE = "contact_keys";
    field public static final int CONTEXT_IGNORE_SECURITY = 2; // 0x2
    field public static final int CONTEXT_INCLUDE_CODE = 1; // 0x1
    field public static final int CONTEXT_RESTRICTED = 4; // 0x4
@@ -35193,6 +35194,54 @@ package android.provider {
    field public static final String LONGITUDE = "longitude";
  }
  @FlaggedApi("android.provider.user_keys") public class ContactKeysManager {
    method @NonNull @RequiresPermission(android.Manifest.permission.READ_CONTACTS) public java.util.List<android.provider.ContactKeysManager.ContactKey> getAllContactKeys(@NonNull String);
    method @NonNull @RequiresPermission(android.Manifest.permission.READ_CONTACTS) public java.util.List<android.provider.ContactKeysManager.SelfKey> getAllSelfKeys();
    method @Nullable @RequiresPermission(android.Manifest.permission.READ_CONTACTS) public android.provider.ContactKeysManager.ContactKey getContactKey(@NonNull String, @NonNull String, @NonNull String);
    method public static int getMaxKeySizeBytes();
    method @NonNull @RequiresPermission(android.Manifest.permission.READ_CONTACTS) public java.util.List<android.provider.ContactKeysManager.ContactKey> getOwnerContactKeys(@NonNull String);
    method @NonNull @RequiresPermission(android.Manifest.permission.READ_CONTACTS) public java.util.List<android.provider.ContactKeysManager.SelfKey> getOwnerSelfKeys();
    method @Nullable @RequiresPermission(android.Manifest.permission.READ_CONTACTS) public android.provider.ContactKeysManager.SelfKey getSelfKey(@NonNull String, @NonNull String);
    method @RequiresPermission(android.Manifest.permission.WRITE_CONTACTS) public boolean removeContactKey(@NonNull String, @NonNull String, @NonNull String);
    method @RequiresPermission(android.Manifest.permission.WRITE_CONTACTS) public boolean removeSelfKey(@NonNull String, @NonNull String);
    method @RequiresPermission(android.Manifest.permission.WRITE_CONTACTS) public boolean updateContactKeyLocalVerificationState(@NonNull String, @NonNull String, @NonNull String, int);
    method @RequiresPermission(android.Manifest.permission.WRITE_CONTACTS) public boolean updateContactKeyRemoteVerificationState(@NonNull String, @NonNull String, @NonNull String, int);
    method @RequiresPermission(android.Manifest.permission.WRITE_CONTACTS) public void updateOrInsertContactKey(@NonNull String, @NonNull String, @NonNull String, @NonNull byte[]);
    method @RequiresPermission(android.Manifest.permission.WRITE_CONTACTS) public boolean updateOrInsertSelfKey(@NonNull String, @NonNull String, @NonNull byte[]);
    method @RequiresPermission(android.Manifest.permission.WRITE_CONTACTS) public boolean updateSelfKeyRemoteVerificationState(@NonNull String, @NonNull String, int);
    field public static final int UNVERIFIED = 0; // 0x0
    field public static final int VERIFICATION_FAILED = 1; // 0x1
    field public static final int VERIFIED = 2; // 0x2
  }
  public static final class ContactKeysManager.ContactKey implements android.os.Parcelable {
    method public int describeContents();
    method @NonNull public String getAccountId();
    method @Nullable public String getDeviceId();
    method @Nullable public String getDisplayName();
    method @Nullable public String getEmailAddress();
    method @Nullable public byte[] getKeyValue();
    method public int getLocalVerificationState();
    method @NonNull public String getOwnerPackageName();
    method @Nullable public String getPhoneNumber();
    method public int getRemoteVerificationState();
    method public long getTimeUpdated();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.provider.ContactKeysManager.ContactKey> CREATOR;
  }
  public static final class ContactKeysManager.SelfKey implements android.os.Parcelable {
    method public int describeContents();
    method @NonNull public String getAccountId();
    method @Nullable public String getDeviceId();
    method @Nullable public byte[] getKeyValue();
    method @NonNull public String getOwnerPackageName();
    method public int getRemoteVerificationState();
    method public long getTimeUpdated();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.provider.ContactKeysManager.SelfKey> CREATOR;
  }
  @Deprecated public class Contacts {
    field @Deprecated public static final String AUTHORITY = "contacts";
    field @Deprecated public static final android.net.Uri CONTENT_URI;
+13 −0
Original line number Diff line number Diff line
@@ -210,6 +210,7 @@ import android.permission.PermissionControllerManager;
import android.permission.PermissionManager;
import android.print.IPrintManager;
import android.print.PrintManager;
import android.provider.ContactKeysManager;
import android.safetycenter.SafetyCenterFrameworkInitializer;
import android.scheduling.SchedulingFrameworkInitializer;
import android.security.FileIntegrityManager;
@@ -1604,6 +1605,18 @@ public final class SystemServiceRegistry {
                    }
                });

        registerService(Context.CONTACT_KEYS_SERVICE, ContactKeysManager.class,
                new CachedServiceFetcher<ContactKeysManager>() {
                    @Override
                    public ContactKeysManager createService(ContextImpl ctx)
                            throws ServiceNotFoundException {
                        if (!android.provider.Flags.userKeys()) {
                            throw new ServiceNotFoundException(
                                    "ContactKeysManager is not supported");
                        }
                        return new ContactKeysManager(ctx);
                    }});

        sInitializing = true;
        try {
            // Note: the following functions need to be @SystemApis, once they become mainline
+11 −0
Original line number Diff line number Diff line
@@ -4243,6 +4243,7 @@ public abstract class Context {
            GRAMMATICAL_INFLECTION_SERVICE,
            SECURITY_STATE_SERVICE,
           //@hide: ECM_ENHANCED_CONFIRMATION_SERVICE,
            CONTACT_KEYS_SERVICE,

    })
    @Retention(RetentionPolicy.SOURCE)
@@ -6541,6 +6542,16 @@ public abstract class Context {
    @SystemApi
    public static final String ECM_ENHANCED_CONFIRMATION_SERVICE = "ecm_enhanced_confirmation";

    /**
     * Use with {@link #getSystemService(String)} to retrieve a
     * {@link android.provider.ContactKeysManager} to managing contact keys.
     *
     * @see #getSystemService(String)
     * @see android.provider.ContactKeysManager
     */
    @FlaggedApi(android.provider.Flags.FLAG_USER_KEYS)
    public static final String CONTACT_KEYS_SERVICE = "contact_keys";

    /**
     * Determine whether the given permission is allowed for a particular
     * process and user ID running in the system.
+1129 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading