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

Commit 46cbe8e1 authored by Charles Chen's avatar Charles Chen Committed by Android (Google) Code Review
Browse files

Merge "Remove flaggedApi for APIs in isolated process" into main

parents 37af1ae9 be734000
Loading
Loading
Loading
Loading
+12 −12
Original line number Diff line number Diff line
@@ -13483,12 +13483,12 @@ package android.service.voice {
    method public static int getMaxBundleSize();
    method public static int getMaxHotwordPhraseId();
    method public static int getMaxScore();
    method @FlaggedApi("android.service.voice.flags.allow_speaker_id_egress") public static int getMaxSpeakerId();
    method public static int getMaxSpeakerId();
    method @Nullable public android.media.MediaSyncEvent getMediaSyncEvent();
    method public int getPersonalizedScore();
    method public int getProximity();
    method public int getScore();
    method @FlaggedApi("android.service.voice.flags.allow_speaker_id_egress") public int getSpeakerId();
    method public int getSpeakerId();
    method public boolean isHotwordDetectionPersonalized();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field public static final int AUDIO_CHANNEL_UNSET = -1; // 0xffffffff
@@ -13522,7 +13522,7 @@ package android.service.voice {
    method @NonNull public android.service.voice.HotwordDetectedResult.Builder setMediaSyncEvent(@NonNull android.media.MediaSyncEvent);
    method @NonNull public android.service.voice.HotwordDetectedResult.Builder setPersonalizedScore(int);
    method @NonNull public android.service.voice.HotwordDetectedResult.Builder setScore(int);
    method @FlaggedApi("android.service.voice.flags.allow_speaker_id_egress") @NonNull public android.service.voice.HotwordDetectedResult.Builder setSpeakerId(int);
    method @NonNull public android.service.voice.HotwordDetectedResult.Builder setSpeakerId(int);
  }
  public abstract class HotwordDetectionService extends android.app.Service implements android.service.voice.SandboxedDetectionInitializer {
@@ -13621,7 +13621,7 @@ package android.service.voice {
    field public static final int ERROR_CODE_UNKNOWN = 0; // 0x0
  }
  @FlaggedApi("android.service.voice.flags.allow_various_attention_types") public final class VisualQueryAttentionResult implements android.os.Parcelable {
  public final class VisualQueryAttentionResult implements android.os.Parcelable {
    method public int describeContents();
    method @IntRange(from=1, to=100) public int getEngagementLevel();
    method public int getInteractionIntention();
@@ -13638,7 +13638,7 @@ package android.service.voice {
    method @NonNull public android.service.voice.VisualQueryAttentionResult.Builder setInteractionIntention(int);
  }
  @FlaggedApi("android.service.voice.flags.allow_complex_results_egress_from_vqds") public final class VisualQueryDetectedResult implements android.os.Parcelable {
  public final class VisualQueryDetectedResult implements android.os.Parcelable {
    method public int describeContents();
    method @Nullable public byte[] getAccessibilityDetectionData();
    method public static int getMaxSpeakerId();
@@ -13660,16 +13660,16 @@ package android.service.voice {
    ctor public VisualQueryDetectionService();
    method public final void finishQuery() throws java.lang.IllegalStateException;
    method public final void gainedAttention();
    method @FlaggedApi("android.service.voice.flags.allow_various_attention_types") public final void gainedAttention(@NonNull android.service.voice.VisualQueryAttentionResult);
    method public final void gainedAttention(@NonNull android.service.voice.VisualQueryAttentionResult);
    method public final void lostAttention();
    method @FlaggedApi("android.service.voice.flags.allow_various_attention_types") public final void lostAttention(int);
    method public final void lostAttention(int);
    method @Nullable public android.os.IBinder onBind(@NonNull android.content.Intent);
    method public void onStartDetection();
    method public void onStopDetection();
    method public void onUpdateState(@Nullable android.os.PersistableBundle, @Nullable android.os.SharedMemory, long, @Nullable java.util.function.IntConsumer);
    method public final void rejectQuery() throws java.lang.IllegalStateException;
    method public final void streamQuery(@NonNull String) throws java.lang.IllegalStateException;
    method @FlaggedApi("android.service.voice.flags.allow_complex_results_egress_from_vqds") public final void streamQuery(@NonNull android.service.voice.VisualQueryDetectedResult);
    method public final void streamQuery(@NonNull android.service.voice.VisualQueryDetectedResult);
    field public static final String SERVICE_INTERFACE = "android.service.voice.VisualQueryDetectionService";
  }
@@ -13689,10 +13689,10 @@ package android.service.voice {
  }
  public class VisualQueryDetector {
    method @FlaggedApi("android.service.voice.flags.allow_complex_results_egress_from_vqds") public void clearAccessibilityDetectionEnabledListener();
    method public void clearAccessibilityDetectionEnabledListener();
    method public void destroy();
    method @FlaggedApi("android.service.voice.flags.allow_complex_results_egress_from_vqds") public boolean isAccessibilityDetectionEnabled();
    method @FlaggedApi("android.service.voice.flags.allow_complex_results_egress_from_vqds") public void setAccessibilityDetectionEnabledListener(@NonNull java.util.function.Consumer<java.lang.Boolean>);
    method public boolean isAccessibilityDetectionEnabled();
    method public void setAccessibilityDetectionEnabledListener(@NonNull java.util.function.Consumer<java.lang.Boolean>);
    method @RequiresPermission(allOf={android.Manifest.permission.CAMERA, android.Manifest.permission.RECORD_AUDIO}) public boolean startRecognition();
    method @RequiresPermission(allOf={android.Manifest.permission.CAMERA, android.Manifest.permission.RECORD_AUDIO}) public boolean stopRecognition();
    method public void updateState(@Nullable android.os.PersistableBundle, @Nullable android.os.SharedMemory);
@@ -13701,7 +13701,7 @@ package android.service.voice {
  public static interface VisualQueryDetector.Callback {
    method public void onFailure(@NonNull android.service.voice.VisualQueryDetectionServiceFailure);
    method public void onQueryDetected(@NonNull String);
    method @FlaggedApi("android.service.voice.flags.allow_complex_results_egress_from_vqds") public default void onQueryDetected(@NonNull android.service.voice.VisualQueryDetectedResult);
    method public default void onQueryDetected(@NonNull android.service.voice.VisualQueryDetectedResult);
    method public void onQueryFinished();
    method public void onQueryRejected();
    method public void onUnknownFailure(@NonNull String);
+6 −7
Original line number Diff line number Diff line
@@ -16,10 +16,10 @@

package android.service.voice;

import android.annotation.FlaggedApi;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SuppressLint;
import android.annotation.SystemApi;
import android.content.res.Resources;
import android.media.AudioRecord;
@@ -27,7 +27,6 @@ import android.media.MediaSyncEvent;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.PersistableBundle;
import android.service.voice.flags.Flags;

import com.android.internal.R;
import com.android.internal.util.DataClass;
@@ -142,7 +141,7 @@ public final class HotwordDetectedResult implements Parcelable {
    }

    /** Maximum number of active speaker ids. **/
    @FlaggedApi(Flags.FLAG_ALLOW_SPEAKER_ID_EGRESS)
    @SuppressLint("UnflaggedApi") // b/325678077 flags not supported in isolated process
    public static int getMaxSpeakerId() {
        return 15;
    }
@@ -666,7 +665,7 @@ public final class HotwordDetectedResult implements Parcelable {
     * <p>Only values between 0 and {@link #getMaxSpeakerId} (inclusive) are accepted.
     */
    @DataClass.Generated.Member
    @FlaggedApi(Flags.FLAG_ALLOW_SPEAKER_ID_EGRESS)
    @SuppressLint("UnflaggedApi") // b/325678077 flags not supported in isolated process
    public int getSpeakerId() {
        return mSpeakerId;
    }
@@ -988,7 +987,7 @@ public final class HotwordDetectedResult implements Parcelable {
         * <p>Only values between 0 and {@link #getMaxSpeakerId} (inclusive) are accepted.
         */
        @DataClass.Generated.Member
        @FlaggedApi(Flags.FLAG_ALLOW_SPEAKER_ID_EGRESS)
        @SuppressLint("UnflaggedApi") // b/325678077 flags not supported in isolated process
        public @NonNull Builder setSpeakerId(int value) {
            checkNotUsed();
            mBuilderFieldsSet |= 0x1;
@@ -1232,10 +1231,10 @@ public final class HotwordDetectedResult implements Parcelable {
    }

    @DataClass.Generated(
            time = 1709773165191L,
            time = 1710918729668L,
            codegenVersion = "1.0.23",
            sourceFile = "frameworks/base/core/java/android/service/voice/HotwordDetectedResult.java",
            inputSignatures = "public static final  int CONFIDENCE_LEVEL_NONE\npublic static final  int CONFIDENCE_LEVEL_LOW\npublic static final  int CONFIDENCE_LEVEL_LOW_MEDIUM\npublic static final  int CONFIDENCE_LEVEL_MEDIUM\npublic static final  int CONFIDENCE_LEVEL_MEDIUM_HIGH\npublic static final  int CONFIDENCE_LEVEL_HIGH\npublic static final  int CONFIDENCE_LEVEL_VERY_HIGH\npublic static final  int HOTWORD_OFFSET_UNSET\npublic static final  int AUDIO_CHANNEL_UNSET\npublic static final  int BACKGROUND_AUDIO_POWER_UNSET\nprivate static final  int LIMIT_HOTWORD_OFFSET_MAX_VALUE\nprivate static final  int LIMIT_AUDIO_CHANNEL_MAX_VALUE\nprivate static final  java.lang.String EXTRA_PROXIMITY\npublic static final  int PROXIMITY_UNKNOWN\npublic static final  int PROXIMITY_NEAR\npublic static final  int PROXIMITY_FAR\nprivate final  int mSpeakerId\nprivate final @android.service.voice.HotwordDetectedResult.HotwordConfidenceLevelValue int mConfidenceLevel\nprivate @android.annotation.Nullable android.media.MediaSyncEvent mMediaSyncEvent\nprivate  int mHotwordOffsetMillis\nprivate  int mHotwordDurationMillis\nprivate  int mAudioChannel\nprivate  boolean mHotwordDetectionPersonalized\nprivate final  int mScore\nprivate final  int mPersonalizedScore\nprivate final  int mHotwordPhraseId\nprivate final @android.annotation.NonNull java.util.List<android.service.voice.HotwordAudioStream> mAudioStreams\nprivate final @android.annotation.NonNull android.os.PersistableBundle mExtras\nprivate static  int sMaxBundleSize\nprivate final  int mBackgroundAudioPower\nprivate static  int defaultSpeakerId()\npublic static @android.annotation.FlaggedApi int getMaxSpeakerId()\nprivate static  int defaultConfidenceLevel()\nprivate static  int defaultScore()\nprivate static  int defaultPersonalizedScore()\npublic static  int getMaxScore()\nprivate static  int defaultHotwordPhraseId()\npublic static  int getMaxHotwordPhraseId()\nprivate static  java.util.List<android.service.voice.HotwordAudioStream> defaultAudioStreams()\nprivate static  android.os.PersistableBundle defaultExtras()\npublic static  int getMaxBundleSize()\npublic @android.annotation.Nullable android.media.MediaSyncEvent getMediaSyncEvent()\nprivate static  int defaultBackgroundAudioPower()\npublic static  int getMaxBackgroundAudioPower()\npublic static  int getParcelableSize(android.os.Parcelable)\npublic static  int getUsageSize(android.service.voice.HotwordDetectedResult)\nprivate static  int bitCount(long)\nprivate  void onConstructed()\npublic @android.annotation.NonNull java.util.List<android.service.voice.HotwordAudioStream> getAudioStreams()\npublic  void setProximity(double)\npublic @android.service.voice.HotwordDetectedResult.ProximityValue int getProximity()\nprivate @android.service.voice.HotwordDetectedResult.ProximityValue int convertToProximityLevel(double)\npublic  android.service.voice.HotwordDetectedResult.Builder buildUpon()\nclass HotwordDetectedResult extends java.lang.Object implements [android.os.Parcelable]\npublic @android.annotation.NonNull android.service.voice.HotwordDetectedResult.Builder setAudioStreams(java.util.List<android.service.voice.HotwordAudioStream>)\nclass BaseBuilder extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genConstructor=false, genBuilder=true, genEqualsHashCode=true, genHiddenConstDefs=true, genParcelable=true, genToString=true)\npublic @android.annotation.NonNull android.service.voice.HotwordDetectedResult.Builder setAudioStreams(java.util.List<android.service.voice.HotwordAudioStream>)\nclass BaseBuilder extends java.lang.Object implements []")
            inputSignatures = "public static final  int CONFIDENCE_LEVEL_NONE\npublic static final  int CONFIDENCE_LEVEL_LOW\npublic static final  int CONFIDENCE_LEVEL_LOW_MEDIUM\npublic static final  int CONFIDENCE_LEVEL_MEDIUM\npublic static final  int CONFIDENCE_LEVEL_MEDIUM_HIGH\npublic static final  int CONFIDENCE_LEVEL_HIGH\npublic static final  int CONFIDENCE_LEVEL_VERY_HIGH\npublic static final  int HOTWORD_OFFSET_UNSET\npublic static final  int AUDIO_CHANNEL_UNSET\npublic static final  int BACKGROUND_AUDIO_POWER_UNSET\nprivate static final  int LIMIT_HOTWORD_OFFSET_MAX_VALUE\nprivate static final  int LIMIT_AUDIO_CHANNEL_MAX_VALUE\nprivate static final  java.lang.String EXTRA_PROXIMITY\npublic static final  int PROXIMITY_UNKNOWN\npublic static final  int PROXIMITY_NEAR\npublic static final  int PROXIMITY_FAR\nprivate final  int mSpeakerId\nprivate final @android.service.voice.HotwordDetectedResult.HotwordConfidenceLevelValue int mConfidenceLevel\nprivate @android.annotation.Nullable android.media.MediaSyncEvent mMediaSyncEvent\nprivate  int mHotwordOffsetMillis\nprivate  int mHotwordDurationMillis\nprivate  int mAudioChannel\nprivate  boolean mHotwordDetectionPersonalized\nprivate final  int mScore\nprivate final  int mPersonalizedScore\nprivate final  int mHotwordPhraseId\nprivate final @android.annotation.NonNull java.util.List<android.service.voice.HotwordAudioStream> mAudioStreams\nprivate final @android.annotation.NonNull android.os.PersistableBundle mExtras\nprivate static  int sMaxBundleSize\nprivate final  int mBackgroundAudioPower\nprivate static  int defaultSpeakerId()\npublic static @android.annotation.SuppressLint int getMaxSpeakerId()\nprivate static  int defaultConfidenceLevel()\nprivate static  int defaultScore()\nprivate static  int defaultPersonalizedScore()\npublic static  int getMaxScore()\nprivate static  int defaultHotwordPhraseId()\npublic static  int getMaxHotwordPhraseId()\nprivate static  java.util.List<android.service.voice.HotwordAudioStream> defaultAudioStreams()\nprivate static  android.os.PersistableBundle defaultExtras()\npublic static  int getMaxBundleSize()\npublic @android.annotation.Nullable android.media.MediaSyncEvent getMediaSyncEvent()\nprivate static  int defaultBackgroundAudioPower()\npublic static  int getMaxBackgroundAudioPower()\npublic static  int getParcelableSize(android.os.Parcelable)\npublic static  int getUsageSize(android.service.voice.HotwordDetectedResult)\nprivate static  int bitCount(long)\nprivate  void onConstructed()\npublic @android.annotation.NonNull java.util.List<android.service.voice.HotwordAudioStream> getAudioStreams()\npublic  void setProximity(double)\npublic @android.service.voice.HotwordDetectedResult.ProximityValue int getProximity()\nprivate @android.service.voice.HotwordDetectedResult.ProximityValue int convertToProximityLevel(double)\npublic  android.service.voice.HotwordDetectedResult.Builder buildUpon()\nclass HotwordDetectedResult extends java.lang.Object implements [android.os.Parcelable]\npublic @android.annotation.NonNull android.service.voice.HotwordDetectedResult.Builder setAudioStreams(java.util.List<android.service.voice.HotwordAudioStream>)\nclass BaseBuilder extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genConstructor=false, genBuilder=true, genEqualsHashCode=true, genHiddenConstDefs=true, genParcelable=true, genToString=true)\npublic @android.annotation.NonNull android.service.voice.HotwordDetectedResult.Builder setAudioStreams(java.util.List<android.service.voice.HotwordAudioStream>)\nclass BaseBuilder extends java.lang.Object implements []")
    @Deprecated
    private void __metadata() {}

+32 −13
Original line number Diff line number Diff line
@@ -16,15 +16,14 @@

package android.service.voice;

import android.annotation.FlaggedApi;
import android.annotation.IntDef;
import android.annotation.IntRange;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SuppressLint;
import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;
import android.service.voice.flags.Flags;

import com.android.internal.util.DataClass;

@@ -45,13 +44,15 @@ import java.lang.annotation.RetentionPolicy;
        genToString = true
)
@SystemApi
@FlaggedApi(Flags.FLAG_ALLOW_VARIOUS_ATTENTION_TYPES)
@SuppressLint("UnflaggedApi") // b/325678077 flags not supported in isolated process
public final class VisualQueryAttentionResult implements Parcelable {

    /** Intention type to allow the system to listen to audio-visual query interactions. */
    @SuppressLint("UnflaggedApi") // b/325678077 flags not supported in isolated process
    public static final int INTERACTION_INTENTION_AUDIO_VISUAL = 0;

    /** Intention type to allow the system to listen to visual accessibility query interactions. */
    @SuppressLint("UnflaggedApi") // b/325678077 flags not supported in isolated process
    public static final int INTERACTION_INTENTION_VISUAL_ACCESSIBILITY = 1;

    /**
@@ -94,6 +95,16 @@ public final class VisualQueryAttentionResult implements Parcelable {
                .setEngagementLevel(mEngagementLevel);
    }

    /**
     * TODO(b/301491148): Remove suppressLint on generated API when fixed or sdk finalized.
     * Codegen does not support flaggedAPI, so needs to review manually on the generated code
     * and makes sure the following:
     *     1. SuppressLint is added back to the API after each run of codegen
     *     2. No unwanted method is modified due to suppressLint annotation
     *
     *  Run $ codegen $ANDROID_BUILD_TOP/frameworks/base/core/java/android/service/voice/VisualQueryAttentionResult.java
     *  for codegen on new APIs.
     */



@@ -159,6 +170,7 @@ public final class VisualQueryAttentionResult implements Parcelable {
     * to after the attention signal is gained.
     */
    @DataClass.Generated.Member
    @SuppressLint("UnflaggedApi")
    public @InteractionIntention int getInteractionIntention() {
        return mInteractionIntention;
    }
@@ -176,6 +188,7 @@ public final class VisualQueryAttentionResult implements Parcelable {
     * presentation of the device attention UI.
     */
    @DataClass.Generated.Member
    @SuppressLint("UnflaggedApi")
    public @IntRange(from = 1, to = 100) int getEngagementLevel() {
        return mEngagementLevel;
    }
@@ -187,7 +200,7 @@ public final class VisualQueryAttentionResult implements Parcelable {
        // String fieldNameToString() { ... }

        return "VisualQueryAttentionResult { " +
                "interactionIntention = " + interactionIntentionToString(mInteractionIntention) + ", " +
                "interactionIntention = " + mInteractionIntention + ", " +
                "engagementLevel = " + mEngagementLevel +
        " }";
    }
@@ -223,6 +236,7 @@ public final class VisualQueryAttentionResult implements Parcelable {

    @Override
    @DataClass.Generated.Member
    @SuppressLint("UnflaggedApi")
    public void writeToParcel(@NonNull Parcel dest, int flags) {
        // You can override field parcelling by defining methods like:
        // void parcelFieldName(Parcel dest, int flags) { ... }
@@ -233,6 +247,7 @@ public final class VisualQueryAttentionResult implements Parcelable {

    @Override
    @DataClass.Generated.Member
    @SuppressLint("UnflaggedApi")
    public int describeContents() { return 0; }

    /** @hide */
@@ -246,7 +261,6 @@ public final class VisualQueryAttentionResult implements Parcelable {
        int engagementLevel = in.readInt();

        this.mInteractionIntention = interactionIntention;

        if (!(mInteractionIntention == INTERACTION_INTENTION_AUDIO_VISUAL)
                && !(mInteractionIntention == INTERACTION_INTENTION_VISUAL_ACCESSIBILITY)) {
            throw new java.lang.IllegalArgumentException(
@@ -254,7 +268,6 @@ public final class VisualQueryAttentionResult implements Parcelable {
                            + "INTERACTION_INTENTION_AUDIO_VISUAL(" + INTERACTION_INTENTION_AUDIO_VISUAL + "), "
                            + "INTERACTION_INTENTION_VISUAL_ACCESSIBILITY(" + INTERACTION_INTENTION_VISUAL_ACCESSIBILITY + ")");
        }

        this.mEngagementLevel = engagementLevel;
        com.android.internal.util.AnnotationValidations.validate(
                IntRange.class, null, mEngagementLevel,
@@ -265,6 +278,7 @@ public final class VisualQueryAttentionResult implements Parcelable {
    }

    @DataClass.Generated.Member
    @SuppressLint("UnflaggedApi")
    public static final @NonNull Parcelable.Creator<VisualQueryAttentionResult> CREATOR
            = new Parcelable.Creator<VisualQueryAttentionResult>() {
        @Override
@@ -283,6 +297,7 @@ public final class VisualQueryAttentionResult implements Parcelable {
     */
    @SuppressWarnings("WeakerAccess")
    @DataClass.Generated.Member
    @SuppressLint("UnflaggedApi")
    public static final class Builder {

        private @InteractionIntention int mInteractionIntention;
@@ -290,6 +305,7 @@ public final class VisualQueryAttentionResult implements Parcelable {

        private long mBuilderFieldsSet = 0L;

        @SuppressLint("UnflaggedApi")
        public Builder() {
        }

@@ -298,6 +314,7 @@ public final class VisualQueryAttentionResult implements Parcelable {
         * to after the attention signal is gained.
         */
        @DataClass.Generated.Member
        @SuppressLint("UnflaggedApi")
        public @NonNull Builder setInteractionIntention(@InteractionIntention int value) {
            checkNotUsed();
            mBuilderFieldsSet |= 0x1;
@@ -318,6 +335,7 @@ public final class VisualQueryAttentionResult implements Parcelable {
         * presentation of the device attention UI.
         */
        @DataClass.Generated.Member
        @SuppressLint("UnflaggedApi")
        public @NonNull Builder setEngagementLevel(@IntRange(from = 1, to = 100) int value) {
            checkNotUsed();
            mBuilderFieldsSet |= 0x2;
@@ -326,6 +344,7 @@ public final class VisualQueryAttentionResult implements Parcelable {
        }

        /** Builds the instance. This builder should not be touched after calling this! */
        @SuppressLint("UnflaggedApi")
        public @NonNull VisualQueryAttentionResult build() {
            checkNotUsed();
            mBuilderFieldsSet |= 0x4; // Mark builder used
@@ -351,10 +370,10 @@ public final class VisualQueryAttentionResult implements Parcelable {
    }

    @DataClass.Generated(
            time = 1707773691880L,
            time = 1710979945907L,
            codegenVersion = "1.0.23",
            sourceFile = "frameworks/base/core/java/android/service/voice/VisualQueryAttentionResult.java",
            inputSignatures = "public static final  int INTERACTION_INTENTION_AUDIO_VISUAL\npublic static final  int INTERACTION_INTENTION_VISUAL_ACCESSIBILITY\nprivate final @android.service.voice.VisualQueryAttentionResult.InteractionIntention int mInteractionIntention\nprivate final @android.annotation.IntRange int mEngagementLevel\nprivate static @android.service.voice.VisualQueryAttentionResult.InteractionIntention int defaultInteractionIntention()\nprivate static  int defaultEngagementLevel()\npublic  android.service.voice.VisualQueryAttentionResult.Builder buildUpon()\nclass VisualQueryAttentionResult extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genConstructor=false, genBuilder=true, genEqualsHashCode=true, genHiddenConstDefs=true, genParcelable=true, genToString=true)")
            inputSignatures = "public static final @android.annotation.SuppressLint int INTERACTION_INTENTION_AUDIO_VISUAL\npublic static final @android.annotation.SuppressLint int INTERACTION_INTENTION_VISUAL_ACCESSIBILITY\nprivate final @android.service.voice.VisualQueryAttentionResult.InteractionIntention int mInteractionIntention\nprivate final @android.annotation.IntRange int mEngagementLevel\nprivate static @android.service.voice.VisualQueryAttentionResult.InteractionIntention int defaultInteractionIntention()\nprivate static  int defaultEngagementLevel()\npublic  android.service.voice.VisualQueryAttentionResult.Builder buildUpon()\nclass VisualQueryAttentionResult extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genConstructor=false, genBuilder=true, genEqualsHashCode=true, genHiddenConstDefs=true, genParcelable=true, genToString=true)")
    @Deprecated
    private void __metadata() {}

+27 −5

File changed.

Preview size limit exceeded, changes collapsed.

+11 −22
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@
package android.service.voice;

import android.annotation.DurationMillisLong;
import android.annotation.FlaggedApi;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SdkConstant;
@@ -36,7 +35,6 @@ import android.os.ParcelFileDescriptor;
import android.os.PersistableBundle;
import android.os.RemoteException;
import android.os.SharedMemory;
import android.service.voice.flags.Flags;
import android.speech.IRecognitionServiceManager;
import android.util.Log;
import android.view.contentcapture.ContentCaptureManager;
@@ -272,16 +270,12 @@ public abstract class VisualQueryDetectionService extends Service
     *
     */
    public final void gainedAttention() {
        if (Flags.allowVariousAttentionTypes()) {
            gainedAttention(new VisualQueryAttentionResult.Builder().build());
        } else {
        try {
            mRemoteCallback.onAttentionGained(null);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
    }
    }

    /**
     * Puts the device into an attention state that will listen to certain interaction intention
@@ -299,7 +293,7 @@ public abstract class VisualQueryDetectionService extends Service
     *
     * @param attentionResult Attention result of type {@link VisualQueryAttentionResult}.
     */
    @FlaggedApi(Flags.FLAG_ALLOW_VARIOUS_ATTENTION_TYPES)
    @SuppressLint("UnflaggedApi") // b/325678077 flags not supported in isolated process
    public final void gainedAttention(@NonNull VisualQueryAttentionResult attentionResult) {
        try {
            mRemoteCallback.onAttentionGained(attentionResult);
@@ -312,17 +306,12 @@ public abstract class VisualQueryDetectionService extends Service
     * Informs the system that all attention has lost to stop streaming.
     */
    public final void lostAttention() {
        if (Flags.allowVariousAttentionTypes()) {
            lostAttention(VisualQueryAttentionResult.INTERACTION_INTENTION_AUDIO_VISUAL);
            lostAttention(VisualQueryAttentionResult.INTERACTION_INTENTION_VISUAL_ACCESSIBILITY);
        } else {
        try {
            mRemoteCallback.onAttentionLost(0); // placeholder
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
    }
    }

    /**
     * This will cancel the corresponding attention if the provided interaction intention is the
@@ -332,7 +321,7 @@ public abstract class VisualQueryDetectionService extends Service
     * @param interactionIntention Interaction intention, one of
     *        {@link VisualQueryAttentionResult#InteractionIntention}.
     */
    @FlaggedApi(Flags.FLAG_ALLOW_VARIOUS_ATTENTION_TYPES)
    @SuppressLint("UnflaggedApi") // b/325678077 flags not supported in isolated process
    public final void lostAttention(
            @VisualQueryAttentionResult.InteractionIntention int interactionIntention) {
        try {
@@ -375,7 +364,7 @@ public abstract class VisualQueryDetectionService extends Service
     * @param partialResult Partially detected result in the format of
     * {@link VisualQueryDetectedResult}.
     */
    @FlaggedApi(Flags.FLAG_ALLOW_COMPLEX_RESULTS_EGRESS_FROM_VQDS)
    @SuppressLint("UnflaggedApi") // b/325678077 flags not supported in isolated process
    public final void streamQuery(@NonNull VisualQueryDetectedResult partialResult) {
        Objects.requireNonNull(partialResult);
        try {
Loading