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

Commit 4fa4a2e3 authored by Felipe Leme's avatar Felipe Leme
Browse files

Replaced auto-fill by autofill to keep it consistent with API style.

To keep backward compatibility, it looks for the new service (AutofillService),
then falls back to the old one (AutoFillService) if not found.

Bug: 35956626
Bug: 36024626
Test: manual verification with a custom service
Test: RunSettingsRoboTests passes

Change-Id: I64112ac5d796e94866e632ec8ea79a3fb13e3d9b
parent 9a8bae08
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -67,7 +67,7 @@
        android:key="default_autofill"
        android:title="@string/autofill_app"
        android:summary="@string/app_list_preference_none"
        android:fragment="com.android.settings.applications.defaultapps.DefaultAutoFillPicker"
        android:fragment="com.android.settings.applications.defaultapps.DefaultAutofillPicker"
        settings:keywords="@string/autofill_keywords"
        android:order="-14"/>

+2 −2
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@ import android.provider.SearchIndexableResource;

import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.applications.defaultapps.DefaultAutoFillPreferenceController;
import com.android.settings.applications.defaultapps.DefaultAutofillPreferenceController;
import com.android.settings.applications.defaultapps.DefaultBrowserPreferenceController;
import com.android.settings.applications.defaultapps.DefaultEmergencyPreferenceController;
import com.android.settings.applications.defaultapps.DefaultHomePreferenceController;
@@ -61,7 +61,7 @@ public class AdvancedAppSettings extends DashboardFragment {
        controllers.add(new DefaultSmsPreferenceController(context));
        controllers.add(new DefaultEmergencyPreferenceController(context));
        controllers.add(new DefaultHomePreferenceController(context));
        controllers.add(new DefaultAutoFillPreferenceController(context));
        controllers.add(new DefaultAutofillPreferenceController(context));
        return controllers;
    }

+37 −10
Original line number Diff line number Diff line
@@ -23,7 +23,8 @@ import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
import android.provider.Settings;
import android.service.autofill.AutoFillService;
import android.service.autofill.AutoFillServiceInfo;
import android.service.autofill.AutofillService;
import android.service.autofill.AutofillServiceInfo;
import android.text.TextUtils;

import com.android.internal.logging.nano.MetricsProto;
@@ -32,10 +33,12 @@ import com.android.settings.R;
import java.util.ArrayList;
import java.util.List;

public class DefaultAutoFillPicker extends DefaultAppPickerFragment {
public class DefaultAutofillPicker extends DefaultAppPickerFragment {

    static final String SETTING = Settings.Secure.AUTO_FILL_SERVICE;
    static final Intent AUTO_FILL_PROBE = new Intent(AutoFillService.SERVICE_INTERFACE);
    static final String SETTING = Settings.Secure.AUTOFILL_SERVICE;
    // TODO(b/35956626): remove once clients migrated
    static final Intent OLD_AUTO_FILL_PROBE = new Intent(AutoFillService.OLD_SERVICE_INTERFACE);
    static final Intent AUTOFILL_PROBE = new Intent(AutofillService.SERVICE_INTERFACE);

    @Override
    public int getMetricsCategory() {
@@ -51,11 +54,17 @@ public class DefaultAutoFillPicker extends DefaultAppPickerFragment {
    protected List<DefaultAppInfo> getCandidates() {
        final List<DefaultAppInfo> candidates = new ArrayList<>();
        final List<ResolveInfo> resolveInfos = mPm.getPackageManager()
                .queryIntentServices(AUTO_FILL_PROBE, PackageManager.GET_META_DATA);
                .queryIntentServices(AUTOFILL_PROBE, PackageManager.GET_META_DATA);
        for (ResolveInfo info : resolveInfos) {
            candidates.add(new DefaultAppInfo(mUserId, new ComponentName(
                    info.serviceInfo.packageName, info.serviceInfo.name)));
        }
        final List<ResolveInfo> oldResolveInfos = mPm.getPackageManager()
                .queryIntentServices(OLD_AUTO_FILL_PROBE, PackageManager.GET_META_DATA);
        for (ResolveInfo info : oldResolveInfos) {
            candidates.add(new DefaultAppInfo(mUserId, new ComponentName(
                    info.serviceInfo.packageName, info.serviceInfo.name)));
        }
        return candidates;
    }

@@ -82,13 +91,12 @@ public class DefaultAutoFillPicker extends DefaultAppPickerFragment {
    /**
     * Provides Intent to setting activity for the specified auto-fill service.
     */
    static final class AutoFillSettingIntentProvider
            implements SettingIntentProvider {
    static final class AutofillSettingIntentProvider implements SettingIntentProvider {

        private final String mSelectedKey;
        private final PackageManager mPackageManager;

        public AutoFillSettingIntentProvider(PackageManager packageManager, String key) {
        public AutofillSettingIntentProvider(PackageManager packageManager, String key) {
            mSelectedKey = key;
            mPackageManager = packageManager;
        }
@@ -96,14 +104,33 @@ public class DefaultAutoFillPicker extends DefaultAppPickerFragment {
        @Override
        public Intent getIntent() {
            final List<ResolveInfo> resolveInfos = mPackageManager.queryIntentServices(
                    AUTO_FILL_PROBE, PackageManager.GET_META_DATA);
                    AUTOFILL_PROBE, PackageManager.GET_META_DATA);

            for (ResolveInfo resolveInfo : resolveInfos) {
                final ServiceInfo serviceInfo = resolveInfo.serviceInfo;
                final String flattenKey = new ComponentName(
                        serviceInfo.packageName, serviceInfo.name).flattenToString();
                if (TextUtils.equals(mSelectedKey, flattenKey)) {
                    final String settingsActivity = new AutoFillServiceInfo(
                    final String settingsActivity = new AutofillServiceInfo(
                            mPackageManager, serviceInfo)
                            .getSettingsActivity();
                    if (TextUtils.isEmpty(settingsActivity)) {
                        return null;
                    }
                    return new Intent(Intent.ACTION_MAIN).setComponent(
                            new ComponentName(serviceInfo.packageName, settingsActivity));
                }
            }

            final List<ResolveInfo> oldResolveInfos = mPackageManager.queryIntentServices(
                    OLD_AUTO_FILL_PROBE, PackageManager.GET_META_DATA);

            for (ResolveInfo resolveInfo : oldResolveInfos) {
                final ServiceInfo serviceInfo = resolveInfo.serviceInfo;
                final String flattenKey = new ComponentName(
                        serviceInfo.packageName, serviceInfo.name).flattenToString();
                if (TextUtils.equals(mSelectedKey, flattenKey)) {
                    final String settingsActivity = new AutofillServiceInfo(
                            mPackageManager, serviceInfo)
                            .getSettingsActivity();
                    if (TextUtils.isEmpty(settingsActivity)) {
+5 −5
Original line number Diff line number Diff line
@@ -22,9 +22,9 @@ import android.content.Intent;
import android.provider.Settings;
import android.text.TextUtils;

public class DefaultAutoFillPreferenceController extends DefaultAppPreferenceController {
public class DefaultAutofillPreferenceController extends DefaultAppPreferenceController {

    public DefaultAutoFillPreferenceController(Context context) {
    public DefaultAutofillPreferenceController(Context context) {
        super(context);
    }

@@ -43,8 +43,8 @@ public class DefaultAutoFillPreferenceController extends DefaultAppPreferenceCon
        if (info == null) {
            return null;
        }
        final DefaultAutoFillPicker.AutoFillSettingIntentProvider intentProvider =
                new DefaultAutoFillPicker.AutoFillSettingIntentProvider(
        final DefaultAutofillPicker.AutofillSettingIntentProvider intentProvider =
                new DefaultAutofillPicker.AutofillSettingIntentProvider(
                        mPackageManager.getPackageManager(), info.getKey());
        return intentProvider.getIntent();
    }
@@ -52,7 +52,7 @@ public class DefaultAutoFillPreferenceController extends DefaultAppPreferenceCon
    @Override
    protected DefaultAppInfo getDefaultAppInfo() {
        final String flattenComponent = Settings.Secure.getString(mContext.getContentResolver(),
                DefaultAutoFillPicker.SETTING);
                DefaultAutofillPicker.SETTING);
        if (!TextUtils.isEmpty(flattenComponent)) {
            DefaultAppInfo appInfo = new DefaultAppInfo(
                    mUserId, ComponentName.unflattenFromString(flattenComponent));
+3 −3
Original line number Diff line number Diff line
@@ -46,7 +46,7 @@ import static org.mockito.Mockito.when;

@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class DefaultAutoFillPickerTest {
public class DefaultAutofillPickerTest {

    private static final String TEST_APP_KEY = "123";

@@ -56,14 +56,14 @@ public class DefaultAutoFillPickerTest {
    private UserManager mUserManager;
    @Mock
    private PackageManagerWrapper mPackageManager;
    private DefaultAutoFillPicker mPicker;
    private DefaultAutofillPicker mPicker;

    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        FakeFeatureFactory.setupForTest(mActivity);
        when(mActivity.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
        mPicker = spy(new DefaultAutoFillPicker());
        mPicker = spy(new DefaultAutofillPicker());
        mPicker.onAttach((Context) mActivity);

        ReflectionHelpers.setField(mPicker, "mPm", mPackageManager);
Loading