updateAddress(
+ @Field("sn") String sn,
+ @Field("address") String address,
+ @Field("longitude") double longitude,
+ @Field("latitude") double latitude
+ );
+}
diff --git a/app/src/main/java/com/uiui/zyos/push/PushManager.java b/app/src/main/java/com/uiui/zyos/push/PushManager.java
index 44c322a..4ce1821 100644
--- a/app/src/main/java/com/uiui/zyos/push/PushManager.java
+++ b/app/src/main/java/com/uiui/zyos/push/PushManager.java
@@ -7,7 +7,7 @@ import android.content.Intent;
import com.uiui.zyos.disklrucache.CacheHelper;
import com.uiui.zyos.network.NetInterfaceManager;
-import com.uiui.zyos.utils.ToastUtil;
+import com.hjq.toast.Toaster;
public class PushManager {
private static final String TAG = PushManager.class.getSimpleName();
@@ -51,13 +51,13 @@ public class PushManager {
public void setPushContent(String title, String extras) {
switch (title) {
case JIGUANG_ALARM_CLOCK:
- ToastUtil.betaShow("收到推送消息: 设置闹钟");
+ Toaster.debugShow("收到推送消息: 设置闹钟");
NetInterfaceManager.getInstance().getAlarmClock();
Intent intent = new Intent(SET_ALARMCLOCK);
mContext.sendBroadcast(intent);
break;
case ONLINE_COURSE_MODE:
- ToastUtil.betaShow("收到推送消息: 网课模式");
+ Toaster.debugShow("收到推送消息: 网课模式");
NetInterfaceManager.getInstance().getCloudLessonSettings();
break;
default:
diff --git a/app/src/main/java/com/uiui/zyos/receiver/BootReceiver.java b/app/src/main/java/com/uiui/zyos/receiver/BootReceiver.java
index e766409..a20534b 100644
--- a/app/src/main/java/com/uiui/zyos/receiver/BootReceiver.java
+++ b/app/src/main/java/com/uiui/zyos/receiver/BootReceiver.java
@@ -6,7 +6,6 @@ import android.content.Intent;
import android.text.TextUtils;
import android.util.Log;
-import com.uiui.zyos.service.main.MainService;
import java.util.concurrent.TimeUnit;
@@ -18,7 +17,7 @@ import io.reactivex.rxjava3.disposables.Disposable;
public class BootReceiver extends BroadcastReceiver {
private static final String TAG = BootReceiver.class.getSimpleName();
public static final String BOOT_COMPLETED = "zuoyeos.action.BOOT_COMPLETED";
- public static final String SOS = "zuoyeos.action.SOS";
+ public static final String SOS = "zyos.action.SOS";
static {
getLockedState();
@@ -72,7 +71,7 @@ public class BootReceiver extends BroadcastReceiver {
// Intent alarmIntent = new Intent(MessageReceiver.SET_ALARMCLOCK);
// context.sendBroadcast(alarmIntent);
case Intent.ACTION_BOOT_COMPLETED:
- context.startService(new Intent(context, MainService.class));
+// context.startService(new Intent(context, MainService.class));
break;
// TODO: 2023/6/17 频繁唤醒耗电
// case Intent.ACTION_BATTERY_CHANGED:
diff --git a/app/src/main/java/com/uiui/zyos/receiver/InstallResultReceiver.java b/app/src/main/java/com/uiui/zyos/receiver/InstallResultReceiver.java
index c5fe60d..da1cc4c 100644
--- a/app/src/main/java/com/uiui/zyos/receiver/InstallResultReceiver.java
+++ b/app/src/main/java/com/uiui/zyos/receiver/InstallResultReceiver.java
@@ -50,7 +50,7 @@ public class InstallResultReceiver extends BroadcastReceiver {
// Log.e("fht", LEGACY_STATUS);
// Log.e("fht", STATUS_MESSAGE);
if (STATUS_MESSAGE != null && "INSTALL_SUCCEEDED".equals(STATUS_MESSAGE)) {
-// ToastUtil.show(PACKAGE_NAME + "安装成功");
+// Toaster.show(PACKAGE_NAME + "安装成功");
}
}
}
diff --git a/app/src/main/java/com/uiui/zyos/service/main/MainSContact.java b/app/src/main/java/com/uiui/zyos/service/main/MainSContact.java
index 7adac54..b748941 100644
--- a/app/src/main/java/com/uiui/zyos/service/main/MainSContact.java
+++ b/app/src/main/java/com/uiui/zyos/service/main/MainSContact.java
@@ -1,7 +1,7 @@
package com.uiui.zyos.service.main;
-import com.uiui.zyos.base.BasePresenter;
-import com.uiui.zyos.base.BaseView;
+import com.uiui.zyos.base.mvp.BasePresenter;
+import com.uiui.zyos.base.mvp.BaseView;
import com.uiui.zyos.bean.AlarmClockData;
import java.util.List;
diff --git a/app/src/main/java/com/uiui/zyos/service/main/MainService.java b/app/src/main/java/com/uiui/zyos/service/main/MainService.java
index 62b56df..ea63180 100644
--- a/app/src/main/java/com/uiui/zyos/service/main/MainService.java
+++ b/app/src/main/java/com/uiui/zyos/service/main/MainService.java
@@ -1,11 +1,9 @@
package com.uiui.zyos.service.main;
import android.content.BroadcastReceiver;
-import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
-import android.os.Build;
import android.os.IBinder;
import android.text.TextUtils;
import android.util.Log;
@@ -13,16 +11,15 @@ import android.util.Log;
import com.blankj.utilcode.util.NetworkUtils;
import com.uiui.zyos.activity.NoticeActivity;
import com.uiui.zyos.alarm.AlarmUtils;
-import com.uiui.zyos.base.BaseService;
+import com.uiui.zyos.base.rx.BaseRxService;
import com.uiui.zyos.bean.AlarmClockData;
-import com.uiui.zyos.jxw.JxwPackageConfig;
import com.uiui.zyos.utils.Utils;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
-public class MainService extends BaseService implements MainSContact.MainSView, NetworkUtils.OnNetworkStatusChangedListener {
+public class MainService extends BaseRxService implements MainSContact.MainSView, NetworkUtils.OnNetworkStatusChangedListener {
private static final String TAG = MainService.class.getSimpleName();
public MainSPresenter mPresenter;
@@ -56,7 +53,7 @@ public class MainService extends BaseService implements MainSContact.MainSView,
Log.e(TAG, "onCreate: ");
mPresenter = new MainSPresenter(this);
mPresenter.attachView(this);
- mPresenter.setLifecycle(lifecycleSubject);
+ mPresenter.setLifecycle(getLifecycleSubject());
mPresenter.getCloudLessonSettings();
// registerAlarmReceiver();
NetworkUtils.registerNetworkStatusChangedListener(this);
diff --git a/app/src/main/java/com/uiui/zyos/utils/ActivationUtil.java b/app/src/main/java/com/uiui/zyos/utils/ActivationUtil.java
new file mode 100644
index 0000000..be53869
--- /dev/null
+++ b/app/src/main/java/com/uiui/zyos/utils/ActivationUtil.java
@@ -0,0 +1,90 @@
+package com.uiui.zyos.utils;
+
+import android.content.Context;
+import android.provider.Settings;
+
+import com.uiui.zyos.config.CommonConfig;
+
+public class ActivationUtil {
+
+ /*写入1为激活*/
+ private static final int ACTIVATED_KEY = 1;
+ private static final int INACTIVATED_KEY = 0;
+ /*默认激活码类型*/
+ private static final int DEFAULT_CODE_TYPE = -1;
+ /*默认过期时间*/
+ private static final int DEFAULT_EXPIRE_TIME = -1;
+
+
+ /**
+ * 获取激活状态
+ *
+ * @param context
+ * @return
+ */
+ public static int getActivationStateCode(Context context) {
+ int activation = Settings.Global.getInt(context.getContentResolver(), CommonConfig.UIUI_ACTIVATION_KEY, INACTIVATED_KEY);
+ return activation;
+ }
+
+ /**
+ * 是否激活
+ *
+ * @param context
+ * @return
+ */
+ public static boolean isActivation(Context context) {
+ return getActivationStateCode(context) == ACTIVATED_KEY;
+ }
+
+ /**
+ * 设置激活状态
+ *
+ * @param context
+ * @param code
+ */
+ public static void setActivation(Context context, int code) {
+ Settings.Global.putInt(context.getContentResolver(), CommonConfig.UIUI_ACTIVATION_KEY, code);
+ }
+
+ /**
+ * 设置激活码类型
+ *
+ * @param context
+ * @param code
+ */
+ public static void setActivationCodeType(Context context, int code) {
+ Settings.Global.putInt(context.getContentResolver(), CommonConfig.UIUI_CODE_TYPE_KEY, code);
+ }
+
+ /**
+ * 获取激活码类型
+ *
+ * @param context
+ * @return
+ */
+ public static int getActivationCodeType(Context context) {
+ return Settings.Global.getInt(context.getContentResolver(), CommonConfig.UIUI_CODE_TYPE_KEY, DEFAULT_CODE_TYPE);
+ }
+
+ /**
+ * 设置过期时间
+ *
+ * @param context
+ * @param expireTime
+ */
+ public static void setActivationExpireTime(Context context, long expireTime) {
+ Settings.Global.putLong(context.getContentResolver(), CommonConfig.UIUI_EXPIRE_TIME_KEY, expireTime);
+ }
+
+ /**
+ * 获取过期时间
+ *
+ * @param context
+ * @return
+ */
+ public static long getActivationExpireTime(Context context) {
+ return Settings.Global.getLong(context.getContentResolver(), CommonConfig.UIUI_EXPIRE_TIME_KEY, DEFAULT_EXPIRE_TIME);
+ }
+
+}
\ No newline at end of file
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 509c4da..44c6b79 100644
--- a/app/src/main/java/com/uiui/zyos/utils/OpenApkUtils.java
+++ b/app/src/main/java/com/uiui/zyos/utils/OpenApkUtils.java
@@ -5,12 +5,16 @@ import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.os.Build;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
+import com.hjq.toast.Toaster;
import com.tencent.mmkv.MMKV;
import com.uiui.zyos.bean.LessonJson;
import com.uiui.zyos.config.CommonConfig;
@@ -61,14 +65,14 @@ public class OpenApkUtils {
int is_activation = Settings.Global.getInt(mContext.getContentResolver(), CommonConfig.UIUI_ACTIVATION_KEY, 0);
if (is_activation != 1) {
ApkUtils.openPackage(mContext, "com.uiui.zy", "com.uiui.zy.activity.main.MainActivity");
- ToastUtil.show("请激活设备后使用");
+ Toaster.show("请激活设备后使用");
}
return is_activation == 1;
}
public boolean openPackageWithArgs(String packageName, String className, String name, String args) {
if (!ApkUtils.isAvailable(mContext, packageName)) {
- ToastUtil.show("应用未安装");
+ Toaster.show("应用未安装");
return false;
}
ComponentName cn = new ComponentName(packageName, className);
@@ -181,35 +185,35 @@ public class OpenApkUtils {
}};
private void sendRuningApp(String packageName) {
- AppUsedTimeUtils.getInstance().setAppPackageName(packageName);
- AppUsedTimeUtils.getInstance().setStartTime(System.currentTimeMillis());
- AppUsedTimeUtils.getInstance().sendRunningApp(() -> {
- });
+// AppUsedTimeUtils.getInstance().setAppPackageName(packageName);
+// AppUsedTimeUtils.getInstance().setStartTime(System.currentTimeMillis());
+// AppUsedTimeUtils.getInstance().sendRunningApp(() -> {
+// });
}
public void openApp(String packageName) {
if (!ApkUtils.isAvailable(mContext, packageName)) {
- ToastUtil.show("应用未安装");
+ Toaster.show("应用未安装");
return;
}
if (isCloudLessonMod(packageName)) {
ApkUtils.openPackage(mContext, packageName);
sendRuningApp(packageName);
} else {
- ToastUtil.show("专注模式只允许使用指定应用");
+ Toaster.show("专注模式只允许使用指定应用");
}
}
public void openApp(String packageName, String className) {
if (!ApkUtils.isAvailable(mContext, packageName)) {
- ToastUtil.show("应用未安装");
+ Toaster.show("应用未安装");
return;
}
if (isCloudLessonMod(packageName)) {
ApkUtils.openPackage(mContext, packageName, className);
sendRuningApp(packageName);
} else {
- ToastUtil.show("专注模式只允许使用指定应用");
+ Toaster.show("专注模式只允许使用指定应用");
}
}
@@ -224,7 +228,7 @@ public class OpenApkUtils {
sendRuningApp(packageName);
}
} else {
- ToastUtil.show("专注模式只允许使用指定应用");
+ Toaster.show("专注模式只允许使用指定应用");
}
}
@@ -239,7 +243,7 @@ public class OpenApkUtils {
sendRuningApp(packageName);
}
} else {
- ToastUtil.show("专注模式只允许使用指定应用");
+ Toaster.show("专注模式只允许使用指定应用");
}
}
@@ -254,7 +258,7 @@ public class OpenApkUtils {
sendRuningApp(packageName);
}
} else {
- ToastUtil.show("专注模式只允许使用指定应用");
+ Toaster.show("专注模式只允许使用指定应用");
}
}
@@ -269,7 +273,7 @@ public class OpenApkUtils {
sendRuningApp(packageName);
}
} else {
- ToastUtil.show("专注模式只允许使用指定应用");
+ Toaster.show("专注模式只允许使用指定应用");
}
}
@@ -282,9 +286,35 @@ public class OpenApkUtils {
if (isCloudLessonMod(packageName)) {
if (openPackageWithArgs(packageName, className, "StartArgs", "中华文化")) {
sendRuningApp(packageName);
+ } else {
+ Toaster.show("打开失败:应用未安装");
}
} else {
- ToastUtil.show("专注模式只允许使用指定应用");
+ Toaster.show("专注模式只允许使用指定应用");
+ }
+ }
+
+ public boolean isNewAiApp() {
+ PackageManager pm = mContext.getPackageManager();
+ PackageInfo packageInfo = null;
+ try {
+ packageInfo = pm.getPackageInfo(JxwPackageConfig.JXW_PRECISION_PACKAGE_NAME, 0);
+ } catch (PackageManager.NameNotFoundException e) {
+ e.printStackTrace();
+ }
+ if (packageInfo == null) {
+ return false;
+ }
+ long appVersionCode;
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
+ appVersionCode = packageInfo.getLongVersionCode();
+ } else {
+ appVersionCode = packageInfo.versionCode;
+ }
+ if (appVersionCode == 85) {
+ return false;
+ } else {
+ return true;
}
}
@@ -293,16 +323,79 @@ public class OpenApkUtils {
return;
}
String packageName = JxwPackageConfig.JXW_PRECISION_PACKAGE_NAME;
- String className = JxwPackageConfig.JXW_PRECISION_CLASS_NAME;
+ String className = JxwPackageConfig.JXW_PRECISION_CLASS_NAME_85;
if (isCloudLessonMod(packageName)) {
if (openPackageWithArgs(packageName, className, "tiku_func_type", args)) {
sendRuningApp(packageName);
+ } else {
+ Toaster.show("打开失败:应用未安装");
}
} else {
- ToastUtil.show("专注模式只允许使用指定应用");
+ Toaster.show("专注模式只允许使用指定应用");
}
}
+ public void openAiPrecision(int page, String subject) {
+ if (!checkActivation()) {
+ return;
+ }
+ String packageName = JxwPackageConfig.JXW_PRECISION_PACKAGE_NAME;
+ String className = JxwPackageConfig.JXW_PRECISION_CLASS_NAME_1;
+ if (isCloudLessonMod(packageName)) {
+ if (openAiWithArgs(packageName, className, page, subject)) {
+ sendRuningApp(packageName);
+ } else {
+ Toaster.show("打开失败:应用未安装");
+ }
+ } else {
+ Toaster.show("专注模式只允许使用指定应用");
+ }
+ }
+
+
+ public static final String NAME_PRIMARY_SCHOOL = "小学";
+ public static final String NAME_MIDDLE_SCHOOL = "初中";
+ public static final String NAME_HIGH_SCHOOL = "高中";
+
+ /**
+ * page_navigate 写死传0
+ * appoint_subject_list 不需要传
+ * appoint_period_name 这个是学段,一定要传 ,
+ *
+ * public static final String NAME_PRIMARY_SCHOOL = "小学";
+ * public static final String NAME_MIDDLE_SCHOOL = "初中";
+ * public static final String NAME_HIGH_SCHOOL = "高中";
+ *
+ * appoint_period_name字段的值是上面这三个之一
+ *
+ * @param packageName
+ * @param className
+ * @param page
+ * @param subject
+ * @return
+ */
+ public boolean openAiWithArgs(String packageName, String className, int page, String subject) {
+ if (!ApkUtils.isAvailable(mContext, packageName)) {
+ Toaster.show("应用未安装");
+ return false;
+ }
+ ComponentName cn = new ComponentName(packageName, className);
+ Intent intent = new Intent();
+ intent.setComponent(cn);
+ intent.putExtra("page_navigate", page);
+ intent.putExtra("appoint_subject_name", subject);
+ intent.putExtra("appoint_period_name", NAME_HIGH_SCHOOL);
+ 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 openAppWithoutArgs(String packageName, String className) {
if (!checkActivation()) {
return;
@@ -310,7 +403,7 @@ public class OpenApkUtils {
if (isCloudLessonMod(packageName)) {
openApp(packageName, className);
} else {
- ToastUtil.show("专注模式只允许使用指定应用");
+ Toaster.show("专注模式只允许使用指定应用");
}
}
@@ -325,7 +418,7 @@ public class OpenApkUtils {
sendRuningApp(packageName);
}
} else {
- ToastUtil.show("专注模式只允许使用指定应用");
+ Toaster.show("专注模式只允许使用指定应用");
}
}
@@ -340,13 +433,13 @@ public class OpenApkUtils {
sendRuningApp(packageName);
}
} else {
- ToastUtil.show("专注模式只允许使用指定应用");
+ Toaster.show("专注模式只允许使用指定应用");
}
}
public boolean openLetterApp(String packageName, String className) {
if (!ApkUtils.isAvailable(mContext, packageName)) {
- ToastUtil.show("应用未安装");
+ Toaster.show("应用未安装");
return false;
}
ComponentName cn = new ComponentName(packageName, className);
@@ -377,7 +470,7 @@ public class OpenApkUtils {
sendRuningApp(packageName);
}
} else {
- ToastUtil.show("专注模式只允许使用指定应用");
+ Toaster.show("专注模式只允许使用指定应用");
}
}
diff --git a/app/src/main/java/com/uiui/zyos/utils/ToastUtil.java b/app/src/main/java/com/uiui/zyos/utils/ToastUtil.java
deleted file mode 100644
index 0b43f5a..0000000
--- a/app/src/main/java/com/uiui/zyos/utils/ToastUtil.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package com.uiui.zyos.utils;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.graphics.Color;
-import android.os.Build;
-import android.os.Handler;
-import android.os.Looper;
-import android.util.Log;
-import android.widget.Toast;
-
-import com.blankj.utilcode.util.ToastUtils;
-import com.uiui.zyos.BuildConfig;
-
-
-/**
- * Created by haoge on 2017/3/2.
- */
-
-public class ToastUtil {
- private static final String TAG = ToastUtil.class.getSimpleName();
- @SuppressLint("StaticFieldLeak")
- private static Context mContext;
- private static Handler mainHandler = new Handler(Looper.getMainLooper());
- private static Toast debugToast;
- private static Toast toast;
-
-
- @SuppressLint("ShowToast")
- public static void init(Context context) {
- mContext = context;
- toast = Toast.makeText(mContext, "", Toast.LENGTH_SHORT);
- debugToast = Toast.makeText(mContext, "", Toast.LENGTH_SHORT);
-
- }
-
- private static long time1 = 0L;
- private static long time2 = 0L;
-
- public static void show(final String msg) {
- ToastUtils.make()
-// .setBgColor(ColorUtils.getColor(R.color.toast_color))
- .setTextColor(Color.DKGRAY)
-// .setGravity(Gravity.CENTER, 0, 0)
- .setNotUseSystemToast()
- .show(msg);
- }
-
- public static void betaShow(final String msg) {
- if (BuildConfig.DEBUG) {
- ToastUtils.make()
-// .setBgColor(ColorUtils.getColor(R.color.toast_color))
- .setTextColor(Color.RED)
-// .setGravity(Gravity.CENTER, 0, 0)
- .setNotUseSystemToast()
- .setDurationIsLong(true)
- .show(msg);
- } else {
- Log.e(TAG, "debugShow: " + msg);
- }
- }
-
- private static Toast mToast = null;
-
- //android 8.0以后限制
- //https://www.jianshu.com/p/d9813ad03d59
- //https://www.jianshu.com/p/050ce052b873
- public static void showToast(Context context, String text, int duration) {
- if (Build.VERSION.SDK_INT == Build.VERSION_CODES.P) {
- Toast.makeText(context, text, duration).show();
- } else {
- if (mToast == null) {
- mToast = Toast.makeText(context, text, duration);
- } else {
- mToast.setText(text);
- mToast.setDuration(duration);
- }
- mToast.show();
- }
- }
-
- // public static void showInCenter(String msg) {
-// mainHandler.post(() -> {
-// if (toast != null) {
-// toast.setGravity(Gravity.CENTER, 0, 0);
-// toast.setText(msg);
-// toast.show();
-// }
-// });
-// }
-
-
-}
diff --git a/app/src/main/java/com/uiui/zyos/base/CustomContent.java b/app/src/main/java/com/uiui/zyos/view/CustomContent.java
similarity index 98%
rename from app/src/main/java/com/uiui/zyos/base/CustomContent.java
rename to app/src/main/java/com/uiui/zyos/view/CustomContent.java
index ab9b9e4..df9c87d 100644
--- a/app/src/main/java/com/uiui/zyos/base/CustomContent.java
+++ b/app/src/main/java/com/uiui/zyos/view/CustomContent.java
@@ -1,4 +1,4 @@
-package com.uiui.zyos.base;
+package com.uiui.zyos.view;
import android.content.Context;
import android.util.AttributeSet;
diff --git a/app/src/main/java/com/uiui/zyos/base/CustomContentCallbacks.java b/app/src/main/java/com/uiui/zyos/view/CustomContentCallbacks.java
similarity index 95%
rename from app/src/main/java/com/uiui/zyos/base/CustomContentCallbacks.java
rename to app/src/main/java/com/uiui/zyos/view/CustomContentCallbacks.java
index d5b771d..952e686 100644
--- a/app/src/main/java/com/uiui/zyos/base/CustomContentCallbacks.java
+++ b/app/src/main/java/com/uiui/zyos/view/CustomContentCallbacks.java
@@ -1,4 +1,4 @@
-package com.uiui.zyos.base;
+package com.uiui.zyos.view;
// add by codemx.cn ---- 20190712 ---plus- start
diff --git a/app/src/main/java/com/uiui/zyos/base/viewpager/BaseFragmentPagerAdapter.java b/app/src/main/java/com/uiui/zyos/view/viewpager/BaseFragmentPagerAdapter.java
similarity index 99%
rename from app/src/main/java/com/uiui/zyos/base/viewpager/BaseFragmentPagerAdapter.java
rename to app/src/main/java/com/uiui/zyos/view/viewpager/BaseFragmentPagerAdapter.java
index eddcc78..2ebbc93 100644
--- a/app/src/main/java/com/uiui/zyos/base/viewpager/BaseFragmentPagerAdapter.java
+++ b/app/src/main/java/com/uiui/zyos/view/viewpager/BaseFragmentPagerAdapter.java
@@ -1,4 +1,4 @@
-package com.uiui.zyos.base.viewpager;
+package com.uiui.zyos.view.viewpager;
import android.util.SparseArray;
diff --git a/app/src/main/java/com/uiui/zyos/base/viewpager/SubjectViewPagerAdapter.java b/app/src/main/java/com/uiui/zyos/view/viewpager/SubjectViewPagerAdapter.java
similarity index 94%
rename from app/src/main/java/com/uiui/zyos/base/viewpager/SubjectViewPagerAdapter.java
rename to app/src/main/java/com/uiui/zyos/view/viewpager/SubjectViewPagerAdapter.java
index fff57cb..74823b6 100644
--- a/app/src/main/java/com/uiui/zyos/base/viewpager/SubjectViewPagerAdapter.java
+++ b/app/src/main/java/com/uiui/zyos/view/viewpager/SubjectViewPagerAdapter.java
@@ -1,4 +1,4 @@
-package com.uiui.zyos.base.viewpager;
+package com.uiui.zyos.view.viewpager;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
diff --git a/app/src/main/java/com/uiui/zyos/base/viewpager/ViewPager2Adapter.java b/app/src/main/java/com/uiui/zyos/view/viewpager/ViewPager2Adapter.java
similarity index 96%
rename from app/src/main/java/com/uiui/zyos/base/viewpager/ViewPager2Adapter.java
rename to app/src/main/java/com/uiui/zyos/view/viewpager/ViewPager2Adapter.java
index 6ebd341..d2cfb4a 100644
--- a/app/src/main/java/com/uiui/zyos/base/viewpager/ViewPager2Adapter.java
+++ b/app/src/main/java/com/uiui/zyos/view/viewpager/ViewPager2Adapter.java
@@ -1,4 +1,4 @@
-package com.uiui.zyos.base.viewpager;
+package com.uiui.zyos.view.viewpager;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
diff --git a/app/src/main/res/drawable-hdpi/com_jxw_examsystem.png b/app/src/main/res/drawable-hdpi/com_jxw_examsystem.png
new file mode 100644
index 0000000000000000000000000000000000000000..ead9ec7789a8b6992f3ec0dc01e5828346fa4418
GIT binary patch
literal 7322
zcmaJ`Wmr_*+NMhyl*XY!x?$)BC1gMvbeI`>0vK9RQt9rH4oLy&5~Ncaq`ON(LFB{p
zo%cQG$M=5wT6?d!?)!e8wbrxty7t;3Pjxj&i0FwhFfd58G*v-&dGw!~0PpU(rM_B!
zm(iisOwa~M8?*=51%{ynMOwoET5zx}3SX@U)2c-hDv)A-?ff;z~8bZ7s
zA<|G*1$lt1C-6=H4nu6rJxFPg}B(G
z(Dq0K;Ey8M8tI0XW4-hAf4cxj{Vj`d{r5244Va)O7$qnyAoQn8e*txL{(mSO{x{kc
z4TAm0-~UtC)zAwC69mCrk!~)KyNR=5`(p|PRB?fU(MT6VB+}`xQG9BLL?d18kSKtP
zfdqit*d75zdbslZ3$LRC)IzwT!3YRUOI42bPC>xl9tso{RTUK$laLS*QBxBZR#R6N
zQ&CqJ6_S>e5>gXVl2ZALtBQoU!C?sWUtH*axRU?K{Syjs)SYEjn2WtT465#egaiK7
zWuW~(`y%#_djIA^|JfJuf8+|@IV1RIV*hKR|7yC6o&w;5kNzGqO7
zZ)*br+Da+fkDR5~Vr$!HQ_})7K<@oQg?w;RtZbg>SVe+(zTwT85aZcIC#@-wrOP(1
zt=U9lC)3*BQLZtNoffX!+snh7!FC~oO>O+
z;7^tCN}bAx%8QWtEOzsbKIM#-(A&fDbVaNSiG9-RIF9y%+Dt^HM0G
z-V_&9Ggp0_qjZ%r;KCi>lvqzHcZU6QCn`JA{hrDaw};yIWF6F_gPq8?MP>pDG^di~
zvwDB07RRU)Uvtav1uxw50ma#x<;?7xUwpJ}mWzIPAu}`EnDHG8*)9mvkHUN=^67ZF-sT(0vAg9a$_*pzv#XFu4tQT
zniSmqLJI$){{_zK@?3FagjjGp-bdn0bCsE$R9Skq_F_(BJaW4X1VaRcwdF0j1eH6+
z<^()f80*WBQ;YC{U-{VjS6bY3PFru4nfyi_G4+rq<1FFW1^hW%B97st>E@Q|WHst>
z8W3WD?Nqd)ca0^a)I<%dZ1f;YSe;Q#yyZpXFYy(qg%#PuSa^)Y>=;G-Ce*Nz>coB$
z!a-WcclKig=Xr7IMZ!SLVms6~1DE>ib(e`g5JsWHv5{TCbgKPLewJFK;AC!p{Pv;(
z<+`=|kS;Zp2EquXsPrHJL$Pi*|+l_zq!^%z5AkV;|$xPg@bX)sO)1cIx
z3i@L`6`@J04ixh%)dUpmeR&nAPkhS7X@-5?QsHDK6*Wa>k7d7JJ3pqAl}(uUpY)&7
zUF&~WV&EvT7GAofNL6i}*t$D%c)XM|c|i*oYZqx0Zsh#kX8wfX`s(#l#3id#Gm
zV=a8bm<4hOWG>`Nh!qI@0E*t|h;48g*w0-L>=;`d8Fal~uW8qo=DpIG9h-b4AFWAc
zM;}P<9YzamrDbZX^(;RnWl+(n5~ZXT?1<{Ic^Iqu$YO=c@&sYJ^Pc0~
z$&S`rrjwehi{y=TdM&PGA{y+6zn-@AL-Gctf2=*uI7WCFG4pzBq21IlD
zUn=)8|3pkWpH_Quk!od%>7FI@Nh-~lh@>P01*9rs1BVMF@^-^D5@;H%)gyjwH9rG|
z4zr~MUjTVLGm84d57pl)v>uB|e^ZcI+mZ}Un-p>C0o=o6Ee=#wnwMGD_m#T*fqA4b
zQDcCZzpllh!k*4X*;a|@#Q@)uf=ye@ohWfIdxJ+tiV~5_y1)5k@wK{|elG3S7DbP>
zjYrhbXXEuSV}h@bf5l}P*pPaaL5Lo&$HqD|>@7>2NHM)qCV3s{Z}I%?(^e+%Kq%L@
zi~f5D`0FQ$EtC;Ku$UgfJsZJ?%W_Q8;{{%UFXoF%=AXM($+rE_mR5K=Yi|5gy$i(S
z;RUe6KXmxK6u3gD%b&?s!Q?y~y)Lclk0sw^P%dB&Ks0lLUiJ0j#%?7{aesDd>27Si
zTn{~{=tY{jcRt}{Up^l=_4oT$Berrxz_t2lU>v8PlGfXZrD#
zgP35eZK)nwq8*_lEBm=gQsF`)YjMv7P1rUr&N23@Jeb9I*N3y`bretU
zOflQ7R+q)ke09B?EHzs9k~iVnV$pW0b&^%|zxkM}1Ue?&kx8rI+jqvUd+Vqh1EW(W
z>>QkCK_4Mz9vuZU+*jH!SC$@h!n1+>O8fl)p2S`yX-irrwitQfbv(zc#*}U02DL{_=iy0YF7V?pv)MB52v|
zbKDt4HDJYJoPpv1pa&Nt{{1G|6G>R!G%;_QnfDtuPU`H(Zgl$eJwI=HHlDtyUs|!o
z%1*O{P8Qz-vIwzeEV^Mg*uCrKOVoGW9VPA)6L-0_8S0?#&*&r$IU5cUzf>Eo7h2X=
zf2v5`5=XD`CVsC|+IGQ47n~xRo(xw)4Fzi-Mn|z79DBbd>>W+;-)d?^E2$s30;V|h
z>JDh4Ix|G!X*4)F+^{J(inAW&krkbvjxmkZcE;QLG6kwPuKHST-SIcYwJlYc{!OD*
zeO#S@u8W_3k4z6_O3g36bcC9eP7AH`ojx#?U1AX*1fRcPf%r!6z4VQ7v$AE|uNqh(g^>mwk-P#wCzSjw9cuaOcPz-Kfy5cS(9+EUuk
zwvag6Nvlu6|59sJs%gk3xICG9h4GS9gi{@Pj-i}6y%KLRH{;^~7ZUG=NZIuXmpl&B
z$j0-cWt|zXPzeWPnRgd1zoaJY5Bm({NH6O_Y44ej@;%}Ilraq?>l-*W+}UAdw{I9P
zVmpWoUd~W{%rH9`K77yR#(Sl>s^2(KzvrfN(IXGDrvct@?$oX|)KSDWhuZqoaSxqC
z(G>lPSUpx5eI_3mm>iD4hVK$dTuIuVzY6{`PM)hBVtM1hGni_WL&a;^in+B)`ceCU
zsbzH@kL*Fr{h*C1gwfK;hv%Or9^-7CvMp>vg(Z7MmIjCEQI-YA>`!sF!q$#{%gc^*
z5u~M{Iv49;Ep!g90s|SP_u7^w3&aSvhL1_n#MN#{OwIO@ZuJIiAA$@|L>6f3$D=E1
znxCFUCZQg!h3~B>PdXXuMW}a7ifdDtyJ(XSjQlT*@9DjgIFX(
zD)*xf1$%;n9ck+p%7JcTVC`2D%mzVUdQYO)Z9KW`0znny
z#4-oR>Awb%G#LWC{04e^E0&1GHZ2nOL_oeIPP66EL+=8&3RZFjy{`w@KM&1NIWOe`
z>V`NRaMg_hcCoPA{EVp9Yy=;=U^~|9U&V(2A2)+-(-+kC>#+tEu
z`9ow(AaHmKN3^7Vvn_4%13_+UXX#<&hXfa}^Rpvc`jza~nmv-@u;4CaESC<{p)5&e
zcS9?B`*e)n%f4@RchhvA?nhCrq)LR#lLebu0+NK1Os+kg4;)@V(ju7#)uF8fLS(!Y
z0XqJ*5%MH*8K+Fawa(|QidXvthTc~E5J3g?qCgKAOTW{w@!tB{Fy4t5mILLS@c_+b
z>yrO>P>IvNEWyIsGw^^nLNL;{`!b`k?StRM8o$+ErN?0+*W5*Ko8(LGq2tjYY2D0H
zig(uMm&dY%^Ks34Ra1at_9rWTrIYJqP5utt?b4bv&?4w(gj^MOdE_>n8@;|2wiQYu
z*oKN&i{^cRO`0d^i8g_u^SpmtTS8la(v@nvf5j^ha+moly_eB%Fd
zm35@VMu3xI)4F9TT&)-D*J5U8rd@|mf`@sdRML?83tQoh%p>`Ids3zK)==$!utQ~b
zm863FcO{QB3miRXOw}K_o9rKH{0YQIrOQH!R4EDXBepkUH=VlUX-g!$rB*CIaw5`W
z^3-;9Z?-x{_@4Y2f=Igs?bXebZ}0p
zest`Qz|@UISJUp$eO}Aa#PdBO_#NEC;`9(+CO#YnF{R9UP9VkP0HQPS*5Z6d_=ftC
z^L73l)6?(KQouHh>>}FH~ACA2{Z&d!+vD2vE6M`1^a#R
zDw8&}Huapm4zc;&ogqgYE;u5*ky)-Edaa@Mr5qpY?J|B0CorWGYEj&p>@nLb6099b
z4c`yHEZX?$qlD7u)o^-LtI>f#Re?fy)ZmQX!Y#d00bA^-f
zY#Bw&`wJ4vO$bTl?Z9t&ki`FfpEoI2i8j=cvWkegpsjW7gpm)%*%KZKu^v?2iSaV{
zI)1kNY%o>g{Sn6pO$P(ITn6t)lY)#}`S_2uPy74M#7Gr7a8;(6w}p3!qEdZikDJs6
z-3})Nn!nT8Jm{>hba|-^PI=i-W7FO%NBB{0p5^rc0#jOM<2*8;KdgxG>=@(}@J_lc
zfqez)6|5-OkqRfTu=NCXT5qm?J_9_u)ycVEth~P-wnxY@`eMMln#BEa44pbjwokqC
z;Crdcl>Ly$EWq>i)yJMGMA9F!OzvOTi*b>7b8zA^68$8{x@NOWr~@+OlPm^V1ujOi
z41h@+j&FZ?v=8EpuP@8O#f^cl0`iTMMZ$8O=kSM(aXz>7ZWwRL1v);}6jTMZGe8(b
z%!AwdtQObOw<8BQ@{+hN8=AhpPljs;c)&R5e?c!QiHnvC0GWwGGQM2&zWW@&mc+<16PPV!DMCT_7g-^@*&AF4#
z((*MAs)|e0GVK>C&L~ACLoGR+ObOJud0cqh@`ne#)UwYO6|=aL)`U1bQo+Hl(UH9A
zEYA*=&->+G(?*V+7Y9nuhO?&TV+N~I1}{O7HBV~Y>rz>CCaxzE_&1Z&dGVR$Wy=V^
zG{w1wTiYFD04wR4H!bFWmU0&EsSslyv59)O-n?m^Uwjda7tM+&<@}UZjcdWIhdgEj
z$6CNcBi%bxgswk){<*nIufcZ4gdK|_=%W8!8iGsMz-$GV(HtA2ic?U8N_I6R6z&Gw
z=1%8$7&amEh^;{ivndoV-lZvYn`$i1BA@9=!`zIG_+kVThT}e|b^o|u=ps8>W7*P5
zN>a@~fzz`JqRSm04F0v5Y-CnP`zce3k0l|9VEePnco=O-jthR%lDL+uc$^x
zOaeFX?8|4|>&hKx>!LO)74D3I?W7;_N6e#BJ|ZBJqI?byGT#Q2*V^xc(e&>>i#k6(
zp!+@R!UOW$O{u}~C7Yc&IDgoSZwc>Ta|$ZV_SI+6E^vrRqFhk^uX^(MJx{Rf`Ek<)jaYmb24>Ae-F3dN2mT*gxYEw<5M?Ioz&^aS!
zFXo5GLOz{zuDX6D_j;#n^Fa!)s%o4%l^uIW>a+Pbo%uem8MEF`<^K0U%ipIis@wka
z>#X9FgoZEPzX8G?kGrr7*)-1;Nce^0C*^fVNLuLbf0P!JQGfSlLHrY8UZyNtv2z2N
zRK^0N?n%f%S&A^0iR5{D70#*yZn>RicmT~R5w1W_$_Dr7J}qXVCl=@+a}{TGuFy;1
z{oLXDxHn5|G~3p_7Wtt_isj~Zr%#Em`wLILPnKJ*RV!i8;GYiD?-u)+$rXNK_UP^E
z`d;WuuZN0sPN-G{2G6Lz%v-j>J#%<}V!VFQij3=fAE@%XyZ{t=fm`L=KubuS+RH1n
zj~W&ht+Lx4hbQE@2kU*AfK(*;V5RcY3H59yed9H<*>hp}#OKq|nOvwjd@`c1+c}d7
z-G3St5V+Qy8RkrD
zgY43Ym6(cn!BKXR&m8k@MW+0=34{HcFtQlMrfN5F#Kc+9YJ&(_Y7uXWVb~Q2LOngd
z{N`Ks%QEW_v+;xx69Yqm5dolOt5k2N87FxYyx4Hp=-2U$lT`xv9fPlHgEN&_#M}xx
ze&jR2(D|#46DX?|Mp)Nhd-!6Je9QBBv4wQ5daGG0v?_D?B?IA^^snO%s6__zyXzyd
z4_p`Q6DrfO5Zb-fa{Br0H!=|?UiW<+>E;Wn{I_k`aYT_ys?w?%g|P=ol?Yy|cbFGS+=YeSw)i7e|^(n}+iJ
z*Mn@~$K1n0fhTU9`)}4)lvN^x{YH?>)eq^%nTsecst`006sxc}(O2CazIor&Ab~$(
z#K*PQNM`UBBTCV)U|9=1gqMva9
literal 0
HcmV?d00001
diff --git a/app/src/main/res/drawable-hdpi/service_icon.png b/app/src/main/res/drawable-hdpi/service_icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..e099d764096a405c6cf0e52a5d8a61fc2500b4e0
GIT binary patch
literal 29577
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