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 android.util.SparseLongArray;
|
||||||
|
|
||||||
import com.android.internal.os.BatterySipper;
|
import com.android.internal.os.BatterySipper;
|
||||||
|
import com.android.internal.os.BatteryStatsHelper;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
|
|
||||||
import java.lang.annotation.Retention;
|
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) {
|
private long convertUsToMs(long timeUs) {
|
||||||
return timeUs / 1000;
|
return timeUs / 1000;
|
||||||
}
|
}
|
||||||
|
@@ -41,7 +41,6 @@ import android.util.TypedValue;
|
|||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuInflater;
|
import android.view.MenuInflater;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.widget.TextView;
|
|
||||||
|
|
||||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||||
import com.android.internal.os.BatterySipper;
|
import com.android.internal.os.BatterySipper;
|
||||||
@@ -415,11 +414,13 @@ public class PowerUsageSummary extends PowerUsageBase {
|
|||||||
final int dischargeAmount = USE_FAKE_DATA ? 5000
|
final int dischargeAmount = USE_FAKE_DATA ? 5000
|
||||||
: stats != null ? stats.getDischargeAmount(mStatsType) : 0;
|
: stats != null ? stats.getDischargeAmount(mStatsType) : 0;
|
||||||
|
|
||||||
final long runningTime = calculateRunningTimeBasedOnStatsType();
|
final long lastFullChargeTime = mBatteryUtils.calculateLastFullChargeTime(mStatsHelper,
|
||||||
|
System.currentTimeMillis());
|
||||||
updateScreenPreference();
|
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
|
final int resId = mShowAllApps ? R.string.power_usage_list_summary_device
|
||||||
: R.string.power_usage_list_summary;
|
: R.string.power_usage_list_summary;
|
||||||
mAppListGroup.setTitle(TextUtils.expandTemplate(getText(resId), timeSequence));
|
mAppListGroup.setTitle(TextUtils.expandTemplate(getText(resId), timeSequence));
|
||||||
|
@@ -21,6 +21,7 @@ import android.os.Process;
|
|||||||
import android.text.format.DateUtils;
|
import android.text.format.DateUtils;
|
||||||
|
|
||||||
import com.android.internal.os.BatterySipper;
|
import com.android.internal.os.BatterySipper;
|
||||||
|
import com.android.internal.os.BatteryStatsHelper;
|
||||||
import com.android.settings.SettingsRobolectricTestRunner;
|
import com.android.settings.SettingsRobolectricTestRunner;
|
||||||
import com.android.settings.TestConfig;
|
import com.android.settings.TestConfig;
|
||||||
import com.android.settings.testutils.FakeFeatureFactory;
|
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_STATE_BACKGROUND = 6000 * UNIT;
|
||||||
private static final long TIME_FOREGROUND_ACTIVITY_ZERO = 0;
|
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_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 int UID = 123;
|
||||||
private static final long TIME_EXPECTED_FOREGROUND = 1500;
|
private static final long TIME_EXPECTED_FOREGROUND = 1500;
|
||||||
@@ -100,6 +102,8 @@ public class BatteryUtilsTest {
|
|||||||
private BatterySipper mCellBatterySipper;
|
private BatterySipper mCellBatterySipper;
|
||||||
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
|
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
|
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
|
||||||
|
private BatteryStatsHelper mBatteryStatsHelper;
|
||||||
private BatteryUtils mBatteryUtils;
|
private BatteryUtils mBatteryUtils;
|
||||||
private FakeFeatureFactory mFeatureFactory;
|
private FakeFeatureFactory mFeatureFactory;
|
||||||
private PowerUsageFeatureProvider mProvider;
|
private PowerUsageFeatureProvider mProvider;
|
||||||
@@ -291,6 +295,16 @@ public class BatteryUtilsTest {
|
|||||||
mScreenBatterySipper);
|
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,
|
private BatterySipper createTestSmearBatterySipper(long activityTime, double totalPowerMah,
|
||||||
int uidCode, boolean isUidNull) {
|
int uidCode, boolean isUidNull) {
|
||||||
final BatterySipper sipper = mock(BatterySipper.class);
|
final BatterySipper sipper = mock(BatterySipper.class);
|
||||||
|
Reference in New Issue
Block a user