Fix UI janky in privacy settings
Set a summary holder for initial preference at the biginning.
If there is no any permission granted, then set a string for it.
Test: Rebuild, visual
Fixes: 140783222
Change-Id: Ic5f2730123110bad5fbc08fcd22b1df564b8637d
diff --git a/res/xml/privacy_dashboard_settings.xml b/res/xml/privacy_dashboard_settings.xml
index 3ac6f42..c0c4840 100644
--- a/res/xml/privacy_dashboard_settings.xml
+++ b/res/xml/privacy_dashboard_settings.xml
@@ -50,6 +50,7 @@
<Preference
android:key="privacy_manage_perms"
android:title="@string/app_permissions"
+ android:summary="@string/summary_placeholder"
settings:allowDividerAbove="true"
settings:keywords="@string/keywords_app_permissions"
settings:controller="com.android.settings.applications.AppPermissionsPreferenceController">
diff --git a/src/com/android/settings/applications/AppPermissionsPreferenceController.java b/src/com/android/settings/applications/AppPermissionsPreferenceController.java
index 59341d5..0a3bba7 100644
--- a/src/com/android/settings/applications/AppPermissionsPreferenceController.java
+++ b/src/com/android/settings/applications/AppPermissionsPreferenceController.java
@@ -105,7 +105,7 @@
final CharSequence summary = !permissionsToShow.isEmpty()
? mContext.getString(R.string.app_permissions_summary,
ListFormatter.getInstance().format(permissionsToShow).toLowerCase())
- : null;
+ : mContext.getString(R.string.runtime_permissions_summary_no_permissions_granted);
mPreference.setSummary(summary);
}
}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/applications/AppPermissionsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/AppPermissionsPreferenceControllerTest.java
index 986c2c7..f0fdc9c 100644
--- a/tests/robotests/src/com/android/settings/applications/AppPermissionsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/AppPermissionsPreferenceControllerTest.java
@@ -31,6 +31,8 @@
import androidx.preference.Preference;
+import com.android.settings.R;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -70,14 +72,15 @@
}
@Test
- public void updateSummary_noGrantedPermission_shouldSetNullSummary() {
+ public void updateSummary_noGrantedPermission_shouldSetNoPermissionGrantedSummary() {
doNothing().when(mController).queryPermissionSummary();
mController.updateState(mPreference);
mController.mNumPackageChecked = 2;
mController.updateSummary(new ArrayList<>());
- assertThat(mPreference.getSummary()).isNull();
+ assertThat(mPreference.getSummary()).isEqualTo(
+ mContext.getString(R.string.runtime_permissions_summary_no_permissions_granted));
}
@Test