am 0171fdba
: Merge "Fix issue #15185822: Stability: ArithmeticException: divide by zero" into lmp-preview-dev
* commit '0171fdba7bd9b5acdcf0d32ffa12e07c69045a5d': Fix issue #15185822: Stability: ArithmeticException: divide by zero
This commit is contained in:
@@ -661,6 +661,13 @@ public class BatteryHistoryChart extends View {
|
||||
return;
|
||||
}
|
||||
|
||||
if (mLastWidth == 0 || mLastHeight == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
mLastWidth = w;
|
||||
mLastHeight = h;
|
||||
|
||||
int textHeight = mTextDescent - mTextAscent;
|
||||
int headerTextHeight = mHeaderTextDescent - mHeaderTextAscent;
|
||||
if (h > (textHeight*12)) {
|
||||
@@ -736,11 +743,18 @@ public class BatteryHistoryChart extends View {
|
||||
mCpuRunningPath.reset();
|
||||
mChargingPath.reset();
|
||||
|
||||
mTimeLabels.clear();
|
||||
mDateLabels.clear();
|
||||
|
||||
final long walltimeStart = mStartWallTime;
|
||||
final long walltimeChange = mEndWallTime-walltimeStart;
|
||||
long curWalltime = 0;
|
||||
long lastRealtime = 0;
|
||||
|
||||
if (walltimeChange == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
final int batLow = mBatLow;
|
||||
final int batChange = mBatHigh-mBatLow;
|
||||
|
||||
@@ -924,7 +938,6 @@ public class BatteryHistoryChart extends View {
|
||||
}
|
||||
|
||||
// Create the time labels at the bottom.
|
||||
mTimeLabels.clear();
|
||||
boolean is24hr = is24Hour();
|
||||
Calendar calStart = Calendar.getInstance();
|
||||
calStart.setTimeInMillis(mStartWallTime);
|
||||
@@ -957,7 +970,6 @@ public class BatteryHistoryChart extends View {
|
||||
}
|
||||
|
||||
// Create the date labels if the chart includes multiple days
|
||||
mDateLabels.clear();
|
||||
if (calStart.get(Calendar.DAY_OF_YEAR) != calEnd.get(Calendar.DAY_OF_YEAR) ||
|
||||
calStart.get(Calendar.YEAR) != calEnd.get(Calendar.YEAR)) {
|
||||
boolean isDayFirst = isDayFirst();
|
||||
|
@@ -82,8 +82,9 @@ public class PowerUsageSummary extends PreferenceFragment {
|
||||
String action = intent.getAction();
|
||||
if (Intent.ACTION_BATTERY_CHANGED.equals(action)
|
||||
&& updateBatteryStatus(intent)) {
|
||||
mStatsHelper.clearStats();
|
||||
refreshStats();
|
||||
if (!mHandler.hasMessages(MSG_REFRESH_STATS)) {
|
||||
mHandler.sendEmptyMessageDelayed(MSG_REFRESH_STATS, 500);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -110,6 +111,10 @@ public class PowerUsageSummary extends PreferenceFragment {
|
||||
super.onResume();
|
||||
updateBatteryStatus(getActivity().registerReceiver(mBatteryInfoReceiver,
|
||||
new IntentFilter(Intent.ACTION_BATTERY_CHANGED)));
|
||||
if (mHandler.hasMessages(MSG_REFRESH_STATS)) {
|
||||
mHandler.removeMessages(MSG_REFRESH_STATS);
|
||||
mStatsHelper.clearStats();
|
||||
}
|
||||
refreshStats();
|
||||
}
|
||||
|
||||
@@ -121,6 +126,12 @@ public class PowerUsageSummary extends PreferenceFragment {
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStop() {
|
||||
super.onStop();
|
||||
mHandler.removeMessages(MSG_REFRESH_STATS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
@@ -189,6 +200,7 @@ public class PowerUsageSummary extends PreferenceFragment {
|
||||
case MENU_STATS_REFRESH:
|
||||
mStatsHelper.clearStats();
|
||||
refreshStats();
|
||||
mHandler.removeMessages(MSG_REFRESH_STATS);
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
@@ -258,6 +270,8 @@ public class PowerUsageSummary extends PreferenceFragment {
|
||||
BatteryEntry.startRequestQueue();
|
||||
}
|
||||
|
||||
static final int MSG_REFRESH_STATS = 100;
|
||||
|
||||
Handler mHandler = new Handler() {
|
||||
|
||||
@Override
|
||||
@@ -279,6 +293,9 @@ public class PowerUsageSummary extends PreferenceFragment {
|
||||
activity.reportFullyDrawn();
|
||||
}
|
||||
break;
|
||||
case MSG_REFRESH_STATS:
|
||||
mStatsHelper.clearStats();
|
||||
refreshStats();
|
||||
}
|
||||
super.handleMessage(msg);
|
||||
}
|
||||
|
Reference in New Issue
Block a user