From daec7f66c747bce710827d4a0e062559c8a4d280 Mon Sep 17 00:00:00 2001 From: Fanhuitong <981964879@qq.com> Date: Mon, 8 Jul 2024 10:33:35 +0800 Subject: [PATCH] =?UTF-8?q?version:1.8.4=20fix:=20update:=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=B5=8F=E8=A7=88=E5=99=A8=EF=BC=8C=E6=9B=B4=E6=8D=A2?= =?UTF-8?q?=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 4 +- .../uiui/zyos/activity/main/MainActivity.java | 12 ++- .../uiui/zyos/fragment/app/AppPresenter.java | 7 ++ .../uiui/zyos/fragment/user/UserFragment.java | 4 +- .../com/uiui/zyos/jxw/JxwPackageConfig.java | 13 +++- .../com/uiui/zyos/manager/AppManager.java | 2 + .../com/uiui/zyos/utils/OpenApkUtils.java | 72 +++++++++++++++++- .../main/res/drawable-hdpi/uiui_zybrowser.png | Bin 0 -> 13153 bytes 8 files changed, 105 insertions(+), 9 deletions(-) create mode 100644 app/src/main/res/drawable-hdpi/uiui_zybrowser.png diff --git a/app/build.gradle b/app/build.gradle index 55df49f..1a249dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,8 +16,8 @@ android { minSdkVersion 24 targetSdkVersion 29 - versionCode 73 - versionName "1.8.1" + versionCode 76 + versionName "1.8.4" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true diff --git a/app/src/main/java/com/uiui/zyos/activity/main/MainActivity.java b/app/src/main/java/com/uiui/zyos/activity/main/MainActivity.java index ad2e116..aa61ae0 100644 --- a/app/src/main/java/com/uiui/zyos/activity/main/MainActivity.java +++ b/app/src/main/java/com/uiui/zyos/activity/main/MainActivity.java @@ -28,12 +28,12 @@ import androidx.viewpager.widget.ViewPager; import com.hjq.permissions.OnPermissionCallback; import com.hjq.permissions.Permission; import com.hjq.permissions.XXPermissions; +import com.hjq.toast.Toaster; import com.tencent.mmkv.MMKV; import com.uiui.zyos.BuildConfig; import com.uiui.zyos.R; import com.uiui.zyos.activity.ExitActivity; import com.uiui.zyos.base.mvp.BaseMvpActivity; -import com.uiui.zyos.view.viewpager.BaseFragmentPagerAdapter; import com.uiui.zyos.config.CommonConfig; import com.uiui.zyos.dialog.PrivacyPolicyDialog; import com.uiui.zyos.fragment.subject.SubjectFragment; @@ -43,9 +43,9 @@ import com.uiui.zyos.manager.AmapManager; import com.uiui.zyos.manager.RemoteManager; import com.uiui.zyos.utils.ApkUtils; import com.uiui.zyos.utils.OpenApkUtils; -import com.hjq.toast.Toaster; import com.uiui.zyos.utils.Utils; import com.uiui.zyos.view.ScaleCircleNavigator; +import com.uiui.zyos.view.viewpager.BaseFragmentPagerAdapter; import net.lucode.hackware.magicindicator.MagicIndicator; @@ -126,6 +126,9 @@ public class MainActivity extends BaseMvpActivity implements MainContact.MainVie public void initView() { Log.e(TAG, "initView: "); +// OpenApkUtils.getInstance().openWordLecture(); +// OpenApkUtils.getInstance().openExamSprint(); +// OpenApkUtils.getInstance().openApp(JxwPackageConfig.JXW_USAGEDATE_NAME, JxwPackageConfig.JXW_USAGEDATE_CLASS); if (Build.VERSION.SDK_INT >= 33) { hideSystemUI(); @@ -335,6 +338,10 @@ public class MainActivity extends BaseMvpActivity implements MainContact.MainVie @Override public void onConnected() { Log.e(TAG, "onConnected: "); + setDefaultDesktop(); + } + + private void setDefaultDesktop() { int is_activation = Settings.Global.getInt(getContentResolver(), CommonConfig.UIUI_ACTIVATION_KEY, 0); if (is_activation == 0) { RemoteManager.getInstance().setDefaultDesktop(ApkUtils.ANDROID_LAUNCHER3_PACKAGE_NAME); @@ -421,6 +428,7 @@ public class MainActivity extends BaseMvpActivity implements MainContact.MainVie } else { getPermission(); } + setDefaultDesktop(); } @Override diff --git a/app/src/main/java/com/uiui/zyos/fragment/app/AppPresenter.java b/app/src/main/java/com/uiui/zyos/fragment/app/AppPresenter.java index c400e17..eae4613 100644 --- a/app/src/main/java/com/uiui/zyos/fragment/app/AppPresenter.java +++ b/app/src/main/java/com/uiui/zyos/fragment/app/AppPresenter.java @@ -64,6 +64,13 @@ public class AppPresenter implements AppContact.AppPresenter { // manualIcon.setIcon(mContext.getDrawable(R.drawable.icon_manual)); // desktopIcons.add(desktopIcons.size(), manualIcon); + DesktopIcon browserIcon = new DesktopIcon(); + browserIcon.setIcon(mContext.getDrawable(R.drawable.uiui_zybrowser)); + browserIcon.setLable("浏览器"); + browserIcon.setPackageName(AppManager.BROWSER_PACKAGE_NAME); + browserIcon.setClassName(AppManager.BROWSER_CLASS_NAME); + desktopIcons.add(browserIcon); + DesktopIcon serviceIcon = new DesktopIcon(); serviceIcon.setIcon(mContext.getDrawable(R.drawable.service_icon)); serviceIcon.setLable("联系客服"); diff --git a/app/src/main/java/com/uiui/zyos/fragment/user/UserFragment.java b/app/src/main/java/com/uiui/zyos/fragment/user/UserFragment.java index 6591f62..71d1dfb 100644 --- a/app/src/main/java/com/uiui/zyos/fragment/user/UserFragment.java +++ b/app/src/main/java/com/uiui/zyos/fragment/user/UserFragment.java @@ -397,7 +397,7 @@ public class UserFragment extends BaseFragment implements UserContact.UserView { } else { tv_grade.setText(grade); } -// tv_percent.setText(snInfo.getStudy_time_ranking() + "%"); + tv_percent.setText(snInfo.getStudy_time_ranking() + "%"); tv_duration.setText(String.format(getString(R.string.today_study_time), TimeUtils.formatTime(snInfo.getStudy_time()))); cl_nodata.setVisibility(View.GONE); @@ -433,7 +433,7 @@ public class UserFragment extends BaseFragment implements UserContact.UserView { @Override public void setStudyStat(StudyStatBean studyStat) { if (studyStat != null) { - tv_percent.setText(studyStat.getStudy_exceed() + "%"); +// tv_percent.setText(studyStat.getStudy_exceed() + "%"); } } diff --git a/app/src/main/java/com/uiui/zyos/jxw/JxwPackageConfig.java b/app/src/main/java/com/uiui/zyos/jxw/JxwPackageConfig.java index b883da2..9d9a8e7 100644 --- a/app/src/main/java/com/uiui/zyos/jxw/JxwPackageConfig.java +++ b/app/src/main/java/com/uiui/zyos/jxw/JxwPackageConfig.java @@ -10,6 +10,11 @@ public class JxwPackageConfig { public static final String JXW_VIDEO_CLASS_NAME = "com.jxw.newyouer.activity.ExecellentActivity"; public static final String JXW_COMPOSITION_CLASS_NAME = "com.jxw.newyouer.activity.SpecialVideoActivity"; public static final String JXW_QUALITY_CLASS_NAME = "com.jxw.newyouer.activity.QualityActivity"; + /*单词大讲堂*/ + public static final String JXW_WORD_LECTURE_CLASS_NAME = "com.jxw.newyouer.activity.WordLectureActivity"; + /*考前冲刺*/ + public static final String JXW_EXAM_SPRINT_CLASS_NAME = "com.jxw.newyouer.activity.ExamSprintActivity"; + /*同步辅导*/ public static final String JXW_TUTORING_PACKAGE_NAME = "com.jxw.online_study"; @@ -92,6 +97,10 @@ public class JxwPackageConfig { public static final String JXW_YOUER_PACKAGE_NAME = "com.jxw.youer.video"; public static final String JXW_YOUER_CLASS_NAME = "com.jxw.youer.activity.MainActivity"; /*模拟考场*/ - public static final String JXW_EXAMSYSTEM_NAME ="com.jxw.examsystem"; - public static final String JXW_EXAMSYSTEM_CLASS ="com.jxw.examsystem.StartExamActivity"; + public static final String JXW_EXAMSYSTEM_NAME = "com.jxw.examsystem"; + public static final String JXW_EXAMSYSTEM_CLASS = "com.jxw.examsystem.StartExamActivity"; + /*学情管理*/ + public static final String JXW_USAGEDATE_NAME = "com.jxw.usagedate"; + public static final String JXW_USAGEDATE_CLASS = "com.jxw.usagedate.ui.MainActivity"; + } \ No newline at end of file diff --git a/app/src/main/java/com/uiui/zyos/manager/AppManager.java b/app/src/main/java/com/uiui/zyos/manager/AppManager.java index 2021679..1c8bd86 100644 --- a/app/src/main/java/com/uiui/zyos/manager/AppManager.java +++ b/app/src/main/java/com/uiui/zyos/manager/AppManager.java @@ -36,6 +36,8 @@ public class AppManager { public static final String MANUAL_NAME = "com.zyos.manual"; public static final String SERVICE_NAME = "com.zyos.service"; private static final String SHOW_PACKAGE_KEY = "SHOW_PACKAGE_KEY"; + public static final String BROWSER_PACKAGE_NAME = "com.uiui.zybrowser"; + public static final String BROWSER_CLASS_NAME = "com.uiui.zybrowser.activity.main.MainActivity"; @SuppressLint("StaticFieldLeak") private static AppManager sInstance; diff --git a/app/src/main/java/com/uiui/zyos/utils/OpenApkUtils.java b/app/src/main/java/com/uiui/zyos/utils/OpenApkUtils.java index 753f3f6..bbe92c4 100644 --- a/app/src/main/java/com/uiui/zyos/utils/OpenApkUtils.java +++ b/app/src/main/java/com/uiui/zyos/utils/OpenApkUtils.java @@ -21,8 +21,10 @@ import com.uiui.zyos.config.CommonConfig; import com.uiui.zyos.jxw.JxwPackageConfig; import java.lang.reflect.Type; +import java.util.HashMap; import java.util.HashSet; import java.util.Set; +import java.util.function.BiConsumer; public class OpenApkUtils { private static final String TAG = OpenApkUtils.class.getSimpleName(); @@ -90,6 +92,34 @@ public class OpenApkUtils { return false; } + public boolean openPackageWithMultiArgs(String packageName, String className, HashMap args) { + if (!ApkUtils.isAvailable(mContext, packageName)) { + Toaster.show("应用未安装"); + return false; + } + ComponentName cn = new ComponentName(packageName, className); + Intent intent = new Intent(); + intent.setComponent(cn); + if (args != null) { + args.forEach(new BiConsumer() { + @Override + public void accept(String s, String s2) { + intent.putExtra(s, s2); + } + }); + } + intent.putExtra("index", 1); + intent.addCategory(Intent.CATEGORY_LAUNCHER); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); + try { + mContext.startActivity(intent); + return true; + } catch (Exception e) { + Log.e(TAG, "openPackageWithArgs: " + e.getMessage()); + } + return false; + } + public void refresh() { String jsonString = mMMKV.decodeString(CommonConfig.CLOUD_LESSON_SETTINGS_KEY); if (!TextUtils.isEmpty(jsonString)) { @@ -294,6 +324,46 @@ public class OpenApkUtils { } } + public void openWordLecture() { + if (!checkActivation()) { + return; + } + String packageName = JxwPackageConfig.JXW_VIDEO_PACKAGE_NAME; + String className = JxwPackageConfig.JXW_WORD_LECTURE_CLASS_NAME; + HashMap map = new HashMap<>(); + map.put("gradeName", "一年级"); + map.put("pressName", "人教版"); + if (isCloudLessonMod(packageName)) { + if (openPackageWithMultiArgs(packageName, className, map)) { + sendRuningApp(packageName); + } else { + Toaster.show("打开失败:应用未安装"); + } + } else { + Toaster.show("专注模式只允许使用指定应用"); + } + } + + public void openExamSprint() { + if (!checkActivation()) { + return; + } + String packageName = JxwPackageConfig.JXW_VIDEO_PACKAGE_NAME; + String className = JxwPackageConfig.JXW_EXAM_SPRINT_CLASS_NAME; + HashMap map = new HashMap<>(); + map.put("title", "中考第一轮复习"); + map.put("subject", "数学"); + if (isCloudLessonMod(packageName)) { + if (openPackageWithMultiArgs(packageName, className, map)) { + sendRuningApp(packageName); + } else { + Toaster.show("打开失败:应用未安装"); + } + } else { + Toaster.show("专注模式只允许使用指定应用"); + } + } + public boolean isNewAiApp() { PackageManager pm = mContext.getPackageManager(); PackageInfo packageInfo = null; @@ -311,7 +381,7 @@ public class OpenApkUtils { } else { appVersionCode = packageInfo.versionCode; } - if (appVersionCode == 85) { + if (appVersionCode > 10) { return false; } else { return true; diff --git a/app/src/main/res/drawable-hdpi/uiui_zybrowser.png b/app/src/main/res/drawable-hdpi/uiui_zybrowser.png new file mode 100644 index 0000000000000000000000000000000000000000..5c3f3544cc8d6faf7681e567cf3b9f903c0cfc96 GIT binary patch literal 13153 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�ZG~*)2V>AqAdQsx_dP0f6sch%` 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 YJO4@J(~&Ov&rdIEN?M9F^6x(UAMM2zq5uE@ literal 0 HcmV?d00001