Loading api/current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -37160,6 +37160,7 @@ package android.service.autofill { method public android.service.autofill.SaveInfo.Builder setDescription(java.lang.CharSequence); method public android.service.autofill.SaveInfo.Builder setNegativeAction(java.lang.CharSequence, android.content.IntentSender); method public android.service.autofill.SaveInfo.Builder setOptionalIds(android.view.autofill.AutofillId[]); method public android.service.autofill.SaveInfo.Builder setSaveOnAllViewsInvisible(boolean); } public final class SaveRequest implements android.os.Parcelable { api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -40270,6 +40270,7 @@ package android.service.autofill { method public android.service.autofill.SaveInfo.Builder setDescription(java.lang.CharSequence); method public android.service.autofill.SaveInfo.Builder setNegativeAction(java.lang.CharSequence, android.content.IntentSender); method public android.service.autofill.SaveInfo.Builder setOptionalIds(android.view.autofill.AutofillId[]); method public android.service.autofill.SaveInfo.Builder setSaveOnAllViewsInvisible(boolean); } public final class SaveRequest implements android.os.Parcelable { api/test-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -37313,6 +37313,7 @@ package android.service.autofill { method public android.service.autofill.SaveInfo.Builder setDescription(java.lang.CharSequence); method public android.service.autofill.SaveInfo.Builder setNegativeAction(java.lang.CharSequence, android.content.IntentSender); method public android.service.autofill.SaveInfo.Builder setOptionalIds(android.view.autofill.AutofillId[]); method public android.service.autofill.SaveInfo.Builder setSaveOnAllViewsInvisible(boolean); } public final class SaveRequest implements android.os.Parcelable { core/java/android/app/Activity.java +55 −5 Original line number Diff line number Diff line Loading @@ -16,21 +16,16 @@ package android.app; import android.metrics.LogMaker; import android.graphics.Rect; import android.os.SystemClock; import android.view.ViewRootImpl.ActivityConfigCallback; import android.view.autofill.AutofillId; import android.view.autofill.AutofillManager; import android.view.autofill.AutofillPopupWindow; import android.view.autofill.AutofillValue; import android.view.autofill.IAutofillWindowPresenter; import com.android.internal.annotations.GuardedBy; import com.android.internal.app.IVoiceInteractor; import com.android.internal.app.ToolbarActionBar; import com.android.internal.app.WindowDecorActionBar; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto; import com.android.internal.policy.PhoneWindow; import android.annotation.CallSuper; Loading Loading @@ -1234,6 +1229,13 @@ public class Activity extends ContextThemeWrapper mFragments.doLoaderStart(); getApplication().dispatchActivityStarted(this); if (mAutoFillResetNeeded) { AutofillManager afm = getAutofillManager(); if (afm != null) { afm.onVisibleForAutofill(); } } } /** Loading Loading @@ -7407,6 +7409,54 @@ public class Activity extends ContextThemeWrapper return true; } /** @hide */ @Override public boolean getViewVisibility(int viewId) { Window window = getWindow(); if (window == null) { Log.i(TAG, "no window"); return false; } View decorView = window.peekDecorView(); if (decorView == null) { Log.i(TAG, "no decorView"); return false; } View view = decorView.findViewByAccessibilityIdTraversal(viewId); if (view == null) { Log.i(TAG, "cannot find view"); return false; } // Check if the view is visible by checking all parents while (view != null) { if (view == decorView) { break; } if (view.getVisibility() != View.VISIBLE) { Log.i(TAG, view + " is not visible"); return false; } if (view.getParent() instanceof View) { view = (View) view.getParent(); } else { break; } } return true; } /** @hide */ @Override public boolean isVisibleForAutofill() { return !mStopped; } /** * If set to true, this indicates to the system that it should never take a * screenshot of the activity to be used as a representation while it is not in a started state. Loading core/java/android/service/autofill/SaveInfo.java +27 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import static android.view.autofill.Helper.DEBUG; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.app.assist.AssistStructure; import android.content.IntentSender; import android.os.Bundle; import android.os.Parcel; Loading Loading @@ -158,6 +159,7 @@ public final class SaveInfo implements Parcelable { private final AutofillId[] mRequiredIds; private final AutofillId[] mOptionalIds; private final CharSequence mDescription; private final boolean mSaveOnAllViewsInvisible; private SaveInfo(Builder builder) { mType = builder.mType; Loading @@ -166,6 +168,7 @@ public final class SaveInfo implements Parcelable { mRequiredIds = builder.mRequiredIds; mOptionalIds = builder.mOptionalIds; mDescription = builder.mDescription; mSaveOnAllViewsInvisible = builder.mSaveOnAllViewsInvisible; } /** @hide */ Loading Loading @@ -193,6 +196,11 @@ public final class SaveInfo implements Parcelable { return mType; } /** @hide */ public boolean saveOnAllViewsInvisible() { return mSaveOnAllViewsInvisible; } /** @hide */ public CharSequence getDescription() { return mDescription; Loading @@ -211,6 +219,7 @@ public final class SaveInfo implements Parcelable { private AutofillId[] mOptionalIds; private CharSequence mDescription; private boolean mDestroyed; private boolean mSaveOnAllViewsInvisible; /** * Creates a new builder. Loading Loading @@ -258,6 +267,21 @@ public final class SaveInfo implements Parcelable { return this; } /** * Usually {@link AutofillService#onSaveRequest(AssistStructure, Bundle, SaveCallback)} * is called once the activity finishes. If this property is set it is called once all * autofillable or saved views become invisible. * * @param saveOnAllViewsInvisible Set to {@code true} if the data should be saved once * all the views become invisible. * @return This builder. */ public @NonNull Builder setSaveOnAllViewsInvisible(boolean saveOnAllViewsInvisible) { throwIfDestroyed(); mSaveOnAllViewsInvisible = saveOnAllViewsInvisible; return this; } /** * Sets the ids of additional, optional views the service would be interested to save. * Loading Loading @@ -354,6 +378,7 @@ public final class SaveInfo implements Parcelable { .append(", requiredIds=").append(Arrays.toString(mRequiredIds)) .append(", optionalIds=").append(Arrays.toString(mOptionalIds)) .append(", description=").append(mDescription) .append(", saveOnNoVisibleTrackedViews=").append(mSaveOnAllViewsInvisible) .append("]").toString(); } Loading @@ -374,6 +399,7 @@ public final class SaveInfo implements Parcelable { parcel.writeParcelable(mNegativeActionListener, flags); parcel.writeParcelableArray(mOptionalIds, flags); parcel.writeCharSequence(mDescription); parcel.writeBoolean(mSaveOnAllViewsInvisible); } public static final Parcelable.Creator<SaveInfo> CREATOR = new Parcelable.Creator<SaveInfo>() { Loading @@ -387,6 +413,7 @@ public final class SaveInfo implements Parcelable { builder.setNegativeAction(parcel.readCharSequence(), parcel.readParcelable(null)); builder.setOptionalIds(parcel.readParcelableArray(null, AutofillId.class)); builder.setDescription(parcel.readCharSequence()); builder.setSaveOnAllViewsInvisible(parcel.readBoolean()); return builder.build(); } Loading Loading
api/current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -37160,6 +37160,7 @@ package android.service.autofill { method public android.service.autofill.SaveInfo.Builder setDescription(java.lang.CharSequence); method public android.service.autofill.SaveInfo.Builder setNegativeAction(java.lang.CharSequence, android.content.IntentSender); method public android.service.autofill.SaveInfo.Builder setOptionalIds(android.view.autofill.AutofillId[]); method public android.service.autofill.SaveInfo.Builder setSaveOnAllViewsInvisible(boolean); } public final class SaveRequest implements android.os.Parcelable {
api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -40270,6 +40270,7 @@ package android.service.autofill { method public android.service.autofill.SaveInfo.Builder setDescription(java.lang.CharSequence); method public android.service.autofill.SaveInfo.Builder setNegativeAction(java.lang.CharSequence, android.content.IntentSender); method public android.service.autofill.SaveInfo.Builder setOptionalIds(android.view.autofill.AutofillId[]); method public android.service.autofill.SaveInfo.Builder setSaveOnAllViewsInvisible(boolean); } public final class SaveRequest implements android.os.Parcelable {
api/test-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -37313,6 +37313,7 @@ package android.service.autofill { method public android.service.autofill.SaveInfo.Builder setDescription(java.lang.CharSequence); method public android.service.autofill.SaveInfo.Builder setNegativeAction(java.lang.CharSequence, android.content.IntentSender); method public android.service.autofill.SaveInfo.Builder setOptionalIds(android.view.autofill.AutofillId[]); method public android.service.autofill.SaveInfo.Builder setSaveOnAllViewsInvisible(boolean); } public final class SaveRequest implements android.os.Parcelable {
core/java/android/app/Activity.java +55 −5 Original line number Diff line number Diff line Loading @@ -16,21 +16,16 @@ package android.app; import android.metrics.LogMaker; import android.graphics.Rect; import android.os.SystemClock; import android.view.ViewRootImpl.ActivityConfigCallback; import android.view.autofill.AutofillId; import android.view.autofill.AutofillManager; import android.view.autofill.AutofillPopupWindow; import android.view.autofill.AutofillValue; import android.view.autofill.IAutofillWindowPresenter; import com.android.internal.annotations.GuardedBy; import com.android.internal.app.IVoiceInteractor; import com.android.internal.app.ToolbarActionBar; import com.android.internal.app.WindowDecorActionBar; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto; import com.android.internal.policy.PhoneWindow; import android.annotation.CallSuper; Loading Loading @@ -1234,6 +1229,13 @@ public class Activity extends ContextThemeWrapper mFragments.doLoaderStart(); getApplication().dispatchActivityStarted(this); if (mAutoFillResetNeeded) { AutofillManager afm = getAutofillManager(); if (afm != null) { afm.onVisibleForAutofill(); } } } /** Loading Loading @@ -7407,6 +7409,54 @@ public class Activity extends ContextThemeWrapper return true; } /** @hide */ @Override public boolean getViewVisibility(int viewId) { Window window = getWindow(); if (window == null) { Log.i(TAG, "no window"); return false; } View decorView = window.peekDecorView(); if (decorView == null) { Log.i(TAG, "no decorView"); return false; } View view = decorView.findViewByAccessibilityIdTraversal(viewId); if (view == null) { Log.i(TAG, "cannot find view"); return false; } // Check if the view is visible by checking all parents while (view != null) { if (view == decorView) { break; } if (view.getVisibility() != View.VISIBLE) { Log.i(TAG, view + " is not visible"); return false; } if (view.getParent() instanceof View) { view = (View) view.getParent(); } else { break; } } return true; } /** @hide */ @Override public boolean isVisibleForAutofill() { return !mStopped; } /** * If set to true, this indicates to the system that it should never take a * screenshot of the activity to be used as a representation while it is not in a started state. Loading
core/java/android/service/autofill/SaveInfo.java +27 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import static android.view.autofill.Helper.DEBUG; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.app.assist.AssistStructure; import android.content.IntentSender; import android.os.Bundle; import android.os.Parcel; Loading Loading @@ -158,6 +159,7 @@ public final class SaveInfo implements Parcelable { private final AutofillId[] mRequiredIds; private final AutofillId[] mOptionalIds; private final CharSequence mDescription; private final boolean mSaveOnAllViewsInvisible; private SaveInfo(Builder builder) { mType = builder.mType; Loading @@ -166,6 +168,7 @@ public final class SaveInfo implements Parcelable { mRequiredIds = builder.mRequiredIds; mOptionalIds = builder.mOptionalIds; mDescription = builder.mDescription; mSaveOnAllViewsInvisible = builder.mSaveOnAllViewsInvisible; } /** @hide */ Loading Loading @@ -193,6 +196,11 @@ public final class SaveInfo implements Parcelable { return mType; } /** @hide */ public boolean saveOnAllViewsInvisible() { return mSaveOnAllViewsInvisible; } /** @hide */ public CharSequence getDescription() { return mDescription; Loading @@ -211,6 +219,7 @@ public final class SaveInfo implements Parcelable { private AutofillId[] mOptionalIds; private CharSequence mDescription; private boolean mDestroyed; private boolean mSaveOnAllViewsInvisible; /** * Creates a new builder. Loading Loading @@ -258,6 +267,21 @@ public final class SaveInfo implements Parcelable { return this; } /** * Usually {@link AutofillService#onSaveRequest(AssistStructure, Bundle, SaveCallback)} * is called once the activity finishes. If this property is set it is called once all * autofillable or saved views become invisible. * * @param saveOnAllViewsInvisible Set to {@code true} if the data should be saved once * all the views become invisible. * @return This builder. */ public @NonNull Builder setSaveOnAllViewsInvisible(boolean saveOnAllViewsInvisible) { throwIfDestroyed(); mSaveOnAllViewsInvisible = saveOnAllViewsInvisible; return this; } /** * Sets the ids of additional, optional views the service would be interested to save. * Loading Loading @@ -354,6 +378,7 @@ public final class SaveInfo implements Parcelable { .append(", requiredIds=").append(Arrays.toString(mRequiredIds)) .append(", optionalIds=").append(Arrays.toString(mOptionalIds)) .append(", description=").append(mDescription) .append(", saveOnNoVisibleTrackedViews=").append(mSaveOnAllViewsInvisible) .append("]").toString(); } Loading @@ -374,6 +399,7 @@ public final class SaveInfo implements Parcelable { parcel.writeParcelable(mNegativeActionListener, flags); parcel.writeParcelableArray(mOptionalIds, flags); parcel.writeCharSequence(mDescription); parcel.writeBoolean(mSaveOnAllViewsInvisible); } public static final Parcelable.Creator<SaveInfo> CREATOR = new Parcelable.Creator<SaveInfo>() { Loading @@ -387,6 +413,7 @@ public final class SaveInfo implements Parcelable { builder.setNegativeAction(parcel.readCharSequence(), parcel.readParcelable(null)); builder.setOptionalIds(parcel.readParcelableArray(null, AutofillId.class)); builder.setDescription(parcel.readCharSequence()); builder.setSaveOnAllViewsInvisible(parcel.readBoolean()); return builder.build(); } Loading