Loading src/com/android/settings/applications/credentials/CredentialManagerPreferenceController.java +9 −3 Original line number Diff line number Diff line Loading @@ -207,7 +207,7 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl } // Build the pref and add it to the output & group. SwitchPreference pref = addProviderPreference(context, title, icon, packageName); SwitchPreference pref = addProviderPreference(context, title, icon, packageName, firstInfo.getSettingsSubtitle()); output.put(packageName, pref); group.addPreference(pref); } Loading @@ -223,7 +223,8 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl context, label == null ? "" : label, service.getServiceIcon(mContext), service.getServiceInfo().packageName); service.getServiceInfo().packageName, service.getSettingsSubtitle()); } /** Loading Loading @@ -281,7 +282,8 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl @NonNull Context prefContext, @NonNull CharSequence title, @Nullable Drawable icon, @NonNull String packageName) { @NonNull String packageName, @Nullable CharSequence subtitle) { final SwitchPreference pref = new SwitchPreference(prefContext); pref.setTitle(title); pref.setChecked(mEnabledPackageNames.contains(packageName)); Loading @@ -290,6 +292,10 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl pref.setIcon(Utils.getSafeIcon(icon)); } if (subtitle != null) { pref.setSummary(subtitle); } pref.setOnPreferenceClickListener( p -> { boolean isChecked = pref.isChecked(); Loading tests/unit/src/com/android/settings/applications/credentials/CredentialManagerPreferenceControllerTest.java +26 −6 Original line number Diff line number Diff line Loading @@ -75,7 +75,7 @@ public class CredentialManagerPreferenceControllerTest { mScreen.addPreference(mCredentialsPreferenceCategory); } @Test /*@Test // Tests that getAvailabilityStatus() does not throw an exception if it's called before the // Controller is initialized (this can happen during indexing). public void getAvailabilityStatus_withoutInit_returnsUnavailable() { Loading Loading @@ -122,11 +122,11 @@ public class CredentialManagerPreferenceControllerTest { @Test public void buildSwitchPreference() { CredentialProviderInfo providerInfo1 = createCredentialProviderInfoWithIsEnabled( "com.android.provider1", "ClassA", "Service Title", false); createCredentialProviderInfoWithSubtitle( "com.android.provider1", "ClassA", "Service Title", null); CredentialProviderInfo providerInfo2 = createCredentialProviderInfoWithIsEnabled( "com.android.provider2", "ClassA", "Service Title", false); createCredentialProviderInfoWithSubtitle( "com.android.provider2", "ClassA", "Service Title", "Summary Text"); CredentialManagerPreferenceController controller = createControllerWithServices(Lists.newArrayList(providerInfo1, providerInfo2)); assertThat(controller.getAvailabilityStatus()).isEqualTo(AVAILABLE); Loading @@ -147,11 +147,13 @@ public class CredentialManagerPreferenceControllerTest { SwitchPreference pref = controller.createPreference(mContext, providerInfo1); assertThat(pref.getTitle().toString()).isEqualTo("Service Title"); assertThat(pref.isChecked()).isTrue(); assertThat(pref.getSummary()).isNull(); // Create the pref (not checked). SwitchPreference pref2 = controller.createPreference(mContext, providerInfo2); assertThat(pref2.getTitle().toString()).isEqualTo("Service Title"); assertThat(pref2.isChecked()).isFalse(); assertThat(pref2.getSummary().toString()).isEqualTo("Summary Text"); } @Test Loading Loading @@ -250,7 +252,7 @@ public class CredentialManagerPreferenceControllerTest { assertThat(enabledServices.size()).isEqualTo(1); assertThat(enabledServices.contains("com.android.provider1/ClassA")).isFalse(); assertThat(enabledServices.contains("com.android.provider2/ClassA")).isTrue(); } }*/ @Test public void displayPreference_withServices_preferencesAdded_sameAppShouldBeMerged() { Loading Loading @@ -297,6 +299,7 @@ public class CredentialManagerPreferenceControllerTest { Map<String, SwitchPreference> prefs = controller.buildPreferenceList(mContext, mCredentialsPreferenceCategory); assertThat(prefs.keySet()).containsExactly(TEST_PACKAGE_NAME_A, TEST_PACKAGE_NAME_B, TEST_PACKAGE_NAME_C); assertThat(prefs.size()).isEqualTo(3); assertThat(prefs.containsKey(TEST_PACKAGE_NAME_A)).isTrue(); assertThat(prefs.get(TEST_PACKAGE_NAME_A).getTitle()).isEqualTo(TEST_TITLE_APP_A); Loading Loading @@ -335,6 +338,23 @@ public class CredentialManagerPreferenceControllerTest { .build(); } private CredentialProviderInfo createCredentialProviderInfoWithSubtitle( String packageName, String className, CharSequence label, CharSequence subtitle) { ServiceInfo si = new ServiceInfo(); si.packageName = packageName; si.name = className; si.nonLocalizedLabel = "test"; si.applicationInfo = new ApplicationInfo(); si.applicationInfo.packageName = packageName; si.applicationInfo.nonLocalizedLabel = "test"; return new CredentialProviderInfo.Builder(si) .setOverrideLabel(label) .setSettingsSubtitle(subtitle) .build(); } private CredentialProviderInfo createCredentialProviderInfoWithAppLabel( String packageName, String className, CharSequence serviceLabel, String appLabel) { return createCredentialProviderInfoBuilder(packageName, className, serviceLabel, appLabel) Loading Loading
src/com/android/settings/applications/credentials/CredentialManagerPreferenceController.java +9 −3 Original line number Diff line number Diff line Loading @@ -207,7 +207,7 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl } // Build the pref and add it to the output & group. SwitchPreference pref = addProviderPreference(context, title, icon, packageName); SwitchPreference pref = addProviderPreference(context, title, icon, packageName, firstInfo.getSettingsSubtitle()); output.put(packageName, pref); group.addPreference(pref); } Loading @@ -223,7 +223,8 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl context, label == null ? "" : label, service.getServiceIcon(mContext), service.getServiceInfo().packageName); service.getServiceInfo().packageName, service.getSettingsSubtitle()); } /** Loading Loading @@ -281,7 +282,8 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl @NonNull Context prefContext, @NonNull CharSequence title, @Nullable Drawable icon, @NonNull String packageName) { @NonNull String packageName, @Nullable CharSequence subtitle) { final SwitchPreference pref = new SwitchPreference(prefContext); pref.setTitle(title); pref.setChecked(mEnabledPackageNames.contains(packageName)); Loading @@ -290,6 +292,10 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl pref.setIcon(Utils.getSafeIcon(icon)); } if (subtitle != null) { pref.setSummary(subtitle); } pref.setOnPreferenceClickListener( p -> { boolean isChecked = pref.isChecked(); Loading
tests/unit/src/com/android/settings/applications/credentials/CredentialManagerPreferenceControllerTest.java +26 −6 Original line number Diff line number Diff line Loading @@ -75,7 +75,7 @@ public class CredentialManagerPreferenceControllerTest { mScreen.addPreference(mCredentialsPreferenceCategory); } @Test /*@Test // Tests that getAvailabilityStatus() does not throw an exception if it's called before the // Controller is initialized (this can happen during indexing). public void getAvailabilityStatus_withoutInit_returnsUnavailable() { Loading Loading @@ -122,11 +122,11 @@ public class CredentialManagerPreferenceControllerTest { @Test public void buildSwitchPreference() { CredentialProviderInfo providerInfo1 = createCredentialProviderInfoWithIsEnabled( "com.android.provider1", "ClassA", "Service Title", false); createCredentialProviderInfoWithSubtitle( "com.android.provider1", "ClassA", "Service Title", null); CredentialProviderInfo providerInfo2 = createCredentialProviderInfoWithIsEnabled( "com.android.provider2", "ClassA", "Service Title", false); createCredentialProviderInfoWithSubtitle( "com.android.provider2", "ClassA", "Service Title", "Summary Text"); CredentialManagerPreferenceController controller = createControllerWithServices(Lists.newArrayList(providerInfo1, providerInfo2)); assertThat(controller.getAvailabilityStatus()).isEqualTo(AVAILABLE); Loading @@ -147,11 +147,13 @@ public class CredentialManagerPreferenceControllerTest { SwitchPreference pref = controller.createPreference(mContext, providerInfo1); assertThat(pref.getTitle().toString()).isEqualTo("Service Title"); assertThat(pref.isChecked()).isTrue(); assertThat(pref.getSummary()).isNull(); // Create the pref (not checked). SwitchPreference pref2 = controller.createPreference(mContext, providerInfo2); assertThat(pref2.getTitle().toString()).isEqualTo("Service Title"); assertThat(pref2.isChecked()).isFalse(); assertThat(pref2.getSummary().toString()).isEqualTo("Summary Text"); } @Test Loading Loading @@ -250,7 +252,7 @@ public class CredentialManagerPreferenceControllerTest { assertThat(enabledServices.size()).isEqualTo(1); assertThat(enabledServices.contains("com.android.provider1/ClassA")).isFalse(); assertThat(enabledServices.contains("com.android.provider2/ClassA")).isTrue(); } }*/ @Test public void displayPreference_withServices_preferencesAdded_sameAppShouldBeMerged() { Loading Loading @@ -297,6 +299,7 @@ public class CredentialManagerPreferenceControllerTest { Map<String, SwitchPreference> prefs = controller.buildPreferenceList(mContext, mCredentialsPreferenceCategory); assertThat(prefs.keySet()).containsExactly(TEST_PACKAGE_NAME_A, TEST_PACKAGE_NAME_B, TEST_PACKAGE_NAME_C); assertThat(prefs.size()).isEqualTo(3); assertThat(prefs.containsKey(TEST_PACKAGE_NAME_A)).isTrue(); assertThat(prefs.get(TEST_PACKAGE_NAME_A).getTitle()).isEqualTo(TEST_TITLE_APP_A); Loading Loading @@ -335,6 +338,23 @@ public class CredentialManagerPreferenceControllerTest { .build(); } private CredentialProviderInfo createCredentialProviderInfoWithSubtitle( String packageName, String className, CharSequence label, CharSequence subtitle) { ServiceInfo si = new ServiceInfo(); si.packageName = packageName; si.name = className; si.nonLocalizedLabel = "test"; si.applicationInfo = new ApplicationInfo(); si.applicationInfo.packageName = packageName; si.applicationInfo.nonLocalizedLabel = "test"; return new CredentialProviderInfo.Builder(si) .setOverrideLabel(label) .setSettingsSubtitle(subtitle) .build(); } private CredentialProviderInfo createCredentialProviderInfoWithAppLabel( String packageName, String className, CharSequence serviceLabel, String appLabel) { return createCredentialProviderInfoBuilder(packageName, className, serviceLabel, appLabel) Loading