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

Commit e682126a authored by jackqdyulei's avatar jackqdyulei
Browse files

Add smart battery tip.

Also move the action method from BatteryTip to TipAction. Since it
need extra data that we don't want to store it in parcel.

Bug: 71502850
Test: RunSettingsRoboTests
Change-Id: Ib658426725158d26fcdd437fa8bf6bf24e9a8c14
parent 92aa8583
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -4773,6 +4773,10 @@
    <string name="battery_tip_low_battery_title">Low battery capacity</string>
    <!-- Summary for the low battery tip [CHAR LIMIT=NONE] -->
    <string name="battery_tip_low_battery_summary">Battery can\'t provide good battery life</string>
    <!-- Title for the smart battery tip [CHAR LIMIT=NONE] -->
    <string name="battery_tip_smart_battery_title">Turn on smart battery manager</string>
    <!-- Summary for the smart battery tip [CHAR LIMIT=NONE] -->
    <string name="battery_tip_smart_battery_summary">Turn on to optimize battery usage</string>
    <!-- Title for the battery high usage tip [CHAR LIMIT=NONE] -->
    <string name="battery_tip_high_usage_title" product="default">Phone used heavily</string>
    <!-- Title for the battery high usage tip [CHAR LIMIT=NONE] -->
+1 −1
Original line number Diff line number Diff line
@@ -266,7 +266,7 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList
                KEY_APP_LIST, lifecycle, activity, this);
        controllers.add(mBatteryAppListPreferenceController);
        mBatteryTipPreferenceController = new BatteryTipPreferenceController(context,
                KEY_BATTERY_TIP, this, this);
                KEY_BATTERY_TIP, (SettingsActivity) getActivity(), this, this);
        controllers.add(mBatteryTipPreferenceController);
        controllers.add(new BatterySaverController(context, getLifecycle()));
        controllers.add(new BatteryPercentagePreferenceController(context));
+7 −1
Original line number Diff line number Diff line
@@ -27,8 +27,10 @@ import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;

import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settings.fuelgauge.batterytip.BatteryTipPreferenceController.BatteryTipListener;
import com.android.settings.fuelgauge.batterytip.actions.BatteryTipAction;
import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
import com.android.settings.fuelgauge.batterytip.tips.HighUsageTip;

@@ -97,7 +99,11 @@ public class BatteryTipDialogFragment extends InstrumentedDialogFragment impleme
        if (lsn == null) {
            return;
        }
        mBatteryTip.action();
        final BatteryTipAction action = BatteryTipUtils.getActionForBatteryTip(mBatteryTip,
                (SettingsActivity) getActivity(), this);
        if (action != null) {
            action.handlePositiveAction();
        }
        lsn.onBatteryTipHandled(mBatteryTip);
    }

+3 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import com.android.settings.fuelgauge.BatteryUtils;
import com.android.settings.fuelgauge.batterytip.detectors.BatteryTipDetector;
import com.android.settings.fuelgauge.batterytip.detectors.HighUsageDetector;
import com.android.settings.fuelgauge.batterytip.detectors.LowBatteryDetector;
import com.android.settings.fuelgauge.batterytip.detectors.SmartBatteryDetector;
import com.android.settings.fuelgauge.batterytip.detectors.SummaryDetector;
import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
import com.android.settings.fuelgauge.batterytip.tips.LowBatteryTip;
@@ -68,6 +69,8 @@ public class BatteryTipLoader extends AsyncLoader<List<BatteryTip>> {
        addBatteryTipFromDetector(tips, new LowBatteryDetector(policy, batteryInfo));
        addBatteryTipFromDetector(tips,
                new HighUsageDetector(getContext(), policy, mBatteryStatsHelper));
        addBatteryTipFromDetector(tips,
                new SmartBatteryDetector(policy, getContext().getContentResolver()));
        // Add summary detector at last since it need other detectors to update the mVisibleTips
        addBatteryTipFromDetector(tips, new SummaryDetector(policy, mVisibleTips));

+12 −3
Original line number Diff line number Diff line
@@ -23,7 +23,9 @@ import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceGroup;
import android.support.v7.preference.PreferenceScreen;

import com.android.settings.SettingsActivity;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.fuelgauge.batterytip.actions.BatteryTipAction;
import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
import com.android.settings.fuelgauge.batterytip.tips.SummaryTip;

@@ -41,6 +43,7 @@ public class BatteryTipPreferenceController extends BasePreferenceController {
    private BatteryTipListener mBatteryTipListener;
    private List<BatteryTip> mBatteryTips;
    private Map<String, BatteryTip> mBatteryTipMap;
    private SettingsActivity mSettingsActivity;
    @VisibleForTesting
    PreferenceGroup mPreferenceGroup;
    @VisibleForTesting
@@ -48,15 +51,17 @@ public class BatteryTipPreferenceController extends BasePreferenceController {
    PreferenceFragment mFragment;

    public BatteryTipPreferenceController(Context context, String preferenceKey) {
        this(context, preferenceKey, null, null);
        this(context, preferenceKey, null, null, null);
    }

    public BatteryTipPreferenceController(Context context, String preferenceKey,
            PreferenceFragment fragment, BatteryTipListener batteryTipListener) {
            SettingsActivity settingsActivity, PreferenceFragment fragment,
            BatteryTipListener batteryTipListener) {
        super(context, preferenceKey);
        mBatteryTipListener = batteryTipListener;
        mBatteryTipMap = new HashMap<>();
        mFragment = fragment;
        mSettingsActivity = settingsActivity;
    }

    @Override
@@ -107,7 +112,11 @@ public class BatteryTipPreferenceController extends BasePreferenceController {
                dialogFragment.setTargetFragment(mFragment, REQUEST_ANOMALY_ACTION);
                dialogFragment.show(mFragment.getFragmentManager(), TAG);
            } else {
                batteryTip.action();
                final BatteryTipAction action = BatteryTipUtils.getActionForBatteryTip(batteryTip,
                        mSettingsActivity, mFragment);
                if (action != null) {
                    action.handlePositiveAction();
                }
                if (mBatteryTipListener != null) {
                    mBatteryTipListener.onBatteryTipHandled(batteryTip);
                }
Loading