123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938 |
- package com.taiyi.zhimai.ui.activity;
- import static android.bluetooth.BluetoothAdapter.ACTION_REQUEST_ENABLE;
- import android.Manifest;
- import android.annotation.SuppressLint;
- import android.app.Dialog;
- import android.bluetooth.BluetoothGatt;
- import android.content.Intent;
- import android.content.pm.PackageManager;
- import android.graphics.Color;
- import android.os.Build;
- import android.os.Handler;
- import android.text.TextUtils;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.animation.ScaleAnimation;
- import android.widget.ImageView;
- import android.widget.LinearLayout;
- import android.widget.TextView;
- import android.widget.Toast;
- import androidx.annotation.NonNull;
- import androidx.annotation.Nullable;
- import androidx.appcompat.app.AppCompatActivity;
- import androidx.constraintlayout.widget.ConstraintLayout;
- import androidx.core.app.ActivityCompat;
- import androidx.core.content.ContextCompat;
- import androidx.recyclerview.widget.LinearLayoutManager;
- import androidx.recyclerview.widget.RecyclerView;
- import androidx.viewpager.widget.ViewPager;
- import com.blelib.bean.BleDeviceD;
- import com.blelib.ble.BleController;
- import com.blelib.ble.BleEvent;
- import com.blelib.ble.IDeviceInterface;
- import com.google.android.material.tabs.TabLayout;
- import com.jakewharton.rxbinding2.view.RxView;
- import com.taiyi.pulse.fastble.BleManager;
- import com.taiyi.pulse.fastble.callback.BleGattCallback;
- import com.taiyi.pulse.fastble.callback.BleScanCallback;
- import com.taiyi.pulse.fastble.data.BleDevice;
- import com.taiyi.pulse.fastble.exception.BleException;
- import com.taiyi.pulse.fastble.scan.BleScanRuleConfig;
- import com.taiyi.tyusbsdk.ResultListener;
- import com.taiyi.tyusbsdk.USBDataTemp;
- import com.taiyi.tyusbsdk.pulse.TaiyiManager;
- import com.taiyi.tyusbsdk.pulse.bean.PulseResult;
- import com.taiyi.tyusbsdk.pulse.net.HttpImpl;
- import com.taiyi.tyusbsdk.pulse.net.HttpUtil;
- import com.taiyi.tyusbsdk.pulse.net.TokenOverDueHttpImpl;
- import com.taiyi.tyusbsdk.pulse.ui.SuccessActivity;
- import com.taiyi.tyusbsdk.pulse.util.AppManager;
- import com.taiyi.tyusbsdk.pulse.util.DialogTipUtil;
- import com.taiyi.tyusbsdk.pulse.util.LogUtil;
- import com.taiyi.tyusbsdk.pulse.util.ProgressDialogUtil;
- import com.taiyi.tyusbsdk.pulse.util.QTimeUtil;
- import com.taiyi.tyusbsdk.pulse.util.ToastUtil;
- import com.taiyi.zhimai.R;
- import com.taiyi.zhimai.common.util.DialogTipsUtil;
- import com.taiyi.zhimai.ui.DeviceSAdapter;
- import com.taiyi.zhimai.ui.activity.measure.BleMeasureFlowActivity;
- import com.taiyi.zhimai.ui.activity.measure.Measure3Activity;
- import org.greenrobot.eventbus.EventBus;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.UUID;
- import java.util.concurrent.TimeUnit;
- import io.reactivex.functions.Consumer;
- public class MeasureMainActivity extends BleStateActivity implements ResultListener {
- private int retryType = 0;
- private final static int RETRY_LEFT = 201;
- private final static int RETRY_RIGHT = 202;
- private final static int RETRY_SAVE = 203;
- public static final int REQUEST_ENABLE_BT = 100;
- public static final int REQUEST_MEASURE_LEFT = 101;
- public static final int REQUEST_MEASURE_RIGHT = 102;
- public static final int REQUEST_TO_RESULT = 103;
- public static final int RESULT_MEASURE_FAIL = 203;
- private static final int REQUEST_PERMISSION_CODE = 106;
- public static final int CONNECT_MODE_USB = 1;
- public static final int CONNECT_MODE_BLE = 2;
- private int connect_mode;
- private ImageView ivBack;
- private TextView mTvScan;
- private TabLayout mTl;
- private ViewPager mVp;
- private ConstraintLayout mClMain;
- private ConstraintLayout mClSecond;
- private ImageView mIvBg;
- private LinearLayout mLlBack;
- private ImageView mIvDevice;
- private TextView mTvLeft;
- private TextView mTvRight;
- private TextView mtvTypeLeft;
- private TextView mtvTypeRight;
- private TextView mTvSubmit;
- private RecyclerView mRecyclerView;
- private TextView mTvConnect;
- private Dialog mDialog;
- private DeviceSAdapter mDeviceSAdapter;
- private ScaleAnimation scaleAnimation;
- private List<String> mTabTitle;
- private ArrayList<String> mMissPermissions = new ArrayList<>();
- private int currentDeviceType = 3;
- private String leftMaiId;
- private String rightMaiId;
- @Override
- protected int initLayoutResId() {
- return R.layout.activity_measure_main;
- }
- @Override
- protected void init() {
- connect_mode = CONNECT_MODE_BLE;
- initViews();
- setDeviceStatusListener();
- resetToMeasure();
- getToken();
- if (BleController.getInstance().isConnected()) {
- mClMain.setVisibility(View.GONE);
- mClSecond.setVisibility(View.VISIBLE);
- mIvBg.setVisibility(View.GONE);
- mIvDevice.setImageResource(R.drawable.device_7);
- currentDeviceType = 7;
- BleController.getInstance().setConnectedDeviceType(7);
- }
- }
- private void initViews() {
- ivBack = findViewById(R.id.iv_back);
- mIvDevice = findViewById(R.id.iv_device);
- mTvScan = findViewById(R.id.tv_scan);
- mClMain = findViewById(R.id.cl_main);
- mClSecond = findViewById(R.id.cl_second);
- mIvBg = findViewById(R.id.iv_bg);
- mTvSubmit = findViewById(R.id.tv_submit);
- mLlBack = findViewById(R.id.ll_back);
- mTvLeft = findViewById(R.id.tv_left);
- mtvTypeLeft = findViewById(R.id.tv_type_left);
- mTvRight = findViewById(R.id.tv_right);
- mtvTypeRight = findViewById(R.id.tv_type_right);
- mTvSubmit.setOnClickListener(v -> {
- submit();
- });
- mTvScan.setOnClickListener(v -> {
- doConnect();
- });
- mLlBack.setOnClickListener(v -> {
- clearDeviceSAdapter();
- TaiyiManager.getInstance().clearMeasure();
- TaiyiManager.getInstance().onSkip();
- finish();
- });
- ivBack.setColorFilter(Color.WHITE);
- ivBack.setOnClickListener(v -> {
- TaiyiManager.getInstance().clearMeasure();
- TaiyiManager.getInstance().onSkip();
- finish();
- });
- }
- private void getToken() {
- HttpUtil.getInstance().getRequestQueue(this).check(new HttpImpl<String>() {
- @Override
- public void showError(String error) {
- DialogTipUtil.showSelectDialog(MeasureMainActivity.this, getString(R.string.dialog_tip_tip), getString(R.string.measure_skip_tip_1),
- R.string.measure_skip, R.string.dialog_tip_retry, new DialogTipUtil.OptionClickCallback_I() {
- @Override
- public void leftClick() {
- TaiyiManager.getInstance().clearMeasure();
- TaiyiManager.getInstance().onSkip();
- finish();
- }
- @Override
- public void rightClick() {
- getToken();
- }
- });
- }
- @Override
- public void showResponse(String response) {
- HttpUtil.AuthorizationValue = response;
- switch (retryType) {
- case RETRY_LEFT:
- getLeftUUID();
- break;
- case RETRY_RIGHT:
- getRightUUID();
- break;
- case RETRY_SAVE:
- saveMai();
- break;
- default:
- BleController controller = BleController.getInstance();
- controller.cancelDelayDisconnect();
- if (controller.isConnected()) {
- BleDevice device = controller.getBleDevice();
- connectDevice(device);
- } else {
- controller.init(getApplication());
- doConnect();
- }
- }
- }
- });
- }
- private void initDeviceDialog() {
- mDialog = new Dialog(this, R.style.simpleDialogStyle);
- View view = LayoutInflater.from(this).inflate(R.layout.layout_device_choose, null);
- ImageView iv_cancel = view.findViewById(R.id.iv_cancel);
- iv_cancel.setColorFilter(ContextCompat.getColor(this, R.color.gray));
- iv_cancel.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if (connect_mode == CONNECT_MODE_BLE) {
- BleController.getInstance().cancelScan();
- }
- clearDeviceSAdapter();
- mDialog.dismiss();
- }
- });
- mRecyclerView = view.findViewById(R.id.recycler);
- mTvConnect = view.findViewById(R.id.tv_connect);
- mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
- mDialog.setContentView(view);
- mDialog.setCancelable(false);
- }
- private void setDeviceStatusListener() {
- BleController.getInstance().setIBLEInterface(new IDeviceInterface() {
- @Override
- public void onStatus(int status, int battery) {
- if (BleController.getInstance().getYjversion() == 0) {
- BleController.getInstance().getVersion();
- }
- // EventBus.getDefault().post(new BatteryEvent(battery));
- }
- @Override
- public void onVersion(int hardware, int firmware, int data, int channel) {
- LogUtil.w("MainActivity", "硬件版本:" + hardware + ",固件版本:" + firmware + ",数据版本:" + data);
- BleController.getInstance().getStatus();
- if (hardware > 7000) {
- mIvDevice.setImageResource(R.drawable.device_7);
- currentDeviceType = 7;
- BleController.getInstance().setConnectedDeviceType(7);
- } else {
- Toast.makeText(MeasureMainActivity.this, "设备硬件版本(" + hardware + ")过低不支持", Toast.LENGTH_SHORT).show();
- return;
- }
- mIvDevice.setVisibility(View.VISIBLE);
- }
- @Override
- public void onLowPowerNotify(int battery) {
- // String msg = String.format(getString(R.string.device_low_power), battery);
- String msg = getString(R.string.device_low_power_1);
- if (AppManager.getAppManager().currentActivity() instanceof Measure3Activity) {
- LogUtil.w("MainActivity", "Measure3Activity need not tip");
- } else {
- DialogTipUtil.showIKnow(AppManager.getAppManager().currentActivity(), msg);
- LogUtil.w("MainActivity", "tip power:" + msg);
- }
- }
- @Override
- public void onInitSensorFailed() {
- if (AppManager.getAppManager().currentActivity() instanceof MeasureMainActivity) {
- DialogTipUtil.showIKnow(MeasureMainActivity.this, getString(R.string.device_fault));
- } else {
- EventBus.getDefault().post(new BleEvent(BleEvent.TYPE_SENSOR_ERROR));
- }
- }
- });
- }
- private void doConnect() {
- if (connect_mode == CONNECT_MODE_BLE) {
- initDeviceDialog();
- setScanRule();
- }
- }
- private void setScanRule() {
- BleScanRuleConfig scanRuleConfig = new BleScanRuleConfig.Builder().setServiceUuids(
- new UUID[]{UUID.fromString(BleController.DEV_SERVICE_UUID)}) // 只扫描指定的服务的设备,可选
- .setDeviceName(true, "TY") // 只扫描指定广播名的设备,可选
- .setScanTimeOut(Integer.MAX_VALUE) // 扫描超时时间,可选,默认10秒
- .build();
- BleManager.getInstance().initScanRule(scanRuleConfig);
- checkAndRequestPermissions();
- }
- private void checkAndRequestPermissions() {
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
- //小于23版本直接使用
- scan();
- } else if (Build.VERSION.SDK_INT < 31) {
- if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
- scan();
- } else {
- mMissPermissions.add(Manifest.permission.ACCESS_FINE_LOCATION);
- popupPermissionTip(mMissPermissions, R.string.permission_ble, REQUEST_PERMISSION_CODE);
- }
- } else {
- if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED &&
- ActivityCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_SCAN) == PackageManager.PERMISSION_GRANTED) {
- scan();
- } else {
- if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
- mMissPermissions.add(Manifest.permission.ACCESS_FINE_LOCATION);
- }
- if (ActivityCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_SCAN) != PackageManager.PERMISSION_GRANTED) {
- mMissPermissions.add(Manifest.permission.BLUETOOTH_SCAN);
- mMissPermissions.add(Manifest.permission.BLUETOOTH_CONNECT);
- mMissPermissions.add(Manifest.permission.BLUETOOTH_ADVERTISE);
- }
- LogUtil.w(TAG, "mMissPermissions:" + mMissPermissions);
- popupPermissionTip(mMissPermissions, R.string.permission_ble_1, REQUEST_PERMISSION_CODE);
- }
- }
- }
- @Override
- public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
- if (grantResults.length != 0 && requestCode == REQUEST_PERMISSION_CODE) {
- for (int i = grantResults.length - 1; i >= 0; i--) {
- if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {
- mMissPermissions.remove(permissions[i]);
- }
- }
- if (!mMissPermissions.isEmpty()) {
- if (mMissPermissions.contains(Manifest.permission.ACCESS_FINE_LOCATION)) {
- Toast.makeText(MeasureMainActivity.this, getString(R.string.ble_permission_disabled), Toast.LENGTH_SHORT).show();
- } else if (mMissPermissions.contains(Manifest.permission.BLUETOOTH_SCAN)) {
- Toast.makeText(MeasureMainActivity.this, getString(R.string.permission_ble_1), Toast.LENGTH_SHORT).show();
- }
- checkAndRequestPermissions();
- } else {
- scan();
- }
- }
- }
- private void scan() {
- if (mDeviceSAdapter == null) {
- mDeviceSAdapter = new DeviceSAdapter();
- }
- if (BleManager.getInstance().isBlueEnable()) {
- BleManager.getInstance().scan(new BleScanCallback() {
- @Override
- public void onScanStarted(boolean success) {
- clearDeviceSAdapter();
- }
- @Override
- public void onLeScan(BleDevice bleDevice) {
- super.onLeScan(bleDevice);
- }
- @Override
- public void onScanning(BleDevice bleDevice) {
- BleDeviceD s = new BleDeviceD();
- s.mDevice = bleDevice;
- mDeviceSAdapter.addData(s);
- }
- @Override
- public void onScanFinished(List<BleDevice> scanResultList) {
- }
- });
- setDialogData(mDeviceSAdapter, new DialogTipsUtil.DeviceSelectCallback() {
- @Override
- public void onSuccess(BleDevice bleDevice) {
- BleManager.getInstance().cancelScan();
- connectDevice(bleDevice);
- }
- });
- } else {
- enableBLE();
- }
- }
- /**
- * 开启蓝牙
- */
- private void enableBLE() {
- Intent enableBtIntent = new Intent(ACTION_REQUEST_ENABLE);
- if (ActivityCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) {
- // TODO: Consider calling
- // ActivityCompat#requestPermissions
- // here to request the missing permissions, and then overriding
- // public void onRequestPermissionsResult(int requestCode, String[] permissions,
- // int[] grantResults)
- // to handle the case where the user grants the permission. See the documentation
- // for ActivityCompat#requestPermissions for more details.
- return;
- }
- startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
- }
- @Override
- protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- if (requestCode == REQUEST_ENABLE_BT) {
- if (resultCode == AppCompatActivity.RESULT_OK) {
- scan();
- } else {
- Toast.makeText(MeasureMainActivity.this, R.string.ble_unable, Toast.LENGTH_SHORT).show();
- }
- } else if (requestCode == REQUEST_MEASURE_LEFT) {
- if (resultCode == AppCompatActivity.RESULT_OK) {
- if (connect_mode == CONNECT_MODE_USB) {
- leftMaiId = USBDataTemp.getInstance().measure_id;
- } else if (connect_mode == CONNECT_MODE_BLE) {
- leftMaiId = BleController.getInstance().getUuid();
- }
- mtvTypeLeft.setText(R.string.measure_succeed_tip);
- mtvTypeLeft.setBackground(ContextCompat.getDrawable(this, R.drawable.bg_green_border_3dp));
- } else if (resultCode == RESULT_MEASURE_FAIL) {
- mtvTypeLeft.setText(R.string.measure_failed_tip);
- mtvTypeLeft.setBackground(ContextCompat.getDrawable(this, R.drawable.bg_red_border_3dp));
- }
- updateMeasureStatus();
- } else if (requestCode == REQUEST_MEASURE_RIGHT) {
- if (resultCode == AppCompatActivity.RESULT_OK) {
- if (connect_mode == CONNECT_MODE_USB) {
- rightMaiId = USBDataTemp.getInstance().measure_id;
- } else if (connect_mode == CONNECT_MODE_BLE) {
- rightMaiId = BleController.getInstance().getUuid();
- }
- mtvTypeRight.setText(R.string.measure_succeed_tip);
- mtvTypeRight.setBackground(ContextCompat.getDrawable(this, R.drawable.bg_green_border_3dp));
- } else if (resultCode == RESULT_MEASURE_FAIL) {
- mtvTypeRight.setText(R.string.measure_failed_tip);
- mtvTypeRight.setBackground(ContextCompat.getDrawable(this, R.drawable.bg_red_border_3dp));
- }
- updateMeasureStatus();
- }
- }
- @SuppressLint("MissingPermission")
- private void connectDevice(BleDevice bleDevice) {
- BleManager.getInstance().connect(bleDevice, new BleGattCallback() {
- @Override
- public void onStartConnect() {
- ProgressDialogUtil.show(MeasureMainActivity.this, getString(R.string.ble_connecting));
- BleController.getInstance().cancelScan();
- }
- @Override
- public void onConnectFail(BleDevice bleDevice, BleException exception) {
- ProgressDialogUtil.close();
- ToastUtil.show(MeasureMainActivity.this, R.string.ble_connect_failed);
- BleController.getInstance().setConnected(false);
- clearDeviceSAdapter();
- scan();
- }
- @Override
- public void onConnectSuccess(BleDevice bleDevice, BluetoothGatt gatt, int status) {
- ProgressDialogUtil.close();
- mClMain.setVisibility(View.GONE);
- mClSecond.setVisibility(View.VISIBLE);
- mIvBg.setVisibility(View.GONE);
- BleController.getInstance().setBleDevice(bleDevice);
- BleController.getInstance().setConnected(true);
- getDeviceState();
- }
- @Override
- public void onDisConnected(boolean isActiveDisConnected, BleDevice bleDevice, BluetoothGatt gatt, int status) {
- BleController.getInstance().recycle();
- ProgressDialogUtil.close();
- BleController.getInstance().setConnectedDeviceType(-1);
- BleController.getInstance().setConnected(false);
- clearDeviceSAdapter();
- resetUI();
- if (AppManager.getAppManager().currentActivity() != null &&
- AppManager.getAppManager().currentActivity() instanceof MeasureMainActivity && !isFinishing()) {
- DialogTipUtil.showIKnow(MeasureMainActivity.this, getString(R.string.device_disconnect), msg -> doConnect());
- } else {
- EventBus.getDefault().post(new BleEvent(BleEvent.TYPE_DISCONNECT));
- }
- }
- });
- }
- private void getDeviceState() {
- new Handler().postDelayed(new Runnable() {
- @Override
- public void run() {
- BleController.getInstance().getStatus();
- }
- }, 400);
- }
- private void setDialogData(final DeviceSAdapter adapter, final DialogTipsUtil.DeviceSelectCallback callbackI) {
- if (adapter == null) {
- return;
- }
- adapter.setRecycler(mRecyclerView);
- adapter.setPosition(0);
- adapter.setOnConnectClickListener(() -> {
- if (mTvConnect != null) mTvConnect.performClick();
- });
- mTvConnect.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- int posClick = adapter.getPosition();
- if (posClick == -1) {
- Toast.makeText(MeasureMainActivity.this, getString(R.string.device_select_one), Toast.LENGTH_SHORT).show();
- return;
- }
- if (adapter.getData().isEmpty()) {
- Toast.makeText(MeasureMainActivity.this, getString(R.string.device_scan_null), Toast.LENGTH_SHORT).show();
- return;
- }
- callbackI.onSuccess(adapter.getData().get(posClick).mDevice);
- mDialog.dismiss();
- }
- });
- mRecyclerView.setAdapter(adapter);
- if (!isFinishing() && !isDestroyed()) mDialog.show();
- }
- private void clearDeviceSAdapter() {
- if (mDeviceSAdapter != null && mDeviceSAdapter.getData() != null) {
- mDeviceSAdapter.getData().clear();
- mDeviceSAdapter.setPosition(-1);
- mDeviceSAdapter.notifyDataSetChanged();
- }
- }
- private void resetUI() {
- if (mIvDevice != null) {
- mIvDevice.setImageResource(0);
- }
- USBDataTemp.getInstance().clear();
- if (mClMain != null) {
- mClMain.setVisibility(View.VISIBLE);
- }
- if (mClSecond != null) {
- mClSecond.setVisibility(View.GONE);
- }
- if (mIvBg != null) {
- mIvBg.setVisibility(View.VISIBLE);
- }
- resetToMeasure();
- }
- private void resetToMeasure() {
- leftMaiId = null;
- rightMaiId = null;
- mtvTypeLeft.setText("");
- mtvTypeLeft.setBackground(null);
- mtvTypeRight.setText("");
- mtvTypeRight.setBackground(null);
- updateMeasureStatus();
- }
- @SuppressLint("CheckResult")
- private void updateMeasureStatus() {
- if (!TextUtils.isEmpty(leftMaiId) && !TextUtils.isEmpty(rightMaiId)) {
- mTvLeft.setEnabled(false);
- mTvRight.setEnabled(false);
- leftDark();
- rightDark();
- mTvSubmit.setEnabled(true);
- } else if (!TextUtils.isEmpty(leftMaiId)) {
- mTvLeft.setEnabled(true);
- mTvRight.setEnabled(true);
- leftDark();
- rightLight();
- RxView.clicks(mTvLeft).throttleFirst(1, TimeUnit.SECONDS).subscribe(new Consumer<Object>() {
- @Override
- public void accept(Object o) throws Exception {
- Toast.makeText(MeasureMainActivity.this, getString(com.taiyi.tyusbsdk.R.string.measure_right_tip_1), Toast.LENGTH_SHORT).show();
- }
- });
- RxView.clicks(mTvRight).throttleFirst(1, TimeUnit.SECONDS).subscribe(new Consumer<Object>() {
- @Override
- public void accept(Object o) throws Exception {
- getRightUUID();
- }
- });
- mTvSubmit.setEnabled(true);
- } else if (!TextUtils.isEmpty(rightMaiId)) {
- LogUtil.w("MainActivityB updateMeasureStatus DOUBLE", "left null");
- mTvLeft.setEnabled(true);
- mTvRight.setEnabled(true);
- leftLight();
- rightDark();
- RxView.clicks(mTvLeft).throttleFirst(1, TimeUnit.SECONDS).subscribe(new Consumer<Object>() {
- @Override
- public void accept(Object o) throws Exception {
- getLeftUUID();
- }
- });
- RxView.clicks(mTvRight).throttleFirst(1, TimeUnit.SECONDS).subscribe(new Consumer<Object>() {
- @Override
- public void accept(Object o) throws Exception {
- Toast.makeText(MeasureMainActivity.this, getString(com.taiyi.tyusbsdk.R.string.measure_left_tip_1), Toast.LENGTH_SHORT).show();
- }
- });
- mTvSubmit.setEnabled(true);
- } else {
- LogUtil.w("MainActivityB updateMeasureStatus DOUBLE", "left null");
- mTvLeft.setEnabled(true);
- mTvRight.setEnabled(true);
- leftLight();
- rightLight();
- RxView.clicks(mTvLeft).throttleFirst(1, TimeUnit.SECONDS).subscribe(new Consumer<Object>() {
- @Override
- public void accept(Object o) throws Exception {
- getLeftUUID();
- }
- });
- RxView.clicks(mTvRight).throttleFirst(1, TimeUnit.SECONDS).subscribe(new Consumer<Object>() {
- @Override
- public void accept(Object o) throws Exception {
- getRightUUID();
- }
- });
- mTvSubmit.setEnabled(false);
- }
- }
- private void leftLight() {
- mTvLeft.setTextColor(ContextCompat.getColor(this, com.taiyi.tyusbsdk.R.color.white));
- mTvLeft.setBackground(ContextCompat.getDrawable(this, com.taiyi.tyusbsdk.R.drawable.bg_fab_orange_normal));
- }
- private void leftDark() {
- mTvLeft.setTextColor(ContextCompat.getColor(this, com.taiyi.tyusbsdk.R.color.violet));
- mTvLeft.setBackground(ContextCompat.getDrawable(this, com.taiyi.tyusbsdk.R.drawable.bg_fab_orange_border));
- }
- private void rightLight() {
- mTvRight.setTextColor(ContextCompat.getColor(this, com.taiyi.tyusbsdk.R.color.white));
- mTvRight.setBackground(ContextCompat.getDrawable(this, com.taiyi.tyusbsdk.R.drawable.bg_fab_orange_normal));
- }
- private void rightDark() {
- mTvRight.setTextColor(ContextCompat.getColor(this, com.taiyi.tyusbsdk.R.color.violet));
- mTvRight.setBackground(ContextCompat.getDrawable(this, com.taiyi.tyusbsdk.R.drawable.bg_fab_orange_border));
- }
- private void getLeftUUID() {
- HttpUtil.getInstance().getUUID(new TokenOverDueHttpImpl<String>() {
- @Override
- public void overdue() {
- retryType = RETRY_LEFT;
- getToken();
- }
- @Override
- public void showError(String error) {
- retryType = RETRY_LEFT;
- DialogTipUtil.showSelectDialog(MeasureMainActivity.this, getString(com.taiyi.tyusbsdk.R.string.dialog_tip_tip),
- getString(com.taiyi.tyusbsdk.R.string.measure_skip_tip_1), com.taiyi.tyusbsdk.R.string.measure_skip,
- com.taiyi.tyusbsdk.R.string.dialog_tip_retry, new DialogTipUtil.OptionClickCallback_I() {
- @Override
- public void leftClick() {
- TaiyiManager.getInstance().clearMeasure();
- TaiyiManager.getInstance().onSkip();
- finish();
- }
- @Override
- public void rightClick() {
- getLeftUUID();
- }
- });
- }
- @Override
- public void showResponse(String response) {
- retryType = 0;
- BleController.getInstance().setUuid(response);
- BleController.getInstance().setHand(BleController.HAND_LEFT);
- Intent intent = new Intent(MeasureMainActivity.this, BleMeasureFlowActivity.class);
- intent.putExtra("measureId", response);
- intent.putExtra("hand", 0);
- startActivityForResult(intent, REQUEST_MEASURE_LEFT);
- }
- });
- }
- private void getRightUUID() {
- HttpUtil.getInstance().getUUID(new TokenOverDueHttpImpl<String>() {
- @Override
- public void showResponse(String response) {
- retryType = 0;
- BleController.getInstance().setUuid(response);
- BleController.getInstance().setHand(BleController.HAND_RIGHT);
- Intent intent = new Intent(MeasureMainActivity.this, BleMeasureFlowActivity.class);
- intent.putExtra("measureId", response);
- intent.putExtra("hand", 1);
- startActivityForResult(intent, REQUEST_MEASURE_RIGHT);
- }
- @Override
- public void overdue() {
- retryType = RETRY_RIGHT;
- getToken();
- }
- @Override
- public void showError(String error) {
- retryType = RETRY_RIGHT;
- DialogTipUtil.showSelectDialog(MeasureMainActivity.this, getString(com.taiyi.tyusbsdk.R.string.dialog_tip_tip),
- getString(com.taiyi.tyusbsdk.R.string.measure_skip_tip_1), com.taiyi.tyusbsdk.R.string.measure_skip,
- com.taiyi.tyusbsdk.R.string.dialog_tip_retry, new DialogTipUtil.OptionClickCallback_I() {
- @Override
- public void leftClick() {
- TaiyiManager.getInstance().clearMeasure();
- TaiyiManager.getInstance().onSkip();
- finish();
- }
- @Override
- public void rightClick() {
- getRightUUID();
- }
- });
- }
- });
- }
- private void submit() {
- if (leftMaiId == null || rightMaiId == null) {
- DialogTipUtil.showSingleHandDialog(this, new DialogTipUtil.OptionClickCallback_I() {
- @Override
- public void leftClick() {
- saveMai();
- }
- @Override
- public void rightClick() {
- }
- });
- } else {
- saveMai();
- }
- }
- private void saveMai() {
- HttpUtil.getInstance().saveCombined(leftMaiId, rightMaiId, new TokenOverDueHttpImpl<String>() {
- @Override
- public void overdue() {
- retryType = RETRY_SAVE;
- getToken();
- }
- @Override
- public void showError(String error) {
- retryType = RETRY_SAVE;
- DialogTipUtil.showSelectDialog(MeasureMainActivity.this, getString(com.taiyi.tyusbsdk.R.string.dialog_tip_tip),
- getString(com.taiyi.tyusbsdk.R.string.measure_skip_tip_1), com.taiyi.tyusbsdk.R.string.measure_skip,
- com.taiyi.tyusbsdk.R.string.dialog_tip_retry, new DialogTipUtil.OptionClickCallback_I() {
- @Override
- public void leftClick() {
- TaiyiManager.getInstance().clearMeasure();
- TaiyiManager.getInstance().onSkip();
- finish();
- }
- @Override
- public void rightClick() {
- saveMai();
- }
- });
- }
- @Override
- public void showResponse(String measureId) {
- retryType = 0;
- getCombinedReportDesc(measureId);
- }
- });
- }
- public void getCombinedReportDesc(String combiledId) {
- HttpUtil.getInstance().getGetCombined(combiledId, new TokenOverDueHttpImpl<String>() {
- @Override
- public void overdue() {
- }
- @Override
- public void showError(String error) {
- DialogTipUtil.showSelectDialog(MeasureMainActivity.this, getString(com.taiyi.tyusbsdk.R.string.dialog_tip_tip),
- getString(com.taiyi.tyusbsdk.R.string.measure_skip_tip_1), com.taiyi.tyusbsdk.R.string.measure_skip,
- com.taiyi.tyusbsdk.R.string.dialog_tip_retry, new DialogTipUtil.OptionClickCallback_I() {
- @Override
- public void leftClick() {
- TaiyiManager.getInstance().clearMeasure();
- TaiyiManager.getInstance().onSkip();
- finish();
- }
- @Override
- public void rightClick() {
- getCombinedReportDesc(combiledId);
- }
- });
- }
- @Override
- public void showResponse(String response) {
- TaiyiManager instance = TaiyiManager.getInstance();
- instance.setPulseReport(response);
- String pulseUrl = instance.getUrl(combiledId);
- String handStyle = "";
- if (leftMaiId != null && rightMaiId != null) {
- handStyle = "DOUBLE";
- } else if (leftMaiId != null) {
- handStyle = "LEFT";
- } else if (rightMaiId != null) {
- handStyle = "RIGHT";
- }
- String pr = PulseResult.create(combiledId, pulseUrl, handStyle, QTimeUtil.toDatetimeStr(), "").toString();
- TaiyiManager.getInstance().setPulseResult(pr);
- resetToMeasure();
- if (TaiyiManager.getConfig().skipReport) {
- instance.onResult(pr, combiledId, response);
- finish();
- } else {
- Intent intent = new Intent(MeasureMainActivity.this, SuccessActivity.class);
- intent.putExtra("measureId", combiledId);
- intent.putExtra("pulseUrl", pulseUrl);
- startActivity(intent);
- }
- }
- });
- }
- @Override
- public void onBackPressed() {
- TaiyiManager.getInstance().onSkip();
- super.onBackPressed();
- }
- protected void onDestroy() {
- // SubscriptionManager.getInstance().cancelall();
- if (mDialog != null) {
- mDialog.dismiss();
- }
- super.onDestroy();
- if (BleController.getInstance().isConnected()) {
- BleController.getInstance().delayDisconnect();
- }
- if (EventBus.getDefault().isRegistered(this)) {
- EventBus.getDefault().unregister(this);
- }
- }
- @Override
- public void onResult(String pr, String measureId, String reportData) {
- }
- }
|