Merge "Add quickUpdate method to BatteryHeaderPrefCtrl" into oc-dr1-dev am: 7ea8ecdae1

am: fc55a3cef1

Change-Id: I7d23a1bab37417064a1ffc358f9856d711426c19
This commit is contained in:
jackqdyulei
2017-06-28 17:20:04 +00:00
committed by android-build-merger
4 changed files with 47 additions and 12 deletions

View File

@@ -21,6 +21,7 @@ import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.BatteryManager;
import android.support.annotation.VisibleForTesting;
import android.support.v14.preference.PreferenceFragment;
import android.support.v7.preference.PreferenceScreen;
@@ -47,7 +48,7 @@ public class BatteryHeaderPreferenceController extends AbstractPreferenceControl
@VisibleForTesting
BatteryMeterView mBatteryMeterView;
@VisibleForTesting
TextView mTimeText;
TextView mBatteryPercentText;
@VisibleForTesting
TextView mSummary1;
@VisibleForTesting
@@ -76,16 +77,11 @@ public class BatteryHeaderPreferenceController extends AbstractPreferenceControl
mBatteryLayoutPref = (LayoutPreference) screen.findPreference(KEY_BATTERY_HEADER);
mBatteryMeterView = (BatteryMeterView) mBatteryLayoutPref
.findViewById(R.id.battery_header_icon);
mTimeText = mBatteryLayoutPref.findViewById(R.id.battery_percent);
mBatteryPercentText = mBatteryLayoutPref.findViewById(R.id.battery_percent);
mSummary1 = mBatteryLayoutPref.findViewById(R.id.summary1);
mSummary2 = mBatteryLayoutPref.findViewById(R.id.summary2);
Intent batteryBroadcast = mContext.registerReceiver(null,
new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
final int batteryLevel = Utils.getBatteryLevel(batteryBroadcast);
mBatteryMeterView.setBatteryLevel(batteryLevel);
mTimeText.setText(Utils.formatPercentage(batteryLevel));
quickUpdateHeaderPreference();
}
@Override
@@ -107,7 +103,7 @@ public class BatteryHeaderPreferenceController extends AbstractPreferenceControl
}
public void updateHeaderPreference(BatteryInfo info) {
mTimeText.setText(Utils.formatPercentage(info.batteryLevel));
mBatteryPercentText.setText(Utils.formatPercentage(info.batteryLevel));
if (info.remainingLabel == null) {
mSummary1.setText(info.statusLabel);
} else {
@@ -120,4 +116,21 @@ public class BatteryHeaderPreferenceController extends AbstractPreferenceControl
mBatteryMeterView.setBatteryLevel(info.batteryLevel);
mBatteryMeterView.setCharging(!info.discharging);
}
public void quickUpdateHeaderPreference() {
Intent batteryBroadcast = mContext.registerReceiver(null,
new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
final int batteryLevel = Utils.getBatteryLevel(batteryBroadcast);
final boolean discharging =
batteryBroadcast.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1) == 0;
// Set battery level and charging status
mBatteryMeterView.setBatteryLevel(batteryLevel);
mBatteryMeterView.setCharging(!discharging);
mBatteryPercentText.setText(Utils.formatPercentage(batteryLevel));
// clear all the summaries
mSummary1.setText("");
mSummary2.setText("");
}
}

View File

@@ -78,6 +78,11 @@ public class BatteryMeterView extends ImageView {
public void setCharging(boolean charging) {
mDrawable.setCharging(charging);
postInvalidate();
}
public boolean getCharging() {
return mDrawable.getCharging();
}
public static class BatteryMeterDrawable extends BatteryMeterDrawableBase {

View File

@@ -848,6 +848,12 @@ public class PowerUsageSummary extends PowerUsageBase implements
performBatteryHeaderClick();
}
@Override
protected void restartBatteryStatsLoader() {
super.restartBatteryStatsLoader();
mBatteryHeaderPreferenceController.quickUpdateHeaderPreference();
}
private static class SummaryProvider implements SummaryLoader.SummaryProvider {
private final Context mContext;
private final SummaryLoader mLoader;