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

Commit 39531e28 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Added autofill cmds to get and set full-screen mode." into pi-dev

parents b1adae54 c6c026a6
Loading
Loading
Loading
Loading
+21 −5
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import static android.content.Context.AUTOFILL_MANAGER_SERVICE;

import static com.android.server.autofill.Helper.bundleToString;
import static com.android.server.autofill.Helper.sDebug;
import static com.android.server.autofill.Helper.sFullScreenMode;
import static com.android.server.autofill.Helper.sPartitionMaxCount;
import static com.android.server.autofill.Helper.sVisibleDatasetsMaxCount;
import static com.android.server.autofill.Helper.sVerbose;
@@ -449,7 +450,7 @@ public final class AutofillManagerService extends SystemService {
    }

    // Called by Shell command.
    public int getMaxPartitions() {
    int getMaxPartitions() {
        mContext.enforceCallingPermission(MANAGE_AUTO_FILL, TAG);

        synchronized (mLock) {
@@ -458,7 +459,7 @@ public final class AutofillManagerService extends SystemService {
    }

    // Called by Shell command.
    public void setMaxPartitions(int max) {
    void setMaxPartitions(int max) {
        mContext.enforceCallingPermission(MANAGE_AUTO_FILL, TAG);
        Slog.i(TAG, "setMaxPartitions(): " + max);
        synchronized (mLock) {
@@ -467,7 +468,7 @@ public final class AutofillManagerService extends SystemService {
    }

    // Called by Shell command.
    public int getMaxVisibleDatasets() {
    int getMaxVisibleDatasets() {
        mContext.enforceCallingPermission(MANAGE_AUTO_FILL, TAG);

        synchronized (mLock) {
@@ -476,7 +477,7 @@ public final class AutofillManagerService extends SystemService {
    }

    // Called by Shell command.
    public void setMaxVisibleDatasets(int max) {
    void setMaxVisibleDatasets(int max) {
        mContext.enforceCallingPermission(MANAGE_AUTO_FILL, TAG);
        Slog.i(TAG, "setMaxVisibleDatasets(): " + max);
        synchronized (mLock) {
@@ -485,7 +486,7 @@ public final class AutofillManagerService extends SystemService {
    }

    // Called by Shell command.
    public void getScore(@Nullable String algorithmName, @NonNull String value1,
    void getScore(@Nullable String algorithmName, @NonNull String value1,
            @NonNull String value2, @NonNull RemoteCallback callback) {
        mContext.enforceCallingPermission(MANAGE_AUTO_FILL, TAG);

@@ -496,6 +497,18 @@ public final class AutofillManagerService extends SystemService {
                Arrays.asList(AutofillValue.forText(value1)), new String[] { value2 });
    }

    // Called by Shell command.
    Boolean getFullScreenMode() {
        mContext.enforceCallingPermission(MANAGE_AUTO_FILL, TAG);
        return sFullScreenMode;
    }

    // Called by Shell command.
    void setFullScreenMode(@Nullable Boolean mode) {
        mContext.enforceCallingPermission(MANAGE_AUTO_FILL, TAG);
        sFullScreenMode = mode;
    }

    private void setDebugLocked(boolean debug) {
        com.android.server.autofill.Helper.sDebug = debug;
        android.view.autofill.Helper.sDebug = debug;
@@ -1159,6 +1172,9 @@ public final class AutofillManagerService extends SystemService {
                    pw.print("Disabled users: "); pw.println(mDisabledUsers);
                    pw.print("Max partitions per session: "); pw.println(sPartitionMaxCount);
                    pw.print("Max visible datasets: "); pw.println(sVisibleDatasetsMaxCount);
                    if (sFullScreenMode != null) {
                        pw.print("Overridden full-screen mode: "); pw.println(sFullScreenMode);
                    }
                    pw.println("User data constraints: "); UserData.dumpConstraints(prefix, pw);
                    final int size = mServicesCache.size();
                    pw.print("Cached services: ");
+43 −3
Original line number Diff line number Diff line
@@ -80,6 +80,12 @@ public final class AutofillManagerServiceShellCommand extends ShellCommand {
            pw.println("  get max_visible_datasets");
            pw.println("    Gets the maximum number of visible datasets in the UI.");
            pw.println("");
            pw.println("  get full_screen_mode");
            pw.println("    Gets the Fill UI full screen mode");
            pw.println("");
            pw.println("  get fc_score [--algorithm ALGORITHM] value1 value2");
            pw.println("    Gets the field classification score for 2 fields.");
            pw.println("");
            pw.println("  set log_level [off | debug | verbose]");
            pw.println("    Sets the Autofill log level.");
            pw.println("");
@@ -89,6 +95,9 @@ public final class AutofillManagerServiceShellCommand extends ShellCommand {
            pw.println("  set max_visible_datasets number");
            pw.println("    Sets the maximum number of visible datasets in the UI.");
            pw.println("");
            pw.println("  set full_screen_mode [true | false | default]");
            pw.println("    Sets the Fill UI full screen mode");
            pw.println("");
            pw.println("  list sessions [--user USER_ID]");
            pw.println("    Lists all pending sessions.");
            pw.println("");
@@ -98,9 +107,6 @@ public final class AutofillManagerServiceShellCommand extends ShellCommand {
            pw.println("  reset");
            pw.println("    Resets all pending sessions and cached service connections.");
            pw.println("");
            pw.println("  get fc_score [--algorithm ALGORITHM] value1 value2");
            pw.println("    Gets the field classification score for 2 fields.");
            pw.println("");
        }
    }

@@ -115,6 +121,8 @@ public final class AutofillManagerServiceShellCommand extends ShellCommand {
                return getMaxVisibileDatasets(pw);
            case "fc_score":
                return getFieldClassificationScore(pw);
            case "full_screen_mode":
                return getFullScreenMode(pw);
            default:
                pw.println("Invalid set: " + what);
                return -1;
@@ -131,6 +139,8 @@ public final class AutofillManagerServiceShellCommand extends ShellCommand {
                return setMaxPartitions();
            case "max_visible_datasets":
                return setMaxVisibileDatasets();
            case "full_screen_mode":
                return setFullScreenMode(pw);
            default:
                pw.println("Invalid set: " + what);
                return -1;
@@ -219,6 +229,36 @@ public final class AutofillManagerServiceShellCommand extends ShellCommand {
        return waitForLatch(pw, latch);
    }

    private int getFullScreenMode(PrintWriter pw) {
        final Boolean mode = mService.getFullScreenMode();
        if (mode == null) {
            pw.println("default");
        } else if (mode) {
            pw.println("true");
        } else {
            pw.println("false");
        }
        return 0;
    }

    private int setFullScreenMode(PrintWriter pw) {
        final String mode = getNextArgRequired();
        switch (mode.toLowerCase()) {
            case "true":
                mService.setFullScreenMode(Boolean.TRUE);
                return 0;
            case "false":
                mService.setFullScreenMode(Boolean.FALSE);
                return 0;
            case "default":
                mService.setFullScreenMode(null);
                return 0;
            default:
                pw.println("Invalid mode: " + mode);
                return -1;
        }
    }

    private int requestDestroy(PrintWriter pw) {
        if (!isNextArgSessions(pw)) {
            return -1;
+5 −0
Original line number Diff line number Diff line
@@ -70,6 +70,11 @@ public final class Helper {
     */
    public static int sVisibleDatasetsMaxCount = 3;

    /**
     * When non-null, overrides whether the UI should be shown on full-screen mode.
     */
    public static Boolean sFullScreenMode = null;

    private Helper() {
        throw new UnsupportedOperationException("contains static members only");
    }
+5 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ package com.android.server.autofill.ui;

import static com.android.server.autofill.Helper.paramsToString;
import static com.android.server.autofill.Helper.sDebug;
import static com.android.server.autofill.Helper.sFullScreenMode;
import static com.android.server.autofill.Helper.sVerbose;

import android.annotation.AttrRes;
@@ -133,6 +134,10 @@ final class FillUi {
    private boolean mDestroyed;

    public static boolean isFullScreen(Context context) {
        if (sFullScreenMode != null) {
            if (sVerbose) Slog.v(TAG, "forcing full-screen mode to " + sFullScreenMode);
            return sFullScreenMode;
        }
        return context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_LEANBACK);
    }