Loading src/com/android/settings/fuelgauge/BatteryUtils.java +14 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; } Loading src/com/android/settings/fuelgauge/PowerUsageSummary.java +5 −4 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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)); Loading tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java +14 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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); Loading Loading
src/com/android/settings/fuelgauge/BatteryUtils.java +14 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; } Loading
src/com/android/settings/fuelgauge/PowerUsageSummary.java +5 −4 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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)); Loading
tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java +14 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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); Loading