Add method to calculate last full charge time

Bug: 38481300
Test: RunSettingsRoboTests
Change-Id: Icd551921f263352eb01d0c6ada62d277c8699507
This commit is contained in:
jackqdyulei
2017-05-25 15:26:03 -07:00
parent 141e442e26
commit de3bb7194d
3 changed files with 28 additions and 7 deletions

View File

@@ -261,6 +261,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;
}

View File

@@ -24,7 +24,6 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.content.Loader;
import android.content.res.TypedArray;
import android.content.res.Resources;
import android.database.Cursor;
import android.graphics.drawable.Drawable;
import android.net.Uri;
@@ -42,13 +41,11 @@ import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceGroup;
import android.text.TextUtils;
import android.text.format.DateUtils;
import android.text.format.Formatter;
import android.util.Log;
import android.util.SparseArray;
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;
@@ -490,12 +487,13 @@ public class PowerUsageSummary extends PowerUsageBase implements
BatteryInfo batteryInfo = getBatteryInfo(elapsedRealtimeUs, batteryBroadcast);
mBatteryHeaderPreferenceController.updateHeaderPreference(batteryInfo);
final long runningTime = mBatteryUtils.calculateRunningTimeBasedOnStatsType(mStatsHelper,
mStatsType);
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));

View File

@@ -305,6 +305,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);