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

Commit 604ae091 authored by John Spurlock's avatar John Spurlock
Browse files

Shade: Hide status icons, take 2.

Restore visibility logic (for mirrored view) and remove a bad
optimization from the clipping calculation.

Bug:16337935
Change-Id: I7eb82ef6c87f30da9d8b70136e05dab3abdbdead
parent 6ccb5f89
Loading
Loading
Loading
Loading
+10 −9
Original line number Diff line number Diff line
@@ -285,6 +285,9 @@ public class StatusBarHeaderView extends RelativeLayout implements View.OnClickL
        mDateExpanded.setVisibility(mExpanded && !mOverscrolled ? View.VISIBLE : View.GONE);
        mSettingsButton.setVisibility(mExpanded && !mOverscrolled ? View.VISIBLE : View.GONE);
        mQsDetailHeader.setVisibility(mExpanded ? View.VISIBLE : View.GONE);
        if (mStatusIcons != null) {
            mStatusIcons.setVisibility(!mExpanded || mOverscrolled ? View.VISIBLE : View.GONE);
        }
        if (mSignalCluster != null) {
            mSignalCluster.setVisibility(!mExpanded || mOverscrolled ? View.VISIBLE : View.GONE);
        }
@@ -437,15 +440,16 @@ public class StatusBarHeaderView extends RelativeLayout implements View.OnClickL
    public void attachSystemIcons(LinearLayout systemIcons) {
        mSystemIconsContainer.addView(systemIcons);
        mStatusIcons = systemIcons.findViewById(R.id.statusIcons);
        mStatusIcons.addOnLayoutChangeListener(mStatusIconsChanged);
        mSignalCluster = systemIcons.findViewById(R.id.signal_cluster);
        mSignalCluster.addOnLayoutChangeListener(mSignalClusterChanged);
    }

    public void onSystemIconsDetached() {
        if (mStatusIcons != null) {
            mStatusIcons.removeOnLayoutChangeListener(mStatusIconsChanged);
            mStatusIcons.setVisibility(View.VISIBLE);
        }
        if (mSignalCluster != null) {
            mSignalCluster.removeOnLayoutChangeListener(mSignalClusterChanged);
            mSignalCluster.setVisibility(View.VISIBLE);
        }
        mStatusIcons = null;
@@ -528,7 +532,7 @@ public class StatusBarHeaderView extends RelativeLayout implements View.OnClickL
        // here.
    }

    private final OnLayoutChangeListener mStatusIconsChanged = new OnLayoutChangeListener() {
    private final OnLayoutChangeListener mSignalClusterChanged = new OnLayoutChangeListener() {
        private final Rect mClipBounds = new Rect();

        @Override
@@ -536,13 +540,10 @@ public class StatusBarHeaderView extends RelativeLayout implements View.OnClickL
                int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
            // Hide the statusIcons in the header by clipping them.  Can't touch visibility since
            // they are mirrored to the real status bar.
            final Rect r = mSystemIconsContainer.getClipBounds();
            if (r == null || r.left != right) {
                mClipBounds.set(right, 0, mSystemIconsContainer.getWidth(),
            mClipBounds.set(left, 0, mSystemIconsContainer.getWidth(),
                    mSystemIconsContainer.getHeight());
            mSystemIconsContainer.setClipBounds(mClipBounds);
        }
        }
    };

    private final QSPanel.Callback mQsPanelCallback = new QSPanel.Callback() {