Add a new config for checking BatteryManager show/hide rule
Bug: 271387663 Test: presubmit Change-Id: If24b5e6de630afe972ad7ff7af866cb587db0a56
This commit is contained in:
@@ -553,7 +553,7 @@
|
|||||||
<!-- Cell broacast receiver package name -->
|
<!-- Cell broacast receiver package name -->
|
||||||
<string name="config_cell_broadcast_receiver_package" translatable="false">com.android.cellbroadcastreceiver.module</string>
|
<string name="config_cell_broadcast_receiver_package" translatable="false">com.android.cellbroadcastreceiver.module</string>
|
||||||
|
|
||||||
<!-- TODO(b/174964885): These media Uri are not defined in framework yet. Replace with framework defined variables once it's available. -->
|
<!-- These media Uri are not defined in framework yet. Replace with framework defined variables once it's available. -->
|
||||||
<!-- Media Uri to view images storage category. -->
|
<!-- Media Uri to view images storage category. -->
|
||||||
<string name="config_images_storage_category_uri" translatable="false">content://com.android.providers.media.documents/root/images_root</string>
|
<string name="config_images_storage_category_uri" translatable="false">content://com.android.providers.media.documents/root/images_root</string>
|
||||||
|
|
||||||
@@ -695,4 +695,7 @@
|
|||||||
|
|
||||||
<!-- Whether auto data switching on secondary SIM enables cross-SIM calling on both SIMs. -->
|
<!-- Whether auto data switching on secondary SIM enables cross-SIM calling on both SIMs. -->
|
||||||
<bool name="config_auto_data_switch_enables_cross_sim_calling">false</bool>
|
<bool name="config_auto_data_switch_enables_cross_sim_calling">false</bool>
|
||||||
|
|
||||||
|
<!-- Whether checking adaptive charging to define battery manager visibility. -->
|
||||||
|
<bool name="config_battery_manager_consider_ac">false</bool>
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -50,8 +50,13 @@ public class BatteryManagerPreferenceController extends BasePreferenceController
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getAvailabilityStatus() {
|
public int getAvailabilityStatus() {
|
||||||
return mPowerUsageFeatureProvider.isBatteryManagerSupported()
|
if (!mPowerUsageFeatureProvider.isBatteryManagerSupported()) {
|
||||||
&& mPowerUsageFeatureProvider.isAdaptiveChargingSupported()
|
return UNSUPPORTED_ON_DEVICE;
|
||||||
|
}
|
||||||
|
if (!mContext.getResources().getBoolean(R.bool.config_battery_manager_consider_ac)) {
|
||||||
|
return AVAILABLE_UNSEARCHABLE;
|
||||||
|
}
|
||||||
|
return mPowerUsageFeatureProvider.isAdaptiveChargingSupported()
|
||||||
? AVAILABLE_UNSEARCHABLE : UNSUPPORTED_ON_DEVICE;
|
? AVAILABLE_UNSEARCHABLE : UNSUPPORTED_ON_DEVICE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -85,15 +85,6 @@ public class BatterySaverButtonPreferenceControllerTest {
|
|||||||
assertThat(mPreference.isChecked()).isFalse();
|
assertThat(mPreference.isChecked()).isFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void onSwitchChanged_isCheckedAndAcked_setPowerSaveMode() {
|
|
||||||
setLowPowerWarningAcked(/* acked= */ 1);
|
|
||||||
|
|
||||||
mController.onSwitchChanged(/* switchView= */ null, /* isChecked= */ true);
|
|
||||||
|
|
||||||
verify(mPowerManager).setPowerSaveModeEnabled(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void updateState_lowPowerOn_preferenceIsChecked() {
|
public void updateState_lowPowerOn_preferenceIsChecked() {
|
||||||
when(mPowerManager.isPowerSaveMode()).thenReturn(true);
|
when(mPowerManager.isPowerSaveMode()).thenReturn(true);
|
||||||
|
@@ -26,8 +26,10 @@ import android.provider.Settings;
|
|||||||
|
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
|
|
||||||
|
import com.android.settings.R;
|
||||||
import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
|
import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
|
||||||
import com.android.settings.testutils.FakeFeatureFactory;
|
import com.android.settings.testutils.FakeFeatureFactory;
|
||||||
|
import com.android.settings.testutils.shadow.SettingsShadowResources;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -36,8 +38,10 @@ import org.mockito.Mock;
|
|||||||
import org.mockito.MockitoAnnotations;
|
import org.mockito.MockitoAnnotations;
|
||||||
import org.robolectric.RobolectricTestRunner;
|
import org.robolectric.RobolectricTestRunner;
|
||||||
import org.robolectric.RuntimeEnvironment;
|
import org.robolectric.RuntimeEnvironment;
|
||||||
|
import org.robolectric.annotation.Config;
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner.class)
|
@RunWith(RobolectricTestRunner.class)
|
||||||
|
@Config(shadows = SettingsShadowResources.class)
|
||||||
public class BatteryManagerPreferenceControllerTest {
|
public class BatteryManagerPreferenceControllerTest {
|
||||||
private static final int ON = 1;
|
private static final int ON = 1;
|
||||||
private static final int OFF = 0;
|
private static final int OFF = 0;
|
||||||
@@ -85,6 +89,8 @@ public class BatteryManagerPreferenceControllerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getAvailabilityStatus_supportBatteryManager_showPrefPage() {
|
public void getAvailabilityStatus_supportBatteryManager_showPrefPage() {
|
||||||
|
SettingsShadowResources.overrideResource(
|
||||||
|
R.bool.config_battery_manager_consider_ac, true);
|
||||||
when(mPowerUsageFeatureProvider.isBatteryManagerSupported()).thenReturn(true);
|
when(mPowerUsageFeatureProvider.isBatteryManagerSupported()).thenReturn(true);
|
||||||
when(mPowerUsageFeatureProvider.isAdaptiveChargingSupported()).thenReturn(true);
|
when(mPowerUsageFeatureProvider.isAdaptiveChargingSupported()).thenReturn(true);
|
||||||
|
|
||||||
@@ -102,10 +108,23 @@ public class BatteryManagerPreferenceControllerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getAvailabilityStatus_supportBatteryManagerWithoutAC_notShowPrefPage() {
|
public void getAvailabilityStatus_supportBatteryManagerWithoutAC_notShowPrefPage() {
|
||||||
|
SettingsShadowResources.overrideResource(
|
||||||
|
R.bool.config_battery_manager_consider_ac, true);
|
||||||
when(mPowerUsageFeatureProvider.isBatteryManagerSupported()).thenReturn(true);
|
when(mPowerUsageFeatureProvider.isBatteryManagerSupported()).thenReturn(true);
|
||||||
when(mPowerUsageFeatureProvider.isAdaptiveChargingSupported()).thenReturn(false);
|
when(mPowerUsageFeatureProvider.isAdaptiveChargingSupported()).thenReturn(false);
|
||||||
|
|
||||||
assertThat(mController.getAvailabilityStatus()).isEqualTo(
|
assertThat(mController.getAvailabilityStatus()).isEqualTo(
|
||||||
BatteryManagerPreferenceController.UNSUPPORTED_ON_DEVICE);
|
BatteryManagerPreferenceController.UNSUPPORTED_ON_DEVICE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getAvailabilityStatus_ignoreBatteryManagerWithoutAC_showPrefPage() {
|
||||||
|
SettingsShadowResources.overrideResource(
|
||||||
|
R.bool.config_battery_manager_consider_ac, false);
|
||||||
|
when(mPowerUsageFeatureProvider.isBatteryManagerSupported()).thenReturn(true);
|
||||||
|
when(mPowerUsageFeatureProvider.isAdaptiveChargingSupported()).thenReturn(false);
|
||||||
|
|
||||||
|
assertThat(mController.getAvailabilityStatus()).isEqualTo(
|
||||||
|
BatteryManagerPreferenceController.AVAILABLE_UNSEARCHABLE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user