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

Commit 6dc24156 authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Snap for 7017347 from d6d4c2ac to rvc-qpr2-release

Change-Id: Idcf8dd7a5f022f14188c15d247a5c18e00597c43
parents 702bfadc d6d4c2ac
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -7193,6 +7193,8 @@
    <string name="help_url_sound" translatable="false"></string>
    <string name="help_url_sound" translatable="false"></string>
    <!-- Help URL, Battery [DO NOT TRANSLATE] -->
    <!-- Help URL, Battery [DO NOT TRANSLATE] -->
    <string name="help_url_battery" translatable="false"></string>
    <string name="help_url_battery" translatable="false"></string>
    <!-- Help URL, Battery Defender [DO NOT TRANSLATE] -->
    <string name="help_url_battery_defender" translatable="false"></string>
    <!-- Help URL, Accounts [DO NOT TRANSLATE] -->
    <!-- Help URL, Accounts [DO NOT TRANSLATE] -->
    <string name="help_url_accounts" translatable="false"></string>
    <string name="help_url_accounts" translatable="false"></string>
    <!-- Help URL, Choose lockscreen [DO NOT TRANSLATE] -->
    <!-- Help URL, Choose lockscreen [DO NOT TRANSLATE] -->
+13 −1
Original line number Original line Diff line number Diff line
@@ -20,6 +20,7 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Context;
import android.content.Intent;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.IntentFilter;
import android.os.BatteryManager;
import android.os.PowerManager;
import android.os.PowerManager;
import android.util.Log;
import android.util.Log;


@@ -39,6 +40,7 @@ import java.lang.annotation.RetentionPolicy;
 * 1. Battery level(e.g. 100%->99%)
 * 1. Battery level(e.g. 100%->99%)
 * 2. Battery status(e.g. plugged->unplugged)
 * 2. Battery status(e.g. plugged->unplugged)
 * 3. Battery saver(e.g. off->on)
 * 3. Battery saver(e.g. off->on)
 * 4. Battery health(e.g. good->overheat)
 */
 */
public class BatteryBroadcastReceiver extends BroadcastReceiver {
public class BatteryBroadcastReceiver extends BroadcastReceiver {


@@ -49,6 +51,7 @@ public class BatteryBroadcastReceiver extends BroadcastReceiver {
     * Battery level(e.g. 100%->99%)
     * Battery level(e.g. 100%->99%)
     * Battery status(e.g. plugged->unplugged)
     * Battery status(e.g. plugged->unplugged)
     * Battery saver(e.g. off->on)
     * Battery saver(e.g. off->on)
     * Battery health(e.g. good->overheat)
     */
     */
    public interface OnBatteryChangedListener {
    public interface OnBatteryChangedListener {
        void onBatteryChanged(@BatteryUpdateType int type);
        void onBatteryChanged(@BatteryUpdateType int type);
@@ -59,19 +62,23 @@ public class BatteryBroadcastReceiver extends BroadcastReceiver {
            BatteryUpdateType.BATTERY_LEVEL,
            BatteryUpdateType.BATTERY_LEVEL,
            BatteryUpdateType.BATTERY_SAVER,
            BatteryUpdateType.BATTERY_SAVER,
            BatteryUpdateType.BATTERY_STATUS,
            BatteryUpdateType.BATTERY_STATUS,
            BatteryUpdateType.BATTERY_HEALTH,
            BatteryUpdateType.BATTERY_NOT_PRESENT})
            BatteryUpdateType.BATTERY_NOT_PRESENT})
    public @interface BatteryUpdateType {
    public @interface BatteryUpdateType {
        int MANUAL = 0;
        int MANUAL = 0;
        int BATTERY_LEVEL = 1;
        int BATTERY_LEVEL = 1;
        int BATTERY_SAVER = 2;
        int BATTERY_SAVER = 2;
        int BATTERY_STATUS = 3;
        int BATTERY_STATUS = 3;
        int BATTERY_NOT_PRESENT = 4;
        int BATTERY_HEALTH = 4;
        int BATTERY_NOT_PRESENT = 5;
    }
    }


    @VisibleForTesting
    @VisibleForTesting
    String mBatteryLevel;
    String mBatteryLevel;
    @VisibleForTesting
    @VisibleForTesting
    String mBatteryStatus;
    String mBatteryStatus;
    @VisibleForTesting
    int mBatteryHealth;
    private OnBatteryChangedListener mBatteryListener;
    private OnBatteryChangedListener mBatteryListener;
    private Context mContext;
    private Context mContext;


@@ -106,11 +113,15 @@ public class BatteryBroadcastReceiver extends BroadcastReceiver {
            if (Intent.ACTION_BATTERY_CHANGED.equals(intent.getAction())) {
            if (Intent.ACTION_BATTERY_CHANGED.equals(intent.getAction())) {
                final String batteryLevel = Utils.getBatteryPercentage(intent);
                final String batteryLevel = Utils.getBatteryPercentage(intent);
                final String batteryStatus = Utils.getBatteryStatus(mContext, intent);
                final String batteryStatus = Utils.getBatteryStatus(mContext, intent);
                final int batteryHealth = intent.getIntExtra(
                        BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_UNKNOWN);
                if (!Utils.isBatteryPresent(intent)) {
                if (!Utils.isBatteryPresent(intent)) {
                    Log.w(TAG, "Problem reading the battery meter.");
                    Log.w(TAG, "Problem reading the battery meter.");
                    mBatteryListener.onBatteryChanged(BatteryUpdateType.BATTERY_NOT_PRESENT);
                    mBatteryListener.onBatteryChanged(BatteryUpdateType.BATTERY_NOT_PRESENT);
                } else if (forceUpdate) {
                } else if (forceUpdate) {
                    mBatteryListener.onBatteryChanged(BatteryUpdateType.MANUAL);
                    mBatteryListener.onBatteryChanged(BatteryUpdateType.MANUAL);
                } else if (batteryHealth != mBatteryHealth) {
                    mBatteryListener.onBatteryChanged(BatteryUpdateType.BATTERY_HEALTH);
                } else if(!batteryLevel.equals(mBatteryLevel)) {
                } else if(!batteryLevel.equals(mBatteryLevel)) {
                    mBatteryListener.onBatteryChanged(BatteryUpdateType.BATTERY_LEVEL);
                    mBatteryListener.onBatteryChanged(BatteryUpdateType.BATTERY_LEVEL);
                } else if (!batteryStatus.equals(mBatteryStatus)) {
                } else if (!batteryStatus.equals(mBatteryStatus)) {
@@ -118,6 +129,7 @@ public class BatteryBroadcastReceiver extends BroadcastReceiver {
                }
                }
                mBatteryLevel = batteryLevel;
                mBatteryLevel = batteryLevel;
                mBatteryStatus = batteryStatus;
                mBatteryStatus = batteryStatus;
                mBatteryHealth = batteryHealth;
            } else if (PowerManager.ACTION_POWER_SAVE_MODE_CHANGED.equals(intent.getAction())) {
            } else if (PowerManager.ACTION_POWER_SAVE_MODE_CHANGED.equals(intent.getAction())) {
                mBatteryListener.onBatteryChanged(BatteryUpdateType.BATTERY_SAVER);
                mBatteryListener.onBatteryChanged(BatteryUpdateType.BATTERY_SAVER);
            }
            }
+3 −1
Original line number Original line Diff line number Diff line
@@ -124,7 +124,9 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController
    public void updateHeaderPreference(BatteryInfo info) {
    public void updateHeaderPreference(BatteryInfo info) {
        mBatteryPercentText.setText(formatBatteryPercentageText(info.batteryLevel));
        mBatteryPercentText.setText(formatBatteryPercentageText(info.batteryLevel));
        if (!mBatteryStatusFeatureProvider.triggerBatteryStatusUpdate(this, info)) {
        if (!mBatteryStatusFeatureProvider.triggerBatteryStatusUpdate(this, info)) {
            if (info.remainingLabel == null) {
            if (BatteryUtils.isBatteryDefenderOn(info)) {
                mSummary1.setText(null);
            } else if (info.remainingLabel == null) {
                mSummary1.setText(info.statusLabel);
                mSummary1.setText(info.statusLabel);
            } else {
            } else {
                mSummary1.setText(info.remainingLabel);
                mSummary1.setText(info.remainingLabel);
+10 −1
Original line number Original line Diff line number Diff line
@@ -45,6 +45,7 @@ public class BatteryInfo {
    public CharSequence remainingLabel;
    public CharSequence remainingLabel;
    public int batteryLevel;
    public int batteryLevel;
    public boolean discharging = true;
    public boolean discharging = true;
    public boolean isOverheated;
    public long remainingTimeUs = 0;
    public long remainingTimeUs = 0;
    public long averageTimeToDischarge = EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN;
    public long averageTimeToDischarge = EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN;
    public String batteryPercentString;
    public String batteryPercentString;
@@ -232,6 +233,9 @@ public class BatteryInfo {
        info.batteryPercentString = Utils.formatPercentage(info.batteryLevel);
        info.batteryPercentString = Utils.formatPercentage(info.batteryLevel);
        info.mCharging = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0) != 0;
        info.mCharging = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0) != 0;
        info.averageTimeToDischarge = estimate.getAverageDischargeTime();
        info.averageTimeToDischarge = estimate.getAverageDischargeTime();
        info.isOverheated = batteryBroadcast.getIntExtra(
                BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_UNKNOWN)
                == BatteryManager.BATTERY_HEALTH_OVERHEAT;


        info.statusLabel = Utils.getBatteryStatus(context, batteryBroadcast);
        info.statusLabel = Utils.getBatteryStatus(context, batteryBroadcast);
        if (!info.mCharging) {
        if (!info.mCharging) {
@@ -251,7 +255,12 @@ public class BatteryInfo {
                BatteryManager.BATTERY_STATUS_UNKNOWN);
                BatteryManager.BATTERY_STATUS_UNKNOWN);
        info.discharging = false;
        info.discharging = false;
        info.suggestionLabel = null;
        info.suggestionLabel = null;
        if (chargeTime > 0 && status != BatteryManager.BATTERY_STATUS_FULL) {
        if (info.isOverheated && status != BatteryManager.BATTERY_STATUS_FULL) {
            info.remainingLabel = null;
            int chargingLimitedResId = R.string.power_charging_limited;
            info.chargeLabel =
                    context.getString(chargingLimitedResId, info.batteryPercentString);
        } else if (chargeTime > 0 && status != BatteryManager.BATTERY_STATUS_FULL) {
            info.remainingTimeUs = chargeTime;
            info.remainingTimeUs = chargeTime;
            CharSequence timeString = StringUtil.formatElapsedTime(context,
            CharSequence timeString = StringUtil.formatElapsedTime(context,
                    PowerUtil.convertUsToMs(info.remainingTimeUs), false /* withSeconds */);
                    PowerUtil.convertUsToMs(info.remainingTimeUs), false /* withSeconds */);
+7 −0
Original line number Original line Diff line number Diff line
@@ -403,6 +403,13 @@ public class BatteryUtils {
        Log.d(tag, message + ": " + (System.currentTimeMillis() - startTime) + "ms");
        Log.d(tag, message + ": " + (System.currentTimeMillis() - startTime) + "ms");
    }
    }


    /**
     * Return {@code true} if battery is overheated and charging.
     */
    public static boolean isBatteryDefenderOn(BatteryInfo batteryInfo) {
        return batteryInfo.isOverheated && !batteryInfo.discharging;
    }

    /**
    /**
     * Find package uid from package name
     * Find package uid from package name
     *
     *
Loading