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

Commit dcd3b3b7 authored by Fabian Kozynski's avatar Fabian Kozynski
Browse files

Add support for cutout in QSDetail

The QS Detail already has padding, so we just need to add some in the
case of corner cutout.

Bug: 147708367
Test: manual
Change-Id: I665c8c76a2a057e9a30bce7c28fdbe7a249bb5c2
parent ca854b42
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
@@ -25,10 +25,13 @@ import android.content.Intent;
import android.content.res.Configuration;
import android.graphics.drawable.Animatable;
import android.util.AttributeSet;
import android.util.Pair;
import android.util.SparseArray;
import android.view.DisplayCutout;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewStub;
import android.view.WindowInsets;
import android.view.accessibility.AccessibilityEvent;
import android.widget.ImageView;
import android.widget.LinearLayout;
@@ -42,6 +45,7 @@ import com.android.systemui.R;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.qs.DetailAdapter;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.phone.StatusBarWindowView;

public class QSDetail extends LinearLayout {

@@ -274,6 +278,32 @@ public class QSDetail extends LinearLayout {
        }
    }

    @Override
    public WindowInsets onApplyWindowInsets(WindowInsets insets) {
        DisplayCutout cutout = insets.getDisplayCutout();

        Pair<Integer, Integer> padding = StatusBarWindowView.cornerCutoutMargins(
                cutout, getDisplay());

        if (padding == null) {
            mQsDetailHeader.setPaddingRelative(
                    getResources().getDimensionPixelSize(R.dimen.qs_detail_header_padding),
                    getPaddingTop(),
                    getResources().getDimensionPixelSize(R.dimen.qs_detail_header_padding),
                    getPaddingBottom()
            );
        } else {
            mQsDetailHeader.setPadding(
                    padding.first,
                    getPaddingTop(),
                    padding.second,
                    getPaddingBottom()
            );
        }

        return super.onApplyWindowInsets(insets);
    }

    private void handleToggleStateChanged(boolean state, boolean toggleEnabled) {
        mSwitchState = state;
        if (mAnimatingOpen) {