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

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

Merge "New autofill cmds to enable / disable / check default augmented service."

parents 29162935 a70dd8c9
Loading
Loading
Loading
Loading
+36 −0
Original line number Diff line number Diff line
@@ -569,6 +569,42 @@ public final class AutofillManagerService
        }
    }

    // Called by Shell command
    boolean isDefaultAugmentedServiceEnabled(@UserIdInt int userId) {
        enforceCallingPermissionForManagement();

        synchronized (mLock) {
            final AutofillManagerServiceImpl service = getServiceForUserLocked(userId);
            if (service != null) {
                return service.mAugmentedAutofillResolver.isDefaultServiceEnabled(userId);
            }
        }
        return false;
    }

    // Called by Shell command
    boolean setDefaultAugmentedServiceEnabled(@UserIdInt int userId, boolean enabled) {
        Slog.i(mTag, "setDefaultAugmentedServiceEnabled() for userId " + userId + ": " + enabled);
        enforceCallingPermissionForManagement();

        synchronized (mLock) {
            final AutofillManagerServiceImpl service = getServiceForUserLocked(userId);
            if (service != null) {
                final boolean changed = service.mAugmentedAutofillResolver
                        .setDefaultServiceEnabled(userId, enabled);
                if (changed) {
                    service.updateRemoteAugmentedAutofillService();
                    return true;
                } else {
                    if (debug) {
                        Slog.d(TAG, "setDefaultAugmentedServiceEnabled(): already " + enabled);
                    }
                }
            }
        }
        return false;
    }

    private void setLoggingLevelsLocked(boolean debug, boolean verbose) {
        com.android.server.autofill.Helper.sDebug = debug;
        android.view.autofill.Helper.sDebug = debug;
+1 −0
Original line number Diff line number Diff line
@@ -156,6 +156,7 @@ final class AutofillManagerServiceImpl
    /** When was {@link PruneTask} last executed? */
    private long mLastPrune = 0;

    // TODO(b/128911469): move to AutofillManagerService
    /**
     * Object used to set the name of the augmented autofill service.
     */
+28 −0
Original line number Diff line number Diff line
@@ -109,6 +109,13 @@ public final class AutofillManagerServiceShellCommand extends ShellCommand {
                    + "implementation.");
            pw.println("    To reset, call with just the USER_ID argument.");
            pw.println("");
            pw.println("  set default-augmented-service-enabled USER_ID [true|false]");
            pw.println("    Enable / disable the default augmented autofill service for the user.");
            pw.println("");
            pw.println("  get default-augmented-service-enabled USER_ID");
            pw.println("    Checks whether the default augmented autofill service is enabled for "
                    + "the user.");
            pw.println("");
            pw.println("  list sessions [--user USER_ID]");
            pw.println("    Lists all pending sessions.");
            pw.println("");
@@ -136,6 +143,8 @@ public final class AutofillManagerServiceShellCommand extends ShellCommand {
                return getFullScreenMode(pw);
            case "bind-instant-service-allowed":
                return getBindInstantService(pw);
            case "default-augmented-service-enabled":
                return getDefaultAugmentedServiceEnabled(pw);
            default:
                pw.println("Invalid set: " + what);
                return -1;
@@ -158,6 +167,8 @@ public final class AutofillManagerServiceShellCommand extends ShellCommand {
                return setBindInstantService(pw);
            case "temporary-augmented-service":
                return setTemporaryAugmentedService(pw);
            case "default-augmented-service-enabled":
                return setDefaultAugmentedServiceEnabled(pw);
            default:
                pw.println("Invalid set: " + what);
                return -1;
@@ -314,6 +325,23 @@ public final class AutofillManagerServiceShellCommand extends ShellCommand {
        return 0;
    }

    private int getDefaultAugmentedServiceEnabled(PrintWriter pw) {
        final int userId = getNextIntArgRequired();
        final boolean enabled = mService.isDefaultAugmentedServiceEnabled(userId);
        pw.println(enabled);
        return 0;
    }

    private int setDefaultAugmentedServiceEnabled(PrintWriter pw) {
        final int userId = getNextIntArgRequired();
        final boolean enabled = Boolean.parseBoolean(getNextArgRequired());
        final boolean changed = mService.setDefaultAugmentedServiceEnabled(userId, enabled);
        if (!changed) {
            pw.println("already " + enabled);
        }
        return 0;
    }

    private int requestDestroy(PrintWriter pw) {
        if (!isNextArgSessions(pw)) {
            return -1;
+7 −4
Original line number Diff line number Diff line
@@ -114,7 +114,7 @@ public final class ContentCaptureManagerServiceShellCommand extends ShellCommand
            case "temporary-service":
                return setTemporaryService(pw);
            case "default-service-enabled":
                return setDefaultServiceEnabled();
                return setDefaultServiceEnabled(pw);
            default:
                pw.println("Invalid set: " + what);
                return -1;
@@ -159,10 +159,13 @@ public final class ContentCaptureManagerServiceShellCommand extends ShellCommand
        return 0;
    }

    private int setDefaultServiceEnabled() {
    private int setDefaultServiceEnabled(PrintWriter pw) {
        final int userId = getNextIntArgRequired();
        final boolean enabled = Boolean.parseBoolean(getNextArg());
        mService.setDefaultServiceEnabled(userId, enabled);
        final boolean enabled = Boolean.parseBoolean(getNextArgRequired());
        final boolean changed = mService.setDefaultServiceEnabled(userId, enabled);
        if (!changed) {
            pw.println("already " + enabled);
        }
        return 0;
    }

+12 −2
Original line number Diff line number Diff line
@@ -332,21 +332,31 @@ public abstract class AbstractMasterSystemService<M extends AbstractMasterSystem
     * with the test results.
     *
     * @throws SecurityException if caller is not allowed to manage this service's settings.
     *
     * @return whether the enabled state changed.
     */
    public final void setDefaultServiceEnabled(@UserIdInt int userId, boolean enabled) {
    public final boolean setDefaultServiceEnabled(@UserIdInt int userId, boolean enabled) {
        Slog.i(mTag, "setDefaultServiceEnabled() for userId " + userId + ": " + enabled);
        enforceCallingPermissionForManagement();

        synchronized (mLock) {
            final boolean changed = mServiceNameResolver.setDefaultServiceEnabled(userId, enabled);
            if (!changed) {
                if (verbose) {
                    Slog.v(mTag, "setDefaultServiceEnabled(" + userId + "): already " + enabled);
                }
                return false;
            }

            final S oldService = peekServiceForUserLocked(userId);
            if (oldService != null) {
                oldService.removeSelfFromCacheLocked();
            }
            mServiceNameResolver.setDefaultServiceEnabled(userId, enabled);

            // Must update the service on cache so its initialization code is triggered
            updateCachedServiceLocked(userId);
        }
        return true;
    }

    /**
Loading