Files
CubeAoleyunSN/app/src/main/java/com/aoleyun/sn/activity/CheckNetActivity.java
Godfather edf23945b5 version:2.1
fix:完善推送
update:
2022-01-25 16:12:36 +08:00

538 lines
15 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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) {
}
}
}
}