analysis: full official-app reverse artifacts (jadx sources, ghidra libcxsdk decomp, authoritative protocol conclusions) + docs
This commit is contained in:
@@ -0,0 +1,132 @@
|
||||
package cn.com.magnity.magnitycx;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.Point;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.SurfaceHolder;
|
||||
import android.view.SurfaceView;
|
||||
import android.widget.RelativeLayout;
|
||||
import cn.com.magnity.magnitycx.sdk.MagParameter;
|
||||
import cn.com.magnity.magnitycx.sdk.SharedPreferencesManager;
|
||||
import cn.com.magnity.magnitycx.sdk.VisibleCamera;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
public class ImageViewerVisible extends SurfaceView implements SurfaceHolder.Callback {
|
||||
private SurfaceHolder holder_;
|
||||
private int leftMargin_;
|
||||
private int mouseDownX_;
|
||||
private int mouseDownY_;
|
||||
private int topMargin_;
|
||||
|
||||
public ImageViewerVisible(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
this.holder_ = null;
|
||||
this.holder_ = getHolder();
|
||||
this.holder_.addCallback(this);
|
||||
this.holder_.setFormat(-2);
|
||||
this.holder_.setType(3);
|
||||
}
|
||||
|
||||
@Override // android.view.SurfaceHolder.Callback
|
||||
public void surfaceCreated(SurfaceHolder holder) {
|
||||
int width;
|
||||
int height;
|
||||
this.leftMargin_ = MagApplication.magParameter.visWndLeftMargin;
|
||||
this.topMargin_ = MagApplication.magParameter.visWndTopMargin;
|
||||
switch (MagApplication.magParameter.visWndSize) {
|
||||
case 0:
|
||||
width = ((MagApplication.magParameter.portraitScreenWidth / 4) / 12) * 12;
|
||||
break;
|
||||
case 1:
|
||||
width = ((MagApplication.magParameter.portraitScreenWidth / 3) / 12) * 12;
|
||||
break;
|
||||
case 2:
|
||||
width = ((MagApplication.magParameter.portraitScreenWidth / 2) / 12) * 12;
|
||||
break;
|
||||
default:
|
||||
width = ((MagApplication.magParameter.portraitScreenWidth / 4) / 12) * 12;
|
||||
break;
|
||||
}
|
||||
if (getResources().getConfiguration().orientation == 2) {
|
||||
height = width;
|
||||
width = (height * 4) / 3;
|
||||
VisibleCamera.initCamera(MagApplication.magParameter.visCameraId, this.holder_, height);
|
||||
} else {
|
||||
height = (width * 4) / 3;
|
||||
VisibleCamera.initCamera(MagApplication.magParameter.visCameraId, this.holder_, width);
|
||||
}
|
||||
Point outSize = new Point();
|
||||
MagApplication.windowManager.getDefaultDisplay().getSize(outSize);
|
||||
RelativeLayout layout = (RelativeLayout) getParent();
|
||||
RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) getLayoutParams();
|
||||
lp.width = width;
|
||||
lp.height = height;
|
||||
if (this.leftMargin_ < 0 || this.leftMargin_ > outSize.x - lp.width) {
|
||||
this.leftMargin_ = outSize.x - lp.width;
|
||||
}
|
||||
if (this.topMargin_ < 0) {
|
||||
this.topMargin_ = 0;
|
||||
} else if (this.topMargin_ > layout.getHeight() - lp.height) {
|
||||
this.topMargin_ = layout.getHeight() - lp.height;
|
||||
}
|
||||
lp.leftMargin = this.leftMargin_;
|
||||
lp.topMargin = this.topMargin_;
|
||||
setLayoutParams(lp);
|
||||
Canvas canvas = this.holder_.lockCanvas();
|
||||
if (canvas != null) {
|
||||
Paint pint = new Paint();
|
||||
pint.setColor(getResources().getColor(R.color.black));
|
||||
canvas.drawRect(0.0f, 0.0f, lp.width, lp.height, pint);
|
||||
this.holder_.unlockCanvasAndPost(canvas);
|
||||
}
|
||||
}
|
||||
|
||||
@Override // android.view.SurfaceHolder.Callback
|
||||
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
|
||||
}
|
||||
|
||||
@Override // android.view.SurfaceHolder.Callback
|
||||
public void surfaceDestroyed(SurfaceHolder holder) {
|
||||
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) getLayoutParams();
|
||||
MagApplication.magParameter.visWndLeftMargin = params.leftMargin;
|
||||
MagApplication.magParameter.visWndTopMargin = params.topMargin;
|
||||
SharedPreferencesManager.putInt(MagParameter.KEY_VISWNDLEFTMARGIN, params.leftMargin);
|
||||
SharedPreferencesManager.putInt(MagParameter.KEY_VISWNDTOPMARGIN, params.topMargin);
|
||||
SharedPreferencesManager.commit();
|
||||
VisibleCamera.deinitCamera();
|
||||
}
|
||||
|
||||
@Override // android.view.View
|
||||
public boolean onTouchEvent(MotionEvent event) {
|
||||
switch (event.getAction()) {
|
||||
case 0:
|
||||
this.mouseDownX_ = (int) event.getRawX();
|
||||
this.mouseDownY_ = (int) event.getRawY();
|
||||
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) getLayoutParams();
|
||||
this.leftMargin_ = params.leftMargin;
|
||||
this.topMargin_ = params.topMargin;
|
||||
break;
|
||||
case 2:
|
||||
RelativeLayout.LayoutParams params2 = (RelativeLayout.LayoutParams) getLayoutParams();
|
||||
params2.leftMargin = (this.leftMargin_ + ((int) event.getRawX())) - this.mouseDownX_;
|
||||
params2.topMargin = (this.topMargin_ + ((int) event.getRawY())) - this.mouseDownY_;
|
||||
RelativeLayout layout = (RelativeLayout) getParent();
|
||||
if (params2.leftMargin < 0) {
|
||||
params2.leftMargin = 0;
|
||||
} else if (params2.leftMargin > layout.getWidth() - params2.width) {
|
||||
params2.leftMargin = layout.getWidth() - params2.width;
|
||||
}
|
||||
if (params2.topMargin < 0) {
|
||||
params2.topMargin = 0;
|
||||
} else if (params2.topMargin > layout.getHeight() - params2.height) {
|
||||
params2.topMargin = layout.getHeight() - params2.height;
|
||||
}
|
||||
setLayoutParams(params2);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user