Loading src/com/android/settings/fuelgauge/PowerUsageAdvanced.java +1 −48 Original line number Diff line number Diff line Loading @@ -17,14 +17,9 @@ import static com.android.settings.fuelgauge.BatteryBroadcastReceiver.BatteryUpd import android.app.settings.SettingsEnums; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.BatteryManager; import android.os.Bundle; import android.provider.SearchIndexableResource; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import androidx.annotation.VisibleForTesting; Loading @@ -44,16 +39,11 @@ public class PowerUsageAdvanced extends PowerUsageBase { private static final String TAG = "AdvancedBatteryUsage"; private static final String KEY_BATTERY_GRAPH = "battery_graph"; private static final String KEY_APP_LIST = "app_list"; private static final String KEY_SHOW_ALL_APPS = "show_all_apps"; @VisibleForTesting static final int MENU_TOGGLE_APPS = Menu.FIRST + 1; @VisibleForTesting BatteryHistoryPreference mHistPref; private PowerUsageFeatureProvider mPowerUsageFeatureProvider; private BatteryAppListPreferenceController mBatteryAppListPreferenceController; @VisibleForTesting boolean mShowAllApps = false; @Override public void onCreate(Bundle icicle) { Loading @@ -63,7 +53,6 @@ public class PowerUsageAdvanced extends PowerUsageBase { mHistPref = (BatteryHistoryPreference) findPreference(KEY_BATTERY_GRAPH); mPowerUsageFeatureProvider = FeatureFactory.getFactory(context) .getPowerUsageFeatureProvider(context); restoreSavedInstance(icicle); } @Override Loading @@ -89,42 +78,6 @@ public class PowerUsageAdvanced extends PowerUsageBase { return R.xml.power_usage_advanced; } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { menu.add(Menu.NONE, MENU_TOGGLE_APPS, Menu.NONE, mShowAllApps ? R.string.hide_extra_apps : R.string.show_all_apps); super.onCreateOptionsMenu(menu, inflater); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case MENU_TOGGLE_APPS: mShowAllApps = !mShowAllApps; item.setTitle(mShowAllApps ? R.string.hide_extra_apps : R.string.show_all_apps); mMetricsFeatureProvider.action(getContext(), SettingsEnums.ACTION_SETTINGS_MENU_BATTERY_APPS_TOGGLE, mShowAllApps); restartBatteryStatsLoader(BatteryUpdateType.MANUAL); return true; default: return super.onOptionsItemSelected(item); } } @VisibleForTesting void restoreSavedInstance(Bundle savedInstance) { if (savedInstance != null) { mShowAllApps = savedInstance.getBoolean(KEY_SHOW_ALL_APPS, false); } } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putBoolean(KEY_SHOW_ALL_APPS, mShowAllApps); } @Override protected List<AbstractPreferenceController> createPreferenceControllers(Context context) { final List<AbstractPreferenceController> controllers = new ArrayList<>(); Loading @@ -148,7 +101,7 @@ public class PowerUsageAdvanced extends PowerUsageBase { return; } updatePreference(mHistPref); mBatteryAppListPreferenceController.refreshAppListGroup(mBatteryUsageStats, mShowAllApps); mBatteryAppListPreferenceController.refreshAppListGroup(mBatteryUsageStats, true); } public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = Loading tests/robotests/src/com/android/settings/fuelgauge/PowerUsageAdvancedTest.javadeleted 100644 → 0 +0 −118 Original line number Diff line number Diff line /* * Copyright (C) 2017 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; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.nullable; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.Context; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import androidx.preference.PreferenceScreen; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; import com.android.settings.testutils.FakeFeatureFactory; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Answers; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; @RunWith(RobolectricTestRunner.class) public class PowerUsageAdvancedTest { @Mock private PreferenceScreen mPreferenceScreen; @Mock(answer = Answers.RETURNS_DEEP_STUBS) private Menu mMenu; @Mock private MenuInflater mMenuInflater; @Mock private MenuItem mToggleAppsMenu; private Context mContext; private PowerUsageAdvanced mFragment; private FakeFeatureFactory mFeatureFactory; @Before public void setUp() { MockitoAnnotations.initMocks(this); mContext = RuntimeEnvironment.application; mFeatureFactory = FakeFeatureFactory.setupForTest(); when(mToggleAppsMenu.getItemId()).thenReturn(PowerUsageAdvanced.MENU_TOGGLE_APPS); BatteryAppListPreferenceController.sConfig = new BatteryAppListPreferenceController.Config() { @Override public boolean shouldShowBatteryAttributionList(Context context) { return true; } }; mFragment = spy(new PowerUsageAdvanced()); mFragment.onAttach(mContext); } @Test public void testSaveInstanceState_showAllAppsRestored() { Bundle bundle = new Bundle(); mFragment.mShowAllApps = true; doReturn(mPreferenceScreen).when(mFragment).getPreferenceScreen(); mFragment.onSaveInstanceState(bundle); mFragment.restoreSavedInstance(bundle); assertThat(mFragment.mShowAllApps).isTrue(); } @Test public void testOptionsMenu_menuAppToggle_metricEventInvoked() { mFragment.mShowAllApps = false; doNothing().when(mFragment).restartBatteryStatsLoader(anyInt()); mFragment.onOptionsItemSelected(mToggleAppsMenu); verify(mFeatureFactory.metricsFeatureProvider).action(nullable(Context.class), eq(MetricsProto.MetricsEvent.ACTION_SETTINGS_MENU_BATTERY_APPS_TOGGLE), eq(true)); } @Test public void testOptionsMenu_toggleAppsEnabled() { when(mFeatureFactory.powerUsageFeatureProvider.isPowerAccountingToggleEnabled()) .thenReturn(true); mFragment.mShowAllApps = false; mFragment.onCreateOptionsMenu(mMenu, mMenuInflater); verify(mMenu).add(Menu.NONE, PowerUsageAdvanced.MENU_TOGGLE_APPS, Menu.NONE, R.string.show_all_apps); } } Loading
src/com/android/settings/fuelgauge/PowerUsageAdvanced.java +1 −48 Original line number Diff line number Diff line Loading @@ -17,14 +17,9 @@ import static com.android.settings.fuelgauge.BatteryBroadcastReceiver.BatteryUpd import android.app.settings.SettingsEnums; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.BatteryManager; import android.os.Bundle; import android.provider.SearchIndexableResource; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import androidx.annotation.VisibleForTesting; Loading @@ -44,16 +39,11 @@ public class PowerUsageAdvanced extends PowerUsageBase { private static final String TAG = "AdvancedBatteryUsage"; private static final String KEY_BATTERY_GRAPH = "battery_graph"; private static final String KEY_APP_LIST = "app_list"; private static final String KEY_SHOW_ALL_APPS = "show_all_apps"; @VisibleForTesting static final int MENU_TOGGLE_APPS = Menu.FIRST + 1; @VisibleForTesting BatteryHistoryPreference mHistPref; private PowerUsageFeatureProvider mPowerUsageFeatureProvider; private BatteryAppListPreferenceController mBatteryAppListPreferenceController; @VisibleForTesting boolean mShowAllApps = false; @Override public void onCreate(Bundle icicle) { Loading @@ -63,7 +53,6 @@ public class PowerUsageAdvanced extends PowerUsageBase { mHistPref = (BatteryHistoryPreference) findPreference(KEY_BATTERY_GRAPH); mPowerUsageFeatureProvider = FeatureFactory.getFactory(context) .getPowerUsageFeatureProvider(context); restoreSavedInstance(icicle); } @Override Loading @@ -89,42 +78,6 @@ public class PowerUsageAdvanced extends PowerUsageBase { return R.xml.power_usage_advanced; } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { menu.add(Menu.NONE, MENU_TOGGLE_APPS, Menu.NONE, mShowAllApps ? R.string.hide_extra_apps : R.string.show_all_apps); super.onCreateOptionsMenu(menu, inflater); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case MENU_TOGGLE_APPS: mShowAllApps = !mShowAllApps; item.setTitle(mShowAllApps ? R.string.hide_extra_apps : R.string.show_all_apps); mMetricsFeatureProvider.action(getContext(), SettingsEnums.ACTION_SETTINGS_MENU_BATTERY_APPS_TOGGLE, mShowAllApps); restartBatteryStatsLoader(BatteryUpdateType.MANUAL); return true; default: return super.onOptionsItemSelected(item); } } @VisibleForTesting void restoreSavedInstance(Bundle savedInstance) { if (savedInstance != null) { mShowAllApps = savedInstance.getBoolean(KEY_SHOW_ALL_APPS, false); } } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putBoolean(KEY_SHOW_ALL_APPS, mShowAllApps); } @Override protected List<AbstractPreferenceController> createPreferenceControllers(Context context) { final List<AbstractPreferenceController> controllers = new ArrayList<>(); Loading @@ -148,7 +101,7 @@ public class PowerUsageAdvanced extends PowerUsageBase { return; } updatePreference(mHistPref); mBatteryAppListPreferenceController.refreshAppListGroup(mBatteryUsageStats, mShowAllApps); mBatteryAppListPreferenceController.refreshAppListGroup(mBatteryUsageStats, true); } public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = Loading
tests/robotests/src/com/android/settings/fuelgauge/PowerUsageAdvancedTest.javadeleted 100644 → 0 +0 −118 Original line number Diff line number Diff line /* * Copyright (C) 2017 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; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.nullable; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.Context; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import androidx.preference.PreferenceScreen; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; import com.android.settings.testutils.FakeFeatureFactory; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Answers; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; @RunWith(RobolectricTestRunner.class) public class PowerUsageAdvancedTest { @Mock private PreferenceScreen mPreferenceScreen; @Mock(answer = Answers.RETURNS_DEEP_STUBS) private Menu mMenu; @Mock private MenuInflater mMenuInflater; @Mock private MenuItem mToggleAppsMenu; private Context mContext; private PowerUsageAdvanced mFragment; private FakeFeatureFactory mFeatureFactory; @Before public void setUp() { MockitoAnnotations.initMocks(this); mContext = RuntimeEnvironment.application; mFeatureFactory = FakeFeatureFactory.setupForTest(); when(mToggleAppsMenu.getItemId()).thenReturn(PowerUsageAdvanced.MENU_TOGGLE_APPS); BatteryAppListPreferenceController.sConfig = new BatteryAppListPreferenceController.Config() { @Override public boolean shouldShowBatteryAttributionList(Context context) { return true; } }; mFragment = spy(new PowerUsageAdvanced()); mFragment.onAttach(mContext); } @Test public void testSaveInstanceState_showAllAppsRestored() { Bundle bundle = new Bundle(); mFragment.mShowAllApps = true; doReturn(mPreferenceScreen).when(mFragment).getPreferenceScreen(); mFragment.onSaveInstanceState(bundle); mFragment.restoreSavedInstance(bundle); assertThat(mFragment.mShowAllApps).isTrue(); } @Test public void testOptionsMenu_menuAppToggle_metricEventInvoked() { mFragment.mShowAllApps = false; doNothing().when(mFragment).restartBatteryStatsLoader(anyInt()); mFragment.onOptionsItemSelected(mToggleAppsMenu); verify(mFeatureFactory.metricsFeatureProvider).action(nullable(Context.class), eq(MetricsProto.MetricsEvent.ACTION_SETTINGS_MENU_BATTERY_APPS_TOGGLE), eq(true)); } @Test public void testOptionsMenu_toggleAppsEnabled() { when(mFeatureFactory.powerUsageFeatureProvider.isPowerAccountingToggleEnabled()) .thenReturn(true); mFragment.mShowAllApps = false; mFragment.onCreateOptionsMenu(mMenu, mMenuInflater); verify(mMenu).add(Menu.NONE, PowerUsageAdvanced.MENU_TOGGLE_APPS, Menu.NONE, R.string.show_all_apps); } }