diff --git a/app/build.gradle b/app/build.gradle index 6d917ed..5d47e34 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -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 { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index df1b551..9237531 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -4,9 +4,10 @@ coreApp="true" package="com.aoleyun.sn" android:sharedUserId="android.uid.system"> + - + @@ -130,6 +131,15 @@ + + + + + + + - --> - + diff --git a/app/src/main/java/com/aoleyun/sn/activity/SplashActivity.java b/app/src/main/java/com/aoleyun/sn/activity/SplashActivity.java index b212df8..b889eb4 100644 --- a/app/src/main/java/com/aoleyun/sn/activity/SplashActivity.java +++ b/app/src/main/java/com/aoleyun/sn/activity/SplashActivity.java @@ -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"); diff --git a/app/src/main/java/com/aoleyun/sn/activity/checknet/CheckNetActivity.java b/app/src/main/java/com/aoleyun/sn/activity/checknet/CheckNetActivity.java index d738b5f..1b57395 100644 --- a/app/src/main/java/com/aoleyun/sn/activity/checknet/CheckNetActivity.java +++ b/app/src/main/java/com/aoleyun/sn/activity/checknet/CheckNetActivity.java @@ -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() { + @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) { - - } - } - } } diff --git a/app/src/main/java/com/aoleyun/sn/activity/checknet/CheckNetContact.java b/app/src/main/java/com/aoleyun/sn/activity/checknet/CheckNetContact.java index 9d47f63..bd7265c 100644 --- a/app/src/main/java/com/aoleyun/sn/activity/checknet/CheckNetContact.java +++ b/app/src/main/java/com/aoleyun/sn/activity/checknet/CheckNetContact.java @@ -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 { - //获取设备锁定状态 - 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); //获取开发者选项结束 diff --git a/app/src/main/java/com/aoleyun/sn/activity/checknet/CheckNetPresenter.java b/app/src/main/java/com/aoleyun/sn/activity/checknet/CheckNetPresenter.java index bbb544c..42e04c5 100644 --- a/app/src/main/java/com/aoleyun/sn/activity/checknet/CheckNetPresenter.java +++ b/app/src/main/java/com/aoleyun/sn/activity/checknet/CheckNetPresenter.java @@ -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 lifecycle; + + public void setLifecycle(BehaviorSubject lifecycle) { + this.lifecycle = lifecycle; + } + + public BehaviorSubject 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() { - @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() { @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() { - @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() { @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() { @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() { @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() { @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() { @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() { @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() { @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() { @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() { - @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>>() { @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() { @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() { @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>() { // @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>() { // @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() { @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() { @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() { @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() { @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>() { @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() { @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() { @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>() { @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() { @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() { @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() { @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>>() { @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>>() { @Override public void onSubscribe(Disposable d) { diff --git a/app/src/main/java/com/aoleyun/sn/activity/main/MainAPresenter.java b/app/src/main/java/com/aoleyun/sn/activity/main/MainAPresenter.java index a3ea173..1da2365 100644 --- a/app/src/main/java/com/aoleyun/sn/activity/main/MainAPresenter.java +++ b/app/src/main/java/com/aoleyun/sn/activity/main/MainAPresenter.java @@ -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 provider; + private BehaviorSubject lifecycle; - public void setProvider(LifecycleProvider provider) { - this.provider = provider; + public void setLifecycle(BehaviorSubject lifecycle) { + this.lifecycle = lifecycle; } - public LifecycleProvider getProvider() { - return provider; + public BehaviorSubject 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>() { @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() { @Override public void onSubscribe(@NonNull Disposable d) { diff --git a/app/src/main/java/com/aoleyun/sn/activity/main/MainActivity.java b/app/src/main/java/com/aoleyun/sn/activity/main/MainActivity.java index e972dca..b1358e5 100644 --- a/app/src/main/java/com/aoleyun/sn/activity/main/MainActivity.java +++ b/app/src/main/java/com/aoleyun/sn/activity/main/MainActivity.java @@ -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); } diff --git a/app/src/main/java/com/aoleyun/sn/activity/requestlog/RequestLogActivity.java b/app/src/main/java/com/aoleyun/sn/activity/requestlog/RequestLogActivity.java index e7cdc15..0816602 100644 --- a/app/src/main/java/com/aoleyun/sn/activity/requestlog/RequestLogActivity.java +++ b/app/src/main/java/com/aoleyun/sn/activity/requestlog/RequestLogActivity.java @@ -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); diff --git a/app/src/main/java/com/aoleyun/sn/activity/requestlog/RequestLogAdapter.java b/app/src/main/java/com/aoleyun/sn/activity/requestlog/RequestLogAdapter.java index f02cff1..a0b4a6e 100644 --- a/app/src/main/java/com/aoleyun/sn/activity/requestlog/RequestLogAdapter.java +++ b/app/src/main/java/com/aoleyun/sn/activity/requestlog/RequestLogAdapter.java @@ -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 lifecycle; - private LifecycleProvider provider; - public void setProvider(LifecycleProvider provider) { - this.provider = provider; + public void setLifecycle(BehaviorSubject lifecycle) { + this.lifecycle = lifecycle; } - public LifecycleProvider getProvider() { - return provider; + public BehaviorSubject getLifecycle() { + return lifecycle; } + public RequestLogPresenter(Context context) { this.mContext = context; } diff --git a/app/src/main/java/com/aoleyun/sn/base/BaseActivity.java b/app/src/main/java/com/aoleyun/sn/base/BaseActivity.java index b7c23bc..e3340c2 100644 --- a/app/src/main/java/com/aoleyun/sn/base/BaseActivity.java +++ b/app/src/main/java/com/aoleyun/sn/base/BaseActivity.java @@ -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 { + public final BehaviorSubject 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 lifecycle() { + return lifecycleSubject.hide(); + } + + @Override + @NonNull + @CheckResult + public final LifecycleTransformer bindUntilEvent(@NonNull ActivityEvent event) { + return RxLifecycle.bindUntilEvent(lifecycleSubject, event); + } + + @Override + @NonNull + @CheckResult + public final LifecycleTransformer 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(); + } } diff --git a/app/src/main/java/com/aoleyun/sn/base/BaseApplication.java b/app/src/main/java/com/aoleyun/sn/base/BaseApplication.java index ed83afa..82264b6 100644 --- a/app/src/main/java/com/aoleyun/sn/base/BaseApplication.java +++ b/app/src/main/java/com/aoleyun/sn/base/BaseApplication.java @@ -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(); diff --git a/app/src/main/java/com/aoleyun/sn/jpush/MyJPushReceiver.java b/app/src/main/java/com/aoleyun/sn/jpush/MyJPushReceiver.java index 91074ca..39cd3df 100644 --- a/app/src/main/java/com/aoleyun/sn/jpush/MyJPushReceiver.java +++ b/app/src/main/java/com/aoleyun/sn/jpush/MyJPushReceiver.java @@ -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() { - @Override - public void subscribe(ObservableEmitter 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() { - @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 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() { - @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); } diff --git a/app/src/main/java/com/aoleyun/sn/manager/ConnectManager.java b/app/src/main/java/com/aoleyun/sn/manager/ConnectManager.java new file mode 100644 index 0000000..e8739fd --- /dev/null +++ b/app/src/main/java/com/aoleyun/sn/manager/ConnectManager.java @@ -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); + } +} diff --git a/app/src/main/java/com/aoleyun/sn/network/HTTPInterface.java b/app/src/main/java/com/aoleyun/sn/network/HTTPInterface.java index 3929bf2..6ad8355 100644 --- a/app/src/main/java/com/aoleyun/sn/network/HTTPInterface.java +++ b/app/src/main/java/com/aoleyun/sn/network/HTTPInterface.java @@ -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() { diff --git a/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java b/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java index 5645123..0fbcb28 100644 --- a/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java +++ b/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java @@ -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 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 provider, ObserverCallback callback) { + private static final String GET_LOCKED_STATE_TIME = "getLockedState_key"; + + public void getLockedState(BehaviorSubject 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() { @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 provider, ObserverCallback callback) { + NetInterfaceManager.getInstance() + .getJpushTagsObservable() + .compose(RxLifecycle.bindUntilEvent(provider, ActivityEvent.DESTROY)) + .subscribe(new Observer() { + @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 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 { } }); } + + } diff --git a/app/src/main/java/com/aoleyun/sn/network/UrlAddress.java b/app/src/main/java/com/aoleyun/sn/network/UrlAddress.java index 832ca79..1117548 100644 --- a/app/src/main/java/com/aoleyun/sn/network/UrlAddress.java +++ b/app/src/main/java/com/aoleyun/sn/network/UrlAddress.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/AppLimitApi.java b/app/src/main/java/com/aoleyun/sn/network/api/AppLimitApi.java index 4b3dcee..4957838 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/AppLimitApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/AppLimitApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/DeselectIDApi.java b/app/src/main/java/com/aoleyun/sn/network/api/DeselectIDApi.java index c4bd34e..4ac6b1d 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/DeselectIDApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/DeselectIDApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/ForceDownloadApi.java b/app/src/main/java/com/aoleyun/sn/network/api/ForceDownloadApi.java index ba36e6c..bbb4fed 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/ForceDownloadApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/ForceDownloadApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/NetAndLaunchApi.java b/app/src/main/java/com/aoleyun/sn/network/api/NetAndLaunchApi.java index d4928aa..16d5f1b 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/NetAndLaunchApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/NetAndLaunchApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/SystemSettingApi.java b/app/src/main/java/com/aoleyun/sn/network/api/SystemSettingApi.java index ef86092..7945200 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/SystemSettingApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/SystemSettingApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/UploadAppInfoApi.java b/app/src/main/java/com/aoleyun/sn/network/api/UploadAppInfoApi.java index 1b4791e..ca02502 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/UploadAppInfoApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/UploadAppInfoApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/AppinsideWebApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/AppinsideWebApi.java index de9a774..22bb826 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/AppinsideWebApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/AppinsideWebApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/BrowserBookmarksApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/BrowserBookmarksApi.java index 64e46aa..20b387f 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/BrowserBookmarksApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/BrowserBookmarksApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/BrowserListApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/BrowserListApi.java index 1e2361c..72908ba 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/BrowserListApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/BrowserListApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/CheckTestUpdateApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/CheckTestUpdateApi.java index a07271f..6f61e72 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/CheckTestUpdateApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/CheckTestUpdateApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/CheckUpdateApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/CheckUpdateApi.java index badc346..b5095a1 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/CheckUpdateApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/CheckUpdateApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/CustomROMAppApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/CustomROMAppApi.java index 7a5a5c9..ea1a016 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/CustomROMAppApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/CustomROMAppApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/DefaultAppApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/DefaultAppApi.java index 522484e..c6dcd2f 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/DefaultAppApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/DefaultAppApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/DesktopIconApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/DesktopIconApi.java index 0f4528a..4c14fef 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/DesktopIconApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/DesktopIconApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/DevicesLockedStateApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/DevicesLockedStateApi.java index ccd4154..9ccf53e 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/DevicesLockedStateApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/DevicesLockedStateApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetAllAppApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetAllAppApi.java index ef41849..ee14628 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetAllAppApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetAllAppApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetAppLogApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetAppLogApi.java index e34ce06..0e79ae0 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetAppLogApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetAppLogApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetBatchApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetBatchApi.java index 03cf47e..b382f0a 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetBatchApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetBatchApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetDesktopApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetDesktopApi.java index 87e841e..08f93af 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetDesktopApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetDesktopApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetDeveloperApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetDeveloperApi.java index 1536946..9b947b8 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetDeveloperApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetDeveloperApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetEBagCodeApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetEBagCodeApi.java index fc2fd50..6e4f020 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetEBagCodeApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetEBagCodeApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetJpushTagsApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetJpushTagsApi.java index c21f321..85551ff 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetJpushTagsApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetJpushTagsApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetLockStateApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetLockStateApi.java index 7671696..b607c3c 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetLockStateApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetLockStateApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetPoweroffApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetPoweroffApi.java index f6b68d1..59542a1 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetPoweroffApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetPoweroffApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetPublicIPApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetPublicIPApi.java index 832f098..531d37c 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetPublicIPApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetPublicIPApi.java @@ -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 getJpushTags(); + Observable getPublicIP(); } diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetSnRunLogApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetSnRunLogApi.java index 197d108..f1f2066 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetSnRunLogApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetSnRunLogApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetUploadIsLogApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetUploadIsLogApi.java index 638bbe7..2272121 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetUploadIsLogApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetUploadIsLogApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetUploadLogApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetUploadLogApi.java index b2cf45c..c53c768 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetUploadLogApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetUploadLogApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetWiFiAliasApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetWiFiAliasApi.java index 6b6e09c..6a14f6f 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetWiFiAliasApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/GetWiFiAliasApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/LogoImgApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/LogoImgApi.java index d9e84bc..94d2435 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/LogoImgApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/LogoImgApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/MACAddressApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/MACAddressApi.java index 3161d98..b09988d 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/MACAddressApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/MACAddressApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/NewAppinsideWebApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/NewAppinsideWebApi.java index f36aa05..721d309 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/NewAppinsideWebApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/NewAppinsideWebApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/ScreenLockStateApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/ScreenLockStateApi.java index fd79f40..9926e43 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/ScreenLockStateApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/ScreenLockStateApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/SendDownloadInfoApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/SendDownloadInfoApi.java index 8c61f7a..9868ab1 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/SendDownloadInfoApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/SendDownloadInfoApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/SendDownloadTimesApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/SendDownloadTimesApi.java index 501a13e..0fb9362 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/SendDownloadTimesApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/SendDownloadTimesApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/SendRestoreTimesApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/SendRestoreTimesApi.java index fdb122c..81b06b3 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/SendRestoreTimesApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/SendRestoreTimesApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/SendScreenStatusApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/SendScreenStatusApi.java index 0ddeffb..28144c5 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/SendScreenStatusApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/SendScreenStatusApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/SendScreenshotApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/SendScreenshotApi.java index 79b3763..389ffb8 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/SendScreenshotApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/SendScreenshotApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/SnTimeControlApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/SnTimeControlApi.java index 222727c..dadf226 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/SnTimeControlApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/SnTimeControlApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/StudentsInfosApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/StudentsInfosApi.java index 06915cd..0609b44 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/StudentsInfosApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/StudentsInfosApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/TopAppControlApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/TopAppControlApi.java index 503e277..d13c395 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/TopAppControlApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/TopAppControlApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/newapi/UpdateDeviceInfoApi.java b/app/src/main/java/com/aoleyun/sn/network/api/newapi/UpdateDeviceInfoApi.java index e6b3fda..af11853 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/newapi/UpdateDeviceInfoApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/newapi/UpdateDeviceInfoApi.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/receiver/BootReceiver.java b/app/src/main/java/com/aoleyun/sn/receiver/BootReceiver.java index 1e2ae27..a758194 100644 --- a/app/src/main/java/com/aoleyun/sn/receiver/BootReceiver.java +++ b/app/src/main/java/com/aoleyun/sn/receiver/BootReceiver.java @@ -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); diff --git a/app/src/main/java/com/aoleyun/sn/receiver/NewAppReceiver.java b/app/src/main/java/com/aoleyun/sn/receiver/NewAppReceiver.java index 30309ad..3061c85 100644 --- a/app/src/main/java/com/aoleyun/sn/receiver/NewAppReceiver.java +++ b/app/src/main/java/com/aoleyun/sn/receiver/NewAppReceiver.java @@ -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); } } diff --git a/app/src/main/java/com/aoleyun/sn/rlog/LogBean.java b/app/src/main/java/com/aoleyun/sn/rlog/LogBean.java index 3df81da..6d1ffcf 100644 --- a/app/src/main/java/com/aoleyun/sn/rlog/LogBean.java +++ b/app/src/main/java/com/aoleyun/sn/rlog/LogBean.java @@ -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 diff --git a/app/src/main/java/com/aoleyun/sn/service/GuardService.java b/app/src/main/java/com/aoleyun/sn/service/GuardService.java index 0c7209f..f3db556 100644 --- a/app/src/main/java/com/aoleyun/sn/service/GuardService.java +++ b/app/src/main/java/com/aoleyun/sn/service/GuardService.java @@ -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() { diff --git a/app/src/main/java/com/aoleyun/sn/service/LogcatService.java b/app/src/main/java/com/aoleyun/sn/service/LogcatService.java index cc82c6a..3eee198 100644 --- a/app/src/main/java/com/aoleyun/sn/service/LogcatService.java +++ b/app/src/main/java/com/aoleyun/sn/service/LogcatService.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/service/main/MainSContact.java b/app/src/main/java/com/aoleyun/sn/service/main/MainSContact.java index 2932e4d..3023154 100644 --- a/app/src/main/java/com/aoleyun/sn/service/main/MainSContact.java +++ b/app/src/main/java/com/aoleyun/sn/service/main/MainSContact.java @@ -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 { - //设置二维码 - 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(); diff --git a/app/src/main/java/com/aoleyun/sn/service/main/MainSPresenter.java b/app/src/main/java/com/aoleyun/sn/service/main/MainSPresenter.java index 503185a..d416b29 100644 --- a/app/src/main/java/com/aoleyun/sn/service/main/MainSPresenter.java +++ b/app/src/main/java/com/aoleyun/sn/service/main/MainSPresenter.java @@ -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 provider; + private BehaviorSubject lifecycle; - public void setProvider(LifecycleProvider provider) { - this.provider = provider; + public void setLifecycle(BehaviorSubject lifecycle) { + this.lifecycle = lifecycle; } - public LifecycleProvider getProvider() { - return provider; + public BehaviorSubject 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>() { @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() { @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() { @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() { - @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() { @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() { @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() { @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() { @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() { @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() { @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() { @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() { @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() { - @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>>() { @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() { @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() { -// @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 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() { @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>() { - //// @Override - //// public void onSubscribe(@NonNull Disposable d) { - //// Log.e(TAG + ":" + "getBrowserList", "onSubscribe: "); - //// } - //// - //// @Override - //// public void onNext(@NonNull BaseResponse 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>() { -// @Override -// public void onSubscribe(@NonNull Disposable d) { -// Log.e(TAG + ":" + "NewSetBrowserList", "onSubscribe: "); -// } -// -// @Override -// public void onNext(@NonNull BaseResponse 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>() { -// @Override -// public void onSubscribe(@NonNull Disposable d) { -// Log.e(TAG + ":" + "SetBrowserList", "onSubscribe: "); -// } -// -// @Override -// public void onNext(@NonNull BaseResponse 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 whiteLists = Arrays.asList(whitelist.split(",")); -// NetInterfaceManager.getInstance() -// .getBrowserBookmarksObservable() -// .observeOn(Schedulers.io()) -// .subscribe(new Observer>() { -// @Override -// public void onSubscribe(@NonNull Disposable d) { -// Log.e(TAG+":"+"getBrowserBookmarks", "onSubscribe: "); -// } -// -// @Override -// public void onNext(@NonNull BaseResponse 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 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() { @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() { @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() { @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() { @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>() { @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() { @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() { @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>() { @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() { @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() { @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() { @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>>() { @Override public void onSubscribe(Disposable d) { @@ -2067,14 +1539,14 @@ public class MainSPresenter implements MainSContact.Presenter { @Override public void onNext(BaseResponse> listBaseResponse) { + requestSucceeded = true; Log.e("getPoweroffTime", "onNext: " + listBaseResponse); - MMKV mmkv = MMKV.defaultMMKV(); if (listBaseResponse.code == 200) { List 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>>() { @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", ""); } } diff --git a/app/src/main/java/com/aoleyun/sn/service/main/MainService.java b/app/src/main/java/com/aoleyun/sn/service/main/MainService.java index 72dc50a..a3a1c75 100644 --- a/app/src/main/java/com/aoleyun/sn/service/main/MainService.java +++ b/app/src/main/java/com/aoleyun/sn/service/main/MainService.java @@ -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 { + 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 lifecycleSubject = BehaviorSubject.create(); + + @Override + public Observable lifecycle() { + return lifecycleSubject.hide(); + } + + @Override + public LifecycleTransformer bindUntilEvent(ActivityEvent event) { + return RxLifecycle.bindUntilEvent(lifecycleSubject, event); + } + + @Override + public LifecycleTransformer 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 lifecycleSubject = BehaviorSubject.create(); - - @Override - public Observable lifecycle() { - return lifecycleSubject.hide(); - } - - @Override - public LifecycleTransformer bindUntilEvent(ActivityEvent event) { - return RxLifecycle.bindUntilEvent(lifecycleSubject, event); - } - - @Override - public LifecycleTransformer bindToLifecycle() { - return RxLifecycleAndroid.bindActivity(lifecycleSubject); - } private interface Start { - void onstar(long time); + void onstar(String key); } private Start start; - private ObservableOnSubscribe subscribe = new ObservableOnSubscribe() { + private ObservableOnSubscribe subscribe = new ObservableOnSubscribe() { @Override - public void subscribe(ObservableEmitter emitter) throws Exception { + public void subscribe(ObservableEmitter emitter) throws Exception { start = emitter::onNext; } }; - private Observer timeObserver = new Observer() { + private Observer timeObserver = new Observer() { @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 diff --git a/app/src/main/java/com/aoleyun/sn/tpush/MessageReceiver.java b/app/src/main/java/com/aoleyun/sn/tpush/MessageReceiver.java index 078f179..c8131a8 100644 --- a/app/src/main/java/com/aoleyun/sn/tpush/MessageReceiver.java +++ b/app/src/main/java/com/aoleyun/sn/tpush/MessageReceiver.java @@ -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"); diff --git a/app/src/main/java/com/aoleyun/sn/utils/ApkUtils.java b/app/src/main/java/com/aoleyun/sn/utils/ApkUtils.java index 3b04a32..a678fb9 100644 --- a/app/src/main/java/com/aoleyun/sn/utils/ApkUtils.java +++ b/app/src/main/java/com/aoleyun/sn/utils/ApkUtils.java @@ -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); diff --git a/app/src/main/java/com/aoleyun/sn/utils/JGYUtils.java b/app/src/main/java/com/aoleyun/sn/utils/JGYUtils.java index 1bdaccb..aa87efe 100644 --- a/app/src/main/java/com/aoleyun/sn/utils/JGYUtils.java +++ b/app/src/main/java/com/aoleyun/sn/utils/JGYUtils.java @@ -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); + } } diff --git a/app/src/main/java/com/aoleyun/sn/utils/TimeUtils.java b/app/src/main/java/com/aoleyun/sn/utils/TimeUtils.java index 5cc4645..58040bd 100644 --- a/app/src/main/java/com/aoleyun/sn/utils/TimeUtils.java +++ b/app/src/main/java/com/aoleyun/sn/utils/TimeUtils.java @@ -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"); diff --git a/app/src/main/java/com/aoleyun/sn/utils/URLUtils.java b/app/src/main/java/com/aoleyun/sn/utils/URLUtils.java index e075ab9..8b5f61b 100644 --- a/app/src/main/java/com/aoleyun/sn/utils/URLUtils.java +++ b/app/src/main/java/com/aoleyun/sn/utils/URLUtils.java @@ -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; diff --git a/app/src/main/java/com/aoleyun/sn/utils/Utils.java b/app/src/main/java/com/aoleyun/sn/utils/Utils.java index 62cb2ce..f9181fc 100644 --- a/app/src/main/java/com/aoleyun/sn/utils/Utils.java +++ b/app/src/main/java/com/aoleyun/sn/utils/Utils.java @@ -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)) { diff --git a/app/src/main/java/com/aoleyun/sn/utils/XAPKUtils.java b/app/src/main/java/com/aoleyun/sn/utils/XAPKUtils.java index 6b541ca..4041017 100644 --- a/app/src/main/java/com/aoleyun/sn/utils/XAPKUtils.java +++ b/app/src/main/java/com/aoleyun/sn/utils/XAPKUtils.java @@ -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 diff --git a/app/src/main/res/layout-land/activity_request_log.xml b/app/src/main/res/layout-land/activity_request_log.xml index 7911f36..31ec48c 100644 --- a/app/src/main/res/layout-land/activity_request_log.xml +++ b/app/src/main/res/layout-land/activity_request_log.xml @@ -5,4 +5,127 @@ android:layout_width="match_parent" android:layout_height="match_parent"> + + + + + + + + + + + + + + + + + + + + + + + + + + + +