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

Commit d3e18dcf authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes from topic "rm_odr_anomaly"

* changes:
  Move anomaly code to BatteryTipUtils
  Remove the anomaly detection added in O-DR
parents 2e246bb6 5918cd5f
Loading
Loading
Loading
Loading
+0 −15
Original line number Diff line number Diff line
@@ -4987,18 +4987,6 @@
    <!-- Subtitle for list of packages -->
    <string name="packages_subtitle">Included packages</string>
    <!-- Activity title for battery abnormal details page [CHAR LIMIT=60] -->
    <string name="battery_abnormal_details_title">Apps draining battery</string>
    <!-- Summary for wakelock anomaly, means device been kept awake [CHAR LIMIT=60] -->
    <string name="battery_abnormal_wakelock_summary">Keeping device awake</string>
    <!-- Summary for wakeup alarm anomaly, meaning device been wakeup in the background [CHAR LIMIT=60] -->
    <string name="battery_abnormal_wakeup_alarm_summary">Waking up device in background</string>
    <!-- Summary for location anomaly, meaning device is requesting location too frequently [CHAR LIMIT=60] -->
    <string name="battery_abnormal_location_summary">Requesting location frequently</string>
    <!-- Summary for anomalies, meaning some apps behaving abnormally  [CHAR LIMIT=80] -->
    <string name="battery_abnormal_apps_summary"><xliff:g id="number">%1$d</xliff:g> apps misbehaving</string>
    <!-- Title for the battery summary tip [CHAR LIMIT=NONE] -->
    <string name="battery_tip_summary_title">Apps are running normally</string>
    <!-- Summary for the battery summary tip [CHAR LIMIT=NONE] -->
@@ -8509,9 +8497,6 @@
    <!-- Label for menu to show app usage [CHAR LIMIT=30] -->
    <string name="hide_extra_apps">Show app usage</string>
    <!-- Title for high usage item, which means power high usage [CHAR LIMIT=30] -->
    <string name="power_high_usage_title">High usage</string>
    <!-- Summary for high usage item, showing app/apps are behaving abnormally [CHAR LIMIT=80] -->
    <plurals name="power_high_usage_summary">
        <item quantity="one"><xliff:g id="app">%1$s</xliff:g> behaving abnormally</item>

res/xml/power_abnormal_detail.xml

deleted100644 → 0
+0 −24
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!-- 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.
-->

<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:title="@string/battery_abnormal_details_title">

    <PreferenceCategory
        android:key="app_abnormal_list"/>

</PreferenceScreen>
+0 −5
Original line number Diff line number Diff line
@@ -43,11 +43,6 @@

    </PreferenceCategory>

    <Preference
        android:key="high_usage"
        android:icon="@drawable/ic_battery_alert_24dp"
        android:title="@string/power_high_usage_title"/>

    <PreferenceCategory
        android:title="@string/battery_detail_info_title">

+4 −6
Original line number Diff line number Diff line
@@ -99,13 +99,11 @@ public class AppBatteryPreferenceController extends BasePreferenceController
                    (UserManager) mContext.getSystemService(Context.USER_SERVICE);
            final BatteryEntry entry = new BatteryEntry(mContext, null, userManager, mSipper);
            entry.defaultPackageName = mPackageName;
            AdvancedPowerUsageDetail.startBatteryDetailPage(
                    (SettingsActivity) mParent.getActivity(), mParent, mBatteryHelper,
                    BatteryStats.STATS_SINCE_CHARGED, entry, mBatteryPercent,
                    null /* mAnomalies */);
            AdvancedPowerUsageDetail.startBatteryDetailPage(mParent.getActivity(), mParent,
                    mBatteryHelper, BatteryStats.STATS_SINCE_CHARGED, entry, mBatteryPercent);
        } else {
            AdvancedPowerUsageDetail.startBatteryDetailPage(
                    (SettingsActivity) mParent.getActivity(), mParent, mPackageName);
            AdvancedPowerUsageDetail.startBatteryDetailPage(mParent.getActivity(), mParent,
                    mPackageName);
        }
        return true;
    }
+3 −64
Original line number Diff line number Diff line
@@ -42,11 +42,6 @@ import com.android.settings.applications.appinfo.ButtonActionDialogFragment;
import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.fuelgauge.anomaly.Anomaly;
import com.android.settings.fuelgauge.anomaly.AnomalyDialogFragment;
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.fuelgauge.batterytip.BatteryTipPreferenceController;
import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
import com.android.settings.widget.EntityHeaderController;
@@ -71,8 +66,6 @@ import androidx.preference.Preference;
 */
public class AdvancedPowerUsageDetail extends DashboardFragment implements
        ButtonActionDialogFragment.AppButtonsDialogListener,
        AnomalyDialogFragment.AnomalyDialogListener,
        LoaderManager.LoaderCallbacks<List<Anomaly>>,
        BatteryTipPreferenceController.BatteryTipListener {

    public static final String TAG = "AdvancedPowerDetail";
@@ -84,7 +77,6 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
    public static final String EXTRA_ICON_ID = "extra_icon_id";
    public static final String EXTRA_POWER_USAGE_PERCENT = "extra_power_usage_percent";
    public static final String EXTRA_POWER_USAGE_AMOUNT = "extra_power_usage_amount";
    public static final String EXTRA_ANOMALY_LIST = "extra_anomaly_list";

    private static final String KEY_PREF_FOREGROUND = "app_usage_foreground";
    private static final String KEY_PREF_BACKGROUND = "app_usage_background";
@@ -93,8 +85,6 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
    private static final int REQUEST_UNINSTALL = 0;
    private static final int REQUEST_REMOVE_DEVICE_ADMIN = 1;

    private static final int ANOMALY_LOADER = 0;

    @VisibleForTesting
    LayoutPreference mHeaderPreference;
    @VisibleForTesting
@@ -108,18 +98,15 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
    Preference mForegroundPreference;
    @VisibleForTesting
    Preference mBackgroundPreference;
    @VisibleForTesting
    AnomalySummaryPreferenceController mAnomalySummaryPreferenceController;
    private AppButtonsPreferenceController mAppButtonsPreferenceController;
    private BackgroundActivityPreferenceController mBackgroundActivityPreferenceController;

    private List<Anomaly> mAnomalies;
    private String mPackageName;

    @VisibleForTesting
    static void startBatteryDetailPage(Activity caller, BatteryUtils batteryUtils,
            InstrumentedPreferenceFragment fragment, BatteryStatsHelper helper, int which,
            BatteryEntry entry, String usagePercent, List<Anomaly> anomalies) {
            BatteryEntry entry, String usagePercent) {
        // Initialize mStats if necessary.
        helper.getStats();

@@ -150,7 +137,6 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
        args.putLong(EXTRA_FOREGROUND_TIME, foregroundTimeMs);
        args.putString(EXTRA_POWER_USAGE_PERCENT, usagePercent);
        args.putInt(EXTRA_POWER_USAGE_AMOUNT, (int) sipper.totalPowerMah);
        args.putParcelableList(EXTRA_ANOMALY_LIST, anomalies);

        new SubSettingLauncher(caller)
                .setDestination(AdvancedPowerUsageDetail.class.getName())
@@ -171,9 +157,9 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements

    public static void startBatteryDetailPage(Activity caller,
            InstrumentedPreferenceFragment fragment, BatteryStatsHelper helper, int which,
            BatteryEntry entry, String usagePercent, List<Anomaly> anomalies) {
            BatteryEntry entry, String usagePercent) {
        startBatteryDetailPage(caller, BatteryUtils.getInstance(caller), fragment, helper, which,
                entry, usagePercent, anomalies);
                entry, usagePercent);
    }

    public static void startBatteryDetailPage(Activity caller,
@@ -209,15 +195,12 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
        super.onCreate(icicle);

        mPackageName = getArguments().getString(EXTRA_PACKAGE_NAME);
        mAnomalySummaryPreferenceController = new AnomalySummaryPreferenceController(
                (SettingsActivity) getActivity(), this);
        mForegroundPreference = findPreference(KEY_PREF_FOREGROUND);
        mBackgroundPreference = findPreference(KEY_PREF_BACKGROUND);
        mHeaderPreference = (LayoutPreference) findPreference(KEY_PREF_HEADER);

        if (mPackageName != null) {
            mAppEntry = mState.getEntry(mPackageName, UserHandle.myUserId());
            initAnomalyInfo();
        }
    }

@@ -229,16 +212,6 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
        initPreference();
    }

    @VisibleForTesting
    void initAnomalyInfo() {
        mAnomalies = getArguments().getParcelableArrayList(EXTRA_ANOMALY_LIST);
        if (mAnomalies == null) {
            getLoaderManager().initLoader(ANOMALY_LOADER, Bundle.EMPTY, this);
        } else if (mAnomalies != null) {
            mAnomalySummaryPreferenceController.updateAnomalySummaryPreference(mAnomalies);
        }
    }

    @VisibleForTesting
    void initHeader() {
        final View appSnippet = mHeaderPreference.findViewById(R.id.entity_header);
@@ -280,8 +253,6 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements

        final long foregroundTimeMs = bundle.getLong(EXTRA_FOREGROUND_TIME);
        final long backgroundTimeMs = bundle.getLong(EXTRA_BACKGROUND_TIME);
        final String usagePercent = bundle.getString(EXTRA_POWER_USAGE_PERCENT);
        final int powerMah = bundle.getInt(EXTRA_POWER_USAGE_AMOUNT);
        mForegroundPreference.setSummary(
                TextUtils.expandTemplate(getText(R.string.battery_used_for),
                        StringUtil.formatElapsedTime(context, foregroundTimeMs, false)));
@@ -290,15 +261,6 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
                        StringUtil.formatElapsedTime(context, backgroundTimeMs, false)));
    }

    @Override
    public boolean onPreferenceTreeClick(Preference preference) {
        if (TextUtils.equals(preference.getKey(), AnomalySummaryPreferenceController.ANOMALY_KEY)) {
            mAnomalySummaryPreferenceController.onPreferenceTreeClick(preference);
            return true;
        }
        return super.onPreferenceTreeClick(preference);
    }

    @Override
    public int getMetricsCategory() {
        return MetricsEvent.FUELGAUGE_POWER_USAGE_DETAIL;
@@ -349,29 +311,6 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
        }
    }

    @Override
    public void onAnomalyHandled(Anomaly anomaly) {
        mAnomalySummaryPreferenceController.hideHighUsagePreference();
    }

    @Override
    public Loader<List<Anomaly>> onCreateLoader(int id, Bundle args) {
        return new AnomalyLoader(getContext(), mPackageName);
    }

    @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);
    }

    @Override
    public void onLoaderReset(Loader<List<Anomaly>> loader) {

    }

    @Override
    public void onBatteryTipHandled(BatteryTip batteryTip) {
        mBackgroundActivityPreferenceController.updateSummary(
Loading