* commit '537a0a82351d9671d14dccde8c9fc2a45c3c4f3a': Fix issue #16555033: Battery history overflowing too much
This commit is contained in:
@@ -18,31 +18,27 @@ package com.android.settings.fuelgauge;
|
|||||||
|
|
||||||
import android.app.Fragment;
|
import android.app.Fragment;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.os.BatteryStats;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Parcel;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
import com.android.internal.os.BatteryStatsImpl;
|
import com.android.internal.os.BatteryStatsHelper;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
|
||||||
public class BatteryHistoryDetail extends Fragment {
|
public class BatteryHistoryDetail extends Fragment {
|
||||||
public static final String EXTRA_STATS = "stats";
|
public static final String EXTRA_STATS = "stats";
|
||||||
public static final String EXTRA_BROADCAST = "broadcast";
|
public static final String EXTRA_BROADCAST = "broadcast";
|
||||||
|
|
||||||
private BatteryStatsImpl mStats;
|
private BatteryStats mStats;
|
||||||
private Intent mBatteryBroadcast;
|
private Intent mBatteryBroadcast;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle icicle) {
|
public void onCreate(Bundle icicle) {
|
||||||
super.onCreate(icicle);
|
super.onCreate(icicle);
|
||||||
byte[] data = getArguments().getByteArray(EXTRA_STATS);
|
String histFile = getArguments().getString(EXTRA_STATS);
|
||||||
Parcel parcel = Parcel.obtain();
|
mStats = BatteryStatsHelper.statsFromFile(getActivity(), histFile);
|
||||||
parcel.unmarshall(data, 0, data.length);
|
|
||||||
parcel.setDataPosition(0);
|
|
||||||
mStats = com.android.internal.os.BatteryStatsImpl.CREATOR
|
|
||||||
.createFromParcel(parcel);
|
|
||||||
mBatteryBroadcast = getArguments().getParcelable(EXTRA_BROADCAST);
|
mBatteryBroadcast = getArguments().getParcelable(EXTRA_BROADCAST);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -47,8 +47,6 @@ public class BatteryHistoryPreference extends Preference {
|
|||||||
setLayoutResource(R.layout.preference_batteryhistory);
|
setLayoutResource(R.layout.preference_batteryhistory);
|
||||||
mStats = stats;
|
mStats = stats;
|
||||||
mBatteryBroadcast = batteryBroadcast;
|
mBatteryBroadcast = batteryBroadcast;
|
||||||
// Make it non selectable
|
|
||||||
setSelectable(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BatteryStats getStats() {
|
BatteryStats getStats() {
|
||||||
|
@@ -26,7 +26,6 @@ import android.os.BatteryStats;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
import android.os.Parcel;
|
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
import android.preference.Preference;
|
import android.preference.Preference;
|
||||||
@@ -46,8 +45,6 @@ import com.android.settings.R;
|
|||||||
import com.android.settings.SettingsActivity;
|
import com.android.settings.SettingsActivity;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collections;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Displays a list of apps and subsystems that consume power, ordered by how much power was
|
* Displays a list of apps and subsystems that consume power, ordered by how much power was
|
||||||
@@ -61,6 +58,8 @@ public class PowerUsageSummary extends PreferenceFragment {
|
|||||||
|
|
||||||
private static final String KEY_APP_LIST = "app_list";
|
private static final String KEY_APP_LIST = "app_list";
|
||||||
|
|
||||||
|
private static final String BATTERY_HISTORY_FILE = "tmp_bat_history.bin";
|
||||||
|
|
||||||
private static final int MENU_STATS_TYPE = Menu.FIRST;
|
private static final int MENU_STATS_TYPE = Menu.FIRST;
|
||||||
private static final int MENU_STATS_REFRESH = Menu.FIRST + 1;
|
private static final int MENU_STATS_REFRESH = Menu.FIRST + 1;
|
||||||
private static final int MENU_BATTERY_SAVER = Menu.FIRST + 2;
|
private static final int MENU_BATTERY_SAVER = Menu.FIRST + 2;
|
||||||
@@ -116,6 +115,7 @@ public class PowerUsageSummary extends PreferenceFragment {
|
|||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
|
BatteryStatsHelper.dropFile(getActivity(), BATTERY_HISTORY_FILE);
|
||||||
updateBatteryStatus(getActivity().registerReceiver(mBatteryInfoReceiver,
|
updateBatteryStatus(getActivity().registerReceiver(mBatteryInfoReceiver,
|
||||||
new IntentFilter(Intent.ACTION_BATTERY_CHANGED)));
|
new IntentFilter(Intent.ACTION_BATTERY_CHANGED)));
|
||||||
if (mHandler.hasMessages(MSG_REFRESH_STATS)) {
|
if (mHandler.hasMessages(MSG_REFRESH_STATS)) {
|
||||||
@@ -151,11 +151,9 @@ public class PowerUsageSummary extends PreferenceFragment {
|
|||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
|
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
|
||||||
if (preference instanceof BatteryHistoryPreference) {
|
if (preference instanceof BatteryHistoryPreference) {
|
||||||
Parcel hist = Parcel.obtain();
|
mStatsHelper.storeStatsHistoryInFile(BATTERY_HISTORY_FILE);
|
||||||
mStatsHelper.getStats().writeToParcelWithoutUids(hist, 0);
|
|
||||||
byte[] histData = hist.marshall();
|
|
||||||
Bundle args = new Bundle();
|
Bundle args = new Bundle();
|
||||||
args.putByteArray(BatteryHistoryDetail.EXTRA_STATS, histData);
|
args.putString(BatteryHistoryDetail.EXTRA_STATS, BATTERY_HISTORY_FILE);
|
||||||
args.putParcelable(BatteryHistoryDetail.EXTRA_BROADCAST,
|
args.putParcelable(BatteryHistoryDetail.EXTRA_BROADCAST,
|
||||||
mStatsHelper.getBatteryBroadcast());
|
mStatsHelper.getBatteryBroadcast());
|
||||||
SettingsActivity sa = (SettingsActivity) getActivity();
|
SettingsActivity sa = (SettingsActivity) getActivity();
|
||||||
|
Reference in New Issue
Block a user