From e405d438bd25723087c9eae7d4a6ba4d749bfa3c Mon Sep 17 00:00:00 2001 From: tongtongstudio Date: Tue, 3 Feb 2026 19:45:59 +0800 Subject: [PATCH] =?UTF-8?q?version:1.1.7=20fix:=20update:=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E9=80=9A=E7=9F=A5=E6=A0=8F=E7=AE=A1=E6=8E=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 4 +- .../xwad/os/activity/home/HomeActivity.java | 53 +++++++----- .../login/result/LoginSuccessfulActivity.java | 14 ++- .../result/LoginSuccessfulViewModel.java | 86 ++++++++++++++++++- .../os/activity/privacy/PrivacyActivity.java | 4 +- .../os/activity/update/UpdateActivity.java | 9 +- .../xwad/os/activity/user/UserActivity.java | 10 ++- .../java/com/xwad/os/bean/SystemSettings.java | 9 ++ .../java/com/xwad/os/config/CommonConfig.java | 5 +- .../com/xwad/os/fragment/app/AppFragment.java | 7 +- .../os/fragment/complex/ComplexFragment.java | 8 +- .../xwad/os/fragment/safe/SafeFragment.java | 11 ++- .../usercenter/account/AccountFragment.java | 21 ++--- .../usercenter/account/AccountViewModel.java | 35 ++++++++ .../usercenter/info/InfoFragment.java | 12 ++- .../java/com/xwad/os/manager/AppManager.java | 9 +- .../com/xwad/os/manager/ControlManager.java | 33 +++++-- .../java/com/xwad/os/mdm/AdminManager.java | 50 +++++++++-- .../java/com/xwad/os/push/PushManager.java | 34 +++++++- .../com/xwad/os/service/DownloadService.java | 15 ++-- .../com/xwad/os/service/ManagerService.java | 9 +- .../com/xwad/os/service/SocketService.java | 2 + .../xwad/os/service/main/MainSPresenter.java | 78 +++++++++++++++++ .../com/xwad/os/service/main/MainService.java | 1 - .../com/xwad/os/utils/ActivationUtil.java | 6 ++ .../java/com/xwad/os/utils/FileUtils.java | 9 +- .../main/java/com/xwad/os/utils/JgyUtils.java | 30 ++----- .../java/com/xwad/os/utils/OpenApkUtils.java | 8 +- .../main/java/com/xwad/os/utils/Utils.java | 24 ++---- .../com/xwad/os/view/ImageViewAdapter.java | 1 + 30 files changed, 442 insertions(+), 155 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index e9d8bab..6baf668 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,8 +17,8 @@ android { minSdkVersion 23 targetSdkVersion 29 - versionCode 14 - versionName "1.1.3" + versionCode 18 + versionName "1.1.7" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/app/src/main/java/com/xwad/os/activity/home/HomeActivity.java b/app/src/main/java/com/xwad/os/activity/home/HomeActivity.java index 9c09382..d4afc41 100644 --- a/app/src/main/java/com/xwad/os/activity/home/HomeActivity.java +++ b/app/src/main/java/com/xwad/os/activity/home/HomeActivity.java @@ -30,6 +30,7 @@ import androidx.lifecycle.Observer; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.viewpager.widget.ViewPager; +import com.blankj.utilcode.util.ServiceUtils; import com.hihonor.android.app.admin.DeviceControlManager; import com.hjq.permissions.OnPermissionCallback; import com.hjq.permissions.XXPermissions; @@ -74,6 +75,8 @@ import com.xwad.os.manager.AmapManager; import com.xwad.os.mdm.AdminManager; import com.xwad.os.permission.PermissionUtils; import com.xwad.os.receiver.AoleDeviceAdminReceiver; +import com.xwad.os.service.SocketService; +import com.xwad.os.service.main.MainService; import com.xwad.os.utils.ActivationUtil; import com.xwad.os.utils.ApkUtils; import com.xwad.os.utils.DataUtil; @@ -120,14 +123,13 @@ public class HomeActivity extends BaseMvvmActivity { @@ -30,13 +33,18 @@ public class LoginSuccessfulActivity extends BaseMvvmActivity() { + @Override + public void onChanged(Boolean aBoolean) { + Utils.triggerRebirth(LoginSuccessfulActivity.this); + } + }); } @Override protected void onDestroy() { super.onDestroy(); - startHome(); +// startHome(); } private void startHome() { @@ -49,7 +57,7 @@ public class LoginSuccessfulActivity extends BaseMvvmActivity { @Override public void onDestroy() { } + + public MutableLiveData mBooleanMutableLiveData = new MutableLiveData<>(); + + public void getAppInfo() { + Observable.zip(NetInterfaceManager.getInstance().getAdminAppObservable(JxwPackageConfig.JXW_LAUNCHER_PACKAGE_NAME), + NetInterfaceManager.getInstance().getAdminAppObservable("com.jxw.download"), + NetInterfaceManager.getInstance().getAdminAppObservable("com.study.flashplayer"), + new Function3, BaseResponse, BaseResponse, List>() { + @Override + public List apply(BaseResponse baseResponse, BaseResponse baseResponse2, BaseResponse baseResponse3) throws Throwable { + List appInfos = new ArrayList<>(); + if (baseResponse.code == 200) { + if (!ApkUtils.isAvailable(getCtx(), JxwPackageConfig.JXW_LAUNCHER_PACKAGE_NAME)) { + appInfos.add(baseResponse.data); + } + } + if (baseResponse2.code == 200) { + if (!ApkUtils.isAvailable(getCtx(), "com.jxw.download")) { + appInfos.add(baseResponse2.data); + } + } + if (baseResponse3.code == 200) { + if (!ApkUtils.isAvailable(getCtx(), "com.study.flashplayer")) { + appInfos.add(baseResponse3.data); + } + } + return appInfos; + } + }) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("getAppInfo", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull List appInfos) { + Log.e("getAppInfo", "onNext: " + appInfos); + appInfos.forEach(new Consumer() { + @Override + public void accept(AppInfo appInfo) { + FileUtils.ariaDownload(getCtx(), appInfo.getApp_url(), appInfo); + } + }); + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("getAppInfo", "onError: " + e.getMessage()); + onComplete(); + } + + @Override + public void onComplete() { + Log.e("getAppInfo", "onComplete: "); + mBooleanMutableLiveData.setValue(true); + } + }); + + } + } diff --git a/app/src/main/java/com/xwad/os/activity/privacy/PrivacyActivity.java b/app/src/main/java/com/xwad/os/activity/privacy/PrivacyActivity.java index 4b49285..cf98d29 100644 --- a/app/src/main/java/com/xwad/os/activity/privacy/PrivacyActivity.java +++ b/app/src/main/java/com/xwad/os/activity/privacy/PrivacyActivity.java @@ -69,11 +69,11 @@ public class PrivacyActivity extends BaseMvvmActivity= Build.VERSION_CODES.O) { - startForegroundService(intent); - } else { +// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { +// startForegroundService(intent); +// } else { startService(intent); - } +// } if (mAppInfoData != null) { DownloadEntity entity = Aria.download(this).getFirstDownloadEntity(mAppInfoData.getApp_url()); if (null != entity) { diff --git a/app/src/main/java/com/xwad/os/activity/user/UserActivity.java b/app/src/main/java/com/xwad/os/activity/user/UserActivity.java index 7d56dcc..b816509 100644 --- a/app/src/main/java/com/xwad/os/activity/user/UserActivity.java +++ b/app/src/main/java/com/xwad/os/activity/user/UserActivity.java @@ -187,11 +187,7 @@ public class UserActivity extends BaseMvvmActivity mLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -115,15 +125,6 @@ public class AccountFragment extends BaseMvvmFragment>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("getActivation", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull BaseResponse baseResponse) { + if (baseResponse.code == 200) { + CodeBean codeBean = baseResponse.data; + mMMKV.encode(CommonConfig.ACTIVATIONBEAN_CODE_KEY, codeBean.getCode()); + ActivationUtil.getInstance().setActivation(1); + ActivationUtil.getInstance().startJxwLauncher(); + } else { + ActivationUtil.getInstance().setActivation(0); + } + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("getActivation", "onError: " + e.getMessage()); + } + + @Override + public void onComplete() { + Log.e("getActivation", "onComplete: "); + } + }); + } + public void getAppInfo(String pkg) { NetInterfaceManager.getInstance().getAdminAppObservable(pkg) .subscribe(new Observer>() { diff --git a/app/src/main/java/com/xwad/os/fragment/usercenter/info/InfoFragment.java b/app/src/main/java/com/xwad/os/fragment/usercenter/info/InfoFragment.java index a6fe6dc..38fb85c 100644 --- a/app/src/main/java/com/xwad/os/fragment/usercenter/info/InfoFragment.java +++ b/app/src/main/java/com/xwad/os/fragment/usercenter/info/InfoFragment.java @@ -18,7 +18,6 @@ import com.xwad.os.base.mvvm.fragment.BaseMvvmFragment; import com.xwad.os.bean.SnInfo; import com.xwad.os.config.CommonConfig; import com.xwad.os.databinding.FragmentInfoBinding; -import com.xwad.os.manager.DeviceSNManager; import com.xwad.os.mdm.AdminManager; import com.xwad.os.utils.ActivationUtil; @@ -118,12 +117,6 @@ public class InfoFragment extends BaseMvvmFragment adminApp = getAdminApp(); +// List adminApp = getAdminApp(); // Log.i(TAG, "queryFilterAppInfo: adminapp = " + adminApp); for (ResolveInfo resolveInfo : resolveinfoList) { String pkg = resolveInfo.activityInfo.packageName; @@ -170,9 +170,10 @@ public class AppManager { } } else { if (allowPackages.contains(pkg) && !ApkUtils.excludePackageName.contains(pkg)) { - if (adminApp.contains(pkg)) { - resolveInfos.add(resolveInfo); - } else if (ApkUtils.showPackageName.contains(pkg)) { +// if (adminApp.contains(pkg)) { +// resolveInfos.add(resolveInfo); +// } else + if (ApkUtils.showPackageName.contains(pkg)) { resolveInfos.add(resolveInfo); } } diff --git a/app/src/main/java/com/xwad/os/manager/ControlManager.java b/app/src/main/java/com/xwad/os/manager/ControlManager.java index 4c51496..ba0f009 100644 --- a/app/src/main/java/com/xwad/os/manager/ControlManager.java +++ b/app/src/main/java/com/xwad/os/manager/ControlManager.java @@ -311,16 +311,19 @@ public class ControlManager { } } + @Deprecated private void setBar(SystemSettings settings) { - //系统导航条显示开关 - int setting_navigation = settings.getSetting_navigation(); - Log.e(TAG, "setBar: setting_navigation = " + setting_navigation); - AdminManager.getInstance().setStatusBarExpandPanelDisabled(setting_navigation); - - //状态栏显示开关 - int setting_statusbar = settings.getSetting_statusbar(); - Log.e(TAG, "setBar: setting_statusbar = " + setting_statusbar); - AdminManager.getInstance().setNavigationBarDisabled(setting_statusbar); +// //系统导航条显示开关 +// int setting_navigation = settings.getSetting_navigation(); +// Log.e(TAG, "setBar: setting_navigation = " + setting_navigation); +// mMMKV.encode(CommonConfig.ShowNavigationBar, setting_navigation); +// AdminManager.getInstance().setStatusBarExpandPanelDisabled(setting_navigation); +// +// //状态栏显示开关 +// int setting_statusbar = settings.getSetting_statusbar(); +// Log.e(TAG, "setBar: setting_statusbar = " + setting_statusbar); +// mMMKV.encode(CommonConfig.ShowStatusBarExpandPanel, setting_statusbar); +// AdminManager.getInstance().setNavigationBarDisabled(setting_statusbar); } @Deprecated @@ -802,6 +805,7 @@ public class ControlManager { setDeviceRecover((setting.getIs_device_recover())); setTopNotify(setting.getIs_top_notify()); setBottomBar(setting.getIs_bottom_bar()); + setAppNotify(setting.getApp_notify()); } public void setBluetoothShare(int status) { @@ -821,14 +825,25 @@ public class ControlManager { public void setTopNotify(int status) { Log.e(TAG, "setTopNotify: " + status); + mMMKV.encode(CommonConfig.ShowStatusBarExpandPanel, status); AdminManager.getInstance().setStatusBarExpandPanelDisabled(status); } public void setBottomBar(int status) { Log.e(TAG, "setBottomBar: " + status); + mMMKV.encode(CommonConfig.ShowNavigationBar, status); AdminManager.getInstance().setNavigationBarDisabled(status); } + public void setAppNotify(int status) { + Log.e(TAG, "setAppNotify: " + status); + if (status == 0) { + Log.e(TAG, "setAppNotify: setNotificationDisabled successful= " + AdminManager.getInstance().setDisallowAppNotification()); + } else { + Log.e(TAG, "setAppNotify: setNotificationDisabled successful = " + AdminManager.getInstance().setAllowAppNotification()); + } + } + public void setDisallowedRunningApp(SystemSettings setting) { Log.e(TAG, "setDisallowedRunningApp: "); if (setting.getAi_teacher() == 0) { diff --git a/app/src/main/java/com/xwad/os/mdm/AdminManager.java b/app/src/main/java/com/xwad/os/mdm/AdminManager.java index ee86040..017f177 100644 --- a/app/src/main/java/com/xwad/os/mdm/AdminManager.java +++ b/app/src/main/java/com/xwad/os/mdm/AdminManager.java @@ -1113,7 +1113,7 @@ public class AdminManager { mDeviceSettingsManager.setNavigationBarDisabled(mAdminName, disable); Log.e(TAG, "isNavigationBarDisabled: " + isNavigationBarDisabled()); } catch (Exception e) { - Log.e(TAG, "setNavigationBarDisabled: " + e.getMessage()); + Log.e(TAG, "setNavigationBarDisabled: Exception " + e.getMessage()); } } @@ -1249,8 +1249,9 @@ public class AdminManager { Log.e(TAG, "setStatusBarExpandPanelDisabled: " + disable); try { mDeviceRestrictionManager.setStatusBarExpandPanelDisabled(mAdminName, disable); + Log.e(TAG, "isStatusBarExpandPanelDisabled: " + isStatusBarExpandPanelDisabled()); } catch (Exception e) { - Log.e(TAG, "setStatusBarExpandPanelDisabled: " + e.getMessage()); + Log.e(TAG, "setStatusBarExpandPanelDisabled: Exception " + e.getMessage()); } try { //禁用全屏窗口下的状态栏 @@ -1781,6 +1782,36 @@ public class AdminManager { } } + private static final List DEFAULT_ALLOW_NOTIFICATION_APPS = new ArrayList() {{ + this.add(BuildConfig.APPLICATION_ID); + }}; + + /** + * @param disabled + * @return + */ + public boolean setNotificationDisabled(boolean disabled) { + Log.e(TAG, "setNotificationDisabled: " + disabled); + try { + mDeviceSettingsManager.setNotificationDisabled(mAdminName, disabled); + } catch (Exception e) { + Log.e(TAG, "setNotificationDisabled: " + e.getMessage()); + } + return false; + } + + public boolean setAllowAppNotification() { + Log.e(TAG, "setAllowAppNotification: "); + return removeAllAllowNotificationApps(); + } + + public boolean setDisallowAppNotification() { + Log.e(TAG, "setDisallowAppNotification: "); + setNotificationDisabled(false); + return setAllowNotificationApps(DEFAULT_ALLOW_NOTIFICATION_APPS); + } + + @Deprecated public void setPowerSaveModeDisabled(boolean disabled) { try { mDeviceHwSystemManager.setPowerSaveModeDisabled(mAdminName, disabled); @@ -2044,12 +2075,12 @@ public class AdminManager { * @param packageNames * @return */ - public boolean addAllowNotificationApps(ArrayList packageNames) { - Log.e(TAG, "addAllowNotificationApps: " + packageNames); + public boolean setAllowNotificationApps(List packageNames) { + Log.e(TAG, "setAllowNotificationApps: " + packageNames); try { - return mDevicePackageManager.addAllowNotificationApps(mAdminName, packageNames); + return mDevicePackageManager.addAllowNotificationApps(mAdminName, new ArrayList<>(packageNames)); } catch (Exception e) { - Log.e(TAG, "addAllowNotificationApps: " + e.getMessage()); + Log.e(TAG, "setAllowNotificationApps: " + e.getMessage()); } return false; } @@ -2069,10 +2100,13 @@ public class AdminManager { return false; } - public boolean removeAllowNotificationApps() { + public boolean removeAllAllowNotificationApps() { try { ArrayList arrayList = getAllowNotificationApps(); - return mDevicePackageManager.removeAllowNotificationApps(mAdminName, arrayList); + Log.e(TAG, "removeAllowNotificationApps: " + arrayList); + if (arrayList != null && !arrayList.isEmpty()) { + return mDevicePackageManager.removeAllowNotificationApps(mAdminName, arrayList); + } } catch (Exception e) { Log.e(TAG, "removeAllowNotificationApps: " + e.getMessage()); } diff --git a/app/src/main/java/com/xwad/os/push/PushManager.java b/app/src/main/java/com/xwad/os/push/PushManager.java index 9096d71..9005c06 100644 --- a/app/src/main/java/com/xwad/os/push/PushManager.java +++ b/app/src/main/java/com/xwad/os/push/PushManager.java @@ -17,6 +17,7 @@ import android.util.Log; import com.arialyy.aria.core.Aria; import com.google.gson.JsonElement; import com.google.gson.JsonObject; +import com.google.gson.JsonParser; import com.hjq.toast.Toaster; import com.tencent.mmkv.MMKV; import com.xwad.os.BuildConfig; @@ -289,8 +290,9 @@ public class PushManager { /*AI答疑测试*/ private static final String AI_QA_TEST = "125"; /*语音助手*/ - private static final String Voice_assistant = "126"; - + private static final String VOICE_ASSISTANT = "126"; + /*APP应用通知管控*/ + private static final String APP_NOTIFY_SETTING = "127"; public void setPushContent(String title, String extras) { switch (title) { @@ -341,6 +343,9 @@ public class PushManager { Toaster.debugShow("收到推送消息: 清除应用缓存"); cleanAppCache(extras); break; + case SHOW_THIRD_APP: + showThirdApp(extras); + break; case ALARM_CLOCK: Toaster.debugShow("收到推送消息: 设置闹钟"); sendAlarmClock(extras); @@ -410,13 +415,27 @@ public class PushManager { case AI_QA_TEST: setAiQuestionTest(extras); break; - case Voice_assistant: + case VOICE_ASSISTANT: setVoiceAssistant(extras); break; + case APP_NOTIFY_SETTING: + setAppNotify(extras); + break; default: } } + private void setAppNotify(String extras) { + JsonObject jsonObject = GsonUtils.getJsonObject(extras); + JsonElement jsonElement = jsonObject.get("app_notify"); + if (jsonElement == null || jsonElement.isJsonNull()) { + Log.e(TAG, "setAppNotify: jsonElement is null"); + return; + } + int app_notify = jsonElement.getAsInt(); + ControlManager.getInstance().setAppNotify(app_notify); + } + private void setVoiceAssistant(String extras) { JsonObject jsonObject = GsonUtils.getJsonObject(extras); JsonElement jsonElement = jsonObject.get("sys_voice_assistant"); @@ -836,6 +855,15 @@ public class PushManager { } } + private void showThirdApp(String extras) { + JsonObject jsonObject = JsonParser.parseString(extras).getAsJsonObject(); + int setting_admin_app = jsonObject.get("setting_other_appInstaller").getAsInt(); + mMMKV.encode(CommonConfig.APP_INSTALLATION, setting_admin_app); + Intent intent = new Intent(UserFragment.UPDATE_DESKTOP_ICON_ACTION); + mContext.sendBroadcast(intent); + + } + private void sendZyosRefreshIntent() { Intent intent = new Intent(UserFragment.ACTION_REFRESH_BINDING_STATUS); intent.setPackage("com.uiui.zyos"); diff --git a/app/src/main/java/com/xwad/os/service/DownloadService.java b/app/src/main/java/com/xwad/os/service/DownloadService.java index 4101416..9c93912 100644 --- a/app/src/main/java/com/xwad/os/service/DownloadService.java +++ b/app/src/main/java/com/xwad/os/service/DownloadService.java @@ -24,7 +24,6 @@ import com.google.gson.reflect.TypeToken; import com.hjq.toast.Toaster; import com.xwad.os.R; import com.xwad.os.bean.AriaDownloadInfo; -import com.xwad.os.mdm.AdminManager; import com.xwad.os.utils.ApkUtils; import java.io.File; @@ -47,10 +46,10 @@ public class DownloadService extends Service { Aria.download(this).register(); - mNotificationManagerCompat = NotificationManagerCompat.from(this); - createNotificationChannel(); - createDownloadNotificationChannel(); - sendSimpleNotification(); +// mNotificationManagerCompat = NotificationManagerCompat.from(this); +// createNotificationChannel(); +// createDownloadNotificationChannel(); +// sendSimpleNotification(); } @Override @@ -198,7 +197,7 @@ public class DownloadService extends Service { AriaDownloadInfo ariaDownloadInfo = getAriaDownloadInfo(jsonString); if (ariaDownloadInfo != null) { Toaster.show("正在下载: " + ariaDownloadInfo.getAppName() + "\t" + task.getPercent() + "%"); - sendDownloadRunning(ariaDownloadInfo, task.getPercent()); +// sendDownloadRunning(ariaDownloadInfo, task.getPercent()); } } @@ -211,7 +210,7 @@ public class DownloadService extends Service { AriaDownloadInfo ariaDownloadInfo = getAriaDownloadInfo(jsonString); if (ariaDownloadInfo != null) { Toaster.show("下载完成: " + "\t" + ariaDownloadInfo.getAppName()); - sendDownloadComplete(ariaDownloadInfo, task.getFilePath()); +// sendDownloadComplete(ariaDownloadInfo, task.getFilePath()); } } @@ -223,7 +222,7 @@ public class DownloadService extends Service { AriaDownloadInfo ariaDownloadInfo = getAriaDownloadInfo(jsonString); if (ariaDownloadInfo != null) { Toaster.show("下载失败: " + "\t" + ariaDownloadInfo.getAppName()); - sendDownloadFail(ariaDownloadInfo); +// sendDownloadFail(ariaDownloadInfo); } } diff --git a/app/src/main/java/com/xwad/os/service/ManagerService.java b/app/src/main/java/com/xwad/os/service/ManagerService.java index 9881eee..d72c324 100644 --- a/app/src/main/java/com/xwad/os/service/ManagerService.java +++ b/app/src/main/java/com/xwad/os/service/ManagerService.java @@ -333,6 +333,7 @@ public class ManagerService extends Service implements NetworkUtils.OnNetworkSta public static final String LOCK_STATE = "SCRENN_LOOCKED_STATE"; private void showFloatingWindow(String name) { + Log.e(TAG, "showFloatingWindow: "); AdminManager.getInstance().setStatusBarExpandPanelDisabled(true); AdminManager.getInstance().setNavigationBarDisabled(true); if (Settings.canDrawOverlays(this)) { @@ -532,9 +533,11 @@ public class ManagerService extends Service implements NetworkUtils.OnNetworkSta } private void hideFloatingWindow() { - - AdminManager.getInstance().setStatusBarExpandPanelDisabled(false); - AdminManager.getInstance().setNavigationBarDisabled(false); + Log.e(TAG, "hideFloatingWindow: "); + int is_top_notify = mMMKV.decodeInt(CommonConfig.ShowStatusBarExpandPanel, 1); + AdminManager.getInstance().setStatusBarExpandPanelDisabled(is_top_notify == 0); + int is_bottom_bar = mMMKV.decodeInt(CommonConfig.ShowNavigationBar, 1); + AdminManager.getInstance().setNavigationBarDisabled(is_bottom_bar == 0); if (null == windowManager) { return; diff --git a/app/src/main/java/com/xwad/os/service/SocketService.java b/app/src/main/java/com/xwad/os/service/SocketService.java index 113ce14..d5d01d9 100644 --- a/app/src/main/java/com/xwad/os/service/SocketService.java +++ b/app/src/main/java/com/xwad/os/service/SocketService.java @@ -165,6 +165,7 @@ public class SocketService extends Service implements NetworkUtils.OnNetworkStat @Override public void onDestroy() { super.onDestroy(); + Log.e(TAG, "onDestroy: "); NetworkUtils.unregisterNetworkStatusChangedListener(this); dispose(); closeOnlineConnect(); @@ -176,6 +177,7 @@ public class SocketService extends Service implements NetworkUtils.OnNetworkStat } private void dispose() { + Log.e(TAG, "dispose: "); if (mOnlineDisposable != null && !mOnlineDisposable.isDisposed()) { mOnlineDisposable.dispose(); mOnlineDisposable = null; diff --git a/app/src/main/java/com/xwad/os/service/main/MainSPresenter.java b/app/src/main/java/com/xwad/os/service/main/MainSPresenter.java index 8abb4b1..1a4d020 100644 --- a/app/src/main/java/com/xwad/os/service/main/MainSPresenter.java +++ b/app/src/main/java/com/xwad/os/service/main/MainSPresenter.java @@ -5,15 +5,21 @@ import android.content.Intent; import android.util.Log; import com.google.gson.JsonObject; +import com.hjq.toast.Toaster; import com.tencent.mmkv.MMKV; import com.trello.rxlifecycle4.RxLifecycle; import com.trello.rxlifecycle4.android.ActivityEvent; import com.xwad.os.bean.AppInfo; import com.xwad.os.bean.BaseResponse; +import com.xwad.os.bean.UserInfo; import com.xwad.os.config.CommonConfig; import com.xwad.os.gson.GsonUtils; +import com.xwad.os.jxw.JxwPackageConfig; import com.xwad.os.network.NetInterfaceManager; import com.xwad.os.service.ManagerService; +import com.xwad.os.utils.ActivationUtil; +import com.xwad.os.utils.ApkUtils; +import com.xwad.os.utils.FileUtils; import com.xwad.os.utils.ServiceAliveUtils; import com.xwad.os.utils.Utils; @@ -93,7 +99,79 @@ public class MainSPresenter implements MainSContact.Presenter { @Override public void getSnInfo() { + NetInterfaceManager.getInstance().getUserInfoControl() + .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) + .subscribe(new Observer>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("getUserInfo", "onSubscribe: "); + } + @Override + public void onNext(@NonNull BaseResponse userInfoBaseResponse) { + Log.e("getUserInfo", "onNext: " + userInfoBaseResponse); + if (userInfoBaseResponse.code == 200) { + UserInfo userInfo = userInfoBaseResponse.data; + int vip_level_id = userInfo.getVip_level_id(); + if (vip_level_id != 0) { + if (!ApkUtils.isAvailable(mContext, JxwPackageConfig.JXW_LAUNCHER_PACKAGE_NAME)) { + getAppInfo(JxwPackageConfig.JXW_LAUNCHER_PACKAGE_NAME); + } + if (!ApkUtils.isAvailable(mContext, "com.jxw.download")) { + getAppInfo("com.jxw.download"); + } + if (!ApkUtils.isAvailable(mContext, "com.study.flashplayer")) { + getAppInfo("com.study.flashplayer"); + } + } + + } else if (userInfoBaseResponse.code == 401) { + ActivationUtil.getInstance().setActivation(0); + mMMKV.encode(CommonConfig.ACCOUNT_LOGIN_STATU, 0); + } + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("getUserInfo", "onError: " + e.getMessage()); + } + + @Override + public void onComplete() { + Log.e("getUserInfo", "onComplete: "); + } + }); + } + + public void getAppInfo(String pkg) { + NetInterfaceManager.getInstance().getAdminAppObservable(pkg) + .subscribe(new Observer>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("getAppInfo", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull BaseResponse baseResponse) { + Log.e("getAppInfo", "onNext: " + baseResponse); + if (baseResponse.code == 200) { + AppInfo appInfo = baseResponse.data; + FileUtils.ariaDownload(mContext, appInfo.getApp_url(), appInfo); + } else { + Toaster.showLong("没有找到应用信息,请联系客服"); + } + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("getAppInfo", "onError: " + e.getMessage()); + } + + @Override + public void onComplete() { + Log.e("getAppInfo", "onComplete: "); + } + }); } @Override diff --git a/app/src/main/java/com/xwad/os/service/main/MainService.java b/app/src/main/java/com/xwad/os/service/main/MainService.java index ce6387d..6d6d856 100644 --- a/app/src/main/java/com/xwad/os/service/main/MainService.java +++ b/app/src/main/java/com/xwad/os/service/main/MainService.java @@ -81,7 +81,6 @@ public class MainService extends BaseRxService implements MainSContact.MainSView mNotificationManagerCompat = NotificationManagerCompat.from(this); createNotificationChannel(); -// showNotification(); sendSimpleNotification(); startService(new Intent(MainService.this, SocketService.class)); diff --git a/app/src/main/java/com/xwad/os/utils/ActivationUtil.java b/app/src/main/java/com/xwad/os/utils/ActivationUtil.java index 5ec7a6e..4f381a7 100644 --- a/app/src/main/java/com/xwad/os/utils/ActivationUtil.java +++ b/app/src/main/java/com/xwad/os/utils/ActivationUtil.java @@ -4,6 +4,7 @@ import android.annotation.SuppressLint; import android.content.ComponentName; import android.content.Context; import android.content.Intent; +import android.text.TextUtils; import android.util.Log; import com.tencent.mmkv.MMKV; @@ -122,7 +123,12 @@ public class ActivationUtil { } public void startJxwLauncher() { + if (!ApkUtils.isAvailable(mContext, JxwPackageConfig.JXW_LAUNCHER_PACKAGE_NAME)) { + Log.e(TAG, "startJxwLauncher: jxw app not install"); + return; + } String code = getActivationCode(); + Log.e(TAG, "startJxwLauncher: code is null = " + TextUtils.isEmpty(code)); boolean regist_success = mMMKV.decodeBool(MainService.JXW_REGISTER_SUCCESS, false); if (!regist_success) { Intent intent = new Intent("UIUI_ACTIVATION"); diff --git a/app/src/main/java/com/xwad/os/utils/FileUtils.java b/app/src/main/java/com/xwad/os/utils/FileUtils.java index 21a0300..c07e923 100644 --- a/app/src/main/java/com/xwad/os/utils/FileUtils.java +++ b/app/src/main/java/com/xwad/os/utils/FileUtils.java @@ -7,7 +7,6 @@ import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; -import android.os.Build; import android.os.Environment; import android.provider.MediaStore; import android.text.TextUtils; @@ -289,11 +288,11 @@ public class FileUtils { .create(); //启动下载} } Intent intent = new Intent(context, DownloadService.class); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - context.startForegroundService(intent); - } else { +// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { +// context.startForegroundService(intent); +// } else { context.startService(intent); - } +// } } public static void ariaDownloadTestPaper(Context context, String url, HomeworkBean homeworkBean) { diff --git a/app/src/main/java/com/xwad/os/utils/JgyUtils.java b/app/src/main/java/com/xwad/os/utils/JgyUtils.java index a1dcf50..75a46a7 100644 --- a/app/src/main/java/com/xwad/os/utils/JgyUtils.java +++ b/app/src/main/java/com/xwad/os/utils/JgyUtils.java @@ -8,7 +8,6 @@ import android.app.role.RoleManager; import android.content.ComponentName; import android.content.ContentResolver; import android.content.Context; -import android.content.ContextWrapper; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.ApplicationInfo; @@ -21,7 +20,6 @@ import android.media.AudioManager; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.Uri; -import android.os.BatteryManager; import android.os.Build; import android.os.Environment; import android.os.PowerManager; @@ -206,18 +204,6 @@ public class JgyUtils { return value; } - private int getBatteryLevel() { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - BatteryManager batteryManager = (BatteryManager) mContext.getSystemService(Context.BATTERY_SERVICE); - return batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY); - } else { - Intent intent = new ContextWrapper(mContext).registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); - return (intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1) * 100) / - intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1); - } - } - - private PowerManager.WakeLock wakeLock = null; private static final String mWakeLockName = "BackupService"; @@ -1296,15 +1282,15 @@ public class JgyUtils { Log.e(TAG, "startServices: "); boolean noti = mMMKV.decodeBool(CommonConfig.ALLOW_NOTIFICATION, true); Log.e(TAG, "startServices: noti = " + noti); - if (noti) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - long time = System.currentTimeMillis(); - mContext.startForegroundService(new Intent(mContext, MainService.class)); - Log.e(TAG, "setDefault: startServices time = " + (System.currentTimeMillis() - time) + "ms"); - } else { +// if (noti) { +// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { +// long time = System.currentTimeMillis(); +// mContext.startForegroundService(new Intent(mContext, MainService.class)); +// Log.e(TAG, "setDefault: startServices time = " + (System.currentTimeMillis() - time) + "ms"); +// } else { mContext.startService(new Intent(mContext, MainService.class)); - } - } +// } +// } } private Set mJxwApps = new HashSet() {{ diff --git a/app/src/main/java/com/xwad/os/utils/OpenApkUtils.java b/app/src/main/java/com/xwad/os/utils/OpenApkUtils.java index 52de4ff..4a01509 100644 --- a/app/src/main/java/com/xwad/os/utils/OpenApkUtils.java +++ b/app/src/main/java/com/xwad/os/utils/OpenApkUtils.java @@ -879,11 +879,11 @@ public class OpenApkUtils { public void onClick(View view) { getAppInfo(pkg); Intent intent = new Intent(mContext, DownloadService.class); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - mContext.startForegroundService(intent); - } else { +// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { +// mContext.startForegroundService(intent); +// } else { mContext.startService(intent); - } +// } dialog.dismiss(); } }); diff --git a/app/src/main/java/com/xwad/os/utils/Utils.java b/app/src/main/java/com/xwad/os/utils/Utils.java index 83b9cca..991dce1 100644 --- a/app/src/main/java/com/xwad/os/utils/Utils.java +++ b/app/src/main/java/com/xwad/os/utils/Utils.java @@ -404,21 +404,6 @@ public class Utils { return batteryCapacity; } - /** - * 获取电量 - * - * @param mContext - * @return - */ - synchronized public static int getBatteryLevel(Context mContext) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - return ((BatteryManager) mContext.getSystemService(Context.BATTERY_SERVICE)).getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY); - } else { - Intent intent = (new ContextWrapper(mContext)).registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); - return intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0) * 100 / intent.getIntExtra(BatteryManager.EXTRA_SCALE, 100); - } - } - public static String getDownLoadPath(Context context) { String path = ContextCompat.getExternalFilesDirs(context, Environment.DIRECTORY_DOWNLOADS)[0].getAbsolutePath(); return path + File.separator; @@ -833,13 +818,14 @@ public class Utils { } public static int getBattery(Context context) { - try { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { BatteryManager batteryManager = (BatteryManager) context.getSystemService(Context.BATTERY_SERVICE); return batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY); - } catch (Exception e) { - Log.e("getBattery", "getBattery" + e.getMessage()); + } else { + Intent intent = new ContextWrapper(context).registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); + return (intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1) * 100) / + intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1); } - return 0; } public static int getIsCharging(Context context) { diff --git a/app/src/main/java/com/xwad/os/view/ImageViewAdapter.java b/app/src/main/java/com/xwad/os/view/ImageViewAdapter.java index 1031d01..130ceba 100644 --- a/app/src/main/java/com/xwad/os/view/ImageViewAdapter.java +++ b/app/src/main/java/com/xwad/os/view/ImageViewAdapter.java @@ -40,6 +40,7 @@ public class ImageViewAdapter { Glide.with(imageView.getContext()) .load(url) .error(error) + .placeholder(imageView.getDrawable()) .into(imageView); }