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
This commit is contained in:
Fabian Kozynski
2020-02-18 15:05:04 -05:00
parent ca854b42fd
commit dcd3b3b714

View File

@@ -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) {