diff options
author | Dianne Hackborn <hackbod@google.com> | 2014-07-10 10:40:58 -0700 |
---|---|---|
committer | Dianne Hackborn <hackbod@google.com> | 2014-07-17 12:09:54 -0700 |
commit | c19eb361a407058b76cbbc866106db9fc81d9596 (patch) | |
tree | c0cf67dd6a7364376e1ff0b94da2fb1f52b9baca /src/com/android/settings/fuelgauge/BatteryHistoryPreference.java | |
parent | 5427b9a7990d408df1f2231ec649501f848f7d3d (diff) | |
download | packages_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.java | 18 |
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); } |