diff --git a/core/res/res/layout/autofill_save.xml b/core/res/res/layout/autofill_save.xml
index dad9aad876f97..a6892c64837cc 100644
--- a/core/res/res/layout/autofill_save.xml
+++ b/core/res/res/layout/autofill_save.xml
@@ -40,13 +40,6 @@
android:singleLine="true">
-
-
-
+
+
+
MAX_SAVE_TIMEOUT_MS) {
+ throw new IllegalArgumentException("Maximum value is " + MAX_SAVE_TIMEOUT_MS + "ms");
+ }
+ if (timeout <= 0) {
+ throw new IllegalArgumentException("Must be a positive value");
+ }
+ mSaveTimeoutMs = timeout;
+ }
+
public void dump(PrintWriter pw) {
pw.println("AufoFill UI");
final String prefix = " ";
pw.print(prefix); pw.print("showsFillUi: "); pw.println(mFillUi != null);
pw.print(prefix); pw.print("showsSaveUi: "); pw.println(mSaveUi != null);
+ pw.print(prefix); pw.print("save timeout: "); pw.println(mSaveTimeoutMs);
}
@android.annotation.UiThread
diff --git a/services/autofill/java/com/android/server/autofill/ui/SaveUi.java b/services/autofill/java/com/android/server/autofill/ui/SaveUi.java
index d443dc34f9492..3f409ade68edc 100644
--- a/services/autofill/java/com/android/server/autofill/ui/SaveUi.java
+++ b/services/autofill/java/com/android/server/autofill/ui/SaveUi.java
@@ -42,8 +42,6 @@ final class SaveUi {
void onCancel(IntentSender listener);
}
- private static final long LIFETIME_MILLIS = 5 * DateUtils.SECOND_IN_MILLIS;
-
private final Handler mHandler = UiThread.getHandler();
private final @NonNull Dialog mDialog;
@@ -53,7 +51,7 @@ final class SaveUi {
private boolean mDestroyed;
SaveUi(@NonNull Context context, @NonNull CharSequence providerLabel, @NonNull SaveInfo info,
- @NonNull OnSaveListener listener) {
+ @NonNull OnSaveListener listener, int lifeTimeMs) {
mListener = listener;
final LayoutInflater inflater = LayoutInflater.from(context);
@@ -119,7 +117,7 @@ final class SaveUi {
mDialog.show();
- mHandler.postDelayed(() -> mListener.onCancel(null), LIFETIME_MILLIS);
+ mHandler.postDelayed(() -> mListener.onCancel(null), lifeTimeMs);
}
void destroy() {