Merge "Add intent receiver in BatterySaverCondition" into pi-dev am: 465f6da15b
am: f1a94be5d4
Change-Id: I2f04be621d0a121cfc51e6fefa02a493426172ad
This commit is contained in:
@@ -23,12 +23,20 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.core.SubSettingLauncher;
|
||||
import com.android.settings.fuelgauge.BatterySaverDrawable;
|
||||
import com.android.settings.fuelgauge.BatterySaverReceiver;
|
||||
import com.android.settings.fuelgauge.batterysaver.BatterySaverSettings;
|
||||
import com.android.settingslib.fuelgauge.BatterySaverUtils;
|
||||
|
||||
public class BatterySaverCondition extends Condition {
|
||||
public class BatterySaverCondition extends Condition implements
|
||||
BatterySaverReceiver.BatterySaverListener {
|
||||
|
||||
private final BatterySaverReceiver mReceiver;
|
||||
|
||||
public BatterySaverCondition(ConditionManager manager) {
|
||||
super(manager);
|
||||
|
||||
mReceiver = new BatterySaverReceiver(manager.getContext());
|
||||
mReceiver.setBatterySaverListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -54,7 +62,7 @@ public class BatterySaverCondition extends Condition {
|
||||
|
||||
@Override
|
||||
public CharSequence[] getActions() {
|
||||
return new CharSequence[] {mManager.getContext().getString(R.string.condition_turn_off)};
|
||||
return new CharSequence[]{mManager.getContext().getString(R.string.condition_turn_off)};
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -82,4 +90,25 @@ public class BatterySaverCondition extends Condition {
|
||||
public int getMetricsConstant() {
|
||||
return MetricsEvent.SETTINGS_CONDITION_BATTERY_SAVER;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
mReceiver.setListening(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
mReceiver.setListening(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPowerSaveModeChanged() {
|
||||
ConditionManager.get(mManager.getContext()).getCondition(BatterySaverCondition.class)
|
||||
.refreshState();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBatteryChanged(boolean pluggedIn) {
|
||||
// do nothing
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,103 @@
|
||||
/*
|
||||
* Copyright (C) 2018 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.dashboard.conditional;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.Matchers.any;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.IntentFilter;
|
||||
import android.os.PowerManager;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.fuelgauge.BatterySaverReceiver;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.Shadows;
|
||||
import org.robolectric.shadows.ShadowPowerManager;
|
||||
|
||||
@RunWith(SettingsRobolectricTestRunner.class)
|
||||
public class BatterySaverConditionTest {
|
||||
@Mock
|
||||
private ConditionManager mConditionManager;
|
||||
|
||||
private ShadowPowerManager mPowerManager;
|
||||
private Context mContext;
|
||||
private BatterySaverCondition mCondition;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mContext = spy(RuntimeEnvironment.application);
|
||||
mPowerManager = Shadows.shadowOf(mContext.getSystemService(PowerManager.class));
|
||||
when(mConditionManager.getContext()).thenReturn(mContext);
|
||||
mCondition = spy(new BatterySaverCondition(mConditionManager));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void verifyText() {
|
||||
assertThat(mCondition.getTitle()).isEqualTo(
|
||||
mContext.getText(R.string.condition_battery_title));
|
||||
assertThat(mCondition.getSummary()).isEqualTo(
|
||||
mContext.getText(R.string.condition_battery_summary));
|
||||
assertThat(mCondition.getActions()[0]).isEqualTo(
|
||||
mContext.getText(R.string.condition_turn_off));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onResume_shouldRegisterReceiver() {
|
||||
mCondition.onResume();
|
||||
|
||||
verify(mContext).registerReceiver(any(BatterySaverReceiver.class), any(IntentFilter.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onPause_shouldUnregisterReceiver() {
|
||||
mCondition.onResume();
|
||||
mCondition.onPause();
|
||||
|
||||
verify(mContext).unregisterReceiver(any(BatterySaverReceiver.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void refreshState_PowerSaverOn_shouldActivate() {
|
||||
mPowerManager.setIsPowerSaveMode(true);
|
||||
|
||||
mCondition.refreshState();
|
||||
|
||||
assertThat(mCondition.isActive()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void refreshState_PowerSaverOff_shouldNotActivate() {
|
||||
mPowerManager.setIsPowerSaveMode(false);
|
||||
|
||||
mCondition.refreshState();
|
||||
|
||||
assertThat(mCondition.isActive()).isFalse();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user