version:1.4

update:2021-10-21 10:14:40
fix:
add:增加浏览器桌面检测升级,修复重复请求
This commit is contained in:
2021-12-03 14:33:03 +08:00
parent 768519e14e
commit 34fa9fcdb7
70 changed files with 3189 additions and 1503 deletions

View File

@@ -1,6 +1,8 @@
package com.aoleyun.sn.network;
import android.annotation.SuppressLint;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
@@ -13,10 +15,13 @@ import android.util.Log;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.aoleyun.sn.BuildConfig;
import com.aoleyun.sn.action.JGYActions;
import com.aoleyun.sn.bean.PoweroffBean;
import com.aoleyun.sn.bean.SnRunLog;
import com.aoleyun.sn.bean.WiFiAlias;
import com.aoleyun.sn.network.api.newapi.GetPublicIPApi;
import com.aoleyun.sn.network.api.newapi.SendScreenStatusApi;
import com.aoleyun.sn.service.LogcatService;
import com.aoleyun.sn.utils.WiFiUtils;
import com.arialyy.aria.core.Aria;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
@@ -30,7 +35,6 @@ 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.Logutils;
import com.aoleyun.sn.utils.URLUtils;
import com.aoleyun.sn.bean.Appground;
import com.aoleyun.sn.bean.BaseResponse;
@@ -45,9 +49,11 @@ 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.mmkv.MMKV;
import java.io.IOException;
import java.lang.reflect.Type;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
@@ -62,7 +68,6 @@ import okhttp3.ResponseBody;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;
import retrofit2.http.GET;
import static com.aoleyun.sn.jpush.TagAliasOperatorHelper.ACTION_SET;
import static com.aoleyun.sn.jpush.TagAliasOperatorHelper.sequence;
@@ -91,7 +96,7 @@ public class HTTPInterface {
if (packageInfo == null || packageInfo.versionCode < versionCode) {
Utils.ariaDownload(context, url, object);
} else {
Logutils.e("installTestAPK", "APK: " + "无更新");
Log.e("installTestAPK", "APK: " + "无更新");
}
}
@@ -101,7 +106,7 @@ public class HTTPInterface {
.subscribe(new Observer<BaseResponse>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Logutils.e(TAG + ":" + "setJpushTags", "onSubscribe: ");
Log.e(TAG + ":" + "setJpushTags", "onSubscribe: ");
}
@Override
@@ -109,7 +114,7 @@ public class HTTPInterface {
if (response.code == 200) {
JsonObject jsonObject = JsonParser.parseString(new Gson().toJson(response.data)).getAsJsonObject();
String batch = jsonObject.get("batch").getAsString();
Logutils.e(TAG + ":" + "setJpushTags", "onNext: " + batch);
Log.e(TAG + ":" + "setJpushTags", "onNext: " + batch);
if (!TextUtils.isEmpty(batch)) {
Set set = new HashSet();
set.add(batch);
@@ -125,22 +130,22 @@ public class HTTPInterface {
});
setTag(context, set);
} else {
Logutils.e(TAG + ":" + "setJpushTags", "onNext: " + "batch empty");
Log.e(TAG + ":" + "setJpushTags", "onNext: " + "batch empty");
}
} else {
Logutils.e(TAG + ":" + "setJpushTags", "onNext: " + response.toString());
Log.e(TAG + ":" + "setJpushTags", "onNext: " + response.toString());
}
}
@Override
public void onError(@NonNull Throwable e) {
Logutils.e(TAG + ":" + "setJpushTags", "onError: " + e.getMessage());
Log.e(TAG + ":" + "setJpushTags", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Logutils.e(TAG + ":" + "setJpushTags", "onComplete: ");
Log.e(TAG + ":" + "setJpushTags", "onComplete: ");
}
});
}
@@ -160,10 +165,10 @@ public class HTTPInterface {
synchronized public static void getAppinsideWeb(Context context, GetAppinsideWebCallback callback) {
if (JGYUtils.getInstance().checkAppPlatform() == JGYUtils.MTKPlatform) {
Logutils.e(TAG, "getAppinsideWeb: " + "setAppinsideWeb");
Log.e(TAG, "getAppinsideWeb: " + "setAppinsideWeb");
setAppinsideWeb(callback);
} else {
Logutils.e(TAG, "getAppinsideWeb: " + "setNewAppinsideWeb");
Log.e(TAG, "getAppinsideWeb: " + "setNewAppinsideWeb");
setNewAppinsideWeb(callback);
// setAppinsideWeb(callback);
}
@@ -176,24 +181,24 @@ public class HTTPInterface {
.subscribe(new Observer<BaseResponse<List<Appground>>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Logutils.e("setAppinsideWeb", "onSubscribe: ");
Log.e("setAppinsideWeb", "onSubscribe: ");
}
@Override
public void onNext(@NonNull BaseResponse<List<Appground>> listBaseResponse) {
Logutils.e("setAppinsideWeb", "onNext: " + listBaseResponse);
Log.e("setAppinsideWeb", "onNext: " + listBaseResponse);
JGYUtils.getInstance().setAppinsideWeb(listBaseResponse);
}
@Override
public void onError(@NonNull Throwable e) {
Logutils.e("setAppinsideWeb", "onError: " + e.getMessage());
Log.e("setAppinsideWeb", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Logutils.e("setAppinsideWeb", "onComplete: ");
Log.e("setAppinsideWeb", "onComplete: ");
callback.onComplete();
}
});
@@ -206,26 +211,26 @@ public class HTTPInterface {
.subscribe(new Observer<BaseResponse>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Logutils.e("getNewAppinsideWeb", "onSubscribe: ");
Log.e("getNewAppinsideWeb", "onSubscribe: ");
}
@Override
public void onNext(@NonNull BaseResponse listBaseResponse) {
Logutils.e("getNewAppinsideWeb", "onNext: " + listBaseResponse);
Log.e("getNewAppinsideWeb", "onNext: " + listBaseResponse);
long time1 = System.currentTimeMillis();
JGYUtils.getInstance().setNewAppinsideWeb(listBaseResponse);
Logutils.e(TAG, "setWhiteApp: time = " + (System.currentTimeMillis() - time1));
Log.e(TAG, "setWhiteApp: time = " + (System.currentTimeMillis() - time1));
}
@Override
public void onError(@NonNull Throwable e) {
Logutils.e("getNewAppinsideWeb", "onError: " + e.getMessage());
Log.e("getNewAppinsideWeb", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Logutils.e("getNewAppinsideWeb", "onComplete: ");
Log.e("getNewAppinsideWeb", "onComplete: ");
callback.onComplete();
}
});
@@ -254,12 +259,12 @@ public class HTTPInterface {
.subscribe(new Observer<BaseResponse<BrowserData>>() {
@Override
public void onSubscribe(Disposable d) {
Logutils.e("setBrowserBlackList", "onSubscribe: ");
Log.e("setBrowserBlackList", "onSubscribe: ");
}
@Override
public void onNext(BaseResponse<BrowserData> browserDataBaseResponse) {
Logutils.e("setBrowserBlackList", "onNext: ");
Log.e("setBrowserBlackList", "onNext: ");
String homePage = Settings.System.getString(context.getContentResolver(), "homepagURL");
if (browserDataBaseResponse.code == 200) {
BrowserData data = browserDataBaseResponse.data;
@@ -269,14 +274,14 @@ public class HTTPInterface {
white += "," + homePage;
}
boolean DeselectBrowserArray = Settings.System.putString(context.getContentResolver(), "DeselectBrowserArray", white);
Logutils.e("setBrowserBlackList", "setBrowserList white = " + white + ":" + DeselectBrowserArray);
Log.e("setBrowserBlackList", "setBrowserList white = " + white + ":" + DeselectBrowserArray);
} else {
Settings.System.putString(context.getContentResolver(), "DeselectBrowserArray", homePage);
}
String black = data.getBlack();
if (!TextUtils.isEmpty(black)) {
boolean qch_webblack_url = Settings.System.putString(context.getContentResolver(), "qch_webblack_url", black);
Logutils.e("setBrowserBlackList", "setBrowserList black = " + black + ":" + qch_webblack_url);
Log.e("setBrowserBlackList", "setBrowserList black = " + black + ":" + qch_webblack_url);
} else {
Settings.System.putString(context.getContentResolver(), "qch_webblack_url", " ");
}
@@ -302,13 +307,13 @@ public class HTTPInterface {
@Override
public void onError(Throwable e) {
Logutils.e("setBrowserBlackList", "onError: " + e.getMessage());
Log.e("setBrowserBlackList", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Logutils.e("setBrowserBlackList", "onComplete: ");
Log.e("setBrowserBlackList", "onComplete: ");
new URLUtils(context).setBrowserWhiteList();
new URLUtils(context).setBrowserBlackList();
}
@@ -340,7 +345,7 @@ public class HTTPInterface {
if (callback != null) {
callback.onSubscribe();
}
Logutils.e("getHomePageBookmarks", "onSubscribe: ");
Log.e("getHomePageBookmarks", "onSubscribe: ");
}
@Override
@@ -348,37 +353,37 @@ public class HTTPInterface {
if (callback != null) {
callback.onNext();
}
Logutils.e("getHomePageBookmarks", "onNext: ");
Log.e("getHomePageBookmarks", "onNext: ");
if (browserBookmarksBaseResponse.code == 200) {
//主页不包含白名单添加进去
String homepagURL = browserBookmarksBaseResponse.data.getHomepage();
Logutils.e("getHomePageBookmarks ", "homepagURL: " + homepagURL);
Log.e("getHomePageBookmarks ", "homepagURL: " + homepagURL);
String oldHome = Settings.System.getString(context.getContentResolver(), "homepagURL");
Logutils.e("getHomePageBookmarks", "oldHome: " + oldHome);
Log.e("getHomePageBookmarks", "oldHome: " + oldHome);
//数据和之前不一样的时候清除缓存
if (!TextUtils.isEmpty(oldHome) && !oldHome.equalsIgnoreCase(homepagURL)) {
try {
new CacheUtils().cleanApplicationUserData(context, "com.android.browser");
} catch (Exception e) {
e.printStackTrace();
Logutils.e(TAG, "setHomepagtag: " + e.getMessage());
Log.e(TAG, "setHomepagtag: " + e.getMessage());
}
}
boolean home = Settings.System.putString(context.getContentResolver(), "homepagURL", homepagURL);
Logutils.e("getHomePageBookmarks", "onNext: homepagURL: save homepagURL = " + home);
Log.e("getHomePageBookmarks", "onNext: homepagURL: save homepagURL = " + home);
String whitelist = Settings.System.getString(context.getContentResolver(), "DeselectBrowserArray");
Logutils.e("getHomePageBookmarks ", "whitelist: " + whitelist);
Log.e("getHomePageBookmarks ", "whitelist: " + whitelist);
// if (!TextUtils.isEmpty(whitelist.trim())) {
// HashSet<String> whiteLists = new HashSet<>(Arrays.asList(whitelist.trim().split(",")));
// whiteLists.add(homepagURL);
// String whiteString = String.join(",", whiteLists);
// boolean white = Settings.System.putString(context.getContentResolver(), "DeselectBrowserArray", whiteString);
// Logutils.e("getHomePageBookmarks", "onNext: homepagURL: add to whiteList = " + whiteString + "write: " + white);
// Log.e("getHomePageBookmarks", "onNext: homepagURL: add to whiteList = " + whiteString + "write: " + white);
// } else {
// Logutils.e("getHomePageBookmarks", "onNext: whitelist is NULL");
// Log.e("getHomePageBookmarks", "onNext: whitelist is NULL");
// boolean white = Settings.System.putString(context.getContentResolver(), "DeselectBrowserArray", homepagURL);
// Logutils.e("getHomePageBookmarks", "onNext: homepagURL: homepagURL = " + homepagURL + "write: " + white);
// Log.e("getHomePageBookmarks", "onNext: homepagURL: homepagURL = " + homepagURL + "write: " + white);
// }
//书签
@@ -395,7 +400,7 @@ public class HTTPInterface {
// urlList.add(JGYUtils.getPrefixHttpsURL(urls));
// }
String join = String.join(",", labels);
Logutils.e("getHomePageBookmarks", "onNext: getHomePageBookmarks: " + join);
Log.e("getHomePageBookmarks", "onNext: getHomePageBookmarks: " + join);
websiteBookMark.putExtra("websiteBookMark", join);
} else {
websiteBookMark.putExtra("websiteBookMark", "Invalid");
@@ -412,7 +417,7 @@ public class HTTPInterface {
}
if (!TextUtils.isEmpty(homepagURL)) {
// String newHomePage = JGYUtils.getPrefixHttpsURL(homepagURL);
Logutils.e("getHomePageBookmarks", "onNext: newHomePage: " + homepagURL);
Log.e("getHomePageBookmarks", "onNext: newHomePage: " + homepagURL);
homepag.putExtra("homepage", homepagURL);
} else {
homepag.putExtra("homepage", "Invalid");
@@ -445,7 +450,7 @@ public class HTTPInterface {
if (callback != null) {
callback.onError(e);
}
Logutils.e("getHomePageBookmarks", "onError: " + e.getMessage());
Log.e("getHomePageBookmarks", "onError: " + e.getMessage());
onComplete();
}
@@ -454,7 +459,7 @@ public class HTTPInterface {
if (callback != null) {
callback.onComplete();
}
Logutils.e("getHomePageBookmarks", "onComplete: ");
Log.e("getHomePageBookmarks", "onComplete: ");
setBrowserBlackList(context);
}
});
@@ -467,16 +472,16 @@ public class HTTPInterface {
.subscribe(new Observer<BaseResponse>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Logutils.e(TAG + ":" + "getDesktopIcon", "onSubscribe: ");
Log.e(TAG + ":" + "getDesktopIcon", "onSubscribe: ");
}
@Override
public void onNext(@NonNull BaseResponse response) {
Logutils.e(TAG + ":" + "getDesktopIcon", "onNext: ");
Log.e(TAG + ":" + "getDesktopIcon", "onNext: ");
ApkUtils.showAllAPP(context);
if (response.code == OK) {
String data = response.data.toString();
Logutils.e(TAG + ":" + "getDesktopIcon", "data: " + data);
Log.e(TAG + ":" + "getDesktopIcon", "data: " + data);
if (!TextUtils.isEmpty(data)) {
List<String> newList = Arrays.asList(data.split(","));//新的list
PackageManager pm = context.getPackageManager();
@@ -491,29 +496,29 @@ public class HTTPInterface {
pm.setApplicationEnabledSetting("com.android.messaging", PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0);
}
} catch (Exception ex) {
Logutils.e(TAG + ":" + "getDesktopIcon", "Exception: ex: " + ex.getMessage());
Log.e(TAG + ":" + "getDesktopIcon", "Exception: ex: " + ex.getMessage());
}
pm.setApplicationEnabledSetting(pack, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0);
Logutils.e(TAG + ":" + "getDesktopIcon", pack);
Log.e(TAG + ":" + "getDesktopIcon", pack);
} catch (Exception e) {
Logutils.e(TAG + ":" + "getDesktopIcon", "Exception: " + e.getMessage());
Log.e(TAG + ":" + "getDesktopIcon", "Exception: " + e.getMessage());
}
}
}
} else {
Logutils.e(TAG + ":" + "getDesktopIcon", "onNext: " + response.toString());
Log.e(TAG + ":" + "getDesktopIcon", "onNext: " + response.toString());
}
}
@Override
public void onError(@NonNull Throwable e) {
Logutils.e(TAG + ":" + "getDesktopIcon", "onError: " + e.getMessage());
Log.e(TAG + ":" + "getDesktopIcon", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Logutils.e(TAG + ":" + "getDesktopIcon", "onComplete: ");
Log.e(TAG + ":" + "getDesktopIcon", "onComplete: ");
}
});
}
@@ -551,7 +556,7 @@ public class HTTPInterface {
@Override
public void onNext(ResponseBody responseBody) {
try {
Logutils.e("updateDeviceInfo", "上传的结果" + responseBody.string());
Log.e("updateDeviceInfo", "上传的结果" + responseBody.string());
} catch (IOException e) {
e.printStackTrace();
}
@@ -559,7 +564,7 @@ public class HTTPInterface {
@Override
public void onError(Throwable e) {
Logutils.e("updateDeviceInfo", e.getMessage());
Log.e("updateDeviceInfo", e.getMessage());
}
@Override
@@ -578,11 +583,12 @@ public class HTTPInterface {
.subscribe(new Observer<BaseResponse>() {
@Override
public void onSubscribe(Disposable d) {
Logutils.e(TAG, "onSubscribe: ");
Log.e("getSnTimeControl", "onSubscribe: ");
}
@Override
public void onNext(BaseResponse response) {
Log.e("getSnTimeControl", "onNext: ");
int code = response.code;
if (code == 200) {
JSONObject jsonObject = (JSONObject) JSON.toJSON(response.data);
@@ -590,24 +596,25 @@ public class HTTPInterface {
String end_time = jsonObject.getString("end_time");
TimeUtils.ContralTime c = TimeUtils.String2ContralTime(context, start_time + "-" + end_time);
if (null != c) {
Logutils.e("getTimeControl", "200: " + c.toString());
Log.e("getTimeControl", "200: " + c.toString());
}
} else {
TimeUtils.setEmpty(context);
TimeUtils.ContralTime c = TimeUtils.getDefaltContralTime(context);
if (null != c) {
Logutils.e("getTimeControl", c.toString());
Log.e("getTimeControl", c.toString());
}
}
}
@Override
public void onError(Throwable e) {
Logutils.e("getSnTimeControl", "onError: " + e.getMessage());
Log.e("getSnTimeControl", "onError: " + e.getMessage());
}
@Override
public void onComplete() {
Log.e("getSnTimeControl", "onComplete: ");
Intent intent = new Intent();
intent.setAction(MainService.TimeChangedReceiver.ACTION_UPDATE);
context.sendBroadcast(intent);
@@ -659,41 +666,41 @@ public class HTTPInterface {
.subscribe(new Observer<ResponseBody>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Logutils.e("getAppLimit", "onSubscribe: ");
Log.e("getAppLimit", "onSubscribe: ");
}
@Override
public void onNext(@NonNull ResponseBody responseBody) {
try {
String bodyString = responseBody.string();
Logutils.e("getAppLimit", "onNext: " + bodyString);
Log.e("getAppLimit", "onNext: " + bodyString);
JsonObject jsonObject = JsonParser.parseString(bodyString).getAsJsonObject();
int code = jsonObject.get("code").getAsInt();
if (code == 200) {
String data = jsonObject.get("data").getAsJsonObject().get("result").getAsString();
//开机图标 只记录后台传的包名
boolean write = Settings.System.putString(context.getContentResolver(), JGYActions.ACTION_JGY_SHORTCUTLIST, data);
Logutils.e(TAG, "onNext: only_jgy_shortcut_list: " + write);
Log.e(TAG, "onNext: only_jgy_shortcut_list: " + write);
JGYUtils.getInstance().writeAppPackageList(context, data);
JGYUtils.getInstance().deleteOtherApp();
} else {
Logutils.e("getAppLimit", "onNext: " + bodyString);
Log.e("getAppLimit", "onNext: " + bodyString);
}
} catch (IOException e) {
e.printStackTrace();
Logutils.e("getAppLimit", "onNext: IOException: " + e.getMessage());
Log.e("getAppLimit", "onNext: IOException: " + e.getMessage());
}
}
@Override
public void onError(@NonNull Throwable e) {
Logutils.e("getAppLimit", "onError: " + e.getMessage());
Log.e("getAppLimit", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Logutils.e("getAppLimit", "onComplete: ");
Log.e("getAppLimit", "onComplete: ");
getAllAppList(context);
}
});
@@ -708,31 +715,31 @@ public class HTTPInterface {
.subscribe(new Observer<BaseResponse<List<AppListInfo>>>() {
@Override
public void onSubscribe(Disposable d) {
Logutils.e("getAllAppList", "onSubscribe: ");
Log.e("getAllAppList", "onSubscribe: ");
}
@Override
public void onNext(BaseResponse<List<AppListInfo>> listBaseResponse) {
Logutils.e("getAllAppList", "onNext: " + JSONObject.toJSONString(listBaseResponse));
Log.e("getAllAppList", "onNext: " + JSONObject.toJSONString(listBaseResponse));
int code = listBaseResponse.code;
if (code == 200) {
List<AppListInfo> appListInfos = listBaseResponse.data;
getAppAutoStartUpdateAndNet(appListInfos);
} else {
Logutils.e("getAllAppList", "onNext: " + "no data");
Logutils.e("getAllAppList", "onNext: " + listBaseResponse.data);
Log.e("getAllAppList", "onNext: " + "no data");
Log.e("getAllAppList", "onNext: " + listBaseResponse.data);
}
}
@Override
public void onError(Throwable e) {
Logutils.e("getAllAppList", "onError: " + e.getMessage());
Log.e("getAllAppList", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Logutils.e("getAllAppList", "onComplete: ");
Log.e("getAllAppList", "onComplete: ");
getForceDownload(context);
}
});
@@ -744,15 +751,15 @@ public class HTTPInterface {
.subscribe(new Observer<ForceDownloadBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Logutils.e(TAG + ":" + "getForceDownload", "onSubscribe: ");
Log.e(TAG + ":" + "getForceDownload", "onSubscribe: ");
}
@Override
public void onNext(@NonNull ForceDownloadBean forceDownloadBean) {
Logutils.e(TAG + ":" + "getForceDownload", "onNext: ");
Log.e(TAG + ":" + "getForceDownload", "onNext: ");
switch (forceDownloadBean.getCode()) {
case 200:
Logutils.e(TAG + ":" + "getForceDownload", "isDownloading=" + BaseApplication.getInstance().isDownloading());
Log.e(TAG + ":" + "getForceDownload", "isDownloading=" + BaseApplication.getInstance().isDownloading());
BaseApplication.getInstance().checkIsDownloading();
if (!BaseApplication.getInstance().isDownloading()) {
Type type = new TypeToken<List<ForceDownloadData>>() {
@@ -766,23 +773,23 @@ public class HTTPInterface {
break;
case -200:
boolean qch_force_app = Settings.System.putString(context.getContentResolver(), "qch_force_app", "invalid");
Logutils.e(TAG + ":" + "getForceDownload", "qch_force_app:" + qch_force_app);
Log.e(TAG + ":" + "getForceDownload", "qch_force_app:" + qch_force_app);
break;
default:
Logutils.e(TAG + ":" + "getForceDownload", forceDownloadBean.getMsg());
Log.e(TAG + ":" + "getForceDownload", forceDownloadBean.getMsg());
break;
}
}
@Override
public void onError(@NonNull Throwable e) {
Logutils.e(TAG + ":" + "getForceDownload", "onError: " + e.getMessage());
Log.e(TAG + ":" + "getForceDownload", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Logutils.e(TAG + ":" + "getForceDownload", "onComplete: ");
Log.e(TAG + ":" + "getForceDownload", "onComplete: ");
}
});
}
@@ -795,28 +802,28 @@ public class HTTPInterface {
.subscribe(new Observer<NetAndLaunchBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Logutils.e("getAppAutoStartUpdateAndNet", "onSubscribe: ");
Log.e("getAppAutoStartUpdateAndNet", "onSubscribe: ");
}
@Override
public void onNext(@NonNull NetAndLaunchBean netAndLaunchBean) {
Logutils.e("getAppAutoStartUpdateAndNet", "onNext: " + netAndLaunchBean.toString());
Log.e("getAppAutoStartUpdateAndNet", "onNext: " + netAndLaunchBean.toString());
if (netAndLaunchBean.getCode() == 200) {
JGYUtils.getInstance().setNetAndlaunch(netAndLaunchBean, appListInfos);
} else {
Logutils.e("getAppAutoStartUpdateAndNet", "onNext: " + netAndLaunchBean.toString());
Log.e("getAppAutoStartUpdateAndNet", "onNext: " + netAndLaunchBean.toString());
}
}
@Override
public void onError(@NonNull Throwable e) {
Logutils.e("getAppAutoStartUpdateAndNet", "onError: " + e.getMessage());
Log.e("getAppAutoStartUpdateAndNet", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Logutils.e("getAppAutoStartUpdateAndNet", "onComplete: ");
Log.e("getAppAutoStartUpdateAndNet", "onComplete: ");
}
});
}
@@ -829,28 +836,28 @@ public class HTTPInterface {
.subscribe(new Observer<NetAndLaunchBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Logutils.e("getNetAndLaunchSetting", "onSubscribe: ");
Log.e("getNetAndLaunchSetting", "onSubscribe: ");
}
@Override
public void onNext(@NonNull NetAndLaunchBean netAndLaunchBean) {
Logutils.e("getNetAndLaunchSetting", "onNext: " + netAndLaunchBean.toString());
Log.e("getNetAndLaunchSetting", "onNext: " + netAndLaunchBean.toString());
if (netAndLaunchBean.getCode() == 200) {
JGYUtils.getInstance().setNetAndlaunch(netAndLaunchBean);
} else {
Logutils.e("getNetAndLaunchSetting", "onNext: " + netAndLaunchBean.toString());
Log.e("getNetAndLaunchSetting", "onNext: " + netAndLaunchBean.toString());
}
}
@Override
public void onError(@NonNull Throwable e) {
Logutils.e("getNetAndLaunchSetting", "onError: " + e.getMessage());
Log.e("getNetAndLaunchSetting", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Logutils.e("getNetAndLaunchSetting", "onComplete: ");
Log.e("getNetAndLaunchSetting", "onComplete: ");
}
});
}
@@ -922,4 +929,129 @@ public class HTTPInterface {
}
});
}
public static void getPoweroffTime() {
NetInterfaceManager.getInstance()
.getPoweroffTimeControl()
.subscribe(new Observer<BaseResponse<List<PoweroffBean>>>() {
@Override
public void onSubscribe(Disposable d) {
Log.e("getPoweroffTime", "onSubscribe: ");
}
@Override
public void onNext(BaseResponse<List<PoweroffBean>> listBaseResponse) {
Log.e("getPoweroffTime", "onNext: " + listBaseResponse);
MMKV mmkv = MMKV.defaultMMKV();
if (listBaseResponse.code == 200) {
List<PoweroffBean> poweroffBeanList = listBaseResponse.data;
String poweroffTime = new Gson().toJson(poweroffBeanList);
mmkv.encode("poweroffTime", poweroffTime);
} else {
mmkv.encode("PoweroffTime", "");
}
}
@Override
public void onError(Throwable e) {
Log.e("getPoweroffTime", "onError: " + e.getLocalizedMessage());
}
@Override
public void onComplete() {
Log.e("getPoweroffTime", "onComplete: ");
}
});
}
public static void getWiFiPasswd(Context context) {
NetInterfaceManager.getInstance().getWiFiControl()
.subscribe(new Observer<BaseResponse<List<WiFiAlias>>>() {
@Override
public void onSubscribe(Disposable d) {
Log.e("getWiFiPasswd", "onSubscribe: ");
}
@Override
public void onNext(BaseResponse<List<WiFiAlias>> listBaseResponse) {
Log.e("getWiFiPasswd", "onNext: ");
if (listBaseResponse.code == 200) {
WiFiUtils.saveWiFiPasswd(listBaseResponse.data);
MMKV.defaultMMKV().encode("WiFiPassword", JsonParser.parseString(new Gson().toJson(listBaseResponse.data)).toString());
} else {
WiFiUtils.saveWiFiPasswd(listBaseResponse.data);
MMKV.defaultMMKV().encode("WiFiPassword", "");
Log.e("getWiFiPasswd", "onNext: msg = " + listBaseResponse.msg);
}
}
@Override
public void onError(Throwable e) {
Log.e("getWiFiPasswd", "onError: " + e.getMessage());
}
@Override
public void onComplete() {
Log.e("getWiFiPasswd", "onComplete: ");
}
});
}
private static int REQUEST_CODE = 12345;
public static void getRunLog(Context context) {
NetInterfaceManager.getInstance().getSnRunLogApiControl()
.subscribe(new Observer<BaseResponse<SnRunLog>>() {
@Override
public void onSubscribe(Disposable d) {
Log.e("getRunLog", "onSubscribe: ");
}
@Override
public void onNext(BaseResponse<SnRunLog> snRunLogBaseResponse) {
Log.e("getRunLog", "onNext: " + snRunLogBaseResponse);
if (snRunLogBaseResponse.code == OK) {
SnRunLog snRunLog = snRunLogBaseResponse.data;
LogcatService.setStart_Time(snRunLog.getStart_time());
LogcatService.setDuration(snRunLog.getDuration());
LogcatService.setFileMaxSize(snRunLog.getFile_max_size());
LogcatService.setClearFile(snRunLog.getIs_clear());
long timestamp = snRunLog.getStart_time() * 1000;
long nowTime = System.currentTimeMillis();
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
if (nowTime > timestamp) {
Intent intent = new Intent(LogcatService.LOGCAT_START_ACTION);
context.sendBroadcast(intent);
} else {
Intent intent = new Intent(LogcatService.LOGCAT_START_ACTION);
PendingIntent startPendingIntent = PendingIntent.getBroadcast(context,
REQUEST_CODE, intent,
PendingIntent.FLAG_CANCEL_CURRENT);
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP,
timestamp, startPendingIntent);
}
Intent intent = new Intent(LogcatService.LOGCAT_STOP_ACTION);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context,
REQUEST_CODE, intent,
PendingIntent.FLAG_CANCEL_CURRENT);
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP,
timestamp + snRunLog.getDuration() * 1000, pendingIntent);
} else {
}
}
@Override
public void onError(Throwable e) {
Log.e("getRunLog", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Log.e("getRunLog", "onComplete: ");
}
});
}
}

View File

@@ -14,7 +14,11 @@ import com.aoleyun.sn.bean.ForceDownloadBean;
import com.aoleyun.sn.bean.ForceDownloadData;
import com.aoleyun.sn.bean.LogoImg;
import com.aoleyun.sn.bean.NetAndLaunchBean;
import com.aoleyun.sn.bean.PoweroffBean;
import com.aoleyun.sn.bean.SnRunLog;
import com.aoleyun.sn.bean.StudentsInfo;
import com.aoleyun.sn.bean.WiFiAlias;
import com.aoleyun.sn.comm.PackageNames;
import com.aoleyun.sn.network.api.AppLimitApi;
import com.aoleyun.sn.network.api.DeselectIDApi;
import com.aoleyun.sn.network.api.ForceDownloadApi;
@@ -38,18 +42,24 @@ import com.aoleyun.sn.network.api.newapi.GetDeveloperApi;
import com.aoleyun.sn.network.api.newapi.GetEBagCodeApi;
import com.aoleyun.sn.network.api.newapi.GetLockStateApi;
import com.aoleyun.sn.network.api.newapi.GetJpushTagsApi;
import com.aoleyun.sn.network.api.newapi.GetPoweroffApi;
import com.aoleyun.sn.network.api.newapi.GetSnRunLogApi;
import com.aoleyun.sn.network.api.newapi.GetUploadLogApi;
import com.aoleyun.sn.network.api.newapi.GetWiFiAliasApi;
import com.aoleyun.sn.network.api.newapi.LogoImgApi;
import com.aoleyun.sn.network.api.newapi.MACAddressApi;
import com.aoleyun.sn.network.api.newapi.NewAppinsideWebApi;
import com.aoleyun.sn.network.api.newapi.ScreenLockStateApi;
import com.aoleyun.sn.network.api.newapi.SendDownloadInfoApi;
import com.aoleyun.sn.network.api.newapi.SendDownloadTimesApi;
import com.aoleyun.sn.network.api.newapi.SendRestoreTimesApi;
import com.aoleyun.sn.network.api.newapi.SendScreenshotApi;
import com.aoleyun.sn.network.api.newapi.SnTimeControlApi;
import com.aoleyun.sn.network.api.newapi.StudentsInfosApi;
import com.aoleyun.sn.network.api.newapi.TopAppControlApi;
import com.aoleyun.sn.network.api.newapi.UpdateDeviceInfoApi;
import com.aoleyun.sn.utils.MD5Util;
import com.aoleyun.sn.utils.SPUtils;
import com.aoleyun.sn.utils.Utils;
import org.jetbrains.annotations.NotNull;
@@ -103,19 +113,19 @@ public class NetInterfaceManager {
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) {
// Log.e(TAG, "intercept: " + e.getMessage());
// //异常的返回也是完成Http请求。在这里移除请求登记
// if (!TextUtils.isEmpty(e.toString()) && e.toString().contains(NetInterfaceManager.CUSTOM_REPEAT_REQ_PROTOCOL)) {
// Log.e("REPEAT-REQUEST", "移除请求1:" + requestKey + " --- " + Thread.currentThread().getName() + " URL = " + request.url());
// } else {
// requestIdsMap.remove(requestKey);
// }
// throw e;
// }
// 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());
@@ -144,19 +154,51 @@ public class NetInterfaceManager {
.build();
}
}
Response originalResponse = chain.proceed(request);
return originalResponse.newBuilder().build();
Response response = chain.proceed(request);
return response;
}
};
Interceptor interceptor = 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());
long time = System.currentTimeMillis();//请求时间
try {
if (requestIdsMap.size() > 0 && requestIdsMap.containsKey(requestKey)) {
Log.e("REPEAT-REQUEST", "重复请求:" + requestKey + " Method @" + request.method() + " --- " + " URL = " + request.url());
chain.call().cancel();
return new Response.Builder()
.protocol(Protocol.get(CUSTOM_REPEAT_REQ_PROTOCOL))
.request(request) //multi thread
.build();
}
requestIdsMap.put(requestKey, time);
Log.e("REPEAT-REQUEST", "注册请求:" + requestKey + " Method @" + request.method() + " --- " + " URL = " + request.url());
// Request.Builder builder = request.newBuilder();
// builder.addHeader("header", jsonObject.toString());
return chain.proceed(request);
} catch (IOException e) {
throw e;
} finally {
if (requestIdsMap.containsKey(requestKey) && requestIdsMap.containsValue(time)) {//请求任务完成删除map中的数据
requestIdsMap.remove(requestKey);
Log.e("REPEAT-REQUEST", "移除请求:" + requestKey + " Method @" + request.method() + " --- " + " URL = " + request.url());
}
}
}
};
//如果无法生存缓存文件目录,检测权限使用已经加上,检测手机是否把文件读写权限禁止了
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.connectTimeout(timeOut, TimeUnit.SECONDS); // 设置连接超时时间
builder.writeTimeout(timeOut, TimeUnit.SECONDS);// 设置写入超时时间
builder.readTimeout(timeOut, TimeUnit.SECONDS);// 设置读取数据超时时间
builder.retryOnConnectionFailure(true);// 设置进行连接失败重试
builder.addInterceptor(myHttpInterceptor);
builder.addNetworkInterceptor(mRequestInterceptor);
builder.addInterceptor(interceptor);
// builder.addInterceptor(myHttpInterceptor);
// builder.addNetworkInterceptor(mRequestInterceptor);
// 设置缓存文件路径
String cacheDirectory = mContext.getExternalCacheDir().getAbsolutePath() + "/OkHttpCache";
@@ -228,8 +270,16 @@ public class NetInterfaceManager {
JPushInterface.getRegistrationID(mContext),
Utils.getCustomVersion(),
BuildConfig.VERSION_NAME,
Utils.getAPPVersionName(mContext),
Utils.getAndroid7MAC()
Utils.getAPPVersionName(PackageNames.APPSTORE, mContext),
Utils.getAPPVersionName(PackageNames.DESKTOP, mContext),
Utils.getAndroid7MAC(),
Utils.obtainWifiInfo(mContext),
(String) SPUtils.get(mContext, "PublicIP", ""),
Utils.getIPAddress(mContext),
Utils.getBluetoothList(),
Utils.getWifiAlias(mContext),
Utils.getAPPVersionName(PackageNames.BROWSER, mContext),
Utils.getAPPVersionName(PackageNames.NOTIFICATIONS, mContext)
)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
@@ -387,6 +437,35 @@ public class NetInterfaceManager {
.observeOn(AndroidSchedulers.mainThread());
}
public Observable<BaseResponse> getRestoreTimesApi() {
return mRetrofit.create(SendRestoreTimesApi.class)
.sendRestoreTimes(Utils.getSerial())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
public Observable<BaseResponse<List<WiFiAlias>>> getWiFiControl() {
return mRetrofit.create(GetWiFiAliasApi.class)
.getWiFiAlias(Utils.getSerial())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
public Observable<BaseResponse<List<PoweroffBean>>> getPoweroffTimeControl() {
return mRetrofit.create(GetPoweroffApi.class)
.getPoweroffTime(Utils.getSerial())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
public Observable<BaseResponse<SnRunLog>> getSnRunLogApiControl() {
return mRetrofit.create(GetSnRunLogApi.class)
.GetSnRunLog(Utils.getSerial())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
/*
*
* API
@@ -463,4 +542,9 @@ public class NetInterfaceManager {
public SendScreenshotApi getScreenshotApi() {
return mRetrofit.create(SendScreenshotApi.class);
}
public GetUploadLogApi getUploadLogApi() {
return mRetrofit.create(GetUploadLogApi.class);
}
}

View File

@@ -48,7 +48,7 @@ public class UrlAddress {
//上传截图
public static final String SEND_SCREENSHOT = "Screenshot/addImg";
//上传我的设备
//public static final String UPDATE_DEVICEINFO = "Mac/getInfo";
public static final String UPDATE_DEVICEINFO = "Mac/getInfo";
//获取霸屏状态
public static final String GET_LOCK_SCREEN_STATE = "Sn/getSnScreen";
//获取默认桌面升级
@@ -71,6 +71,16 @@ public class UrlAddress {
public static final String GET_EBAG_CODE = "And/getEbagCode";
//获取系统默认程序
public static final String GET_DEFAULT_APP = "app/getDefaultApp";
//恢复出厂设置次数
public static final String SEND_RESTORE_TIMES = "And/restore";
//获取远程关机时间
public static final String GET_POWEROFF_TIME = "And/getTimedShutdown";
//获取WiFi名和密码
public static final String GET_WIFI_ALIAS_PW = "And/getWifi";
//获取log任务
public static final String GET_LOG_ORDER = "And/getSnRunLog";
//上传log文件
public static final String UPLOAD_LOG_FILE = "And/uploadLogFile";
//获取公网IP
public static final String SHOUHU_CITYJSON = "http://pv.sohu.com/cityjson/";

View File

@@ -0,0 +1,20 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.PoweroffBean;
import com.aoleyun.sn.network.UrlAddress;
import java.util.List;
import io.reactivex.Observable;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
public interface GetPoweroffApi {
@FormUrlEncoded
@POST(UrlAddress.GET_POWEROFF_TIME)
Observable<BaseResponse<List<PoweroffBean>>> getPoweroffTime(
@Field("sn") String sn
);
}

View File

@@ -0,0 +1,16 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.SnRunLog;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.Observable;
import retrofit2.http.GET;
import retrofit2.http.Query;
public interface GetSnRunLogApi {
@GET(UrlAddress.GET_LOG_ORDER)
Observable<BaseResponse<SnRunLog>> GetSnRunLog(
@Query("sn") String sn
);
}

View File

@@ -0,0 +1,25 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.SnRunLog;
import com.aoleyun.sn.network.UrlAddress;
import java.util.Map;
import io.reactivex.Observable;
import okhttp3.MultipartBody;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.QueryMap;
public interface GetUploadLogApi {
@Multipart
@POST(UrlAddress.UPLOAD_LOG_FILE)
Observable<BaseResponse<SnRunLog>> GetSnRunLog(
@QueryMap Map<String, String> params,
@Part MultipartBody.Part body
);
}

View File

@@ -0,0 +1,28 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.WiFiAlias;
import com.aoleyun.sn.network.UrlAddress;
import java.util.List;
import io.reactivex.Observable;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
/**
* @author : fanhuitong
* e-mail :
* @date : 2021/10/26 10:07
* desc :
* version: 1.0
*/
public interface GetWiFiAliasApi {
@FormUrlEncoded
@POST(UrlAddress.GET_WIFI_ALIAS_PW)
Observable<BaseResponse<List<WiFiAlias>>> getWiFiAlias(
@Field("sn") String sn
);
}

View File

@@ -18,6 +18,14 @@ public interface MACAddressApi {
@Field("devices_version") String devicesVersion,
@Field("appstore_version") String appstoreVersion,
@Field("store_version") String storeVersion,
@Field("local_mac") String local_mac
@Field("desktop_version") String desktop_version,
@Field("local_mac") String local_mac,
@Field("wifi_status") int wifi_status,
@Field("PN_ip") String PN_ip,
@Field("LAN_ip") String LAN_ip,
@Field("bluetooth") String bluetooth,
@Field("wifi_name") String wifi_name,
@Field("browser_version") String browser_version,
@Field("notice_version") String notice_version
);
}

View File

@@ -0,0 +1,24 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.Observable;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
/**
* @author : fanhuitong
* e-mail :
* @date : 2021/10/2115:02
* desc :
* version: 1.0
*/
public interface SendRestoreTimesApi {
@FormUrlEncoded
@POST(UrlAddress.SEND_RESTORE_TIMES)
Observable<BaseResponse> sendRestoreTimes(
@Field("sn") String sn
);
}

View File

@@ -3,19 +3,21 @@ package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.UrlAddress;
import java.util.Map;
import io.reactivex.Observable;
import okhttp3.MultipartBody;
import retrofit2.http.Field;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.QueryMap;
public interface SendScreenshotApi {
@Multipart
@POST(UrlAddress.SEND_SCREENSHOT)
Observable<BaseResponse> sendScreenshot(
@Field("sn") String sn,
@Field("createtime") long createtime,
@QueryMap Map<String, String> params,
@Part MultipartBody.Part body
);
}

View File

@@ -1,5 +1,7 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.Observable;
import okhttp3.ResponseBody;
import retrofit2.http.Field;
@@ -8,7 +10,7 @@ import retrofit2.http.POST;
public interface UpdateDeviceInfoApi {
@FormUrlEncoded
@POST("Mac/getInfo")
@POST(UrlAddress.UPDATE_DEVICEINFO)
Observable<ResponseBody> updateDeviceInfo(
@Field("sn") String sn,
@Field("key") String key,