Add metric enums for menu in battery settings page.

Bug: 35063415
Test: RunSettingsRoboTests
Change-Id: I23f58a73f7e17da56796687209610165dd688aa6
This commit is contained in:
jackqdyulei
2017-03-01 14:52:48 -08:00
parent 05c3333cbd
commit b0b45c3225
2 changed files with 49 additions and 2 deletions

View File

@@ -53,6 +53,7 @@ import com.android.settings.Utils;
import com.android.settings.applications.LayoutPreference; import com.android.settings.applications.LayoutPreference;
import com.android.settings.applications.ManageApplications; import com.android.settings.applications.ManageApplications;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceController;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.dashboard.SummaryLoader; import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.display.AutoBrightnessPreferenceController; import com.android.settings.display.AutoBrightnessPreferenceController;
import com.android.settings.display.TimeoutPreferenceController; import com.android.settings.display.TimeoutPreferenceController;
@@ -90,7 +91,8 @@ public class PowerUsageSummary extends PowerUsageBase {
private static final int MENU_STATS_TYPE = Menu.FIRST; private static final int MENU_STATS_TYPE = Menu.FIRST;
private static final int MENU_HIGH_POWER_APPS = Menu.FIRST + 3; @VisibleForTesting
static final int MENU_HIGH_POWER_APPS = Menu.FIRST + 3;
@VisibleForTesting @VisibleForTesting
static final int MENU_ADDITIONAL_BATTERY_INFO = Menu.FIRST + 4; static final int MENU_ADDITIONAL_BATTERY_INFO = Menu.FIRST + 4;
@VisibleForTesting @VisibleForTesting
@@ -216,6 +218,10 @@ public class PowerUsageSummary extends PowerUsageBase {
@Override @Override
public boolean onOptionsItemSelected(MenuItem item) { public boolean onOptionsItemSelected(MenuItem item) {
final SettingsActivity sa = (SettingsActivity) getActivity(); final SettingsActivity sa = (SettingsActivity) getActivity();
final Context context = getContext();
final MetricsFeatureProvider metricsFeatureProvider =
FeatureFactory.getFactory(context).getMetricsFeatureProvider();
switch (item.getItemId()) { switch (item.getItemId()) {
case MENU_STATS_TYPE: case MENU_STATS_TYPE:
if (mStatsType == BatteryStats.STATS_SINCE_CHARGED) { if (mStatsType == BatteryStats.STATS_SINCE_CHARGED) {
@@ -231,15 +237,21 @@ public class PowerUsageSummary extends PowerUsageBase {
HighPowerApplicationsActivity.class.getName()); HighPowerApplicationsActivity.class.getName());
sa.startPreferencePanel(this, ManageApplications.class.getName(), args, sa.startPreferencePanel(this, ManageApplications.class.getName(), args,
R.string.high_power_apps, null, null, 0); R.string.high_power_apps, null, null, 0);
metricsFeatureProvider.action(context,
MetricsEvent.ACTION_SETTINGS_MENU_BATTERY_OPTIMIZATION);
return true; return true;
case MENU_ADDITIONAL_BATTERY_INFO: case MENU_ADDITIONAL_BATTERY_INFO:
startActivity(FeatureFactory.getFactory(getContext()) startActivity(FeatureFactory.getFactory(getContext())
.getPowerUsageFeatureProvider(getContext()) .getPowerUsageFeatureProvider(getContext())
.getAdditionalBatteryInfoIntent()); .getAdditionalBatteryInfoIntent());
metricsFeatureProvider.action(context,
MetricsEvent.ACTION_SETTINGS_MENU_BATTERY_USAGE_ALERTS);
return true; return true;
case MENU_TOGGLE_APPS: case MENU_TOGGLE_APPS:
mShowAllApps = !mShowAllApps; mShowAllApps = !mShowAllApps;
item.setTitle(mShowAllApps ? R.string.hide_extra_apps : R.string.show_all_apps); item.setTitle(mShowAllApps ? R.string.hide_extra_apps : R.string.show_all_apps);
metricsFeatureProvider.action(context,
MetricsEvent.ACTION_SETTINGS_MENU_BATTERY_APPS_TOGGLE, mShowAllApps);
refreshStats(); refreshStats();
return true; return true;
default: default:

View File

@@ -15,6 +15,7 @@
*/ */
package com.android.settings.fuelgauge; package com.android.settings.fuelgauge;
import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.PowerManager; import android.os.PowerManager;
@@ -27,10 +28,12 @@ import android.view.MenuInflater;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.widget.TextView; import android.widget.TextView;
import com.android.internal.logging.nano.MetricsProto;
import com.android.internal.os.BatterySipper; import com.android.internal.os.BatterySipper;
import com.android.internal.os.BatteryStatsHelper; import com.android.internal.os.BatteryStatsHelper;
import com.android.internal.os.BatteryStatsImpl; import com.android.internal.os.BatteryStatsImpl;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.SettingsRobolectricTestRunner; import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig; import com.android.settings.TestConfig;
import com.android.settings.Utils; import com.android.settings.Utils;
@@ -52,6 +55,7 @@ import java.util.List;
import static com.android.settings.fuelgauge.PowerUsageBase.MENU_STATS_REFRESH; import static com.android.settings.fuelgauge.PowerUsageBase.MENU_STATS_REFRESH;
import static com.android.settings.fuelgauge.PowerUsageSummary.MENU_ADDITIONAL_BATTERY_INFO; import static com.android.settings.fuelgauge.PowerUsageSummary.MENU_ADDITIONAL_BATTERY_INFO;
import static com.android.settings.fuelgauge.PowerUsageSummary.MENU_HIGH_POWER_APPS;
import static com.android.settings.fuelgauge.PowerUsageSummary.MENU_TOGGLE_APPS; import static com.android.settings.fuelgauge.PowerUsageSummary.MENU_TOGGLE_APPS;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.anyInt; import static org.mockito.Matchers.anyInt;
@@ -95,6 +99,8 @@ public class PowerUsageSummaryTest {
@Mock @Mock
private MenuItem mToggleAppsMenu; private MenuItem mToggleAppsMenu;
@Mock @Mock
private MenuItem mHighPowerMenu;
@Mock
private MenuInflater mMenuInflater; private MenuInflater mMenuInflater;
@Mock @Mock
private BatterySipper mNormalBatterySipper; private BatterySipper mNormalBatterySipper;
@@ -128,6 +134,8 @@ public class PowerUsageSummaryTest {
private BatteryStatsHelper mBatteryHelper; private BatteryStatsHelper mBatteryHelper;
@Mock @Mock
private PowerManager mPowerManager; private PowerManager mPowerManager;
@Mock
private SettingsActivity mSettingsActivity;
private List<BatterySipper> mUsageList; private List<BatterySipper> mUsageList;
private Context mRealContext; private Context mRealContext;
@@ -145,10 +153,12 @@ public class PowerUsageSummaryTest {
mFragment = spy(new TestFragment(mContext)); mFragment = spy(new TestFragment(mContext));
mFragment.initFeatureProvider(); mFragment.initFeatureProvider();
when(mFragment.getActivity()).thenReturn(mSettingsActivity);
when(mAdditionalBatteryInfoMenu.getItemId()) when(mAdditionalBatteryInfoMenu.getItemId())
.thenReturn(MENU_ADDITIONAL_BATTERY_INFO); .thenReturn(MENU_ADDITIONAL_BATTERY_INFO);
when(mToggleAppsMenu.getItemId()).thenReturn(MENU_TOGGLE_APPS); when(mToggleAppsMenu.getItemId()).thenReturn(MENU_TOGGLE_APPS);
when(mHighPowerMenu.getItemId()).thenReturn(MENU_HIGH_POWER_APPS);
when(mFeatureFactory.powerUsageFeatureProvider.getAdditionalBatteryInfoIntent()) when(mFeatureFactory.powerUsageFeatureProvider.getAdditionalBatteryInfoIntent())
.thenReturn(ADDITIONAL_BATTERY_INFO_INTENT); .thenReturn(ADDITIONAL_BATTERY_INFO_INTENT);
when(mBatteryHelper.getTotalPower()).thenReturn(TOTAL_POWER); when(mBatteryHelper.getTotalPower()).thenReturn(TOTAL_POWER);
@@ -215,6 +225,31 @@ public class PowerUsageSummaryTest {
Menu.NONE, R.string.additional_battery_info); Menu.NONE, R.string.additional_battery_info);
} }
@Test
public void testOptionsMenu_MenuHighPower_MetricEventInvoked() {
mFragment.onOptionsItemSelected(mHighPowerMenu);
verify(mFeatureFactory.metricsFeatureProvider).action(mContext,
MetricsProto.MetricsEvent.ACTION_SETTINGS_MENU_BATTERY_OPTIMIZATION);
}
@Test
public void testOptionsMenu_MenuAdditionalBattery_MetricEventInvoked() {
mFragment.onOptionsItemSelected(mAdditionalBatteryInfoMenu);
verify(mFeatureFactory.metricsFeatureProvider).action(mContext,
MetricsProto.MetricsEvent.ACTION_SETTINGS_MENU_BATTERY_USAGE_ALERTS);
}
@Test
public void testOptionsMenu_MenuAppToggle_MetricEventInvoked() {
mFragment.onOptionsItemSelected(mToggleAppsMenu);
mFragment.mShowAllApps = false;
verify(mFeatureFactory.metricsFeatureProvider).action(mContext,
MetricsProto.MetricsEvent.ACTION_SETTINGS_MENU_BATTERY_APPS_TOGGLE, true);
}
@Test @Test
public void testOptionsMenu_ToggleAppsEnabled() { public void testOptionsMenu_ToggleAppsEnabled() {
when(mFeatureFactory.powerUsageFeatureProvider.isPowerAccountingToggleEnabled()) when(mFeatureFactory.powerUsageFeatureProvider.isPowerAccountingToggleEnabled())