Merge "Replace the cached MotionEvent with getX() value to improve GC state" into sc-v2-dev
diff --git a/src/com/android/settings/fuelgauge/BatteryChartView.java b/src/com/android/settings/fuelgauge/BatteryChartView.java
index 7bc60b2..5336fd5 100644
--- a/src/com/android/settings/fuelgauge/BatteryChartView.java
+++ b/src/com/android/settings/fuelgauge/BatteryChartView.java
@@ -108,7 +108,7 @@
     Paint mTrapezoidCurvePaint = null;
     private TrapezoidSlot[] mTrapezoidSlots;
     // Records the location to calculate selected index.
-    private MotionEvent mTouchUpEvent;
+    private float mTouchUpEventX = Float.MIN_VALUE;
     private BatteryChartView.OnSelectListener mOnSelectListener;
 
     public BatteryChartView(Context context) {
@@ -255,20 +255,20 @@
         // Caches the location to calculate selected trapezoid index.
         final int action = event.getAction();
         if (action == MotionEvent.ACTION_UP) {
-            mTouchUpEvent = MotionEvent.obtain(event);
+            mTouchUpEventX = event.getX();
         } else if (action == MotionEvent.ACTION_CANCEL) {
-            mTouchUpEvent = null; // reset
+            mTouchUpEventX = Float.MIN_VALUE; // reset
         }
         return super.onTouchEvent(event);
     }
 
     @Override
     public void onClick(View view) {
-        if (mTouchUpEvent == null) {
+        if (mTouchUpEventX == Float.MIN_VALUE) {
             Log.w(TAG, "invalid motion event for onClick() callback");
             return;
         }
-        final int trapezoidIndex = getTrapezoidIndex(mTouchUpEvent.getX());
+        final int trapezoidIndex = getTrapezoidIndex(mTouchUpEventX);
         // Ignores the click event if the level is zero.
         if (trapezoidIndex == SELECTED_INDEX_INVALID
                 || !isValidToDraw(trapezoidIndex)) {