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

This commit is contained in:
TreeHugger Robot
2017-03-10 07:05:35 +00:00
committed by Android (Google) Code Review
6 changed files with 53 additions and 26 deletions

View File

@@ -67,7 +67,7 @@
android:key="default_autofill" android:key="default_autofill"
android:title="@string/autofill_app" android:title="@string/autofill_app"
android:summary="@string/app_list_preference_none" 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" settings:keywords="@string/autofill_keywords"
android:order="-14"/> android:order="-14"/>

View File

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

View File

@@ -23,7 +23,8 @@ import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo; import android.content.pm.ServiceInfo;
import android.provider.Settings; import android.provider.Settings;
import android.service.autofill.AutoFillService; 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 android.text.TextUtils;
import com.android.internal.logging.nano.MetricsProto; import com.android.internal.logging.nano.MetricsProto;
@@ -32,10 +33,12 @@ import com.android.settings.R;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; 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 String SETTING = Settings.Secure.AUTOFILL_SERVICE;
static final Intent AUTO_FILL_PROBE = new Intent(AutoFillService.SERVICE_INTERFACE); // 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 @Override
public int getMetricsCategory() { public int getMetricsCategory() {
@@ -51,11 +54,17 @@ public class DefaultAutoFillPicker extends DefaultAppPickerFragment {
protected List<DefaultAppInfo> getCandidates() { protected List<DefaultAppInfo> getCandidates() {
final List<DefaultAppInfo> candidates = new ArrayList<>(); final List<DefaultAppInfo> candidates = new ArrayList<>();
final List<ResolveInfo> resolveInfos = mPm.getPackageManager() 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) { for (ResolveInfo info : resolveInfos) {
candidates.add(new DefaultAppInfo(mUserId, new ComponentName( candidates.add(new DefaultAppInfo(mUserId, new ComponentName(
info.serviceInfo.packageName, info.serviceInfo.name))); 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; return candidates;
} }
@@ -82,13 +91,12 @@ public class DefaultAutoFillPicker extends DefaultAppPickerFragment {
/** /**
* Provides Intent to setting activity for the specified auto-fill service. * Provides Intent to setting activity for the specified auto-fill service.
*/ */
static final class AutoFillSettingIntentProvider static final class AutofillSettingIntentProvider implements SettingIntentProvider {
implements SettingIntentProvider {
private final String mSelectedKey; private final String mSelectedKey;
private final PackageManager mPackageManager; private final PackageManager mPackageManager;
public AutoFillSettingIntentProvider(PackageManager packageManager, String key) { public AutofillSettingIntentProvider(PackageManager packageManager, String key) {
mSelectedKey = key; mSelectedKey = key;
mPackageManager = packageManager; mPackageManager = packageManager;
} }
@@ -96,14 +104,33 @@ public class DefaultAutoFillPicker extends DefaultAppPickerFragment {
@Override @Override
public Intent getIntent() { public Intent getIntent() {
final List<ResolveInfo> resolveInfos = mPackageManager.queryIntentServices( final List<ResolveInfo> resolveInfos = mPackageManager.queryIntentServices(
AUTO_FILL_PROBE, PackageManager.GET_META_DATA); AUTOFILL_PROBE, PackageManager.GET_META_DATA);
for (ResolveInfo resolveInfo : resolveInfos) { for (ResolveInfo resolveInfo : resolveInfos) {
final ServiceInfo serviceInfo = resolveInfo.serviceInfo; final ServiceInfo serviceInfo = resolveInfo.serviceInfo;
final String flattenKey = new ComponentName( final String flattenKey = new ComponentName(
serviceInfo.packageName, serviceInfo.name).flattenToString(); serviceInfo.packageName, serviceInfo.name).flattenToString();
if (TextUtils.equals(mSelectedKey, flattenKey)) { 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) mPackageManager, serviceInfo)
.getSettingsActivity(); .getSettingsActivity();
if (TextUtils.isEmpty(settingsActivity)) { if (TextUtils.isEmpty(settingsActivity)) {

View File

@@ -22,9 +22,9 @@ import android.content.Intent;
import android.provider.Settings; import android.provider.Settings;
import android.text.TextUtils; import android.text.TextUtils;
public class DefaultAutoFillPreferenceController extends DefaultAppPreferenceController { public class DefaultAutofillPreferenceController extends DefaultAppPreferenceController {
public DefaultAutoFillPreferenceController(Context context) { public DefaultAutofillPreferenceController(Context context) {
super(context); super(context);
} }
@@ -43,8 +43,8 @@ public class DefaultAutoFillPreferenceController extends DefaultAppPreferenceCon
if (info == null) { if (info == null) {
return null; return null;
} }
final DefaultAutoFillPicker.AutoFillSettingIntentProvider intentProvider = final DefaultAutofillPicker.AutofillSettingIntentProvider intentProvider =
new DefaultAutoFillPicker.AutoFillSettingIntentProvider( new DefaultAutofillPicker.AutofillSettingIntentProvider(
mPackageManager.getPackageManager(), info.getKey()); mPackageManager.getPackageManager(), info.getKey());
return intentProvider.getIntent(); return intentProvider.getIntent();
} }
@@ -52,7 +52,7 @@ public class DefaultAutoFillPreferenceController extends DefaultAppPreferenceCon
@Override @Override
protected DefaultAppInfo getDefaultAppInfo() { protected DefaultAppInfo getDefaultAppInfo() {
final String flattenComponent = Settings.Secure.getString(mContext.getContentResolver(), final String flattenComponent = Settings.Secure.getString(mContext.getContentResolver(),
DefaultAutoFillPicker.SETTING); DefaultAutofillPicker.SETTING);
if (!TextUtils.isEmpty(flattenComponent)) { if (!TextUtils.isEmpty(flattenComponent)) {
DefaultAppInfo appInfo = new DefaultAppInfo( DefaultAppInfo appInfo = new DefaultAppInfo(
mUserId, ComponentName.unflattenFromString(flattenComponent)); mUserId, ComponentName.unflattenFromString(flattenComponent));

View File

@@ -46,7 +46,7 @@ import static org.mockito.Mockito.when;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class DefaultAutoFillPickerTest { public class DefaultAutofillPickerTest {
private static final String TEST_APP_KEY = "123"; private static final String TEST_APP_KEY = "123";
@@ -56,14 +56,14 @@ public class DefaultAutoFillPickerTest {
private UserManager mUserManager; private UserManager mUserManager;
@Mock @Mock
private PackageManagerWrapper mPackageManager; private PackageManagerWrapper mPackageManager;
private DefaultAutoFillPicker mPicker; private DefaultAutofillPicker mPicker;
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
FakeFeatureFactory.setupForTest(mActivity); FakeFeatureFactory.setupForTest(mActivity);
when(mActivity.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager); when(mActivity.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
mPicker = spy(new DefaultAutoFillPicker()); mPicker = spy(new DefaultAutofillPicker());
mPicker.onAttach((Context) mActivity); mPicker.onAttach((Context) mActivity);
ReflectionHelpers.setField(mPicker, "mPm", mPackageManager); ReflectionHelpers.setField(mPicker, "mPm", mPackageManager);

View File

@@ -45,7 +45,7 @@ import static org.mockito.Mockito.when;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class DefaultAutoFillPreferenceControllerTest { public class DefaultAutofillPreferenceControllerTest {
@Mock @Mock
private Context mContext; private Context mContext;
@@ -54,14 +54,14 @@ public class DefaultAutoFillPreferenceControllerTest {
@Mock(answer = Answers.RETURNS_DEEP_STUBS) @Mock(answer = Answers.RETURNS_DEEP_STUBS)
private PackageManagerWrapper mPackageManager; private PackageManagerWrapper mPackageManager;
private DefaultAutoFillPreferenceController mController; private DefaultAutofillPreferenceController mController;
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager); when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
mController = spy(new DefaultAutoFillPreferenceController(mContext)); mController = spy(new DefaultAutofillPreferenceController(mContext));
ReflectionHelpers.setField(mController, "mPackageManager", mPackageManager); ReflectionHelpers.setField(mController, "mPackageManager", mPackageManager);
} }
@@ -82,7 +82,7 @@ public class DefaultAutoFillPreferenceControllerTest {
public void getDefaultAppInfo_shouldHaveSettingsProvider() { public void getDefaultAppInfo_shouldHaveSettingsProvider() {
ReflectionHelpers.setField(mController, "mContext", RuntimeEnvironment.application); ReflectionHelpers.setField(mController, "mContext", RuntimeEnvironment.application);
Settings.Secure.putString(RuntimeEnvironment.application.getContentResolver(), Settings.Secure.putString(RuntimeEnvironment.application.getContentResolver(),
DefaultAutoFillPicker.SETTING, "com.android.settings/SettingsActivity.class"); DefaultAutofillPicker.SETTING, "com.android.settings/SettingsActivity.class");
final DefaultAppInfo info = mController.getDefaultAppInfo(); final DefaultAppInfo info = mController.getDefaultAppInfo();
@@ -91,6 +91,6 @@ public class DefaultAutoFillPreferenceControllerTest {
mController.getSettingIntent(info); mController.getSettingIntent(info);
verify(mPackageManager.getPackageManager()).queryIntentServices( verify(mPackageManager.getPackageManager()).queryIntentServices(
DefaultAutoFillPicker.AUTO_FILL_PROBE, PackageManager.GET_META_DATA); DefaultAutofillPicker.AUTOFILL_PROBE, PackageManager.GET_META_DATA);
} }
} }