jimu-decompiled/sources/com/ubt/jimu/controller/component/ActionView.java
2025-05-13 19:24:51 +02:00

566 lines
19 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.ubt.jimu.controller.component;
import android.animation.ValueAnimator;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PointF;
import android.graphics.Rect;
import android.graphics.RectF;
import android.text.TextUtils;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import com.ubt.jimu.R;
import com.ubt.jimu.controller.data.widget.ActionWidgetData;
import com.ubt.jimu.controller.util.SvgUtils;
import com.ubt.jimu.controller.view.control.ControlTouchEvent;
import com.ubt.jimu.controller.view.control.OnControllerClickListener;
import com.ubt.jimu.controller.view.control.SuperControlView;
import com.ubt.jimu.utils.LocaleUtils;
import com.ubt.jimu.utils.LogUtils;
import com.ubt.jimu.utils.SystemUtils;
import com.ubtrobot.log.ALog;
/* loaded from: classes.dex */
public class ActionView extends SuperControlView<ActionWidgetData> {
private Context B;
private float C;
private float D;
private Paint E;
private Paint F;
private Paint G;
private RectF H;
private RectF I;
private RectF J;
private RectF K;
private Bitmap L;
private Bitmap M;
private String N;
private Bitmap O;
private Bitmap P;
private Bitmap Q;
private Bitmap R;
private float S;
private float T;
private float U;
private float V;
private float W;
private float a0;
private ValueAnimator b0;
private float c0;
private float d0;
private int e0;
private float f0;
private float g0;
private long h0;
private long i0;
public ActionView(Context context, int i, float f, float f2) {
super(context);
this.a0 = -360.0f;
this.B = context;
this.C = f;
this.D = f2;
this.e0 = i;
j();
i();
}
private void b(float f, float f2) {
this.H.offsetTo(f, f2);
this.j.offsetTo(f, f2);
float centerX = this.H.centerX();
float centerY = this.H.centerY();
RectF rectF = this.I;
float f3 = this.f0;
rectF.offsetTo(centerX - (f3 / 2.0f), centerY - (f3 / 2.0f));
this.K.offsetTo(centerX - this.V, centerY - this.W);
}
private void g() {
OnControllerClickListener onControllerClickListener = getOnControllerClickListener();
if (onControllerClickListener == null || b()) {
return;
}
if (this.z == 0) {
long j = this.h0;
if (j - this.t > 500 || j - this.i0 < 500) {
return;
}
}
float centerY = this.H.centerY();
float centerX = this.H.centerX();
float f = this.c0;
float f2 = this.l;
if (f < centerX - (f2 / 2.0f) || f > centerX + (f2 / 2.0f)) {
return;
}
float f3 = this.d0;
float f4 = this.m;
if (f3 < centerY - (f4 / 2.0f) || f3 > centerY + (f4 / 2.0f)) {
return;
}
onControllerClickListener.a(getData(), this);
this.i0 = System.currentTimeMillis();
}
private void h() {
if (this.e0 == 0) {
this.e0 = R.drawable.icon_loudly;
}
SvgUtils a = SvgUtils.a(this.B);
int i = this.e0;
float f = this.f0;
this.L = a.a(i, (int) f, (int) f);
}
private void i() {
this.l = this.B.getResources().getDimension(R.dimen.grid_view_width) * 4.0f;
this.m = this.l;
float f = this.D;
float f2 = this.m;
float f3 = f + (f2 / 2.0f);
int i = this.s;
if (f3 >= i) {
this.D = i - (f2 / 2.0f);
}
float f4 = this.C;
float f5 = this.m;
if (f4 - (f5 / 2.0f) <= 0.0f) {
this.C = f5 / 2.0f;
} else {
float f6 = f4 + (f5 / 2.0f);
int i2 = this.r;
if (f6 >= i2) {
this.C = i2 - (f5 / 2.0f);
}
}
this.U = this.B.getResources().getDimension(R.dimen.control_action_width);
this.f0 = this.B.getResources().getDimension(R.dimen.control_action_width);
this.g0 = this.B.getResources().getDimension(R.dimen.control_action_text_width);
h();
this.O = BitmapFactory.decodeResource(this.B.getResources(), R.mipmap.btn_shadow);
this.R = BitmapFactory.decodeResource(this.B.getResources(), R.mipmap.text_background_normal);
this.Q = BitmapFactory.decodeResource(this.B.getResources(), R.mipmap.text_background_pressed);
this.P = this.R;
this.E = new Paint();
this.E.setFlags(3);
this.F = new Paint();
this.G = new Paint();
this.F.setAntiAlias(true);
this.F.setColor(this.B.getResources().getColor(R.color.bg_C9EBFE));
this.G.setColor(this.B.getResources().getColor(R.color.bg_FFFFFF));
float f7 = this.C;
float f8 = this.l;
float f9 = this.D;
float f10 = this.m;
this.j = new RectF(f7 - (f8 / 2.0f), f9 - (f10 / 2.0f), f7 + (f8 / 2.0f), f9 + (f10 / 2.0f));
float f11 = this.C;
float f12 = this.l;
float f13 = this.D;
float f14 = this.m;
this.H = new RectF(f11 - (f12 / 2.0f), f13 - (f14 / 2.0f), f11 + (f12 / 2.0f), f13 + (f14 / 2.0f));
this.V = this.B.getResources().getDimension(R.dimen.control_action_text_x_offset);
this.W = this.B.getResources().getDimension(R.dimen.control_action_text_y_offset);
float[] viewCenterXY = getViewCenterXY();
this.K = new RectF(viewCenterXY[0] - this.V, viewCenterXY[1] - this.W, this.C + (this.l / 2.0f), this.D + (this.m / 2.0f));
this.J = new RectF();
float f15 = this.C;
float f16 = this.f0;
float f17 = this.D;
this.I = new RectF(f15 - (f16 / 2.0f), f17 - (f16 / 2.0f), f15 + (f16 / 2.0f), f17 + (f16 / 2.0f));
}
private void j() {
}
public void a(int i) {
this.e0 = i;
h();
invalidate();
}
public void f() {
ALog.a("Test").d("Text:" + this.N);
this.N = null;
this.M = null;
invalidate();
}
public String getText() {
return this.N;
}
@Override // com.ubt.jimu.controller.view.control.SuperControlView
public float[] getViewCenterXY() {
return new float[]{this.H.centerX(), this.H.centerY()};
}
@Override // com.ubt.jimu.controller.view.control.SuperControlView, android.view.View
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if (b()) {
canvas.drawBitmap(this.O, (Rect) null, this.H, this.E);
canvas.drawBitmap(this.L, (Rect) null, this.I, this.E);
return;
}
if (getState() == 0) {
a();
canvas.drawBitmap(this.O, (Rect) null, this.H, this.E);
canvas.drawArc(this.J, 270.0f, this.a0, true, this.F);
a(canvas);
canvas.drawBitmap(this.L, (Rect) null, this.I, this.E);
return;
}
if (c()) {
e();
}
canvas.drawBitmap(this.O, (Rect) null, this.H, this.E);
a(canvas);
canvas.drawBitmap(this.L, (Rect) null, this.I, this.E);
}
@Override // android.view.View
public boolean onTouchEvent(MotionEvent motionEvent) {
int actionMasked = motionEvent.getActionMasked();
if (actionMasked == 0) {
this.t = System.currentTimeMillis();
this.c0 = motionEvent.getX();
this.d0 = motionEvent.getY();
d();
float centerX = this.H.centerX();
float centerY = this.H.centerY();
float f = this.c0;
float f2 = this.l;
if (f >= centerX - (f2 / 2.0f) && f <= (f2 / 2.0f) + centerX) {
float f3 = this.d0;
float f4 = this.m;
if (f3 >= centerY - (f4 / 2.0f) && f3 <= (f4 / 2.0f) + centerY) {
this.f = false;
setPressed(true);
if (b()) {
float centerX2 = this.j.centerX();
float centerY2 = this.j.centerY();
this.S = centerX2 - this.c0;
this.T = centerY2 - this.d0;
bringToFront();
ControlTouchEvent controlTouchEvent = this.i;
if (controlTouchEvent != null) {
controlTouchEvent.a((View) this);
}
} else if (getState() == 0) {
ValueAnimator valueAnimator = this.b0;
if (valueAnimator != null) {
valueAnimator.cancel();
}
this.a0 = -360.0f;
RectF rectF = this.J;
float f5 = this.U;
rectF.set(centerX - (f5 / 2.0f), centerY - (f5 / 2.0f), centerX + (f5 / 2.0f), centerY + (f5 / 2.0f));
this.P = this.Q;
this.H.set(0.0f, 0.0f, 0.0f, 0.0f);
ControlTouchEvent controlTouchEvent2 = this.i;
if (controlTouchEvent2 != null) {
controlTouchEvent2.a((SuperControlView) this);
this.i.a(getData());
}
invalidate();
}
return true;
}
}
return super.onTouchEvent(motionEvent);
}
if (actionMasked == 1) {
setPressed(false);
if (!this.f) {
LogUtils.c("MotionEvent: 抬起");
this.f = true;
a(SuperControlView.MotionEventState.STATE_UP);
}
invalidate();
return true;
}
if (actionMasked != 2) {
if (actionMasked != 3) {
return super.onTouchEvent(motionEvent);
}
if (!this.f) {
LogUtils.c("MotionEvent取消");
this.f = true;
a(SuperControlView.MotionEventState.STATE_CANCEL);
}
return true;
}
if (b()) {
float x = motionEvent.getX();
float y = motionEvent.getY();
b(super.a(motionEvent, this.S), super.b(motionEvent, this.T));
boolean a = a(this.j);
if (this.i != null) {
if (Math.abs(this.c0 - x) <= 20.0f && Math.abs(this.d0 - y) <= 20.0f) {
return true;
}
this.i.b((View) this);
if (a) {
if (this.e != null && getData() != null) {
this.e.setOverlapState(true);
this.e.a(String.format(getResources().getString(R.string.control_remove_widget), getData().getWidgetInfo(this.B)));
}
b(false);
this.b.setColor(this.B.getResources().getColor(R.color.color_FF4979));
if (!this.n) {
SystemUtils.b(this.B);
this.n = true;
}
} else {
if (this.e != null && getData() != null) {
this.e.setOverlapState(false);
this.e.a(String.format(getResources().getString(R.string.control_remove_widget_here), getData().getShowName(LocaleUtils.b())));
}
RectF rectF2 = this.H;
PointF a2 = a(rectF2.left, rectF2.top);
this.k.offsetTo(a2.x, a2.y);
if (this.i.c((SuperControlView) this)) {
b(false);
this.b.setColor(this.B.getResources().getColor(R.color.bg_99B8BEC1));
} else {
b(true);
this.b.setColor(this.B.getResources().getColor(this.a));
}
this.n = false;
}
}
invalidate();
}
return true;
}
/* JADX WARN: Can't fix incorrect switch cases order, some code will duplicate */
public Bitmap a(String str) {
char c;
switch (str.hashCode()) {
case -1721778389:
if (str.equals("DPAD_UP")) {
c = '\b';
break;
}
c = 65535;
break;
case -1067127502:
if (str.equals("DPAD_DOWN")) {
c = '\t';
break;
}
c = 65535;
break;
case -1066899305:
if (str.equals("DPAD_LEFT")) {
c = '\n';
break;
}
c = 65535;
break;
case 65:
if (str.equals("A")) {
c = 0;
break;
}
c = 65535;
break;
case 66:
if (str.equals("B")) {
c = 1;
break;
}
c = 65535;
break;
case 88:
if (str.equals("X")) {
c = 2;
break;
}
c = 65535;
break;
case 89:
if (str.equals("Y")) {
c = 3;
break;
}
c = 65535;
break;
case 2405:
if (str.equals("L1")) {
c = 4;
break;
}
c = 65535;
break;
case 2406:
if (str.equals("L2")) {
c = 5;
break;
}
c = 65535;
break;
case 2591:
if (str.equals("R1")) {
c = 6;
break;
}
c = 65535;
break;
case 2592:
if (str.equals("R2")) {
c = 7;
break;
}
c = 65535;
break;
case 1291520876:
if (str.equals("DPAD_RIGHT")) {
c = 11;
break;
}
c = 65535;
break;
default:
c = 65535;
break;
}
int i = R.drawable.ic_text_x;
switch (c) {
case 0:
i = R.drawable.ic_text_a;
break;
case 1:
i = R.drawable.ic_text_b;
break;
case 2:
break;
case 3:
i = R.drawable.ic_text_y;
break;
case 4:
i = R.drawable.ic_text_l1;
break;
case 5:
i = R.drawable.ic_text_l2;
break;
case 6:
i = R.drawable.ic_text_r1;
break;
case 7:
i = R.drawable.ic_text_r2;
break;
case '\b':
i = R.drawable.ic_text_direction_up;
break;
case '\t':
i = R.drawable.ic_text_direction_down;
break;
case '\n':
i = R.drawable.ic_text_direction_left;
break;
case 11:
i = R.drawable.ic_text_direction_right;
break;
default:
Log.e("ActionView", "Invalid text, use defaut text X");
break;
}
if (i == 0) {
return null;
}
SvgUtils a = SvgUtils.a(this.B);
float f = this.g0;
return a.a(i, (int) f, (int) f);
}
private void a(Canvas canvas) {
if (this.M != null) {
canvas.drawBitmap(this.P, (Rect) null, this.K, this.E);
canvas.drawBitmap(this.M, (Rect) null, new RectF(this.K.centerX() - (this.g0 / 2.0f), this.K.centerY() - (this.g0 / 2.0f), this.K.centerX() + (this.g0 / 2.0f), this.K.centerY() + (this.g0 / 2.0f)), this.E);
}
}
public void b(String str) {
ALog.a("Test").d("Text:" + str);
this.N = str;
if (TextUtils.isEmpty(str)) {
f();
}
this.M = a(str);
invalidate();
}
private void a(SuperControlView.MotionEventState motionEventState) {
ActionWidgetData data;
this.h0 = System.currentTimeMillis();
if (b()) {
this.S = 0.0f;
this.T = 0.0f;
if (a(this.j)) {
if (this.i != null && (data = getData()) != null) {
this.i.a(this, data.getActionID());
this.i.c((View) this);
}
invalidate();
return;
}
if (this.i != null) {
RectF rectF = this.H;
PointF a = a(rectF.left, rectF.top);
this.k.offsetTo(a.x, a.y);
if (this.i.c((SuperControlView) this)) {
b(this.o, this.p);
this.b.setColor(this.B.getResources().getColor(this.a));
} else {
b(a.x, a.y);
this.i.a(this, this.j.centerX(), this.j.centerY());
}
this.i.c((View) this);
if (System.currentTimeMillis() - this.t < 300) {
this.i.a(this, getData());
}
}
b(false);
return;
}
float centerX = this.I.centerX();
float centerY = this.I.centerY();
RectF rectF2 = this.H;
float f = this.l;
float f2 = this.m;
rectF2.set(centerX - (f / 2.0f), centerY - (f2 / 2.0f), centerX + (f / 2.0f), centerY + (f2 / 2.0f));
this.J.set(0.0f, 0.0f, 0.0f, 0.0f);
this.P = this.R;
int i = this.z;
if (i != 0) {
if (i != 2) {
return;
}
setSelect(true);
g();
return;
}
g();
ControlTouchEvent controlTouchEvent = this.i;
if (controlTouchEvent != null) {
controlTouchEvent.b((SuperControlView) this);
this.i.a(getData(), motionEventState);
}
}
public boolean a(RectF rectF) {
RectF deleteViewRectF = getDeleteViewRectF();
if (deleteViewRectF == null) {
return false;
}
return RectF.intersects(deleteViewRectF, rectF);
}
}