Add metric for battery defender

Bug: 188384887
Test: make SettingsRoboTests
Change-Id: Ida96deb6efe94a98cf6837b9f82758467a4d1300
This commit is contained in:
ykhung
2021-05-17 23:16:10 +08:00
committed by YUKAI HUNG
parent cadd868911
commit 6590b368f2
8 changed files with 102 additions and 7 deletions

View File

@@ -132,7 +132,6 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
savedInstanceState.getBoolean(KEY_EXPAND_SYSTEM_INFO, mIsExpanded); savedInstanceState.getBoolean(KEY_EXPAND_SYSTEM_INFO, mIsExpanded);
Log.d(TAG, String.format("onCreate() slotIndex=%d isExpanded=%b", Log.d(TAG, String.format("onCreate() slotIndex=%d isExpanded=%b",
mTrapezoidIndex, mIsExpanded)); mTrapezoidIndex, mIsExpanded));
mMetricsFeatureProvider.action(mPrefContext, SettingsEnums.OPEN_BATTERY_USAGE);
} }
@Override @Override
@@ -145,6 +144,7 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
BatteryDiffEntry.clearCache(); BatteryDiffEntry.clearCache();
Log.d(TAG, "clear icon and label cache since uiMode is changed"); Log.d(TAG, "clear icon and label cache since uiMode is changed");
} }
mMetricsFeatureProvider.action(mPrefContext, SettingsEnums.OPEN_BATTERY_USAGE);
} }
@Override @Override

View File

@@ -41,7 +41,7 @@ public class SmartBatterySettings extends DashboardFragment {
@Override @Override
public int getMetricsCategory() { public int getMetricsCategory() {
return SettingsEnums.FUELGAUGE_SMART_BATTERY; return SettingsEnums.OPEN_BATTERY_ADAPTIVE_PREFERENCES;
} }
@Override @Override

View File

@@ -54,7 +54,7 @@ public class BatterySaverSettings extends DashboardFragment {
@Override @Override
public int getMetricsCategory() { public int getMetricsCategory() {
return SettingsEnums.FUELGAUGE_BATTERY_SAVER; return SettingsEnums.OPEN_BATTERY_SAVER;
} }
@Override @Override

View File

@@ -16,6 +16,7 @@
package com.android.settings.fuelgauge.batterytip.actions; package com.android.settings.fuelgauge.batterytip.actions;
import android.app.settings.SettingsEnums;
import android.content.Intent; import android.content.Intent;
import com.android.settings.R; import com.android.settings.R;
@@ -38,6 +39,8 @@ public class BatteryDefenderAction extends BatteryTipAction {
*/ */
@Override @Override
public void handlePositiveAction(int metricsKey) { public void handlePositiveAction(int metricsKey) {
mMetricsFeatureProvider.action(mContext,
SettingsEnums.ACTION_TIP_BATTERY_DEFENDER, metricsKey);
final Intent intent = HelpUtils.getHelpIntent( final Intent intent = HelpUtils.getHelpIntent(
mContext, mContext,
mContext.getString(R.string.help_url_battery_defender), mContext.getString(R.string.help_url_battery_defender),
@@ -45,6 +48,5 @@ public class BatteryDefenderAction extends BatteryTipAction {
if (intent != null) { if (intent != null) {
mSettingsActivity.startActivityForResult(intent, 0); mSettingsActivity.startActivityForResult(intent, 0);
} }
// TODO(b/173985153): Add logging enums for Battery Defender.
} }
} }

View File

@@ -16,6 +16,7 @@
package com.android.settings.fuelgauge.batterytip.tips; package com.android.settings.fuelgauge.batterytip.tips;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.os.Parcel; import android.os.Parcel;
@@ -57,7 +58,8 @@ public class BatteryDefenderTip extends BatteryTip {
@Override @Override
public void log(Context context, MetricsFeatureProvider metricsFeatureProvider) { public void log(Context context, MetricsFeatureProvider metricsFeatureProvider) {
// TODO(b/173985153): Add logging enums for Battery Defender. metricsFeatureProvider.action(context, SettingsEnums.ACTION_BATTERY_DEFENDER_TIP,
mState);
} }
public static final Creator CREATOR = new Creator() { public static final Creator CREATOR = new Creator() {

View File

@@ -139,6 +139,8 @@ public final class BatteryChartPreferenceControllerTest {
mBatteryChartPreferenceController.onResume(); mBatteryChartPreferenceController.onResume();
assertThat(BatteryDiffEntry.sResourceCache).isNotEmpty(); assertThat(BatteryDiffEntry.sResourceCache).isNotEmpty();
verify(mMetricsFeatureProvider)
.action(mContext, SettingsEnums.OPEN_BATTERY_USAGE);
} }
@Test @Test
@@ -658,8 +660,6 @@ public final class BatteryChartPreferenceControllerTest {
assertThat(mBatteryChartPreferenceController.mTrapezoidIndex) assertThat(mBatteryChartPreferenceController.mTrapezoidIndex)
.isEqualTo(expectedIndex); .isEqualTo(expectedIndex);
assertThat(mBatteryChartPreferenceController.mIsExpanded).isTrue(); assertThat(mBatteryChartPreferenceController.mIsExpanded).isTrue();
verify(mMetricsFeatureProvider)
.action(mContext, SettingsEnums.OPEN_BATTERY_USAGE);
} }
@Test @Test

View File

@@ -0,0 +1,70 @@
/*
* Copyright (C) 2021 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 static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import android.app.settings.SettingsEnums;
import android.content.Context;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
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;
@RunWith(RobolectricTestRunner.class)
public final class BatteryDefenderActionTest {
private Context mContext;
private FakeFeatureFactory mFeatureFactory;
private BatteryDefenderAction mBatteryDefenderAction;
private MetricsFeatureProvider mMetricsFeatureProvider;
@Mock private SettingsActivity mSettingsActivity;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mFeatureFactory = FakeFeatureFactory.setupForTest();
mMetricsFeatureProvider = mFeatureFactory.metricsFeatureProvider;
mContext = spy(RuntimeEnvironment.application);
doReturn(mContext).when(mSettingsActivity).getApplicationContext();
mBatteryDefenderAction = new BatteryDefenderAction(mSettingsActivity);
}
@Test
public void testHandlePositiveAction_logMetric() {
final int metricKey = 10;
mBatteryDefenderAction.handlePositiveAction(metricKey);
verify(mMetricsFeatureProvider).action(mContext,
SettingsEnums.ACTION_TIP_BATTERY_DEFENDER, metricKey);
}
}

View File

@@ -17,13 +17,19 @@ package com.android.settings.fuelgauge.batterytip.tips;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.verify;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment; import org.robolectric.RuntimeEnvironment;
@@ -32,12 +38,18 @@ import org.robolectric.RuntimeEnvironment;
public class BatteryDefenderTipTest { public class BatteryDefenderTipTest {
private Context mContext; private Context mContext;
private FakeFeatureFactory mFeatureFactory;
private BatteryDefenderTip mBatteryDefenderTip; private BatteryDefenderTip mBatteryDefenderTip;
private MetricsFeatureProvider mMetricsFeatureProvider;
@Mock private BatteryTip mBatteryTip;
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mFeatureFactory = FakeFeatureFactory.setupForTest();
mMetricsFeatureProvider = mFeatureFactory.metricsFeatureProvider;
mContext = RuntimeEnvironment.application; mContext = RuntimeEnvironment.application;
mBatteryDefenderTip = new BatteryDefenderTip(BatteryTip.StateType.NEW); mBatteryDefenderTip = new BatteryDefenderTip(BatteryTip.StateType.NEW);
} }
@@ -59,4 +71,13 @@ public class BatteryDefenderTipTest {
assertThat(mBatteryDefenderTip.getIconId()) assertThat(mBatteryDefenderTip.getIconId())
.isEqualTo(R.drawable.ic_battery_status_good_24dp); .isEqualTo(R.drawable.ic_battery_status_good_24dp);
} }
@Test
public void testLog_logMetric() {
mBatteryDefenderTip.updateState(mBatteryTip);
mBatteryDefenderTip.log(mContext, mMetricsFeatureProvider);
verify(mMetricsFeatureProvider).action(mContext,
SettingsEnums.ACTION_BATTERY_DEFENDER_TIP, mBatteryTip.mState);
}
} }