Merge "Add isBatteryManagerSupported() to control adaptive preferences page"

This commit is contained in:
YK Hung
2022-12-27 11:12:57 +00:00
committed by Android (Google) Code Review
5 changed files with 34 additions and 46 deletions

View File

@@ -39,21 +39,11 @@ public interface PowerUsageFeatureProvider {
*/ */
boolean isLocationSettingEnabled(String[] packages); boolean isLocationSettingEnabled(String[] packages);
/**
* Check whether additional battery info feature is enabled.
*/
boolean isAdditionalBatteryInfoEnabled();
/** /**
* Gets an {@link Intent} to show additional battery info. * Gets an {@link Intent} to show additional battery info.
*/ */
Intent getAdditionalBatteryInfoIntent(); Intent getAdditionalBatteryInfoIntent();
/**
* Check whether advanced ui is enabled
*/
boolean isAdvancedUiEnabled();
/** /**
* Check whether it is type service * Check whether it is type service
*/ */
@@ -64,11 +54,6 @@ public interface PowerUsageFeatureProvider {
*/ */
boolean isTypeSystem(int uid, String[] packages); 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. * Returns an improved prediction for battery time remaining.
*/ */
@@ -130,6 +115,11 @@ public interface PowerUsageFeatureProvider {
*/ */
boolean isAdaptiveChargingSupported(); boolean isAdaptiveChargingSupported();
/**
* Checks whether battery manager feature is supported in this device
*/
boolean isBatteryManagerSupported();
/** /**
* Returns {@code true} if current defender mode is extra defend * Returns {@code true} if current defender mode is extra defend
*/ */

View File

@@ -75,26 +75,11 @@ public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider
return false; return false;
} }
@Override
public boolean isAdditionalBatteryInfoEnabled() {
return false;
}
@Override @Override
public Intent getAdditionalBatteryInfoIntent() { public Intent getAdditionalBatteryInfoIntent() {
return null; return null;
} }
@Override
public boolean isAdvancedUiEnabled() {
return true;
}
@Override
public boolean isPowerAccountingToggleEnabled() {
return true;
}
@Override @Override
public Estimate getEnhancedBatteryPrediction(Context context) { public Estimate getEnhancedBatteryPrediction(Context context) {
return null; return null;
@@ -146,6 +131,11 @@ public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider
return false; return false;
} }
@Override
public boolean isBatteryManagerSupported() {
return true;
}
@Override @Override
public Intent getResumeChargeIntent(boolean isDockDefender) { public Intent getResumeChargeIntent(boolean isDockDefender) {
return null; return null;

View File

@@ -28,11 +28,10 @@ import com.android.settings.core.BasePreferenceController;
import com.android.settings.fuelgauge.PowerUsageFeatureProvider; import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
import com.android.settings.overlay.FeatureFactory; 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 { public class BatteryManagerPreferenceController extends BasePreferenceController {
private static final String KEY_BATTERY_MANAGER = "smart_battery_manager"; private static final String KEY_BATTERY_MANAGER = "smart_battery_manager";
private PowerUsageFeatureProvider mPowerUsageFeatureProvider; private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
private AppOpsManager mAppOpsManager; private AppOpsManager mAppOpsManager;
private UserManager mUserManager; private UserManager mUserManager;
@@ -50,7 +49,8 @@ public class BatteryManagerPreferenceController extends BasePreferenceController
@Override @Override
public int getAvailabilityStatus() { public int getAvailabilityStatus() {
return AVAILABLE_UNSEARCHABLE; return mPowerUsageFeatureProvider.isBatteryManagerSupported()
? AVAILABLE_UNSEARCHABLE : UNSUPPORTED_ON_DEVICE;
} }
@Override @Override
@@ -59,7 +59,6 @@ public class BatteryManagerPreferenceController extends BasePreferenceController
if (!mEnableAppBatteryUsagePage) { if (!mEnableAppBatteryUsagePage) {
final int num = BatteryTipUtils.getRestrictedAppsList(mAppOpsManager, final int num = BatteryTipUtils.getRestrictedAppsList(mAppOpsManager,
mUserManager).size(); mUserManager).size();
updateSummary(preference, num); updateSummary(preference, num);
} }
} }

View File

@@ -105,16 +105,6 @@ public class PowerUsageFeatureProviderImplTest {
assertThat(mPowerFeatureProvider.isTypeSystem(UID_OTHER, null)).isFalse(); 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 @Test
public void testIsSmartBatterySupported_smartBatterySupported_returnTrue() { public void testIsSmartBatterySupported_smartBatterySupported_returnTrue() {
when(mContext.getResources().getBoolean( when(mContext.getResources().getBoolean(

View File

@@ -26,6 +26,7 @@ import android.provider.Settings;
import androidx.preference.Preference; import androidx.preference.Preference;
import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before; import org.junit.Before;
@@ -48,6 +49,7 @@ public class BatteryManagerPreferenceControllerTest {
private Context mContext; private Context mContext;
private Preference mPreference; private Preference mPreference;
private FakeFeatureFactory mFeatureFactory; private FakeFeatureFactory mFeatureFactory;
private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
private BatteryManagerPreferenceController mController; private BatteryManagerPreferenceController mController;
@@ -60,6 +62,7 @@ public class BatteryManagerPreferenceControllerTest {
mFeatureFactory = FakeFeatureFactory.setupForTest(); mFeatureFactory = FakeFeatureFactory.setupForTest();
mPreference = new Preference(mContext); mPreference = new Preference(mContext);
mController = new BatteryManagerPreferenceController(mContext); mController = new BatteryManagerPreferenceController(mContext);
mPowerUsageFeatureProvider = mFeatureFactory.powerUsageFeatureProvider;
} }
@Test @Test
@@ -71,7 +74,7 @@ public class BatteryManagerPreferenceControllerTest {
@Test @Test
public void updateState_smartBatteryWithoutRestriction_showSummary() { public void updateState_smartBatteryWithoutRestriction_showSummary() {
when(mFeatureFactory.powerUsageFeatureProvider.isSmartBatterySupported()).thenReturn(true); when(mPowerUsageFeatureProvider.isSmartBatterySupported()).thenReturn(true);
Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED, ON); Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED, ON);
@@ -79,4 +82,20 @@ public class BatteryManagerPreferenceControllerTest {
assertThat(mPreference.getSummary()).isEqualTo("Detecting when apps drain battery"); 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);
}
} }