Rabbit-R1/android (non root)/java/sources/com/google/android/material/internal/ScrimInsetsFrameLayout.java
2024-05-21 17:08:36 -04:00

135 lines
5.5 KiB
Java

package com.google.android.material.internal;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.View;
import android.widget.FrameLayout;
import androidx.core.view.OnApplyWindowInsetsListener;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import com.google.android.material.R;
/* loaded from: classes2.dex */
public class ScrimInsetsFrameLayout extends FrameLayout {
private boolean drawBottomInsetForeground;
private boolean drawLeftInsetForeground;
private boolean drawRightInsetForeground;
private boolean drawTopInsetForeground;
Drawable insetForeground;
Rect insets;
private Rect tempRect;
protected void onInsetsChanged(WindowInsetsCompat windowInsetsCompat) {
}
public void setDrawBottomInsetForeground(boolean z) {
this.drawBottomInsetForeground = z;
}
public void setDrawLeftInsetForeground(boolean z) {
this.drawLeftInsetForeground = z;
}
public void setDrawRightInsetForeground(boolean z) {
this.drawRightInsetForeground = z;
}
public void setDrawTopInsetForeground(boolean z) {
this.drawTopInsetForeground = z;
}
public void setScrimInsetForeground(Drawable drawable) {
this.insetForeground = drawable;
}
public ScrimInsetsFrameLayout(Context context) {
this(context, null);
}
public ScrimInsetsFrameLayout(Context context, AttributeSet attributeSet) {
this(context, attributeSet, 0);
}
public ScrimInsetsFrameLayout(Context context, AttributeSet attributeSet, int i) {
super(context, attributeSet, i);
this.tempRect = new Rect();
this.drawTopInsetForeground = true;
this.drawBottomInsetForeground = true;
this.drawLeftInsetForeground = true;
this.drawRightInsetForeground = true;
TypedArray obtainStyledAttributes = ThemeEnforcement.obtainStyledAttributes(context, attributeSet, R.styleable.ScrimInsetsFrameLayout, i, R.style.Widget_Design_ScrimInsetsFrameLayout, new int[0]);
this.insetForeground = obtainStyledAttributes.getDrawable(R.styleable.ScrimInsetsFrameLayout_insetForeground);
obtainStyledAttributes.recycle();
setWillNotDraw(true);
ViewCompat.setOnApplyWindowInsetsListener(this, new OnApplyWindowInsetsListener() { // from class: com.google.android.material.internal.ScrimInsetsFrameLayout.1
@Override // androidx.core.view.OnApplyWindowInsetsListener
public WindowInsetsCompat onApplyWindowInsets(View view, WindowInsetsCompat windowInsetsCompat) {
if (ScrimInsetsFrameLayout.this.insets == null) {
ScrimInsetsFrameLayout.this.insets = new Rect();
}
ScrimInsetsFrameLayout.this.insets.set(windowInsetsCompat.getSystemWindowInsetLeft(), windowInsetsCompat.getSystemWindowInsetTop(), windowInsetsCompat.getSystemWindowInsetRight(), windowInsetsCompat.getSystemWindowInsetBottom());
ScrimInsetsFrameLayout.this.onInsetsChanged(windowInsetsCompat);
ScrimInsetsFrameLayout.this.setWillNotDraw(!windowInsetsCompat.hasSystemWindowInsets() || ScrimInsetsFrameLayout.this.insetForeground == null);
ViewCompat.postInvalidateOnAnimation(ScrimInsetsFrameLayout.this);
return windowInsetsCompat.consumeSystemWindowInsets();
}
});
}
@Override // android.view.View
public void draw(Canvas canvas) {
super.draw(canvas);
int width = getWidth();
int height = getHeight();
if (this.insets == null || this.insetForeground == null) {
return;
}
int save = canvas.save();
canvas.translate(getScrollX(), getScrollY());
if (this.drawTopInsetForeground) {
this.tempRect.set(0, 0, width, this.insets.top);
this.insetForeground.setBounds(this.tempRect);
this.insetForeground.draw(canvas);
}
if (this.drawBottomInsetForeground) {
this.tempRect.set(0, height - this.insets.bottom, width, height);
this.insetForeground.setBounds(this.tempRect);
this.insetForeground.draw(canvas);
}
if (this.drawLeftInsetForeground) {
this.tempRect.set(0, this.insets.top, this.insets.left, height - this.insets.bottom);
this.insetForeground.setBounds(this.tempRect);
this.insetForeground.draw(canvas);
}
if (this.drawRightInsetForeground) {
this.tempRect.set(width - this.insets.right, this.insets.top, width, height - this.insets.bottom);
this.insetForeground.setBounds(this.tempRect);
this.insetForeground.draw(canvas);
}
canvas.restoreToCount(save);
}
/* JADX INFO: Access modifiers changed from: protected */
@Override // android.view.ViewGroup, android.view.View
public void onAttachedToWindow() {
super.onAttachedToWindow();
Drawable drawable = this.insetForeground;
if (drawable != null) {
drawable.setCallback(this);
}
}
/* JADX INFO: Access modifiers changed from: protected */
@Override // android.view.ViewGroup, android.view.View
public void onDetachedFromWindow() {
super.onDetachedFromWindow();
Drawable drawable = this.insetForeground;
if (drawable != null) {
drawable.setCallback(null);
}
}
}