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:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user