Add quickUpdate method to BatteryHeaderPrefCtrl

This cl adds a method called quickUpdateHeaderPreference, which will
update the following items immediately without waiting for the
BatteryInfo:
1. Battery level
2. Battery charging status(whether to show lighting bolt)
3. Clear the charging summary

Note: this cl doesn't optimize the BatteryInfo loading time.

This cl also rename "TimeText" to "BatteryPercentText" because in
new UI that textview is used to display battery percentage.

Bug: 63029231
Test: RunSettingsRoboTests
Change-Id: I8cc886b35e937d73b46e47e303ff0994ccdcb61c
This commit is contained in:
jackqdyulei
2017-06-26 17:54:09 -07:00
parent d793590678
commit 19648756cb
4 changed files with 47 additions and 12 deletions

View File

@@ -46,6 +46,7 @@ import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
@@ -81,7 +82,7 @@ public class BatteryHeaderPreferenceControllerTest {
private BatteryHeaderPreferenceController mController;
private Context mContext;
private BatteryMeterView mBatteryMeterView;
private TextView mTimeText;
private TextView mBatteryPercentText;
private TextView mSummary;
private TextView mSummary2;
private LayoutPreference mBatteryLayoutPref;
@@ -95,7 +96,7 @@ public class BatteryHeaderPreferenceControllerTest {
mLifecycle = new Lifecycle();
mContext = spy(RuntimeEnvironment.application);
mBatteryMeterView = new BatteryMeterView(mContext);
mTimeText = new TextView(mContext);
mBatteryPercentText = new TextView(mContext);
mSummary = new TextView(mContext);
ShadowEntityHeaderController.setUseMock(mEntityHeaderController);
mSummary2 = new TextView(mContext);
@@ -103,6 +104,7 @@ public class BatteryHeaderPreferenceControllerTest {
mBatteryIntent = new Intent();
mBatteryIntent.putExtra(BatteryManager.EXTRA_LEVEL, BATTERY_LEVEL);
mBatteryIntent.putExtra(BatteryManager.EXTRA_SCALE, 100);
mBatteryIntent.putExtra(BatteryManager.EXTRA_PLUGGED, 1);
doReturn(mBatteryIntent).when(mContext).registerReceiver(any(), any());
mBatteryLayoutPref = new LayoutPreference(mContext, R.layout.battery_header);
@@ -114,7 +116,7 @@ public class BatteryHeaderPreferenceControllerTest {
mController = new BatteryHeaderPreferenceController(
mContext, mActivity, mPreferenceFragment, mLifecycle);
mController.mBatteryMeterView = mBatteryMeterView;
mController.mTimeText = mTimeText;
mController.mBatteryPercentText = mBatteryPercentText;
mController.mSummary1 = mSummary;
mController.mSummary2 = mSummary2;
}
@@ -175,4 +177,13 @@ public class BatteryHeaderPreferenceControllerTest {
verify(mEntityHeaderController).styleActionBar(mActivity);
}
@Test
public void testQuickUpdateHeaderPreference_showBatteryLevelAndChargingState() {
mController.quickUpdateHeaderPreference();
assertThat(mBatteryMeterView.getBatteryLevel()).isEqualTo(BATTERY_LEVEL);
assertThat(mBatteryMeterView.getCharging()).isTrue();
assertThat(mBatteryPercentText.getText()).isEqualTo("60%");
}
}