538 lines
15 KiB
Java
538 lines
15 KiB
Java
package com.aoleyun.sn.activity;
|
||
|
||
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||
|
||
import android.app.AlertDialog;
|
||
import android.content.BroadcastReceiver;
|
||
import android.content.Context;
|
||
import android.content.DialogInterface;
|
||
import android.content.Intent;
|
||
import android.content.IntentFilter;
|
||
import android.graphics.Bitmap;
|
||
import android.os.Handler;
|
||
import android.os.Message;
|
||
import android.os.SystemClock;
|
||
import android.util.Log;
|
||
import android.view.KeyEvent;
|
||
import android.view.View;
|
||
import android.widget.Button;
|
||
import android.widget.TextView;
|
||
|
||
import com.aoleyun.sn.R;
|
||
import com.aoleyun.sn.activity.main.MainContact;
|
||
import com.aoleyun.sn.activity.main.MainPresenter;
|
||
import com.aoleyun.sn.base.BaseActivity;
|
||
import com.aoleyun.sn.service.MainService;
|
||
import com.aoleyun.sn.utils.ApkUtils;
|
||
import com.aoleyun.sn.utils.ExampleUtil;
|
||
import com.aoleyun.sn.utils.JGYUtils;
|
||
import com.aoleyun.sn.utils.SaveListUtils;
|
||
import com.aoleyun.sn.utils.SysSettingUtils;
|
||
import com.aoleyun.sn.utils.ToastUtil;
|
||
import com.aoleyun.sn.utils.Utils;
|
||
import com.blankj.utilcode.util.NetworkUtils;
|
||
import com.google.gson.JsonObject;
|
||
|
||
import butterknife.BindView;
|
||
import butterknife.ButterKnife;
|
||
import pl.droidsonroids.gif.GifImageView;
|
||
|
||
public class CheckNetActivity extends BaseActivity implements MainContact.MainView, NetworkUtils.OnNetworkStatusChangedListener {
|
||
@BindView(R.id.giv_1)
|
||
GifImageView giv_1;
|
||
@BindView(R.id.giv_2)
|
||
GifImageView giv_2;
|
||
@BindView(R.id.giv_3)
|
||
GifImageView giv_3;
|
||
@BindView(R.id.tv_1)
|
||
TextView tv_1;
|
||
@BindView(R.id.tv_2)
|
||
TextView tv_2;
|
||
@BindView(R.id.tv_3)
|
||
TextView tv_3;
|
||
@BindView(R.id.bt_confirm)
|
||
Button bt_confirm;
|
||
|
||
private static final String TAG = CheckNetActivity.class.getSimpleName();
|
||
private MainPresenter mPresenter;
|
||
|
||
private boolean netWorkIsRunning = false;
|
||
private boolean updateApp = false;
|
||
|
||
//for receive customer msg from jpush server
|
||
private MessageReceiver mMessageReceiver;
|
||
public static final String MESSAGE_RECEIVED_ACTION = "com.aoleyun.sn.MESSAGE_RECEIVED_ACTION";
|
||
public static final String KEY_TITLE = "title";
|
||
public static final String KEY_MESSAGE = "message";
|
||
public static final String KEY_EXTRAS = "extras";
|
||
|
||
private static Handler mHandler;
|
||
|
||
@Override
|
||
public void onDisconnected() {
|
||
Log.e("OnNetworkStatusChanged", "onDisconnected: ");
|
||
}
|
||
|
||
@Override
|
||
public void onConnected(NetworkUtils.NetworkType networkType) {
|
||
Log.e("OnNetworkStatusChanged", "onConnected: ");
|
||
timeMillis = SystemClock.elapsedRealtime();
|
||
//直接获取数据
|
||
mPresenter.getLockedState();
|
||
}
|
||
|
||
@Override
|
||
public int getLayoutId() {
|
||
return R.layout.activity_checknet;
|
||
}
|
||
|
||
boolean isAvailable = false;
|
||
int runTimes = 0;
|
||
|
||
@Override
|
||
public void initView() {
|
||
ButterKnife.bind(this);
|
||
mPresenter = new MainPresenter(this);
|
||
mPresenter.attachView(this);
|
||
mPresenter.setProvider(this);
|
||
JGYUtils.startServices(CheckNetActivity.this);
|
||
Log.e(TAG, "initView: " + "start request");
|
||
NetworkUtils.registerNetworkStatusChangedListener(this);
|
||
mHandler = new Handler() {
|
||
@Override
|
||
public void handleMessage(Message msg) {
|
||
super.handleMessage(msg);
|
||
Resut resut = (Resut) msg.obj;
|
||
if (isAvailable == true || runTimes == 10) {
|
||
if (resut.isAvailable) {
|
||
giv_1.setImageResource(R.drawable.succeed);
|
||
} else {
|
||
giv_1.setImageResource(R.drawable.failed);
|
||
}
|
||
mPresenter.getLockedState();
|
||
}
|
||
}
|
||
};
|
||
checkNetworkIsAvailable();
|
||
bt_confirm.setOnClickListener(new View.OnClickListener() {
|
||
@Override
|
||
public void onClick(View view) {
|
||
MainService.mPresenter.getLockedState();
|
||
finish();
|
||
}
|
||
});
|
||
}
|
||
|
||
private static class Resut {
|
||
int Times;
|
||
boolean isAvailable;
|
||
}
|
||
|
||
private void checkNetworkIsAvailable() {
|
||
new Thread(new Runnable() {
|
||
@Override
|
||
public void run() {
|
||
while (!isAvailable && runTimes < 10) {
|
||
runTimes++;
|
||
Log.e("initView", "run: " + "第" + runTimes + "次检测网络");
|
||
if (NetworkUtils.isAvailable()) {
|
||
isAvailable = true;
|
||
Resut resut = new Resut();
|
||
resut.Times = runTimes;
|
||
resut.isAvailable = true;
|
||
Message message = new Message();
|
||
message.obj = resut;
|
||
mHandler.sendMessage(message);
|
||
} else {
|
||
Resut resut = new Resut();
|
||
resut.Times = runTimes;
|
||
resut.isAvailable = false;
|
||
Message message = new Message();
|
||
message.obj = resut;
|
||
mHandler.sendMessage(message);
|
||
}
|
||
try {
|
||
synchronized (this) {
|
||
wait(1200);
|
||
}
|
||
} catch (InterruptedException e) {
|
||
e.printStackTrace();
|
||
}
|
||
}
|
||
}
|
||
}).start();
|
||
}
|
||
|
||
//执行所有接口耗时
|
||
long timeMillis;
|
||
|
||
@Override
|
||
public void initData() {
|
||
// JPushInterface.init(this);
|
||
registerMessageReceiver();
|
||
Log.e("getMacAddress", Utils.getAndroid10MAC(this));
|
||
timeMillis = SystemClock.elapsedRealtime();
|
||
startService(new Intent(CheckNetActivity.this, MainService.class));
|
||
// mPresenter.getStudesInfo();
|
||
}
|
||
|
||
@Override
|
||
public void setQRImage(Bitmap qrImage) {
|
||
|
||
}
|
||
|
||
@Override
|
||
public void setBatchText(String text, int visibility) {
|
||
}
|
||
|
||
@Override
|
||
public void setClassText(String text, int visibility) {
|
||
}
|
||
|
||
@Override
|
||
public void setNumberText(String text, int visibility) {
|
||
}
|
||
|
||
@Override
|
||
public void setNameText(String text, int visibility) {
|
||
}
|
||
|
||
@Override
|
||
public void setHead(String url) {
|
||
|
||
}
|
||
|
||
/**
|
||
* @param loocked 后台1是锁定,底层0是锁定
|
||
*/
|
||
@Override
|
||
public void setLockedState(boolean loocked) {
|
||
//发送设备mac地址和信息
|
||
mPresenter.sendMACAddress();
|
||
//设置极光推送别名
|
||
mPresenter.setJpushAlias();
|
||
if (loocked) {
|
||
//上传APP信息
|
||
ApkUtils.getAppInfo(this);
|
||
if (netWorkIsRunning || MainService.netWorkIsRunning) {
|
||
//如果正在执行,不执行
|
||
return;
|
||
}
|
||
SaveListUtils.getList();
|
||
//获取系统管控
|
||
mPresenter.setPushTags();
|
||
netWorkIsRunning = true;
|
||
} else {
|
||
netWorkIsRunning = false;
|
||
SysSettingUtils.setEnableSetting(this);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 首次使用默认关闭所有功能
|
||
*
|
||
* @param state
|
||
*/
|
||
@Override
|
||
public void setFirstConnect(boolean state) {
|
||
Log.e(TAG, "isFirstConnect: " + "end request");
|
||
if (state) {
|
||
mPresenter.setDisableSetting();
|
||
} else {
|
||
|
||
}
|
||
}
|
||
|
||
@Override
|
||
public void sendMACFinish() {
|
||
mPresenter.updateDeviceInfo();
|
||
}
|
||
|
||
@Override
|
||
public void updateDeviceInfoFinish() {
|
||
mPresenter.getSnTimeControl();
|
||
}
|
||
|
||
@Override
|
||
public void getSnTimeControlFinish() {
|
||
mPresenter.getEBagCode();
|
||
}
|
||
|
||
@Override
|
||
public void getEBagCodeFinish() {
|
||
|
||
}
|
||
|
||
@Override
|
||
public void setAliasFinish() {
|
||
mPresenter.checkStoreUpdate();
|
||
}
|
||
|
||
@Override
|
||
public void setJpushPlatformTagsFinish() {
|
||
|
||
}
|
||
|
||
@Override
|
||
public void checkStoreUpdateFinish() {
|
||
mPresenter.checkInfoUpdate();
|
||
}
|
||
|
||
@Override
|
||
public void checkInfoUpdateFinish() {
|
||
mPresenter.checkDesktopUpdate();
|
||
}
|
||
|
||
@Override
|
||
public void checkDesktopUpdateFinish() {
|
||
mPresenter.checkNotifyUpdate();
|
||
}
|
||
|
||
@Override
|
||
public void checkNotifyUpdateFinish() {
|
||
mPresenter.checkBrowserUpdate();
|
||
}
|
||
|
||
@Override
|
||
public void checkBrowserUpdateFinish() {
|
||
mPresenter.checkTestUpdate();
|
||
}
|
||
|
||
@Override
|
||
public void buttonCheckUpdateFinish(boolean update, JsonObject jsonObject) {
|
||
|
||
}
|
||
|
||
@Override
|
||
public void checkTestUpdateFinish() {
|
||
|
||
}
|
||
|
||
/**
|
||
* @param noTag 为空,没有,错误都返回true
|
||
* 设备可以没有批次,但是没有批次相当于没有数据了,就不执行下面的请求了
|
||
*/
|
||
@Override
|
||
public void setTagsFinish(boolean noTag) {
|
||
if (mPresenter.isRequestSucceeded()) {
|
||
giv_2.setImageResource(R.drawable.succeed);
|
||
giv_3.setImageResource(R.drawable.succeed);
|
||
} else {
|
||
giv_2.setImageResource(R.drawable.failed);
|
||
giv_3.setImageResource(R.drawable.failed);
|
||
}
|
||
if (noTag) {
|
||
Log.e(TAG, "setTagsFinished: " + "not set tag");
|
||
netWorkIsRunning = false;
|
||
Log.e(TAG, "SettingFinished: " + (SystemClock.elapsedRealtime() - timeMillis) + " ms");
|
||
} else {
|
||
mPresenter.getSystemSettingbegin();
|
||
}
|
||
}
|
||
|
||
private void showDialog(JsonObject jsonObject) {
|
||
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||
builder.setTitle("更新:");
|
||
builder.setMessage("检测到有新版本,是否更新?");
|
||
builder.setIcon(R.mipmap.ic_launcher);
|
||
builder.setCancelable(true);
|
||
//设置正面按钮
|
||
builder.setPositiveButton("更新", new DialogInterface.OnClickListener() {
|
||
@Override
|
||
public void onClick(DialogInterface dialog, int which) {
|
||
JGYUtils.getInstance().installAPK(jsonObject);
|
||
dialog.dismiss();
|
||
}
|
||
});
|
||
//设置反面按钮
|
||
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
|
||
@Override
|
||
public void onClick(DialogInterface dialog, int which) {
|
||
dialog.dismiss();
|
||
}
|
||
});
|
||
builder.show();
|
||
}
|
||
|
||
@Override
|
||
public void getSystemSettingbegin() {
|
||
mPresenter.getAppLimit();
|
||
}
|
||
|
||
@Override
|
||
public void getAppLimitFinish(String packageList) {
|
||
mPresenter.getDeviceBatch(packageList);
|
||
}
|
||
|
||
@Override
|
||
public void getDeviceBatchFinish() {
|
||
mPresenter.getForceDownload();
|
||
}
|
||
|
||
@Override
|
||
public void getForceDownloadFinish() {
|
||
mPresenter.getBrowserList();
|
||
}
|
||
|
||
@Override
|
||
public void getBrowserListFinish(String whitelist) {
|
||
mPresenter.getBrowserBookmarks(whitelist);
|
||
}
|
||
|
||
@Override
|
||
public void getBrowserBookmarksFinish() {
|
||
mPresenter.getBrowserWhiteList();
|
||
mPresenter.getDesktopIcon();
|
||
}
|
||
|
||
@Override
|
||
public void getDesktopIconFinish() {
|
||
mPresenter.getAppAutoStartUpdateAndNet();
|
||
}
|
||
|
||
@Override
|
||
public void getAppAutoStartUpdateAndNetFinish() {
|
||
mPresenter.getAppIDControl();
|
||
}
|
||
|
||
@Override
|
||
public void getAppIDControlFinish() {
|
||
mPresenter.setAppinsideWeb();
|
||
}
|
||
|
||
@Override
|
||
public void setAppinsideWebFinish() {
|
||
mPresenter.setSystemSetting();
|
||
}
|
||
|
||
@Override
|
||
public void setSystemSettingFinish() {
|
||
mPresenter.getDefaultApp();
|
||
}
|
||
|
||
@Override
|
||
public void setDefaultAppFinish() {
|
||
mPresenter.getROMApp();
|
||
}
|
||
|
||
@Override
|
||
public void getROMAppFinish() {
|
||
mPresenter.getDeveloper();
|
||
}
|
||
|
||
@Override
|
||
public void getDeveloperFinish() {
|
||
mPresenter.setLogoImg();
|
||
}
|
||
|
||
@Override
|
||
public void setLogoImgFinish() {
|
||
mPresenter.setTopApp();
|
||
}
|
||
|
||
@Override
|
||
public void setTopAppFinish() {
|
||
mPresenter.getDefaultDesktop();
|
||
}
|
||
|
||
@Override
|
||
public void getDefaultDesktopFinish() {
|
||
netWorkIsRunning = false;
|
||
if (mPresenter.isRequestSucceeded()) {
|
||
giv_2.setImageResource(R.drawable.succeed);
|
||
giv_3.setImageResource(R.drawable.succeed);
|
||
} else {
|
||
giv_2.setImageResource(R.drawable.failed);
|
||
giv_3.setImageResource(R.drawable.failed);
|
||
}
|
||
Log.e(TAG, "SettingFinished: " + (SystemClock.elapsedRealtime() - timeMillis) + " ms");
|
||
}
|
||
|
||
@Override
|
||
public void setPoweroffTime() {
|
||
|
||
}
|
||
|
||
@Override
|
||
public void setWiFiPasswd() {
|
||
|
||
}
|
||
|
||
@Override
|
||
public void setScreenLockStateFinish(boolean locked, String tips) {
|
||
|
||
}
|
||
|
||
@Override
|
||
protected void onStop() {
|
||
super.onStop();
|
||
}
|
||
|
||
@Override
|
||
protected void onPause() {
|
||
super.onPause();
|
||
}
|
||
|
||
@Override
|
||
protected void onResume() {
|
||
super.onResume();
|
||
}
|
||
|
||
@Override
|
||
protected void onDestroy() {
|
||
super.onDestroy();
|
||
mPresenter.detachView();
|
||
JGYUtils.startServices(CheckNetActivity.this);
|
||
NetworkUtils.unregisterNetworkStatusChangedListener(this);
|
||
MainService.mPresenter.getLockedState();
|
||
}
|
||
|
||
@Override
|
||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
|
||
lazyExit();
|
||
return true;
|
||
}
|
||
return super.onKeyDown(keyCode, event);
|
||
}
|
||
|
||
private long mPreClickTime;
|
||
|
||
private void lazyExit() {
|
||
if (System.currentTimeMillis() - mPreClickTime > 3000) {
|
||
ToastUtil.show("再按一次,退出");
|
||
mPreClickTime = System.currentTimeMillis();
|
||
} else {
|
||
finish();
|
||
}
|
||
}
|
||
|
||
//jiguang
|
||
public void registerMessageReceiver() {
|
||
mMessageReceiver = new CheckNetActivity.MessageReceiver();
|
||
IntentFilter filter = new IntentFilter();
|
||
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
|
||
filter.addAction(MESSAGE_RECEIVED_ACTION);
|
||
LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver, filter);
|
||
}
|
||
|
||
public static class MessageReceiver extends BroadcastReceiver {
|
||
@Override
|
||
public void onReceive(Context context, Intent intent) {
|
||
try {
|
||
if (MESSAGE_RECEIVED_ACTION.equals(intent.getAction())) {
|
||
String messge = intent.getStringExtra(KEY_MESSAGE);
|
||
String extras = intent.getStringExtra(KEY_EXTRAS);
|
||
StringBuilder showMsg = new StringBuilder();
|
||
showMsg.append(KEY_MESSAGE + " : " + messge + "\n");
|
||
if (!ExampleUtil.isEmpty(extras)) {
|
||
showMsg.append(KEY_EXTRAS + " : " + extras + "\n");
|
||
}
|
||
}
|
||
} catch (Exception e) {
|
||
|
||
}
|
||
}
|
||
}
|
||
}
|