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

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

Merge "Add dialog for summary tip" into pi-dev

parents 61bdf047 ede87ce1
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -4892,6 +4892,11 @@
    <!-- CANCEL button for dialog to remove restriction for app [CHAR LIMIT=NONE] -->
    <string name="battery_tip_unrestrict_app_dialog_cancel">Not now</string>
    <!-- Message for battery tip dialog to show the battery summary -->
    <string name="battery_tip_dialog_summary_message">Based on your usage, your battery usually lasts about <xliff:g id="time_duration">%1$s</xliff:g> when fully charged.\n\nIf you need to extend your battery life, turn on Battery Saver.</string>
    <!-- Message for battery tip dialog to show the battery summary -->
    <string name="battery_tip_dialog_summary_message_no_estimation">If you need to extend your battery life, turn on Battery Saver</string>
    <!-- Title for the smart battery manager preference [CHAR LIMIT=NONE] -->
    <string name="smart_battery_manager_title">Smart battery manager</string>
    <!-- Title for the smart battery toggle [CHAR LIMIT=NONE] -->
+14 −3
Original line number Diff line number Diff line
@@ -32,11 +32,13 @@ import com.android.settings.SettingsActivity;
import com.android.settings.Utils;
import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settings.fuelgauge.Estimate;
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;
import com.android.settings.fuelgauge.batterytip.tips.RestrictAppTip;
import com.android.settings.fuelgauge.batterytip.tips.SummaryTip;
import com.android.settings.fuelgauge.batterytip.tips.UnrestrictAppTip;
import com.android.settingslib.utils.StringUtil;

@@ -72,9 +74,18 @@ public class BatteryTipDialogFragment extends InstrumentedDialogFragment impleme

        switch (mBatteryTip.getType()) {
            case BatteryTip.TipType.SUMMARY:
            case BatteryTip.TipType.LOW_BATTERY:
                //TODO(b/70570352): add dialog
                return null;
                final long averageTimeMs = ((SummaryTip) mBatteryTip).getAverageTimeMs();
                final String message = context.getString(
                        averageTimeMs == Estimate.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN
                                ? R.string.battery_tip_dialog_summary_message_no_estimation
                                : R.string.battery_tip_dialog_summary_message,
                        StringUtil.formatElapsedTime(context, averageTimeMs,
                                false /* withSeconds */));

                return new AlertDialog.Builder(context)
                        .setMessage(message)
                        .setPositiveButton(android.R.string.ok, null)
                        .create();
            case BatteryTip.TipType.HIGH_DEVICE_USAGE:
                final HighUsageTip highUsageTip = (HighUsageTip) mBatteryTip;
                final RecyclerView view = (RecyclerView) LayoutInflater.from(context).inflate(
+4 −2
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.support.annotation.VisibleForTesting;
import com.android.internal.os.BatteryStatsHelper;
import com.android.settings.fuelgauge.BatteryInfo;
import com.android.settings.fuelgauge.BatteryUtils;
import com.android.settings.fuelgauge.Estimate;
import com.android.settings.fuelgauge.batterytip.detectors.EarlyWarningDetector;
import com.android.settings.fuelgauge.batterytip.detectors.HighUsageDetector;
import com.android.settings.fuelgauge.batterytip.detectors.LowBatteryDetector;
@@ -70,7 +71,7 @@ public class BatteryTipLoader extends AsyncLoader<List<BatteryTip>> {
        tips.add(new HighUsageDetector(context, policy, mBatteryStatsHelper).detect());
        tips.add(new SmartBatteryDetector(policy, context.getContentResolver()).detect());
        tips.add(new EarlyWarningDetector(policy, context).detect());
        tips.add(new SummaryDetector(policy).detect());
        tips.add(new SummaryDetector(policy, batteryInfo.averageTimeToDischarge).detect());
        tips.add(new RestrictAppDetector(context, policy).detect());

        Collections.sort(tips);
@@ -83,7 +84,8 @@ public class BatteryTipLoader extends AsyncLoader<List<BatteryTip>> {

    private List<BatteryTip> getFakeData() {
        final List<BatteryTip> tips = new ArrayList<>();
        tips.add(new SummaryTip(BatteryTip.StateType.NEW));
        tips.add(new SummaryTip(BatteryTip.StateType.NEW,
                Estimate.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN));
        tips.add(new LowBatteryTip(BatteryTip.StateType.NEW));

        return tips;
+3 −1
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.SettingsActivity;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.fuelgauge.Estimate;
import com.android.settings.fuelgauge.batterytip.actions.BatteryTipAction;
import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
import com.android.settings.fuelgauge.batterytip.tips.SummaryTip;
@@ -82,7 +83,8 @@ public class BatteryTipPreferenceController extends BasePreferenceController {
        mPreferenceGroup = (PreferenceGroup) screen.findPreference(getPreferenceKey());

        // Add summary tip in advance to avoid UI flakiness
        final SummaryTip summaryTip = new SummaryTip(BatteryTip.StateType.NEW);
        final SummaryTip summaryTip = new SummaryTip(BatteryTip.StateType.NEW,
                Estimate.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN);
        mPreferenceGroup.addPreference(summaryTip.buildPreference(mPrefContext));
    }

+4 −2
Original line number Diff line number Diff line
@@ -26,9 +26,11 @@ import com.android.settings.fuelgauge.batterytip.tips.SummaryTip;
 */
public class SummaryDetector implements BatteryTipDetector {
    private BatteryTipPolicy mPolicy;
    private long mAverageTimeMs;

    public SummaryDetector(BatteryTipPolicy policy) {
    public SummaryDetector(BatteryTipPolicy policy, long averageTimeMs) {
        mPolicy = policy;
        mAverageTimeMs = averageTimeMs;
    }

    @Override
@@ -37,6 +39,6 @@ public class SummaryDetector implements BatteryTipDetector {
        final int state = mPolicy.summaryEnabled
                ? BatteryTip.StateType.NEW
                : BatteryTip.StateType.INVISIBLE;
        return new SummaryTip(state);
        return new SummaryTip(state, mAverageTimeMs);
    }
}
Loading