version:1.0

update:2021-10-13 18:52:13
fix:去除okgo,rxAndroid1,优化依赖
add:切换到奥乐云平台
This commit is contained in:
2021-10-13 18:54:20 +08:00
parent 13707fc96a
commit 3018660216
181 changed files with 2343 additions and 4445 deletions

View File

@@ -0,0 +1,856 @@
package com.aoleyun.sn.network;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Handler;
import android.os.Message;
import android.provider.Settings;
import android.text.TextUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.aoleyun.sn.action.JGYActions;
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.Logutils;
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.jpush.TagAliasOperatorHelper;
import com.aoleyun.sn.manager.NetInterfaceManager;
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.MainService;
import com.aoleyun.sn.utils.ApkUtils;
import com.aoleyun.sn.utils.ForegroundAppUtil;
import com.aoleyun.sn.utils.Logger;
import com.aoleyun.sn.utils.SPUtils;
import com.aoleyun.sn.utils.TimeUtils;
import com.aoleyun.sn.utils.Utils;
import com.trello.rxlifecycle2.android.ActivityEvent;
import java.io.IOException;
import java.lang.reflect.Type;
import java.util.Arrays;
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 okhttp3.Call;
import okhttp3.Response;
import okhttp3.ResponseBody;
import static com.aoleyun.sn.jpush.TagAliasOperatorHelper.ACTION_SET;
import static com.aoleyun.sn.jpush.TagAliasOperatorHelper.sequence;
public class HTTPInterface {
private static final String TAG = HTTPInterface.class.getSimpleName();
private static final int OK = 200;
private static void installTestAPK(final Context context, JSONObject jsonObject) {
final String url = jsonObject.getString("app_url");
int versionCode = jsonObject.getInteger("app_version_code");
final String packageName = jsonObject.getString("app_package");
String app_name = jsonObject.getString("app_name");
String app_md5 = jsonObject.getString("app_md5");
final com.alibaba.fastjson.JSONObject object = new com.alibaba.fastjson.JSONObject();
object.put("app_name", app_name);
object.put("app_package", packageName);
object.put("MD5", app_md5);
PackageManager pm = context.getPackageManager();
PackageInfo packageInfo = null;
try {
packageInfo = pm.getPackageInfo(packageName, 0);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
if (packageInfo == null || packageInfo.versionCode < versionCode) {
Utils.ariaDownload(context, url, object);
} else {
Logutils.e("installTestAPK", "APK: " + "无更新");
}
}
synchronized public static void setJpushTags(final Context context) {
NetInterfaceManager.getInstance()
.getJpushTagsObservable()
.subscribe(new Observer<BaseResponse>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Logutils.e(TAG + ":" + "setJpushTags", "onSubscribe: ");
}
@Override
public void onNext(@NonNull BaseResponse response) {
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);
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);
}
}
});
setTag(context, set);
} else {
Logutils.e(TAG + ":" + "setJpushTags", "onNext: " + "batch empty");
}
} else {
Logutils.e(TAG + ":" + "setJpushTags", "onNext: " + response.toString());
}
}
@Override
public void onError(@NonNull Throwable e) {
Logutils.e(TAG + ":" + "setJpushTags", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Logutils.e(TAG + ":" + "setJpushTags", "onComplete: ");
}
});
}
private static void setTag(Context context, Set set) {
TagAliasOperatorHelper.TagAliasBean tagAliasBean = new TagAliasOperatorHelper.TagAliasBean();
tagAliasBean.action = ACTION_SET;
sequence++;
tagAliasBean.tags = set;
tagAliasBean.isAliasAction = false;
TagAliasOperatorHelper.getInstance().handleAction(context, sequence, tagAliasBean);
}
public interface GetAppinsideWebCallback {
void onComplete();
}
synchronized public static void getAppinsideWeb(Context context, GetAppinsideWebCallback callback) {
if (JGYUtils.getInstance().checkAppPlatform() == JGYUtils.MTKPlatform) {
Logutils.e(TAG, "getAppinsideWeb: " + "setAppinsideWeb");
setAppinsideWeb(callback);
} else {
Logutils.e(TAG, "getAppinsideWeb: " + "setNewAppinsideWeb");
setNewAppinsideWeb(callback);
// setAppinsideWeb(callback);
}
}
private static void setAppinsideWeb(GetAppinsideWebCallback callback) {
NetInterfaceManager.getInstance()
.getAppinsideWebObservable()
.observeOn(Schedulers.io())
.subscribe(new Observer<BaseResponse<List<Appground>>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Logutils.e("setAppinsideWeb", "onSubscribe: ");
}
@Override
public void onNext(@NonNull BaseResponse<List<Appground>> listBaseResponse) {
Logutils.e("setAppinsideWeb", "onNext: " + listBaseResponse);
JGYUtils.getInstance().setAppinsideWeb(listBaseResponse);
}
@Override
public void onError(@NonNull Throwable e) {
Logutils.e("setAppinsideWeb", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Logutils.e("setAppinsideWeb", "onComplete: ");
callback.onComplete();
}
});
}
private static void setNewAppinsideWeb(GetAppinsideWebCallback callback) {
NetInterfaceManager.getInstance()
.getNewAppinsideWebObservable()
.observeOn(Schedulers.io())
.subscribe(new Observer<BaseResponse>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Logutils.e("getNewAppinsideWeb", "onSubscribe: ");
}
@Override
public void onNext(@NonNull BaseResponse listBaseResponse) {
Logutils.e("getNewAppinsideWeb", "onNext: " + listBaseResponse);
long time1 = System.currentTimeMillis();
JGYUtils.getInstance().setNewAppinsideWeb(listBaseResponse);
Logutils.e(TAG, "setWhiteApp: time = " + (System.currentTimeMillis() - time1));
}
@Override
public void onError(@NonNull Throwable e) {
Logutils.e("getNewAppinsideWeb", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Logutils.e("getNewAppinsideWeb", "onComplete: ");
callback.onComplete();
}
});
}
private static void sendAllweb(Context context) {
Intent intent = new Intent("qch_app_website")
.setPackage("com.android.settings");
intent.putExtra("package_name", "Invalid");
context.sendBroadcast(intent);
}
private static void sendwebUrl(Context context) {
Intent intent = new Intent("qch_app_inside_website")
.setPackage("com.android.settings");
intent.putExtra("websitelist", "Invalid");
context.sendBroadcast(intent);
}
//设置浏览器黑白名单
synchronized public static void setBrowserBlackList(final Context context) {
NetInterfaceManager.getInstance()
.getBrowserListSettingObservable()
.observeOn(Schedulers.io())
.subscribe(new Observer<BaseResponse<BrowserData>>() {
@Override
public void onSubscribe(Disposable d) {
Logutils.e("setBrowserBlackList", "onSubscribe: ");
}
@Override
public void onNext(BaseResponse<BrowserData> browserDataBaseResponse) {
Logutils.e("setBrowserBlackList", "onNext: ");
String homePage = Settings.System.getString(context.getContentResolver(), "homepagURL");
if (browserDataBaseResponse.code == 200) {
BrowserData data = browserDataBaseResponse.data;
String white = data.getWhite();
if (!TextUtils.isEmpty(white)) {
if (!TextUtils.isEmpty(homePage) && !white.contains(homePage)) {
white += "," + homePage;
}
boolean DeselectBrowserArray = Settings.System.putString(context.getContentResolver(), "DeselectBrowserArray", white);
Logutils.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);
} else {
Settings.System.putString(context.getContentResolver(), "qch_webblack_url", " ");
}
String white_ip = data.getWhite_ip();
if (!TextUtils.isEmpty(white_ip)) {
SPUtils.put(context, "white_ip", white_ip);
} else {
SPUtils.put(context, "white_ip", " ");
}
String black_ip = data.getBlack_ip();
if (!TextUtils.isEmpty(black_ip)) {
SPUtils.put(context, "black_ip", black_ip);
} else {
SPUtils.put(context, "black_ip", " ");
}
} else {
Settings.System.putString(context.getContentResolver(), "DeselectBrowserArray", homePage);
Settings.System.putString(context.getContentResolver(), "qch_webblack_url", " ");
SPUtils.put(context, "white_ip", " ");
SPUtils.put(context, "black_ip", " ");
}
}
@Override
public void onError(Throwable e) {
Logutils.e("setBrowserBlackList", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Logutils.e("setBrowserBlackList", "onComplete: ");
new URLUtils(context).setBrowserWhiteList();
new URLUtils(context).setBrowserBlackList();
}
});
}
public interface BookmarksCallback {
void onSubscribe();
void onNext();
void onError(Throwable e);
void onComplete();
}
/**
* @param context
* @param callback
*/
@SuppressLint("NewApi")
synchronized public static void getHomePageBookmarks(Context context, BookmarksCallback callback) {
NetInterfaceManager.getInstance()
.getBrowserBookmarksObservable()
.observeOn(Schedulers.io())
.subscribe(new Observer<BaseResponse<BrowserBookmarks>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
if (callback != null) {
callback.onSubscribe();
}
Logutils.e("getHomePageBookmarks", "onSubscribe: ");
}
@Override
public void onNext(@NonNull BaseResponse<BrowserBookmarks> browserBookmarksBaseResponse) {
if (callback != null) {
callback.onNext();
}
Logutils.e("getHomePageBookmarks", "onNext: ");
if (browserBookmarksBaseResponse.code == 200) {
//主页不包含白名单添加进去
String homepagURL = browserBookmarksBaseResponse.data.getHomepage();
Logutils.e("getHomePageBookmarks ", "homepagURL: " + homepagURL);
String oldHome = Settings.System.getString(context.getContentResolver(), "homepagURL");
Logutils.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());
}
}
boolean home = Settings.System.putString(context.getContentResolver(), "homepagURL", homepagURL);
Logutils.e("getHomePageBookmarks", "onNext: homepagURL: save homepagURL = " + home);
String whitelist = Settings.System.getString(context.getContentResolver(), "DeselectBrowserArray");
Logutils.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);
// } else {
// Logutils.e("getHomePageBookmarks", "onNext: whitelist is NULL");
// boolean white = Settings.System.putString(context.getContentResolver(), "DeselectBrowserArray", homepagURL);
// Logutils.e("getHomePageBookmarks", "onNext: homepagURL: homepagURL = " + homepagURL + "write: " + white);
// }
//书签
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)) {
HashSet<String> labels = new HashSet<>(Arrays.asList(labelpage.split(",")));
// List<String> urlList = new ArrayList<>();
// for (String urls : labels) {
// urlList.add(JGYUtils.getPrefixHttpsURL(urls));
// }
String join = String.join(",", labels);
Logutils.e("getHomePageBookmarks", "onNext: getHomePageBookmarks: " + join);
websiteBookMark.putExtra("websiteBookMark", join);
} else {
websiteBookMark.putExtra("websiteBookMark", "Invalid");
}
context.sendBroadcast(websiteBookMark);
context.sendBroadcast(websiteBookMark);
context.sendBroadcast(websiteBookMark);
//主页
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)) {
// String newHomePage = JGYUtils.getPrefixHttpsURL(homepagURL);
Logutils.e("getHomePageBookmarks", "onNext: newHomePage: " + homepagURL);
homepag.putExtra("homepage", homepagURL);
} else {
homepag.putExtra("homepage", "Invalid");
}
context.sendBroadcast(homepag);
context.sendBroadcast(homepag);
context.sendBroadcast(homepag);
} 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");
context.sendBroadcast(intent1);
Settings.System.putString(context.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");
context.sendBroadcast(intent2);
}
}
@Override
public void onError(@NonNull Throwable e) {
if (callback != null) {
callback.onError(e);
}
Logutils.e("getHomePageBookmarks", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
if (callback != null) {
callback.onComplete();
}
Logutils.e("getHomePageBookmarks", "onComplete: ");
setBrowserBlackList(context);
}
});
}
public static void setHideDesktopIcon(final Context context) {
NetInterfaceManager.getInstance()
.getDesktopIconObservable()
.observeOn(Schedulers.io())
.subscribe(new Observer<BaseResponse>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Logutils.e(TAG + ":" + "getDesktopIcon", "onSubscribe: ");
}
@Override
public void onNext(@NonNull BaseResponse response) {
Logutils.e(TAG + ":" + "getDesktopIcon", "onNext: ");
ApkUtils.showAllAPP(context);
if (response.code == OK) {
String data = response.data.toString();
Logutils.e(TAG + ":" + "getDesktopIcon", "data: " + data);
if (!TextUtils.isEmpty(data)) {
List<String> newList = Arrays.asList(data.split(","));//新的list
PackageManager pm = context.getPackageManager();
for (String pack : newList) {
try {
// TODO: 2021/5/24 需要后端替换包名,暂时解决方案
try {
if ("com.mediatek.camera".equals(pack)) {
pm.setApplicationEnabledSetting("com.android.camera2", PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0);
}
if ("com.android.mms".equals(pack)) {
pm.setApplicationEnabledSetting("com.android.messaging", PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0);
}
} catch (Exception ex) {
Logutils.e(TAG + ":" + "getDesktopIcon", "Exception: ex: " + ex.getMessage());
}
pm.setApplicationEnabledSetting(pack, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0);
Logutils.e(TAG + ":" + "getDesktopIcon", pack);
} catch (Exception e) {
Logutils.e(TAG + ":" + "getDesktopIcon", "Exception: " + e.getMessage());
}
}
}
} else {
Logutils.e(TAG + ":" + "getDesktopIcon", "onNext: " + response.toString());
}
}
@Override
public void onError(@NonNull Throwable e) {
Logutils.e(TAG + ":" + "getDesktopIcon", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Logutils.e(TAG + ":" + "getDesktopIcon", "onComplete: ");
}
});
}
@SuppressLint("NewApi")
synchronized public static void updateDeviceInfo(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.put("address", address);
jsonObject.put("longitude", longitude);
jsonObject.put("latitude", latitude);
String add = jsonObject.toJSONString();
UpdateDeviceInfoApi updateDeviceInfo = NetInterfaceManager.getInstance().getUpdateDeviceInfo();
updateDeviceInfo.updateDeviceInfo(
Utils.getSerial(),
NetInterfaceManager.HTTP_KEY,
Utils.getMachine(context),
Utils.getHardware(context),
add
)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<ResponseBody>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(ResponseBody responseBody) {
try {
Logutils.e("updateDeviceInfo", "上传的结果" + responseBody.string());
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onError(Throwable e) {
Logutils.e("updateDeviceInfo", e.getMessage());
}
@Override
public void onComplete() {
}
});
ApkUtils.getAppInfo(context);
}
public static void getSnTimeControl(final Context context) {
SnTimeControlApi snTimeControl = NetInterfaceManager.getInstance().getSnTimeControlApi();
snTimeControl.getSnTimeControl(Utils.getSerial())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<BaseResponse>() {
@Override
public void onSubscribe(Disposable d) {
Logutils.e(TAG, "onSubscribe: ");
}
@Override
public void onNext(BaseResponse response) {
int code = response.code;
if (code == 200) {
JSONObject jsonObject = (JSONObject) JSON.toJSON(response.data);
String start_time = jsonObject.getString("start_time");
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());
}
} else {
TimeUtils.setEmpty(context);
TimeUtils.ContralTime c = TimeUtils.getDefaltContralTime(context);
if (null != c) {
Logutils.e("getTimeControl", c.toString());
}
}
}
@Override
public void onError(Throwable e) {
Logutils.e("getSnTimeControl", "onError: " + e.getMessage());
}
@Override
public void onComplete() {
Intent intent = new Intent();
intent.setAction(MainService.TimeChangedReceiver.ACTION_UPDATE);
context.sendBroadcast(intent);
}
});
}
public static void getTopAppControl(final Context context) {
TopAppControlApi topAppControl = NetInterfaceManager.getInstance().getTopAppControlApi();
topAppControl.getSnAppControl(Utils.getSerial())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<BaseResponse>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(BaseResponse response) {
if (response.code == 200) {
JSONObject jsonObject = (JSONObject) JSON.toJSON(response.data);
String app_package = jsonObject.getString("app_package");
SPUtils.put(context, ForegroundAppUtil.TOPAPP_KEY, app_package);
ForegroundAppUtil.setTopAppClass(context, app_package);
ForegroundAppUtil.openTopApp(context);
} else {
SPUtils.put(context, ForegroundAppUtil.TOPAPP_KEY, "");
ForegroundAppUtil.setTopAppClass(context, "");
}
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
}
public static void getAppLimit(Context context) {
NetInterfaceManager.getInstance()
.getAppLimitObservable()
.subscribe(new Observer<ResponseBody>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Logutils.e("getAppLimit", "onSubscribe: ");
}
@Override
public void onNext(@NonNull ResponseBody responseBody) {
try {
String bodyString = responseBody.string();
Logutils.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);
JGYUtils.getInstance().writeAppPackageList(context, data);
JGYUtils.getInstance().deleteOtherApp();
} else {
Logutils.e("getAppLimit", "onNext: " + bodyString);
}
} catch (IOException e) {
e.printStackTrace();
Logutils.e("getAppLimit", "onNext: IOException: " + e.getMessage());
}
}
@Override
public void onError(@NonNull Throwable e) {
Logutils.e("getAppLimit", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Logutils.e("getAppLimit", "onComplete: ");
getAllAppList(context);
}
});
}
public static void getAllAppList(Context context) {
NetInterfaceManager.getInstance().GetAllAppApi()
.getAllAppList(NetInterfaceManager.HTTP_KEY, Utils.getSerial())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<BaseResponse<List<AppListInfo>>>() {
@Override
public void onSubscribe(Disposable d) {
Logutils.e("getAllAppList", "onSubscribe: ");
}
@Override
public void onNext(BaseResponse<List<AppListInfo>> listBaseResponse) {
Logutils.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);
}
}
@Override
public void onError(Throwable e) {
Logutils.e("getAllAppList", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Logutils.e("getAllAppList", "onComplete: ");
getForceDownload(context);
}
});
}
public static void getForceDownload(Context context) {
NetInterfaceManager.getInstance()
.getForceDownloadObservable()
.subscribe(new Observer<ForceDownloadBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Logutils.e(TAG + ":" + "getForceDownload", "onSubscribe: ");
}
@Override
public void onNext(@NonNull ForceDownloadBean forceDownloadBean) {
Logutils.e(TAG + ":" + "getForceDownload", "onNext: ");
switch (forceDownloadBean.getCode()) {
case 200:
Logutils.e(TAG + ":" + "getForceDownload", "isDownloading=" + BaseApplication.getInstance().isDownloading());
BaseApplication.getInstance().checkIsDownloading();
if (!BaseApplication.getInstance().isDownloading()) {
Type type = new TypeToken<List<ForceDownloadData>>() {
}.getType();
Gson gson = new Gson();
List<ForceDownloadData> forceDownloadData = gson.fromJson(gson.toJson(forceDownloadBean.getData()), type);
JGYUtils.getInstance().forceDownload(forceDownloadData);
} else {
Aria.download(this).resumeAllTask();
}
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);
break;
default:
Logutils.e(TAG + ":" + "getForceDownload", forceDownloadBean.getMsg());
break;
}
}
@Override
public void onError(@NonNull Throwable e) {
Logutils.e(TAG + ":" + "getForceDownload", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Logutils.e(TAG + ":" + "getForceDownload", "onComplete: ");
}
});
}
public static void getAppAutoStartUpdateAndNet(List<AppListInfo> appListInfos) {
NetInterfaceManager.getInstance()
.getAppAutoStartUpdateAndNetObservable()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<NetAndLaunchBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Logutils.e("getAppAutoStartUpdateAndNet", "onSubscribe: ");
}
@Override
public void onNext(@NonNull NetAndLaunchBean netAndLaunchBean) {
Logutils.e("getAppAutoStartUpdateAndNet", "onNext: " + netAndLaunchBean.toString());
if (netAndLaunchBean.getCode() == 200) {
JGYUtils.getInstance().setNetAndlaunch(netAndLaunchBean, appListInfos);
} else {
Logutils.e("getAppAutoStartUpdateAndNet", "onNext: " + netAndLaunchBean.toString());
}
}
@Override
public void onError(@NonNull Throwable e) {
Logutils.e("getAppAutoStartUpdateAndNet", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Logutils.e("getAppAutoStartUpdateAndNet", "onComplete: ");
}
});
}
synchronized public static void getNetAndLaunchSetting(final Context context) {
NetInterfaceManager.getInstance()
.getAppAutoStartUpdateAndNetObservable()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<NetAndLaunchBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Logutils.e("getNetAndLaunchSetting", "onSubscribe: ");
}
@Override
public void onNext(@NonNull NetAndLaunchBean netAndLaunchBean) {
Logutils.e("getNetAndLaunchSetting", "onNext: " + netAndLaunchBean.toString());
if (netAndLaunchBean.getCode() == 200) {
JGYUtils.getInstance().setNetAndlaunch(netAndLaunchBean);
} else {
Logutils.e("getNetAndLaunchSetting", "onNext: " + netAndLaunchBean.toString());
}
}
@Override
public void onError(@NonNull Throwable e) {
Logutils.e("getNetAndLaunchSetting", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Logutils.e("getNetAndLaunchSetting", "onComplete: ");
}
});
}
}

View File

@@ -0,0 +1,79 @@
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;
// 下载接口 根据包名匹配 请求后更新下载次数
public static final String SEND_DOWNLOAD_TIMES = "count/index";
//app下载完成发送下载次数
public static final String SEND_DOWNLOAD_FILE_INFO = "app/downloadApp";
//获取设备锁定状态
public static final String GET_DEVICES_LOCKED = "lock/index";
//发送设备信息
public static final String SEND_DEVICES = "Mac/getMac";
//发送app使用情况
public static final String GET_APP_LOG = "Applog/getAppLog";
//更新接口
public static final String CHECK_UPDATE = "Silent/silent";
//获取设备标签
public static final String GET_DEVICES_TAGS = "Sn/getSnTag";
//删除Aliases
public static final String DELETE_GEDEVICE_ALIAS = "Sn/deleteAliases";
//浏览器书签主页设置
public static final String SET_HOMEPAG_TAG = "Label";
//app内部网页管控
public static final String SET_APPINSIDEWEB = "Appground";
//浏览器黑白名单地址
public static final String SET_BROWSER_LIST = "browser";
//强制安装应用
public static final String GET_FORCE_INSTALL_LIST = "forceinstall/index";
//应用白名单
public static final String SET_WHITE_PACKAGE_LIST = "firmware/index";
//获取隐藏桌面图标
public static final String GET_HIDE_DESKTOPICON = "Icon";
//获取应用升级自启
public final static String NET_AND_LAUNCH_API = "automatic/get";
//通过sn获取信息
public static final String GET_STUDENTS_INFO = "Sn/getStudent";
//上传截图
public static final String SEND_SCREENSHOT = "Screenshot/addImg";
//上传我的设备
//public static final String UPDATE_DEVICEINFO = "Mac/getInfo";
//获取霸屏状态
public final static String GET_LOCK_SCREEN_STATE = "Sn/getSnScreen";
//获取默认桌面升级
public final static String GET_DESKTOP = "Sn/getSnDesktop";
//获取时间管控
public final static String GET_SN_TIME_CONTROL = "Sn/getSnTimeControl";
//获取顶部app管控
public final static String GET_TOP_APP_CONTROL = "Sn/getSnAppControl";
//获取测试app
public final static String GET_SN_APP_TEST = "Sn/getSnAppTest";
//开机动画
public final static String GET_LOGO_IMG = "Sn/getLogoImg";
//开发人员选项开关
public final static String GET_DEVELOPER = "Sn/getDeveloper";
//通过固件名获取内置应用
public final static String GET_ROM_APP = "And/getFirmwareApp";
//获取全部应用
public final static String GET_ALL_APP = "recommend/index";
//获取电子书包激活码
public final static String GET_EBAG_CODE = "And/getEbagCode";
//获取系统默认程序
public final static String GET_DEFAULT_APP = "app/getDefaultApp";
//删除alias
public static final String DELETE_JPUSH_ALIAS = "https://device.jpush.cn/v3/aliases/";
//删除tags
public static final String DELETE_JPUSH_TAG = "https://device.jpush.cn/v3/tags/";
}

View File

@@ -0,0 +1,18 @@
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.network.URLAddress;
import io.reactivex.Observable;
import okhttp3.ResponseBody;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
public interface AppLimitApi {
@FormUrlEncoded
@POST(URLAddress.SET_WHITE_PACKAGE_LIST)
Observable<ResponseBody> getAppLimitApi(
@Field("key") String key,
@Field("sn") String sn
);
}

View File

@@ -0,0 +1,16 @@
package com.aoleyun.sn.network.api;
import io.reactivex.Observable;
import okhttp3.ResponseBody;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
public interface DeselectIDApi {
@FormUrlEncoded
@POST("application/index")
Observable<ResponseBody> getDeselectIDApi(
@Field("key") String key,
@Field("sn") String sn
);
}

View File

@@ -0,0 +1,18 @@
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.ForceDownloadBean;
import com.aoleyun.sn.network.URLAddress;
import io.reactivex.Observable;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
public interface ForceDownloadApi {
@FormUrlEncoded
@POST(URLAddress.GET_FORCE_INSTALL_LIST)
Observable<ForceDownloadBean> getForceDownloadApi(
@Field("key") String key,
@Field("sn") String sn
);
}

View File

@@ -0,0 +1,18 @@
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.NetAndLaunchBean;
import com.aoleyun.sn.network.URLAddress;
import io.reactivex.Observable;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
public interface NetAndLaunchApi {
@FormUrlEncoded
@POST(URLAddress.NET_AND_LAUNCH_API)
Observable<NetAndLaunchBean> getNetAndLaunchApi(
@Field("key") String key,
@Field("sn") String sn
);
}

View File

@@ -0,0 +1,17 @@
package com.aoleyun.sn.network.api;
import io.reactivex.Observable;
import okhttp3.ResponseBody;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
public interface SystemSettingApi {
@FormUrlEncoded
@POST("firmware/get")
Observable<ResponseBody> getSystemSettingApi(
@Field("key") String key,
@Field("sn") String sn
);
}

View File

@@ -0,0 +1,17 @@
package com.aoleyun.sn.network.api;
import io.reactivex.Observable;
import okhttp3.ResponseBody;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
public interface UploadAppInfoApi {
@FormUrlEncoded
@POST("log/index")
Observable<ResponseBody> getUploadAppInfoApi(
@Field("key") String key,
@Field("sn") String sn,
@Field("app_infoes") String json
);
}

View File

@@ -0,0 +1,22 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.Appground;
import com.aoleyun.sn.bean.BaseResponse;
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 AppinsideWebApi {
@FormUrlEncoded
@POST(URLAddress.SET_APPINSIDEWEB)
Observable<BaseResponse<List<Appground>>> getAppinsideWeb(
@Field("key") String key,
@Field("sn") String sn
);
}

View File

@@ -0,0 +1,19 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.BrowserBookmarks;
import com.aoleyun.sn.network.URLAddress;
import io.reactivex.Observable;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
public interface BrowserBookmarksApi {
@FormUrlEncoded
@POST(URLAddress.SET_HOMEPAG_TAG)
Observable<BaseResponse<BrowserBookmarks>> getBrowserBookmarks(
@Field("key") String key,
@Field("sn") String sn
);
}

View File

@@ -0,0 +1,19 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.BrowserData;
import com.aoleyun.sn.network.URLAddress;
import io.reactivex.Observable;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
public interface BrowserListApi {
@FormUrlEncoded
@POST(URLAddress.SET_BROWSER_LIST)
Observable<BaseResponse<BrowserData>> getBrowserList(
@Field("key") String key,
@Field("sn") String sn
);
}

View File

@@ -0,0 +1,18 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.ForceDownloadData;
import com.aoleyun.sn.network.URLAddress;
import java.util.List;
import io.reactivex.Observable;
import retrofit2.http.GET;
import retrofit2.http.Query;
public interface CheckTestUpdateApi {
@GET(URLAddress.GET_SN_APP_TEST)
Observable<BaseResponse<List<ForceDownloadData>>> getTestUpdate(
@Query("sn") String sn
);
}

View File

@@ -0,0 +1,19 @@
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;
public interface CheckUpdateApi {
@FormUrlEncoded
@POST(URLAddress.CHECK_UPDATE)
//1MTK平台 2展锐平台
Observable<BaseResponse> getUpdate(
@Field("package") String packages,
@Field("type") int type
);
}

View File

@@ -0,0 +1,18 @@
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;
public interface CustomROMAppApi {
@FormUrlEncoded
@POST(URLAddress.GET_ROM_APP)
Observable<BaseResponse> getROMApp(
@Field("key") String key,
@Field("version_number") String version_number
);
}

View File

@@ -0,0 +1,16 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.DefaultApp;
import com.aoleyun.sn.network.URLAddress;
import io.reactivex.Observable;
import retrofit2.http.GET;
import retrofit2.http.Query;
public interface DefaultAppApi {
@GET(URLAddress.GET_DEFAULT_APP)
Observable<BaseResponse<DefaultApp>> getDefaultApp(
@Query("sn") String sn
);
}

View File

@@ -0,0 +1,18 @@
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;
public interface DesktopIconApi {
@FormUrlEncoded
@POST(URLAddress.GET_HIDE_DESKTOPICON)
Observable<BaseResponse> getDesktopIcon(
@Field("key") String key,
@Field("sn") String sn
);
}

View File

@@ -0,0 +1,17 @@
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;
public interface DevicesLockedStateApi {
@FormUrlEncoded
@POST(URLAddress.GET_DEVICES_LOCKED)
Observable<BaseResponse> getLockedState(
@Field("sn") String sn
);
}

View File

@@ -0,0 +1,21 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.AppListInfo;
import com.aoleyun.sn.bean.BaseResponse;
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 GetAllAppApi {
@FormUrlEncoded
@POST(URLAddress.GET_ALL_APP)
Observable<BaseResponse<List<AppListInfo>>> getAllAppList(
@Field("key") String key,
@Field("sn") String sn
);
}

View File

@@ -0,0 +1,19 @@
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;
public interface GetAppLogApi {
@FormUrlEncoded
@POST(URLAddress.GET_APP_LOG)
Observable<BaseResponse> getAppLog(
@Field("sn") String sn,
@Field("random") String random,
@Field("data") String data
);
}

View File

@@ -0,0 +1,15 @@
package com.aoleyun.sn.network.api.newapi;
import io.reactivex.Observable;
import okhttp3.ResponseBody;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
public interface GetBatchApi {
@FormUrlEncoded
@POST("log/getBatch")
Observable<ResponseBody> getBatch(
@Field("sn") String sn
);
}

View File

@@ -0,0 +1,15 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.network.URLAddress;
import io.reactivex.Observable;
import okhttp3.ResponseBody;
import retrofit2.http.GET;
import retrofit2.http.Query;
public interface GetDesktopApi {
@GET(URLAddress.GET_DESKTOP)
Observable<ResponseBody> getDesktop(
@Query("sn") String sn
);
}

View File

@@ -0,0 +1,15 @@
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.GET;
import retrofit2.http.Query;
public interface GetDeveloperApi {
@GET(URLAddress.GET_DEVELOPER)
Observable<BaseResponse> getDeveloperState(
@Query("sn") String sn
);
}

View File

@@ -0,0 +1,18 @@
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;
public interface GetEBagCodeApi {
@FormUrlEncoded
@POST(URLAddress.GET_EBAG_CODE)
Observable<BaseResponse> getEBagCode(
@Field("key") String key,
@Field("sn") String sn
);
}

View File

@@ -0,0 +1,15 @@
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.GET;
import retrofit2.http.Query;
public interface GetJpushTagsApi {
@GET(URLAddress.GET_DEVICES_TAGS)
Observable<BaseResponse> getJpushTags(
@Query("sn") String sn
);
}

View File

@@ -0,0 +1,17 @@
package com.aoleyun.sn.network.api.newapi;
import io.reactivex.Observable;
import okhttp3.ResponseBody;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
public interface GetLockStateApi {
@FormUrlEncoded
@POST("Application/getLockState")
Observable<ResponseBody> getLockState(
@Field("sn") String sn,
@Field("status") String status,
@Field("time") String time
);
}

View File

@@ -0,0 +1,16 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.LogoImg;
import com.aoleyun.sn.network.URLAddress;
import io.reactivex.Observable;
import retrofit2.http.GET;
import retrofit2.http.Query;
public interface LogoImgApi {
@GET(URLAddress.GET_LOGO_IMG)
Observable<BaseResponse<LogoImg>> getLogoImg(
@Query("sn") String sn
);
}

View File

@@ -0,0 +1,23 @@
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;
public interface MACAddressApi {
@FormUrlEncoded
@POST(URLAddress.SEND_DEVICES)
Observable<BaseResponse> sendMACaddress(
@Field("sn") String sn,
@Field("mac") String mac,
@Field("jpush_id") String jpushId,
@Field("devices_version") String devicesVersion,
@Field("appstore_version") String appstoreVersion,
@Field("store_version") String storeVersion,
@Field("local_mac") String local_mac
);
}

View File

@@ -0,0 +1,19 @@
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;
public interface NewAppinsideWebApi {
@FormUrlEncoded
@POST(URLAddress.SET_APPINSIDEWEB)
Observable<BaseResponse> getAppinsideWeb(
@Field("key") String key,
@Field("sn") String sn
);
}

View File

@@ -0,0 +1,15 @@
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.GET;
import retrofit2.http.Query;
public interface ScreenLockStateApi {
@GET(URLAddress.GET_LOCK_SCREEN_STATE)
Observable<BaseResponse> getScreenLockState(
@Query("sn") String sn
);
}

View File

@@ -0,0 +1,21 @@
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;
public interface SendDownloadInfoApi {
@FormUrlEncoded
@POST(URLAddress.SEND_DOWNLOAD_FILE_INFO)
Observable<BaseResponse> sendDownloadTimes(
@Field("key") String key,
@Field("sn") String sn,
@Field("userId") int userId,
@Field("package_name") String package_name,
@Field("app_size") long app_size
);
}

View File

@@ -0,0 +1,20 @@
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;
public interface SendDownloadTimesApi {
@FormUrlEncoded
@POST(URLAddress.SEND_DOWNLOAD_TIMES)
Observable<BaseResponse> sendDownloadTimes(
@Field("key") String key,
@Field("sn") String sn,
@Field("package") String packages,
@Field("app_id") String app_id
);
}

View File

@@ -0,0 +1,19 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.BuildConfig;
import com.aoleyun.sn.bean.BaseResponse;
import io.reactivex.Observable;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
public interface SendScreenStatusApi {
@FormUrlEncoded
@POST(BuildConfig.SCREEN_URL)
Observable<BaseResponse> sendScreenStatus(
@Field("key") String key,
@Field("sn") String sn,
@Field("is_online") int is_online
);
}

View File

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

View File

@@ -0,0 +1,15 @@
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.GET;
import retrofit2.http.Query;
public interface SnTimeControlApi {
@GET(URLAddress.GET_SN_TIME_CONTROL)
Observable<BaseResponse> getSnTimeControl(
@Query("sn") String sn
);
}

View File

@@ -0,0 +1,18 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.StudentsInfo;
import com.aoleyun.sn.network.URLAddress;
import io.reactivex.Observable;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
public interface StudentsInfosApi {
@FormUrlEncoded
@POST(URLAddress.GET_STUDENTS_INFO)
Observable<BaseResponse<StudentsInfo>> getStudentsInfo(
@Field("sn") String sn
);
}

View File

@@ -0,0 +1,15 @@
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.GET;
import retrofit2.http.Query;
public interface TopAppControlApi {
@GET(URLAddress.GET_TOP_APP_CONTROL)
Observable<BaseResponse> getSnAppControl(
@Query("sn") String sn
);
}

View File

@@ -0,0 +1,19 @@
package com.aoleyun.sn.network.api.newapi;
import io.reactivex.Observable;
import okhttp3.ResponseBody;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
public interface UpdateDeviceInfoApi {
@FormUrlEncoded
@POST("Mac/getInfo")
Observable<ResponseBody> updateDeviceInfo(
@Field("sn") String sn,
@Field("key") String key,
@Field("machine") String machine,
@Field("hardware") String hardware,
@Field("address") String address
);
}