summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author tmfang <tmfang@google.com> 2019-02-23 15:08:04 +0800
committer tmfang <tmfang@google.com> 2019-02-26 13:13:38 +0800
commitb052cfaf2639bab5a2cc922cb3ea6e5cf1b8dbfa (patch)
treef6b65f84fda6b26dd01c65d301b1314e0f9bf65b
parentb953577b2784bebfc47ca8ad31fa55f2ea9808d1 (diff)
Fix janky on permission bar chart
In old design, the height of bar view is wrap_content. So, it may have additional space after we normalized the height for each bar view. As a result, the button moves down when permission chart gets filled. For now, we fix the height which is max normalized height for bar view. So, it won't have additional space while widget is rendering the chart. Test: See bar chart in privacy settings and permission dashboard. Fixes: 123539793 Change-Id: Idb2619e21606248079715e055cb26ff366c71ad3
-rw-r--r--packages/SettingsLib/BarChartPreference/res/layout/settings_bar_view.xml3
-rw-r--r--packages/SettingsLib/BarChartPreference/res/values/styles.xml2
-rw-r--r--packages/SettingsLib/BarChartPreference/src/com/android/settingslib/widget/BarChartPreference.java3
-rw-r--r--packages/SettingsLib/BarChartPreference/src/com/android/settingslib/widget/BarView.java2
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/BarChartPreferenceTest.java6
5 files changed, 9 insertions, 7 deletions
diff --git a/packages/SettingsLib/BarChartPreference/res/layout/settings_bar_view.xml b/packages/SettingsLib/BarChartPreference/res/layout/settings_bar_view.xml
index b053317b9de1..4bc68b333cc6 100644
--- a/packages/SettingsLib/BarChartPreference/res/layout/settings_bar_view.xml
+++ b/packages/SettingsLib/BarChartPreference/res/layout/settings_bar_view.xml
@@ -25,8 +25,7 @@
<View
android:id="@+id/bar_view"
android:layout_width="8dp"
- android:layout_height="wrap_content"
- android:background="?android:attr/colorAccent"/>
+ android:layout_height="wrap_content"/>
<ImageView
android:id="@+id/icon_view"
diff --git a/packages/SettingsLib/BarChartPreference/res/values/styles.xml b/packages/SettingsLib/BarChartPreference/res/values/styles.xml
index 647d0800fe82..4876cb6e1f28 100644
--- a/packages/SettingsLib/BarChartPreference/res/values/styles.xml
+++ b/packages/SettingsLib/BarChartPreference/res/values/styles.xml
@@ -18,7 +18,7 @@
<resources>
<style name="BarViewStyle">
<item name="android:layout_width">0dp</item>
- <item name="android:layout_height">wrap_content</item>
+ <item name="android:layout_height">226dp</item>
<item name="android:layout_weight">1</item>
<item name="android:layout_marginStart">8dp</item>
<item name="android:layout_marginEnd">8dp</item>
diff --git a/packages/SettingsLib/BarChartPreference/src/com/android/settingslib/widget/BarChartPreference.java b/packages/SettingsLib/BarChartPreference/src/com/android/settingslib/widget/BarChartPreference.java
index 3b87fcabb3fc..1003c974deb3 100644
--- a/packages/SettingsLib/BarChartPreference/src/com/android/settingslib/widget/BarChartPreference.java
+++ b/packages/SettingsLib/BarChartPreference/src/com/android/settingslib/widget/BarChartPreference.java
@@ -160,8 +160,11 @@ public class BarChartPreference extends Preference {
// If the state is loading, we just show a blank view.
if (mIsLoading) {
+ holder.itemView.setVisibility(View.INVISIBLE);
return;
}
+ holder.itemView.setVisibility(View.VISIBLE);
+
// We must show title of bar chart.
bindChartTitleView(holder);
diff --git a/packages/SettingsLib/BarChartPreference/src/com/android/settingslib/widget/BarView.java b/packages/SettingsLib/BarChartPreference/src/com/android/settingslib/widget/BarView.java
index 6bf61ae70312..3ef0235940b1 100644
--- a/packages/SettingsLib/BarChartPreference/src/com/android/settingslib/widget/BarView.java
+++ b/packages/SettingsLib/BarChartPreference/src/com/android/settingslib/widget/BarView.java
@@ -89,7 +89,7 @@ public class BarView extends LinearLayout {
private void init() {
LayoutInflater.from(getContext()).inflate(R.layout.settings_bar_view, this);
setOrientation(LinearLayout.VERTICAL);
- setGravity(Gravity.CENTER);
+ setGravity(Gravity.CENTER | Gravity.BOTTOM);
mBarView = findViewById(R.id.bar_view);
mIcon = findViewById(R.id.icon_view);
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/BarChartPreferenceTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/BarChartPreferenceTest.java
index 1080cf49e551..3acca2a7ef75 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/BarChartPreferenceTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/BarChartPreferenceTest.java
@@ -305,7 +305,7 @@ public class BarChartPreferenceTest {
}
@Test
- public void onBindViewHolder_loadingStateIsTrue_shouldNotInitAnyView() {
+ public void onBindViewHolder_loadingStateIsTrue_shouldHideAllViews() {
final BarViewInfo viewInfo = new BarViewInfo(mIcon, 30 /* barNumber */, R.string.debug_app);
viewInfo.setClickListener(v -> {
});
@@ -317,8 +317,7 @@ public class BarChartPreferenceTest {
mPreference.onBindViewHolder(mHolder);
- assertThat(TextUtils.isEmpty(mTitleView.getText())).isTrue();
- assertThat(TextUtils.isEmpty(mDetailsView.getText())).isTrue();
+ assertThat(mHolder.itemView.getVisibility()).isEqualTo(View.INVISIBLE);
}
@Test
@@ -334,6 +333,7 @@ public class BarChartPreferenceTest {
mPreference.onBindViewHolder(mHolder);
+ assertThat(mHolder.itemView.getVisibility()).isEqualTo(View.VISIBLE);
assertThat(TextUtils.isEmpty(mTitleView.getText())).isFalse();
assertThat(TextUtils.isEmpty(mDetailsView.getText())).isFalse();
}