Merge "Make fill dialog feature controlled by device config" into tm-dev

This commit is contained in:
TYM Tsai
2022-02-25 04:33:29 +00:00
committed by Android (Google) Code Review
3 changed files with 25 additions and 3 deletions

View File

@@ -2962,6 +2962,7 @@ package android.view.autofill {
public final class AutofillManager { public final class AutofillManager {
field public static final String DEVICE_CONFIG_AUTOFILL_COMPAT_MODE_ALLOWED_PACKAGES = "compat_mode_allowed_packages"; field public static final String DEVICE_CONFIG_AUTOFILL_COMPAT_MODE_ALLOWED_PACKAGES = "compat_mode_allowed_packages";
field public static final String DEVICE_CONFIG_AUTOFILL_DIALOG_ENABLED = "autofill_dialog_enabled";
field public static final String DEVICE_CONFIG_AUTOFILL_SMART_SUGGESTION_SUPPORTED_MODES = "smart_suggestion_supported_modes"; field public static final String DEVICE_CONFIG_AUTOFILL_SMART_SUGGESTION_SUPPORTED_MODES = "smart_suggestion_supported_modes";
field public static final int FLAG_SMART_SUGGESTION_OFF = 0; // 0x0 field public static final int FLAG_SMART_SUGGESTION_OFF = 0; // 0x0
field public static final int FLAG_SMART_SUGGESTION_SYSTEM = 1; // 0x1 field public static final int FLAG_SMART_SUGGESTION_SYSTEM = 1; // 0x1

View File

@@ -586,7 +586,7 @@ public final class DeviceConfig {
@NonNull @NonNull
private static final List<String> PUBLIC_NAMESPACES = private static final List<String> PUBLIC_NAMESPACES =
Arrays.asList(NAMESPACE_TEXTCLASSIFIER, NAMESPACE_RUNTIME, NAMESPACE_STATSD_JAVA, Arrays.asList(NAMESPACE_TEXTCLASSIFIER, NAMESPACE_RUNTIME, NAMESPACE_STATSD_JAVA,
NAMESPACE_STATSD_JAVA_BOOT, NAMESPACE_SELECTION_TOOLBAR); NAMESPACE_STATSD_JAVA_BOOT, NAMESPACE_SELECTION_TOOLBAR, NAMESPACE_AUTOFILL);
/** /**
* Privacy related properties definitions. * Privacy related properties definitions.
* *

View File

@@ -58,6 +58,7 @@ import android.os.Looper;
import android.os.Parcelable; import android.os.Parcelable;
import android.os.RemoteException; import android.os.RemoteException;
import android.os.SystemClock; import android.os.SystemClock;
import android.provider.DeviceConfig;
import android.service.autofill.AutofillService; import android.service.autofill.AutofillService;
import android.service.autofill.FillCallback; import android.service.autofill.FillCallback;
import android.service.autofill.FillEventHistory; import android.service.autofill.FillEventHistory;
@@ -491,6 +492,15 @@ public final class AutofillManager {
public static final String DEVICE_CONFIG_AUTOFILL_COMPAT_MODE_ALLOWED_PACKAGES = public static final String DEVICE_CONFIG_AUTOFILL_COMPAT_MODE_ALLOWED_PACKAGES =
"compat_mode_allowed_packages"; "compat_mode_allowed_packages";
/**
* Sets the fill dialog feature enabled or not.
*
* @hide
*/
@TestApi
public static final String DEVICE_CONFIG_AUTOFILL_DIALOG_ENABLED =
"autofill_dialog_enabled";
/** @hide */ /** @hide */
public static final int RESULT_OK = 0; public static final int RESULT_OK = 0;
/** @hide */ /** @hide */
@@ -539,7 +549,7 @@ public final class AutofillManager {
*/ */
public static final int NO_SESSION = Integer.MAX_VALUE; public static final int NO_SESSION = Integer.MAX_VALUE;
private static final boolean HAS_FILL_DIALOG_UI_FEATURE = false; private static final boolean HAS_FILL_DIALOG_UI_FEATURE_DEFAULT = false;
private final IAutoFillManager mService; private final IAutoFillManager mService;
@@ -655,6 +665,8 @@ public final class AutofillManager {
@Nullable private List<AutofillId> mFillDialogTriggerIds; @Nullable private List<AutofillId> mFillDialogTriggerIds;
private final boolean mIsFillDialogEnabled;
/** @hide */ /** @hide */
public interface AutofillClient { public interface AutofillClient {
/** /**
@@ -795,6 +807,14 @@ public final class AutofillManager {
mIsFillRequested = false; mIsFillRequested = false;
mRequireAutofill = false; mRequireAutofill = false;
mIsFillDialogEnabled = DeviceConfig.getBoolean(
DeviceConfig.NAMESPACE_AUTOFILL,
DEVICE_CONFIG_AUTOFILL_DIALOG_ENABLED,
HAS_FILL_DIALOG_UI_FEATURE_DEFAULT);
if (sDebug) {
Log.d(TAG, "Fill dialog is enabled:" + mIsFillDialogEnabled);
}
if (mOptions != null) { if (mOptions != null) {
sDebug = (mOptions.loggingLevel & FLAG_ADD_CLIENT_DEBUG) != 0; sDebug = (mOptions.loggingLevel & FLAG_ADD_CLIENT_DEBUG) != 0;
sVerbose = (mOptions.loggingLevel & FLAG_ADD_CLIENT_VERBOSE) != 0; sVerbose = (mOptions.loggingLevel & FLAG_ADD_CLIENT_VERBOSE) != 0;
@@ -1081,7 +1101,7 @@ public final class AutofillManager {
} }
private boolean hasFillDialogUiFeature() { private boolean hasFillDialogUiFeature() {
return HAS_FILL_DIALOG_UI_FEATURE; return mIsFillDialogEnabled;
} }
/** /**
@@ -3012,6 +3032,7 @@ public final class AutofillManager {
} }
pw.print(pfx); pw.print("compat mode enabled: "); pw.print(pfx); pw.print("compat mode enabled: ");
synchronized (mLock) { synchronized (mLock) {
pw.print(pfx); pw.print("fill dialog enabled: "); pw.println(mIsFillDialogEnabled);
if (mCompatibilityBridge != null) { if (mCompatibilityBridge != null) {
final String pfx2 = pfx + " "; final String pfx2 = pfx + " ";
pw.println("true"); pw.println("true");