Loading src/com/android/settings/fuelgauge/BatteryInfo.java +15 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.os.BatteryStats.HistoryItem; import android.os.BatteryStatsManager; import android.os.BatteryUsageStats; import android.os.SystemClock; import android.provider.Settings; import android.text.format.Formatter; import android.util.Log; import android.util.SparseIntArray; Loading @@ -43,6 +44,7 @@ import com.android.settingslib.utils.StringUtil; public class BatteryInfo { private static final String TAG = "BatteryInfo"; private static final String GLOBAL_TIME_TO_FULL_MILLIS = "time_to_full_millis"; public CharSequence chargeLabel; public CharSequence remainingLabel; Loading Loading @@ -147,6 +149,12 @@ public class BatteryInfo { BatteryInfo.getBatteryInfo(context, callback, /* batteryUsageStats */ null, shortString); } static long getSettingsChargeTimeRemaining(final Context context) { return Settings.Global.getLong( context.getContentResolver(), GLOBAL_TIME_TO_FULL_MILLIS, -1); } public static void getBatteryInfo(final Context context, final Callback callback, @Nullable final BatteryUsageStats batteryUsageStats, boolean shortString) { Loading Loading @@ -276,6 +284,13 @@ public class BatteryInfo { BatteryUsageStats stats, BatteryInfo info, boolean compactStatus) { final Resources resources = context.getResources(); final long chargeTimeMs = stats.getChargeTimeRemainingMs(); if (getSettingsChargeTimeRemaining(context) != chargeTimeMs) { Settings.Global.putLong( context.getContentResolver(), GLOBAL_TIME_TO_FULL_MILLIS, chargeTimeMs); } final int status = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STATUS_UNKNOWN); info.discharging = false; Loading tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java +31 −0 Original line number Diff line number Diff line Loading @@ -229,6 +229,37 @@ public class BatteryInfoTest { assertThat(info.chargeLabel.toString()).contains(STATUS_CHARGING_PAUSED); } @Test public void testGetBatteryInfo_getChargeTimeRemaining_updateSettingsGlobal() { doReturn(TEST_CHARGE_TIME_REMAINING) .when(mBatteryUsageStats) .getChargeTimeRemainingMs(); BatteryInfo.getBatteryInfo(mContext, mChargingBatteryBroadcast, mBatteryUsageStats, MOCK_ESTIMATE, SystemClock.elapsedRealtime() * 1000, false /* shortString */); assertThat(BatteryInfo.getSettingsChargeTimeRemaining(mContext)).isEqualTo( TEST_CHARGE_TIME_REMAINING); } @Test public void testGetBatteryInfo_differentChargeTimeRemaining_updateSettingsGlobal() { doReturn(TEST_CHARGE_TIME_REMAINING) .when(mBatteryUsageStats) .getChargeTimeRemainingMs(); final long newTimeToFull = 300L; doReturn(newTimeToFull) .when(mBatteryUsageStats) .getChargeTimeRemainingMs(); BatteryInfo.getBatteryInfo(mContext, mChargingBatteryBroadcast, mBatteryUsageStats, MOCK_ESTIMATE, SystemClock.elapsedRealtime() * 1000, false /* shortString */); assertThat(BatteryInfo.getSettingsChargeTimeRemaining(mContext)).isEqualTo(newTimeToFull); } @Test public void testGetBatteryInfo_dockDefenderActive_updateChargeString() { doReturn(TEST_CHARGE_TIME_REMAINING / 1000) Loading Loading
src/com/android/settings/fuelgauge/BatteryInfo.java +15 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.os.BatteryStats.HistoryItem; import android.os.BatteryStatsManager; import android.os.BatteryUsageStats; import android.os.SystemClock; import android.provider.Settings; import android.text.format.Formatter; import android.util.Log; import android.util.SparseIntArray; Loading @@ -43,6 +44,7 @@ import com.android.settingslib.utils.StringUtil; public class BatteryInfo { private static final String TAG = "BatteryInfo"; private static final String GLOBAL_TIME_TO_FULL_MILLIS = "time_to_full_millis"; public CharSequence chargeLabel; public CharSequence remainingLabel; Loading Loading @@ -147,6 +149,12 @@ public class BatteryInfo { BatteryInfo.getBatteryInfo(context, callback, /* batteryUsageStats */ null, shortString); } static long getSettingsChargeTimeRemaining(final Context context) { return Settings.Global.getLong( context.getContentResolver(), GLOBAL_TIME_TO_FULL_MILLIS, -1); } public static void getBatteryInfo(final Context context, final Callback callback, @Nullable final BatteryUsageStats batteryUsageStats, boolean shortString) { Loading Loading @@ -276,6 +284,13 @@ public class BatteryInfo { BatteryUsageStats stats, BatteryInfo info, boolean compactStatus) { final Resources resources = context.getResources(); final long chargeTimeMs = stats.getChargeTimeRemainingMs(); if (getSettingsChargeTimeRemaining(context) != chargeTimeMs) { Settings.Global.putLong( context.getContentResolver(), GLOBAL_TIME_TO_FULL_MILLIS, chargeTimeMs); } final int status = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STATUS_UNKNOWN); info.discharging = false; Loading
tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java +31 −0 Original line number Diff line number Diff line Loading @@ -229,6 +229,37 @@ public class BatteryInfoTest { assertThat(info.chargeLabel.toString()).contains(STATUS_CHARGING_PAUSED); } @Test public void testGetBatteryInfo_getChargeTimeRemaining_updateSettingsGlobal() { doReturn(TEST_CHARGE_TIME_REMAINING) .when(mBatteryUsageStats) .getChargeTimeRemainingMs(); BatteryInfo.getBatteryInfo(mContext, mChargingBatteryBroadcast, mBatteryUsageStats, MOCK_ESTIMATE, SystemClock.elapsedRealtime() * 1000, false /* shortString */); assertThat(BatteryInfo.getSettingsChargeTimeRemaining(mContext)).isEqualTo( TEST_CHARGE_TIME_REMAINING); } @Test public void testGetBatteryInfo_differentChargeTimeRemaining_updateSettingsGlobal() { doReturn(TEST_CHARGE_TIME_REMAINING) .when(mBatteryUsageStats) .getChargeTimeRemainingMs(); final long newTimeToFull = 300L; doReturn(newTimeToFull) .when(mBatteryUsageStats) .getChargeTimeRemainingMs(); BatteryInfo.getBatteryInfo(mContext, mChargingBatteryBroadcast, mBatteryUsageStats, MOCK_ESTIMATE, SystemClock.elapsedRealtime() * 1000, false /* shortString */); assertThat(BatteryInfo.getSettingsChargeTimeRemaining(mContext)).isEqualTo(newTimeToFull); } @Test public void testGetBatteryInfo_dockDefenderActive_updateChargeString() { doReturn(TEST_CHARGE_TIME_REMAINING / 1000) Loading