summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author tmfang <tmfang@google.com> 2019-02-27 15:08:40 +0800
committer tmfang <tmfang@google.com> 2019-03-09 17:10:39 +0800
commitee7657f12df34e61a414288a25fe62715a9879b8 (patch)
tree6397a3f329caca872d70fae666a322f14a3d1def
parent7233ef9c09bc5f03898376cf6c0c028aae99c5d6 (diff)
Fix partically truncated problem for bar chart
- We fix height of detail view, so we see partially truncated when the text wraps to next line. For now, we set the height of detail view to wrap_content. And then we initilize title and detail view earlier so that we won't get a jankey problem. - We enlarge the max height of bar view so that we won't get truncated problem when user sets display and font size to largest. We will still see truncated problem in language, display size, font size combo. But we only optimize for majority use cases. Fixes: 126266231 Fixes: 126720230 Fixes: 126726034 Test: See bar chart in Settings app and Permission controller. Change-Id: I08965c715d868cee055b89c6d56930f3c2ae6714
-rw-r--r--packages/SettingsLib/BarChartPreference/res/layout/settings_bar_chart.xml2
-rw-r--r--packages/SettingsLib/BarChartPreference/res/values/styles.xml2
-rw-r--r--packages/SettingsLib/BarChartPreference/src/com/android/settingslib/widget/BarChartPreference.java10
3 files changed, 7 insertions, 7 deletions
diff --git a/packages/SettingsLib/BarChartPreference/res/layout/settings_bar_chart.xml b/packages/SettingsLib/BarChartPreference/res/layout/settings_bar_chart.xml
index b063e13bcc12..814246fc2698 100644
--- a/packages/SettingsLib/BarChartPreference/res/layout/settings_bar_chart.xml
+++ b/packages/SettingsLib/BarChartPreference/res/layout/settings_bar_chart.xml
@@ -66,7 +66,7 @@
android:id="@+id/bar_chart_details"
style="@android:style/Widget.DeviceDefault.Button.Borderless.Colored"
android:layout_width="wrap_content"
- android:layout_height="48dp"
+ android:layout_height="wrap_content"
android:gravity="center"/>
</LinearLayout>
diff --git a/packages/SettingsLib/BarChartPreference/res/values/styles.xml b/packages/SettingsLib/BarChartPreference/res/values/styles.xml
index 4876cb6e1f28..558792855628 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">226dp</item>
+ <item name="android:layout_height">250dp</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 1003c974deb3..20e0a3b20b8c 100644
--- a/packages/SettingsLib/BarChartPreference/src/com/android/settingslib/widget/BarChartPreference.java
+++ b/packages/SettingsLib/BarChartPreference/src/com/android/settingslib/widget/BarChartPreference.java
@@ -158,6 +158,11 @@ public class BarChartPreference extends Preference {
holder.setDividerAllowedAbove(true);
holder.setDividerAllowedBelow(true);
+ // We bind title and details early so that we can preserve the correct height for chart
+ // view.
+ bindChartTitleView(holder);
+ bindChartDetailsView(holder);
+
// If the state is loading, we just show a blank view.
if (mIsLoading) {
holder.itemView.setVisibility(View.INVISIBLE);
@@ -165,9 +170,6 @@ public class BarChartPreference extends Preference {
}
holder.itemView.setVisibility(View.VISIBLE);
- // We must show title of bar chart.
- bindChartTitleView(holder);
-
final BarViewInfo[] barViewInfos = mBarChartInfo.getBarViewInfos();
// If there is no any bar view, we just show an empty text.
if (barViewInfos == null || barViewInfos.length == 0) {
@@ -175,8 +177,6 @@ public class BarChartPreference extends Preference {
return;
}
setEmptyViewVisible(holder, false /* visible */);
-
- bindChartDetailsView(holder);
updateBarChart(holder);
}