Loading services/autofill/java/com/android/server/autofill/AutofillManagerService.java +5 −5 Original line number Diff line number Diff line Loading @@ -198,6 +198,11 @@ public final class AutofillManagerService filter.addAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); context.registerReceiver(mBroadcastReceiver, filter, null, FgThread.getHandler()); mAugmentedAutofillResolver = new FrameworkResourcesServiceNameResolver(getContext(), com.android.internal.R.string.config_defaultAugmentedAutofillService); mAugmentedAutofillResolver.setOnTemporaryServiceNameChangedCallback( (u, s) -> getServiceForUserLocked(u).updateRemoteAugmentedAutofillService()); if (mSupportedSmartSuggestionModes != AutofillManager.FLAG_SMART_SUGGESTION_OFF) { // Must eager load the services so they bind to the augmented autofill service final UserManager um = getContext().getSystemService(UserManager.class); Loading @@ -207,11 +212,6 @@ public final class AutofillManagerService getServiceForUserLocked(userId); } } mAugmentedAutofillResolver = new FrameworkResourcesServiceNameResolver(getContext(), com.android.internal.R.string.config_defaultAugmentedAutofillService); mAugmentedAutofillResolver.setOnTemporaryServiceNameChangedCallback( (u, s) -> getServiceForUserLocked(u).updateRemoteAugmentedAutofillService()); } @Override // from AbstractMasterSystemService Loading services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java +21 −2 Original line number Diff line number Diff line Loading @@ -247,7 +247,8 @@ final class AutofillManagerServiceImpl if (isEnabledLocked()) return FLAG_ADD_CLIENT_ENABLED; // Check if it's enabled for augmented autofill if (isSetupCompletedLocked() && isWhitelistedForAugmentedAutofillLocked(componentName)) { if (isAugmentedAutofillServiceAvailableLocked() && isWhitelistedForAugmentedAutofillLocked(componentName)) { return FLAG_ADD_CLIENT_ENABLED_FOR_AUGMENTED_AUTOFILL_ONLY; } Loading Loading @@ -1150,12 +1151,30 @@ final class AutofillManagerServiceImpl mRemoteAugmentedAutofillServiceInfo = null; } if (isEnabledLocked()) { final boolean available = isAugmentedAutofillServiceAvailableLocked(); if (sVerbose) Slog.v(TAG, "updateRemoteAugmentedAutofillService(): " + available); if (available) { mRemoteAugmentedAutofillService = getRemoteAugmentedAutofillServiceLocked(); } } } private boolean isAugmentedAutofillServiceAvailableLocked() { if (mMaster.verbose) { Slog.v(TAG, "isAugmentedAutofillService(): " + "setupCompleted=" + isSetupCompletedLocked() + ", disabled=" + isDisabledByUserRestrictionsLocked() + ", augmentedService=" + mMaster.mAugmentedAutofillResolver.getServiceName(mUserId)); } if (!isSetupCompletedLocked() || isDisabledByUserRestrictionsLocked() || mMaster.mAugmentedAutofillResolver.getServiceName(mUserId) == null) { return false; } return true; } /** * Sets which packages and activities can trigger augmented autofill. * Loading services/core/java/com/android/server/infra/AbstractPerUserSystemService.java +20 −4 Original line number Diff line number Diff line Loading @@ -112,6 +112,13 @@ public abstract class AbstractPerUserSystemService<S extends AbstractPerUserSyst return mSetupComplete && mServiceInfo != null && !mDisabled; } /** * Gets whether the service is disabled by {@link UserManager} restrictions. */ protected final boolean isDisabledByUserRestrictionsLocked() { return mDisabled; } /** * Updates the state of this service. * Loading @@ -136,7 +143,9 @@ public abstract class AbstractPerUserSystemService<S extends AbstractPerUserSyst + ", disabled=" + disabled + ", mDisabled=" + mDisabled); } mSetupComplete = isSetupCompletedLocked(); final String setupComplete = Settings.Secure.getStringForUser( getContext().getContentResolver(), Settings.Secure.USER_SETUP_COMPLETE, mUserId); mSetupComplete = "1".equals(setupComplete); mDisabled = disabled; updateServiceInfoLocked(); Loading Loading @@ -234,6 +243,15 @@ public abstract class AbstractPerUserSystemService<S extends AbstractPerUserSyst mMaster.mServiceNameResolver.resetTemporaryService(mUserId); } /** * Gets the {@link ServiceInfo} of the remote service this service binds to, or {@code null} * if the service is disabled. */ @Nullable public final ServiceInfo getServiceInfo() { return mServiceInfo; } /** * Gets the {@link ComponentName} of the remote service this service binds to, or {@code null} * if the service is disabled. Loading Loading @@ -311,9 +329,7 @@ public abstract class AbstractPerUserSystemService<S extends AbstractPerUserSyst * Gets whether the device already finished setup. */ protected final boolean isSetupCompletedLocked() { final String setupComplete = Settings.Secure.getStringForUser( getContext().getContentResolver(), Settings.Secure.USER_SETUP_COMPLETE, mUserId); return "1".equals(setupComplete); return mSetupComplete; } /** Loading Loading
services/autofill/java/com/android/server/autofill/AutofillManagerService.java +5 −5 Original line number Diff line number Diff line Loading @@ -198,6 +198,11 @@ public final class AutofillManagerService filter.addAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); context.registerReceiver(mBroadcastReceiver, filter, null, FgThread.getHandler()); mAugmentedAutofillResolver = new FrameworkResourcesServiceNameResolver(getContext(), com.android.internal.R.string.config_defaultAugmentedAutofillService); mAugmentedAutofillResolver.setOnTemporaryServiceNameChangedCallback( (u, s) -> getServiceForUserLocked(u).updateRemoteAugmentedAutofillService()); if (mSupportedSmartSuggestionModes != AutofillManager.FLAG_SMART_SUGGESTION_OFF) { // Must eager load the services so they bind to the augmented autofill service final UserManager um = getContext().getSystemService(UserManager.class); Loading @@ -207,11 +212,6 @@ public final class AutofillManagerService getServiceForUserLocked(userId); } } mAugmentedAutofillResolver = new FrameworkResourcesServiceNameResolver(getContext(), com.android.internal.R.string.config_defaultAugmentedAutofillService); mAugmentedAutofillResolver.setOnTemporaryServiceNameChangedCallback( (u, s) -> getServiceForUserLocked(u).updateRemoteAugmentedAutofillService()); } @Override // from AbstractMasterSystemService Loading
services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java +21 −2 Original line number Diff line number Diff line Loading @@ -247,7 +247,8 @@ final class AutofillManagerServiceImpl if (isEnabledLocked()) return FLAG_ADD_CLIENT_ENABLED; // Check if it's enabled for augmented autofill if (isSetupCompletedLocked() && isWhitelistedForAugmentedAutofillLocked(componentName)) { if (isAugmentedAutofillServiceAvailableLocked() && isWhitelistedForAugmentedAutofillLocked(componentName)) { return FLAG_ADD_CLIENT_ENABLED_FOR_AUGMENTED_AUTOFILL_ONLY; } Loading Loading @@ -1150,12 +1151,30 @@ final class AutofillManagerServiceImpl mRemoteAugmentedAutofillServiceInfo = null; } if (isEnabledLocked()) { final boolean available = isAugmentedAutofillServiceAvailableLocked(); if (sVerbose) Slog.v(TAG, "updateRemoteAugmentedAutofillService(): " + available); if (available) { mRemoteAugmentedAutofillService = getRemoteAugmentedAutofillServiceLocked(); } } } private boolean isAugmentedAutofillServiceAvailableLocked() { if (mMaster.verbose) { Slog.v(TAG, "isAugmentedAutofillService(): " + "setupCompleted=" + isSetupCompletedLocked() + ", disabled=" + isDisabledByUserRestrictionsLocked() + ", augmentedService=" + mMaster.mAugmentedAutofillResolver.getServiceName(mUserId)); } if (!isSetupCompletedLocked() || isDisabledByUserRestrictionsLocked() || mMaster.mAugmentedAutofillResolver.getServiceName(mUserId) == null) { return false; } return true; } /** * Sets which packages and activities can trigger augmented autofill. * Loading
services/core/java/com/android/server/infra/AbstractPerUserSystemService.java +20 −4 Original line number Diff line number Diff line Loading @@ -112,6 +112,13 @@ public abstract class AbstractPerUserSystemService<S extends AbstractPerUserSyst return mSetupComplete && mServiceInfo != null && !mDisabled; } /** * Gets whether the service is disabled by {@link UserManager} restrictions. */ protected final boolean isDisabledByUserRestrictionsLocked() { return mDisabled; } /** * Updates the state of this service. * Loading @@ -136,7 +143,9 @@ public abstract class AbstractPerUserSystemService<S extends AbstractPerUserSyst + ", disabled=" + disabled + ", mDisabled=" + mDisabled); } mSetupComplete = isSetupCompletedLocked(); final String setupComplete = Settings.Secure.getStringForUser( getContext().getContentResolver(), Settings.Secure.USER_SETUP_COMPLETE, mUserId); mSetupComplete = "1".equals(setupComplete); mDisabled = disabled; updateServiceInfoLocked(); Loading Loading @@ -234,6 +243,15 @@ public abstract class AbstractPerUserSystemService<S extends AbstractPerUserSyst mMaster.mServiceNameResolver.resetTemporaryService(mUserId); } /** * Gets the {@link ServiceInfo} of the remote service this service binds to, or {@code null} * if the service is disabled. */ @Nullable public final ServiceInfo getServiceInfo() { return mServiceInfo; } /** * Gets the {@link ComponentName} of the remote service this service binds to, or {@code null} * if the service is disabled. Loading Loading @@ -311,9 +329,7 @@ public abstract class AbstractPerUserSystemService<S extends AbstractPerUserSyst * Gets whether the device already finished setup. */ protected final boolean isSetupCompletedLocked() { final String setupComplete = Settings.Secure.getStringForUser( getContext().getContentResolver(), Settings.Secure.USER_SETUP_COMPLETE, mUserId); return "1".equals(setupComplete); return mSetupComplete; } /** Loading