version:1.0

update:2021-10-21 10:14:40
fix:
add:增加开机检测弹窗,增加常驻通知
This commit is contained in:
2021-10-21 10:15:39 +08:00
parent a4c68f0b37
commit 768519e14e
17 changed files with 520 additions and 60 deletions

View File

@@ -12,6 +12,8 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.SystemClock;
import android.text.TextUtils;
import android.util.Log;
@@ -46,37 +48,63 @@ import io.reactivex.Observable;
import io.reactivex.ObservableEmitter;
import io.reactivex.ObservableOnSubscribe;
import io.reactivex.Observer;
import io.reactivex.Scheduler;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
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;
private static final String TAG = CheckNetActivity.class.getSimpleName();
private MainPresenter mPresenter;
private boolean netWorkIsRunning = false;
private boolean updateApp = false;
//jiguang
public static boolean isForeground = false;
//for receive customer msg from jpush server
private CheckNetActivity.MessageReceiver mMessageReceiver;
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";
// @Override
// protected void onCreate(Bundle savedInstanceState) {
// super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_checknet);
// }
private static Handler mHandler;
@Override
public void onDisconnected() {
Log.e("OnNetworkStatusChangedListener", "onDisconnected: ");
}
@Override
public void onConnected(NetworkUtils.NetworkType networkType) {
Log.e("OnNetworkStatusChangedListener", "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);
@@ -88,8 +116,64 @@ public class CheckNetActivity extends BaseActivity implements MainContact.MainVi
mPresenter.getFirstConnect();
NetworkUtils.registerNetworkStatusChangedListener(this);
getDevicesInfo();
mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
Resut resut = (Resut) msg.obj;
if (resut.Times == 10) {
if (resut.isAvailable) {
giv_1.setImageResource(R.drawable.successful);
} else {
giv_1.setImageResource(R.drawable.failed);
}
}
}
};
checkNetworkIsAvailable();
}
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()) {
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();
}
private void getDevicesInfo() {
String sn = Utils.getSerial();
checkSNError(sn);
@@ -254,14 +338,7 @@ public class CheckNetActivity extends BaseActivity implements MainContact.MainVi
@Override
public void buttonCheckUpdateFinished(boolean update, JsonObject jsonObject) {
this.updateApp = !update;
if (update) {
showDialog(jsonObject);
} else {
Observable.timer(5000, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(aLong -> ToastUtil.show("已经是最新版本"));
}
}
/**
@@ -402,14 +479,12 @@ public class CheckNetActivity extends BaseActivity implements MainContact.MainVi
@Override
protected void onPause() {
isForeground = false;
super.onPause();
}
@Override
protected void onResume() {
super.onResume();
isForeground = true;
}
@Override
@@ -495,19 +570,6 @@ public class CheckNetActivity extends BaseActivity implements MainContact.MainVi
LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver, filter);
}
@Override
public void onDisconnected() {
Log.e("OnNetworkStatusChangedListener", "onDisconnected: ");
}
@Override
public void onConnected(NetworkUtils.NetworkType networkType) {
Log.e("OnNetworkStatusChangedListener", "onConnected: ");
timeMillis = SystemClock.elapsedRealtime();
//直接获取数据
mPresenter.getLockedState();
}
public static class MessageReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {