Loading src/com/android/settings/fuelgauge/batterytip/BatteryTipUtils.java +6 −1 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import com.android.settings.SettingsActivity; import com.android.settings.core.InstrumentedPreferenceFragment; import com.android.settings.fuelgauge.batterytip.actions.BatterySaverAction; import com.android.settings.fuelgauge.batterytip.actions.BatteryTipAction; import com.android.settings.fuelgauge.batterytip.actions.OpenBatterySaverAction; import com.android.settings.fuelgauge.batterytip.actions.OpenRestrictAppFragmentAction; import com.android.settings.fuelgauge.batterytip.actions.RestrictAppAction; import com.android.settings.fuelgauge.batterytip.actions.SmartBatteryAction; Loading Loading @@ -93,7 +94,11 @@ public class BatteryTipUtils { case BatteryTip.TipType.SMART_BATTERY_MANAGER: return new SmartBatteryAction(settingsActivity, fragment); case BatteryTip.TipType.BATTERY_SAVER: if (batteryTip.getState() == BatteryTip.StateType.HANDLED) { return new OpenBatterySaverAction(settingsActivity); } else { return new BatterySaverAction(settingsActivity); } case BatteryTip.TipType.APP_RESTRICTION: if (batteryTip.getState() == BatteryTip.StateType.HANDLED) { return new OpenRestrictAppFragmentAction(settingsActivity, fragment, Loading src/com/android/settings/fuelgauge/batterytip/actions/OpenBatterySaverAction.java 0 → 100644 +56 −0 Original line number Diff line number Diff line /* * 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.fuelgauge.batterytip.actions; import android.content.Context; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.core.InstrumentedPreferenceFragment; import com.android.settings.core.SubSettingLauncher; import com.android.settings.fuelgauge.BatteryUtils; import com.android.settings.fuelgauge.RestrictedAppDetails; import com.android.settings.fuelgauge.batterysaver.BatterySaverSettings; import com.android.settings.fuelgauge.batterytip.AppInfo; import com.android.settings.fuelgauge.batterytip.tips.RestrictAppTip; import java.util.List; /** * * Action to open the {@link com.android.settings.fuelgauge.batterysaver.BatterySaverSettings} */ public class OpenBatterySaverAction extends BatteryTipAction { public OpenBatterySaverAction(Context context) { super(context); } /** * Handle the action when user clicks positive button */ @Override public void handlePositiveAction(int metricsKey) { mMetricsFeatureProvider.action(mContext, MetricsProto.MetricsEvent.ACTION_TIP_OPEN_BATTERY_SAVER_PAGE, metricsKey); new SubSettingLauncher(mContext) .setDestination(BatterySaverSettings.class.getName()) .setSourceMetricsCategory(metricsKey) .launch(); } } tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipUtilsTest.java +21 −0 Original line number Diff line number Diff line Loading @@ -23,9 +23,12 @@ import static org.mockito.Mockito.when; import com.android.settings.SettingsActivity; import com.android.settings.core.InstrumentedPreferenceFragment; import com.android.settings.fuelgauge.batterytip.actions.BatterySaverAction; import com.android.settings.fuelgauge.batterytip.actions.OpenBatterySaverAction; import com.android.settings.fuelgauge.batterytip.actions.OpenRestrictAppFragmentAction; import com.android.settings.fuelgauge.batterytip.actions.RestrictAppAction; import com.android.settings.fuelgauge.batterytip.tips.BatteryTip; import com.android.settings.fuelgauge.batterytip.tips.EarlyWarningTip; import com.android.settings.fuelgauge.batterytip.tips.RestrictAppTip; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.SettingsRobolectricTestRunner; Loading @@ -47,6 +50,7 @@ public class BatteryTipUtilsTest { @Mock private InstrumentedPreferenceFragment mFragment; private RestrictAppTip mRestrictAppTip; private EarlyWarningTip mEarlyWarningTip; @Before public void setUp() { Loading @@ -55,6 +59,7 @@ public class BatteryTipUtilsTest { FakeFeatureFactory.setupForTest(); doReturn(RuntimeEnvironment.application).when(mFragment).getContext(); mRestrictAppTip = spy(new RestrictAppTip(BatteryTip.StateType.NEW, new ArrayList<>())); mEarlyWarningTip = spy(new EarlyWarningTip(BatteryTip.StateType.NEW, true)); } @Test Loading @@ -72,4 +77,20 @@ public class BatteryTipUtilsTest { assertThat(BatteryTipUtils.getActionForBatteryTip(mRestrictAppTip, mSettingsActivity, mFragment)).isInstanceOf(OpenRestrictAppFragmentAction.class); } @Test public void testGetActionForBatteryTip_typeEarlyWarningStateNew_returnActionBatterySaver() { when(mEarlyWarningTip.getState()).thenReturn(BatteryTip.StateType.NEW); assertThat(BatteryTipUtils.getActionForBatteryTip(mEarlyWarningTip, mSettingsActivity, mFragment)).isInstanceOf(BatterySaverAction.class); } @Test public void testGetActionForBatteryTip_typeEarlyWarningStateHandled_returnActionOpen() { when(mEarlyWarningTip.getState()).thenReturn(BatteryTip.StateType.HANDLED); assertThat(BatteryTipUtils.getActionForBatteryTip(mEarlyWarningTip, mSettingsActivity, mFragment)).isInstanceOf(OpenBatterySaverAction.class); } } Loading
src/com/android/settings/fuelgauge/batterytip/BatteryTipUtils.java +6 −1 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import com.android.settings.SettingsActivity; import com.android.settings.core.InstrumentedPreferenceFragment; import com.android.settings.fuelgauge.batterytip.actions.BatterySaverAction; import com.android.settings.fuelgauge.batterytip.actions.BatteryTipAction; import com.android.settings.fuelgauge.batterytip.actions.OpenBatterySaverAction; import com.android.settings.fuelgauge.batterytip.actions.OpenRestrictAppFragmentAction; import com.android.settings.fuelgauge.batterytip.actions.RestrictAppAction; import com.android.settings.fuelgauge.batterytip.actions.SmartBatteryAction; Loading Loading @@ -93,7 +94,11 @@ public class BatteryTipUtils { case BatteryTip.TipType.SMART_BATTERY_MANAGER: return new SmartBatteryAction(settingsActivity, fragment); case BatteryTip.TipType.BATTERY_SAVER: if (batteryTip.getState() == BatteryTip.StateType.HANDLED) { return new OpenBatterySaverAction(settingsActivity); } else { return new BatterySaverAction(settingsActivity); } case BatteryTip.TipType.APP_RESTRICTION: if (batteryTip.getState() == BatteryTip.StateType.HANDLED) { return new OpenRestrictAppFragmentAction(settingsActivity, fragment, Loading
src/com/android/settings/fuelgauge/batterytip/actions/OpenBatterySaverAction.java 0 → 100644 +56 −0 Original line number Diff line number Diff line /* * 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.fuelgauge.batterytip.actions; import android.content.Context; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.core.InstrumentedPreferenceFragment; import com.android.settings.core.SubSettingLauncher; import com.android.settings.fuelgauge.BatteryUtils; import com.android.settings.fuelgauge.RestrictedAppDetails; import com.android.settings.fuelgauge.batterysaver.BatterySaverSettings; import com.android.settings.fuelgauge.batterytip.AppInfo; import com.android.settings.fuelgauge.batterytip.tips.RestrictAppTip; import java.util.List; /** * * Action to open the {@link com.android.settings.fuelgauge.batterysaver.BatterySaverSettings} */ public class OpenBatterySaverAction extends BatteryTipAction { public OpenBatterySaverAction(Context context) { super(context); } /** * Handle the action when user clicks positive button */ @Override public void handlePositiveAction(int metricsKey) { mMetricsFeatureProvider.action(mContext, MetricsProto.MetricsEvent.ACTION_TIP_OPEN_BATTERY_SAVER_PAGE, metricsKey); new SubSettingLauncher(mContext) .setDestination(BatterySaverSettings.class.getName()) .setSourceMetricsCategory(metricsKey) .launch(); } }
tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipUtilsTest.java +21 −0 Original line number Diff line number Diff line Loading @@ -23,9 +23,12 @@ import static org.mockito.Mockito.when; import com.android.settings.SettingsActivity; import com.android.settings.core.InstrumentedPreferenceFragment; import com.android.settings.fuelgauge.batterytip.actions.BatterySaverAction; import com.android.settings.fuelgauge.batterytip.actions.OpenBatterySaverAction; import com.android.settings.fuelgauge.batterytip.actions.OpenRestrictAppFragmentAction; import com.android.settings.fuelgauge.batterytip.actions.RestrictAppAction; import com.android.settings.fuelgauge.batterytip.tips.BatteryTip; import com.android.settings.fuelgauge.batterytip.tips.EarlyWarningTip; import com.android.settings.fuelgauge.batterytip.tips.RestrictAppTip; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.SettingsRobolectricTestRunner; Loading @@ -47,6 +50,7 @@ public class BatteryTipUtilsTest { @Mock private InstrumentedPreferenceFragment mFragment; private RestrictAppTip mRestrictAppTip; private EarlyWarningTip mEarlyWarningTip; @Before public void setUp() { Loading @@ -55,6 +59,7 @@ public class BatteryTipUtilsTest { FakeFeatureFactory.setupForTest(); doReturn(RuntimeEnvironment.application).when(mFragment).getContext(); mRestrictAppTip = spy(new RestrictAppTip(BatteryTip.StateType.NEW, new ArrayList<>())); mEarlyWarningTip = spy(new EarlyWarningTip(BatteryTip.StateType.NEW, true)); } @Test Loading @@ -72,4 +77,20 @@ public class BatteryTipUtilsTest { assertThat(BatteryTipUtils.getActionForBatteryTip(mRestrictAppTip, mSettingsActivity, mFragment)).isInstanceOf(OpenRestrictAppFragmentAction.class); } @Test public void testGetActionForBatteryTip_typeEarlyWarningStateNew_returnActionBatterySaver() { when(mEarlyWarningTip.getState()).thenReturn(BatteryTip.StateType.NEW); assertThat(BatteryTipUtils.getActionForBatteryTip(mEarlyWarningTip, mSettingsActivity, mFragment)).isInstanceOf(BatterySaverAction.class); } @Test public void testGetActionForBatteryTip_typeEarlyWarningStateHandled_returnActionOpen() { when(mEarlyWarningTip.getState()).thenReturn(BatteryTip.StateType.HANDLED); assertThat(BatteryTipUtils.getActionForBatteryTip(mEarlyWarningTip, mSettingsActivity, mFragment)).isInstanceOf(OpenBatterySaverAction.class); } }