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

Commit 9d66948c authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Merge cherrypicks of [3581037, 3581038, 3580473, 3580624, 3580656, 3580657,...

Merge cherrypicks of [3581037, 3581038, 3580473, 3580624, 3580656, 3580657, 3580658, 3580382, 3580474, 3580475, 3581039, 3581040, 3580476, 3580206, 3581527, 3580955, 3580956, 3580957, 3580958, 3580959, 3580960, 3580961, 3580962, 3580963, 3580964, 3580965, 3580966, 3581567, 3581568, 3581569, 3581570, 3581571, 3580625, 3580626, 3581587, 3581513, 3581514, 3581515, 3580477, 3581588, 3580659, 3580660, 3580383, 3580384, 3580478, 3580719, 3580479, 3580480, 3581385, 3581528, 3581041, 3581042, 3581043, 3581044, 3581045, 3581046, 3581607, 3580385, 3580481, 3580482, 3580483, 3580661, 3580662, 3580663, 3580664, 3580665, 3580484, 3580485, 3581608, 3581609, 3581610, 3581611, 3581612, 3581589, 3581613, 3580486, 3581519, 3581627, 3581628, 3581529, 3581530, 3581531, 3581629, 3581630] into oc-mr1-release

Change-Id: I5eeff9fc814bc819c9dbbedb281f148b7e297eba
parents 6021cde9 8d6b7d51
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ import com.android.settings.applications.LayoutPreference;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.enterprise.DevicePolicyManagerWrapper;
import com.android.settings.enterprise.DevicePolicyManagerWrapperImpl;
import com.android.settings.fuelgauge.anomaly.AnomalyUtils;
import com.android.settings.fuelgauge.anomaly.Anomaly;
import com.android.settings.fuelgauge.anomaly.AnomalyDialogFragment;
import com.android.settings.fuelgauge.anomaly.AnomalyLoader;
@@ -348,6 +349,9 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements

    @Override
    public void onLoadFinished(Loader<List<Anomaly>> loader, List<Anomaly> data) {
        final AnomalyUtils anomalyUtils = AnomalyUtils.getInstance(getContext());
        anomalyUtils.logAnomalies(mMetricsFeatureProvider, data,
                MetricsEvent.FUELGAUGE_POWER_USAGE_DETAIL);
        mAnomalySummaryPreferenceController.updateAnomalySummaryPreference(data);
    }

+1 −2
Original line number Diff line number Diff line
@@ -125,8 +125,7 @@ public class PowerUsageAnomalyDetails extends DashboardFragment implements

    @Override
    public int getMetricsCategory() {
        //TODO(b/37681923): add correct metrics category
        return 0;
        return MetricsProto.MetricsEvent.FUELGAUGE_ANOMALY_DETAIL;
    }

    void refreshUi() {
+5 −0
Original line number Diff line number Diff line
@@ -68,6 +68,7 @@ import com.android.settings.fuelgauge.anomaly.AnomalyDetectionPolicy;
import com.android.settings.fuelgauge.anomaly.AnomalyDialogFragment.AnomalyDialogListener;
import com.android.settings.fuelgauge.anomaly.AnomalyLoader;
import com.android.settings.fuelgauge.anomaly.AnomalySummaryPreferenceController;
import com.android.settings.fuelgauge.anomaly.AnomalyUtils;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.core.AbstractPreferenceController;
@@ -151,6 +152,10 @@ public class PowerUsageSummary extends PowerUsageBase implements

                @Override
                public void onLoadFinished(Loader<List<Anomaly>> loader, List<Anomaly> data) {
                    final AnomalyUtils anomalyUtils = AnomalyUtils.getInstance(getContext());
                    anomalyUtils.logAnomalies(mMetricsFeatureProvider, data,
                            MetricsEvent.FUELGAUGE_POWER_USAGE_SUMMARY);

                    // show high usage preference if possible
                    mAnomalySummaryPreferenceController.updateAnomalySummaryPreference(data);

+7 −3
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.content.DialogInterface;
import android.os.Bundle;
import android.support.annotation.VisibleForTesting;

import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settings.fuelgauge.anomaly.action.AnomalyAction;
@@ -79,8 +80,7 @@ public class AnomalyDialogFragment extends InstrumentedDialogFragment implements

    @Override
    public int getMetricsCategory() {
        // TODO(b/37681923): add anomaly metric id
        return 0;
        return MetricsProto.MetricsEvent.DIALOG_HANDLE_ANOMALY;
    }

    @Override
@@ -100,9 +100,13 @@ public class AnomalyDialogFragment extends InstrumentedDialogFragment implements
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        final Bundle bundle = getArguments();
        final Context context = getContext();
        final AnomalyUtils anomalyUtils = AnomalyUtils.getInstance(context);

        mAnomaly = bundle.getParcelable(ARG_ANOMALY);
        anomalyUtils.logAnomaly(mMetricsFeatureProvider, mAnomaly,
                MetricsProto.MetricsEvent.DIALOG_HANDLE_ANOMALY);

        final Context context = getContext();
        final AnomalyAction anomalyAction = mAnomalyUtils.getAnomalyAction(mAnomaly);
        switch (anomalyAction.getActionType()) {
            case Anomaly.AnomalyActionType.FORCE_STOP:
+50 −0
Original line number Diff line number Diff line
@@ -19,8 +19,12 @@ package com.android.settings.fuelgauge.anomaly;
import android.content.Context;
import android.os.Build;
import android.support.annotation.VisibleForTesting;
import android.util.Pair;
import android.util.SparseIntArray;

import com.android.internal.logging.nano.MetricsProto;
import com.android.internal.os.BatteryStatsHelper;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.fuelgauge.anomaly.action.AnomalyAction;
import com.android.settings.fuelgauge.anomaly.action.ForceStopAction;
import com.android.settings.fuelgauge.anomaly.action.LocationCheckAction;
@@ -40,6 +44,17 @@ public class AnomalyUtils {
    private Context mContext;
    private static AnomalyUtils sInstance;

    private static final SparseIntArray mMetricArray;
    static {
        mMetricArray = new SparseIntArray();
        mMetricArray.append(Anomaly.AnomalyType.WAKE_LOCK,
                MetricsProto.MetricsEvent.ANOMALY_TYPE_WAKELOCK);
        mMetricArray.append(Anomaly.AnomalyType.WAKEUP_ALARM,
                MetricsProto.MetricsEvent.ANOMALY_TYPE_WAKEUP_ALARM);
        mMetricArray.append(Anomaly.AnomalyType.BLUETOOTH_SCAN,
                MetricsProto.MetricsEvent.ANOMALY_TYPE_UNOPTIMIZED_BT);
    }

    @VisibleForTesting
    AnomalyUtils(Context context) {
        mContext = context.getApplicationContext();
@@ -118,4 +133,39 @@ public class AnomalyUtils {
        return anomalies;
    }

    /**
     * Log the list of {@link Anomaly} using {@link MetricsFeatureProvider}, which contains
     * anomaly type, package name, field_context, field_action_type
     *
     * @param provider  provider to do the logging
     * @param anomalies contains the data to log
     * @param contextId which page invoke this logging
     * @see #logAnomaly(MetricsFeatureProvider, Anomaly, int)
     */
    public void logAnomalies(MetricsFeatureProvider provider, List<Anomaly> anomalies,
            int contextId) {
        for (int i = 0, size = anomalies.size(); i < size; i++) {
            logAnomaly(provider, anomalies.get(i), contextId);
        }
    }

    /**
     * Log the {@link Anomaly} using {@link MetricsFeatureProvider}, which contains
     * anomaly type, package name, field_context, field_action_type
     *
     * @param provider  provider to do the logging
     * @param anomaly   contains the data to log
     * @param contextId which page invoke this logging
     * @see #logAnomalies(MetricsFeatureProvider, List, int)
     */
    public void logAnomaly(MetricsFeatureProvider provider, Anomaly anomaly, int contextId) {
        provider.action(
                mContext,
                mMetricArray.get(anomaly.type, MetricsProto.MetricsEvent.VIEW_UNKNOWN),
                anomaly.packageName,
                Pair.create(MetricsProto.MetricsEvent.FIELD_CONTEXT, contextId),
                Pair.create(MetricsProto.MetricsEvent.FIELD_ANOMALY_ACTION_TYPE,
                        getAnomalyAction(anomaly).getActionType()));
    }

}
Loading