From 44b28f4a2b5cea5abeb603fe81a38f6f8a666bc5 Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Mon, 17 Dec 2018 12:31:50 -0800 Subject: [PATCH] Remove battery saver condition. Battery saver is also implemented as a contextual card. no need to use condition any more. Change-Id: I2607c610593c6e250569fbd3b4f1a5516f6ea62f Fixes: 121115306 Test: robotests --- res/drawable/ic_battery_saver_accent_24dp.xml | 29 ----- res/values/strings.xml | 6 - .../BatterySaverConditionController.java | 108 ------------------ .../conditional/ConditionManager.java | 1 - .../BatterySaverConditionControllerTest.java | 86 -------------- 5 files changed, 230 deletions(-) delete mode 100644 res/drawable/ic_battery_saver_accent_24dp.xml delete mode 100644 src/com/android/settings/homepage/contextualcards/conditional/BatterySaverConditionController.java delete mode 100644 tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/BatterySaverConditionControllerTest.java diff --git a/res/drawable/ic_battery_saver_accent_24dp.xml b/res/drawable/ic_battery_saver_accent_24dp.xml deleted file mode 100644 index c8def54883d..00000000000 --- a/res/drawable/ic_battery_saver_accent_24dp.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - diff --git a/res/values/strings.xml b/res/values/strings.xml index d042ebcb5ba..545b6f99796 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -9019,12 +9019,6 @@ Impacts what you hear and see - - Battery Saver is on - - - Features restricted - Mobile data is off diff --git a/src/com/android/settings/homepage/contextualcards/conditional/BatterySaverConditionController.java b/src/com/android/settings/homepage/contextualcards/conditional/BatterySaverConditionController.java deleted file mode 100644 index bce7c5dd981..00000000000 --- a/src/com/android/settings/homepage/contextualcards/conditional/BatterySaverConditionController.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * 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.homepage.contextualcards.conditional; - -import android.content.Context; -import android.os.PowerManager; - -import com.android.internal.logging.nano.MetricsProto; -import com.android.settings.R; -import com.android.settings.core.SubSettingLauncher; -import com.android.settings.fuelgauge.BatterySaverReceiver; -import com.android.settings.fuelgauge.batterysaver.BatterySaverSettings; -import com.android.settings.homepage.contextualcards.ContextualCard; -import com.android.settingslib.fuelgauge.BatterySaverUtils; - -import java.util.Objects; - -public class BatterySaverConditionController implements ConditionalCardController, - BatterySaverReceiver.BatterySaverListener { - static final int ID = Objects.hash("BatterySaverConditionController"); - - private final Context mAppContext; - private final ConditionManager mConditionManager; - private final BatterySaverReceiver mReceiver; - private final PowerManager mPowerManager; - - public BatterySaverConditionController(Context appContext, ConditionManager conditionManager) { - mAppContext = appContext; - mConditionManager = conditionManager; - mPowerManager = appContext.getSystemService(PowerManager.class); - mReceiver = new BatterySaverReceiver(appContext); - mReceiver.setBatterySaverListener(this); - } - - @Override - public long getId() { - return ID; - } - - @Override - public boolean isDisplayable() { - return mPowerManager.isPowerSaveMode(); - } - - @Override - public void onPrimaryClick(Context context) { - new SubSettingLauncher(context) - .setDestination(BatterySaverSettings.class.getName()) - .setSourceMetricsCategory(MetricsProto.MetricsEvent.DASHBOARD_SUMMARY) - .setTitleRes(R.string.battery_saver) - .launch(); - } - - @Override - public void onActionClick() { - BatterySaverUtils.setPowerSaveMode(mAppContext, false, - /*needFirstTimeWarning*/ false); - } - - @Override - public ContextualCard buildContextualCard() { - return new ConditionalContextualCard.Builder() - .setConditionId(ID) - .setMetricsConstant(MetricsProto.MetricsEvent.SETTINGS_CONDITION_BATTERY_SAVER) - .setActionText(mAppContext.getText(R.string.condition_turn_off)) - .setName(mAppContext.getPackageName() + "/" - + mAppContext.getText(R.string.condition_battery_title)) - .setTitleText(mAppContext.getText(R.string.condition_battery_title).toString()) - .setSummaryText(mAppContext.getText(R.string.condition_battery_summary).toString()) - .setIconDrawable(mAppContext.getDrawable(R.drawable.ic_battery_saver_accent_24dp)) - .setIsHalfWidth(true) - .build(); - } - - @Override - public void startMonitoringStateChange() { - mReceiver.setListening(true); - } - - @Override - public void stopMonitoringStateChange() { - mReceiver.setListening(false); - } - - @Override - public void onPowerSaveModeChanged() { - mConditionManager.onConditionChanged(); - } - - @Override - public void onBatteryChanged(boolean pluggedIn) { - - } -} diff --git a/src/com/android/settings/homepage/contextualcards/conditional/ConditionManager.java b/src/com/android/settings/homepage/contextualcards/conditional/ConditionManager.java index c741b98c359..39f490312cf 100644 --- a/src/com/android/settings/homepage/contextualcards/conditional/ConditionManager.java +++ b/src/com/android/settings/homepage/contextualcards/conditional/ConditionManager.java @@ -154,7 +154,6 @@ public class ConditionManager { mCardControllers.add(new AirplaneModeConditionController(mAppContext, this /* manager */)); mCardControllers.add( new BackgroundDataConditionController(mAppContext, this /* manager */)); - mCardControllers.add(new BatterySaverConditionController(mAppContext, this /* manager */)); mCardControllers.add(new CellularDataConditionController(mAppContext, this /* manager */)); mCardControllers.add(new DndConditionCardController(mAppContext, this /* manager */)); mCardControllers.add(new HotspotConditionController(mAppContext, this /* manager */)); diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/BatterySaverConditionControllerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/BatterySaverConditionControllerTest.java deleted file mode 100644 index e4ca6c09722..00000000000 --- a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/BatterySaverConditionControllerTest.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * 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.homepage.contextualcards.conditional; - -import static com.google.common.truth.Truth.assertThat; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; - -import android.content.Context; -import android.content.IntentFilter; -import android.os.PowerManager; - -import com.android.settings.fuelgauge.BatterySaverReceiver; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.robolectric.RobolectricTestRunner; -import org.robolectric.RuntimeEnvironment; -import org.robolectric.Shadows; -import org.robolectric.shadows.ShadowPowerManager; - -@RunWith(RobolectricTestRunner.class) -public class BatterySaverConditionControllerTest { - @Mock - private ConditionManager mConditionManager; - - private ShadowPowerManager mPowerManager; - private Context mContext; - private BatterySaverConditionController mController; - - @Before - public void setUp() { - MockitoAnnotations.initMocks(this); - mContext = spy(RuntimeEnvironment.application); - mPowerManager = Shadows.shadowOf(mContext.getSystemService(PowerManager.class)); - mController = new BatterySaverConditionController(mContext, mConditionManager); - } - - @Test - public void startMonitor_shouldRegisterReceiver() { - mController.startMonitoringStateChange(); - - verify(mContext).registerReceiver(any(BatterySaverReceiver.class), any(IntentFilter.class)); - } - - @Test - public void stopMonitor_shouldUnregisterReceiver() { - mController.startMonitoringStateChange(); - mController.stopMonitoringStateChange(); - - verify(mContext).unregisterReceiver(any(BatterySaverReceiver.class)); - } - - @Test - public void isDisplayable_PowerSaverOn_true() { - mPowerManager.setIsPowerSaveMode(true); - - assertThat(mController.isDisplayable()).isTrue(); - } - - @Test - public void isDisplayable_PowerSaverOff_false() { - mPowerManager.setIsPowerSaveMode(false); - - assertThat(mController.isDisplayable()).isFalse(); - } -}