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 0000000..5c3f354 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/uiui_zybrowser.png differ