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

Commit 7323781d authored by felipeal's avatar felipeal
Browse files

Bind to augmented autofill service right away.

Test: manual verification
Test: atest AugmentedLoginActivityTest

Fixes: 127888630

Change-Id: Ia1dc2eba2e55d82465dd60ac2592c8ba673ed941
parent 88da4473
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.content.pm.UserInfo;
import android.database.ContentObserver;
import android.graphics.Rect;
import android.os.Binder;
@@ -189,6 +190,16 @@ public final class AutofillManagerService
        final IntentFilter filter = new IntentFilter();
        filter.addAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
        context.registerReceiver(mBroadcastReceiver, filter, null, FgThread.getHandler());

        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);
            final List<UserInfo> users = um.getUsers();
            for (int i = 0; i < users.size(); i++) {
                final int userId = users.get(i).id;
                getServiceForUserLocked(userId);
            }
        }
    }

    @Override // from AbstractMasterSystemService
+6 −3
Original line number Diff line number Diff line
@@ -194,7 +194,7 @@ final class AutofillManagerServiceImpl
        mAugmentedAutofillResolver = new FrameworkResourcesServiceNameResolver(master.getContext(),
                com.android.internal.R.string.config_defaultAugmentedAutofillService);
        mAugmentedAutofillResolver.setOnTemporaryServiceNameChangedCallback(
                (u, s) -> updateRemoteAugmentedAutofillService(s));
                (u, s) -> updateRemoteAugmentedAutofillService());

        updateLocked(disabled);
    }
@@ -223,6 +223,7 @@ final class AutofillManagerServiceImpl
            }
            sendStateToClients(false);
        }
        updateRemoteAugmentedAutofillService();
        return enabledChanged;
    }

@@ -1093,7 +1094,7 @@ final class AutofillManagerServiceImpl
    /**
     * Called when the {@link #mAugmentedAutofillResolver} changed (among other places).
     */
    private void updateRemoteAugmentedAutofillService(@Nullable String serviceName) {
    void updateRemoteAugmentedAutofillService() {
        synchronized (mLock) {
            if (mRemoteAugmentedAutofillService != null) {
                if (sVerbose) {
@@ -1105,9 +1106,11 @@ final class AutofillManagerServiceImpl
                mRemoteAugmentedAutofillServiceInfo = null;
            }

            if (isEnabledLocked()) {
                mRemoteAugmentedAutofillService = getRemoteAugmentedAutofillServiceLocked();
            }
        }
    }

    /**
     * Sets which packages and activities can trigger augmented autofill.