version:2.6
fix:更新retrofit,优化请求次数 update:
This commit is contained in:
@@ -83,8 +83,8 @@ android {
|
||||
|
||||
MTKnewly {
|
||||
flavorDimensions "default"
|
||||
versionCode 6
|
||||
versionName "1.5"
|
||||
versionCode 7
|
||||
versionName "1.6"
|
||||
/*********************************极光推送************************************/
|
||||
manifestPlaceholders = [
|
||||
XG_ACCESS_ID : "1500026372",
|
||||
@@ -299,7 +299,7 @@ dependencies {
|
||||
implementation 'androidx.cardview:cardview:1.0.0'
|
||||
implementation 'androidx.multidex:multidex:2.0.1'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
|
||||
implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'
|
||||
implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.1.0'
|
||||
testImplementation 'junit:junit:4.13.2'
|
||||
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
|
||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
|
||||
@@ -312,22 +312,24 @@ dependencies {
|
||||
//Retrofit
|
||||
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
|
||||
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
|
||||
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.4.0'
|
||||
implementation 'com.squareup.retrofit2:adapter-rxjava3:2.9.0'
|
||||
//RxJava
|
||||
implementation 'io.reactivex.rxjava2:rxjava:2.2.12'
|
||||
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
|
||||
implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'
|
||||
implementation 'io.reactivex.rxjava3:rxjava:3.0.0'
|
||||
//生命周期管理
|
||||
implementation 'com.trello.rxlifecycle2:rxlifecycle:2.2.2'
|
||||
implementation 'com.trello.rxlifecycle2:rxlifecycle-android:2.2.2'
|
||||
implementation 'com.trello.rxlifecycle2:rxlifecycle-components:2.2.2'
|
||||
implementation 'com.trello.rxlifecycle4:rxlifecycle:4.0.2'
|
||||
implementation 'com.trello.rxlifecycle4:rxlifecycle-android:4.0.2'
|
||||
implementation 'com.trello.rxlifecycle4:rxlifecycle-components:4.0.2'
|
||||
implementation 'com.trello.rxlifecycle4:rxlifecycle-components-preference:4.0.2'
|
||||
implementation 'com.trello.rxlifecycle4:rxlifecycle-android-lifecycle:4.0.2'
|
||||
//implementation "com.uber.autodispose:autodispose:1.3.0"
|
||||
//implementation "com.uber.autodispose:autodispose-android-archcomponents:1.3.0"
|
||||
//Google
|
||||
implementation 'com.google.code.gson:gson:2.8.7'
|
||||
implementation 'com.google.zxing:core:3.3.0'
|
||||
implementation 'com.google.code.gson:gson:2.9.0'
|
||||
implementation 'com.google.zxing:core:3.4.1'
|
||||
//图片加载框架
|
||||
implementation 'com.github.bumptech.glide:glide:4.11.0'
|
||||
annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
|
||||
implementation 'com.github.bumptech.glide:glide:4.13.0'
|
||||
annotationProcessor 'com.github.bumptech.glide:compiler:4.13.0'
|
||||
//fastjson
|
||||
implementation 'com.alibaba:fastjson:1.2.79'
|
||||
//极光推送
|
||||
@@ -336,39 +338,39 @@ dependencies {
|
||||
//高德地图定位
|
||||
implementation 'com.amap.api:location:5.1.0'
|
||||
//MMKV
|
||||
implementation 'com.tencent:mmkv-static:1.2.11'
|
||||
implementation 'com.tencent:mmkv-static:1.2.12'
|
||||
//腾讯移动推送 TPNS
|
||||
implementation 'com.tencent.tpns:tpns:1.3.1.1-release'
|
||||
//RxHttp
|
||||
implementation 'com.github.liujingxing.rxhttp:rxhttp:2.6.5'
|
||||
//implementation 'com.squareup.okhttp3:okhttp:4.9.1' //rxhttp v2.2.2版本起,需要手动依赖okhttp
|
||||
annotationProcessor 'com.github.liujingxing.rxhttp:rxhttp-compiler:2.6.5'
|
||||
//生成RxHttp类,纯Java项目,请使用annotationProcessor代替kapt
|
||||
implementation 'com.github.liujingxing.rxlife:rxlife-coroutine:2.1.0' //管理协程生命周期,页面销毁,关闭请求
|
||||
//rxjava2 (RxJava2/Rxjava3二选一,使用asXxx方法时必须)
|
||||
//implementation 'io.reactivex.rxjava2:rxjava:2.2.8'
|
||||
//implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
|
||||
implementation 'com.github.liujingxing.rxlife:rxlife-rxjava2:2.1.0' //管理RxJava2生命周期,页面销毁,关闭请求
|
||||
// //RxHttp
|
||||
// implementation 'com.github.liujingxing.rxhttp:rxhttp:2.6.5'
|
||||
// //implementation 'com.squareup.okhttp3:okhttp:4.9.1' //rxhttp v2.2.2版本起,需要手动依赖okhttp
|
||||
// annotationProcessor 'com.github.liujingxing.rxhttp:rxhttp-compiler:2.6.5'
|
||||
// //生成RxHttp类,纯Java项目,请使用annotationProcessor代替kapt
|
||||
// implementation 'com.github.liujingxing.rxlife:rxlife-coroutine:2.1.0' //管理协程生命周期,页面销毁,关闭请求
|
||||
// //rxjava2 (RxJava2/Rxjava3二选一,使用asXxx方法时必须)
|
||||
// //implementation 'io.reactivex.rxjava2:rxjava:2.2.8'
|
||||
// //implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
|
||||
// implementation 'com.github.liujingxing.rxlife:rxlife-rxjava2:2.1.0' //管理RxJava2生命周期,页面销毁,关闭请求
|
||||
//工具类
|
||||
implementation 'com.blankj:utilcodex:1.30.6'
|
||||
implementation 'com.blankj:utilcodex:1.31.0'
|
||||
//Aria
|
||||
implementation 'com.arialyy.aria:core:3.8.15'
|
||||
annotationProcessor 'com.arialyy.aria:compiler:3.8.15'
|
||||
//压缩文件解压
|
||||
implementation 'org.zeroturnaround:zt-zip:1.13'
|
||||
implementation 'org.zeroturnaround:zt-zip:1.14'
|
||||
//更换字体框架
|
||||
implementation 'uk.co.chrisjenx:calligraphy:2.3.0'
|
||||
//Java WebSocket
|
||||
implementation "org.java-websocket:Java-WebSocket:1.4.1"
|
||||
implementation "org.java-websocket:Java-WebSocket:1.5.2"
|
||||
//状态栏透明
|
||||
implementation 'com.gitee.zackratos:UltimateBarX:0.7.1'
|
||||
implementation 'com.gitee.zackratos:UltimateBarX:0.8.0'
|
||||
// // 基础依赖包,必须要依赖
|
||||
// implementation 'com.gyf.immersionbar:immersionbar:3.0.0'
|
||||
// // fragment快速实现(可选)
|
||||
// implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0'
|
||||
// // kotlin扩展(可选)
|
||||
// implementation 'com.gyf.immersionbar:immersionbar-ktx:3.0.0'
|
||||
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.23'
|
||||
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.24'
|
||||
}
|
||||
|
||||
preBuild {
|
||||
|
||||
@@ -4,9 +4,10 @@
|
||||
coreApp="true"
|
||||
package="com.aoleyun.sn"
|
||||
android:sharedUserId="android.uid.system">
|
||||
|
||||
<queries>
|
||||
<intent>
|
||||
<action android:name="android.intent.action.MAIN "/>
|
||||
<action android:name="android.intent.action.MAIN " />
|
||||
</intent>
|
||||
</queries>
|
||||
|
||||
@@ -130,6 +131,15 @@
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".activity.checknet.CheckNetActivity"
|
||||
android:theme="@style/activity_styles">
|
||||
<!-- <intent-filter>-->
|
||||
<!-- <action android:name="android.intent.action.MAIN" />-->
|
||||
|
||||
<!-- <category android:name="android.intent.category.LAUNCHER" />-->
|
||||
<!-- </intent-filter>-->
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".activity.main.MainActivity"
|
||||
android:excludeFromRecents="true"
|
||||
@@ -138,9 +148,6 @@
|
||||
<activity
|
||||
android:name=".activity.requestlog.RequestLogActivity"
|
||||
android:launchMode="singleTask" />
|
||||
<activity
|
||||
android:name=".activity.checknet.CheckNetActivity"
|
||||
android:theme="@style/activity_styles" />
|
||||
|
||||
<service
|
||||
android:name=".service.main.MainService"
|
||||
@@ -243,7 +250,7 @@
|
||||
<!-- <action android:name="android.intent.action.MEDIA_REMOVED" /> -->
|
||||
<!-- <action android:name="android.intent.action.MEDIA_BAD_REMOVAL" /> -->
|
||||
<!-- 自定义广播 -->
|
||||
<action android:name="com.aoleyun.sn.intent.action.BOOT_COMPLETED" />
|
||||
<action android:name="aoleyun.intent.action.BOOT_COMPLETED" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
<!-- <receiver android:name=".log.LogReceiver" -->
|
||||
|
||||
@@ -79,7 +79,7 @@ public class SplashActivity extends AppCompatActivity {
|
||||
private void initView() {
|
||||
if (BuildConfig.DEBUG) {
|
||||
JGYUtils.getInstance().cleanBackgroundMemory();
|
||||
NetInterfaceManager.getInstance().uploadLogFile();
|
||||
// NetInterfaceManager.getInstance().uploadLogFile();
|
||||
bt_log = findViewById(R.id.bt_log);
|
||||
bt_log.setVisibility(View.VISIBLE);
|
||||
bt_log.setOnClickListener(view -> {
|
||||
@@ -157,7 +157,7 @@ public class SplashActivity extends AppCompatActivity {
|
||||
Log.e(TAG, "debugTest: " + e.getMessage());
|
||||
}
|
||||
|
||||
Utils.getPublicIP(this);
|
||||
// Utils.getPublicIP(this);
|
||||
Utils.obtainWifiInfo(this);
|
||||
Log.e("getLocalIP", "set: " + Utils.getIPAddress(this));
|
||||
// WiFiUtils.getInstance().connectWifiPws("七彩宏云","colorfulyun.com");
|
||||
|
||||
@@ -1,40 +1,36 @@
|
||||
package com.aoleyun.sn.activity.checknet;
|
||||
|
||||
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 androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||
|
||||
import com.aoleyun.sn.R;
|
||||
import com.aoleyun.sn.base.BaseActivity;
|
||||
import com.aoleyun.sn.service.main.MainService;
|
||||
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 java.util.concurrent.TimeUnit;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import io.reactivex.rxjava3.annotations.NonNull;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import io.reactivex.rxjava3.core.Observer;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||
import pl.droidsonroids.gif.GifImageView;
|
||||
|
||||
public class CheckNetActivity extends BaseActivity implements CheckNetContact.MainView, NetworkUtils.OnNetworkStatusChangedListener {
|
||||
private static final String TAG = CheckNetActivity.class.getSimpleName();
|
||||
|
||||
@BindView(R.id.giv_1)
|
||||
GifImageView giv_1;
|
||||
@BindView(R.id.giv_2)
|
||||
@@ -50,20 +46,8 @@ public class CheckNetActivity extends BaseActivity implements CheckNetContact.Ma
|
||||
@BindView(R.id.bt_confirm)
|
||||
Button bt_confirm;
|
||||
|
||||
private static final String TAG = CheckNetActivity.class.getSimpleName();
|
||||
private CheckNetPresenter mPresenter;
|
||||
|
||||
private CheckNetPresenter mCheckNetPresenter;
|
||||
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() {
|
||||
@@ -74,8 +58,9 @@ public class CheckNetActivity extends BaseActivity implements CheckNetContact.Ma
|
||||
public void onConnected(NetworkUtils.NetworkType networkType) {
|
||||
Log.e("OnNetworkStatusChanged", "onConnected: ");
|
||||
timeMillis = SystemClock.elapsedRealtime();
|
||||
giv_1.setImageResource(R.drawable.succeed);
|
||||
//直接获取数据
|
||||
mPresenter.getLockedState();
|
||||
mCheckNetPresenter.getLockedState();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -83,82 +68,82 @@ public class CheckNetActivity extends BaseActivity implements CheckNetContact.Ma
|
||||
return R.layout.activity_checknet;
|
||||
}
|
||||
|
||||
boolean isAvailable = false;
|
||||
int runTimes = 0;
|
||||
|
||||
@Override
|
||||
public void initView() {
|
||||
ButterKnife.bind(this);
|
||||
mPresenter = new CheckNetPresenter(this);
|
||||
mPresenter.attachView(this);
|
||||
mPresenter.setProvider(this);
|
||||
mCheckNetPresenter = new CheckNetPresenter(this);
|
||||
mCheckNetPresenter.attachView(this);
|
||||
mCheckNetPresenter.setProvider(this);
|
||||
mCheckNetPresenter.setLifecycle(lifecycleSubject);
|
||||
JGYUtils.startServices(CheckNetActivity.this);
|
||||
Log.e(TAG, "initView: " + "start request");
|
||||
NetworkUtils.registerNetworkStatusChangedListener(this);
|
||||
mHandler = new Handler() {
|
||||
checkNetworkIsAvailable(new NetworkInfo() {
|
||||
@Override
|
||||
public void handleMessage(Message msg) {
|
||||
super.handleMessage(msg);
|
||||
Resut resut = (Resut) msg.obj;
|
||||
if (isAvailable == true || runTimes == 10) {
|
||||
if (resut.isAvailable) {
|
||||
public void isAvailable(boolean available) {
|
||||
runOnUiThread(() -> {
|
||||
if (available) {
|
||||
giv_1.setImageResource(R.drawable.succeed);
|
||||
mCheckNetPresenter.getLockedState();
|
||||
} 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();
|
||||
});
|
||||
}
|
||||
});
|
||||
mPresenter.getFirstConnect();
|
||||
bt_confirm.setOnClickListener(view -> finish());
|
||||
mCheckNetPresenter.getFirstConnect();
|
||||
}
|
||||
|
||||
private static class Resut {
|
||||
int Times;
|
||||
boolean isAvailable;
|
||||
interface NetworkInfo {
|
||||
void isAvailable(boolean available);
|
||||
}
|
||||
|
||||
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);
|
||||
private Disposable mDisposable;
|
||||
|
||||
private void checkNetworkIsAvailable(NetworkInfo networkInfo) {
|
||||
/**
|
||||
* start: 开始数值
|
||||
* count: 输出值的个数
|
||||
* initialDelay: 延迟多少秒执行
|
||||
* period: 间隔多久执行一次
|
||||
* TimeUnit: 单位设置,NANOSECONDS(纳秒),MICROSECONDS(微秒),MILLISECONDS(毫秒),SECONDS(秒),MINUTES(分钟),HOURS(小时),DAYS(天)
|
||||
*/
|
||||
Observable.intervalRange(1, 10, 0, 1500, TimeUnit.MILLISECONDS)
|
||||
.observeOn(Schedulers.io())
|
||||
.subscribe(new Observer<Long>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
mDisposable = d;
|
||||
Log.e("checkNetworkIsAvailable", "onSubscribe: ");
|
||||
}
|
||||
try {
|
||||
synchronized (this) {
|
||||
wait(1200);
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull Long aLong) {
|
||||
Log.e("checkNetworkIsAvailable", "onNext: " + "第" + aLong + "次检测网络");
|
||||
if (NetworkUtils.isAvailable()) {
|
||||
Log.e("checkNetworkIsAvailable", "onNext: " + "网络连接成功");
|
||||
networkInfo.isAvailable(true);
|
||||
if (mDisposable != null && !mDisposable.isDisposed()) {
|
||||
mDisposable.dispose();
|
||||
}
|
||||
} else {
|
||||
Log.e("checkNetworkIsAvailable", "onNext: " + "网络无连接");
|
||||
}
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}).start();
|
||||
|
||||
@Override
|
||||
public void onError(@NonNull Throwable e) {
|
||||
Log.e("checkNetworkIsAvailable", "onError: " + e.getMessage());
|
||||
onComplete();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
networkInfo.isAvailable(NetworkUtils.isAvailable());
|
||||
Log.e("checkNetworkIsAvailable", "onComplete: ");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//执行所有接口耗时
|
||||
@@ -166,36 +151,8 @@ public class CheckNetActivity extends BaseActivity implements CheckNetContact.Ma
|
||||
|
||||
@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();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param loocked 后台1是锁定,底层0是锁定
|
||||
*/
|
||||
@Override
|
||||
public void setLockedState(boolean loocked) {
|
||||
//发送设备mac地址和信息
|
||||
mPresenter.sendMACAddress();
|
||||
//设置极光推送别名
|
||||
mPresenter.setJpushAlias();
|
||||
if (loocked) {
|
||||
if (netWorkIsRunning || MainService.netWorkIsRunning) {
|
||||
//如果正在执行,不执行
|
||||
return;
|
||||
}
|
||||
SaveListUtils.getList();
|
||||
//获取系统管控
|
||||
mPresenter.setPushTags();
|
||||
netWorkIsRunning = true;
|
||||
} else {
|
||||
netWorkIsRunning = false;
|
||||
SysSettingUtils.setEnableSetting(this);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -207,25 +164,26 @@ public class CheckNetActivity extends BaseActivity implements CheckNetContact.Ma
|
||||
public void setFirstConnect(boolean state) {
|
||||
Log.e(TAG, "isFirstConnect: " + "end request");
|
||||
if (state) {
|
||||
mPresenter.setDisableSetting();
|
||||
mCheckNetPresenter.setDisableSetting();
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void sendMACFinish() {
|
||||
mPresenter.updateDeviceInfo();
|
||||
mCheckNetPresenter.updateDeviceInfo();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateDeviceInfoFinish() {
|
||||
mPresenter.getSnTimeControl();
|
||||
mCheckNetPresenter.getSnTimeControl();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getSnTimeControlFinish() {
|
||||
mPresenter.getEBagCode();
|
||||
mCheckNetPresenter.getEBagCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -233,44 +191,34 @@ public class CheckNetActivity extends BaseActivity implements CheckNetContact.Ma
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAliasFinish() {
|
||||
mPresenter.checkStoreUpdate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setJpushPlatformTagsFinish() {
|
||||
|
||||
mCheckNetPresenter.checkStoreUpdate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void checkStoreUpdateFinish() {
|
||||
mPresenter.checkInfoUpdate();
|
||||
mCheckNetPresenter.checkInfoUpdate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void checkInfoUpdateFinish() {
|
||||
mPresenter.checkDesktopUpdate();
|
||||
mCheckNetPresenter.checkDesktopUpdate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void checkDesktopUpdateFinish() {
|
||||
mPresenter.checkNotifyUpdate();
|
||||
mCheckNetPresenter.checkNotifyUpdate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void checkNotifyUpdateFinish() {
|
||||
mPresenter.checkBrowserUpdate();
|
||||
mCheckNetPresenter.checkBrowserUpdate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void checkBrowserUpdateFinish() {
|
||||
mPresenter.checkTestUpdate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void buttonCheckUpdateFinish(boolean update, JsonObject jsonObject) {
|
||||
|
||||
mCheckNetPresenter.checkTestUpdate();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -278,141 +226,137 @@ public class CheckNetActivity extends BaseActivity implements CheckNetContact.Ma
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @param loocked 后台1是锁定,底层0是锁定
|
||||
*/
|
||||
@Override
|
||||
public void setLockedState(boolean loocked) {
|
||||
Log.e(TAG, "setLockedState: " + loocked);
|
||||
//发送设备mac地址和信息
|
||||
mCheckNetPresenter.sendMACAddress();
|
||||
if (loocked) {
|
||||
if (netWorkIsRunning) {
|
||||
//如果正在执行,不执行
|
||||
return;
|
||||
}
|
||||
SaveListUtils.getList();
|
||||
//获取系统管控
|
||||
mCheckNetPresenter.setPushTags();
|
||||
netWorkIsRunning = true;
|
||||
} else {
|
||||
netWorkIsRunning = false;
|
||||
SysSettingUtils.setEnableSetting(this);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param noTag 为空,没有,错误都返回true
|
||||
* 设备可以没有批次,但是没有批次相当于没有数据了,就不执行下面的请求了
|
||||
*/
|
||||
@Override
|
||||
public void setTagsFinish(boolean noTag) {
|
||||
if (mPresenter.isRequestSucceeded()) {
|
||||
if (mCheckNetPresenter.isRequestSucceeded()) {
|
||||
Log.e(TAG, "setTagsFinish: " + mCheckNetPresenter.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();
|
||||
mCheckNetPresenter.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();
|
||||
mCheckNetPresenter.getAppLimit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getAppLimitFinish(String packageList) {
|
||||
mPresenter.getDeviceBatch(packageList);
|
||||
mCheckNetPresenter.getDeviceBatch(packageList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getDeviceBatchFinish() {
|
||||
mPresenter.getForceDownload();
|
||||
mCheckNetPresenter.getForceDownload();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getForceDownloadFinish() {
|
||||
mPresenter.getBrowserList();
|
||||
mCheckNetPresenter.getBrowserList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getBrowserListFinish(String whitelist) {
|
||||
mPresenter.getBrowserBookmarks(whitelist);
|
||||
mCheckNetPresenter.getBrowserBookmarks(whitelist);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getBrowserBookmarksFinish() {
|
||||
mPresenter.getBrowserWhiteList();
|
||||
mPresenter.getDesktopIcon();
|
||||
mCheckNetPresenter.getBrowserWhiteList();
|
||||
mCheckNetPresenter.getDesktopIcon();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getDesktopIconFinish() {
|
||||
mPresenter.getAppAutoStartUpdateAndNet();
|
||||
mCheckNetPresenter.getAppAutoStartUpdateAndNet();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getAppAutoStartUpdateAndNetFinish() {
|
||||
mPresenter.getAppIDControl();
|
||||
mCheckNetPresenter.getAppIDControl();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getAppIDControlFinish() {
|
||||
mPresenter.setAppinsideWeb();
|
||||
mCheckNetPresenter.setAppinsideWeb();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAppinsideWebFinish() {
|
||||
mPresenter.setSystemSetting();
|
||||
mCheckNetPresenter.setSystemSetting();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSystemSettingFinish() {
|
||||
mPresenter.getDefaultApp();
|
||||
mCheckNetPresenter.getDefaultApp();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDefaultAppFinish() {
|
||||
mPresenter.getROMApp();
|
||||
mCheckNetPresenter.getROMApp();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getROMAppFinish() {
|
||||
mPresenter.getDeveloper();
|
||||
mCheckNetPresenter.getDeveloper();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getDeveloperFinish() {
|
||||
mPresenter.setLogoImg();
|
||||
mCheckNetPresenter.setLogoImg();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setLogoImgFinish() {
|
||||
mPresenter.setTopApp();
|
||||
mCheckNetPresenter.setTopApp();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTopAppFinish() {
|
||||
mPresenter.getDefaultDesktop();
|
||||
mCheckNetPresenter.getDefaultDesktop();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getDefaultDesktopFinish() {
|
||||
netWorkIsRunning = false;
|
||||
if (mPresenter.isRequestSucceeded()) {
|
||||
giv_2.setImageResource(R.drawable.succeed);
|
||||
if (mCheckNetPresenter.isRequestSucceeded()) {
|
||||
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");
|
||||
@@ -433,28 +377,12 @@ public class CheckNetActivity extends BaseActivity implements CheckNetContact.Ma
|
||||
|
||||
}
|
||||
|
||||
@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();
|
||||
mCheckNetPresenter.detachView();
|
||||
JGYUtils.startServices(CheckNetActivity.this);
|
||||
NetworkUtils.unregisterNetworkStatusChangedListener(this);
|
||||
MainService.mPresenter.getLockedState();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -476,32 +404,4 @@ public class CheckNetActivity extends BaseActivity implements CheckNetContact.Ma
|
||||
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) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,20 +1,15 @@
|
||||
package com.aoleyun.sn.activity.checknet;
|
||||
|
||||
import android.graphics.Bitmap;
|
||||
import android.view.View;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
import com.aoleyun.sn.base.BasePresenter;
|
||||
import com.aoleyun.sn.base.BaseView;
|
||||
|
||||
public class CheckNetContact {
|
||||
public interface Presenter extends BasePresenter<MainView> {
|
||||
//获取设备锁定状态
|
||||
void getLockedState();
|
||||
//是否第一次联网
|
||||
//1.是否第一次联网
|
||||
void getFirstConnect();
|
||||
//关闭所有功能
|
||||
//1.关闭所有功能
|
||||
void setDisableSetting();
|
||||
|
||||
//发送mac地址
|
||||
void sendMACAddress();
|
||||
//更新设备信息
|
||||
@@ -23,8 +18,6 @@ public class CheckNetContact {
|
||||
void getSnTimeControl();
|
||||
//获取电子书包激活码
|
||||
void getEBagCode();
|
||||
//设置击关推送别名
|
||||
void setJpushAlias();
|
||||
//设置极光推送平台标签
|
||||
void setJpushPlatformTags(int platform);
|
||||
//获取应用市场更新
|
||||
@@ -37,11 +30,11 @@ public class CheckNetContact {
|
||||
void checkNotifyUpdate();
|
||||
//获取浏览器升级
|
||||
void checkBrowserUpdate();
|
||||
//手动获取设备信息更新
|
||||
void buttonCheckUpdate(View view);
|
||||
//获取测试应用更新
|
||||
void checkTestUpdate();
|
||||
//开始
|
||||
//2.获取设备锁定状态
|
||||
void getLockedState();
|
||||
//设置极光推送标签
|
||||
void setPushTags();
|
||||
//获取开发者选项
|
||||
@@ -92,10 +85,9 @@ public class CheckNetContact {
|
||||
}
|
||||
|
||||
public interface MainView extends BaseView {
|
||||
//获取设备锁定状态
|
||||
void setLockedState(boolean loocked);
|
||||
//是否第一次联网
|
||||
//1.是否第一次联网
|
||||
void setFirstConnect(boolean state);
|
||||
|
||||
//发送mac地址
|
||||
void sendMACFinish();
|
||||
//更新设备信息
|
||||
@@ -104,8 +96,6 @@ public class CheckNetContact {
|
||||
void getSnTimeControlFinish();
|
||||
//获取电子书包激活码
|
||||
void getEBagCodeFinish();
|
||||
//设置击关推送别名
|
||||
void setAliasFinish();
|
||||
//设置极光推送平台标签
|
||||
void setJpushPlatformTagsFinish();
|
||||
//获取应用市场更新
|
||||
@@ -118,11 +108,11 @@ public class CheckNetContact {
|
||||
void checkNotifyUpdateFinish();
|
||||
//获取浏览器升级
|
||||
void checkBrowserUpdateFinish();
|
||||
//手动获取设备信息更新
|
||||
void buttonCheckUpdateFinish(boolean update, JsonObject jsonObject);
|
||||
//获取测试应用更新
|
||||
void checkTestUpdateFinish();
|
||||
//开始
|
||||
//2.获取设备锁定状态
|
||||
void setLockedState(boolean loocked);
|
||||
//设置极光推送标签
|
||||
void setTagsFinish(boolean noTag);
|
||||
//获取开发者选项结束
|
||||
|
||||
@@ -1,14 +1,11 @@
|
||||
package com.aoleyun.sn.activity.checknet;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.provider.Settings;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
@@ -47,8 +44,9 @@ import com.google.gson.reflect.TypeToken;
|
||||
import com.tencent.android.tpush.XGIOperateCallback;
|
||||
import com.tencent.android.tpush.XGPushManager;
|
||||
import com.tencent.mmkv.MMKV;
|
||||
import com.trello.rxlifecycle2.LifecycleProvider;
|
||||
import com.trello.rxlifecycle2.android.ActivityEvent;
|
||||
import com.trello.rxlifecycle4.LifecycleProvider;
|
||||
import com.trello.rxlifecycle4.RxLifecycle;
|
||||
import com.trello.rxlifecycle4.android.ActivityEvent;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Type;
|
||||
@@ -57,16 +55,15 @@ import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import io.reactivex.Observer;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.annotations.NonNull;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.rxjava3.annotations.NonNull;
|
||||
import io.reactivex.rxjava3.core.Observer;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||
import io.reactivex.rxjava3.subjects.BehaviorSubject;
|
||||
import okhttp3.ResponseBody;
|
||||
|
||||
/**
|
||||
* MainActivity和MainService 的 Presenter
|
||||
*
|
||||
* @author jgy
|
||||
*/
|
||||
public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
@@ -90,12 +87,23 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
return provider;
|
||||
}
|
||||
|
||||
private BehaviorSubject<ActivityEvent> lifecycle;
|
||||
|
||||
public void setLifecycle(BehaviorSubject<ActivityEvent> lifecycle) {
|
||||
this.lifecycle = lifecycle;
|
||||
}
|
||||
|
||||
public BehaviorSubject<ActivityEvent> getLifecycle() {
|
||||
return lifecycle;
|
||||
}
|
||||
|
||||
public CheckNetPresenter(Context context) {
|
||||
this.mContext = context;
|
||||
Log.e(TAG, "MainPresenter: " + context.getClass());
|
||||
}
|
||||
|
||||
public boolean isRequestSucceeded() {
|
||||
Log.e(TAG, "isRequestSucceeded: " + requestSucceeded);
|
||||
return requestSucceeded;
|
||||
}
|
||||
|
||||
@@ -109,74 +117,6 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
this.mView = null;
|
||||
}
|
||||
|
||||
private long lastgetLockedTime;
|
||||
private long one_minute = 1000 * 60;
|
||||
|
||||
@Override
|
||||
public void getLockedState() {
|
||||
MMKV mmkv = MMKV.defaultMMKV();
|
||||
lastgetLockedTime = mmkv.decodeLong(CheckNetPresenter.GET_SETTING_FINISH_TIME);
|
||||
Log.e(TAG, "getLockedState: " + lastgetLockedTime);
|
||||
if (System.currentTimeMillis() - lastgetLockedTime < one_minute) {
|
||||
Log.e(TAG, "getLockedState: lastgetLockedTime = " + lastgetLockedTime);
|
||||
return;
|
||||
}
|
||||
|
||||
// lastgetLockedTime = System.currentTimeMillis();
|
||||
NetInterfaceManager.getInstance()
|
||||
.getDevicesLockedStateObservable()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
Log.e(TAG + ":" + "getLockedState", "onSubscribe: ");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull BaseResponse response) {
|
||||
requestSucceeded = true;
|
||||
Log.e(TAG + ":" + "getLockedState", "onNext: " + JSONObject.toJSONString(response));
|
||||
if (response.code == OK) {
|
||||
JsonObject jsonObject = JsonParser.parseString(new Gson().toJson(response.data)).getAsJsonObject();
|
||||
int locked = jsonObject.get("lock").getAsInt();
|
||||
Log.e(TAG + ":" + "getLockedState", "locked: " + locked);
|
||||
int oldState = Settings.System.getInt(mContext.getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, 0);
|
||||
Log.e(TAG + ":" + "getLockedState", "qch_unlock_ipad: " + oldState);
|
||||
//后台1是锁定,底层0是锁定
|
||||
SPUtils.put(mContext, CommonConfig.JGY_FIRST_CONNECT, 1);
|
||||
if (locked == 1) {
|
||||
if (oldState == 1) {
|
||||
Log.e(TAG + ":" + "getLockedState", "onNext: " + "state changed , reset devices");
|
||||
Utils.doMasterClear(mContext);
|
||||
}
|
||||
Settings.System.putInt(mContext.getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, 0);
|
||||
} else {
|
||||
// SysSettingUtils.setEnableSetting(mContext);
|
||||
Settings.System.putInt(mContext.getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, 1);
|
||||
}
|
||||
mView.setLockedState(locked == 1);
|
||||
} else if (response.code == -300) {
|
||||
mView.setLockedState(false);
|
||||
Log.e(TAG + ":" + "getLockedState", "locked: " + false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(@NonNull Throwable e) {
|
||||
Log.e(TAG + ":" + "getLockedState", "onError: " + e.getMessage());
|
||||
int locked = Settings.System.getInt(mContext.getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, 0);
|
||||
Log.e(TAG + ":" + "getLockedState", "locked: " + locked);
|
||||
mView.setLockedState(locked == 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
Log.e(TAG + ":" + "getLockedState", "onComplete: ");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 第一次连接
|
||||
*/
|
||||
@@ -194,7 +134,8 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
SysSettingUtils.setDisableSetting(mContext);
|
||||
}
|
||||
|
||||
|
||||
private long lastgetLockedTime;
|
||||
private long one_minute = 1000 * 60;
|
||||
private long lastSendMACTime;
|
||||
|
||||
@Override
|
||||
@@ -213,7 +154,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
NetInterfaceManager.getInstance()
|
||||
.sendMACAddressObservable()
|
||||
.observeOn(Schedulers.io())
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -252,58 +193,29 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
mView.updateDeviceInfoFinish();
|
||||
return;
|
||||
}
|
||||
updateDevicesInfo(mContext);
|
||||
mView.updateDeviceInfoFinish();
|
||||
NetInterfaceManager.getInstance().updateDeviceInfo(new NetInterfaceManager.ObserverCallback() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(BaseResponse response) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
mView.updateDeviceInfoFinish();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@SuppressLint("NewApi")
|
||||
synchronized private void updateDevicesInfo(Context context) {
|
||||
String address = String.valueOf(SPUtils.get(context, "AmapAddress", "-"));
|
||||
if ("-".equals(address)) {
|
||||
address = (String) SPUtils.get(context, "AmapError", "-");
|
||||
}
|
||||
String longitude = String.valueOf(SPUtils.get(context, "longitude", "0"));
|
||||
String latitude = String.valueOf(SPUtils.get(context, "latitude", "0"));
|
||||
JsonObject jsonObject = new JsonObject();
|
||||
jsonObject.addProperty("address", address);
|
||||
jsonObject.addProperty("longitude", longitude);
|
||||
jsonObject.addProperty("latitude", latitude);
|
||||
String add = jsonObject.toString();
|
||||
Log.e(TAG, "updateDevicesInfo: " + add);
|
||||
NetInterfaceManager.getInstance().getUpdateDeviceInfo()
|
||||
.updateDeviceInfo(
|
||||
Utils.getSerial(),
|
||||
NetInterfaceManager.HTTP_KEY,
|
||||
Utils.getMachine(context),
|
||||
Utils.getHardware(context),
|
||||
add)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
Log.e(TAG + ":" + "updateDevicesInfo", "onSubscribe: ");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull BaseResponse baseResponse) {
|
||||
requestSucceeded = true;
|
||||
Log.e(TAG + ":" + "updateDevicesInfo", "onNext: " + baseResponse);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(@NonNull Throwable e) {
|
||||
Log.e(TAG + ":" + "updateDevicesInfo", "onError: " + e.getMessage());
|
||||
onComplete();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
Log.e(TAG + ":" + "updateDevicesInfo", "onComplete: ");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getSnTimeControl() {
|
||||
@@ -313,7 +225,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
}
|
||||
NetInterfaceManager.getInstance()
|
||||
.getSnTimeObservable()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -364,7 +276,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
public void getEBagCode() {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getEBagCodeControl()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
@@ -400,15 +312,41 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setJpushAlias() {
|
||||
mView.setAliasFinish();
|
||||
public void getLockedState() {
|
||||
MMKV mmkv = MMKV.defaultMMKV();
|
||||
lastgetLockedTime = mmkv.decodeLong(CheckNetPresenter.GET_SETTING_FINISH_TIME);
|
||||
Log.e(TAG, "getLockedState: " + lastgetLockedTime);
|
||||
NetInterfaceManager.getInstance()
|
||||
.getLockedState(lifecycle, new NetInterfaceManager.ObserverCallback() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(BaseResponse response) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
Log.e(TAG, "onComplete: ");
|
||||
int locked = Settings.System.getInt(mContext.getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, JGYActions.FRAME_CODE_LOCKED);
|
||||
Log.e(TAG + ":" + "getLockedState", "locked: " + locked);
|
||||
mView.setLockedState(locked == JGYActions.FRAME_CODE_LOCKED);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPushTags() {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getJpushTagsObservable()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -462,12 +400,12 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
@Override
|
||||
public void onError(@NonNull Throwable e) {
|
||||
Log.e(TAG + ":" + "setPushTags", "onError: " + e.getMessage());
|
||||
mView.setTagsFinish(true);
|
||||
onComplete();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
mView.setTagsFinish(true);
|
||||
Log.e(TAG + ":" + "setPushTags", "onComplete: ");
|
||||
}
|
||||
});
|
||||
@@ -478,15 +416,6 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
mView.setJpushPlatformTagsFinish();
|
||||
}
|
||||
|
||||
// private void setTag(Set set) {
|
||||
// TagAliasOperatorHelper.TagAliasBean tagAliasBean = new TagAliasOperatorHelper.TagAliasBean();
|
||||
// tagAliasBean.action = ACTION_SET;
|
||||
// sequence++;
|
||||
// tagAliasBean.tags = set;
|
||||
// tagAliasBean.isAliasAction = false;
|
||||
// TagAliasOperatorHelper.getInstance().handleAction(mContext, sequence, tagAliasBean);
|
||||
// }
|
||||
|
||||
@Override
|
||||
public void checkStoreUpdate() {
|
||||
checkUpdateStore();
|
||||
@@ -499,7 +428,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
JGYUtils.getInstance().checkAppPlatform())
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -542,7 +471,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
JGYUtils.getInstance().checkAppPlatform())
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -583,7 +512,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
JGYUtils.getInstance().checkAppPlatform())
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -624,7 +553,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
JGYUtils.getInstance().checkAppPlatform())
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -665,7 +594,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
JGYUtils.getInstance().checkAppPlatform())
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -698,70 +627,6 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
});
|
||||
}
|
||||
|
||||
long buttonCheckUpdateTime = 0;
|
||||
|
||||
@Override
|
||||
public void buttonCheckUpdate(View view) {
|
||||
// if ((System.currentTimeMillis() - buttonCheckUpdateTime) < 10000) {
|
||||
// buttonCheckUpdateTime = System.currentTimeMillis();
|
||||
// ToastUtil.show("正在检查更新");
|
||||
// } else {
|
||||
// ToastUtil.show("你已经过检查,请稍后再来");
|
||||
// }
|
||||
checkUpdateInfo();
|
||||
}
|
||||
|
||||
private void checkUpdateInfo() {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getUpdateApi()
|
||||
.getUpdate(BuildConfig.APPLICATION_ID,
|
||||
JGYUtils.getInstance().checkAppPlatform())
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
Log.e(TAG + ":" + "checkUpdateInfo", "onSubscribe: ");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull BaseResponse response) {
|
||||
requestSucceeded = true;
|
||||
Log.e(TAG + ":" + "checkUpdateInfo", "onNext: " + response);
|
||||
if (response.code == OK) {
|
||||
JsonObject jsonObject = JsonParser.parseString(new Gson().toJson(response.data)).getAsJsonObject();
|
||||
long versionCode = jsonObject.get("version_code").getAsLong();
|
||||
PackageManager pm = mContext.getPackageManager();
|
||||
PackageInfo info = null;
|
||||
try {
|
||||
info = pm.getPackageInfo(BuildConfig.APPLICATION_ID, 0);
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (null == info || info.versionCode < versionCode) {
|
||||
mView.buttonCheckUpdateFinish(true, jsonObject);
|
||||
} else {
|
||||
mView.buttonCheckUpdateFinish(false, null);
|
||||
}
|
||||
} else {
|
||||
mView.buttonCheckUpdateFinish(false, null);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(@NonNull Throwable e) {
|
||||
Log.e(TAG + ":" + "checkUpdateInfo", "onError: " + e.getMessage());
|
||||
onComplete();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
Log.e(TAG + ":" + "checkUpdateInfo", "onComplete: ");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取灰度测试更新
|
||||
*/
|
||||
@@ -769,7 +634,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
public void checkTestUpdate() {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getTestUpdateObservable()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse<List<ForceDownloadData>>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
@@ -815,7 +680,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
public void getAppLimit() {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getAppLimitObservable()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<ResponseBody>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -928,7 +793,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
public void getForceDownload() {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getForceDownloadObservable()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<ForceDownloadBean>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -1051,7 +916,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
// NetInterfaceManager.getInstance()
|
||||
// .getBrowserListSettingObservable()
|
||||
// .observeOn(Schedulers.io())
|
||||
// .compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
// .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
// .subscribe(new Observer<BaseResponse<BrowserData>>() {
|
||||
// @Override
|
||||
// public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -1113,7 +978,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
// NetInterfaceManager.getInstance()
|
||||
// .getBrowserListSettingObservable()
|
||||
// .observeOn(Schedulers.io())
|
||||
// .compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
// .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
// .subscribe(new Observer<BaseResponse<BrowserData>>() {
|
||||
// @Override
|
||||
// public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -1317,7 +1182,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getDesktopIconObservable()
|
||||
.observeOn(Schedulers.io())
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -1380,7 +1245,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
.getAppAutoStartUpdateAndNetObservable()
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<NetAndLaunchBean>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -1417,7 +1282,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getAppIDControlObservable()
|
||||
.observeOn(Schedulers.io())
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<ResponseBody>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -1486,7 +1351,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getSystemSettingObservable()
|
||||
.observeOn(Schedulers.io())
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<ResponseBody>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -1544,7 +1409,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
public void getDefaultApp() {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getDefaultAppApi()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse<DefaultApp>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
@@ -1589,7 +1454,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
.getROMApp(NetInterfaceManager.HTTP_KEY, customVersion)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
@@ -1629,7 +1494,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
public void getDeveloper() {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getDeveloperControl()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
@@ -1677,7 +1542,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
}
|
||||
NetInterfaceManager.getInstance()
|
||||
.getLogoImgObservable()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse<LogoImg>>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -1727,7 +1592,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
}
|
||||
NetInterfaceManager.getInstance()
|
||||
.getTopAppControl()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
@@ -1782,7 +1647,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
}
|
||||
NetInterfaceManager.getInstance()
|
||||
.getScreenLockObservable()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -1831,7 +1696,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
}
|
||||
NetInterfaceManager.getInstance()
|
||||
.getDesktopObservable()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<ResponseBody>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -1887,7 +1752,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
public void getPoweroffTime() {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getPoweroffTimeControl()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse<List<PoweroffBean>>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
@@ -1924,7 +1789,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
@Override
|
||||
public void getWiFiPasswd() {
|
||||
NetInterfaceManager.getInstance().getWiFiControl()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse<List<WiFiAlias>>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
@@ -14,25 +14,23 @@ import com.aoleyun.sn.bean.StudentsInfo;
|
||||
import com.aoleyun.sn.comm.CommonConfig;
|
||||
import com.aoleyun.sn.comm.JGYActions;
|
||||
import com.aoleyun.sn.network.NetInterfaceManager;
|
||||
import com.aoleyun.sn.utils.AES.CXAESUtil;
|
||||
import com.aoleyun.sn.utils.JGYUtils;
|
||||
import com.aoleyun.sn.utils.SPUtils;
|
||||
import com.aoleyun.sn.utils.Utils;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParser;
|
||||
import com.tencent.mmkv.MMKV;
|
||||
import com.trello.rxlifecycle2.LifecycleProvider;
|
||||
import com.trello.rxlifecycle2.android.ActivityEvent;
|
||||
import com.trello.rxlifecycle4.RxLifecycle;
|
||||
import com.trello.rxlifecycle4.android.ActivityEvent;
|
||||
|
||||
import io.reactivex.Observer;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.annotations.NonNull;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.rxjava3.annotations.NonNull;
|
||||
import io.reactivex.rxjava3.core.Observer;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||
import io.reactivex.rxjava3.subjects.BehaviorSubject;
|
||||
|
||||
/**
|
||||
* MainActivity和MainService 的 Presenter
|
||||
* MainActivity 的 Presenter
|
||||
*
|
||||
* @author jgy
|
||||
*/
|
||||
@@ -50,14 +48,14 @@ public class MainAPresenter implements MainAContact.Presenter {
|
||||
|
||||
private final static int NOTFOUND = -300;
|
||||
|
||||
private LifecycleProvider<ActivityEvent> provider;
|
||||
private BehaviorSubject<ActivityEvent> lifecycle;
|
||||
|
||||
public void setProvider(LifecycleProvider<ActivityEvent> provider) {
|
||||
this.provider = provider;
|
||||
public void setLifecycle(BehaviorSubject<ActivityEvent> lifecycle) {
|
||||
this.lifecycle = lifecycle;
|
||||
}
|
||||
|
||||
public LifecycleProvider<ActivityEvent> getProvider() {
|
||||
return provider;
|
||||
public BehaviorSubject<ActivityEvent> getLifecycle() {
|
||||
return lifecycle;
|
||||
}
|
||||
|
||||
public MainAPresenter(Context context) {
|
||||
@@ -83,20 +81,20 @@ public class MainAPresenter implements MainAContact.Presenter {
|
||||
|
||||
@Override
|
||||
public void getQRImage(String mac) {
|
||||
Log.e(TAG, "getQRImage: " + mac);
|
||||
JsonObject jsonObject = new JsonObject();
|
||||
jsonObject.addProperty("sn", Utils.getSerial());
|
||||
jsonObject.addProperty("mac", mac);
|
||||
String json = jsonObject.toString();
|
||||
String content = mac;
|
||||
try {
|
||||
content = CXAESUtil.encrypt(getAeskey(), json);
|
||||
Log.e(TAG, "getQRImage: " + content);
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "getQRImage: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
mView.setQRImage(JGYUtils.getInstance().createQRImage(content, 300, 300));
|
||||
// Log.e(TAG, "getQRImage: " + mac);
|
||||
// JsonObject jsonObject = new JsonObject();
|
||||
// jsonObject.addProperty("sn", Utils.getSerial());
|
||||
// jsonObject.addProperty("mac", mac);
|
||||
// String json = jsonObject.toString();
|
||||
// String content = mac;
|
||||
// try {
|
||||
// content = CXAESUtil.encrypt(getAeskey(), json);
|
||||
// Log.e(TAG, "getQRImage: " + content);
|
||||
// } catch (Exception e) {
|
||||
// Log.e(TAG, "getQRImage: " + e.getMessage());
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// mView.setQRImage(JGYUtils.getInstance().createQRImage(content, 300, 300));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -107,7 +105,7 @@ public class MainAPresenter implements MainAContact.Presenter {
|
||||
setState();
|
||||
NetInterfaceManager.getInstance()
|
||||
.getStudesInfoObservable()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse<StudentsInfo>>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -228,42 +226,34 @@ public class MainAPresenter implements MainAContact.Presenter {
|
||||
}
|
||||
|
||||
private long lastgetLockedTime;
|
||||
|
||||
private long one_minute = 1000 * 60;
|
||||
|
||||
@Override
|
||||
public void getLockedState() {
|
||||
MMKV mmkv = MMKV.defaultMMKV();
|
||||
lastgetLockedTime = mmkv.decodeLong(MainAPresenter.GET_SETTING_FINISH_TIME);
|
||||
Log.e(TAG, "getLockedState: " + lastgetLockedTime);
|
||||
if (System.currentTimeMillis() - lastgetLockedTime < one_minute) {
|
||||
Log.e(TAG, "getLockedState: lastgetLockedTime = " + lastgetLockedTime);
|
||||
return;
|
||||
}
|
||||
NetInterfaceManager.getInstance()
|
||||
.getLockedState(lifecycle, new NetInterfaceManager.ObserverCallback() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
NetInterfaceManager.getInstance().getLockedState(provider, new NetInterfaceManager.ObserverCallback() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
}
|
||||
|
||||
}
|
||||
@Override
|
||||
public void onNext(BaseResponse response) {
|
||||
|
||||
@Override
|
||||
public void onNext(BaseResponse response) {
|
||||
}
|
||||
|
||||
}
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
Log.e(TAG, "onComplete: ");
|
||||
int locked = Settings.System.getInt(mContext.getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, JGYActions.FRAME_CODE_LOCKED);
|
||||
Log.e(TAG + ":" + "getLockedState", "locked: " + locked);
|
||||
mView.setLockedState(locked == JGYActions.FRAME_CODE_LOCKED);
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public void onComplete() {
|
||||
Log.e(TAG, "onComplete: ");
|
||||
int locked = Settings.System.getInt(mContext.getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, JGYActions.FRAME_CODE_LOCKED);
|
||||
Log.e(TAG + ":" + "getLockedState", "locked: " + locked);
|
||||
mView.setLockedState(locked == JGYActions.FRAME_CODE_LOCKED);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -278,7 +268,7 @@ public class MainAPresenter implements MainAContact.Presenter {
|
||||
JGYUtils.getInstance().checkAppPlatform())
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
|
||||
@@ -24,9 +24,7 @@ import com.aoleyun.sn.BuildConfig;
|
||||
import com.aoleyun.sn.R;
|
||||
import com.aoleyun.sn.activity.requestlog.RequestLogActivity;
|
||||
import com.aoleyun.sn.base.BaseActivity;
|
||||
import com.aoleyun.sn.rlog.LogDBManager;
|
||||
import com.aoleyun.sn.service.main.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;
|
||||
@@ -42,13 +40,13 @@ import java.util.concurrent.TimeUnit;
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import butterknife.OnClick;
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.ObservableEmitter;
|
||||
import io.reactivex.ObservableOnSubscribe;
|
||||
import io.reactivex.Observer;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.annotations.NonNull;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.rxjava3.annotations.NonNull;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import io.reactivex.rxjava3.core.ObservableEmitter;
|
||||
import io.reactivex.rxjava3.core.ObservableOnSubscribe;
|
||||
import io.reactivex.rxjava3.core.Observer;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
|
||||
public class MainActivity extends BaseActivity implements MainAContact.MainView, NetworkUtils.OnNetworkStatusChangedListener {
|
||||
private static final String TAG = MainActivity.class.getSimpleName();
|
||||
@@ -155,7 +153,7 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
|
||||
ButterKnife.bind(this);
|
||||
mPresenter = new MainAPresenter(this);
|
||||
mPresenter.attachView(this);
|
||||
mPresenter.setProvider(this);
|
||||
mPresenter.setLifecycle(lifecycleSubject);
|
||||
JGYUtils.startServices(MainActivity.this);
|
||||
Log.e(TAG, "initView: " + "start request");
|
||||
NetworkUtils.registerNetworkStatusChangedListener(this);
|
||||
@@ -270,7 +268,7 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
|
||||
@Override
|
||||
public void setHead(String url) {
|
||||
if (TextUtils.isEmpty(url)) {
|
||||
head.setImageDrawable(getDrawable(R.drawable.head));
|
||||
Glide.with(head).load(getDrawable(R.drawable.head)).into(head);
|
||||
} else {
|
||||
Glide.with(head).load(url).into(head);
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ public class RequestLogActivity extends BaseActivity implements RequestLogContac
|
||||
ButterKnife.bind(this);
|
||||
mPresenter = new RequestLogPresenter(this);
|
||||
mPresenter.attachView(this);
|
||||
mPresenter.setProvider(this);
|
||||
mPresenter.setLifecycle(lifecycleSubject);
|
||||
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
|
||||
mAdapter = new RequestLogAdapter();
|
||||
mRecyclerView.setAdapter(mAdapter);
|
||||
|
||||
@@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.aoleyun.sn.R;
|
||||
import com.aoleyun.sn.rlog.LogBean;
|
||||
import com.aoleyun.sn.utils.TimeUtils;
|
||||
import com.aoleyun.sn.utils.Utils;
|
||||
|
||||
import java.util.List;
|
||||
@@ -37,7 +38,7 @@ public class RequestLogAdapter extends RecyclerView.Adapter<RequestLogAdapter.Ho
|
||||
LogBean logBean = mLogBeans.get(position);
|
||||
if (logBean == null) return;
|
||||
holder.tv_code.setText(logBean.getCode().toString());
|
||||
holder.tv_timestamp.setText(Utils.transferLongToDate(logBean.getTimestamp()));
|
||||
holder.tv_timestamp.setText(TimeUtils.transferLongToDate(logBean.getTimestamp()));
|
||||
holder.tv_event.setText(logBean.getEvent());
|
||||
holder.tv_operate.setText(logBean.getOperate());
|
||||
holder.tv_content.setText(logBean.getContent());
|
||||
|
||||
@@ -5,25 +5,27 @@ import android.content.Context;
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.aoleyun.sn.rlog.LogDBManager;
|
||||
import com.trello.rxlifecycle2.LifecycleProvider;
|
||||
import com.trello.rxlifecycle2.android.ActivityEvent;
|
||||
import com.trello.rxlifecycle4.android.ActivityEvent;
|
||||
|
||||
import io.reactivex.rxjava3.subjects.BehaviorSubject;
|
||||
|
||||
public class RequestLogPresenter implements RequestLogContact.Presenter {
|
||||
private static final String TAG = RequestLogPresenter.class.getSimpleName();
|
||||
private RequestLogContact.MainView mView;
|
||||
private Context mContext;
|
||||
|
||||
private BehaviorSubject<ActivityEvent> lifecycle;
|
||||
|
||||
private LifecycleProvider<ActivityEvent> provider;
|
||||
|
||||
public void setProvider(LifecycleProvider<ActivityEvent> provider) {
|
||||
this.provider = provider;
|
||||
public void setLifecycle(BehaviorSubject<ActivityEvent> lifecycle) {
|
||||
this.lifecycle = lifecycle;
|
||||
}
|
||||
|
||||
public LifecycleProvider<ActivityEvent> getProvider() {
|
||||
return provider;
|
||||
public BehaviorSubject<ActivityEvent> getLifecycle() {
|
||||
return lifecycle;
|
||||
}
|
||||
|
||||
|
||||
public RequestLogPresenter(Context context) {
|
||||
this.mContext = context;
|
||||
}
|
||||
|
||||
@@ -2,13 +2,28 @@ package com.aoleyun.sn.base;
|
||||
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.CallSuper;
|
||||
import androidx.annotation.CheckResult;
|
||||
import androidx.annotation.ContentView;
|
||||
import androidx.annotation.LayoutRes;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import com.aoleyun.sn.R;
|
||||
import com.trello.rxlifecycle2.components.support.RxAppCompatActivity;
|
||||
import com.trello.rxlifecycle4.LifecycleProvider;
|
||||
import com.trello.rxlifecycle4.LifecycleTransformer;
|
||||
import com.trello.rxlifecycle4.RxLifecycle;
|
||||
import com.trello.rxlifecycle4.android.ActivityEvent;
|
||||
import com.trello.rxlifecycle4.android.RxLifecycleAndroid;
|
||||
import com.zackratos.ultimatebarx.ultimatebarx.java.UltimateBarX;
|
||||
|
||||
public abstract class BaseActivity extends RxAppCompatActivity {
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import io.reactivex.rxjava3.subjects.BehaviorSubject;
|
||||
|
||||
public abstract class BaseActivity extends AppCompatActivity implements LifecycleProvider<ActivityEvent> {
|
||||
public final BehaviorSubject<ActivityEvent> lifecycleSubject = BehaviorSubject.create();
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
@@ -32,11 +47,6 @@ public abstract class BaseActivity extends RxAppCompatActivity {
|
||||
.apply();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置布局
|
||||
*/
|
||||
@@ -52,4 +62,70 @@ public abstract class BaseActivity extends RxAppCompatActivity {
|
||||
* 初始化数据
|
||||
*/
|
||||
public abstract void initData();
|
||||
|
||||
|
||||
public BaseActivity() {
|
||||
super();
|
||||
}
|
||||
|
||||
@ContentView
|
||||
public BaseActivity(@LayoutRes int contentLayoutId) {
|
||||
super(contentLayoutId);
|
||||
}
|
||||
|
||||
@Override
|
||||
@NonNull
|
||||
@CheckResult
|
||||
public final Observable<ActivityEvent> lifecycle() {
|
||||
return lifecycleSubject.hide();
|
||||
}
|
||||
|
||||
@Override
|
||||
@NonNull
|
||||
@CheckResult
|
||||
public final <T> LifecycleTransformer<T> bindUntilEvent(@NonNull ActivityEvent event) {
|
||||
return RxLifecycle.bindUntilEvent(lifecycleSubject, event);
|
||||
}
|
||||
|
||||
@Override
|
||||
@NonNull
|
||||
@CheckResult
|
||||
public final <T> LifecycleTransformer<T> bindToLifecycle() {
|
||||
return RxLifecycleAndroid.bindActivity(lifecycleSubject);
|
||||
}
|
||||
|
||||
@Override
|
||||
@CallSuper
|
||||
protected void onStart() {
|
||||
super.onStart();
|
||||
lifecycleSubject.onNext(ActivityEvent.START);
|
||||
}
|
||||
|
||||
@Override
|
||||
@CallSuper
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
lifecycleSubject.onNext(ActivityEvent.RESUME);
|
||||
}
|
||||
|
||||
@Override
|
||||
@CallSuper
|
||||
protected void onPause() {
|
||||
lifecycleSubject.onNext(ActivityEvent.PAUSE);
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
@Override
|
||||
@CallSuper
|
||||
protected void onStop() {
|
||||
lifecycleSubject.onNext(ActivityEvent.STOP);
|
||||
super.onStop();
|
||||
}
|
||||
|
||||
@Override
|
||||
@CallSuper
|
||||
protected void onDestroy() {
|
||||
lifecycleSubject.onNext(ActivityEvent.DESTROY);
|
||||
super.onDestroy();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,17 +11,15 @@ import androidx.multidex.MultiDexApplication;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.rlog.LogDBManager;
|
||||
import com.aoleyun.sn.utils.WiFiUtils;
|
||||
import com.arialyy.aria.core.Aria;
|
||||
import com.arialyy.aria.core.download.DownloadEntity;
|
||||
import com.aoleyun.sn.BuildConfig;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.manager.AmapManager;
|
||||
import com.aoleyun.sn.manager.ConnectManager;
|
||||
import com.aoleyun.sn.manager.FileManager;
|
||||
import com.aoleyun.sn.network.NetInterfaceManager;
|
||||
import com.aoleyun.sn.network.HTTPInterface;
|
||||
import com.aoleyun.sn.network.NetInterfaceManager;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
import com.aoleyun.sn.rlog.LogDBManager;
|
||||
import com.aoleyun.sn.statistics.AppInformation;
|
||||
import com.aoleyun.sn.statistics.StatisticsInfo;
|
||||
import com.aoleyun.sn.utils.ApkUtils;
|
||||
@@ -29,7 +27,10 @@ import com.aoleyun.sn.utils.JGYUtils;
|
||||
import com.aoleyun.sn.utils.SystemUtils;
|
||||
import com.aoleyun.sn.utils.ToastUtil;
|
||||
import com.aoleyun.sn.utils.Utils;
|
||||
import com.aoleyun.sn.utils.WiFiUtils;
|
||||
import com.aoleyun.sn.utils.XAPKUtils;
|
||||
import com.arialyy.aria.core.Aria;
|
||||
import com.arialyy.aria.core.download.DownloadEntity;
|
||||
import com.tencent.android.tpush.XGIOperateCallback;
|
||||
import com.tencent.android.tpush.XGPushConfig;
|
||||
import com.tencent.android.tpush.XGPushManager;
|
||||
@@ -42,13 +43,13 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.ObservableEmitter;
|
||||
import io.reactivex.ObservableOnSubscribe;
|
||||
import io.reactivex.Observer;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import io.reactivex.rxjava3.core.ObservableEmitter;
|
||||
import io.reactivex.rxjava3.core.ObservableOnSubscribe;
|
||||
import io.reactivex.rxjava3.core.Observer;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||
import okhttp3.Call;
|
||||
import okhttp3.Callback;
|
||||
import okhttp3.OkHttpClient;
|
||||
@@ -97,6 +98,7 @@ public class BaseApplication extends MultiDexApplication {
|
||||
XAPKUtils.init(this);
|
||||
LogDBManager.init(this);
|
||||
FileManager.init(this);
|
||||
ConnectManager.init(this);
|
||||
AmapManager.init(this);
|
||||
AmapManager.getInstance().initAmap();
|
||||
|
||||
|
||||
@@ -18,19 +18,19 @@ import android.util.Log;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.aoleyun.sn.R;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.bean.RemoteDebug;
|
||||
import com.aoleyun.sn.R;
|
||||
import com.aoleyun.sn.comm.CommonConfig;
|
||||
import com.aoleyun.sn.comm.JGYActions;
|
||||
import com.aoleyun.sn.utils.CacheUtils;
|
||||
import com.aoleyun.sn.utils.JGYUtils;
|
||||
import com.aoleyun.sn.network.NetInterfaceManager;
|
||||
import com.aoleyun.sn.network.HTTPInterface;
|
||||
import com.aoleyun.sn.network.NetInterfaceManager;
|
||||
import com.aoleyun.sn.service.main.MainService;
|
||||
import com.aoleyun.sn.utils.ApkUtils;
|
||||
import com.aoleyun.sn.utils.CacheUtils;
|
||||
import com.aoleyun.sn.utils.CmdUtil;
|
||||
import com.aoleyun.sn.utils.ForegroundAppUtil;
|
||||
import com.aoleyun.sn.utils.JGYUtils;
|
||||
import com.aoleyun.sn.utils.MySQLData;
|
||||
import com.aoleyun.sn.utils.SPUtils;
|
||||
import com.aoleyun.sn.utils.SaveListUtils;
|
||||
@@ -46,13 +46,13 @@ import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.ObservableEmitter;
|
||||
import io.reactivex.ObservableOnSubscribe;
|
||||
import io.reactivex.Observer;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import io.reactivex.rxjava3.core.ObservableEmitter;
|
||||
import io.reactivex.rxjava3.core.ObservableOnSubscribe;
|
||||
import io.reactivex.rxjava3.core.Observer;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||
import okhttp3.MediaType;
|
||||
import okhttp3.MultipartBody;
|
||||
import okhttp3.RequestBody;
|
||||
@@ -718,99 +718,6 @@ public class MyJPushReceiver extends BroadcastReceiver {
|
||||
}
|
||||
}
|
||||
|
||||
public void screenshot(String s) {
|
||||
JSONObject jSONObject = JSON.parseObject(s);
|
||||
long createTime = jSONObject.getLong("createTime");
|
||||
if (createTime != 0) {
|
||||
Log.e("createTime", String.valueOf(createTime));
|
||||
doscreenshot(createTime);
|
||||
}
|
||||
}
|
||||
|
||||
public void doscreenshot(final long time) {
|
||||
Observable.create(new ObservableOnSubscribe<Integer>() {
|
||||
@Override
|
||||
public void subscribe(ObservableEmitter<Integer> e) throws Exception {
|
||||
String filepath = mContext.getExternalFilesDir("db").getAbsolutePath();
|
||||
int n = CmdUtil.execute("screencap -p " + filepath + File.separator + time + ".db").code;
|
||||
e.onNext(n);
|
||||
}
|
||||
}).subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new Observer<Integer>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(Integer integer) {
|
||||
if (integer == 0) {
|
||||
uplaodImage(time);
|
||||
} else {
|
||||
Log.e("doss", "失败");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
Log.e("doss", "Throwable=" + e.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void uplaodImage(long time) {
|
||||
String filepath = mContext.getExternalFilesDir("db").getAbsolutePath();
|
||||
// String filepath = mContext.getFileStreamPath("screenshot").getAbsolutePath();
|
||||
//放在app内部data下面
|
||||
File file = new File(filepath + File.separator + time + ".db");
|
||||
//不要直接使用常用图片格式
|
||||
if (!file.exists()) {
|
||||
Log.e("uplaodImage", "File does not exists");
|
||||
return;
|
||||
}
|
||||
//设置图片格式
|
||||
// RequestBody requestFile = RequestBody.create(MediaType.parse("image/jpg"), file);
|
||||
//File转RequestBody
|
||||
MediaType mediaType = MediaType.Companion.parse("image/png");
|
||||
RequestBody fileBody = RequestBody.Companion.create(file, mediaType);
|
||||
//设置一个file文件
|
||||
MultipartBody.Part body = MultipartBody.Part.createFormData("file", file.getName(), fileBody);
|
||||
Map<String, String> params = new HashMap<>();
|
||||
params.put("sn", Utils.getSerial());
|
||||
params.put("createtime", String.valueOf(time));
|
||||
NetInterfaceManager.getInstance().getScreenshotApi()
|
||||
.sendScreenshot(params, body)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
Log.e("uplaodImage", "onSubscribe: ");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(BaseResponse baseResponse) {
|
||||
Log.e("uplaodImage", "onNext: " + baseResponse.msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
Log.e("uplaodImage", "onError: " + e.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
Log.e("uplaodImage", "onComplete: ");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void getTimeControl(Context context, String extras) {
|
||||
HTTPInterface.getSnTimeControl(context);
|
||||
}
|
||||
|
||||
81
app/src/main/java/com/aoleyun/sn/manager/ConnectManager.java
Normal file
81
app/src/main/java/com/aoleyun/sn/manager/ConnectManager.java
Normal file
@@ -0,0 +1,81 @@
|
||||
package com.aoleyun.sn.manager;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.util.Log;
|
||||
|
||||
import com.aoleyun.sn.utils.TimeUtils;
|
||||
import com.tencent.mmkv.MMKV;
|
||||
|
||||
public class ConnectManager {
|
||||
private static final String TAG = ConnectManager.class.getSimpleName();
|
||||
|
||||
/*重启后连接成功的时间*/
|
||||
public static final String REBOOT_LAST_ONNECT_TIME = "reboot_last_connect_time";
|
||||
/*WiFi连接后连接成功的时间*/
|
||||
public static final String WIFI_LAST_CONNECT_TIME = "WiFi_last_connect_time";
|
||||
/*打开设备信息连接成功的时间*/
|
||||
public static final String OPENINFO_LAST_ONNECT_TIME = "opneinfo_last_connect_time";
|
||||
|
||||
|
||||
@SuppressLint("StaticFieldLeak")
|
||||
private static ConnectManager sInstance;
|
||||
private Context mContext;
|
||||
private MMKV mMMKV = MMKV.defaultMMKV();
|
||||
|
||||
private ConnectManager(Context context) {
|
||||
if (context == null) {
|
||||
throw new RuntimeException("Context is NULL");
|
||||
}
|
||||
this.mContext = context;
|
||||
|
||||
}
|
||||
|
||||
public static void init(Context context) {
|
||||
if (sInstance == null) {
|
||||
Log.e(TAG, "init: ");
|
||||
sInstance = new ConnectManager(context);
|
||||
}
|
||||
}
|
||||
|
||||
public static ConnectManager getInstance() {
|
||||
if (sInstance == null) {
|
||||
throw new IllegalStateException("You must be init ConnectManager first");
|
||||
}
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return 今天重启后是否连接
|
||||
*/
|
||||
public boolean isRebootFistConnect() {
|
||||
long time = mMMKV.decodeLong(REBOOT_LAST_ONNECT_TIME, 0);
|
||||
return !TimeUtils.isTodayTime(time);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return 今天WiFi连接是否有连接
|
||||
*/
|
||||
public boolean isWiFiFistConnect() {
|
||||
long time = mMMKV.decodeLong(WIFI_LAST_CONNECT_TIME, 0);
|
||||
return !TimeUtils.isTodayTime(time);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return 今天打开设备信息后是否连接
|
||||
*/
|
||||
public boolean isOpenInfoFistConnect() {
|
||||
long time = mMMKV.decodeLong(OPENINFO_LAST_ONNECT_TIME, 0);
|
||||
return !TimeUtils.isTodayTime(time);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param WiFiAlias
|
||||
* @return 今天切换WiFi后是否连接
|
||||
*/
|
||||
public boolean isWiFiCutoverFistConnect(String WiFiAlias) {
|
||||
long time = mMMKV.decodeLong(WiFiAlias, 0);
|
||||
return !TimeUtils.isTodayTime(time);
|
||||
}
|
||||
}
|
||||
@@ -12,42 +12,40 @@ import android.provider.Settings;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.aoleyun.sn.base.BaseApplication;
|
||||
import com.aoleyun.sn.bean.AppListInfo;
|
||||
import com.aoleyun.sn.bean.Appground;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.bean.BrowserBookmarks;
|
||||
import com.aoleyun.sn.bean.BrowserData;
|
||||
import com.aoleyun.sn.bean.ForceDownloadBean;
|
||||
import com.aoleyun.sn.bean.ForceDownloadData;
|
||||
import com.aoleyun.sn.bean.NetAndLaunchBean;
|
||||
import com.aoleyun.sn.bean.PoweroffBean;
|
||||
import com.aoleyun.sn.bean.SnRunLog;
|
||||
import com.aoleyun.sn.bean.WiFiAlias;
|
||||
import com.aoleyun.sn.comm.JGYActions;
|
||||
import com.aoleyun.sn.network.api.newapi.GetPublicIPApi;
|
||||
import com.aoleyun.sn.network.api.newapi.SnTimeControlApi;
|
||||
import com.aoleyun.sn.network.api.newapi.TopAppControlApi;
|
||||
import com.aoleyun.sn.service.LogcatService;
|
||||
import com.aoleyun.sn.service.main.MainService;
|
||||
import com.aoleyun.sn.utils.ApkUtils;
|
||||
import com.aoleyun.sn.utils.CacheUtils;
|
||||
import com.aoleyun.sn.utils.ForegroundAppUtil;
|
||||
import com.aoleyun.sn.utils.JGYUtils;
|
||||
import com.aoleyun.sn.utils.SPUtils;
|
||||
import com.aoleyun.sn.utils.TimeUtils;
|
||||
import com.aoleyun.sn.utils.URLUtils;
|
||||
import com.aoleyun.sn.utils.Utils;
|
||||
import com.aoleyun.sn.utils.WiFiUtils;
|
||||
import com.arialyy.aria.core.Aria;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParser;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.aoleyun.sn.base.BaseApplication;
|
||||
import com.aoleyun.sn.bean.AppListInfo;
|
||||
import com.aoleyun.sn.bean.BrowserBookmarks;
|
||||
import com.aoleyun.sn.bean.BrowserData;
|
||||
import com.aoleyun.sn.bean.ForceDownloadBean;
|
||||
import com.aoleyun.sn.bean.ForceDownloadData;
|
||||
import com.aoleyun.sn.utils.CacheUtils;
|
||||
import com.aoleyun.sn.utils.JGYUtils;
|
||||
import com.aoleyun.sn.utils.URLUtils;
|
||||
import com.aoleyun.sn.bean.Appground;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.bean.NetAndLaunchBean;
|
||||
import com.aoleyun.sn.network.api.newapi.SnTimeControlApi;
|
||||
import com.aoleyun.sn.network.api.newapi.TopAppControlApi;
|
||||
import com.aoleyun.sn.network.api.newapi.UpdateDeviceInfoApi;
|
||||
import com.aoleyun.sn.service.main.MainService;
|
||||
import com.aoleyun.sn.utils.ApkUtils;
|
||||
import com.aoleyun.sn.utils.ForegroundAppUtil;
|
||||
import com.aoleyun.sn.utils.SPUtils;
|
||||
import com.aoleyun.sn.utils.TimeUtils;
|
||||
import com.aoleyun.sn.utils.Utils;
|
||||
import com.tencent.android.tpush.XGIOperateCallback;
|
||||
import com.tencent.android.tpush.XGPushManager;
|
||||
import com.tencent.mmkv.MMKV;
|
||||
@@ -59,14 +57,14 @@ import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import io.reactivex.Observer;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.annotations.NonNull;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.rxjava3.annotations.NonNull;
|
||||
import io.reactivex.rxjava3.core.Observer;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||
import okhttp3.ResponseBody;
|
||||
import retrofit2.Retrofit;
|
||||
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
|
||||
import retrofit2.adapter.rxjava3.RxJava3CallAdapterFactory;
|
||||
import retrofit2.converter.gson.GsonConverterFactory;
|
||||
|
||||
//import static com.aoleyun.sn.jpush.TagAliasOperatorHelper.ACTION_SET;
|
||||
@@ -837,10 +835,10 @@ public class HTTPInterface {
|
||||
.client(NetInterfaceManager.getInstance().getOkHttpClient())
|
||||
.baseUrl(UrlAddress.SHOUHU_CITYJSON)
|
||||
.addConverterFactory(GsonConverterFactory.create())
|
||||
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
|
||||
.addCallAdapterFactory(RxJava3CallAdapterFactory.create())
|
||||
.build();
|
||||
GetPublicIPApi getPublicIPApi = retrofit.create(GetPublicIPApi.class);
|
||||
getPublicIPApi.getJpushTags()
|
||||
retrofit.create(GetPublicIPApi.class)
|
||||
.getPublicIP()
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new Observer<ResponseBody>() {
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.aoleyun.sn.network;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.provider.Settings;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
@@ -72,25 +73,34 @@ import com.aoleyun.sn.utils.Utils;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParser;
|
||||
import com.trello.rxlifecycle2.LifecycleProvider;
|
||||
import com.trello.rxlifecycle2.android.ActivityEvent;
|
||||
import com.tencent.android.tpush.XGIOperateCallback;
|
||||
import com.tencent.android.tpush.XGPushManager;
|
||||
import com.tencent.mmkv.MMKV;
|
||||
import com.trello.rxlifecycle4.LifecycleProvider;
|
||||
import com.trello.rxlifecycle4.RxLifecycle;
|
||||
import com.trello.rxlifecycle4.android.ActivityEvent;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.Observer;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.annotations.NonNull;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.rxjava3.annotations.NonNull;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import io.reactivex.rxjava3.core.ObservableEmitter;
|
||||
import io.reactivex.rxjava3.core.ObservableOnSubscribe;
|
||||
import io.reactivex.rxjava3.core.Observer;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||
import io.reactivex.rxjava3.subjects.BehaviorSubject;
|
||||
import okhttp3.Cache;
|
||||
import okhttp3.Interceptor;
|
||||
import okhttp3.MediaType;
|
||||
@@ -102,7 +112,7 @@ import okhttp3.RequestBody;
|
||||
import okhttp3.Response;
|
||||
import okhttp3.ResponseBody;
|
||||
import retrofit2.Retrofit;
|
||||
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
|
||||
import retrofit2.adapter.rxjava3.RxJava3CallAdapterFactory;
|
||||
import retrofit2.converter.gson.GsonConverterFactory;
|
||||
|
||||
public class NetInterfaceManager {
|
||||
@@ -113,8 +123,15 @@ public class NetInterfaceManager {
|
||||
private Context mContext;
|
||||
private Retrofit mRetrofit;
|
||||
private OkHttpClient okHttpClient;
|
||||
private MMKV mMMKV = MMKV.defaultMMKV();
|
||||
private final ConcurrentHashMap<String, Long> requestIdsMap = new ConcurrentHashMap<>();
|
||||
|
||||
|
||||
private static final long ONE_MINUTE_TIME = 60 * 1000;
|
||||
private static final long TEN_MINUTE_TIME = ONE_MINUTE_TIME * 10;
|
||||
private static final long HALF_HOUR_TIME = TEN_MINUTE_TIME * 3;
|
||||
private static final long ONE_HOUR_TIME = HALF_HOUR_TIME * 2;
|
||||
|
||||
//超时时间
|
||||
private static int timeOut = 5;
|
||||
// 缓存文件最大限制大小20M
|
||||
@@ -126,58 +143,6 @@ public class NetInterfaceManager {
|
||||
private NetInterfaceManager(Context context) {
|
||||
this.mContext = context;
|
||||
if (okHttpClient == null) {
|
||||
Interceptor myHttpInterceptor = new Interceptor() {
|
||||
@NotNull
|
||||
@Override
|
||||
public Response intercept(@NotNull Chain chain) throws IOException {
|
||||
Request request = chain.request();
|
||||
String requestKey = MD5Util.getUpperMD5Str(request.method() + request.url().toString());
|
||||
Response response = chain.proceed(request); //准备返回Response
|
||||
// try {
|
||||
// response.close();
|
||||
// response = chain.proceed(request);
|
||||
// } catch (Exception e) {
|
||||
// //异常的返回也是完成Http请求。在这里移除请求登记
|
||||
// if (!TextUtils.isEmpty(e.toString()) && e.toString().contains(NetInterfaceManager.CUSTOM_REPEAT_REQ_PROTOCOL)) {
|
||||
// Log.e("REPEAT-REQUEST", "intercept: " + e.getMessage());
|
||||
// Log.e("REPEAT-REQUEST", "移除请求1:" + requestKey + " --- " + Thread.currentThread().getName() + " URL = " + request.url());
|
||||
// } else {
|
||||
// requestIdsMap.remove(requestKey);
|
||||
// }
|
||||
// throw e;
|
||||
// }
|
||||
synchronized (requestIdsMap) {
|
||||
requestIdsMap.remove(requestKey); //在这里移除正常的请求登记
|
||||
Log.e("REPEAT-REQUEST", "移除请求2:" + requestKey + " --- " + Thread.currentThread().getName() + " URL = " + request.url());
|
||||
}
|
||||
return response;
|
||||
}
|
||||
};
|
||||
Interceptor mRequestInterceptor = new Interceptor() {
|
||||
@NotNull
|
||||
@Override
|
||||
public Response intercept(@NotNull Chain chain) throws IOException {
|
||||
Request request = chain.request();
|
||||
//拦截处理重复的HTTP 请求,类似 防止快速点击按钮去重 可以不去处理了,全局统一处理
|
||||
String requestKey = MD5Util.getUpperMD5Str(request.method() + request.url().toString());
|
||||
synchronized (requestIdsMap) {
|
||||
if (requestIdsMap.get(requestKey) == null) {
|
||||
// Log.e("REPEAT-REQUEST", "intercept: " + requestIdsMap);
|
||||
requestIdsMap.put(requestKey, System.currentTimeMillis());
|
||||
Log.e("REPEAT-REQUEST", "注册请求:" + requestKey + " --- " + Thread.currentThread().getName() + " URL = " + request.url());
|
||||
} else {
|
||||
//如果是重复的请求,抛出一个自定义的错误,这个错误大家根据自己的业务定义吧
|
||||
Log.e("REPEAT-REQUEST", "重复请求:" + requestKey + " --- " + Thread.currentThread().getName() + " URL = " + request.url());
|
||||
return new Response.Builder()
|
||||
.protocol(Protocol.get(CUSTOM_REPEAT_REQ_PROTOCOL))
|
||||
.request(request) //multi thread
|
||||
.build();
|
||||
}
|
||||
}
|
||||
Response response = chain.proceed(request);
|
||||
return response;
|
||||
}
|
||||
};
|
||||
Interceptor interceptor = new Interceptor() {
|
||||
@NotNull
|
||||
@Override
|
||||
@@ -217,8 +182,6 @@ public class NetInterfaceManager {
|
||||
builder.readTimeout(timeOut, TimeUnit.SECONDS);// 设置读取数据超时时间
|
||||
builder.retryOnConnectionFailure(true);// 设置进行连接失败重试
|
||||
builder.addInterceptor(interceptor);
|
||||
// builder.addInterceptor(myHttpInterceptor);
|
||||
// builder.addNetworkInterceptor(mRequestInterceptor);
|
||||
|
||||
// 设置缓存文件路径
|
||||
String cacheDirectory = mContext.getExternalCacheDir().getAbsolutePath() + "/OkHttpCache";
|
||||
@@ -232,7 +195,7 @@ public class NetInterfaceManager {
|
||||
.client(okHttpClient)
|
||||
.baseUrl(BuildConfig.ROOT_URL)
|
||||
.addConverterFactory(GsonConverterFactory.create())
|
||||
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
|
||||
.addCallAdapterFactory(RxJava3CallAdapterFactory.create())
|
||||
.build();
|
||||
}
|
||||
}
|
||||
@@ -592,10 +555,17 @@ public class NetInterfaceManager {
|
||||
void onComplete();
|
||||
}
|
||||
|
||||
public void getLockedState(LifecycleProvider<ActivityEvent> provider, ObserverCallback callback) {
|
||||
private static final String GET_LOCKED_STATE_TIME = "getLockedState_key";
|
||||
|
||||
public void getLockedState(BehaviorSubject<ActivityEvent> provider, ObserverCallback callback) {
|
||||
long lastTime = mMMKV.decodeLong(GET_LOCKED_STATE_TIME, 0);
|
||||
if (System.currentTimeMillis() - ONE_MINUTE_TIME < lastTime) {
|
||||
callback.onComplete();
|
||||
return;
|
||||
}
|
||||
NetInterfaceManager.getInstance()
|
||||
.getDevicesLockedStateObservable()
|
||||
.compose(provider.bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(provider, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -605,6 +575,7 @@ public class NetInterfaceManager {
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull BaseResponse response) {
|
||||
mMMKV.encode(GET_LOCKED_STATE_TIME, System.currentTimeMillis());
|
||||
Log.e(TAG + ":" + "getLockedState", "onNext: " + response);
|
||||
if (response.code == OK) {
|
||||
JsonObject jsonObject = JsonParser.parseString(new Gson().toJson(response.data)).getAsJsonObject();
|
||||
@@ -646,9 +617,78 @@ public class NetInterfaceManager {
|
||||
});
|
||||
}
|
||||
|
||||
public void setPushTags(BehaviorSubject<ActivityEvent> provider, ObserverCallback callback) {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getJpushTagsObservable()
|
||||
.compose(RxLifecycle.bindUntilEvent(provider, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
Log.e(TAG + ":" + "setPushTags", "onSubscribe: ");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull BaseResponse response) {
|
||||
if (response.code == OK) {
|
||||
JsonObject jsonObject = JsonParser.parseString(new Gson().toJson(response.data)).getAsJsonObject();
|
||||
String batch = jsonObject.get("batch").getAsString();
|
||||
Log.e(TAG + ":" + "setPushTags", "onNext: " + batch);
|
||||
if (!TextUtils.isEmpty(batch)) {
|
||||
Set set = new HashSet();
|
||||
set.add(batch);
|
||||
JGYUtils.getInstance().getAppPlatform(new JGYUtils.GetAppPlatformCallback() {
|
||||
@Override
|
||||
public void AppPlatform(int platform) {
|
||||
if (platform == JGYUtils.MTKPlatform) {
|
||||
set.add(JGYUtils.MTKTag);
|
||||
} else if (platform == JGYUtils.ZhanruiPlatform) {
|
||||
set.add(JGYUtils.ZhanruiTag);
|
||||
}
|
||||
}
|
||||
});
|
||||
Set<String> tagsSet = new HashSet<>(set);
|
||||
XGPushManager.clearAndAppendTags(mContext, "clearAndAppendTags :" + System.currentTimeMillis(), tagsSet, new XGIOperateCallback() {
|
||||
@Override
|
||||
public void onSuccess(Object o, int i) {
|
||||
Log.e("setPushTags", "onSuccess: " + o);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFail(Object o, int i, String s) {
|
||||
Log.e("setPushTags", "onFail: " + o);
|
||||
}
|
||||
});
|
||||
// setTag(set);
|
||||
} else {
|
||||
Log.e(TAG + ":" + "setPushTags", "onNext: " + "batch empty");
|
||||
}
|
||||
} else {
|
||||
Log.e(TAG + ":" + "setPushTags", "onNext: " + response.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(@NonNull Throwable e) {
|
||||
Log.e(TAG + ":" + "setPushTags", "onError: " + e.getMessage());
|
||||
onComplete();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
Log.e(TAG + ":" + "setPushTags", "onComplete: ");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static final String UPDATE_DEVICEINFO_TIME = "updateDeviceInfo_key";
|
||||
|
||||
@SuppressLint("NewApi")
|
||||
public void updateDeviceInfo(ObserverCallback callback) {
|
||||
long lastTime = mMMKV.decodeLong(UPDATE_DEVICEINFO_TIME, 0);
|
||||
if (System.currentTimeMillis() - TEN_MINUTE_TIME < lastTime) {
|
||||
callback.onComplete();
|
||||
return;
|
||||
}
|
||||
String address = String.valueOf(SPUtils.get(mContext, "AmapAddress", "-"));
|
||||
if ("-".equals(address)) {
|
||||
address = (String) SPUtils.get(mContext, "AmapError", "-");
|
||||
@@ -677,6 +717,7 @@ public class NetInterfaceManager {
|
||||
|
||||
@Override
|
||||
public void onNext(BaseResponse baseResponse) {
|
||||
mMMKV.encode(UPDATE_DEVICEINFO_TIME, System.currentTimeMillis());
|
||||
callback.onNext(baseResponse);
|
||||
Log.e("updateDeviceInfo", "上传的结果" + baseResponse.toString());
|
||||
}
|
||||
@@ -772,4 +813,6 @@ public class NetInterfaceManager {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -2,14 +2,12 @@ package com.aoleyun.sn.network;
|
||||
|
||||
import com.aoleyun.sn.BuildConfig;
|
||||
|
||||
import rxhttp.wrapper.annotation.DefaultDomain;
|
||||
|
||||
/**
|
||||
* @author Administrator
|
||||
*/
|
||||
public class UrlAddress {
|
||||
/*根网址*/
|
||||
@DefaultDomain
|
||||
public static final String HTTP_TAG_HEAD_NEW = BuildConfig.ROOT_URL;
|
||||
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import okhttp3.ResponseBody;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import okhttp3.ResponseBody;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.aoleyun.sn.network.api;
|
||||
import com.aoleyun.sn.bean.ForceDownloadBean;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.aoleyun.sn.network.api;
|
||||
import com.aoleyun.sn.bean.NetAndLaunchBean;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import okhttp3.ResponseBody;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
|
||||
@@ -2,8 +2,7 @@ package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import okhttp3.ResponseBody;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
@@ -7,7 +7,7 @@ import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.bean.BrowserBookmarks;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.bean.BrowserData;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
@@ -6,7 +6,7 @@ import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.aoleyun.sn.network.api.newapi;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.aoleyun.sn.network.api.newapi;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.bean.DefaultApp;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.aoleyun.sn.network.api.newapi;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.aoleyun.sn.network.api.newapi;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
@@ -6,7 +6,7 @@ import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.aoleyun.sn.network.api.newapi;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import okhttp3.ResponseBody;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
|
||||
@@ -2,7 +2,7 @@ package com.aoleyun.sn.network.api.newapi;
|
||||
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import okhttp3.ResponseBody;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.aoleyun.sn.network.api.newapi;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.aoleyun.sn.network.api.newapi;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.aoleyun.sn.network.api.newapi;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import okhttp3.ResponseBody;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
|
||||
@@ -6,7 +6,7 @@ import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.aoleyun.sn.network.api.newapi;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import okhttp3.ResponseBody;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.Query;
|
||||
@@ -17,5 +17,5 @@ import retrofit2.http.Query;
|
||||
*/
|
||||
public interface GetPublicIPApi {
|
||||
@GET(UrlAddress.SHOUHU_CITYJSON)
|
||||
Observable<ResponseBody> getJpushTags();
|
||||
Observable<ResponseBody> getPublicIP();
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.bean.SnRunLog;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import okhttp3.MultipartBody;
|
||||
import retrofit2.http.Multipart;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
@@ -6,7 +6,7 @@ import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import okhttp3.MultipartBody;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
|
||||
@@ -7,7 +7,7 @@ import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.GET;
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.bean.LogoImg;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
@@ -4,7 +4,7 @@ package com.aoleyun.sn.network.api.newapi;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.aoleyun.sn.network.api.newapi;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.aoleyun.sn.network.api.newapi;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.aoleyun.sn.network.api.newapi;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.aoleyun.sn.network.api.newapi;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.aoleyun.sn.network.api.newapi;
|
||||
import com.aoleyun.sn.BuildConfig;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import okhttp3.MultipartBody;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.Multipart;
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.aoleyun.sn.network.api.newapi;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.bean.StudentsInfo;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.aoleyun.sn.network.api.newapi;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.aoleyun.sn.network.api.newapi;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
@@ -13,18 +13,19 @@ import com.aoleyun.sn.service.main.MainService;
|
||||
import com.aoleyun.sn.utils.BootManager;
|
||||
import com.aoleyun.sn.utils.JGYUtils;
|
||||
import com.aoleyun.sn.utils.SPUtils;
|
||||
import com.aoleyun.sn.utils.TimeUtils;
|
||||
import com.aoleyun.sn.utils.Utils;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.ObservableOnSubscribe;
|
||||
import io.reactivex.Observer;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import io.reactivex.rxjava3.core.ObservableOnSubscribe;
|
||||
import io.reactivex.rxjava3.core.Observer;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
|
||||
public class BootReceiver extends BroadcastReceiver {
|
||||
private static String TAG = BootReceiver.class.getSimpleName() + ":myappstore";
|
||||
public static final String BOOT_COMPLETED = "com.aoleyun.sn.intent.action.BOOT_COMPLETED";
|
||||
public static final String BOOT_COMPLETED = "aoleyun.intent.action.BOOT_COMPLETED";
|
||||
|
||||
static {
|
||||
getLockedState();
|
||||
@@ -43,7 +44,7 @@ public class BootReceiver extends BroadcastReceiver {
|
||||
public void onNext(Long aLong) {
|
||||
Log.e("getLockedState", "onNext: ");
|
||||
if (MainService.mPresenter != null) {
|
||||
MainService.mPresenter.getLockedState();
|
||||
// MainService.mPresenter.getLockedState();
|
||||
Log.e("getLockedState", "mPresenter: " + "getLockedState");
|
||||
} else {
|
||||
Log.e("getLockedState", "mPresenter is NULL");
|
||||
@@ -76,10 +77,10 @@ public class BootReceiver extends BroadcastReceiver {
|
||||
break;
|
||||
case Intent.ACTION_BOOT_COMPLETED:
|
||||
if ((int) SPUtils.get(context, CommonConfig.FIRST_STARTUP, 0) == 0) {
|
||||
LogDBManager.getInstance().creatRebootLog("首次启动", Utils.transferLongToDate(System.currentTimeMillis()));
|
||||
LogDBManager.getInstance().creatRebootLog("首次启动", TimeUtils.transferLongToDate(System.currentTimeMillis()));
|
||||
SPUtils.put(context, CommonConfig.FIRST_STARTUP, 1);
|
||||
} else {
|
||||
LogDBManager.getInstance().creatRebootLog("设备重启", Utils.transferLongToDate(System.currentTimeMillis()));
|
||||
LogDBManager.getInstance().creatRebootLog("设备重启", TimeUtils.transferLongToDate(System.currentTimeMillis()));
|
||||
}
|
||||
Intent intent1 = new Intent(context, CheckNetActivity.class);
|
||||
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
|
||||
@@ -21,11 +21,11 @@ import com.aoleyun.sn.utils.SaveListUtils;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.ObservableEmitter;
|
||||
import io.reactivex.Observer;
|
||||
import io.reactivex.annotations.NonNull;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.annotations.NonNull;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import io.reactivex.rxjava3.core.ObservableEmitter;
|
||||
import io.reactivex.rxjava3.core.Observer;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
|
||||
public class NewAppReceiver extends BroadcastReceiver {
|
||||
private static final String TAG = NewAppReceiver.class.getSimpleName();
|
||||
@@ -71,9 +71,7 @@ public class NewAppReceiver extends BroadcastReceiver {
|
||||
ApkUtils.addShortcut(context);
|
||||
ApkUtils.RemoveTask(context, packageName);
|
||||
}
|
||||
Intent bootIntent = new Intent(BootReceiver.BOOT_COMPLETED);
|
||||
bootIntent.setComponent(new ComponentName(PackageNames.APPSTORE, PackageNames.APP_STORE_BOOTRECEIVER));
|
||||
context.sendBroadcast(bootIntent);
|
||||
JGYUtils.getInstance().wakeUpAppstore();
|
||||
//启动教官壹
|
||||
}
|
||||
newAppListener.setNewAppListener(packageName);
|
||||
@@ -134,7 +132,7 @@ public class NewAppReceiver extends BroadcastReceiver {
|
||||
HTTPInterface.getAppLimit(mContext);
|
||||
// HTTPInterface.getAppinsideWeb(mContext, () -> Log.e(TAG, "onNext: setAPPinsideWebsite"));
|
||||
String oldDesktop = (String) SPUtils.get(mContext, "default_launcher", "");
|
||||
if (s.equals(oldDesktop)){
|
||||
if (s.equals(oldDesktop)) {
|
||||
ApkUtils.openPackage(mContext, s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.aoleyun.sn.rlog;
|
||||
|
||||
import com.aoleyun.sn.utils.TimeUtils;
|
||||
import com.aoleyun.sn.utils.Utils;
|
||||
|
||||
import java.io.Serializable;
|
||||
@@ -64,7 +65,7 @@ public class LogBean implements Serializable {
|
||||
|
||||
public String toLogString() {
|
||||
return "执行代码:" + code
|
||||
+ ",时间: " + Utils.transferLongToDate(timestamp)
|
||||
+ ",时间: " + TimeUtils.transferLongToDate(timestamp)
|
||||
+ ",事件: " + event
|
||||
+ ",操作: " + operate
|
||||
+ ",内容: " + content
|
||||
|
||||
@@ -21,47 +21,47 @@ import androidx.annotation.Nullable;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.amap.api.location.AMapLocationClient;
|
||||
import com.aoleyun.sn.BuildConfig;
|
||||
import com.aoleyun.sn.KeepAliveConnection;
|
||||
import com.aoleyun.sn.base.BaseApplication;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.comm.CommonConfig;
|
||||
import com.aoleyun.sn.comm.PackageNames;
|
||||
import com.aoleyun.sn.manager.AmapManager;
|
||||
import com.aoleyun.sn.network.HTTPInterface;
|
||||
import com.aoleyun.sn.network.NetInterfaceManager;
|
||||
import com.aoleyun.sn.network.api.newapi.GetLockStateApi;
|
||||
import com.aoleyun.sn.network.api.newapi.SendScreenStatusApi;
|
||||
import com.aoleyun.sn.receiver.BootReceiver;
|
||||
import com.aoleyun.sn.receiver.NewAppReceiver;
|
||||
import com.aoleyun.sn.rlog.LogDBManager;
|
||||
import com.aoleyun.sn.service.main.MainService;
|
||||
import com.aoleyun.sn.utils.ApkUtils;
|
||||
import com.aoleyun.sn.utils.JGYUtils;
|
||||
import com.aoleyun.sn.utils.SPUtils;
|
||||
import com.aoleyun.sn.utils.ServiceAliveUtils;
|
||||
import com.aoleyun.sn.utils.ToastUtil;
|
||||
import com.aoleyun.sn.utils.Utils;
|
||||
import com.aoleyun.sn.utils.XAPKUtils;
|
||||
import com.arialyy.annotations.Download;
|
||||
import com.arialyy.aria.core.Aria;
|
||||
import com.arialyy.aria.core.download.DownloadEntity;
|
||||
import com.arialyy.aria.core.task.DownloadTask;
|
||||
import com.aoleyun.sn.BuildConfig;
|
||||
import com.aoleyun.sn.manager.AmapManager;
|
||||
import com.aoleyun.sn.network.HTTPInterface;
|
||||
import com.aoleyun.sn.network.api.newapi.GetLockStateApi;
|
||||
import com.aoleyun.sn.receiver.BootReceiver;
|
||||
import com.aoleyun.sn.receiver.NewAppReceiver;
|
||||
import com.aoleyun.sn.utils.JGYUtils;
|
||||
import com.aoleyun.sn.utils.SPUtils;
|
||||
import com.aoleyun.sn.utils.XAPKUtils;
|
||||
import com.aoleyun.sn.KeepAliveConnection;
|
||||
import com.aoleyun.sn.base.BaseApplication;
|
||||
import com.aoleyun.sn.network.NetInterfaceManager;
|
||||
import com.aoleyun.sn.utils.ApkUtils;
|
||||
import com.aoleyun.sn.utils.ServiceAliveUtils;
|
||||
import com.aoleyun.sn.utils.ToastUtil;
|
||||
import com.aoleyun.sn.utils.Utils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.ObservableEmitter;
|
||||
import io.reactivex.ObservableOnSubscribe;
|
||||
import io.reactivex.Observer;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import io.reactivex.rxjava3.core.ObservableEmitter;
|
||||
import io.reactivex.rxjava3.core.ObservableOnSubscribe;
|
||||
import io.reactivex.rxjava3.core.Observer;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||
import okhttp3.ResponseBody;
|
||||
import retrofit2.Retrofit;
|
||||
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
|
||||
import retrofit2.adapter.rxjava3.RxJava3CallAdapterFactory;
|
||||
import retrofit2.converter.gson.GsonConverterFactory;
|
||||
|
||||
|
||||
@@ -247,29 +247,17 @@ public class GuardService extends Service {
|
||||
aMapLocationClient.stopLocation();
|
||||
aMapLocationClient.startLocation();
|
||||
getLockState("2", String.valueOf(time));
|
||||
// if (JGYUtils.getInstance().checkAppPlatform() == JGYUtils.ZhanruiPlatform) {
|
||||
// String statusbarStatus = "qch_hide_statusBar";
|
||||
// Intent navIntent = new Intent(statusbarStatus).setPackage("com.android.systemui");
|
||||
// context.sendBroadcast(navIntent);
|
||||
// }
|
||||
sendScreenStatus(1);
|
||||
}
|
||||
break;
|
||||
case Intent.ACTION_SCREEN_OFF: {
|
||||
HTTPInterface.getAppLimit(GuardService.this);
|
||||
// HTTPInterface.getAppLimit(GuardService.this);
|
||||
long time = System.currentTimeMillis();
|
||||
getLockState("1", String.valueOf(time));
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
Intent intent1 = new Intent(BootReceiver.BOOT_COMPLETED);
|
||||
intent1.setComponent(new ComponentName(PackageNames.APPSTORE, PackageNames.APP_STORE_BOOTRECEIVER));
|
||||
sendBroadcast(intent1);
|
||||
JGYUtils.getInstance().wakeUpAppstore();
|
||||
JGYUtils.getInstance().deleteScreenshots();
|
||||
}
|
||||
// if (JGYUtils.getInstance().checkAppPlatform() == JGYUtils.ZhanruiPlatform) {
|
||||
// String statusbarStatus = "qch_show_statusBar";
|
||||
// Intent navIntent = new Intent(statusbarStatus).setPackage("com.android.systemui");
|
||||
// context.sendBroadcast(navIntent);
|
||||
// }
|
||||
sendScreenStatus(2);
|
||||
}
|
||||
break;
|
||||
@@ -322,7 +310,7 @@ public class GuardService extends Service {
|
||||
.client(NetInterfaceManager.getInstance().getOkHttpClient())
|
||||
.baseUrl(BuildConfig.SCREEN_BASE_URL)
|
||||
.addConverterFactory(GsonConverterFactory.create())
|
||||
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
|
||||
.addCallAdapterFactory(RxJava3CallAdapterFactory.create())
|
||||
.build();
|
||||
SendScreenStatusApi sendScreenStatusApi = retrofit.create(SendScreenStatusApi.class);
|
||||
sendScreenStatusApi.sendScreenStatus(NetInterfaceManager.HTTP_KEY, Utils.getSerial(), status)
|
||||
@@ -355,8 +343,9 @@ public class GuardService extends Service {
|
||||
if (JGYUtils.isOfficialVersion()) {
|
||||
return;
|
||||
}
|
||||
GetLockStateApi getLockState = NetInterfaceManager.getInstance().getLockState();
|
||||
getLockState.getLockState(Utils.getSerial(), status, time)
|
||||
NetInterfaceManager.getInstance()
|
||||
.getLockState()
|
||||
.getLockState(Utils.getSerial(), status, time)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new Observer<ResponseBody>() {
|
||||
|
||||
@@ -25,10 +25,10 @@ import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import io.reactivex.Observer;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.rxjava3.core.Observer;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||
import okhttp3.MediaType;
|
||||
import okhttp3.MultipartBody;
|
||||
import okhttp3.RequestBody;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.aoleyun.sn.service.main;
|
||||
|
||||
import android.graphics.Bitmap;
|
||||
import android.view.View;
|
||||
|
||||
import com.aoleyun.sn.base.BasePresenter;
|
||||
@@ -9,12 +8,10 @@ import com.google.gson.JsonObject;
|
||||
|
||||
public class MainSContact {
|
||||
public interface Presenter extends BasePresenter<MainView> {
|
||||
//设置二维码
|
||||
void getQRImage(String mac);
|
||||
//获取学生信息
|
||||
void getStudesInfo();
|
||||
//获取设备锁定状态
|
||||
void getLockedState();
|
||||
void getLockedState(String key);
|
||||
//是否第一次联网
|
||||
void getFirstConnect();
|
||||
//关闭所有功能
|
||||
@@ -27,7 +24,7 @@ public class MainSContact {
|
||||
void getSnTimeControl();
|
||||
//获取电子书包激活码
|
||||
void getEBagCode();
|
||||
//设置击关推送别名
|
||||
//设置极光推送别名
|
||||
void setJpushAlias();
|
||||
//设置极光推送平台标签
|
||||
void setJpushPlatformTags(int platform);
|
||||
@@ -96,18 +93,6 @@ public class MainSContact {
|
||||
}
|
||||
|
||||
public interface MainView extends BaseView {
|
||||
//获取二维码
|
||||
void setQRImage(Bitmap qrImage);
|
||||
//设置批次信息
|
||||
void setBatchText(String text, int visibility);
|
||||
//设置班级信息
|
||||
void setClassText(String text, int visibility);
|
||||
//设置学号信息
|
||||
void setNumberText(String text, int visibility);
|
||||
//设置姓名信息
|
||||
void setNameText(String text, int visibility);
|
||||
//设置头像
|
||||
void setHead(String url);
|
||||
//获取设备锁定状态
|
||||
void setLockedState(boolean loocked);
|
||||
//是否第一次联网
|
||||
@@ -120,7 +105,7 @@ public class MainSContact {
|
||||
void getSnTimeControlFinish();
|
||||
//获取电子书包激活码
|
||||
void getEBagCodeFinish();
|
||||
//设置击关推送别名
|
||||
//设置极光推送别名
|
||||
void setAliasFinish();
|
||||
//设置极光推送平台标签
|
||||
void setJpushPlatformTagsFinish();
|
||||
|
||||
@@ -48,8 +48,8 @@ import com.google.gson.reflect.TypeToken;
|
||||
import com.tencent.android.tpush.XGIOperateCallback;
|
||||
import com.tencent.android.tpush.XGPushManager;
|
||||
import com.tencent.mmkv.MMKV;
|
||||
import com.trello.rxlifecycle2.LifecycleProvider;
|
||||
import com.trello.rxlifecycle2.android.ActivityEvent;
|
||||
import com.trello.rxlifecycle4.RxLifecycle;
|
||||
import com.trello.rxlifecycle4.android.ActivityEvent;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Type;
|
||||
@@ -58,11 +58,12 @@ import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import io.reactivex.Observer;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.annotations.NonNull;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.rxjava3.annotations.NonNull;
|
||||
import io.reactivex.rxjava3.core.Observer;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||
import io.reactivex.rxjava3.subjects.BehaviorSubject;
|
||||
import okhttp3.ResponseBody;
|
||||
|
||||
//import static com.aoleyun.sn.jpush.TagAliasOperatorHelper.ACTION_SET;
|
||||
@@ -77,6 +78,8 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
private static final String TAG = MainSPresenter.class.getSimpleName();
|
||||
private MainSContact.MainView mView;
|
||||
private Context mContext;
|
||||
private MMKV mMMKV = MMKV.defaultMMKV();
|
||||
|
||||
|
||||
public static final String GET_SETTING_FINISH_TIME = "GET_SETTING_FINISH_TIME";
|
||||
|
||||
@@ -85,14 +88,14 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
private final String DEFAULT_INFO = "暂无信息";
|
||||
private final int OK = 200;
|
||||
|
||||
private LifecycleProvider<ActivityEvent> provider;
|
||||
private BehaviorSubject<ActivityEvent> lifecycle;
|
||||
|
||||
public void setProvider(LifecycleProvider<ActivityEvent> provider) {
|
||||
this.provider = provider;
|
||||
public void setLifecycle(BehaviorSubject<ActivityEvent> lifecycle) {
|
||||
this.lifecycle = lifecycle;
|
||||
}
|
||||
|
||||
public LifecycleProvider<ActivityEvent> getProvider() {
|
||||
return provider;
|
||||
public BehaviorSubject<ActivityEvent> getLifecycle() {
|
||||
return lifecycle;
|
||||
}
|
||||
|
||||
public MainSPresenter(Context context) {
|
||||
@@ -114,35 +117,14 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
this.mView = null;
|
||||
}
|
||||
|
||||
String key = "0123456789ABCDEF";
|
||||
|
||||
@Override
|
||||
public void getQRImage(String mac) {
|
||||
Log.e(TAG, "getQRImage: " + mac);
|
||||
JsonObject jsonObject = new JsonObject();
|
||||
jsonObject.addProperty("sn", Utils.getSerial());
|
||||
jsonObject.addProperty("mac", mac);
|
||||
String json = jsonObject.toString();
|
||||
String content = mac;
|
||||
try {
|
||||
content = CXAESUtil.encrypt(key, json);
|
||||
Log.e(TAG, "getQRImage: " + content);
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "getQRImage: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
mView.setQRImage(JGYUtils.getInstance().createQRImage(content, 300, 300));
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过sn获取用户信息
|
||||
*/
|
||||
@Override
|
||||
public void getStudesInfo() {
|
||||
setState();
|
||||
NetInterfaceManager.getInstance()
|
||||
.getStudesInfoObservable()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse<StudentsInfo>>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -160,38 +142,28 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
String batch = studentsInfoBaseResponse.data.getBatch();
|
||||
String head_img = studentsInfoBaseResponse.data.getHead_img();
|
||||
if (TextUtils.isEmpty(sno)) {
|
||||
mView.setNumberText("", View.GONE);
|
||||
SPUtils.put(mContext, CommonConfig.STUDENT_ID, DEFAULT_INFO);
|
||||
} else {
|
||||
mView.setNumberText(sno, View.VISIBLE);
|
||||
SPUtils.put(mContext, CommonConfig.STUDENT_ID, sno);
|
||||
}
|
||||
if (TextUtils.isEmpty(realname)) {
|
||||
mView.setNameText("", View.GONE);
|
||||
SPUtils.put(mContext, CommonConfig.REALNAME, DEFAULT_INFO);
|
||||
} else {
|
||||
mView.setNameText(realname, View.VISIBLE);
|
||||
SPUtils.put(mContext, CommonConfig.REALNAME, realname);
|
||||
}
|
||||
if (TextUtils.isEmpty(classes)) {
|
||||
mView.setClassText("", View.GONE);
|
||||
SPUtils.put(mContext, CommonConfig.CLASS_NAME, DEFAULT_INFO);
|
||||
} else {
|
||||
mView.setClassText(classes, View.VISIBLE);
|
||||
SPUtils.put(mContext, CommonConfig.CLASS_NAME, classes);
|
||||
}
|
||||
if (TextUtils.isEmpty(batch)) {
|
||||
mView.setBatchText("", View.GONE);
|
||||
SPUtils.put(mContext, CommonConfig.BATCH_NAME, DEFAULT_INFO);
|
||||
} else {
|
||||
mView.setBatchText(batch, View.VISIBLE);
|
||||
SPUtils.put(mContext, CommonConfig.BATCH_NAME, batch);
|
||||
}
|
||||
if (TextUtils.isEmpty(head_img)) {
|
||||
mView.setHead("");
|
||||
SPUtils.put(mContext, CommonConfig.HEAD_IMG, "");
|
||||
} else {
|
||||
mView.setHead(head_img);
|
||||
SPUtils.put(mContext, CommonConfig.HEAD_IMG, head_img);
|
||||
}
|
||||
|
||||
@@ -207,76 +179,21 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
@Override
|
||||
public void onError(@NonNull Throwable e) {
|
||||
Log.e(TAG + ":" + "getStudesInfo", "onError: " + e.getMessage());
|
||||
setState();
|
||||
onComplete();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
//如果是解锁状态就隐藏,锁定就显示缓存
|
||||
if (Settings.System.getInt(mContext.getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, 0) == 1) {
|
||||
mView.setNumberText("", View.GONE);
|
||||
mView.setNameText("", View.GONE);
|
||||
mView.setClassText("", View.GONE);
|
||||
mView.setBatchText("", View.GONE);
|
||||
}
|
||||
Log.e(TAG + ":" + "getStudesInfo", "onComplete: ");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void setState() {
|
||||
String batch = (String) SPUtils.get(mContext, CommonConfig.BATCH_NAME, DEFAULT_INFO);
|
||||
if (TextUtils.isEmpty(batch) || batch.equalsIgnoreCase(DEFAULT_INFO)) {
|
||||
mView.setBatchText("", View.GONE);
|
||||
} else {
|
||||
mView.setBatchText(batch, View.VISIBLE);
|
||||
}
|
||||
|
||||
String classes = (String) SPUtils.get(mContext, CommonConfig.CLASS_NAME, DEFAULT_INFO);
|
||||
if (TextUtils.isEmpty(classes) || classes.equalsIgnoreCase(DEFAULT_INFO)) {
|
||||
mView.setClassText("", View.GONE);
|
||||
} else {
|
||||
mView.setClassText(classes, View.VISIBLE);
|
||||
}
|
||||
|
||||
String sno = (String) SPUtils.get(mContext, CommonConfig.STUDENT_ID, DEFAULT_INFO);
|
||||
if (TextUtils.isEmpty(sno) || sno.equalsIgnoreCase(DEFAULT_INFO)) {
|
||||
mView.setNumberText("", View.GONE);
|
||||
} else {
|
||||
mView.setNumberText(sno, View.VISIBLE);
|
||||
}
|
||||
String realname = (String) SPUtils.get(mContext, CommonConfig.REALNAME, DEFAULT_INFO);
|
||||
if (TextUtils.isEmpty(realname) || realname.equalsIgnoreCase(DEFAULT_INFO)) {
|
||||
mView.setNameText("", View.GONE);
|
||||
} else {
|
||||
mView.setNameText(realname, View.VISIBLE);
|
||||
}
|
||||
String head_img = (String) SPUtils.get(mContext, CommonConfig.HEAD_IMG, DEFAULT_INFO);
|
||||
if (TextUtils.isEmpty(head_img) || head_img.equalsIgnoreCase(DEFAULT_INFO)) {
|
||||
mView.setHead("");
|
||||
} else {
|
||||
mView.setHead(head_img);
|
||||
}
|
||||
}
|
||||
|
||||
private long lastgetLockedTime;
|
||||
private long one_minute = 1000 * 60;
|
||||
|
||||
@Override
|
||||
public void getLockedState() {
|
||||
MMKV mmkv = MMKV.defaultMMKV();
|
||||
lastgetLockedTime = mmkv.decodeLong(MainSPresenter.GET_SETTING_FINISH_TIME);
|
||||
Log.e(TAG, "getLockedState: " + lastgetLockedTime);
|
||||
if (System.currentTimeMillis() - lastgetLockedTime < one_minute) {
|
||||
Log.e(TAG, "getLockedState: lastgetLockedTime = " + lastgetLockedTime);
|
||||
return;
|
||||
}
|
||||
|
||||
// lastgetLockedTime = System.currentTimeMillis();
|
||||
public void getLockedState(String key) {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getDevicesLockedStateObservable()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -285,6 +202,7 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull BaseResponse response) {
|
||||
mMMKV.encode(key, System.currentTimeMillis());
|
||||
requestSucceeded = true;
|
||||
Log.e(TAG + ":" + "getLockedState", "onNext: " + JSONObject.toJSONString(response));
|
||||
if (response.code == OK) {
|
||||
@@ -302,7 +220,6 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
}
|
||||
Settings.System.putInt(mContext.getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, 0);
|
||||
} else {
|
||||
// SysSettingUtils.setEnableSetting(mContext);
|
||||
Settings.System.putInt(mContext.getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, 1);
|
||||
}
|
||||
mView.setLockedState(locked == 1);
|
||||
@@ -326,7 +243,6 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
Log.e(TAG + ":" + "getLockedState", "onComplete: ");
|
||||
}
|
||||
});
|
||||
// lastgetLockedTime = System.currentTimeMillis();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -367,7 +283,7 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
NetInterfaceManager.getInstance()
|
||||
.sendMACAddressObservable()
|
||||
.observeOn(Schedulers.io())
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -406,57 +322,27 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
mView.updateDeviceInfoFinish();
|
||||
return;
|
||||
}
|
||||
updateDevicesInfo(mContext);
|
||||
mView.updateDeviceInfoFinish();
|
||||
}
|
||||
NetInterfaceManager.getInstance().updateDeviceInfo(new NetInterfaceManager.ObserverCallback() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
@SuppressLint("NewApi")
|
||||
synchronized private void updateDevicesInfo(Context context) {
|
||||
String address = String.valueOf(SPUtils.get(context, "AmapAddress", "-"));
|
||||
if ("-".equals(address)) {
|
||||
address = (String) SPUtils.get(context, "AmapError", "-");
|
||||
}
|
||||
String longitude = String.valueOf(SPUtils.get(context, "longitude", "0"));
|
||||
String latitude = String.valueOf(SPUtils.get(context, "latitude", "0"));
|
||||
JsonObject jsonObject = new JsonObject();
|
||||
jsonObject.addProperty("address", address);
|
||||
jsonObject.addProperty("longitude", longitude);
|
||||
jsonObject.addProperty("latitude", latitude);
|
||||
String add = jsonObject.toString();
|
||||
Log.e(TAG, "updateDevicesInfo: " + add);
|
||||
NetInterfaceManager.getInstance().getUpdateDeviceInfo()
|
||||
.updateDeviceInfo(
|
||||
Utils.getSerial(),
|
||||
NetInterfaceManager.HTTP_KEY,
|
||||
Utils.getMachine(context),
|
||||
Utils.getHardware(context),
|
||||
add)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
Log.e(TAG + ":" + "updateDevicesInfo", "onSubscribe: ");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull BaseResponse baseResponse) {
|
||||
requestSucceeded = true;
|
||||
Log.e(TAG + ":" + "updateDevicesInfo", "onNext: " + baseResponse);
|
||||
}
|
||||
@Override
|
||||
public void onNext(BaseResponse response) {
|
||||
requestSucceeded = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(@NonNull Throwable e) {
|
||||
Log.e(TAG + ":" + "updateDevicesInfo", "onError: " + e.getMessage());
|
||||
onComplete();
|
||||
}
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
Log.e(TAG + ":" + "updateDevicesInfo", "onComplete: ");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
mView.updateDeviceInfoFinish();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -467,7 +353,7 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
}
|
||||
NetInterfaceManager.getInstance()
|
||||
.getSnTimeObservable()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -518,7 +404,7 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
public void getEBagCode() {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getEBagCodeControl()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
@@ -555,30 +441,14 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
|
||||
@Override
|
||||
public void setJpushAlias() {
|
||||
// JPushInterface.init(mContext);
|
||||
// SetAlias();
|
||||
// String rid = JPushInterface.getRegistrationID(mContext);
|
||||
// if (!TextUtils.isEmpty(rid)) {
|
||||
// Log.e(TAG + ":" + "setJpushAlias", "RegId:" + rid);
|
||||
// }
|
||||
// JPushInterface.getAlias(mContext, new Random().nextInt(100));
|
||||
mView.setAliasFinish();
|
||||
}
|
||||
|
||||
// private void SetAlias() {
|
||||
// TagAliasOperatorHelper.TagAliasBean tagAliasBean = new TagAliasOperatorHelper.TagAliasBean();
|
||||
// tagAliasBean.action = ACTION_SET;
|
||||
// sequence++;
|
||||
// tagAliasBean.alias = Utils.getSerial();
|
||||
// tagAliasBean.isAliasAction = true;
|
||||
// TagAliasOperatorHelper.getInstance().handleAction(mContext, sequence, tagAliasBean);
|
||||
// }
|
||||
|
||||
@Override
|
||||
public void setPushTags() {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getJpushTagsObservable()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -648,15 +518,6 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
mView.setJpushPlatformTagsFinish();
|
||||
}
|
||||
|
||||
// private void setTag(Set set) {
|
||||
// TagAliasOperatorHelper.TagAliasBean tagAliasBean = new TagAliasOperatorHelper.TagAliasBean();
|
||||
// tagAliasBean.action = ACTION_SET;
|
||||
// sequence++;
|
||||
// tagAliasBean.tags = set;
|
||||
// tagAliasBean.isAliasAction = false;
|
||||
// TagAliasOperatorHelper.getInstance().handleAction(mContext, sequence, tagAliasBean);
|
||||
// }
|
||||
|
||||
@Override
|
||||
public void checkStoreUpdate() {
|
||||
checkUpdateStore();
|
||||
@@ -669,7 +530,7 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
JGYUtils.getInstance().checkAppPlatform())
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -712,7 +573,7 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
JGYUtils.getInstance().checkAppPlatform())
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -753,7 +614,7 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
JGYUtils.getInstance().checkAppPlatform())
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -794,7 +655,7 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
JGYUtils.getInstance().checkAppPlatform())
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -835,7 +696,7 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
JGYUtils.getInstance().checkAppPlatform())
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -868,68 +729,9 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
});
|
||||
}
|
||||
|
||||
long buttonCheckUpdateTime = 0;
|
||||
|
||||
@Override
|
||||
public void buttonCheckUpdate(View view) {
|
||||
// if ((System.currentTimeMillis() - buttonCheckUpdateTime) < 10000) {
|
||||
// buttonCheckUpdateTime = System.currentTimeMillis();
|
||||
// ToastUtil.show("正在检查更新");
|
||||
// } else {
|
||||
// ToastUtil.show("你已经过检查,请稍后再来");
|
||||
// }
|
||||
checkUpdateInfo();
|
||||
}
|
||||
|
||||
private void checkUpdateInfo() {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getUpdateApi()
|
||||
.getUpdate(BuildConfig.APPLICATION_ID,
|
||||
JGYUtils.getInstance().checkAppPlatform())
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
Log.e(TAG + ":" + "checkUpdateInfo", "onSubscribe: ");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull BaseResponse response) {
|
||||
requestSucceeded = true;
|
||||
Log.e(TAG + ":" + "checkUpdateInfo", "onNext: " + response);
|
||||
if (response.code == OK) {
|
||||
JsonObject jsonObject = JsonParser.parseString(new Gson().toJson(response.data)).getAsJsonObject();
|
||||
long versionCode = jsonObject.get("version_code").getAsLong();
|
||||
PackageManager pm = mContext.getPackageManager();
|
||||
PackageInfo info = null;
|
||||
try {
|
||||
info = pm.getPackageInfo(BuildConfig.APPLICATION_ID, 0);
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (null == info || info.versionCode < versionCode) {
|
||||
mView.buttonCheckUpdateFinish(true, jsonObject);
|
||||
} else {
|
||||
mView.buttonCheckUpdateFinish(false, null);
|
||||
}
|
||||
} else {
|
||||
mView.buttonCheckUpdateFinish(false, null);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(@NonNull Throwable e) {
|
||||
Log.e(TAG + ":" + "checkUpdateInfo", "onError: " + e.getMessage());
|
||||
onComplete();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
Log.e(TAG + ":" + "checkUpdateInfo", "onComplete: ");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -939,7 +741,7 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
public void checkTestUpdate() {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getTestUpdateObservable()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse<List<ForceDownloadData>>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
@@ -985,7 +787,7 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
public void getAppLimit() {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getAppLimitObservable()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<ResponseBody>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -1037,60 +839,11 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
|
||||
@Override
|
||||
public void getDeviceBatch(String packageList) {
|
||||
// if (JGYUtils.isOfficialVersion() || TextUtils.isEmpty(packageList)) {
|
||||
// mView.getDeviceBatchFinished();
|
||||
// return;
|
||||
// }
|
||||
int locked = Settings.System.getInt(mContext.getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, 0);
|
||||
Log.e(TAG, "getDeviceBatch: " + locked);
|
||||
if (locked == 0) {
|
||||
// NetInterfaceManager.getInstance()
|
||||
// .getBatchObservable()
|
||||
// .observeOn(Schedulers.io())
|
||||
// .subscribe(new Observer<ResponseBody>() {
|
||||
// @Override
|
||||
// public void onSubscribe(@NonNull Disposable d) {
|
||||
// Log.e(TAG+":"+"getDeviceBatch", "onSubscribe: ");
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onNext(@NonNull ResponseBody responseBody) {
|
||||
// Log.e(TAG+":"+"getDeviceBatch", "onNext: ");
|
||||
// try {
|
||||
// String respons = responseBody.string();
|
||||
// JSONObject jsonObject = JSON.parseObject(respons);
|
||||
// int code = jsonObject.getInteger("code");
|
||||
// if (code == OK) {
|
||||
// String data = jsonObject.getString("data");
|
||||
// List<Batch> batchList = JSON.parseArray(data, Batch.class);
|
||||
// if (null != batchList && batchList.size() > 1) {
|
||||
// Log.e(TAG+":"+"getDeviceBatch", "onNext: " + "deleteOtherApp");
|
||||
// if (!BuildConfig.DEBUG) {
|
||||
JGYUtils.getInstance().deleteOtherApp();
|
||||
// }
|
||||
// } else {
|
||||
// Log.e(TAG+":"+"getDeviceBatch", "批次为空");
|
||||
// Log.e(TAG+":"+"getDeviceBatch", "onNext: respons:" + respons);
|
||||
// }
|
||||
// }
|
||||
// } catch (IOException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onError(@NonNull Throwable e) {
|
||||
// Log.e(TAG+":"+"getDeviceBatch", "onError: " + e.getMessage());
|
||||
// onComplete();
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onComplete() {
|
||||
// Log.e(TAG+":"+"getDeviceBatch", "onComplete: ");
|
||||
mView.getDeviceBatchFinish();
|
||||
// }
|
||||
// });
|
||||
// mView.getDeviceBatchFinished();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1098,7 +851,7 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
public void getForceDownload() {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getForceDownloadObservable()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<ForceDownloadBean>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -1147,286 +900,14 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
});
|
||||
}
|
||||
|
||||
// TODO: 2021/6/8 使用现有代码会影响浏览器主页管控
|
||||
// @Override
|
||||
// public void getBrowserList() {
|
||||
//// if (JGYUtils.isOfficialVersion()) {
|
||||
// SetBrowserList();
|
||||
//// } else {
|
||||
//// NewSetBrowserList();
|
||||
//// }
|
||||
// }
|
||||
|
||||
@Override
|
||||
public void getBrowserList() {
|
||||
// NetInterfaceManager.getInstance()
|
||||
//// .getBrowserListSettingObservable()
|
||||
//// .observeOn(Schedulers.io())
|
||||
//// .subscribe(new Observer<BaseResponse<BrowserData>>() {
|
||||
//// @Override
|
||||
//// public void onSubscribe(@NonNull Disposable d) {
|
||||
//// Log.e(TAG + ":" + "getBrowserList", "onSubscribe: ");
|
||||
//// }
|
||||
////
|
||||
//// @Override
|
||||
//// public void onNext(@NonNull BaseResponse<BrowserData> browserDataBaseResponse) {
|
||||
//// Log.e(TAG + ":" + "getBrowserList", "onNext: ");
|
||||
//// if (browserDataBaseResponse.code == OK) {
|
||||
//// String white = browserDataBaseResponse.data.getWhite();
|
||||
////
|
||||
//// if (!TextUtils.isEmpty(white)) {
|
||||
//// String homePage = Settings.System.getString(mContext.getContentResolver(), "homepagURL");
|
||||
//// if (!TextUtils.isEmpty(homePage) && !white.contains(homePage)) {
|
||||
//// white += "," + homePage;
|
||||
//// }
|
||||
//// boolean whiteList = Settings.System.putString(mContext.getContentResolver(), "DeselectBrowserArray", white);
|
||||
//// Log.e(TAG + ":" + "getBrowserList", "setBrowserList white: " + white + ":" + whiteList);
|
||||
//// mView.getBrowserListFinished(white);
|
||||
//// } else {
|
||||
//// Settings.System.putString(mContext.getContentResolver(), "DeselectBrowserArray", " ");
|
||||
//// mView.getBrowserListFinished("");
|
||||
//// }
|
||||
//// String black = browserDataBaseResponse.data.getBlack();
|
||||
//// if (!TextUtils.isEmpty(black)) {
|
||||
//// boolean blackList = Settings.System.putString(mContext.getContentResolver(), "qch_webblack_url", black);
|
||||
//// Log.e(TAG + ":" + "getBrowserList", "setBrowserList black: " + black + ":" + blackList);
|
||||
//// } else {
|
||||
//// Settings.System.putString(mContext.getContentResolver(), "qch_webblack_url", " ");
|
||||
//// }
|
||||
//// } else {
|
||||
//// mView.getBrowserListFinished("");
|
||||
//// }
|
||||
//// }
|
||||
////
|
||||
//// @Override
|
||||
//// public void onError(@NonNull Throwable e) {
|
||||
//// Log.e(TAG + ":" + "getBrowserList", "onError: " + e.getMessage());
|
||||
//// String whiteURLList = Settings.System.getString(mContext.getContentResolver(), "DeselectBrowserArray");
|
||||
//// Log.e(TAG + ":" + "getBrowserList", "whiteURLList: " + whiteURLList);
|
||||
//// mView.getBrowserListFinished(whiteURLList);
|
||||
//// onComplete();
|
||||
//// }
|
||||
////
|
||||
//// @Override
|
||||
//// public void onComplete() {
|
||||
//// Log.e(TAG + ":" + "getBrowserList", "onComplete: ");
|
||||
//// }
|
||||
//// });
|
||||
// //获取书签后会获取黑白名单
|
||||
Log.e(TAG, "getBrowserList: ");
|
||||
mView.getBrowserListFinish("");
|
||||
}
|
||||
|
||||
// private void NewSetBrowserList() {
|
||||
// NetInterfaceManager.getInstance()
|
||||
// .getBrowserListSettingObservable()
|
||||
// .observeOn(Schedulers.io())
|
||||
// .compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
// .subscribe(new Observer<BaseResponse<BrowserData>>() {
|
||||
// @Override
|
||||
// public void onSubscribe(@NonNull Disposable d) {
|
||||
// Log.e(TAG + ":" + "NewSetBrowserList", "onSubscribe: ");
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onNext(@NonNull BaseResponse<BrowserData> browserDataBaseResponse) {
|
||||
// Log.e(TAG + ":" + "NewSetBrowserList", "onNext: ");
|
||||
// if (browserDataBaseResponse.code == OK) {
|
||||
// String white = browserDataBaseResponse.data.getWhite();
|
||||
// String black = browserDataBaseResponse.data.getBlack();
|
||||
// if (!TextUtils.isEmpty(white) && !TextUtils.isEmpty(black)) {
|
||||
// Settings.System.putInt(mContext.getContentResolver(), "qch_website_isBlackWebUrl", 0);
|
||||
// Settings.System.putString(mContext.getContentResolver(), "BlackBrowserArray", " ");
|
||||
// //黑白名单同时存在时由以前的逻辑管控
|
||||
// boolean whiteList = Settings.System.putString(mContext.getContentResolver(), "DeselectBrowserArray", white);
|
||||
// Log.e(TAG + ":" + "setBrowserList", "setBrowserList white: " + white + ":" + whiteList);
|
||||
// boolean blackList = Settings.System.putString(mContext.getContentResolver(), "qch_webblack_url", black);
|
||||
// Log.e(TAG + ":" + "setBrowserList", "setBrowserList black: " + black + ":" + blackList);
|
||||
// mView.getBrowserListFinished(white);
|
||||
// } else if (TextUtils.isEmpty(white)) {
|
||||
// //设置黑名单
|
||||
// Settings.System.putInt(mContext.getContentResolver(), "qch_website_isBlackWebUrl", 1);
|
||||
// Settings.System.putString(mContext.getContentResolver(), "BlackBrowserArray", black);
|
||||
// //白名单为空由新的管控执行
|
||||
// mView.getBrowserListFinished("");
|
||||
// Settings.System.putString(mContext.getContentResolver(), "qch_webblack_url", " ");
|
||||
// } else if (TextUtils.isEmpty(black)) {
|
||||
// Settings.System.putInt(mContext.getContentResolver(), "qch_website_isBlackWebUrl", 0);
|
||||
// Settings.System.putString(mContext.getContentResolver(), "BlackBrowserArray", " ");
|
||||
// //黑名单为空由旧的管控执行
|
||||
// mView.getBrowserListFinished(white);
|
||||
// Settings.System.putString(mContext.getContentResolver(), "qch_webblack_url", " ");
|
||||
// }
|
||||
// } else {
|
||||
// //所有置空
|
||||
// Settings.System.putInt(mContext.getContentResolver(), "qch_website_isBlackWebUrl", 0);
|
||||
// Settings.System.putString(mContext.getContentResolver(), "BlackBrowserArray", " ");
|
||||
// mView.getBrowserListFinished("");
|
||||
// Settings.System.putString(mContext.getContentResolver(), "qch_webblack_url", " ");
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onError(@NonNull Throwable e) {
|
||||
// Log.e(TAG + ":" + "NewSetBrowserList", "onError: " + e.getMessage());
|
||||
// onComplete();
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onComplete() {
|
||||
// Log.e(TAG + ":" + "NewSetBrowserList", "onComplete: ");
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
|
||||
// private void SetBrowserList() {
|
||||
// NetInterfaceManager.getInstance()
|
||||
// .getBrowserListSettingObservable()
|
||||
// .observeOn(Schedulers.io())
|
||||
// .compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
// .subscribe(new Observer<BaseResponse<BrowserData>>() {
|
||||
// @Override
|
||||
// public void onSubscribe(@NonNull Disposable d) {
|
||||
// Log.e(TAG + ":" + "SetBrowserList", "onSubscribe: ");
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onNext(@NonNull BaseResponse<BrowserData> browserDataBaseResponse) {
|
||||
// Settings.System.putInt(mContext.getContentResolver(), "qch_website_isBlackWebUrl", 0);
|
||||
// Log.e(TAG + ":" + "SetBrowserList", "onNext: ");
|
||||
// if (browserDataBaseResponse.code == OK) {
|
||||
// //白名单
|
||||
// String white = browserDataBaseResponse.data.getWhite();
|
||||
// if (!TextUtils.isEmpty(white)) {
|
||||
// String homePage = Settings.System.getString(mContext.getContentResolver(), "homepagURL");
|
||||
// if (!TextUtils.isEmpty(homePage) && !white.contains(homePage)) {
|
||||
// white += "," + homePage;
|
||||
// }
|
||||
// boolean whiteList = Settings.System.putString(mContext.getContentResolver(), "DeselectBrowserArray", white);
|
||||
// Log.e(TAG + ":" + "SetBrowserList", "setBrowserList white: " + white + " :" + whiteList);
|
||||
// String black = Settings.System.getString(mContext.getContentResolver(), "qch_webblack_url");
|
||||
// Log.e(TAG + ":" + "SetBrowserList", "getBrowserList black: " + black);
|
||||
// mView.getBrowserListFinished(white);
|
||||
// } else {
|
||||
// Settings.System.putString(mContext.getContentResolver(), "DeselectBrowserArray", " ");
|
||||
// mView.getBrowserListFinished("");
|
||||
// }
|
||||
// //黑名单
|
||||
// String black = browserDataBaseResponse.data.getBlack();
|
||||
// if (!TextUtils.isEmpty(black)) {
|
||||
// boolean blackList = Settings.System.putString(mContext.getContentResolver(), "qch_webblack_url", black);
|
||||
// Log.e(TAG + ":" + "SetBrowserList", "setBrowserList black: " + black + " :" + blackList);
|
||||
// String whiteList = Settings.System.getString(mContext.getContentResolver(), "DeselectBrowserArray");
|
||||
// Log.e(TAG + ":" + "SetBrowserList", "getBrowserList white: " + whiteList);
|
||||
// } else {
|
||||
// Settings.System.putString(mContext.getContentResolver(), "qch_webblack_url", " ");
|
||||
// }
|
||||
// } else {
|
||||
// mView.getBrowserListFinished("");
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onError(@NonNull Throwable e) {
|
||||
// Log.e(TAG + ":" + "SetBrowserList", "onError: " + e.getMessage());
|
||||
// String whiteURLList = Settings.System.getString(mContext.getContentResolver(), "DeselectBrowserArray");
|
||||
// Log.e(TAG + ":" + "SetBrowserList", "whiteURLList: " + whiteURLList);
|
||||
// mView.getBrowserListFinished(whiteURLList);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onComplete() {
|
||||
// Log.e(TAG + ":" + "SetBrowserList", "onComplete: ");
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
|
||||
@Override
|
||||
public void getBrowserBookmarks(String whitelist) {
|
||||
// Log.e(TAG, "getBrowserBookmarks: " + "whitelist: " + whitelist);
|
||||
// List<String> whiteLists = Arrays.asList(whitelist.split(","));
|
||||
// NetInterfaceManager.getInstance()
|
||||
// .getBrowserBookmarksObservable()
|
||||
// .observeOn(Schedulers.io())
|
||||
// .subscribe(new Observer<BaseResponse<BrowserBookmarks>>() {
|
||||
// @Override
|
||||
// public void onSubscribe(@NonNull Disposable d) {
|
||||
// Log.e(TAG+":"+"getBrowserBookmarks", "onSubscribe: ");
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onNext(@NonNull BaseResponse<BrowserBookmarks> browserBookmarksBaseResponse) {
|
||||
// Log.e(TAG+":"+"getBrowserBookmarks", "onNext: ");
|
||||
// StringBuilder whiteString = new StringBuilder(whitelist);
|
||||
// if (browserBookmarksBaseResponse.code == OK) {
|
||||
// //主页不包含白名单添加进去
|
||||
// String homepagURL = browserBookmarksBaseResponse.data.getHomepage();
|
||||
//// boolean home = Settings.System.putString(mContext.getContentResolver(), "homepagURL", homepagURL);
|
||||
//// Log.e(TAG+":"+"getBrowserBookmarks", "onNext: homepagURL: save homepagURL = " + homepagURL);
|
||||
// if (whiteLists.size() <= 0 || !whiteLists.contains(homepagURL)) {
|
||||
// whiteString.append(",").append(homepagURL);
|
||||
// Log.e(TAG+":"+"getBrowserBookmarks ", "homepagURL: " + homepagURL);
|
||||
// boolean white = Settings.System.putString(mContext.getContentResolver(), "DeselectBrowserArray", whiteString.toString());
|
||||
// Log.e(TAG+":"+"getBrowserBookmarks", "onNext: homepagURL: add to whiteList = " + whiteString + "write: " + white);
|
||||
// }
|
||||
// //主页
|
||||
// Intent homepag = new Intent("qch_app_brower_homepage");
|
||||
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
// homepag.setPackage("com.android.settings")
|
||||
// .setPackage("com.android.browser");
|
||||
// }
|
||||
// if (!TextUtils.isEmpty(homepagURL)) {
|
||||
// homepag.putExtra("homepage", homepagURL);
|
||||
// } else {
|
||||
// homepag.putExtra("homepage", "Invalid");
|
||||
// }
|
||||
// mContext.sendBroadcast(homepag);
|
||||
//
|
||||
// //书签
|
||||
// String labelpage = browserBookmarksBaseResponse.data.getLabelpage();
|
||||
// Intent websiteBookMark = new Intent("qch_app_brower_website");
|
||||
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
// websiteBookMark.setPackage("com.android.settings")
|
||||
// .setPackage("com.android.browser");
|
||||
// }
|
||||
// if (!TextUtils.isEmpty(labelpage)) {
|
||||
// websiteBookMark.putExtra("websiteBookMark", labelpage);
|
||||
// } else {
|
||||
// websiteBookMark.putExtra("websiteBookMark", "Invalid");
|
||||
// }
|
||||
// mContext.sendBroadcast(websiteBookMark);
|
||||
// } else {
|
||||
// Intent intent1 = new Intent("qch_app_brower_homepage");
|
||||
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
// intent1.setPackage("com.android.settings")
|
||||
// .setPackage("com.android.browser");
|
||||
// }
|
||||
// intent1.putExtra("homepage", "Invalid");
|
||||
// mContext.sendBroadcast(intent1);
|
||||
//
|
||||
// Settings.System.putString(mContext.getContentResolver(), "homepagURL", "");
|
||||
// Intent intent2 = new Intent("qch_app_brower_website");
|
||||
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
// intent2.setPackage("com.android.settings")
|
||||
// .setPackage("com.android.browser");
|
||||
// }
|
||||
// intent2.putExtra("websiteBookMark", "Invalid");
|
||||
// mContext.sendBroadcast(intent2);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onError(@NonNull Throwable e) {
|
||||
// Log.e(TAG+":"+"getBrowserBookmarks", "onError: " + e.getMessage());
|
||||
// onComplete();
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onComplete() {
|
||||
// Log.e(TAG+":"+"getBrowserBookmarks", "onComplete: ");
|
||||
// mView.getBrowserBookmarksFinished();
|
||||
// }
|
||||
// });
|
||||
HTTPInterface.getHomePageBookmarks(mContext, new HTTPInterface.BookmarksCallback() {
|
||||
@Override
|
||||
public void onSubscribe() {
|
||||
@@ -1447,15 +928,6 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
@Override
|
||||
public void onComplete() {
|
||||
Log.e(TAG + ":" + "getBrowserBookmarks", "onComplete: ");
|
||||
// String homepagURL = Settings.System.getString(mContext.getContentResolver(), "homepagURL");
|
||||
// HashSet<String> hashSet = new HashSet<>(Arrays.asList(whitelist.split(",")));
|
||||
// hashSet.add(homepagURL);
|
||||
// String DeselectBrowserArray = String.join(",", hashSet);
|
||||
// if (Utils.isEmpty(DeselectBrowserArray)) {
|
||||
// Settings.System.putString(mContext.getContentResolver(), "DeselectBrowserArray", " ");
|
||||
// } else {
|
||||
// Settings.System.putString(mContext.getContentResolver(), "DeselectBrowserArray", DeselectBrowserArray);
|
||||
// }
|
||||
if (mView != null) {
|
||||
mView.getBrowserBookmarksFinish();
|
||||
}
|
||||
@@ -1487,7 +959,7 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getDesktopIconObservable()
|
||||
.observeOn(Schedulers.io())
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -1551,7 +1023,7 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
.getAppAutoStartUpdateAndNetObservable()
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<NetAndLaunchBean>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -1588,7 +1060,7 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getAppIDControlObservable()
|
||||
.observeOn(Schedulers.io())
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<ResponseBody>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -1657,7 +1129,7 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getSystemSettingObservable()
|
||||
.observeOn(Schedulers.io())
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<ResponseBody>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -1715,7 +1187,7 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
public void getDefaultApp() {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getDefaultAppApi()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse<DefaultApp>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
@@ -1760,7 +1232,7 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
.getROMApp(NetInterfaceManager.HTTP_KEY, customVersion)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
@@ -1800,7 +1272,7 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
public void getDeveloper() {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getDeveloperControl()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
@@ -1848,7 +1320,7 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
}
|
||||
NetInterfaceManager.getInstance()
|
||||
.getLogoImgObservable()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse<LogoImg>>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -1898,7 +1370,7 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
}
|
||||
NetInterfaceManager.getInstance()
|
||||
.getTopAppControl()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
@@ -1953,7 +1425,7 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
}
|
||||
NetInterfaceManager.getInstance()
|
||||
.getScreenLockObservable()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -2002,7 +1474,7 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
}
|
||||
NetInterfaceManager.getInstance()
|
||||
.getDesktopObservable()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<ResponseBody>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
@@ -2058,7 +1530,7 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
public void getPoweroffTime() {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getPoweroffTimeControl()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse<List<PoweroffBean>>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
@@ -2067,14 +1539,14 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
|
||||
@Override
|
||||
public void onNext(BaseResponse<List<PoweroffBean>> listBaseResponse) {
|
||||
requestSucceeded = true;
|
||||
Log.e("getPoweroffTime", "onNext: " + listBaseResponse);
|
||||
MMKV mmkv = MMKV.defaultMMKV();
|
||||
if (listBaseResponse.code == 200) {
|
||||
List<PoweroffBean> poweroffBeanList = listBaseResponse.data;
|
||||
String poweroffTime = new Gson().toJson(poweroffBeanList);
|
||||
mmkv.encode("poweroffTime", poweroffTime);
|
||||
mMMKV.encode("poweroffTime", poweroffTime);
|
||||
} else {
|
||||
mmkv.encode("PoweroffTime", "");
|
||||
mMMKV.encode("PoweroffTime", "");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2095,7 +1567,7 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
@Override
|
||||
public void getWiFiPasswd() {
|
||||
NetInterfaceManager.getInstance().getWiFiControl()
|
||||
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse<List<WiFiAlias>>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
@@ -2107,11 +1579,11 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
Log.e("getWiFiPasswd", "onNext: ");
|
||||
if (listBaseResponse.code == 200) {
|
||||
WiFiUtils.saveWiFiPasswd(listBaseResponse.data);
|
||||
MMKV.defaultMMKV().encode("WiFiPassword", JsonParser.parseString(new Gson().toJson(listBaseResponse.data)).toString());
|
||||
mMMKV.encode("WiFiPassword", JsonParser.parseString(new Gson().toJson(listBaseResponse.data)).toString());
|
||||
} else {
|
||||
Log.e("getWiFiPasswd", "onNext: msg = " + listBaseResponse.msg);
|
||||
WiFiUtils.saveWiFiPasswd(listBaseResponse.data);
|
||||
MMKV.defaultMMKV().encode("WiFiPassword", "");
|
||||
mMMKV.encode("WiFiPassword", "");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -42,6 +42,7 @@ import com.aoleyun.sn.bean.PoweroffBean;
|
||||
import com.aoleyun.sn.comm.CommonConfig;
|
||||
import com.aoleyun.sn.comm.JGYActions;
|
||||
import com.aoleyun.sn.comm.PackageNames;
|
||||
import com.aoleyun.sn.manager.ConnectManager;
|
||||
import com.aoleyun.sn.network.NetInterfaceManager;
|
||||
import com.aoleyun.sn.receiver.BootReceiver;
|
||||
import com.aoleyun.sn.rlog.LogDBManager;
|
||||
@@ -59,11 +60,11 @@ import com.google.gson.Gson;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.tencent.mmkv.MMKV;
|
||||
import com.trello.rxlifecycle2.LifecycleProvider;
|
||||
import com.trello.rxlifecycle2.LifecycleTransformer;
|
||||
import com.trello.rxlifecycle2.RxLifecycle;
|
||||
import com.trello.rxlifecycle2.android.ActivityEvent;
|
||||
import com.trello.rxlifecycle2.android.RxLifecycleAndroid;
|
||||
import com.trello.rxlifecycle4.LifecycleProvider;
|
||||
import com.trello.rxlifecycle4.LifecycleTransformer;
|
||||
import com.trello.rxlifecycle4.RxLifecycle;
|
||||
import com.trello.rxlifecycle4.android.ActivityEvent;
|
||||
import com.trello.rxlifecycle4.android.RxLifecycleAndroid;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.text.SimpleDateFormat;
|
||||
@@ -73,17 +74,19 @@ import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.ObservableEmitter;
|
||||
import io.reactivex.ObservableOnSubscribe;
|
||||
import io.reactivex.Observer;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.subjects.BehaviorSubject;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import io.reactivex.rxjava3.core.ObservableEmitter;
|
||||
import io.reactivex.rxjava3.core.ObservableOnSubscribe;
|
||||
import io.reactivex.rxjava3.core.Observer;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.subjects.BehaviorSubject;
|
||||
|
||||
public class MainService extends Service implements MainSContact.MainView, NetworkUtils.OnNetworkStatusChangedListener, LifecycleProvider<ActivityEvent> {
|
||||
private static final String TAG = MainService.class.getSimpleName();
|
||||
private String connectKey;
|
||||
|
||||
@SuppressLint("StaticFieldLeak")
|
||||
public static MainSPresenter mPresenter;
|
||||
private static final String TAG = MainService.class.getSimpleName();
|
||||
public static boolean netWorkIsRunning = false;
|
||||
private MMKV mMMKV = MMKV.defaultMMKV();
|
||||
|
||||
@@ -96,9 +99,33 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
@Override
|
||||
public void onConnected(NetworkUtils.NetworkType networkType) {
|
||||
ToastUtil.betaShow("网络已连接");
|
||||
Log.e("OnNetworkStatusChanged", "onConnected: " + Utils.getWifiAlias(this));
|
||||
start.onstar(SystemClock.elapsedRealtime());
|
||||
String WiFiAlias = Utils.getWifiAlias(this);
|
||||
Log.e("OnNetworkStatusChanged", "onConnected: " + WiFiAlias);
|
||||
Utils.getPublicIP(this);
|
||||
if (ConnectManager.getInstance().isWiFiFistConnect()) {
|
||||
start.onstar(ConnectManager.WIFI_LAST_CONNECT_TIME);
|
||||
} else {
|
||||
if (ConnectManager.getInstance().isWiFiCutoverFistConnect(WiFiAlias)) {
|
||||
start.onstar(WiFiAlias);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private final BehaviorSubject<ActivityEvent> lifecycleSubject = BehaviorSubject.create();
|
||||
|
||||
@Override
|
||||
public Observable<ActivityEvent> lifecycle() {
|
||||
return lifecycleSubject.hide();
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> LifecycleTransformer<T> bindUntilEvent(ActivityEvent event) {
|
||||
return RxLifecycle.bindUntilEvent(lifecycleSubject, event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> LifecycleTransformer<T> bindToLifecycle() {
|
||||
return RxLifecycleAndroid.bindActivity(lifecycleSubject);
|
||||
}
|
||||
|
||||
private WifiReceiver mWifiReceiver;
|
||||
@@ -134,7 +161,7 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
NetworkInfo info = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
|
||||
if (info.getState().equals(NetworkInfo.State.DISCONNECTED)) {
|
||||
Log.e(TAG, "wifi断开");
|
||||
LogDBManager.getInstance().creatNetChangeLog("wifi断开", Utils.transferLongToDate(System.currentTimeMillis()));
|
||||
LogDBManager.getInstance().creatNetChangeLog("wifi断开", TimeUtils.transferLongToDate(System.currentTimeMillis()));
|
||||
} else if (info.getState().equals(NetworkInfo.State.CONNECTED)) {
|
||||
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
|
||||
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
|
||||
@@ -145,13 +172,14 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
Log.e(TAG, "连接到网络 " + newSSID);
|
||||
if (!oldSSID.equals(newSSID)) {
|
||||
LogDBManager.getInstance().creatNetChangeLog("", oldSSID + " change to: " + newSSID);
|
||||
runningTime = SystemClock.elapsedRealtime();
|
||||
//直接获取数据
|
||||
mPresenter.getLockedState();
|
||||
if (ConnectManager.getInstance().isWiFiCutoverFistConnect(newSSID)) {
|
||||
start.onstar(newSSID);
|
||||
}
|
||||
} else {
|
||||
LogDBManager.getInstance().creatNetChangeLog("接入WiFi",
|
||||
"connect to: " + newSSID + " time: "
|
||||
+ Utils.transferLongToDate(System.currentTimeMillis()));
|
||||
+ TimeUtils.transferLongToDate(System.currentTimeMillis()));
|
||||
}
|
||||
mMMKV.encode("WiFiSSID", Utils.getWifiAlias(context));
|
||||
}
|
||||
@@ -170,48 +198,32 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
}
|
||||
}
|
||||
|
||||
private final BehaviorSubject<ActivityEvent> lifecycleSubject = BehaviorSubject.create();
|
||||
|
||||
@Override
|
||||
public Observable<ActivityEvent> lifecycle() {
|
||||
return lifecycleSubject.hide();
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> LifecycleTransformer<T> bindUntilEvent(ActivityEvent event) {
|
||||
return RxLifecycle.bindUntilEvent(lifecycleSubject, event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> LifecycleTransformer<T> bindToLifecycle() {
|
||||
return RxLifecycleAndroid.bindActivity(lifecycleSubject);
|
||||
}
|
||||
|
||||
private interface Start {
|
||||
void onstar(long time);
|
||||
void onstar(String key);
|
||||
}
|
||||
|
||||
private Start start;
|
||||
|
||||
private ObservableOnSubscribe<Long> subscribe = new ObservableOnSubscribe<Long>() {
|
||||
private ObservableOnSubscribe<String> subscribe = new ObservableOnSubscribe<String>() {
|
||||
@Override
|
||||
public void subscribe(ObservableEmitter<Long> emitter) throws Exception {
|
||||
public void subscribe(ObservableEmitter<String> emitter) throws Exception {
|
||||
start = emitter::onNext;
|
||||
}
|
||||
};
|
||||
|
||||
private Observer<Long> timeObserver = new Observer<Long>() {
|
||||
private Observer<String> timeObserver = new Observer<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(Long aLong) {
|
||||
Log.e("TimeObserver", "onNext: " + aLong);
|
||||
startCommandTime = runningTime = SystemClock.elapsedRealtime();
|
||||
public void onNext(String string) {
|
||||
connectKey = string;
|
||||
Log.e("TimeObserver", "onNext: " + string);
|
||||
mPresenter.getFirstConnect();
|
||||
mPresenter.getLockedState();
|
||||
mPresenter.getLockedState(string);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -237,10 +249,17 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
@Override
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
Log.e(TAG, "onCreate: ");
|
||||
lifecycleSubject.onNext(ActivityEvent.CREATE);
|
||||
mPresenter = new MainSPresenter(this);
|
||||
mPresenter.attachView(this);
|
||||
mPresenter.setProvider(this);
|
||||
mPresenter.setLifecycle(lifecycleSubject);
|
||||
Observable.create(subscribe)
|
||||
.throttleFirst(1, TimeUnit.MINUTES)
|
||||
.subscribe(timeObserver);
|
||||
Observable.create(timeChangedSubscribe)
|
||||
.throttleFirst(3, TimeUnit.HOURS)
|
||||
.subscribe(timeChangedObserver);
|
||||
if ((int) SPUtils.get(this, CommonConfig.JGY_FIRST_CONNECT, 0) == 0) {
|
||||
// TODO: 2021/5/26 待底层修改,临时解决办法
|
||||
Log.e(TAG, "onCreate: " + "Disable All Settings");
|
||||
@@ -250,29 +269,29 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
if (oldVersionCode < BuildConfig.VERSION_CODE) {
|
||||
Log.e(TAG, "onCreate: " + "upgrade successful");
|
||||
} else {
|
||||
mPresenter.getFirstConnect();
|
||||
mPresenter.getLockedState();
|
||||
if (ConnectManager.getInstance().isRebootFistConnect()) {
|
||||
start.onstar(ConnectManager.REBOOT_LAST_ONNECT_TIME);
|
||||
}
|
||||
}
|
||||
SPUtils.put(this, CommonConfig.SN_VERSIONCODE, BuildConfig.VERSION_CODE);
|
||||
registerReceivers();
|
||||
NetworkUtils.registerNetworkStatusChangedListener(this);
|
||||
addShortcut();
|
||||
Observable.create(subscribe)
|
||||
.throttleFirst(3, TimeUnit.HOURS)
|
||||
.subscribe(timeObserver);
|
||||
Observable.create(timeChangedSubscribe)
|
||||
.throttleFirst(3, TimeUnit.HOURS)
|
||||
.subscribe(timeChangedObserver);
|
||||
// cleanLauncherCache();
|
||||
timeChangedStart.onstar(System.currentTimeMillis());
|
||||
setStatusbar();
|
||||
//发送设备mac地址和信息
|
||||
mPresenter.sendMACAddress();
|
||||
setFloatingWindow(this);
|
||||
createNotificationChannel();
|
||||
sendSimpleNotification();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int onStartCommand(Intent intent, int flags, int startId) {
|
||||
JGYUtils.getInstance().wakeUpAppstore();
|
||||
return START_STICKY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
@@ -282,24 +301,6 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
mPresenter.detachView();
|
||||
}
|
||||
|
||||
//执行所有请求的时间
|
||||
long runningTime;
|
||||
|
||||
//MainService上次执行时间
|
||||
long startCommandTime = 0;
|
||||
|
||||
@Override
|
||||
public int onStartCommand(Intent intent, int flags, int startId) {
|
||||
Intent bootIntent = new Intent(BootReceiver.BOOT_COMPLETED);
|
||||
bootIntent.setComponent(new ComponentName(PackageNames.APPSTORE, PackageNames.APP_STORE_BOOTRECEIVER));
|
||||
sendBroadcast(bootIntent);
|
||||
// mPresenter.getFirstConnect();
|
||||
// mPresenter.getLockedState();
|
||||
start.onstar(SystemClock.elapsedRealtime());
|
||||
Log.e(TAG, "onStartCommand: " + (SystemClock.elapsedRealtime() - startCommandTime) + "ms");
|
||||
return START_STICKY;
|
||||
}
|
||||
|
||||
private void createNotificationChannel() {
|
||||
// Create the NotificationChannel, but only on API 26+ because
|
||||
// the NotificationChannel class is new and not in the support library
|
||||
@@ -703,36 +704,6 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
}
|
||||
}
|
||||
|
||||
@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) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setLockedState(boolean loocked) {
|
||||
Log.e(TAG, "netWorkIsRunning: " + netWorkIsRunning);
|
||||
@@ -865,7 +836,7 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
if (noTag) {
|
||||
Log.e(TAG, "setTagsFinished: " + "not set tag");
|
||||
netWorkIsRunning = false;
|
||||
Log.e(TAG, "SettingFinished: " + (SystemClock.elapsedRealtime() - runningTime) + " ms");
|
||||
Log.e(TAG, "SettingFinished: " + (SystemClock.elapsedRealtime()) + " ms");
|
||||
} else {
|
||||
mPresenter.getSystemSettingbegin();
|
||||
}
|
||||
@@ -967,7 +938,7 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
public void setWiFiPasswd() {
|
||||
MMKV.defaultMMKV().encode(MainAPresenter.GET_SETTING_FINISH_TIME, System.currentTimeMillis());
|
||||
netWorkIsRunning = false;
|
||||
Log.e(TAG, "SettingFinished: " + (SystemClock.elapsedRealtime() - runningTime) + " ms");
|
||||
Log.e(TAG, "SettingFinished: " + (SystemClock.elapsedRealtime()) + " ms");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -69,13 +69,13 @@ import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.ObservableEmitter;
|
||||
import io.reactivex.ObservableOnSubscribe;
|
||||
import io.reactivex.Observer;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import io.reactivex.rxjava3.core.ObservableEmitter;
|
||||
import io.reactivex.rxjava3.core.ObservableOnSubscribe;
|
||||
import io.reactivex.rxjava3.core.Observer;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||
import okhttp3.MediaType;
|
||||
import okhttp3.MultipartBody;
|
||||
import okhttp3.RequestBody;
|
||||
@@ -591,7 +591,7 @@ public class MessageReceiver extends XGPushBaseReceiver {
|
||||
case GET_DEVICES_INFO:
|
||||
ToastUtil.betaShow("收到管控:获取设备信息");
|
||||
if (MainService.mPresenter != null) {
|
||||
MainService.mPresenter.getLockedState();
|
||||
MainService.mPresenter.getLockedState("XGPush");
|
||||
MainService.mPresenter.sendMACAddress();
|
||||
Log.e(TAG, "mPresenter: " + "getLockedState");
|
||||
} else {
|
||||
@@ -713,7 +713,7 @@ public class MessageReceiver extends XGPushBaseReceiver {
|
||||
Log.e(TAG, "setHomepagtag: " + e.getMessage());
|
||||
}
|
||||
if (MainService.mPresenter != null) {
|
||||
MainService.mPresenter.getLockedState();
|
||||
MainService.mPresenter.getLockedState("XGPush_RESTORE");
|
||||
Log.e("getLockedState", "mPresenter: " + "getLockedState");
|
||||
} else {
|
||||
Log.e("getLockedState", "mPresenter is NULL");
|
||||
|
||||
@@ -18,27 +18,21 @@ import android.net.Uri;
|
||||
import android.os.Binder;
|
||||
import android.os.Build;
|
||||
import android.provider.Settings;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.RequiresApi;
|
||||
import androidx.core.content.FileProvider;
|
||||
|
||||
import android.text.TextUtils;
|
||||
import android.text.format.Formatter;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.aoleyun.sn.BuildConfig;
|
||||
import com.aoleyun.sn.bean.UploadAppInfo;
|
||||
import com.aoleyun.sn.comm.JGYActions;
|
||||
import com.aoleyun.sn.comm.PackageNames;
|
||||
import com.arialyy.aria.core.Aria;
|
||||
import com.arialyy.aria.core.download.DownloadEntity;
|
||||
import com.google.gson.Gson;
|
||||
import com.aoleyun.sn.BuildConfig;
|
||||
import com.aoleyun.sn.R;
|
||||
import com.aoleyun.sn.bean.UploadAppInfo;
|
||||
import com.aoleyun.sn.network.NetInterfaceManager;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.DataOutputStream;
|
||||
@@ -58,14 +52,13 @@ import java.util.function.Predicate;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipFile;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.ObservableEmitter;
|
||||
import io.reactivex.ObservableOnSubscribe;
|
||||
import io.reactivex.Observer;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import okhttp3.ResponseBody;
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import io.reactivex.rxjava3.core.ObservableEmitter;
|
||||
import io.reactivex.rxjava3.core.ObservableOnSubscribe;
|
||||
import io.reactivex.rxjava3.core.Observer;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||
|
||||
public class ApkUtils {
|
||||
private static String TAG = ApkUtils.class.getSimpleName();
|
||||
@@ -1166,7 +1159,7 @@ public class ApkUtils {
|
||||
uploadAppInfo.setApp_name(packageInfo.applicationInfo.loadLabel(context.getPackageManager()).toString());
|
||||
uploadAppInfo.setPackage_name(packageInfo.packageName);
|
||||
Log.e("getRunningAppInfo", "getRunningAppInfo:" + packageInfo.packageName);
|
||||
String firstInstallTime = Utils.transferLongToDate(packageInfo.lastUpdateTime);
|
||||
String firstInstallTime = TimeUtils.transferLongToDate(packageInfo.lastUpdateTime);
|
||||
uploadAppInfo.setInstall_time(firstInstallTime);
|
||||
uploadAppInfo.setVersionCode(String.valueOf(packageInfo.versionCode));
|
||||
uploadAppInfo.setState(0);
|
||||
|
||||
@@ -35,6 +35,7 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.aoleyun.sn.comm.CommonConfig;
|
||||
import com.aoleyun.sn.comm.JGYActions;
|
||||
import com.aoleyun.sn.comm.PackageNames;
|
||||
import com.aoleyun.sn.receiver.BootReceiver;
|
||||
import com.blankj.utilcode.util.FileUtils;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonObject;
|
||||
@@ -1936,4 +1937,23 @@ public class JGYUtils {
|
||||
}
|
||||
|
||||
|
||||
public static final String PACKAGE_DEVICEINFO = "com.aoleyun.sn";
|
||||
public static final String PACKAGE_APPSTORE = "com.aoleyun.appstore";
|
||||
|
||||
public static final String CLASS_DEVICEINFO = "com.aoleyun.sn.receiver.BootReceiver";
|
||||
public static final String CLASS_APPSTORE = "com.aoleyun.appstore.receiver.BootReceiver";
|
||||
|
||||
public void wakeUpDeviceInfo() {
|
||||
//启动设备信息
|
||||
Intent bootIntent = new Intent(BootReceiver.BOOT_COMPLETED);
|
||||
bootIntent.setComponent(new ComponentName(PACKAGE_DEVICEINFO, CLASS_DEVICEINFO));
|
||||
mContext.sendBroadcast(bootIntent);
|
||||
}
|
||||
|
||||
public void wakeUpAppstore() {
|
||||
//启动应用市场
|
||||
Intent bootIntent = new Intent(BootReceiver.BOOT_COMPLETED);
|
||||
bootIntent.setComponent(new ComponentName(PACKAGE_APPSTORE, CLASS_APPSTORE));
|
||||
mContext.sendBroadcast(bootIntent);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,9 @@ import android.content.Context;
|
||||
import android.content.Intent;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.RequiresApi;
|
||||
|
||||
import android.os.Build;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
@@ -15,6 +17,9 @@ import com.aoleyun.sn.service.main.MainService;
|
||||
import java.text.DateFormat;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
@@ -52,6 +57,10 @@ public class TimeUtils {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return 获取今日0点时间戳
|
||||
* 没有管时区问题
|
||||
*/
|
||||
private static long getZeroTiemstamp() {
|
||||
long nowTime = System.currentTimeMillis();
|
||||
long dayMillisecond = 60 * 60 * 24 * 1000;
|
||||
@@ -60,6 +69,22 @@ public class TimeUtils {
|
||||
return zeroTime;
|
||||
}
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.O)
|
||||
public static boolean isTodayTime(long timeStamp) {
|
||||
String time = transferLongToDate(timeStamp);
|
||||
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
LocalDateTime localTime = LocalDateTime.parse(time, dtf);
|
||||
LocalDateTime startTime = LocalDate.now().atTime(0, 0, 0);
|
||||
LocalDateTime endTime = LocalDate.now().atTime(23, 59, 59);
|
||||
return localTime.isAfter(startTime) && localTime.isBefore(endTime);
|
||||
}
|
||||
|
||||
public static String transferLongToDate(Long millSec) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
Date date = new Date(millSec);
|
||||
return sdf.format(date);
|
||||
}
|
||||
|
||||
private static long getLoopTime(String timestamp) {
|
||||
//"15:34:39"
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
|
||||
|
||||
@@ -15,13 +15,13 @@ import java.util.concurrent.TimeUnit;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.ObservableEmitter;
|
||||
import io.reactivex.ObservableOnSubscribe;
|
||||
import io.reactivex.Observer;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import io.reactivex.rxjava3.core.ObservableEmitter;
|
||||
import io.reactivex.rxjava3.core.ObservableOnSubscribe;
|
||||
import io.reactivex.rxjava3.core.Observer;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||
import okhttp3.Call;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
|
||||
@@ -33,10 +33,6 @@ import android.os.Environment;
|
||||
import android.os.StatFs;
|
||||
import android.os.SystemClock;
|
||||
import android.provider.Settings;
|
||||
|
||||
import androidx.annotation.RequiresApi;
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.text.TextUtils;
|
||||
import android.text.format.Formatter;
|
||||
@@ -49,7 +45,13 @@ import android.view.inputmethod.InputMethodManager;
|
||||
import android.widget.EditText;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.RequiresApi;
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.aoleyun.sn.BuildConfig;
|
||||
import com.aoleyun.sn.R;
|
||||
import com.aoleyun.sn.base.BaseApplication;
|
||||
import com.aoleyun.sn.comm.CommonConfig;
|
||||
import com.aoleyun.sn.network.HTTPInterface;
|
||||
import com.arialyy.aria.core.Aria;
|
||||
@@ -60,9 +62,6 @@ import com.google.zxing.WriterException;
|
||||
import com.google.zxing.common.BitMatrix;
|
||||
import com.google.zxing.qrcode.QRCodeWriter;
|
||||
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
|
||||
import com.aoleyun.sn.BuildConfig;
|
||||
import com.aoleyun.sn.R;
|
||||
import com.aoleyun.sn.base.BaseApplication;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.DataOutputStream;
|
||||
@@ -98,13 +97,13 @@ import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.ObservableEmitter;
|
||||
import io.reactivex.ObservableOnSubscribe;
|
||||
import io.reactivex.Observer;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import io.reactivex.rxjava3.core.ObservableEmitter;
|
||||
import io.reactivex.rxjava3.core.ObservableOnSubscribe;
|
||||
import io.reactivex.rxjava3.core.Observer;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||
|
||||
import static android.content.Context.WIFI_SERVICE;
|
||||
|
||||
@@ -774,17 +773,6 @@ public class Utils {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static String transferLongToDate(Long millSec) {
|
||||
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
Date date = new Date(millSec);
|
||||
|
||||
return sdf.format(date);
|
||||
|
||||
}
|
||||
|
||||
public static Bitmap createQRImage(String content, int widthPix, int heightPix) {
|
||||
try {
|
||||
// if (content == null || "".equals(content)) {
|
||||
|
||||
@@ -11,14 +11,14 @@ import android.util.Log;
|
||||
|
||||
import androidx.annotation.RequiresApi;
|
||||
|
||||
import com.aoleyun.sn.bean.Expansions;
|
||||
import com.aoleyun.sn.bean.SplitApks;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParser;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.aoleyun.sn.bean.Expansions;
|
||||
import com.aoleyun.sn.bean.SplitApks;
|
||||
|
||||
import org.zeroturnaround.zip.ZipUtil;
|
||||
|
||||
@@ -34,13 +34,13 @@ import java.nio.file.Paths;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.ObservableEmitter;
|
||||
import io.reactivex.ObservableOnSubscribe;
|
||||
import io.reactivex.Observer;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import io.reactivex.rxjava3.core.ObservableEmitter;
|
||||
import io.reactivex.rxjava3.core.ObservableOnSubscribe;
|
||||
import io.reactivex.rxjava3.core.Observer;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||
|
||||
/**
|
||||
* @author Administrator
|
||||
|
||||
@@ -5,4 +5,127 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/bannerLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_32"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/back"
|
||||
android:layout_width="@dimen/dp_16"
|
||||
android:layout_height="@dimen/dp_16"
|
||||
android:layout_marginStart="@dimen/dp_8"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="centerCrop"
|
||||
android:src="@drawable/back"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_horizontal"
|
||||
android:text="运行日志"
|
||||
android:textColor="@color/title_textcolor"
|
||||
android:textSize="@dimen/sp_14"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_refresh"
|
||||
android:layout_width="@dimen/dp_16"
|
||||
android:layout_height="@dimen/dp_16"
|
||||
android:layout_marginEnd="@dimen/dp_8"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="centerInside"
|
||||
android:src="@drawable/refresh"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_32"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintTop_toBottomOf="@+id/bannerLayout">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_code"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:text="代码" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_timestamp"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:text="时间" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_event"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:text="事件" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_operate"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:text="操作" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_content"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="3"
|
||||
android:gravity="center"
|
||||
android:text="内容" />
|
||||
</LinearLayout>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recyclerview"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintBottom_toTopOf="@+id/constraintLayout4"
|
||||
app:layout_constraintTop_toBottomOf="@+id/ll_title" />
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/constraintLayout4"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_64"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_delete"
|
||||
android:layout_width="@dimen/dp_32"
|
||||
android:layout_height="@dimen/dp_32"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="centerInside"
|
||||
android:src="@drawable/delete"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
Reference in New Issue
Block a user