308 lines
13 KiB
Java
308 lines
13 KiB
Java
package cn.com.magnity.magnitycx;
|
|
|
|
import android.graphics.RectF;
|
|
import android.os.Bundle;
|
|
import android.support.annotation.NonNull;
|
|
import android.support.v4.app.FragmentManager;
|
|
import android.support.v4.app.FragmentTransaction;
|
|
import android.support.v4.view.GestureDetectorCompat;
|
|
import android.support.v7.app.AppCompatActivity;
|
|
import android.util.DisplayMetrics;
|
|
import android.view.GestureDetector;
|
|
import android.view.MotionEvent;
|
|
import android.view.OrientationEventListener;
|
|
import android.view.Window;
|
|
import android.view.WindowManager;
|
|
import android.widget.LinearLayout;
|
|
import cn.com.magnity.magnitycx.QueryDialogFragment;
|
|
import cn.com.magnity.magnitycx.log.Logging;
|
|
import cn.com.magnity.magnitycx.sdk.DeviceController;
|
|
import cn.com.magnity.magnitycx.sdk.UsbConnection;
|
|
import cn.com.magnity.magnitycx.upgrade.UpgradeManager;
|
|
import cn.com.magnity.magnitycx.util.ActivityUtils;
|
|
import com.baidu.mobstat.StatService;
|
|
import org.apache.log4j.Level;
|
|
|
|
/* loaded from: classes.dex */
|
|
public class MainActivity extends AppCompatActivity implements QueryDialogFragment.DelegateQueryResult {
|
|
private FragmentMainBottom fragmentBottom_;
|
|
private FragmentMainCenter fragmentCenter_;
|
|
private FragmentMainTop fragmentTop_;
|
|
private GestureDetectorCompat gestureDetector_;
|
|
private boolean mIsLoggingInitSucc;
|
|
OrientationEventListener orientationListener_;
|
|
private UpgradeManager upgradeManager_;
|
|
|
|
public interface DelegateFling {
|
|
void afterFling(int i);
|
|
}
|
|
|
|
@Override // android.support.v7.app.AppCompatActivity, android.support.v4.app.FragmentActivity, android.app.Activity
|
|
protected void onPostResume() {
|
|
super.onPostResume();
|
|
StatService.onPageStart(getApplicationContext(), "");
|
|
}
|
|
|
|
@Override // android.support.v7.app.AppCompatActivity, android.support.v4.app.FragmentActivity, android.support.v4.app.BaseFragmentActivityGingerbread, android.app.Activity
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
ActivityUtils.requestRuntimePermission(this, new String[]{"android.permission.WRITE_EXTERNAL_STORAGE", "android.permission.ACCESS_FINE_LOCATION", "android.permission.CAMERA"}, 0);
|
|
this.mIsLoggingInitSucc = Logging.init(Level.INFO);
|
|
Logging.info("App start");
|
|
Logging.trace("Main activity created");
|
|
setContentView(R.layout.activity_main);
|
|
disableRotationAnimation();
|
|
overridePendingTransition(0, 0);
|
|
getWindow().setFormat(-3);
|
|
StatService.setDebugOn(false);
|
|
this.orientationListener_ = new OrientationEventListener(this, 2) { // from class: cn.com.magnity.magnitycx.MainActivity.1
|
|
@Override // android.view.OrientationEventListener
|
|
public void onOrientationChanged(int orientation) {
|
|
if (orientation != -1) {
|
|
int degree = 0;
|
|
switch (MagApplication.windowManager.getDefaultDisplay().getRotation()) {
|
|
case 0:
|
|
degree = 90;
|
|
break;
|
|
case 1:
|
|
degree = 0;
|
|
break;
|
|
case 2:
|
|
degree = 270;
|
|
break;
|
|
case 3:
|
|
degree = 180;
|
|
break;
|
|
}
|
|
if (degree != DeviceController.getPreviewOrientation()) {
|
|
DeviceController.Lock();
|
|
DeviceController.setPreviewOrientation(degree);
|
|
DeviceController.Unlock();
|
|
}
|
|
}
|
|
}
|
|
};
|
|
if (this.orientationListener_.canDetectOrientation()) {
|
|
this.orientationListener_.enable();
|
|
} else {
|
|
this.orientationListener_.disable();
|
|
int degree = 0;
|
|
switch (MagApplication.windowManager.getDefaultDisplay().getRotation()) {
|
|
case 0:
|
|
degree = 90;
|
|
break;
|
|
case 1:
|
|
degree = 0;
|
|
break;
|
|
case 2:
|
|
degree = 270;
|
|
break;
|
|
case 3:
|
|
degree = 180;
|
|
break;
|
|
}
|
|
DeviceController.Lock();
|
|
DeviceController.setPreviewOrientation(degree);
|
|
DeviceController.Unlock();
|
|
}
|
|
this.gestureDetector_ = new GestureDetectorCompat(this, new MyGestureListener());
|
|
FragmentManager fm = getSupportFragmentManager();
|
|
this.fragmentTop_ = (FragmentMainTop) fm.findFragmentById(R.id.fragment_container_main_top);
|
|
if (this.fragmentTop_ == null) {
|
|
this.fragmentTop_ = new FragmentMainTop();
|
|
fm.beginTransaction().setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN).add(R.id.fragment_container_main_top, this.fragmentTop_).commit();
|
|
}
|
|
this.fragmentCenter_ = (FragmentMainCenter) fm.findFragmentById(R.id.fragment_container_main_center);
|
|
if (this.fragmentCenter_ == null) {
|
|
this.fragmentCenter_ = new FragmentMainCenter();
|
|
fm.beginTransaction().setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN).add(R.id.fragment_container_main_center, this.fragmentCenter_).commit();
|
|
}
|
|
this.fragmentBottom_ = (FragmentMainBottom) fm.findFragmentById(R.id.fragment_container_main_bottom);
|
|
if (this.fragmentBottom_ == null) {
|
|
this.fragmentBottom_ = new FragmentMainBottom();
|
|
fm.beginTransaction().setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN).add(R.id.fragment_container_main_bottom, this.fragmentBottom_).commit();
|
|
}
|
|
UsbConnection usbConn = UsbConnection.getInstance();
|
|
usbConn.registerObserver(this.fragmentTop_);
|
|
usbConn.registerObserver(this.fragmentCenter_);
|
|
usbConn.registerObserver(this.fragmentBottom_);
|
|
if (savedInstanceState == null) {
|
|
this.upgradeManager_ = new UpgradeManager(this);
|
|
this.upgradeManager_.start();
|
|
}
|
|
}
|
|
|
|
@Override // android.support.v7.app.AppCompatActivity, android.support.v4.app.FragmentActivity, android.app.Activity
|
|
protected void onStart() {
|
|
super.onStart();
|
|
UsbConnection usbConn = UsbConnection.getInstance();
|
|
if (usbConn != null) {
|
|
usbConn.setCallbackReceiver(this.fragmentCenter_);
|
|
if (!usbConn.isConnected()) {
|
|
usbConn.init();
|
|
} else {
|
|
usbConn.notifyObervers(1);
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override // android.support.v7.app.AppCompatActivity, android.support.v4.app.FragmentActivity, android.app.Activity
|
|
protected void onStop() {
|
|
super.onStop();
|
|
}
|
|
|
|
@Override // android.support.v4.app.FragmentActivity, android.app.Activity
|
|
protected void onResume() {
|
|
super.onResume();
|
|
}
|
|
|
|
@Override // android.support.v4.app.FragmentActivity, android.app.Activity
|
|
public void onBackPressed() {
|
|
super.onBackPressed();
|
|
UsbConnection usbConn = UsbConnection.getInstance();
|
|
if (usbConn != null) {
|
|
usbConn.setCallbackReceiver(null);
|
|
usbConn.deinit(false);
|
|
}
|
|
}
|
|
|
|
@Override // android.support.v7.app.AppCompatActivity, android.support.v4.app.FragmentActivity, android.app.Activity
|
|
protected void onDestroy() {
|
|
Logging.trace("Main activity destroyed");
|
|
super.onDestroy();
|
|
this.orientationListener_.disable();
|
|
UsbConnection usbConn = UsbConnection.getInstance();
|
|
usbConn.unregisterAll();
|
|
if (this.upgradeManager_ != null) {
|
|
this.upgradeManager_.stop();
|
|
}
|
|
}
|
|
|
|
@Override // android.support.v4.app.FragmentActivity, android.app.Activity, android.support.v4.app.ActivityCompat.OnRequestPermissionsResultCallback
|
|
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
|
for (int i = 0; i < permissions.length; i++) {
|
|
String permission = permissions[i];
|
|
int result = grantResults[i];
|
|
if (result == 0) {
|
|
switch (permission) {
|
|
case "android.permission.WRITE_EXTERNAL_STORAGE":
|
|
if (this.mIsLoggingInitSucc) {
|
|
break;
|
|
} else {
|
|
this.mIsLoggingInitSucc = Logging.init(Level.INFO);
|
|
if (this.mIsLoggingInitSucc) {
|
|
Logging.info("App start");
|
|
break;
|
|
} else {
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
|
}
|
|
|
|
private void disableRotationAnimation() {
|
|
Window localWindow = getWindow();
|
|
WindowManager.LayoutParams localLayoutParams = localWindow.getAttributes();
|
|
localLayoutParams.rotationAnimation = 2;
|
|
localWindow.setAttributes(localLayoutParams);
|
|
}
|
|
|
|
@Override // cn.com.magnity.magnitycx.QueryDialogFragment.DelegateQueryResult
|
|
public void onQueryResult(int result) {
|
|
if (result == 1) {
|
|
this.fragmentTop_.openLaser();
|
|
}
|
|
}
|
|
|
|
@Override // android.support.v4.app.FragmentActivity, android.app.Activity
|
|
protected void onPause() {
|
|
super.onPause();
|
|
StatService.onPageEnd(getApplicationContext(), "��ҳ��");
|
|
}
|
|
|
|
@Override // android.app.Activity, android.view.Window.Callback
|
|
public boolean dispatchTouchEvent(MotionEvent ev) {
|
|
if (this.gestureDetector_ != null && !MagApplication.magParameter.isTraceRoi) {
|
|
this.gestureDetector_.onTouchEvent(ev);
|
|
}
|
|
return super.dispatchTouchEvent(ev);
|
|
}
|
|
|
|
public FragmentMainTop getFragmentMainTop() {
|
|
return this.fragmentTop_;
|
|
}
|
|
|
|
public FragmentMainCenter getFragmentMainCenter() {
|
|
return this.fragmentCenter_;
|
|
}
|
|
|
|
public FragmentMainBottom getFragmentMainBottom() {
|
|
return this.fragmentBottom_;
|
|
}
|
|
|
|
public RectF getRect(int index) {
|
|
RectF rt = new RectF();
|
|
LinearLayout layout = null;
|
|
switch (index) {
|
|
case 0:
|
|
layout = (LinearLayout) findViewById(R.id.fragment_container_main_top);
|
|
break;
|
|
case 1:
|
|
layout = (LinearLayout) findViewById(R.id.fragment_container_main_center);
|
|
break;
|
|
case 2:
|
|
layout = (LinearLayout) findViewById(R.id.fragment_container_main_bottom);
|
|
break;
|
|
}
|
|
rt.left = layout.getX();
|
|
rt.top = layout.getY();
|
|
rt.right = rt.left + layout.getWidth();
|
|
rt.bottom = rt.top + layout.getHeight();
|
|
return rt;
|
|
}
|
|
|
|
private class MyGestureListener extends GestureDetector.SimpleOnGestureListener {
|
|
private MyGestureListener() {
|
|
}
|
|
|
|
@Override // android.view.GestureDetector.SimpleOnGestureListener, android.view.GestureDetector.OnDoubleTapListener
|
|
public boolean onDoubleTap(MotionEvent e) {
|
|
DeviceController.Lock();
|
|
DeviceController.triggerFFC();
|
|
DeviceController.Unlock();
|
|
return super.onDoubleTap(e);
|
|
}
|
|
|
|
@Override // android.view.GestureDetector.SimpleOnGestureListener, android.view.GestureDetector.OnGestureListener
|
|
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
|
|
DisplayMetrics outMetrics = new DisplayMetrics();
|
|
MainActivity.this.getWindow().getWindowManager().getDefaultDisplay().getMetrics(outMetrics);
|
|
int resw = outMetrics.widthPixels;
|
|
int resh = outMetrics.heightPixels;
|
|
if (resw >= resh) {
|
|
resw = resh;
|
|
}
|
|
int cmp = resw / 4;
|
|
if (MainActivity.this.getResources().getConfiguration().orientation == 1) {
|
|
float dist = e2.getX() - e1.getX();
|
|
if (dist > cmp) {
|
|
MainActivity.this.fragmentBottom_.afterFling(0);
|
|
} else if (dist < (-cmp)) {
|
|
MainActivity.this.fragmentBottom_.afterFling(1);
|
|
}
|
|
} else {
|
|
float dist2 = e2.getY() - e1.getY();
|
|
if (dist2 > cmp) {
|
|
MainActivity.this.fragmentBottom_.afterFling(1);
|
|
} else if (dist2 < cmp) {
|
|
MainActivity.this.fragmentBottom_.afterFling(0);
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
}
|