summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/fuelgauge/BatteryHistoryPreference.java
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2014-07-10 10:40:58 -0700
committerDianne Hackborn <hackbod@google.com>2014-07-17 12:09:54 -0700
commitc19eb361a407058b76cbbc866106db9fc81d9596 (patch)
treec0cf67dd6a7364376e1ff0b94da2fb1f52b9baca /src/com/android/settings/fuelgauge/BatteryHistoryPreference.java
parent5427b9a7990d408df1f2231ec649501f848f7d3d (diff)
downloadpackages_apps_Settings-c19eb361a407058b76cbbc866106db9fc81d9596.zip
packages_apps_Settings-c19eb361a407058b76cbbc866106db9fc81d9596.tar.gz
packages_apps_Settings-c19eb361a407058b76cbbc866106db9fc81d9596.tar.bz2
Battery chart fixes.
When there is no data to show, don't make a crazy collapsed chart. Also avoid re-creating the chart when scrolling. And fix various other things. Change-Id: Ia1895bc7c46e6d830e66f66e66f17726e1e23e3f
Diffstat (limited to 'src/com/android/settings/fuelgauge/BatteryHistoryPreference.java')
-rw-r--r--src/com/android/settings/fuelgauge/BatteryHistoryPreference.java18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/com/android/settings/fuelgauge/BatteryHistoryPreference.java b/src/com/android/settings/fuelgauge/BatteryHistoryPreference.java
index fd7d87a..e7326b1 100644
--- a/src/com/android/settings/fuelgauge/BatteryHistoryPreference.java
+++ b/src/com/android/settings/fuelgauge/BatteryHistoryPreference.java
@@ -22,6 +22,7 @@ import android.graphics.drawable.Drawable;
import android.os.BatteryStats;
import android.preference.Preference;
import android.view.View;
+import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
@@ -39,6 +40,7 @@ public class BatteryHistoryPreference extends Preference {
private boolean mHideLabels;
private View mLabelHeader;
+ private BatteryHistoryChart mChart;
public BatteryHistoryPreference(Context context, BatteryStats stats, Intent batteryBroadcast) {
super(context);
@@ -66,7 +68,21 @@ public class BatteryHistoryPreference extends Preference {
BatteryHistoryChart chart = (BatteryHistoryChart)view.findViewById(
R.id.battery_history_chart);
- chart.setStats(mStats, mBatteryBroadcast);
+ if (mChart == null) {
+ // First time: use and initialize this chart.
+ chart.setStats(mStats, mBatteryBroadcast);
+ mChart = chart;
+ } else {
+ // All future times: forget the newly inflated chart, re-use the
+ // already initialized chart from last time.
+ ViewGroup parent = (ViewGroup)chart.getParent();
+ int index = parent.indexOfChild(chart);
+ parent.removeViewAt(index);
+ if (mChart.getParent() != null) {
+ ((ViewGroup)mChart.getParent()).removeView(mChart);
+ }
+ parent.addView(mChart, index);
+ }
mLabelHeader = view.findViewById(R.id.labelsHeader);
mLabelHeader.setVisibility(mHideLabels ? View.GONE : View.VISIBLE);
}