Add method to calculate last full charge time
Bug: 38481300 Test: RunSettingsRoboTests Change-Id: Icd551921f263352eb01d0c6ada62d277c8699507
This commit is contained in:
@@ -27,6 +27,7 @@ import android.util.Log;
|
||||
import android.util.SparseLongArray;
|
||||
|
||||
import com.android.internal.os.BatterySipper;
|
||||
import com.android.internal.os.BatteryStatsHelper;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
@@ -228,6 +229,19 @@ public class BatteryUtils {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculate the time since last full charge, including the device off time
|
||||
*
|
||||
* @param batteryStatsHelper utility class that contains the data
|
||||
* @param currentTimeMs current wall time
|
||||
* @return time in millis
|
||||
*/
|
||||
public long calculateLastFullChargeTime(BatteryStatsHelper batteryStatsHelper,
|
||||
long currentTimeMs) {
|
||||
return currentTimeMs - batteryStatsHelper.getStats().getStartClockTime();
|
||||
|
||||
}
|
||||
|
||||
private long convertUsToMs(long timeUs) {
|
||||
return timeUs / 1000;
|
||||
}
|
||||
|
@@ -41,7 +41,6 @@ import android.util.TypedValue;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.internal.os.BatterySipper;
|
||||
@@ -415,11 +414,13 @@ public class PowerUsageSummary extends PowerUsageBase {
|
||||
final int dischargeAmount = USE_FAKE_DATA ? 5000
|
||||
: stats != null ? stats.getDischargeAmount(mStatsType) : 0;
|
||||
|
||||
final long runningTime = calculateRunningTimeBasedOnStatsType();
|
||||
final long lastFullChargeTime = mBatteryUtils.calculateLastFullChargeTime(mStatsHelper,
|
||||
System.currentTimeMillis());
|
||||
updateScreenPreference();
|
||||
updateLastFullChargePreference(runningTime);
|
||||
updateLastFullChargePreference(lastFullChargeTime);
|
||||
|
||||
final CharSequence timeSequence = Utils.formatElapsedTime(context, runningTime, false);
|
||||
final CharSequence timeSequence = Utils.formatElapsedTime(context, lastFullChargeTime,
|
||||
false);
|
||||
final int resId = mShowAllApps ? R.string.power_usage_list_summary_device
|
||||
: R.string.power_usage_list_summary;
|
||||
mAppListGroup.setTitle(TextUtils.expandTemplate(getText(resId), timeSequence));
|
||||
|
@@ -21,6 +21,7 @@ import android.os.Process;
|
||||
import android.text.format.DateUtils;
|
||||
|
||||
import com.android.internal.os.BatterySipper;
|
||||
import com.android.internal.os.BatteryStatsHelper;
|
||||
import com.android.settings.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.TestConfig;
|
||||
import com.android.settings.testutils.FakeFeatureFactory;
|
||||
@@ -68,6 +69,7 @@ public class BatteryUtilsTest {
|
||||
private static final long TIME_STATE_BACKGROUND = 6000 * UNIT;
|
||||
private static final long TIME_FOREGROUND_ACTIVITY_ZERO = 0;
|
||||
private static final long TIME_FOREGROUND_ACTIVITY = 100 * DateUtils.MINUTE_IN_MILLIS;
|
||||
private static final long TIME_SINCE_LAST_FULL_CHARGE_MS = 120 * 60 * 1000;
|
||||
|
||||
private static final int UID = 123;
|
||||
private static final long TIME_EXPECTED_FOREGROUND = 1500;
|
||||
@@ -100,6 +102,8 @@ public class BatteryUtilsTest {
|
||||
private BatterySipper mCellBatterySipper;
|
||||
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
|
||||
private Context mContext;
|
||||
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
|
||||
private BatteryStatsHelper mBatteryStatsHelper;
|
||||
private BatteryUtils mBatteryUtils;
|
||||
private FakeFeatureFactory mFeatureFactory;
|
||||
private PowerUsageFeatureProvider mProvider;
|
||||
@@ -291,6 +295,16 @@ public class BatteryUtilsTest {
|
||||
mScreenBatterySipper);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCalculateLastFullChargeTime() {
|
||||
final long currentTimeMs = System.currentTimeMillis();
|
||||
when(mBatteryStatsHelper.getStats().getStartClockTime()).thenReturn(
|
||||
currentTimeMs - TIME_SINCE_LAST_FULL_CHARGE_MS);
|
||||
|
||||
assertThat(mBatteryUtils.calculateLastFullChargeTime(
|
||||
mBatteryStatsHelper, currentTimeMs)).isEqualTo(TIME_SINCE_LAST_FULL_CHARGE_MS);
|
||||
}
|
||||
|
||||
private BatterySipper createTestSmearBatterySipper(long activityTime, double totalPowerMah,
|
||||
int uidCode, boolean isUidNull) {
|
||||
final BatterySipper sipper = mock(BatterySipper.class);
|
||||
|
Reference in New Issue
Block a user