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

Commit f7612ac8 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Changes on the ContentCaptureContext APIs."

parents 4753fa4d 044c63b3
Loading
Loading
Loading
Loading
+18 −7
Original line number Diff line number Diff line
@@ -10284,6 +10284,7 @@ package android.content {
    field public static final String ACTION_USER_PRESENT = "android.intent.action.USER_PRESENT";
    field public static final String ACTION_USER_UNLOCKED = "android.intent.action.USER_UNLOCKED";
    field public static final String ACTION_VIEW = "android.intent.action.VIEW";
    field public static final String ACTION_VIEW_LOCUS = "android.intent.action.VIEW_LOCUS";
    field public static final String ACTION_VOICE_COMMAND = "android.intent.action.VOICE_COMMAND";
    field @Deprecated public static final String ACTION_WALLPAPER_CHANGED = "android.intent.action.WALLPAPER_CHANGED";
    field public static final String ACTION_WEB_SEARCH = "android.intent.action.WEB_SEARCH";
@@ -10368,6 +10369,7 @@ package android.content {
    field public static final String EXTRA_INTENT = "android.intent.extra.INTENT";
    field public static final String EXTRA_KEY_EVENT = "android.intent.extra.KEY_EVENT";
    field public static final String EXTRA_LOCAL_ONLY = "android.intent.extra.LOCAL_ONLY";
    field public static final String EXTRA_LOCUS_ID = "android.intent.extra.LOCUS_ID";
    field public static final String EXTRA_MIME_TYPES = "android.intent.extra.MIME_TYPES";
    field public static final String EXTRA_NOT_UNKNOWN_SOURCE = "android.intent.extra.NOT_UNKNOWN_SOURCE";
    field public static final String EXTRA_ORIGINATING_URI = "android.intent.extra.ORIGINATING_URI";
@@ -10620,6 +10622,14 @@ package android.content {
    method @Deprecated public void onLoadComplete(android.content.Loader<D>, D);
  }
  public final class LocusId implements android.os.Parcelable {
    ctor public LocusId(@NonNull android.net.Uri);
    method public int describeContents();
    method @NonNull public android.net.Uri getUri();
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.content.LocusId> CREATOR;
  }
  public class MutableContextWrapper extends android.content.ContextWrapper {
    ctor public MutableContextWrapper(android.content.Context);
    method public void setBaseContext(android.content.Context);
@@ -53471,16 +53481,17 @@ package android.view.contentcapture {
  public final class ContentCaptureContext implements android.os.Parcelable {
    method public int describeContents();
    method public static android.view.contentcapture.ContentCaptureContext forLocusId(@NonNull android.net.Uri);
    method @Nullable public android.os.Bundle getExtras();
    method @NonNull public android.content.LocusId getLocusId();
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.view.contentcapture.ContentCaptureContext> CREATOR;
  }
  public static final class ContentCaptureContext.Builder {
    ctor public ContentCaptureContext.Builder();
    ctor public ContentCaptureContext.Builder(@NonNull android.content.LocusId);
    method public android.view.contentcapture.ContentCaptureContext build();
    method @NonNull public android.view.contentcapture.ContentCaptureContext.Builder setAction(@NonNull String);
    method @NonNull public android.view.contentcapture.ContentCaptureContext.Builder setExtras(@NonNull android.os.Bundle);
    method @NonNull public android.view.contentcapture.ContentCaptureContext.Builder setUri(@NonNull android.net.Uri);
  }
  public final class ContentCaptureManager {
@@ -53513,8 +53524,8 @@ package android.view.contentcapture {
  public final class UserDataRemovalRequest implements android.os.Parcelable {
    method public int describeContents();
    method @NonNull public java.util.List<android.view.contentcapture.UserDataRemovalRequest.LocusIdRequest> getLocusIdRequests();
    method @NonNull public String getPackageName();
    method @NonNull public java.util.List<android.view.contentcapture.UserDataRemovalRequest.UriRequest> getUriRequests();
    method public boolean isForEverything();
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.view.contentcapture.UserDataRemovalRequest> CREATOR;
@@ -53522,13 +53533,13 @@ package android.view.contentcapture {
  public static final class UserDataRemovalRequest.Builder {
    ctor public UserDataRemovalRequest.Builder();
    method public android.view.contentcapture.UserDataRemovalRequest.Builder addUri(@NonNull android.net.Uri, boolean);
    method public android.view.contentcapture.UserDataRemovalRequest.Builder addLocusId(@NonNull android.content.LocusId, boolean);
    method @NonNull public android.view.contentcapture.UserDataRemovalRequest build();
    method @NonNull public android.view.contentcapture.UserDataRemovalRequest.Builder forEverything();
  }
  public final class UserDataRemovalRequest.UriRequest {
    method @NonNull public android.net.Uri getUri();
  public final class UserDataRemovalRequest.LocusIdRequest {
    method @NonNull public android.content.LocusId getLocusId();
    method @NonNull public boolean isRecursive();
  }
+0 −3
Original line number Diff line number Diff line
@@ -9379,14 +9379,11 @@ package android.view.autofill {
package android.view.contentcapture {
  public final class ContentCaptureContext implements android.os.Parcelable {
    method @Nullable public String getAction();
    method @Nullable public android.content.ComponentName getActivityComponent();
    method public int getDisplayId();
    method @Nullable public android.os.Bundle getExtras();
    method public int getFlags();
    method @Nullable public android.view.contentcapture.ContentCaptureSessionId getParentSessionId();
    method public int getTaskId();
    method @Nullable public android.net.Uri getUri();
    field public static final int FLAG_DISABLED_BY_APP = 1; // 0x1
    field public static final int FLAG_DISABLED_BY_FLAG_SECURE = 2; // 0x2
  }
+0 −3
Original line number Diff line number Diff line
@@ -2728,14 +2728,11 @@ package android.view.autofill {
package android.view.contentcapture {

  public final class ContentCaptureContext implements android.os.Parcelable {
    method @Nullable public String getAction();
    method @Nullable public android.content.ComponentName getActivityComponent();
    method public int getDisplayId();
    method @Nullable public android.os.Bundle getExtras();
    method public int getFlags();
    method @Nullable public android.view.contentcapture.ContentCaptureSessionId getParentSessionId();
    method public int getTaskId();
    method @Nullable public android.net.Uri getUri();
    field public static final int FLAG_DISABLED_BY_APP = 1; // 0x1
    field public static final int FLAG_DISABLED_BY_FLAG_SECURE = 2; // 0x2
  }
+21 −0
Original line number Diff line number Diff line
@@ -4344,6 +4344,18 @@ public class Intent implements Parcelable, Cloneable {
            "android.intent.action.DEVICE_CUSTOMIZATION_READY";


    /**
     * Activity Action: Display an activity state associated with an unique {@link LocusId}.
     *
     * <p>For example, a chat app could use the context to resume a conversation between 2 users.
     *
     * <p>Input: {@link #EXTRA_LOCUS_ID} specifies the unique identifier of the locus in the
     * app domain. Should be stable across reboots and backup / restore.
     * <p>Output: nothing.
     */
    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
    public static final String ACTION_VIEW_LOCUS = "android.intent.action.VIEW_LOCUS";

    // ---------------------------------------------------------------------
    // ---------------------------------------------------------------------
    // Standard intent categories (see addCategory()).
@@ -5542,6 +5554,15 @@ public class Intent implements Parcelable, Cloneable {
     */
    public static final int EXTRA_MEDIA_RESOURCE_TYPE_AUDIO_CODEC = 1;

    /**
     * Intent extra: ID of the context used on {@link #ACTION_VIEW_LOCUS}.
     *
     * <p>
     * Type: {@link LocusId}
     * </p>
     */
    public static final String EXTRA_LOCUS_ID = "android.intent.extra.LOCUS_ID";

    // ---------------------------------------------------------------------
    // ---------------------------------------------------------------------
    // Intent flags (see mFlags variable).
+115 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2019 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package android.content;

import android.annotation.NonNull;
import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;

import com.android.internal.util.Preconditions;

import java.io.PrintWriter;

/**
 * Identifier for an unique state in the application.
 *
 * <p>Should be stable across reboots and backup / restore.
 *
 * <p>For example, a chat app could use the context to resume a conversation between 2 users.
 */
// TODO(b/123577059): make sure this is well documented and understandable
public final class LocusId implements Parcelable {

    private final Uri mUri;

    /**
     * Default constructor.
     */
    public LocusId(@NonNull Uri uri) {
        mUri = Preconditions.checkNotNull(uri);
    }

    /**
     * Gets the {@code uri} associated with the locus.
     */
    @NonNull
    public Uri getUri() {
        return mUri;
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((mUri == null) ? 0 : mUri.hashCode());
        return result;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) return true;
        if (obj == null) return false;
        if (getClass() != obj.getClass()) return false;
        final LocusId other = (LocusId) obj;
        if (mUri == null) {
            if (other.mUri != null) return false;
        } else {
            if (!mUri.equals(other.mUri)) return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "LocusId[uri=" + getSanitizedUri() + "]";
    }

    /** @hide */
    public void dump(@NonNull PrintWriter pw) {
        pw.print("uri:"); pw.println(getSanitizedUri());
    }

    private String getSanitizedUri() {
        final int size = mUri.toString().length();
        return size + "_chars";
    }

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeParcelable(mUri, flags);
    }

    public static final Parcelable.Creator<LocusId> CREATOR =
            new Parcelable.Creator<LocusId>() {

        @Override
        public LocusId createFromParcel(Parcel source) {
            final Uri uri = source.readParcelable(null);
            return new LocusId(uri);
        }

        @Override
        public LocusId[] newArray(int size) {
            return new LocusId[size];
        }
    };
}
Loading