Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 851d31df authored by mxyyiyi's avatar mxyyiyi Committed by Automerger Merge Worker
Browse files

Update power_anomaly_event proto fields am: 980116be

parents d1a0370d 980116be
Loading
Loading
Loading
Loading
+1 −6
Original line number Diff line number Diff line
@@ -1409,12 +1409,7 @@
    <integer-array name="network_mode_3g_deprecated_carrier_id" translatable="false">
    </integer-array>

    <!-- The following 4 arrays are for power anomaly tips card. Please keep them the same size. -->
    <string-array name="power_anomaly_keys" translatable="false">
        <item>adaptive_brightness</item>
        <item>screen_timeout</item>
    </string-array>

    <!-- The following 3 arrays are for power anomaly tips card. Please keep them the same size. -->
    <string-array name="power_anomaly_titles">
        <item>Turn on adaptive brightness to extend battery life</item>
        <item>Reduce screen timeout to extend battery life</item>
+8 −19
Original line number Diff line number Diff line
@@ -36,8 +36,6 @@ public class BatteryTipsController extends BasePreferenceController {
    private static final String ROOT_PREFERENCE_KEY = "battery_tips_category";
    private static final String CARD_PREFERENCE_KEY = "battery_tips_card";

    private final String[] mPowerAnomalyKeys;

    @VisibleForTesting
    BatteryTipsCardPreference mCardPreference;
    @VisibleForTesting
@@ -47,7 +45,6 @@ public class BatteryTipsController extends BasePreferenceController {
        super(context, ROOT_PREFERENCE_KEY);
        mPowerUsageFeatureProvider = FeatureFactory.getFactory(context)
                .getPowerUsageFeatureProvider(context);
        mPowerAnomalyKeys = context.getResources().getStringArray(R.array.power_anomaly_keys);
    }

    private boolean isTipsCardVisible() {
@@ -66,16 +63,6 @@ public class BatteryTipsController extends BasePreferenceController {
        mCardPreference = screen.findPreference(CARD_PREFERENCE_KEY);
    }

    @VisibleForTesting
    int getPowerAnomalyEventIndex(String powerAnomalyKey) {
        for (int index = 0; index < mPowerAnomalyKeys.length; index++) {
            if (mPowerAnomalyKeys[index].equals(powerAnomalyKey)) {
                return index;
            }
        }
        return -1;
    }

    private <T> T getInfo(PowerAnomalyEvent powerAnomalyEvent,
                          Function<WarningBannerInfo, T> warningBannerInfoSupplier,
                          Function<WarningItemInfo, T> warningItemInfoSupplier) {
@@ -98,8 +85,9 @@ public class BatteryTipsController extends BasePreferenceController {
            return string;
        }

        if (resourceIndex >= 0) {
            string = mContext.getResources().getStringArray(resourceId)[resourceIndex];
        String[] stringArray = mContext.getResources().getStringArray(resourceId);
        if (resourceIndex >= 0 && resourceIndex < stringArray.length) {
            string = stringArray[resourceIndex];
        }

        return string;
@@ -117,10 +105,11 @@ public class BatteryTipsController extends BasePreferenceController {
        }

        // Get card preference strings and navigate fragment info
        final int index = getPowerAnomalyEventIndex(powerAnomalyEvent.getKey());
        final int resourceIndex = powerAnomalyEvent.hasKey()
                ? powerAnomalyEvent.getKey().getNumber() : -1;

        String titleString = getString(powerAnomalyEvent, WarningBannerInfo::getTitleString,
                WarningItemInfo::getTitleString, R.array.power_anomaly_titles, index);
                WarningItemInfo::getTitleString, R.array.power_anomaly_titles, resourceIndex);
        if (titleString.isEmpty()) {
            mCardPreference.setVisible(false);
            return;
@@ -128,10 +117,10 @@ public class BatteryTipsController extends BasePreferenceController {

        String mainBtnString = getString(powerAnomalyEvent,
                WarningBannerInfo::getMainButtonString, WarningItemInfo::getMainButtonString,
                R.array.power_anomaly_main_btn_strings, index);
                R.array.power_anomaly_main_btn_strings, resourceIndex);
        String dismissBtnString = getString(powerAnomalyEvent,
                WarningBannerInfo::getCancelButtonString, WarningItemInfo::getCancelButtonString,
                R.array.power_anomaly_dismiss_btn_strings, index);
                R.array.power_anomaly_dismiss_btn_strings, resourceIndex);

        String destinationClassName = getString(powerAnomalyEvent,
                WarningBannerInfo::getMainButtonDestination,
+21 −2
Original line number Diff line number Diff line
@@ -11,8 +11,8 @@ message PowerAnomalyEventList {
message PowerAnomalyEvent {
  optional string event_id = 1;
  optional int64 timestamp = 2;
  optional string type = 3;  // e.g. settings, apps
  optional string key = 4;  // e.g. brightness, significant_increase
  optional PowerAnomalyType type = 3;
  optional PowerAnomalyKey key = 4;
  optional float score = 5;
  oneof info {
    WarningBannerInfo warning_banner_info = 6;
@@ -20,6 +20,25 @@ message PowerAnomalyEvent {
  }
}

// NOTE: Please DO NOT delete enum items or change enum values. Use [deprecated = true] instead.
// The enum value will be used to decide the tips card style like icons and colors.
//
// Next id: 2
enum PowerAnomalyType{
  TYPE_SETTINGS_BANNER = 0;
  TYPE_APPS_ITEM = 1;
}

// NOTE: Please DO NOT delete enum items or change enum values. Use [deprecated = true] instead.
// The enum value will be used to decide pre-defined title and button labels.
//
// Next id: 3
enum PowerAnomalyKey{
  KEY_BRIGHTNESS = 0;
  KEY_SCREEN_TIMEOUT = 1;
  KEY_APP = 2;
}

message WarningBannerInfo {
  optional string title_string = 1;
  optional string description_string = 2;
+0 −17
Original line number Diff line number Diff line
@@ -16,8 +16,6 @@

package com.android.settings.fuelgauge.batteryusage;

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;
@@ -68,21 +66,6 @@ public final class BatteryTipsControllerTest {
        mBatteryTipsController.mPowerUsageFeatureProvider = mPowerUsageFeatureProvider;
    }

    @Test
    public void parsePowerAnomalyKey_preDefinedKeys_returnTrue() {
        final String[] keys = {"adaptive_brightness", "screen_timeout"};
        for (int index = 0; index < keys.length; index++) {
            assertThat(mBatteryTipsController.getPowerAnomalyEventIndex(keys[index]))
                    .isEqualTo(index);
        }
    }

    @Test
    public void parsePowerAnomalyKey_unknownKey_returnTrue() {
        final String key = "unknown_key_for_test";
        assertThat(mBatteryTipsController.getPowerAnomalyEventIndex(key)).isEqualTo(-1);
    }

    @Test
    public void handleBatteryTipsCardUpdated_null_hidePreference() {
        mBatteryTipsController.handleBatteryTipsCardUpdated(/* powerAnomalyEvents= */ null);
+6 −4
Original line number Diff line number Diff line
@@ -36,6 +36,8 @@ import com.android.settings.fuelgauge.batteryusage.ConvertUtils;
import com.android.settings.fuelgauge.batteryusage.DeviceBatteryState;
import com.android.settings.fuelgauge.batteryusage.PowerAnomalyEvent;
import com.android.settings.fuelgauge.batteryusage.PowerAnomalyEventList;
import com.android.settings.fuelgauge.batteryusage.PowerAnomalyKey;
import com.android.settings.fuelgauge.batteryusage.PowerAnomalyType;
import com.android.settings.fuelgauge.batteryusage.WarningBannerInfo;
import com.android.settings.fuelgauge.batteryusage.db.AppUsageEventDao;
import com.android.settings.fuelgauge.batteryusage.db.AppUsageEventEntity;
@@ -209,8 +211,8 @@ public class BatteryTestUtils {
    /** Create a power anomaly event proto of adaptive brightness. */
    public static PowerAnomalyEvent createAdaptiveBrightnessAnomalyEvent() {
        return PowerAnomalyEvent.newBuilder()
                .setType("settings banner")
                .setKey("adaptive_brightness")
                .setType(PowerAnomalyType.TYPE_SETTINGS_BANNER)
                .setKey(PowerAnomalyKey.KEY_BRIGHTNESS)
                .setWarningBannerInfo(WarningBannerInfo.newBuilder()
                        .setMainButtonDestination(AutoBrightnessSettings.class.getName())
                        .setMainButtonSourceMetricsCategory(SettingsEnums.SETTINGS_AUTO_BRIGHTNESS)
@@ -221,8 +223,8 @@ public class BatteryTestUtils {
    /** Create a power anomaly event proto of screen timeout. */
    public static PowerAnomalyEvent createScreenTimeoutAnomalyEvent() {
        return PowerAnomalyEvent.newBuilder()
                .setType("settings banner")
                .setKey("screen_timeout")
                .setType(PowerAnomalyType.TYPE_SETTINGS_BANNER)
                .setKey(PowerAnomalyKey.KEY_SCREEN_TIMEOUT)
                .setWarningBannerInfo(WarningBannerInfo.newBuilder()
                        .setMainButtonDestination(ScreenTimeoutSettings.class.getName())
                        .setMainButtonSourceMetricsCategory(SettingsEnums.SCREEN_TIMEOUT)