Loading apct-tests/perftests/contentcapture/src/android/view/contentcapture/MyContentCaptureService.java +11 −0 Original line number Diff line number Diff line Loading @@ -16,15 +16,19 @@ package android.view.contentcapture; import android.content.ComponentName; import android.content.LocusId; import android.service.contentcapture.ActivityEvent; import android.service.contentcapture.ContentCaptureService; import android.util.ArraySet; import android.util.Log; import android.util.Pair; import android.view.contentcapture.ContentCaptureCondition; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.google.common.collect.ImmutableSet; import java.util.ArrayList; import java.util.List; import java.util.Set; Loading Loading @@ -84,6 +88,13 @@ public class MyContentCaptureService extends ContentCaptureService { return; } int enableVirtualChildrenConditionFlag = 0x4; ContentCaptureCondition condition = new ContentCaptureCondition( new LocusId("__NOT_EXIST"), enableVirtualChildrenConditionFlag); setContentCaptureConditions( "com.android.perftests.contentcapture", ImmutableSet.of(condition)); sServiceWatcher.mService = this; sServiceWatcher.mCreated.countDown(); sServiceWatcher.mReadyToClear = false; Loading core/java/android/view/contentcapture/ContentCaptureCondition.java +10 −0 Original line number Diff line number Diff line Loading @@ -40,8 +40,18 @@ public final class ContentCaptureCondition implements Parcelable { */ public static final int FLAG_IS_REGEX = 0x2; /** @hide */ private static final int FLAG_ENABLE_EXPORTING_VIRTUAL_CHILDREN = 0x4; /** @hide */ private static final LocusId LOCUS_ID_NOT_EXIST = new LocusId("__NOT_EXIST"); /** @hide */ public static final ContentCaptureCondition CONDITION_ENABLE_EXPORTING_VIRTUAL_CHILDREN = new ContentCaptureCondition(LOCUS_ID_NOT_EXIST, FLAG_ENABLE_EXPORTING_VIRTUAL_CHILDREN); /** @hide */ @IntDef(prefix = { "FLAG" }, flag = true, value = { FLAG_ENABLE_EXPORTING_VIRTUAL_CHILDREN, FLAG_IS_REGEX }) @Retention(RetentionPolicy.SOURCE) Loading core/java/android/view/contentcapture/ContentCaptureManager.java +19 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import android.app.Service; import android.content.ComponentName; import android.content.ContentCaptureOptions; import android.content.Context; import android.content.LocusId; import android.graphics.Canvas; import android.os.Binder; import android.os.Handler; Loading @@ -42,6 +43,7 @@ import android.os.Looper; import android.os.ParcelFileDescriptor; import android.os.RemoteException; import android.os.ServiceManager; import android.util.ArraySet; import android.util.Dumpable; import android.util.Log; import android.util.Slog; Loading Loading @@ -500,6 +502,9 @@ public final class ContentCaptureManager { @NonNull final ContentCaptureOptions mOptions; @Nullable private Set<ContentCaptureCondition> mContentCaptureConditionBuffer; // Flags used for starting session. @GuardedBy("mLock") private int mFlags; Loading Loading @@ -758,6 +763,20 @@ public final class ContentCaptureManager { return true; } /** * @hide */ boolean isContentCaptureConditionEnabled(ContentCaptureCondition condition) { if (mContentCaptureConditionBuffer == null) { mContentCaptureConditionBuffer = new ArraySet<>(); Set<ContentCaptureCondition> conditions = getContentCaptureConditions(); if (conditions != null) { mContentCaptureConditionBuffer.addAll(conditions); } } return mContentCaptureConditionBuffer.contains(condition); } /** * Gets the list of conditions for when content capture should be allowed. * Loading core/java/android/view/contentcapture/MainContentCaptureSession.java +4 −1 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ */ package android.view.contentcapture; import static android.view.contentcapture.ContentCaptureCondition.CONDITION_ENABLE_EXPORTING_VIRTUAL_CHILDREN; import static android.view.contentcapture.ContentCaptureEvent.TYPE_CONTEXT_UPDATED; import static android.view.contentcapture.ContentCaptureEvent.TYPE_SESSION_FINISHED; import static android.view.contentcapture.ContentCaptureEvent.TYPE_SESSION_FLUSH; Loading Loading @@ -1032,7 +1033,9 @@ public final class MainContentCaptureSession extends ContentCaptureSession { view.onProvideContentCaptureStructure(structure, /* flags= */ 0); if (Flags.enableExportAssistVirtualNodeToCcapi() && view.getAccessibilityNodeProvider() != null && structure.getAutofillId() != null) { && structure.getAutofillId() != null && mManager.isContentCaptureConditionEnabled( CONDITION_ENABLE_EXPORTING_VIRTUAL_CHILDREN)) { // TODO: Move this to a background thread to improve performance. Trace.beginSection("notifyVirtualChildrenAppeared"); notifyVirtualChildrenAppeared(session, structure.getAutofillId(), Loading Loading
apct-tests/perftests/contentcapture/src/android/view/contentcapture/MyContentCaptureService.java +11 −0 Original line number Diff line number Diff line Loading @@ -16,15 +16,19 @@ package android.view.contentcapture; import android.content.ComponentName; import android.content.LocusId; import android.service.contentcapture.ActivityEvent; import android.service.contentcapture.ContentCaptureService; import android.util.ArraySet; import android.util.Log; import android.util.Pair; import android.view.contentcapture.ContentCaptureCondition; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.google.common.collect.ImmutableSet; import java.util.ArrayList; import java.util.List; import java.util.Set; Loading Loading @@ -84,6 +88,13 @@ public class MyContentCaptureService extends ContentCaptureService { return; } int enableVirtualChildrenConditionFlag = 0x4; ContentCaptureCondition condition = new ContentCaptureCondition( new LocusId("__NOT_EXIST"), enableVirtualChildrenConditionFlag); setContentCaptureConditions( "com.android.perftests.contentcapture", ImmutableSet.of(condition)); sServiceWatcher.mService = this; sServiceWatcher.mCreated.countDown(); sServiceWatcher.mReadyToClear = false; Loading
core/java/android/view/contentcapture/ContentCaptureCondition.java +10 −0 Original line number Diff line number Diff line Loading @@ -40,8 +40,18 @@ public final class ContentCaptureCondition implements Parcelable { */ public static final int FLAG_IS_REGEX = 0x2; /** @hide */ private static final int FLAG_ENABLE_EXPORTING_VIRTUAL_CHILDREN = 0x4; /** @hide */ private static final LocusId LOCUS_ID_NOT_EXIST = new LocusId("__NOT_EXIST"); /** @hide */ public static final ContentCaptureCondition CONDITION_ENABLE_EXPORTING_VIRTUAL_CHILDREN = new ContentCaptureCondition(LOCUS_ID_NOT_EXIST, FLAG_ENABLE_EXPORTING_VIRTUAL_CHILDREN); /** @hide */ @IntDef(prefix = { "FLAG" }, flag = true, value = { FLAG_ENABLE_EXPORTING_VIRTUAL_CHILDREN, FLAG_IS_REGEX }) @Retention(RetentionPolicy.SOURCE) Loading
core/java/android/view/contentcapture/ContentCaptureManager.java +19 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import android.app.Service; import android.content.ComponentName; import android.content.ContentCaptureOptions; import android.content.Context; import android.content.LocusId; import android.graphics.Canvas; import android.os.Binder; import android.os.Handler; Loading @@ -42,6 +43,7 @@ import android.os.Looper; import android.os.ParcelFileDescriptor; import android.os.RemoteException; import android.os.ServiceManager; import android.util.ArraySet; import android.util.Dumpable; import android.util.Log; import android.util.Slog; Loading Loading @@ -500,6 +502,9 @@ public final class ContentCaptureManager { @NonNull final ContentCaptureOptions mOptions; @Nullable private Set<ContentCaptureCondition> mContentCaptureConditionBuffer; // Flags used for starting session. @GuardedBy("mLock") private int mFlags; Loading Loading @@ -758,6 +763,20 @@ public final class ContentCaptureManager { return true; } /** * @hide */ boolean isContentCaptureConditionEnabled(ContentCaptureCondition condition) { if (mContentCaptureConditionBuffer == null) { mContentCaptureConditionBuffer = new ArraySet<>(); Set<ContentCaptureCondition> conditions = getContentCaptureConditions(); if (conditions != null) { mContentCaptureConditionBuffer.addAll(conditions); } } return mContentCaptureConditionBuffer.contains(condition); } /** * Gets the list of conditions for when content capture should be allowed. * Loading
core/java/android/view/contentcapture/MainContentCaptureSession.java +4 −1 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ */ package android.view.contentcapture; import static android.view.contentcapture.ContentCaptureCondition.CONDITION_ENABLE_EXPORTING_VIRTUAL_CHILDREN; import static android.view.contentcapture.ContentCaptureEvent.TYPE_CONTEXT_UPDATED; import static android.view.contentcapture.ContentCaptureEvent.TYPE_SESSION_FINISHED; import static android.view.contentcapture.ContentCaptureEvent.TYPE_SESSION_FLUSH; Loading Loading @@ -1032,7 +1033,9 @@ public final class MainContentCaptureSession extends ContentCaptureSession { view.onProvideContentCaptureStructure(structure, /* flags= */ 0); if (Flags.enableExportAssistVirtualNodeToCcapi() && view.getAccessibilityNodeProvider() != null && structure.getAutofillId() != null) { && structure.getAutofillId() != null && mManager.isContentCaptureConditionEnabled( CONDITION_ENABLE_EXPORTING_VIRTUAL_CHILDREN)) { // TODO: Move this to a background thread to improve performance. Trace.beginSection("notifyVirtualChildrenAppeared"); notifyVirtualChildrenAppeared(session, structure.getAutofillId(), Loading