Loading src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java +5 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.BatteryManager; import android.os.PowerManager; import androidx.annotation.VisibleForTesting; import androidx.preference.PreferenceFragment; import androidx.preference.PreferenceScreen; Loading Loading @@ -57,6 +58,7 @@ public class BatteryHeaderPreferenceController extends AbstractPreferenceControl private final Activity mActivity; private final PreferenceFragment mHost; private final Lifecycle mLifecycle; private final PowerManager mPowerManager; private LayoutPreference mBatteryLayoutPref; Loading @@ -69,6 +71,7 @@ public class BatteryHeaderPreferenceController extends AbstractPreferenceControl if (mLifecycle != null) { mLifecycle.addObserver(this); } mPowerManager = context.getSystemService(PowerManager.class); } @Override Loading Loading @@ -115,6 +118,7 @@ public class BatteryHeaderPreferenceController extends AbstractPreferenceControl mBatteryMeterView.setBatteryLevel(info.batteryLevel); mBatteryMeterView.setCharging(!info.discharging); mBatteryMeterView.setPowerSave(mPowerManager.isPowerSaveMode()); } public void quickUpdateHeaderPreference() { Loading @@ -127,6 +131,7 @@ public class BatteryHeaderPreferenceController extends AbstractPreferenceControl // Set battery level and charging status mBatteryMeterView.setBatteryLevel(batteryLevel); mBatteryMeterView.setCharging(!discharging); mBatteryMeterView.setPowerSave(mPowerManager.isPowerSaveMode()); mBatteryPercentText.setText(Utils.formatPercentage(batteryLevel)); // clear all the summaries Loading src/com/android/settings/fuelgauge/BatteryMeterView.java +10 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ public class BatteryMeterView extends ImageView { ColorFilter mErrorColorFilter; @VisibleForTesting ColorFilter mAccentColorFilter; private boolean mPowerSaveEnabled; public BatteryMeterView(Context context) { this(context, null, 0); Loading Loading @@ -73,6 +74,15 @@ public class BatteryMeterView extends ImageView { } } public void setPowerSave(boolean powerSave) { mDrawable.setPowerSave(powerSave); mPowerSaveEnabled = powerSave; } public boolean getPowerSave() { return mPowerSaveEnabled; } public int getBatteryLevel() { return mDrawable.getBatteryLevel(); } Loading tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java +20 −1 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.robolectric.Shadows.shadowOf; import android.app.Activity; import androidx.lifecycle.LifecycleOwner; Loading @@ -33,6 +34,7 @@ import android.content.Context; import android.content.Intent; import android.os.BatteryManager; import androidx.preference.PreferenceFragment; import android.os.PowerManager; import androidx.preference.PreferenceScreen; import androidx.recyclerview.widget.RecyclerView; import android.widget.TextView; Loading @@ -52,8 +54,9 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import org.robolectric.RuntimeEnvironment; import org.robolectric.shadows.ShadowPowerManager; @RunWith(SettingsRobolectricTestRunner.class) @Config(shadows = { Loading @@ -80,6 +83,7 @@ public class BatteryHeaderPreferenceControllerTest { private EntityHeaderController mEntityHeaderController; private BatteryHeaderPreferenceController mController; private Context mContext; private PowerManager mPowerManager; private BatteryMeterView mBatteryMeterView; private TextView mBatteryPercentText; private TextView mSummary; Loading Loading @@ -114,6 +118,8 @@ public class BatteryHeaderPreferenceControllerTest { mBatteryInfo.batteryLevel = BATTERY_LEVEL; mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); mController = new BatteryHeaderPreferenceController( mContext, mActivity, mPreferenceFragment, mLifecycle); mController.mBatteryMeterView = mBatteryMeterView; Loading Loading @@ -187,4 +193,17 @@ public class BatteryHeaderPreferenceControllerTest { assertThat(mBatteryMeterView.getCharging()).isTrue(); assertThat(mBatteryPercentText.getText()).isEqualTo("60%"); } @Test public void testQuickUpdateHeaderPreference_showPowerSave() { boolean testValues[] = {false, true}; ShadowPowerManager shadowPowerManager = shadowOf(mPowerManager); for (boolean value : testValues) { shadowPowerManager.setIsPowerSaveMode(value); mController.quickUpdateHeaderPreference(); assertThat(mBatteryMeterView.getPowerSave()).isEqualTo(value); } } } tests/robotests/src/com/android/settings/fuelgauge/BatteryMeterViewTest.java +7 −0 Original line number Diff line number Diff line Loading @@ -86,4 +86,11 @@ public class BatteryMeterViewTest { verify(mDrawable).setBatteryColorFilter(mAccentColorFilter); } @Test public void testSetBatteryInfo_powerSave_setCorrectly() { mBatteryMeterView.setPowerSave(true); assertThat(mBatteryMeterView.getPowerSave()).isEqualTo(true); } } Loading
src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java +5 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.BatteryManager; import android.os.PowerManager; import androidx.annotation.VisibleForTesting; import androidx.preference.PreferenceFragment; import androidx.preference.PreferenceScreen; Loading Loading @@ -57,6 +58,7 @@ public class BatteryHeaderPreferenceController extends AbstractPreferenceControl private final Activity mActivity; private final PreferenceFragment mHost; private final Lifecycle mLifecycle; private final PowerManager mPowerManager; private LayoutPreference mBatteryLayoutPref; Loading @@ -69,6 +71,7 @@ public class BatteryHeaderPreferenceController extends AbstractPreferenceControl if (mLifecycle != null) { mLifecycle.addObserver(this); } mPowerManager = context.getSystemService(PowerManager.class); } @Override Loading Loading @@ -115,6 +118,7 @@ public class BatteryHeaderPreferenceController extends AbstractPreferenceControl mBatteryMeterView.setBatteryLevel(info.batteryLevel); mBatteryMeterView.setCharging(!info.discharging); mBatteryMeterView.setPowerSave(mPowerManager.isPowerSaveMode()); } public void quickUpdateHeaderPreference() { Loading @@ -127,6 +131,7 @@ public class BatteryHeaderPreferenceController extends AbstractPreferenceControl // Set battery level and charging status mBatteryMeterView.setBatteryLevel(batteryLevel); mBatteryMeterView.setCharging(!discharging); mBatteryMeterView.setPowerSave(mPowerManager.isPowerSaveMode()); mBatteryPercentText.setText(Utils.formatPercentage(batteryLevel)); // clear all the summaries Loading
src/com/android/settings/fuelgauge/BatteryMeterView.java +10 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ public class BatteryMeterView extends ImageView { ColorFilter mErrorColorFilter; @VisibleForTesting ColorFilter mAccentColorFilter; private boolean mPowerSaveEnabled; public BatteryMeterView(Context context) { this(context, null, 0); Loading Loading @@ -73,6 +74,15 @@ public class BatteryMeterView extends ImageView { } } public void setPowerSave(boolean powerSave) { mDrawable.setPowerSave(powerSave); mPowerSaveEnabled = powerSave; } public boolean getPowerSave() { return mPowerSaveEnabled; } public int getBatteryLevel() { return mDrawable.getBatteryLevel(); } Loading
tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java +20 −1 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.robolectric.Shadows.shadowOf; import android.app.Activity; import androidx.lifecycle.LifecycleOwner; Loading @@ -33,6 +34,7 @@ import android.content.Context; import android.content.Intent; import android.os.BatteryManager; import androidx.preference.PreferenceFragment; import android.os.PowerManager; import androidx.preference.PreferenceScreen; import androidx.recyclerview.widget.RecyclerView; import android.widget.TextView; Loading @@ -52,8 +54,9 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import org.robolectric.RuntimeEnvironment; import org.robolectric.shadows.ShadowPowerManager; @RunWith(SettingsRobolectricTestRunner.class) @Config(shadows = { Loading @@ -80,6 +83,7 @@ public class BatteryHeaderPreferenceControllerTest { private EntityHeaderController mEntityHeaderController; private BatteryHeaderPreferenceController mController; private Context mContext; private PowerManager mPowerManager; private BatteryMeterView mBatteryMeterView; private TextView mBatteryPercentText; private TextView mSummary; Loading Loading @@ -114,6 +118,8 @@ public class BatteryHeaderPreferenceControllerTest { mBatteryInfo.batteryLevel = BATTERY_LEVEL; mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); mController = new BatteryHeaderPreferenceController( mContext, mActivity, mPreferenceFragment, mLifecycle); mController.mBatteryMeterView = mBatteryMeterView; Loading Loading @@ -187,4 +193,17 @@ public class BatteryHeaderPreferenceControllerTest { assertThat(mBatteryMeterView.getCharging()).isTrue(); assertThat(mBatteryPercentText.getText()).isEqualTo("60%"); } @Test public void testQuickUpdateHeaderPreference_showPowerSave() { boolean testValues[] = {false, true}; ShadowPowerManager shadowPowerManager = shadowOf(mPowerManager); for (boolean value : testValues) { shadowPowerManager.setIsPowerSaveMode(value); mController.quickUpdateHeaderPreference(); assertThat(mBatteryMeterView.getPowerSave()).isEqualTo(value); } } }
tests/robotests/src/com/android/settings/fuelgauge/BatteryMeterViewTest.java +7 −0 Original line number Diff line number Diff line Loading @@ -86,4 +86,11 @@ public class BatteryMeterViewTest { verify(mDrawable).setBatteryColorFilter(mAccentColorFilter); } @Test public void testSetBatteryInfo_powerSave_setCorrectly() { mBatteryMeterView.setPowerSave(true); assertThat(mBatteryMeterView.getPowerSave()).isEqualTo(true); } }