From fdedb3eb1940fb0d655ac38ad86b6197c4b79a24 Mon Sep 17 00:00:00 2001 From: fanhuitong <981964879@qq.com> Date: Fri, 4 Nov 2022 18:03:47 +0800 Subject: [PATCH] =?UTF-8?q?version:1.7=20fix:=E4=BC=98=E5=8C=96=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E8=AF=B7=E6=B1=82=20update:=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E9=94=81=E5=B1=8F=E5=AF=86=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 7 +- .../fuying/sn/activity/main/MainAContact.java | 9 +- .../sn/activity/main/MainAPresenter.java | 65 +-- .../fuying/sn/activity/main/MainActivity.java | 40 +- .../com/fuying/sn/config/CommonConfig.java | 20 +- .../sn/network/NetInterfaceManager.java | 34 +- .../com/fuying/sn/network/UrlAddress.java | 25 +- .../sn/network/api/UpdateLockScreen.java | 17 + .../sn/receiver/APKinstallReceiver.java | 13 +- .../com/fuying/sn/service/ManagerService.java | 142 +++++-- .../fuying/sn/service/main/MainSContact.java | 10 +- .../sn/service/main/MainSPresenter.java | 388 ++++++++---------- .../fuying/sn/service/main/MainService.java | 71 ++-- .../main/res/layout-land/activity_main.xml | 14 + .../res/layout-land/activity_screen_lock.xml | 211 ++++++++-- .../main/res/layout-port/activity_main.xml | 15 + .../res/layout-port/activity_screen_lock.xml | 210 ++++++++-- app/src/main/res/values/strings.xml | 1 + 18 files changed, 876 insertions(+), 416 deletions(-) create mode 100644 app/src/main/java/com/fuying/sn/network/api/UpdateLockScreen.java diff --git a/app/build.gradle b/app/build.gradle index 274aa85..4ee8925 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -73,8 +73,8 @@ android { official { flavorDimensions "default" - versionCode 6 - versionName "1.5" + versionCode 8 + versionName "1.7" } } @@ -292,6 +292,9 @@ dependencies { implementation 'com.github.chrisbanes:PhotoView:2.0.0' //沉浸状态栏 implementation 'com.gitee.zackratos:UltimateBarX:0.8.0' + //验证码输入 + implementation 'com.jacktuotuo.customview:verificationcodeview:1.0.5' +// implementation 'com.king.view:splitedittext:1.0.0' //动态权限框架 // implementation 'com.hjq:xxpermissions:6.0' } diff --git a/app/src/main/java/com/fuying/sn/activity/main/MainAContact.java b/app/src/main/java/com/fuying/sn/activity/main/MainAContact.java index 6b7812d..1f2bbb6 100644 --- a/app/src/main/java/com/fuying/sn/activity/main/MainAContact.java +++ b/app/src/main/java/com/fuying/sn/activity/main/MainAContact.java @@ -15,10 +15,12 @@ public class MainAContact { void getAppletQRCode(); /*获取二维码*/ void getQRCode(); + //获取所有app包名 + void getAllApp(); /*检查更新*/ void checkUpdate(); - /*获取强制下载*/ - void getForceInstall(); + /*检查扶小鹰App更新*/ + void checkFXYUpdate(); /*获取所有全局更新*/ void getOverallApp(); } @@ -27,8 +29,9 @@ public class MainAContact { void setSnInfo(BaseResponse response); void setAppletQRCode(String url); void setQRCode(Bitmap bitmap); + void getAllAppFinish(); void checkUpdateFinish(); - void setForceInstall(); + void checkFXYUpdateFinish(); void setOverallApp(); } } diff --git a/app/src/main/java/com/fuying/sn/activity/main/MainAPresenter.java b/app/src/main/java/com/fuying/sn/activity/main/MainAPresenter.java index 3cfad4f..ccc41e7 100644 --- a/app/src/main/java/com/fuying/sn/activity/main/MainAPresenter.java +++ b/app/src/main/java/com/fuying/sn/activity/main/MainAPresenter.java @@ -91,25 +91,26 @@ public class MainAPresenter implements MainAContact.Presenter { @Override public void getAppletQRCode() { - NetInterfaceManager.getInstance() - .getQRCodeURL(true, getLifecycle(), new NetInterfaceManager.onNextCallback() { - @Override - public void onNext(Object o) { - Log.e("getAppletQRCode", "onNext: " + o); - mView.setAppletQRCode((String) o); - } - - @Override - public void onError(Object o) { - Log.e("getAppletQRCode", "onError: " + o); - mView.setAppletQRCode(null); - } - - @Override - public void onComplete() { - Log.e("getAppletQRCode", "onComplete: "); - } - }); +// NetInterfaceManager.getInstance() +// .getQRCodeURL(true, getLifecycle(), new NetInterfaceManager.onNextCallback() { +// @Override +// public void onNext(Object o) { +// Log.e("getAppletQRCode", "onNext: " + o); +// mView.setAppletQRCode((String) o); +// } +// +// @Override +// public void onError(Object o) { +// Log.e("getAppletQRCode", "onError: " + o); +// mView.setAppletQRCode(null); +// } +// +// @Override +// public void onComplete() { +// Log.e("getAppletQRCode", "onComplete: "); +// } +// }); + mView.setAppletQRCode(null); } @Override @@ -121,17 +122,31 @@ public class MainAPresenter implements MainAContact.Presenter { } @Override - public void checkUpdate() { - mView.checkUpdateFinish(); + public void getAllApp() { + NetInterfaceManager.getInstance().getAppWhiteList(new NetInterfaceManager.WhiteListCallback() { + @Override + public void onComplet() { + mView.getAllAppFinish(); + } + }); } @Override - public void getForceInstall() { - NetInterfaceManager.getInstance().getForceInstall(false, getLifecycle(), new NetInterfaceManager.CompleteCallback() { + public void checkUpdate() { + NetInterfaceManager.getInstance().checkAllAppUpdate(true, getLifecycle(), new NetInterfaceManager.CompleteCallback() { @Override public void onComplete() { - Log.e("getForceInstall", "onComplete: "); - mView.setForceInstall(); + mView.checkUpdateFinish(); + } + }); + } + + @Override + public void checkFXYUpdate() { + NetInterfaceManager.getInstance().checkFXYAppUpdate(true, getLifecycle(), new NetInterfaceManager.CompleteCallback() { + @Override + public void onComplete() { + mView.checkFXYUpdateFinish(); } }); } diff --git a/app/src/main/java/com/fuying/sn/activity/main/MainActivity.java b/app/src/main/java/com/fuying/sn/activity/main/MainActivity.java index c624e5a..19e510e 100644 --- a/app/src/main/java/com/fuying/sn/activity/main/MainActivity.java +++ b/app/src/main/java/com/fuying/sn/activity/main/MainActivity.java @@ -17,6 +17,7 @@ import android.text.TextUtils; import android.util.Log; import android.view.Gravity; import android.view.KeyEvent; +import android.view.View; import android.view.WindowManager; import android.widget.ImageView; import android.widget.TextView; @@ -81,6 +82,8 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView, ImageView iv_appqrcode; @BindView(R.id.iv_exit) ImageView iv_exit; + @BindView(R.id.tv_update) + TextView tv_update; private MainAPresenter mPresenter; @@ -138,6 +141,14 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView, Utils.getBattery(this); Utils.getBatterymAh(this); + + tv_update.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + ToastUtil.show("正在检查更新"); + mPresenter.getAllApp(); + } + }); } private TimeTask task; @@ -393,31 +404,36 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView, @Override public void setAppletQRCode(String url) { - if (!TextUtils.isEmpty(url)) { - Glide.with(iv_appqrcode) - .load(url) - .dontAnimate() - .placeholder(getDrawable(R.drawable.applet_qrcode)) - .into(iv_appqrcode); - } else { - iv_appqrcode.setImageDrawable(getDrawable(R.drawable.applet_qrcode)); - } +// if (!TextUtils.isEmpty(url)) { +// Glide.with(iv_appqrcode) +// .load(url) +// .dontAnimate() +// .placeholder(getDrawable(R.drawable.applet_qrcode)) +// .into(iv_appqrcode); +// } else { +// iv_appqrcode.setImageDrawable(getDrawable(R.drawable.applet_qrcode)); +// } mPresenter.getQRCode(); } @Override public void setQRCode(@NotNull Bitmap bitmap) { qr_code.setImageBitmap(bitmap); + mPresenter.getAllApp(); + } + + @Override + public void getAllAppFinish() { mPresenter.checkUpdate(); } @Override public void checkUpdateFinish() { - mPresenter.getForceInstall(); - } + mPresenter.checkFXYUpdate(); +} @Override - public void setForceInstall() { + public void checkFXYUpdateFinish() { mPresenter.getOverallApp(); } diff --git a/app/src/main/java/com/fuying/sn/config/CommonConfig.java b/app/src/main/java/com/fuying/sn/config/CommonConfig.java index 558290b..40121d6 100644 --- a/app/src/main/java/com/fuying/sn/config/CommonConfig.java +++ b/app/src/main/java/com/fuying/sn/config/CommonConfig.java @@ -16,15 +16,15 @@ public class CommonConfig { public final static String BROWSER_APP_KEY = "browser_app_key"; public final static String TYPEWRITING_APP_KEY = "typewriting_app_key"; - public static String isLogined = "isLogined"; - public static String AES_KEY = "0123456789ABCDEF"; - public static String HTTP_KEY = "YTM3YTAxNTJmMmZmNzkyM2E2YzIwZjlhZTc0NzNmMGI="; - public static String UserName = "USERINFO_NAME"; - public static String UserSchool = "USERINFO_SCHOOL"; - public static String UserGrade = "USERINFO_GRADE"; - public static String userDebugMode = "ZUOYEOS_DEBUG"; - public static String EnableDebug = "EnableDebug"; - public static String SP_Userinfo_json = "USERINFO_JSON"; + public static final String isLogined = "isLogined"; + public static final String AES_KEY = "0123456789ABCDEF"; + public static final String HTTP_KEY = "YTM3YTAxNTJmMmZmNzkyM2E2YzIwZjlhZTc0NzNmMGI="; + public static final String UserName = "USERINFO_NAME"; + public static final String UserSchool = "USERINFO_SCHOOL"; + public static final String UserGrade = "USERINFO_GRADE"; + public static final String userDebugMode = "ZUOYEOS_DEBUG"; + public static final String EnableDebug = "EnableDebug"; + public static final String SP_Userinfo_json = "USERINFO_JSON"; public static final String KEY_IS_CONTROL = "is_control_key"; @@ -41,7 +41,7 @@ public class CommonConfig { /*投屏开关*/ public final static String AOLE_ACTION_SCREEN_SHARE = "aole_app_screen_share"; /*内部黑名单*/ - public final static String AOLE_APP_WEB_WHITE_LIST ="app_web_white_list"; + public final static String AOLE_APP_WEB_WHITE_LIST = "app_web_white_list"; /*应用安装白名单*/ public final static String AOLE_ACTION_APP_FORBID = "aole_app_forbid"; /*强制安装应用,禁止卸载*/ diff --git a/app/src/main/java/com/fuying/sn/network/NetInterfaceManager.java b/app/src/main/java/com/fuying/sn/network/NetInterfaceManager.java index 2ed2f71..18e2fe1 100644 --- a/app/src/main/java/com/fuying/sn/network/NetInterfaceManager.java +++ b/app/src/main/java/com/fuying/sn/network/NetInterfaceManager.java @@ -73,6 +73,7 @@ import com.fuying.sn.network.api.ScreenState; import com.fuying.sn.network.api.Setting; import com.fuying.sn.network.api.TimeControl; import com.fuying.sn.network.api.UpdateAdminSn; +import com.fuying.sn.network.api.UpdateLockScreen; import com.fuying.sn.network.api.UploadScreenshot; import com.fuying.sn.network.api.UserInfoControl; import com.fuying.sn.network.interceptor.RepeatRequestInterceptor; @@ -511,6 +512,12 @@ public class NetInterfaceManager { .observeOn(AndroidSchedulers.mainThread()); } + public Observable getUpdateLockScreenObservable() { + return mRetrofit.create(UpdateLockScreen.class) + .updateLockScreen(Utils.getSerial()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()); + } /* * @@ -608,7 +615,7 @@ public class NetInterfaceManager { public void getSnInfo(boolean refresh, BehaviorSubject lifecycle, ObserverCallback callback) { ConnectMode connectMode = ConnectMode.SIX_HOUR; if (refresh) { - connectMode = ConnectMode.ONE_HOUR; + connectMode = ConnectMode.ONE_MINUTE; } if (ConnectManager.getInstance().isNeedConnect(UrlAddress.SNINFO, connectMode)) { getSnInfo(lifecycle, callback); @@ -663,7 +670,7 @@ public class NetInterfaceManager { } else if (code == 300) { mCacheHelper.put(UrlAddress.SNINFO, ""); SPUtils.put(mContext, CommonConfig.isLogined, 0); - } else if (code == 400) { + } else if (code == 401) { mCacheHelper.put(UrlAddress.SNINFO, ""); SPUtils.put(mContext, CommonConfig.isLogined, 2); } @@ -1249,7 +1256,7 @@ public class NetInterfaceManager { public void getQRCodeURL(boolean refresh, BehaviorSubject lifecycle, onNextCallback callback) { ConnectMode connectMode = ConnectMode.ONE_DAY; if (refresh) { - connectMode = ConnectMode.DEFAULT; + connectMode = ConnectMode.HALF_DAY; } if (ConnectManager.getInstance().isNeedConnect(UrlAddress.GET_APPLET_QRCODE, connectMode)) { getQRCodeURL(lifecycle, callback); @@ -1283,7 +1290,7 @@ public class NetInterfaceManager { @Override public void onNext(BaseResponse baseResponse) { - Log.e("getQRCodeURL", "onNext: "); + Log.e("getQRCodeURL", "onNext: " + baseResponse); if (baseResponse.code == 200) { AppletQRCode appletQRCode = baseResponse.data; mCacheHelper.put(UrlAddress.GET_APPLET_QRCODE, GsonUtils.toJSONString(appletQRCode)); @@ -1361,9 +1368,9 @@ public class NetInterfaceManager { } public void getBrowserWhiteList(boolean refresh, BehaviorSubject lifecycle, CompleteCallback callback) { - ConnectMode connectMode = ConnectMode.SIX_HOUR; + ConnectMode connectMode = ConnectMode.HALF_DAY; if (refresh) { - connectMode = ConnectMode.ONE_HOUR; + connectMode = ConnectMode.SIX_HOUR; } if (ConnectManager.getInstance().isNeedConnect(UrlAddress.SET_BROWSER_URL, connectMode)) { getBrowserWhiteList(lifecycle, callback); @@ -1458,9 +1465,9 @@ public class NetInterfaceManager { public void getBrowserLabel(boolean refresh, BehaviorSubject lifecycle, CompleteCallback callback) { - ConnectMode connectMode = ConnectMode.SIX_HOUR; + ConnectMode connectMode = ConnectMode.HALF_DAY; if (refresh) { - connectMode = ConnectMode.ONE_HOUR; + connectMode = ConnectMode.SIX_HOUR; } if (ConnectManager.getInstance().isNeedConnect(UrlAddress.SET_BROWSER_LABEL, connectMode)) { getBrowserLabel(lifecycle, callback); @@ -2054,11 +2061,12 @@ public class NetInterfaceManager { return new Observer>>() { @Override public void onSubscribe(@NonNull Disposable d) { - + Log.e("getForceInstall", "onSubscribe: "); } @Override public void onNext(@NonNull BaseResponse> listBaseResponse) { + Log.e("getForceInstall", "onNext: " + listBaseResponse); int code = listBaseResponse.code; if (code == 200) { List appInfos = listBaseResponse.data; @@ -2082,6 +2090,7 @@ public class NetInterfaceManager { @Override public void onComplete() { + Log.e("getForceInstall", "onComplete: "); if (callback != null) { callback.onComplete(); } @@ -2586,9 +2595,9 @@ public class NetInterfaceManager { } public void getOverallApp(boolean refresh, BehaviorSubject lifecycle, CompleteCallback callback) { - ConnectMode connectMode = ConnectMode.ONE_MINUTE; + ConnectMode connectMode = ConnectMode.HALF_DAY; if (refresh) { - connectMode = ConnectMode.DEFAULT; + connectMode = ConnectMode.SIX_HOUR; } if (ConnectManager.getInstance().isNeedConnect(UrlAddress.GE_TOVERALL_APPBYPLATFORM, connectMode)) { getOverallApp(lifecycle, callback); @@ -2603,6 +2612,9 @@ public class NetInterfaceManager { }.getType(); List overallAppBeanList = gson.fromJson(jsonString, type); installOverallApp(overallAppBeanList); + if (callback != null) { + callback.onComplete(); + } } } } diff --git a/app/src/main/java/com/fuying/sn/network/UrlAddress.java b/app/src/main/java/com/fuying/sn/network/UrlAddress.java index 01e25a6..964fb99 100644 --- a/app/src/main/java/com/fuying/sn/network/UrlAddress.java +++ b/app/src/main/java/com/fuying/sn/network/UrlAddress.java @@ -20,21 +20,21 @@ public class UrlAddress { public final static String GET_ADMIN_APP = "getAdminApp"; /*根据包名获取更新*/ public final static String GET_NEWESTAPPUPDATE = "app/newestAppUpdate"; + /*发送设备基本信息*/ + public final static String UPDATE_SNINFO = "sn/updateAdminSn"; - + /*绑定设备消息*/ + public final static String BIND_DEVICES = "sn/bindSn"; /*获取批次*/ public static final String GET_BATCH = "sn/getBatch"; /*设备信息接口*/ public static final String SNINFO = "sn/getSnInfo"; - /*发送app信息*/ - public static final String APPLOG = "App/getApplog"; + /*获取正在运行的app*/ public static final String RUN_NEW_APP = "app/runNewApp"; /*获取所有应用*/ public final static String GET_ALL_PACKAGE = "app/queryAllApp"; - /*绑定设备消息*/ - public final static String BIND_DEVICES = "sn/bindSn"; /*获取系统设置*/ public final static String GET_SETTINGS = "control/getSetting"; /*浏览器网址管控*/ @@ -51,12 +51,10 @@ public class UrlAddress { public final static String QUERY_APP_INSIDE = "control/queryAppInside"; /*发送卸载或者安装信息*/ public final static String SEND_INSTALLEDORREMOVED = "app/addAppInstall"; - /*发送设备基本信息*/ - public final static String UPDATE_SNINFO = "sn/updateAdminSn"; + /*上传屏幕截图*/ public final static String UPLOAD_SCREEN_SNAPSHOT = "sn/uploadScreenshot"; - /*获取屏幕管控*/ - public final static String GET_SCREEN_LOCK = "sn/getScreenshot"; + /*获取时间管控*/ public final static String GET_TIME_CONTROL = "sn/getTimeControlControl"; /*获取用户头像和信息*/ @@ -71,11 +69,18 @@ public class UrlAddress { public static final String GET_CLOUD_LESSON_SETTING = "Control/getCloudLessonSetting"; /*应用使用记录*/ public static final String APP_USAGE_RECORD = "appUsageRecord"; + + /*获取屏幕管控*/ + public final static String GET_SCREEN_LOCK = "sn/getScreenshot"; /*获取锁屏密码*/ public static final String LOCK_SCREEN_PWD = "sn/getLockScreenPwd"; + /*解除锁屏*/ + public static final String UPDATE_LOCK_SCREEN = "sn/updateLockScreen"; - + /*发送app信息*/ + @Deprecated + public static final String APPLOG = "App/getApplog"; /*根据包名获取更新*/ @Deprecated public final static String GET_APP_UPDATE = "Update/update"; diff --git a/app/src/main/java/com/fuying/sn/network/api/UpdateLockScreen.java b/app/src/main/java/com/fuying/sn/network/api/UpdateLockScreen.java new file mode 100644 index 0000000..1199210 --- /dev/null +++ b/app/src/main/java/com/fuying/sn/network/api/UpdateLockScreen.java @@ -0,0 +1,17 @@ +package com.fuying.sn.network.api; + +import com.fuying.sn.bean.BaseResponse; +import com.fuying.sn.network.UrlAddress; + +import io.reactivex.rxjava3.core.Observable; +import retrofit2.http.Field; +import retrofit2.http.FormUrlEncoded; +import retrofit2.http.POST; + +public interface UpdateLockScreen { + @FormUrlEncoded + @POST(UrlAddress.UPDATE_LOCK_SCREEN) + Observable updateLockScreen( + @Field("sn") String sn + ); +} diff --git a/app/src/main/java/com/fuying/sn/receiver/APKinstallReceiver.java b/app/src/main/java/com/fuying/sn/receiver/APKinstallReceiver.java index 7844755..c7e9e65 100644 --- a/app/src/main/java/com/fuying/sn/receiver/APKinstallReceiver.java +++ b/app/src/main/java/com/fuying/sn/receiver/APKinstallReceiver.java @@ -10,6 +10,7 @@ import android.util.Log; import com.fuying.sn.config.CommonConfig; import com.fuying.sn.manager.ControlManager; import com.fuying.sn.network.NetInterfaceManager; +import com.fuying.sn.service.main.MainService; import com.fuying.sn.utils.ApkUtils; import com.fuying.sn.utils.CacheUtils; import com.fuying.sn.utils.JGYUtils; @@ -88,7 +89,7 @@ public class APKinstallReceiver extends BroadcastReceiver { private static void sendAppInfo() { Observable.create((ObservableEmitter emitter) -> newAppListener = emitter::onNext) - .throttleLast(3, TimeUnit.MINUTES) + .throttleLast(5, TimeUnit.MINUTES) .subscribe(new Observer() { @Override public void onSubscribe(Disposable d) { @@ -99,12 +100,12 @@ public class APKinstallReceiver extends BroadcastReceiver { public void onNext(String s) { Log.e("sendAppInfo", "onNext: " + s); int isLogined = (int) SPUtils.get(mContext, CommonConfig.isLogined, 2); - if (isLogined == 2) return; + if (isLogined != 2) { + NetInterfaceManager.getInstance().getForceInstall(); + NetInterfaceManager.getInstance().getAppInside(); + } NetInterfaceManager.getInstance().SendAppInstallInfo(); - NetInterfaceManager.getInstance().getForceInstall(); - NetInterfaceManager.getInstance().getAllappPackage(); - NetInterfaceManager.getInstance().getAppInside(); - NetInterfaceManager.getInstance().getOverallApp(); + MainService.getPresenter().getAllApp(); } @Override diff --git a/app/src/main/java/com/fuying/sn/service/ManagerService.java b/app/src/main/java/com/fuying/sn/service/ManagerService.java index aa2e3ac..23ff808 100644 --- a/app/src/main/java/com/fuying/sn/service/ManagerService.java +++ b/app/src/main/java/com/fuying/sn/service/ManagerService.java @@ -17,7 +17,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.WindowManager; import android.widget.Button; -import android.widget.EditText; +import android.widget.LinearLayout; import android.widget.TextView; import com.blankj.utilcode.util.NetworkUtils; @@ -31,13 +31,14 @@ import com.fuying.sn.receiver.APKinstallReceiver; import com.fuying.sn.receiver.BootReceiver; import com.fuying.sn.utils.SPUtils; import com.fuying.sn.utils.TimeUtils; -import com.fuying.sn.utils.ToastUtil; import com.fuying.sn.utils.Utils; import com.google.gson.JsonObject; +import com.tuo.customview.VerificationCodeView; import java.util.concurrent.TimeUnit; 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; @@ -224,43 +225,14 @@ public class ManagerService extends Service implements NetworkUtils.OnNetworkSta }); if (null == topView) { topView = LayoutInflater.from(getApplicationContext()).inflate(R.layout.activity_screen_lock, null); - TextView textView = topView.findViewById(R.id.textView); - textView.setText(name); -// EditText et_password = topView.findViewById(R.id.et_password); -// TextView tv_confirm = topView.findViewById(R.id.tv_confirm); -// tv_confirm.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View view) { -// String password = (String) SPUtils.get(ManagerService.this, UrlAddress.LOCK_SCREEN_PWD, ""); -// String pwd = et_password.getText().toString(); -// if (!TextUtils.isEmpty(pwd) && !TextUtils.isEmpty(password) && password.equals(pwd)) { -// hideFloatingWindow(); -// }else { -// ToastUtil.show("密码错误"); -// } -// } -// }); + initTopView(topView, name); } else { if ("added".equals(topView.getTag())) { - TextView textView = topView.findViewById(R.id.textView); - textView.setText(name); -// EditText et_password = topView.findViewById(R.id.et_password); -// TextView tv_confirm = topView.findViewById(R.id.tv_confirm); -// tv_confirm.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View view) { -// String password = (String) SPUtils.get(ManagerService.this, UrlAddress.LOCK_SCREEN_PWD, ""); -// String pwd = et_password.getText().toString(); -// if (!TextUtils.isEmpty(pwd) && !TextUtils.isEmpty(password) && password.equals(pwd)) { -// hideFloatingWindow(); -// }else { -// ToastUtil.show("密码错误"); -// } -// } -// }); + initTopView(topView, name); } else { return; } + return; } // topView.setAlpha(0.8f); // 设置LayoutParam @@ -291,6 +263,108 @@ public class ManagerService extends Service implements NetworkUtils.OnNetworkSta } } + private void initTopView(View view, String name) { + TextView textView = view.findViewById(R.id.textView); + TextView tv_hint = view.findViewById(R.id.tv_hint); + textView.setText(name); + LinearLayout ll_keyboard = view.findViewById(R.id.ll_keyboard); + VerificationCodeView codeView = view.findViewById(R.id.icv); + codeView.getEditText().setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + ll_keyboard.setVisibility(View.VISIBLE); + } + }); + codeView.setInputCompleteListener(new VerificationCodeView.InputCompleteListener() { + @Override + public void inputComplete() { + + } + + @Override + public void deleteContent() { + + } + }); + Button bt0 = view.findViewById(R.id.bt_0); + Button bt1 = view.findViewById(R.id.bt_1); + Button bt2 = view.findViewById(R.id.bt_2); + Button bt3 = view.findViewById(R.id.bt_3); + Button bt4 = view.findViewById(R.id.bt_4); + Button bt5 = view.findViewById(R.id.bt_5); + Button bt6 = view.findViewById(R.id.bt_6); + Button bt7 = view.findViewById(R.id.bt_7); + Button bt8 = view.findViewById(R.id.bt_8); + Button bt9 = view.findViewById(R.id.bt_9); + Button bt_del = view.findViewById(R.id.bt_del); + Button bt_confirm = view.findViewById(R.id.bt_confirm); + bt0.setOnClickListener(view1 -> add(codeView, "0")); + bt1.setOnClickListener(view1 -> add(codeView, "1")); + bt2.setOnClickListener(view1 -> add(codeView, "2")); + bt3.setOnClickListener(view1 -> add(codeView, "3")); + bt4.setOnClickListener(view1 -> add(codeView, "4")); + bt5.setOnClickListener(view1 -> add(codeView, "5")); + bt6.setOnClickListener(view1 -> add(codeView, "6")); + bt7.setOnClickListener(view1 -> add(codeView, "7")); + bt8.setOnClickListener(view1 -> add(codeView, "8")); + bt9.setOnClickListener(view1 -> add(codeView, "9")); + bt_del.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + tv_hint.setText(""); + codeView.clearInputContent(); + } + }); + bt_confirm.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + String content = codeView.getInputContent(); + if (TextUtils.isEmpty(content)) { + return; + } + Log.e(TAG, "inputComplete: " + content); + String password = (String) SPUtils.get(ManagerService.this, UrlAddress.LOCK_SCREEN_PWD, ""); + if (!TextUtils.isEmpty(content) && !TextUtils.isEmpty(password) && password.equals(content)) { + hideFloatingWindow(); + SPUtils.put(ManagerService.this, ManagerService.LOCK_STATE, 0); + NetInterfaceManager.getInstance().getUpdateLockScreenObservable() + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + + } + + @Override + public void onNext(@NonNull BaseResponse baseResponse) { + Log.e("getUpdateLockScreenObservable", "onNext: " + baseResponse); + } + + @Override + public void onError(@NonNull Throwable e) { + + } + + @Override + public void onComplete() { + + } + }); + } else { +// ToastUtil.show("密码错误"); + tv_hint.setText("密码错误"); + } + } + }); + + } + + private void add(VerificationCodeView codeView, String text) { + Log.e(TAG, "add: text = " + text); + String oldText = codeView.getEditText().getText().toString(); + Log.e(TAG, "add: " + oldText); + codeView.getEditText().setText(text); + } + private void hideFloatingWindow() { if (null == windowManager) { return; diff --git a/app/src/main/java/com/fuying/sn/service/main/MainSContact.java b/app/src/main/java/com/fuying/sn/service/main/MainSContact.java index 31069c0..a799587 100644 --- a/app/src/main/java/com/fuying/sn/service/main/MainSContact.java +++ b/app/src/main/java/com/fuying/sn/service/main/MainSContact.java @@ -7,6 +7,7 @@ import com.fuying.sn.bean.SnInfo; public class MainSContact { public interface MainView extends BaseView { + void setSnInfo(BaseResponse response); void setLocked(int lockedStatus); void updateInfoFinish(); @@ -30,6 +31,7 @@ public class MainSContact { interface Presenter extends BasePresenter { + /*更新的*/ //获取所有app包名 void getAllApp(); //检查更新 @@ -39,16 +41,20 @@ public class MainSContact { /*获取所有全局更新*/ void getOverallApp(); + + /*获取上传或下载的*/ //获取设备信息 void getSnInfo(); //获取锁定状态 void getLocked(); + //上传设备信息 void updateDeviceInfo(); - //获取id管控 - void getAppInside(); + //获取强制下载 void getForceInstall(); + //获取id管控 + void getAppInside(); //获取系统设置 void getSystemSettings(); //获取浏览器书签 diff --git a/app/src/main/java/com/fuying/sn/service/main/MainSPresenter.java b/app/src/main/java/com/fuying/sn/service/main/MainSPresenter.java index 10e9a53..9b6788c 100644 --- a/app/src/main/java/com/fuying/sn/service/main/MainSPresenter.java +++ b/app/src/main/java/com/fuying/sn/service/main/MainSPresenter.java @@ -79,6 +79,49 @@ public class MainSPresenter implements MainSContact.Presenter { this.mView = null; } + + @Override + @SuppressLint("NewApi") + public void getAllApp() { + NetInterfaceManager.getInstance().getAppWhiteList(new NetInterfaceManager.WhiteListCallback() { + @Override + public void onComplet() { + mView.getAllAppFinish(); + } + }); + } + + @Override + public void checkUpdate() { + NetInterfaceManager.getInstance().checkAllAppUpdate(true, getLifecycle(), new NetInterfaceManager.CompleteCallback() { + @Override + public void onComplete() { + mView.checkUpdateFinish(); + } + }); + } + + @Override + public void checkFXYUpdate() { + NetInterfaceManager.getInstance().checkFXYAppUpdate(true, getLifecycle(), new NetInterfaceManager.CompleteCallback() { + @Override + public void onComplete() { + mView.checkFXYUpdateFinish(); + } + }); + } + + @Override + public void getOverallApp() { + NetInterfaceManager.getInstance().getOverallApp(true, getLifecycle(), new NetInterfaceManager.CompleteCallback() { + @Override + public void onComplete() { + mView.setOverallApp(); + } + }); + } + + @Override public void getSnInfo() { NetInterfaceManager.getInstance() @@ -108,7 +151,7 @@ public class MainSPresenter implements MainSContact.Presenter { @Override public void getLocked() { - int statu = (int) SPUtils.get(mContext, CommonConfig.isLogined, 0); + int statu = (int) SPUtils.get(mContext, CommonConfig.isLogined, 2); mView.setLocked(statu); } @@ -118,97 +161,6 @@ public class MainSPresenter implements MainSContact.Presenter { mView.updateInfoFinish(); } - @Override - public void checkUpdate() { - NetInterfaceManager.getInstance().checkAllAppUpdate(true, getLifecycle(), new NetInterfaceManager.CompleteCallback() { - @Override - public void onComplete() { - mView.checkUpdateFinish(); - } - }); - } - - @Override - public void checkFXYUpdate() { - NetInterfaceManager.getInstance().checkFXYAppUpdate(true, getLifecycle(), new NetInterfaceManager.CompleteCallback() { - @Override - public void onComplete() { - mView.checkFXYUpdateFinish(); - } - }); - } - - @Override - @SuppressLint("NewApi") - public void getAllApp() { -// NetInterfaceManager.getInstance() -// .getQueryAllAppControl() -// .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) -// .subscribe(new Observer>>() { -// @Override -// public void onSubscribe(Disposable d) { -// Log.e("getAllApp", "onSubscribe: "); -// } -// -// @Override -// public void onNext(BaseResponse> listBaseResponse) { -// Log.e("getAllApp", "onNext: " + listBaseResponse); -// int code = listBaseResponse.code; -// if (code == 200) { -// List appInfoList = listBaseResponse.data; -// if (appInfoList == null || appInfoList.size() == 0) { -// mMMKV.encode(UrlAddress.GET_ALL_PACKAGE, ""); -// ApkUtils.writeAppPackageList(mContext, ""); -// } else { -// mMMKV.encode(UrlAddress.GET_ALL_PACKAGE, GsonUtils.toJSONString(appInfoList)); -// HashSet allPkgSet = new HashSet(); -// for (AppInfo pkg : appInfoList) { -// allPkgSet.add(pkg.getApp_package()); -// } -// String allPkgString = String.join(",", allPkgSet); -// Settings.System.putString(mContext.getContentResolver(), CommonConfig.ONLY_SHORTCUT_LIST, allPkgString); -// Log.e("getAllApp", "onNext: " + allPkgString); -// ApkUtils.writeAppPackageList(mContext, allPkgString); -// NetInterfaceManager.getInstance().getAppStart(appInfoList); -// } -// JGYUtils.getInstance().deleteOtherApp(); -// } else { -// mMMKV.encode(UrlAddress.GET_ALL_PACKAGE, ""); -// ApkUtils.writeAppPackageList(mContext, ""); -// } -// } -// -// @Override -// public void onError(Throwable e) { -// Log.e("getAllApp", "onError: " + e.getMessage()); -// onComplete(); -// } -// -// @Override -// public void onComplete() { -// Log.e("getAllApp", "onComplete: "); -// mView.getAllAppFinish(); -// } -// }); - - NetInterfaceManager.getInstance().getAppWhiteList(new NetInterfaceManager.WhiteListCallback() { - @Override - public void onComplet() { - mView.getAllAppFinish(); - } - }); - } - - @Override - public void getOverallApp() { - NetInterfaceManager.getInstance().getOverallApp(true, getLifecycle(), new NetInterfaceManager.CompleteCallback() { - @Override - public void onComplete() { - mView.setOverallApp(); - } - }); - } - @Override public void getAppInside() { NetInterfaceManager.getInstance() @@ -305,76 +257,82 @@ public class MainSPresenter implements MainSContact.Presenter { @Override public void getBrowserLabel() { - NetInterfaceManager.getInstance().getLabelControl() - .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) - .subscribe(new Observer>() { - @Override - public void onSubscribe(Disposable d) { - Log.e("getBrowserLabel", "onSubscribe: "); - } - - @Override - public void onNext(BaseResponse