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

Commit e5c3ed18 authored by Jason Monk's avatar Jason Monk
Browse files

Fix accessibility description of battery saver in QS

Change-Id: I412a4f15c8a7c77a087f63d9331204d72e1dcb98
Fixes: 35617900
Test: enable accessibility, select battery saver
parent 00a5f2a6
Loading
Loading
Loading
Loading
+12 −23
Original line number Diff line number Diff line
@@ -23,16 +23,18 @@ import android.service.quicksettings.Tile;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.style.RelativeSizeSpan;
import android.util.Log;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnAttachStateChangeListener;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Checkable;
import android.widget.ImageView;
import android.widget.Switch;
import android.widget.TextView;

import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settingslib.BatteryInfo;
import com.android.settingslib.graph.BatteryMeterDrawableBase;
@@ -43,9 +45,8 @@ import com.android.systemui.plugins.qs.QS.DetailAdapter;
import com.android.systemui.qs.QSTile;
import com.android.systemui.statusbar.policy.BatteryController;

import java.text.NumberFormat;

public class BatteryTile extends QSTile<QSTile.State> implements BatteryController.BatteryStateChangeCallback {
public class BatterySaverTile extends QSTile<QSTile.BooleanState> implements
        BatteryController.BatteryStateChangeCallback {

    private final BatteryController mBatteryController;
    private final BatteryDetail mBatteryDetail = new BatteryDetail();
@@ -56,19 +57,14 @@ public class BatteryTile extends QSTile<QSTile.State> implements BatteryControll
    private boolean mDetailShown;
    private boolean mPluggedIn;

    public BatteryTile(Host host) {
    public BatterySaverTile(Host host) {
        super(host);
        mBatteryController = Dependency.get(BatteryController.class);
    }

    @Override
    public State newTileState() {
        return new QSTile.State();
    }

    @Override
    public DetailAdapter getDetailAdapter() {
        return mBatteryDetail;
    public BooleanState newTileState() {
        return new BooleanState();
    }

    @Override
@@ -109,22 +105,15 @@ public class BatteryTile extends QSTile<QSTile.State> implements BatteryControll
    }

    @Override
    protected void handleUpdateState(State state, Object arg) {
        int level = (arg != null) ? (Integer) arg : mLevel;
        String percentage = NumberFormat.getPercentInstance().format((double) level / 100.0);

    protected void handleUpdateState(BooleanState state, Object arg) {
        state.state = mCharging ? Tile.STATE_UNAVAILABLE
                : mPowerSave ? Tile.STATE_ACTIVE : Tile.STATE_INACTIVE;
        state.icon = ResourceIcon.get(R.drawable.ic_qs_battery_saver);
        state.label = mContext.getString(R.string.battery_detail_switch_title);
        state.contentDescription = mContext.getString(R.string.accessibility_quick_settings_battery,
                percentage) + "," +
                (mPowerSave ? mContext.getString(R.string.battery_saver_notification_title)
                        : mCharging ? mContext.getString(R.string.expanded_header_battery_charging)
                                : "")
                + "," + mContext.getString(R.string.accessibility_battery_details);
        state.contentDescription = state.label;
        state.value = mPowerSave;
        state.minimalAccessibilityClassName = state.expandedAccessibilityClassName
                = Button.class.getName();
                = Switch.class.getName();
    }

    @Override
+2 −2
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@ import com.android.systemui.qs.external.CustomTile;
import com.android.systemui.qs.external.TileLifecycleManager;
import com.android.systemui.qs.external.TileServices;
import com.android.systemui.qs.tiles.AirplaneModeTile;
import com.android.systemui.qs.tiles.BatteryTile;
import com.android.systemui.qs.tiles.BatterySaverTile;
import com.android.systemui.qs.tiles.BluetoothTile;
import com.android.systemui.qs.tiles.CastTile;
import com.android.systemui.qs.tiles.CellularTile;
@@ -273,7 +273,7 @@ public class QSTileHost implements QSTile.Host, Tunable {
        else if (tileSpec.equals("cast")) return new CastTile(this);
        else if (tileSpec.equals("hotspot")) return new HotspotTile(this);
        else if (tileSpec.equals("user")) return new UserTile(this);
        else if (tileSpec.equals("battery")) return new BatteryTile(this);
        else if (tileSpec.equals("battery")) return new BatterySaverTile(this);
        else if (tileSpec.equals("saver")) return new DataSaverTile(this);
        else if (tileSpec.equals("night")) return new NightDisplayTile(this);
        else if (tileSpec.equals("nfc")) return new NfcTile(this);