mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2025-01-09 13:43:22 +00:00
151 lines
5.4 KiB
Java
151 lines
5.4 KiB
Java
|
package com.google.android.material.timepicker;
|
||
|
|
||
|
import android.content.Context;
|
||
|
import android.content.res.ColorStateList;
|
||
|
import android.content.res.TypedArray;
|
||
|
import android.graphics.drawable.Drawable;
|
||
|
import android.os.Handler;
|
||
|
import android.util.AttributeSet;
|
||
|
import android.view.LayoutInflater;
|
||
|
import android.view.View;
|
||
|
import android.view.ViewGroup;
|
||
|
import androidx.constraintlayout.widget.ConstraintLayout;
|
||
|
import androidx.constraintlayout.widget.ConstraintSet;
|
||
|
import androidx.core.view.ViewCompat;
|
||
|
import com.google.android.material.R;
|
||
|
import com.google.android.material.shape.MaterialShapeDrawable;
|
||
|
import com.google.android.material.shape.RelativeCornerSize;
|
||
|
import java.util.ArrayList;
|
||
|
import java.util.HashMap;
|
||
|
import java.util.Iterator;
|
||
|
import java.util.List;
|
||
|
import java.util.Map;
|
||
|
|
||
|
/* JADX INFO: Access modifiers changed from: package-private */
|
||
|
/* loaded from: classes2.dex */
|
||
|
public class RadialViewGroup extends ConstraintLayout {
|
||
|
static final int LEVEL_1 = 1;
|
||
|
static final int LEVEL_2 = 2;
|
||
|
static final float LEVEL_RADIUS_RATIO = 0.66f;
|
||
|
private static final String SKIP_TAG = "skip";
|
||
|
private MaterialShapeDrawable background;
|
||
|
private int radius;
|
||
|
private final Runnable updateLayoutParametersRunnable;
|
||
|
|
||
|
public int getRadius() {
|
||
|
return this.radius;
|
||
|
}
|
||
|
|
||
|
public RadialViewGroup(Context context) {
|
||
|
this(context, null);
|
||
|
}
|
||
|
|
||
|
public RadialViewGroup(Context context, AttributeSet attributeSet) {
|
||
|
this(context, attributeSet, 0);
|
||
|
}
|
||
|
|
||
|
public RadialViewGroup(Context context, AttributeSet attributeSet, int i) {
|
||
|
super(context, attributeSet, i);
|
||
|
LayoutInflater.from(context).inflate(R.layout.material_radial_view_group, this);
|
||
|
ViewCompat.setBackground(this, createBackground());
|
||
|
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, R.styleable.RadialViewGroup, i, 0);
|
||
|
this.radius = obtainStyledAttributes.getDimensionPixelSize(R.styleable.RadialViewGroup_materialCircleRadius, 0);
|
||
|
this.updateLayoutParametersRunnable = new Runnable() { // from class: com.google.android.material.timepicker.RadialViewGroup$$ExternalSyntheticLambda0
|
||
|
@Override // java.lang.Runnable
|
||
|
public final void run() {
|
||
|
RadialViewGroup.this.updateLayoutParams();
|
||
|
}
|
||
|
};
|
||
|
obtainStyledAttributes.recycle();
|
||
|
}
|
||
|
|
||
|
private Drawable createBackground() {
|
||
|
MaterialShapeDrawable materialShapeDrawable = new MaterialShapeDrawable();
|
||
|
this.background = materialShapeDrawable;
|
||
|
materialShapeDrawable.setCornerSize(new RelativeCornerSize(0.5f));
|
||
|
this.background.setFillColor(ColorStateList.valueOf(-1));
|
||
|
return this.background;
|
||
|
}
|
||
|
|
||
|
@Override // android.view.View
|
||
|
public void setBackgroundColor(int i) {
|
||
|
this.background.setFillColor(ColorStateList.valueOf(i));
|
||
|
}
|
||
|
|
||
|
@Override // androidx.constraintlayout.widget.ConstraintLayout, android.view.ViewGroup
|
||
|
public void addView(View view, int i, ViewGroup.LayoutParams layoutParams) {
|
||
|
super.addView(view, i, layoutParams);
|
||
|
if (view.getId() == -1) {
|
||
|
view.setId(ViewCompat.generateViewId());
|
||
|
}
|
||
|
updateLayoutParamsAsync();
|
||
|
}
|
||
|
|
||
|
@Override // androidx.constraintlayout.widget.ConstraintLayout, android.view.ViewGroup
|
||
|
public void onViewRemoved(View view) {
|
||
|
super.onViewRemoved(view);
|
||
|
updateLayoutParamsAsync();
|
||
|
}
|
||
|
|
||
|
private void updateLayoutParamsAsync() {
|
||
|
Handler handler = getHandler();
|
||
|
if (handler != null) {
|
||
|
handler.removeCallbacks(this.updateLayoutParametersRunnable);
|
||
|
handler.post(this.updateLayoutParametersRunnable);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override // android.view.View
|
||
|
protected void onFinishInflate() {
|
||
|
super.onFinishInflate();
|
||
|
updateLayoutParams();
|
||
|
}
|
||
|
|
||
|
/* JADX INFO: Access modifiers changed from: protected */
|
||
|
public void updateLayoutParams() {
|
||
|
ConstraintSet constraintSet = new ConstraintSet();
|
||
|
constraintSet.clone(this);
|
||
|
HashMap hashMap = new HashMap();
|
||
|
for (int i = 0; i < getChildCount(); i++) {
|
||
|
View childAt = getChildAt(i);
|
||
|
if (childAt.getId() != R.id.circle_center && !shouldSkipView(childAt)) {
|
||
|
int i2 = (Integer) childAt.getTag(R.id.material_clock_level);
|
||
|
if (i2 == null) {
|
||
|
i2 = 1;
|
||
|
}
|
||
|
if (!hashMap.containsKey(i2)) {
|
||
|
hashMap.put(i2, new ArrayList());
|
||
|
}
|
||
|
((List) hashMap.get(i2)).add(childAt);
|
||
|
}
|
||
|
}
|
||
|
for (Map.Entry entry : hashMap.entrySet()) {
|
||
|
addConstraints((List) entry.getValue(), constraintSet, getLeveledRadius(((Integer) entry.getKey()).intValue()));
|
||
|
}
|
||
|
constraintSet.applyTo(this);
|
||
|
}
|
||
|
|
||
|
private void addConstraints(List<View> list, ConstraintSet constraintSet, int i) {
|
||
|
Iterator<View> it = list.iterator();
|
||
|
float f = 0.0f;
|
||
|
while (it.hasNext()) {
|
||
|
constraintSet.constrainCircle(it.next().getId(), R.id.circle_center, i, f);
|
||
|
f += 360.0f / list.size();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void setRadius(int i) {
|
||
|
this.radius = i;
|
||
|
updateLayoutParams();
|
||
|
}
|
||
|
|
||
|
int getLeveledRadius(int i) {
|
||
|
int i2 = this.radius;
|
||
|
return i == 2 ? Math.round(i2 * LEVEL_RADIUS_RATIO) : i2;
|
||
|
}
|
||
|
|
||
|
private static boolean shouldSkipView(View view) {
|
||
|
return SKIP_TAG.equals(view.getTag());
|
||
|
}
|
||
|
}
|