Add isBatteryManagerSupported() to control adaptive preferences page
Add isBatteryManagerSupported() in the PowerUsageFeatureProvider to support controlling the adaptive preferences page dynamically Bug: 229558366 Test: presubmit Change-Id: Iffb552feb9e08ca72f2970eb778cd3fcd18f0b7e
This commit is contained in:
@@ -39,21 +39,11 @@ public interface PowerUsageFeatureProvider {
|
||||
*/
|
||||
boolean isLocationSettingEnabled(String[] packages);
|
||||
|
||||
/**
|
||||
* Check whether additional battery info feature is enabled.
|
||||
*/
|
||||
boolean isAdditionalBatteryInfoEnabled();
|
||||
|
||||
/**
|
||||
* Gets an {@link Intent} to show additional battery info.
|
||||
*/
|
||||
Intent getAdditionalBatteryInfoIntent();
|
||||
|
||||
/**
|
||||
* Check whether advanced ui is enabled
|
||||
*/
|
||||
boolean isAdvancedUiEnabled();
|
||||
|
||||
/**
|
||||
* Check whether it is type service
|
||||
*/
|
||||
@@ -64,11 +54,6 @@ public interface PowerUsageFeatureProvider {
|
||||
*/
|
||||
boolean isTypeSystem(int uid, String[] packages);
|
||||
|
||||
/**
|
||||
* Check whether the toggle for power accounting is enabled
|
||||
*/
|
||||
boolean isPowerAccountingToggleEnabled();
|
||||
|
||||
/**
|
||||
* Returns an improved prediction for battery time remaining.
|
||||
*/
|
||||
@@ -130,6 +115,11 @@ public interface PowerUsageFeatureProvider {
|
||||
*/
|
||||
boolean isAdaptiveChargingSupported();
|
||||
|
||||
/**
|
||||
* Checks whether battery manager feature is supported in this device
|
||||
*/
|
||||
boolean isBatteryManagerSupported();
|
||||
|
||||
/**
|
||||
* Returns {@code true} if current defender mode is extra defend
|
||||
*/
|
||||
|
@@ -75,26 +75,11 @@ public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAdditionalBatteryInfoEnabled() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Intent getAdditionalBatteryInfoIntent() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAdvancedUiEnabled() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPowerAccountingToggleEnabled() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Estimate getEnhancedBatteryPrediction(Context context) {
|
||||
return null;
|
||||
@@ -146,6 +131,11 @@ public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isBatteryManagerSupported() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Intent getResumeChargeIntent(boolean isDockDefender) {
|
||||
return null;
|
||||
|
@@ -28,11 +28,10 @@ import com.android.settings.core.BasePreferenceController;
|
||||
import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
|
||||
/**
|
||||
* Preference controller to control the battery manager
|
||||
*/
|
||||
/** Preference controller to control the battery manager */
|
||||
public class BatteryManagerPreferenceController extends BasePreferenceController {
|
||||
private static final String KEY_BATTERY_MANAGER = "smart_battery_manager";
|
||||
|
||||
private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
|
||||
private AppOpsManager mAppOpsManager;
|
||||
private UserManager mUserManager;
|
||||
@@ -50,7 +49,8 @@ public class BatteryManagerPreferenceController extends BasePreferenceController
|
||||
|
||||
@Override
|
||||
public int getAvailabilityStatus() {
|
||||
return AVAILABLE_UNSEARCHABLE;
|
||||
return mPowerUsageFeatureProvider.isBatteryManagerSupported()
|
||||
? AVAILABLE_UNSEARCHABLE : UNSUPPORTED_ON_DEVICE;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -59,7 +59,6 @@ public class BatteryManagerPreferenceController extends BasePreferenceController
|
||||
if (!mEnableAppBatteryUsagePage) {
|
||||
final int num = BatteryTipUtils.getRestrictedAppsList(mAppOpsManager,
|
||||
mUserManager).size();
|
||||
|
||||
updateSummary(preference, num);
|
||||
}
|
||||
}
|
||||
|
@@ -105,16 +105,6 @@ public class PowerUsageFeatureProviderImplTest {
|
||||
assertThat(mPowerFeatureProvider.isTypeSystem(UID_OTHER, null)).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsAdvancedUiEnabled_returnTrue() {
|
||||
assertThat(mPowerFeatureProvider.isAdvancedUiEnabled()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsPowerAccountingToggleEnabled_returnTrue() {
|
||||
assertThat(mPowerFeatureProvider.isPowerAccountingToggleEnabled()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsSmartBatterySupported_smartBatterySupported_returnTrue() {
|
||||
when(mContext.getResources().getBoolean(
|
||||
|
@@ -26,6 +26,7 @@ import android.provider.Settings;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
|
||||
import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
|
||||
import com.android.settings.testutils.FakeFeatureFactory;
|
||||
|
||||
import org.junit.Before;
|
||||
@@ -48,6 +49,7 @@ public class BatteryManagerPreferenceControllerTest {
|
||||
private Context mContext;
|
||||
private Preference mPreference;
|
||||
private FakeFeatureFactory mFeatureFactory;
|
||||
private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
|
||||
private BatteryManagerPreferenceController mController;
|
||||
|
||||
|
||||
@@ -60,6 +62,7 @@ public class BatteryManagerPreferenceControllerTest {
|
||||
mFeatureFactory = FakeFeatureFactory.setupForTest();
|
||||
mPreference = new Preference(mContext);
|
||||
mController = new BatteryManagerPreferenceController(mContext);
|
||||
mPowerUsageFeatureProvider = mFeatureFactory.powerUsageFeatureProvider;
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -71,7 +74,7 @@ public class BatteryManagerPreferenceControllerTest {
|
||||
|
||||
@Test
|
||||
public void updateState_smartBatteryWithoutRestriction_showSummary() {
|
||||
when(mFeatureFactory.powerUsageFeatureProvider.isSmartBatterySupported()).thenReturn(true);
|
||||
when(mPowerUsageFeatureProvider.isSmartBatterySupported()).thenReturn(true);
|
||||
Settings.Global.putInt(mContext.getContentResolver(),
|
||||
Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED, ON);
|
||||
|
||||
@@ -79,4 +82,20 @@ public class BatteryManagerPreferenceControllerTest {
|
||||
|
||||
assertThat(mPreference.getSummary()).isEqualTo("Detecting when apps drain battery");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getAvailabilityStatus_supportBatteryManager_showPrefPage() {
|
||||
when(mPowerUsageFeatureProvider.isBatteryManagerSupported()).thenReturn(true);
|
||||
|
||||
assertThat(mController.getAvailabilityStatus()).isEqualTo(
|
||||
BatteryManagerPreferenceController.AVAILABLE_UNSEARCHABLE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getAvailabilityStatus_notSupportBatteryManager_notShowPrefPage() {
|
||||
when(mPowerUsageFeatureProvider.isBatteryManagerSupported()).thenReturn(false);
|
||||
|
||||
assertThat(mController.getAvailabilityStatus()).isEqualTo(
|
||||
BatteryManagerPreferenceController.UNSUPPORTED_ON_DEVICE);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user