Move some battery stuff to SettingsLib
So that it can be used in the battery detail panel Change-Id: I31eac974d29838726450940109b52d458f29c192
This commit is contained in:
@@ -26,7 +26,6 @@ import android.graphics.DashPathEffect;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.Path;
|
||||
import android.graphics.Typeface;
|
||||
import android.os.BatteryManager;
|
||||
import android.os.BatteryStats;
|
||||
import android.os.BatteryStats.HistoryItem;
|
||||
import android.os.SystemClock;
|
||||
@@ -39,10 +38,9 @@ import android.util.Log;
|
||||
import android.util.TimeUtils;
|
||||
import android.util.TypedValue;
|
||||
import android.view.View;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.Utils;
|
||||
|
||||
import com.android.settingslib.BatteryInfo;
|
||||
import libcore.icu.LocaleData;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -509,7 +507,8 @@ public class BatteryHistoryChart extends View {
|
||||
|
||||
mMaxPercentLabelString = Utils.formatPercentage(100);
|
||||
mMinPercentLabelString = Utils.formatPercentage(0);
|
||||
mInfo = getBatteryInfo(getContext(), mBatteryBroadcast, mStats, elapsedRealtimeUs);
|
||||
mInfo = BatteryInfo.getBatteryInfo(getContext(), mBatteryBroadcast, mStats,
|
||||
elapsedRealtimeUs);
|
||||
mDrainString = "";
|
||||
mChargeDurationString = "";
|
||||
setContentDescription(mInfo.mChargeLabelString);
|
||||
@@ -1359,59 +1358,4 @@ public class BatteryHistoryChart extends View {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class BatteryInfo {
|
||||
public String mChargeLabelString;
|
||||
public int mBatteryLevel;
|
||||
public boolean mDischarging = true;
|
||||
public long remainingTimeUs = 0;
|
||||
}
|
||||
|
||||
public static BatteryInfo getBatteryInfo(Context context, Intent batteryBroadcast,
|
||||
BatteryStats stats, long elapsedRealtimeUs) {
|
||||
BatteryInfo info = new BatteryInfo();
|
||||
info.mBatteryLevel = com.android.settings.Utils.getBatteryLevel(batteryBroadcast);
|
||||
String batteryPercentString = Utils.formatPercentage(info.mBatteryLevel);
|
||||
if (batteryBroadcast.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0) == 0) {
|
||||
final long drainTime = stats.computeBatteryTimeRemaining(elapsedRealtimeUs);
|
||||
if (drainTime > 0) {
|
||||
info.remainingTimeUs = drainTime;
|
||||
String timeString = Formatter.formatShortElapsedTime(context,
|
||||
drainTime / 1000);
|
||||
info.mChargeLabelString = context.getResources().getString(
|
||||
R.string.power_discharging_duration, batteryPercentString, timeString);
|
||||
} else {
|
||||
info.mChargeLabelString = batteryPercentString;
|
||||
}
|
||||
} else {
|
||||
final long chargeTime = stats.computeChargeTimeRemaining(elapsedRealtimeUs);
|
||||
final String statusLabel = com.android.settings.Utils.getBatteryStatus(
|
||||
context.getResources(), batteryBroadcast);
|
||||
final int status = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_STATUS,
|
||||
BatteryManager.BATTERY_STATUS_UNKNOWN);
|
||||
if (chargeTime > 0 && status != BatteryManager.BATTERY_STATUS_FULL) {
|
||||
info.mDischarging = false;
|
||||
info.remainingTimeUs = chargeTime;
|
||||
String timeString = Formatter.formatShortElapsedTime(context,
|
||||
chargeTime / 1000);
|
||||
int plugType = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0);
|
||||
int resId;
|
||||
if (plugType == BatteryManager.BATTERY_PLUGGED_AC) {
|
||||
resId = R.string.power_charging_duration_ac;
|
||||
} else if (plugType == BatteryManager.BATTERY_PLUGGED_USB) {
|
||||
resId = R.string.power_charging_duration_usb;
|
||||
} else if (plugType == BatteryManager.BATTERY_PLUGGED_WIRELESS) {
|
||||
resId = R.string.power_charging_duration_wireless;
|
||||
} else {
|
||||
resId = R.string.power_charging_duration;
|
||||
}
|
||||
info.mChargeLabelString = context.getResources().getString(
|
||||
resId, batteryPercentString, timeString);
|
||||
} else {
|
||||
info.mChargeLabelString = context.getResources().getString(
|
||||
R.string.power_charging, batteryPercentString, statusLabel);
|
||||
}
|
||||
}
|
||||
return info;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,17 +18,13 @@ package com.android.settings.fuelgauge;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.BatteryStats;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
import android.os.Process;
|
||||
import android.os.SystemClock;
|
||||
import android.os.UserHandle;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.PreferenceGroup;
|
||||
@@ -40,13 +36,13 @@ import android.view.MenuItem;
|
||||
import com.android.internal.logging.MetricsLogger;
|
||||
import com.android.internal.os.BatterySipper;
|
||||
import com.android.internal.os.BatterySipper.DrainType;
|
||||
import com.android.internal.os.BatteryStatsHelper;
|
||||
import com.android.internal.os.PowerProfile;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.Settings.HighPowerApplicationsActivity;
|
||||
import com.android.settings.SettingsActivity;
|
||||
import com.android.settings.applications.ManageApplications;
|
||||
import com.android.settings.dashboard.SummaryLoader;
|
||||
import com.android.settingslib.BatteryInfo;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
@@ -451,25 +447,12 @@ public class PowerUsageSummary extends PowerUsageBase {
|
||||
public void setListening(boolean listening) {
|
||||
if (listening) {
|
||||
// TODO: Listen.
|
||||
new AsyncTask<Void, Void, BatteryStats>() {
|
||||
BatteryInfo.getBatteryInfo(mContext, new BatteryInfo.Callback() {
|
||||
@Override
|
||||
protected BatteryStats doInBackground(Void... params) {
|
||||
BatteryStatsHelper statsHelper = new BatteryStatsHelper(mContext, true);
|
||||
statsHelper.create((Bundle) null);
|
||||
return statsHelper.getStats();
|
||||
public void onBatteryInfoLoaded(BatteryInfo info) {
|
||||
mLoader.setSummary(SummaryProvider.this, info.mChargeLabelString);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(BatteryStats batteryStats) {
|
||||
final long elapsedRealtimeUs = SystemClock.elapsedRealtime() * 1000;
|
||||
Intent batteryBroadcast = mContext.registerReceiver(null,
|
||||
new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
|
||||
BatteryHistoryChart.BatteryInfo batteryInfo = BatteryHistoryChart
|
||||
.getBatteryInfo(mContext, batteryBroadcast, batteryStats,
|
||||
elapsedRealtimeUs);
|
||||
mLoader.setSummary(SummaryProvider.this, batteryInfo.mChargeLabelString);
|
||||
}
|
||||
}.execute();
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user