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

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

Add cutout support in QSDetail

Add padding from cornerCutoutMargins.

Test: manual on device with and without cutout
Fixes: 147708367
Change-Id: I21a9b71c34664982b4e14dd4372638e405a5046e
Merged-In: I665c8c76a2a057e9a30bce7c28fdbe7a249bb5c2
parent 2c4c1f1e
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -25,9 +25,12 @@ 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.WindowInsets;
import android.view.accessibility.AccessibilityEvent;
import android.widget.ImageView;
import android.widget.LinearLayout;
@@ -42,6 +45,7 @@ import com.android.systemui.SysUiServiceProvider;
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.PhoneStatusBarView;

public class QSDetail extends LinearLayout {

@@ -142,6 +146,25 @@ public class QSDetail extends LinearLayout {
        }
    }

    @Override
    public WindowInsets onApplyWindowInsets(WindowInsets insets) {
        DisplayCutout cutout = insets.getDisplayCutout();
        Pair<Integer, Integer> padding = PhoneStatusBarView.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 updateDetailText() {
        mDetailDoneButton.setText(R.string.quick_settings_done);
        mDetailSettingsButton.setText(R.string.quick_settings_more_settings);