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

Commit 91093927 authored by Shawn Lin's avatar Shawn Lin Committed by android-build-merger
Browse files

Merge "Fixed jarring touch ripple effect when turning on/off battery saver...

Merge "Fixed jarring touch ripple effect when turning on/off battery saver from quick settings" into qt-dev
am: 2acef42d

Change-Id: I157aae4d497c6abafda30549bbc4dfc794b8a6a8
parents 1b2d3c7c 2acef42d
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -117,6 +117,7 @@ public interface QSTile {
        public String expandedAccessibilityClassName;
        public SlashState slash;
        public boolean handlesLongClick = true;
        public boolean showRippleEffect = true;

        public boolean copyTo(State other) {
            if (other == null) throw new IllegalArgumentException();
@@ -135,7 +136,8 @@ public interface QSTile {
                    || !Objects.equals(other.isTransient, isTransient)
                    || !Objects.equals(other.dualTarget, dualTarget)
                    || !Objects.equals(other.slash, slash)
                    || !Objects.equals(other.handlesLongClick, handlesLongClick);
                    || !Objects.equals(other.handlesLongClick, handlesLongClick)
                    || !Objects.equals(other.showRippleEffect, showRippleEffect);
            other.icon = icon;
            other.iconSupplier = iconSupplier;
            other.label = label;
@@ -149,6 +151,7 @@ public interface QSTile {
            other.isTransient = isTransient;
            other.slash = slash != null ? slash.copy() : null;
            other.handlesLongClick = handlesLongClick;
            other.showRippleEffect = showRippleEffect;
            return changed;
        }

+3 −2
Original line number Diff line number Diff line
@@ -40,7 +40,6 @@ import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
import android.widget.Switch;

import com.android.settingslib.Utils;
@@ -63,6 +62,7 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView {
    private boolean mTileState;
    private boolean mCollapsedView;
    private boolean mClicked;
    private boolean mShowRippleEffect = true;

    private final ImageView mBg;
    private final int mColorActive;
@@ -209,6 +209,7 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView {
            mCircleColor = circleColor;
        }

        mShowRippleEffect = state.showRippleEffect;
        setClickable(state.state != Tile.STATE_UNAVAILABLE);
        setLongClickable(state.handlesLongClick);
        mIcon.setIcon(state, allowAnimations);
@@ -254,7 +255,7 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView {
    @Override
    public void setClickable(boolean clickable) {
        super.setClickable(clickable);
        setBackground(clickable ? mRipple : null);
        setBackground(clickable && mShowRippleEffect ? mRipple : null);
    }

    @Override
+17 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@
package com.android.systemui.qs.tiles;

import android.content.Intent;
import android.provider.Settings.Secure;
import android.service.quicksettings.Tile;
import android.widget.Switch;

@@ -23,6 +24,7 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.systemui.R;
import com.android.systemui.plugins.qs.QSTile.BooleanState;
import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.SecureSetting;
import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.statusbar.policy.BatteryController;

@@ -32,6 +34,7 @@ public class BatterySaverTile extends QSTileImpl<BooleanState> implements
        BatteryController.BatteryStateChangeCallback {

    private final BatteryController mBatteryController;
    private final SecureSetting mSetting;

    private int mLevel;
    private boolean mPowerSave;
@@ -45,6 +48,12 @@ public class BatterySaverTile extends QSTileImpl<BooleanState> implements
        super(host);
        mBatteryController = batteryController;
        mBatteryController.observe(getLifecycle(), this);
        mSetting = new SecureSetting(mContext, mHandler, Secure.LOW_POWER_WARNING_ACKNOWLEDGED) {
            @Override
            protected void handleValueChanged(int value, boolean observedChange) {
                handleRefreshState(null);
            }
        };
    }

    @Override
@@ -52,6 +61,12 @@ public class BatterySaverTile extends QSTileImpl<BooleanState> implements
        return new BooleanState();
    }

    @Override
    protected void handleDestroy() {
        super.handleDestroy();
        mSetting.setListening(false);
    }

    @Override
    public int getMetricsCategory() {
        return MetricsEvent.QS_BATTERY_TILE;
@@ -59,6 +74,7 @@ public class BatterySaverTile extends QSTileImpl<BooleanState> implements

    @Override
    public void handleSetListening(boolean listening) {
        mSetting.setListening(listening);
    }

    @Override
@@ -88,6 +104,7 @@ public class BatterySaverTile extends QSTileImpl<BooleanState> implements
        state.contentDescription = state.label;
        state.value = mPowerSave;
        state.expandedAccessibilityClassName = Switch.class.getName();
        state.showRippleEffect = mSetting.getValue() == 0;
    }

    @Override