导航菜单

页面标题

页面副标题

WeatherSense v1.8.9 - OperateActivity.java 源代码

正在查看: WeatherSense v1.8.9 应用的 OperateActivity.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.emax.weather.ui.activity;

import android.bluetooth.BluetoothAdapter;
import android.bluetooth.le.ScanResult;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import com.emax.weahter.R;
import com.emax.weather.base.MvpBaseActivity;
import com.emax.weather.bean.CmdConstant;
import com.emax.weather.bean.DeviceInfo;
import com.emax.weather.event.BleScanEvent;
import com.emax.weather.presenter.BleScanPersenterImp;
import com.emax.weather.receiver.ClosePageReceiver;
import com.emax.weather.util.AndroidScheduler;
import com.emax.weather.utils.CheckClickUtils;
import com.emax.weather.utils.RxUtil;
import com.ezon.health.utils_lib.ToastUtil;
import io.reactivex.Observable;
import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;

public class OperateActivity extends MvpBaseActivity<BleScanEvent.BleScanView, BleScanPersenterImp> implements BleScanEvent.BleScanView {

    @BindView(R.id.back_sub)
    ImageView backSub;

    @BindView(R.id.btn_next)
    Button btnNext;
    private Disposable disposable;
    private List<DeviceInfo> list;

    @BindView(R.id.title_sub)
    TextView titleSub;
    private String connectType = CmdConstant.W_0;
    private ClosePageReceiver closePageReceiver = new ClosePageReceiver() {
        @Override
        public void onClosePage() {
            OperateActivity.this.finish();
        }
    };

    @Override
    protected int getActivityRId() {
        return R.layout.activity_operate;
    }

    @Override
    public Context getViewContext() {
        return this;
    }

    @Override
    public void refreshScanFail() {
    }

    @Override
    public void refreshScanStart() {
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ButterKnife.bind(this);
        initView();
    }

    private void initView() {
        this.titleSub.setText(getString(R.string.start_ap_model));
        this.connectType = getIntent().getStringExtra("MODEL_TYPE");
        IntentFilter intentFilter = new IntentFilter(ClosePageReceiver.CLOSE_SELECT_DEVICE_PAGE_ACTION);
        if (Build.VERSION.SDK_INT >= 33) {
            registerReceiver(this.closePageReceiver, intentFilter, 2);
        } else {
            registerReceiver(this.closePageReceiver, intentFilter);
        }
        if (!BluetoothAdapter.getDefaultAdapter().isEnabled()) {
            ToastUtil.show(getApplicationContext().getString(R.string.Please_open_ble), this);
        }
        if (this.connectType.equals(CmdConstant.W_2)) {
            this.list = new ArrayList();
            ((BleScanPersenterImp) this.mPresenter).init();
            if (((BleScanPersenterImp) this.mPresenter).openBle().booleanValue()) {
                ((BleScanPersenterImp) this.mPresenter).scan();
            }
        }
    }

    @OnClick({R.id.btn_next})
    public void onViewClicked(View view) {
        Intent intent;
        if (!CheckClickUtils.isFastClick() && view.getId() == 2131230867) {
            if (this.connectType.equals(CmdConstant.W_0) || this.connectType.equals(CmdConstant.W_1)) {
                intent = new Intent(this, (Class<?>) NewApConnectActivity.class);
            } else {
                ((BleScanPersenterImp) this.mPresenter).stopScan();
                intent = new Intent(this, (Class<?>) BleScanActivity.class);
                intent.putParcelableArrayListExtra("results", (ArrayList) this.list);
            }
            intent.putExtra("MODEL_TYPE", this.connectType);
            startActivity(intent);
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(this.closePageReceiver);
        Disposable disposable = this.disposable;
        if (disposable != null && !disposable.isDisposed()) {
            this.disposable.dispose();
            this.disposable = null;
        }
        ((BleScanPersenterImp) this.mPresenter).stopScan();
        ((BleScanPersenterImp) this.mPresenter).release();
    }

    @Override
    public BleScanPersenterImp createPresenter() {
        return new BleScanPersenterImp(this);
    }

    @Override
    public void refreshScanResult(final List<ScanResult> results) {
        RxUtil.addWork(new RxUtil.RxActionListener<Object>() {
            @Override
            public void reponseAction(Object o) {
            }

            @Override
            public void reponseDataNull() {
            }

            @Override
            public void reponseError(Throwable e) {
            }

            @Override
            public Object doAction() {
                for (int i = 0; i < results.size(); i++) {
                    int i2 = 0;
                    while (true) {
                        if (i2 < OperateActivity.this.list.size()) {
                            if (((DeviceInfo) OperateActivity.this.list.get(i2)).getMac().equals(((ScanResult) results.get(i)).getDevice().getAddress())) {
                                break;
                            }
                            i2++;
                        } else {
                            OperateActivity.this.list.add(new DeviceInfo(((ScanResult) results.get(i)).getDevice().getName(), ((ScanResult) results.get(i)).getDevice().getAddress(), ((ScanResult) results.get(i)).getRssi()));
                            break;
                        }
                    }
                }
                return null;
            }
        });
    }

    public void lambda$refreshScanStop$0$OperateActivity(Long l) throws Exception {
        ((BleScanPersenterImp) this.mPresenter).scan();
    }

    @Override
    public void refreshScanStop() {
        this.disposable = Observable.timer(1000L, TimeUnit.MILLISECONDS).observeOn(AndroidScheduler.mainThread()).subscribe(new Consumer() {
            public final void accept(Object obj) {
                OperateActivity.this.lambda$refreshScanStop$0$OperateActivity((Long) obj);
            }
        }, new Consumer() {
            public final void accept(Object obj) {
                System.out.println(" throwable.getMessage() = " + ((Throwable) obj).getMessage());
            }
        });
    }
}