diff --git a/app/build.gradle b/app/build.gradle
index 41ac803..9cf1484 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -16,8 +16,8 @@ android {
minSdkVersion 24
targetSdkVersion 29
- versionCode 3
- versionName "1.0.2"
+ versionCode 4
+ versionName "1.0.3"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 921872c..37dd993 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -96,23 +96,23 @@
android:configChanges="orientation|screenSize|smallestScreenSize|keyboard|keyboardHidden|navigation|touchscreen"
android:enabled="true"
android:excludeFromRecents="true"
+ android:exported="true"
android:launchMode="singleTask"
android:resizeableActivity="true"
android:resumeWhilePausing="true"
android:screenOrientation="landscape"
android:stateNotNeeded="true"
- android:exported="true"
android:theme="@style/AppThemeWithoutFitsSystemWindows"
android:windowSoftInputMode="adjustPan">
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
@@ -139,6 +139,19 @@
+
+
+
+
+
+ android:value="335634702" />
+ android:value="699c3543251a4853a9b501d7426872f0" />
{
+
+
+ @Override
+ protected int getLayoutId() {
+ return R.layout.activity_activation;
+ }
+
+ @Override
+ protected void initDataBinding() {
+ mViewModel.setCtx(this);
+ mViewModel.setVDBinding(mViewDataBinding);
+ mViewModel.setLifecycle(getLifecycleSubject());
+ mViewDataBinding.setClick(new BtnClick());
+ }
+
+ @Override
+ protected void initView() {
+ // 优化后的InputFilter:兼容手动输入、粘贴、输入法联想
+ InputFilter englishNumberFilter = new InputFilter() {
+ @Override
+ public CharSequence filter(CharSequence source, int start, int end,
+ Spanned dest, int dstart, int dend) {
+ // 空字符直接返回(避免过滤正常的删除/回退操作)
+ if (source.toString().isEmpty()) {
+ return source;
+ }
+
+ StringBuilder legalStr = new StringBuilder();
+ for (int i = start; i < end; i++) {
+ char c = source.charAt(i);
+ // 严格匹配:大小写英文 或 数字
+ boolean isLetter = (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z');
+ boolean isNumber = (c >= '0' && c <= '9');
+ if (isLetter || isNumber) {
+ legalStr.append(c);
+ }
+ }
+ return legalStr;
+ }
+ };
+
+ // 设置仅允许输入指定字符
+ mViewDataBinding.etCoupons.setFilters(new InputFilter[]{
+ englishNumberFilter,
+ new InputFilter.LengthFilter(20)
+ });
+ mViewDataBinding.etKey.setFilters(new InputFilter[]{
+ englishNumberFilter,
+ new InputFilter.LengthFilter(20)
+ });
+ }
+
+ @Override
+ protected void initData() {
+
+ }
+
+ public class BtnClick {
+ public void exit(View view) {
+ finish();
+ }
+
+ public void useQrCode(View view) {
+ mViewDataBinding.clQrcode.setVisibility(View.VISIBLE);
+ mViewDataBinding.clCoupons.setVisibility(View.GONE);
+ mViewDataBinding.clKey.setVisibility(View.GONE);
+ }
+
+ public void useCoupons(View view) {
+ mViewDataBinding.clQrcode.setVisibility(View.GONE);
+ mViewDataBinding.clCoupons.setVisibility(View.VISIBLE);
+ mViewDataBinding.clKey.setVisibility(View.GONE);
+ }
+
+ public void useKey(View view) {
+ mViewDataBinding.clQrcode.setVisibility(View.GONE);
+ mViewDataBinding.clCoupons.setVisibility(View.GONE);
+ mViewDataBinding.clKey.setVisibility(View.VISIBLE);
+ }
+ }
+
+}
diff --git a/app/src/main/java/com/xwad/os/activity/activation/ActivationViewModel.java b/app/src/main/java/com/xwad/os/activity/activation/ActivationViewModel.java
new file mode 100644
index 0000000..1449cdb
--- /dev/null
+++ b/app/src/main/java/com/xwad/os/activity/activation/ActivationViewModel.java
@@ -0,0 +1,18 @@
+package com.xwad.os.activity.activation;
+
+import com.trello.rxlifecycle4.android.ActivityEvent;
+import com.xwad.os.base.mvvm.BaseViewModel;
+import com.xwad.os.databinding.ActivityActivationBinding;
+
+public class ActivationViewModel extends BaseViewModel {
+
+ @Override
+ public ActivityActivationBinding getVDBinding() {
+ return binding;
+ }
+
+ @Override
+ public void onDestroy() {
+
+ }
+}
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 886bde0..26e9c58 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
@@ -20,7 +20,6 @@ import android.view.animation.TranslateAnimation;
import android.widget.Toast;
import androidx.annotation.NonNull;
-import androidx.core.app.NotificationCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
@@ -33,6 +32,8 @@ import com.hjq.toast.Toaster;
import com.tencent.mmkv.MMKV;
import com.xwad.os.BuildConfig;
import com.xwad.os.R;
+import com.xwad.os.activity.activation.ActivationActivity;
+import com.xwad.os.activity.login.LoginActivity;
import com.xwad.os.activity.permission.PermissionActivity;
import com.xwad.os.base.mvvm.BaseMvvmActivity;
import com.xwad.os.bean.jxw.TabBean;
@@ -57,7 +58,6 @@ import com.xwad.os.manager.RemoteManager;
import com.xwad.os.utils.DataUtil;
import com.xwad.os.utils.OpenApkUtils;
import com.xwad.os.utils.Utils;
-import com.xwad.os.view.viewpager.BaseFragmentPagerAdapter;
import java.util.ArrayList;
import java.util.List;
@@ -67,23 +67,9 @@ public class HomeActivity extends BaseMvvmActivity tabBeanLists = new ArrayList();
- private List fragments = new ArrayList();
+ private List tabBeanLists = new ArrayList<>();
+ private List fragments = new ArrayList<>();
- private String[] mAllTitle = new String[]{"我的", "AI+学习", "语文", "数学", "英语", "其他学科", "读书", "绿色安全",};
-
- private MineFragment mMineFragment;
- private AiFragment mAiFragment;
- private ChineseFragment mChineseFragment;
- private MathFragment mMathFragment;
- private EnglishFragment mEnglishFragment;
- private ComplexFragment mComplexFragment;
- private ReadFragment mReadFragment;
- private SafeFragment mSafeFragment;
-
- private FragmentManager mFragmentManager;
- private BaseFragmentPagerAdapter mBaseFragmentPagerAdapter;
- private ViewPager.OnPageChangeListener mListener;
private int defaultCurrent = 0;
@Override
@@ -110,6 +96,7 @@ public class HomeActivity extends BaseMvvmActivity {
+
+ @Override
+ protected int getLayoutId() {
+ return R.layout.activity_login;
+ }
+
+ @Override
+ protected void initDataBinding() {
+ mViewModel.setCtx(this);
+ mViewModel.setVDBinding(mViewDataBinding);
+ mViewModel.setLifecycle(getLifecycleSubject());
+ mViewDataBinding.setClick(new BtnClick());
+ }
+
+ @Override
+ protected void initView() {
+
+ }
+
+ @Override
+ protected void initData() {
+
+ }
+
+ public class BtnClick {
+ public void loginPhone(View view) {
+ startActivity(new Intent(LoginActivity.this, LoginSuccessfulActivity.class));
+ }
+ }
+}
diff --git a/app/src/main/java/com/xwad/os/activity/login/LoginViewModel.java b/app/src/main/java/com/xwad/os/activity/login/LoginViewModel.java
new file mode 100644
index 0000000..650e12f
--- /dev/null
+++ b/app/src/main/java/com/xwad/os/activity/login/LoginViewModel.java
@@ -0,0 +1,12 @@
+package com.xwad.os.activity.login;
+
+import com.trello.rxlifecycle4.android.ActivityEvent;
+import com.xwad.os.base.mvvm.BaseViewModel;
+import com.xwad.os.databinding.ActivityLoginBinding;
+
+public class LoginViewModel extends BaseViewModel {
+ @Override
+ public void onDestroy() {
+
+ }
+}
diff --git a/app/src/main/java/com/xwad/os/activity/login/result/LoginSuccessfulActivity.java b/app/src/main/java/com/xwad/os/activity/login/result/LoginSuccessfulActivity.java
new file mode 100644
index 0000000..3f6988d
--- /dev/null
+++ b/app/src/main/java/com/xwad/os/activity/login/result/LoginSuccessfulActivity.java
@@ -0,0 +1,37 @@
+package com.xwad.os.activity.login.result;
+
+import com.xwad.os.R;
+import com.xwad.os.base.mvvm.BaseMvvmActivity;
+import com.xwad.os.databinding.ActivityLoginBinding;
+import com.xwad.os.databinding.ActivityLoginSuccessfulBinding;
+
+public class LoginSuccessfulActivity extends BaseMvvmActivity {
+
+ @Override
+ protected int getLayoutId() {
+ return R.layout.activity_login_successful;
+ }
+
+ @Override
+ protected void initDataBinding() {
+ mViewModel.setCtx(this);
+ mViewModel.setVDBinding(mViewDataBinding);
+ mViewModel.setLifecycle(getLifecycleSubject());
+ mViewDataBinding.setClick(new BtnClick());
+ }
+
+ @Override
+ protected void initView() {
+
+ }
+
+ @Override
+ protected void initData() {
+
+ }
+
+ public class BtnClick {
+
+ }
+
+}
diff --git a/app/src/main/java/com/xwad/os/activity/login/result/LoginSuccessfulViewModel.java b/app/src/main/java/com/xwad/os/activity/login/result/LoginSuccessfulViewModel.java
new file mode 100644
index 0000000..abbe2f0
--- /dev/null
+++ b/app/src/main/java/com/xwad/os/activity/login/result/LoginSuccessfulViewModel.java
@@ -0,0 +1,13 @@
+package com.xwad.os.activity.login.result;
+
+import com.trello.rxlifecycle4.android.ActivityEvent;
+import com.xwad.os.base.mvvm.BaseViewModel;
+import com.xwad.os.databinding.ActivityLoginBinding;
+import com.xwad.os.databinding.ActivityLoginSuccessfulBinding;
+
+public class LoginSuccessfulViewModel extends BaseViewModel {
+ @Override
+ public void onDestroy() {
+
+ }
+}
diff --git a/app/src/main/java/com/xwad/os/base/BaseApplication.java b/app/src/main/java/com/xwad/os/base/BaseApplication.java
index 699d6ec..7af43a2 100644
--- a/app/src/main/java/com/xwad/os/base/BaseApplication.java
+++ b/app/src/main/java/com/xwad/os/base/BaseApplication.java
@@ -11,6 +11,9 @@ import android.util.Log;
import androidx.multidex.MultiDex;
+import com.alibaba.sdk.android.push.CloudPushService;
+import com.alibaba.sdk.android.push.CommonCallback;
+import com.alibaba.sdk.android.push.noonesdk.PushServiceFactory;
import com.arialyy.aria.core.Aria;
import com.hjq.toast.Toaster;
import com.tencent.bugly.crashreport.CrashReport;
@@ -101,27 +104,27 @@ public class BaseApplication extends Application {
// Aria.get(this).getDownloadConfig().setMaxTaskNum(1);
// Aria.get(this).getDownloadConfig().setConvertSpeed(true);
-// aliyunPushInit();
+ aliyunPushInit();
}
}
-// public void aliyunPushInit() {
-// PushServiceFactory.init(this);
-// final CloudPushService pushService = PushServiceFactory.getCloudPushService();
-// pushService.setLogLevel(CloudPushService.LOG_DEBUG);
-//// pushService.register(this, new CommonCallback() {
-//// @Override
-//// public void onSuccess(String response) {
-//// Log.e("AliyunPush", "init cloudchannel success");
-//// Log.e("AliyunPush", "init cloudchannel success " + pushService.getDeviceId());
-//// }
-////
-//// @Override
-//// public void onFailed(String errorCode, String errorMessage) {
-//// Log.e("AliyunPush", "init cloudchannel failed -- errorcode:" + errorCode + " -- errorMessage:" + errorMessage);
-//// }
-//// });
-// }
+ public void aliyunPushInit() {
+ PushServiceFactory.init(this);
+ final CloudPushService pushService = PushServiceFactory.getCloudPushService();
+ pushService.setLogLevel(CloudPushService.LOG_DEBUG);
+ pushService.register(this, new CommonCallback() {
+ @Override
+ public void onSuccess(String response) {
+ Log.e("AliyunPush", "init cloudchannel success");
+ Log.e("AliyunPush", "init cloudchannel success " + pushService.getDeviceId());
+ }
+
+ @Override
+ public void onFailed(String errorCode, String errorMessage) {
+ Log.e("AliyunPush", "init cloudchannel failed -- errorcode:" + errorCode + " -- errorMessage:" + errorMessage);
+ }
+ });
+ }
private APKinstallReceiver apKinstallReceiver;
diff --git a/app/src/main/java/com/xwad/os/fragment/mine/MineFragment.java b/app/src/main/java/com/xwad/os/fragment/mine/MineFragment.java
index a8155b5..9584522 100644
--- a/app/src/main/java/com/xwad/os/fragment/mine/MineFragment.java
+++ b/app/src/main/java/com/xwad/os/fragment/mine/MineFragment.java
@@ -1,17 +1,47 @@
package com.xwad.os.fragment.mine;
import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
import android.os.Bundle;
+import android.os.Handler;
+import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.GridLayoutManager;
+import com.chad.library.adapter.base.BaseQuickAdapter;
import com.xwad.os.R;
+import com.xwad.os.activity.activation.ActivationActivity;
+import com.xwad.os.activity.home.HomeActivity;
import com.xwad.os.base.mvvm.fragment.BaseMvvmFragment;
+import com.xwad.os.bean.jxw.AppInfo;
import com.xwad.os.config.CommonConfig;
import com.xwad.os.databinding.FragmentMineBinding;
import com.tencent.mmkv.MMKV;
+import com.xwad.os.jxw.StudyRecordMng;
+import com.xwad.os.jxw.ToastUtil;
+import com.xwad.os.jxw.adapter.ZhMenuAdapter;
+import com.xwad.os.jxw.event.UpdateColorEvent;
+import com.xwad.os.utils.OpenApkUtils;
+import com.xwad.os.view.jxw.view.dialog.QhbzDialog;
+import com.xwad.os.view.jxw.view.dialog.RemoveAppDialog;
+import com.xwad.os.view.jxw.widget.RecyclerMarginClickHelper;
+
+import org.greenrobot.eventbus.EventBus;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
/**
* A simple {@link Fragment} subclass.
@@ -23,6 +53,11 @@ public class MineFragment extends BaseMvvmFragment mlistAppInfo = new ArrayList<>();
+ private Handler mHandler = new Handler();
+ public String file_name = "app_list_6.0";
+
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
@@ -76,11 +111,78 @@ public class MineFragment extends BaseMvvmFragment mlistAppInfo = new ArrayList<>();
private Handler mHandler = new Handler();
public String file_name = "app_list_6.0";
@@ -118,7 +119,7 @@ public class SafeFragment extends BaseMvvmFragment {
- private Context context;
- private List data;
- private List gkAppData;
- private RadiaoOnItemClickListener listener;
- private Handler mHandler;
- public int remove_position;
- private boolean xiezai;
-
- public interface RadiaoOnItemClickListener {
- void onDeleteClick(String str, int i, String str2);
-
- void onSelectClick(int i);
- }
-
- public boolean getToDelete() {
- return this.xiezai;
- }
-
- public void setToDelete(boolean z) {
- this.xiezai = z;
- notifyDataSetChanged();
- }
-
- public void setData(List list) {
- this.data = list;
- notifyDataSetChanged();
- }
-
- public ZhMenuAdapter(Context context, List list) {
- super(R.layout.item_app_gk, list);
- this.xiezai = false;
- this.remove_position = -1;
- this.mHandler = new Handler();
- this.context = context;
- }
-
- @Override
- public void convert(final BaseViewHolder baseViewHolder, final AppInfo appInfo) {
- try {
- TextView textView = baseViewHolder.getView(R.id.app_name);
- ImageView imageView = baseViewHolder.getView(R.id.app_icon);
- ImageView imageView2 = baseViewHolder.getView(R.id.delet_iv);
- RelativeLayout relativeLayout = baseViewHolder.getView(R.id.rl_jinyong);
- RelativeLayout relativeLayout2 = baseViewHolder.getView(R.id.rl_xzsy);
- textView.setText(appInfo.appName);
- if (SPUtils.getInt(this.mContext, "themenBg", 0) == 1) {
- textView.setTextColor(-10066330);
- } else {
- textView.setTextColor(-1);
- }
- Glide.with(imageView).load(appInfo.getAppIcon()).apply(RequestOptions.bitmapTransform(new RoundedCorners((int) this.mContext.getResources().getDimension(R.dimen.x20)))).into(imageView);
- relativeLayout.setVisibility(8);
- relativeLayout2.setVisibility(8);
- if (GkAppUseInfo.getGkAppUseInfo().datas != null) {
- for (AppUseInfo appUseInfo : GkAppUseInfo.getGkAppUseInfo().datas) {
- Log.e("jxw", appInfo.packageName + "--" + appUseInfo.getPackageName());
- if ((appInfo.packageName != null && appInfo.packageName.equals(appUseInfo.getPackageName()) && appUseInfo.getEnabled().intValue() == 0) || (appInfo.mStargss != null && appInfo.mStargss.contains(appUseInfo.getPackageName()) && appUseInfo.getEnabled().intValue() == 0)) {
- Log.e("jxw-", "禁止使用的app==" + appInfo.packageName + "--" + appInfo.mStargss + "--" + appUseInfo.getPackageName());
- relativeLayout.setVisibility(0);
- break;
- } else if ((appInfo.packageName != null && appInfo.packageName.equals(appUseInfo.getPackageName()) && appUseInfo.getEnabled().intValue() == 2) || (appInfo.mStargss != null && appInfo.mStargss.contains(appUseInfo.getPackageName()) && appUseInfo.getEnabled().intValue() == 2)) {
- Log.e("jxw-", "限制使用的app==" + appInfo.packageName + "--" + appInfo.mStargss + "--" + appUseInfo.getPackageName());
- relativeLayout2.setVisibility(0);
- break;
- }
- }
- }
- if (!this.xiezai) {
- imageView2.setVisibility(8);
- } else {
- imageView2.setVisibility(0);
- }
- imageView2.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- if (ZhMenuAdapter.this.listener != null) {
- ZhMenuAdapter.this.listener.onDeleteClick(appInfo.packageName, baseViewHolder.getAdapterPosition(), appInfo.appName);
- }
- }
- });
- if (!this.xiezai) {
- imageView2.setVisibility(8);
- } else if (!TextUtils.isEmpty(appInfo.packageName) && appInfo.getIntent() == null) {
- imageView2.setVisibility(0);
- } else {
- imageView2.setVisibility(8);
- }
- baseViewHolder.addOnLongClickListener(R.id.app_icon);
- imageView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- if (GkAppUseInfo.getGkAppUseInfo().datas != null) {
- for (AppUseInfo appUseInfo2 : GkAppUseInfo.getGkAppUseInfo().datas) {
- Log.e("jxw", appInfo.packageName + "--" + appUseInfo2.getPackageName());
- if ((appInfo.packageName != null && appInfo.packageName.equals(appUseInfo2.getPackageName()) && appUseInfo2.getEnabled().intValue() == 0) || (appInfo.mStargss != null && appInfo.mStargss.contains(appUseInfo2.getPackageName()) && appUseInfo2.getEnabled().intValue() == 0)) {
- new LockDialog(ZhMenuAdapter.this.mContext, appInfo.appName).show();
- return;
- }
- }
- }
- if (ZhMenuAdapter.this.listener != null) {
- ZhMenuAdapter.this.listener.onSelectClick(baseViewHolder.getAdapterPosition());
- }
- }
- });
- } catch (Exception unused) {
- }
- }
-
- public void setGkApp(List list) {
- this.gkAppData = list;
- notifyDataSetChanged();
- }
-
- public void setOnItemClickListener(RadiaoOnItemClickListener radiaoOnItemClickListener) {
- this.listener = radiaoOnItemClickListener;
- }
- }
}
diff --git a/app/src/main/java/com/xwad/os/jxw/adapter/ZhMenuAdapter.java b/app/src/main/java/com/xwad/os/jxw/adapter/ZhMenuAdapter.java
new file mode 100644
index 0000000..0e66d79
--- /dev/null
+++ b/app/src/main/java/com/xwad/os/jxw/adapter/ZhMenuAdapter.java
@@ -0,0 +1,144 @@
+package com.xwad.os.jxw.adapter;
+
+import android.content.Context;
+import android.os.Handler;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
+import com.bumptech.glide.request.RequestOptions;
+import com.chad.library.adapter.base.BaseQuickAdapter;
+import com.chad.library.adapter.base.BaseViewHolder;
+import com.xwad.os.R;
+import com.xwad.os.bean.jxw.AppInfo;
+import com.xwad.os.bean.jxw.AppUseInfo;
+import com.xwad.os.bean.jxw.GkAppUseInfo;
+import com.xwad.os.jxw.SPUtils;
+import com.xwad.os.view.jxw.view.dialog.LockDialog;
+
+import java.util.List;
+
+public class ZhMenuAdapter extends BaseQuickAdapter {
+ private Context context;
+ private List data;
+ private List gkAppData;
+ private RadiaoOnItemClickListener listener;
+ private Handler mHandler;
+ public int remove_position;
+ private boolean xiezai;
+
+ public interface RadiaoOnItemClickListener {
+ void onDeleteClick(String str, int i, String str2);
+
+ void onSelectClick(int i);
+ }
+
+ public boolean getToDelete() {
+ return xiezai;
+ }
+
+ public void setToDelete(boolean z) {
+ xiezai = z;
+ notifyDataSetChanged();
+ }
+
+ public void setData(List list) {
+ data = list;
+ notifyDataSetChanged();
+ }
+
+ public ZhMenuAdapter(Context context, List list) {
+ super(R.layout.item_app_gk, list);
+ xiezai = false;
+ remove_position = -1;
+ mHandler = new Handler();
+ this.context = context;
+ }
+
+ @Override
+ public void convert(final BaseViewHolder baseViewHolder, final AppInfo appInfo) {
+ try {
+ TextView textView = baseViewHolder.getView(R.id.app_name);
+ ImageView imageView = baseViewHolder.getView(R.id.app_icon);
+ ImageView imageView2 = baseViewHolder.getView(R.id.delet_iv);
+ RelativeLayout relativeLayout = baseViewHolder.getView(R.id.rl_jinyong);
+ RelativeLayout relativeLayout2 = baseViewHolder.getView(R.id.rl_xzsy);
+ textView.setText(appInfo.appName);
+ if (SPUtils.getInt(mContext, "themenBg", 0) == 1) {
+ textView.setTextColor(-10066330);
+ } else {
+ textView.setTextColor(-1);
+ }
+ Glide.with(imageView).load(appInfo.getAppIcon()).apply(RequestOptions.bitmapTransform(new RoundedCorners((int) mContext.getResources().getDimension(R.dimen.x20)))).into(imageView);
+ relativeLayout.setVisibility(View.GONE);
+ relativeLayout2.setVisibility(View.GONE);
+ if (GkAppUseInfo.getGkAppUseInfo().datas != null) {
+ for (AppUseInfo appUseInfo : GkAppUseInfo.getGkAppUseInfo().datas) {
+ Log.e("jxw", appInfo.packageName + "--" + appUseInfo.getPackageName());
+ if ((appInfo.packageName != null && appInfo.packageName.equals(appUseInfo.getPackageName()) && appUseInfo.getEnabled() == 0) || (appInfo.mStargss != null && appInfo.mStargss.contains(appUseInfo.getPackageName()) && appUseInfo.getEnabled() == 0)) {
+ Log.e("jxw-", "禁止使用的app==" + appInfo.packageName + "--" + appInfo.mStargss + "--" + appUseInfo.getPackageName());
+ relativeLayout.setVisibility(View.VISIBLE);
+ break;
+ } else if ((appInfo.packageName != null && appInfo.packageName.equals(appUseInfo.getPackageName()) && appUseInfo.getEnabled() == 2) || (appInfo.mStargss != null && appInfo.mStargss.contains(appUseInfo.getPackageName()) && appUseInfo.getEnabled() == 2)) {
+ Log.e("jxw-", "限制使用的app==" + appInfo.packageName + "--" + appInfo.mStargss + "--" + appUseInfo.getPackageName());
+ relativeLayout2.setVisibility(View.VISIBLE);
+ break;
+ }
+ }
+ }
+ if (!xiezai) {
+ imageView2.setVisibility(View.GONE);
+ } else {
+ imageView2.setVisibility(View.VISIBLE);
+ }
+ imageView2.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ if (listener != null) {
+ listener.onDeleteClick(appInfo.packageName, baseViewHolder.getAdapterPosition(), appInfo.appName);
+ }
+ }
+ });
+ if (!xiezai) {
+ imageView2.setVisibility(View.GONE);
+ } else if (!TextUtils.isEmpty(appInfo.packageName) && appInfo.getIntent() == null) {
+ imageView2.setVisibility(View.VISIBLE);
+ } else {
+ imageView2.setVisibility(View.GONE);
+ }
+ baseViewHolder.addOnLongClickListener(R.id.app_icon);
+ imageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ if (GkAppUseInfo.getGkAppUseInfo().datas != null) {
+ for (AppUseInfo appUseInfo2 : GkAppUseInfo.getGkAppUseInfo().datas) {
+ Log.e("jxw", appInfo.packageName + "--" + appUseInfo2.getPackageName());
+ if ((appInfo.packageName != null && appInfo.packageName.equals(appUseInfo2.getPackageName()) && appUseInfo2.getEnabled() == 0) || (appInfo.mStargss != null && appInfo.mStargss.contains(appUseInfo2.getPackageName()) && appUseInfo2.getEnabled() == 0)) {
+ new LockDialog(mContext, appInfo.appName).show();
+ return;
+ }
+ }
+ }
+ if (listener != null) {
+ listener.onSelectClick(baseViewHolder.getAdapterPosition());
+ }
+ }
+ });
+ } catch (Exception unused) {
+ }
+ }
+
+ public void setGkApp(List list) {
+ gkAppData = list;
+ notifyDataSetChanged();
+ }
+
+ public void setOnItemClickListener(RadiaoOnItemClickListener radiaoOnItemClickListener) {
+ listener = radiaoOnItemClickListener;
+ }
+}
diff --git a/app/src/main/res/drawable-hdpi/icon_alipay.png b/app/src/main/res/drawable-hdpi/icon_alipay.png
new file mode 100644
index 0000000..8f54645
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/icon_alipay.png differ
diff --git a/app/src/main/res/drawable-hdpi/icon_wechat_pay.png b/app/src/main/res/drawable-hdpi/icon_wechat_pay.png
new file mode 100644
index 0000000..2e0ac09
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/icon_wechat_pay.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_activation_backgroud_card.png b/app/src/main/res/drawable-xxhdpi/icon_activation_backgroud_card.png
new file mode 100644
index 0000000..a5ee8ed
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_activation_backgroud_card.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_activation_confirm.png b/app/src/main/res/drawable-xxhdpi/icon_activation_confirm.png
new file mode 100644
index 0000000..e541fb6
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_activation_confirm.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_activation_divider_line.png b/app/src/main/res/drawable-xxhdpi/icon_activation_divider_line.png
new file mode 100644
index 0000000..561c0e0
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_activation_divider_line.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_activation_exit.png b/app/src/main/res/drawable-xxhdpi/icon_activation_exit.png
new file mode 100644
index 0000000..f643349
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_activation_exit.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_activation_robot_365.png b/app/src/main/res/drawable-xxhdpi/icon_activation_robot_365.png
new file mode 100644
index 0000000..7859345
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_activation_robot_365.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_activation_title.png b/app/src/main/res/drawable-xxhdpi/icon_activation_title.png
new file mode 100644
index 0000000..b23ae04
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_activation_title.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_activation_use_coupons.png b/app/src/main/res/drawable-xxhdpi/icon_activation_use_coupons.png
new file mode 100644
index 0000000..3fb340b
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_activation_use_coupons.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_activation_use_key.png b/app/src/main/res/drawable-xxhdpi/icon_activation_use_key.png
new file mode 100644
index 0000000..0b27f3a
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_activation_use_key.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_activation_use_qrcode.png b/app/src/main/res/drawable-xxhdpi/icon_activation_use_qrcode.png
new file mode 100644
index 0000000..5b9929c
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_activation_use_qrcode.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_login_phone.png b/app/src/main/res/drawable-xxhdpi/icon_login_phone.png
new file mode 100644
index 0000000..2d454a6
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_login_phone.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_login_sms.png b/app/src/main/res/drawable-xxhdpi/icon_login_sms.png
new file mode 100644
index 0000000..0ee6ff2
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_login_sms.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_login_sms_code.png b/app/src/main/res/drawable-xxhdpi/icon_login_sms_code.png
new file mode 100644
index 0000000..2e61568
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_login_sms_code.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_logon_background.png b/app/src/main/res/drawable-xxhdpi/icon_logon_background.png
new file mode 100644
index 0000000..13602f3
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_logon_background.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_mine_robot.png b/app/src/main/res/drawable-xxhdpi/icon_mine_robot.png
new file mode 100644
index 0000000..f546702
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_mine_robot.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_qrcode_empty.png b/app/src/main/res/drawable-xxhdpi/icon_qrcode_empty.png
new file mode 100644
index 0000000..58764b9
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_qrcode_empty.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_sjzx.png b/app/src/main/res/drawable-xxhdpi/icon_sjzx.png
new file mode 100644
index 0000000..b8f2cd2
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_sjzx.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_szzs.png b/app/src/main/res/drawable-xxhdpi/icon_szzs.png
new file mode 100644
index 0000000..ba131a8
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_szzs.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_xuewang365_logo.png b/app/src/main/res/drawable-xxhdpi/icon_xuewang365_logo.png
new file mode 100644
index 0000000..31a896c
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_xuewang365_logo.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_xwcd.png b/app/src/main/res/drawable-xxhdpi/icon_xwcd.png
new file mode 100644
index 0000000..4d4c956
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_xwcd.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/mine_wallpaper.png b/app/src/main/res/drawable-xxhdpi/mine_wallpaper.png
new file mode 100644
index 0000000..2bfc0c7
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/mine_wallpaper.png differ
diff --git a/app/src/main/res/drawable/edit_background.xml b/app/src/main/res/drawable/edit_background.xml
new file mode 100644
index 0000000..c200054
--- /dev/null
+++ b/app/src/main/res/drawable/edit_background.xml
@@ -0,0 +1,14 @@
+
+
+
+ -
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/edit_text_background.xml b/app/src/main/res/drawable/edit_text_background.xml
new file mode 100644
index 0000000..a3d14f6
--- /dev/null
+++ b/app/src/main/res/drawable/edit_text_background.xml
@@ -0,0 +1,18 @@
+
+
+
+ -
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_activation.xml b/app/src/main/res/layout/activity_activation.xml
new file mode 100644
index 0000000..53d123a
--- /dev/null
+++ b/app/src/main/res/layout/activity_activation.xml
@@ -0,0 +1,716 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_home.xml b/app/src/main/res/layout/activity_home.xml
index e5a238d..2ef35d5 100644
--- a/app/src/main/res/layout/activity_home.xml
+++ b/app/src/main/res/layout/activity_home.xml
@@ -15,7 +15,7 @@
android:id="@+id/ll_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="@drawable/img_home_bg_0"
+ android:background="@drawable/mine_wallpaper"
android:orientation="vertical">
-
-
+
+
+ android:visibility="gone" />
@@ -146,8 +148,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/home"
- app:layout_constraintTop_toBottomOf="@+id/home"
- tools:layout_editor_absoluteX="19dp" />
+ app:layout_constraintTop_toBottomOf="@+id/home" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_login_successful.xml b/app/src/main/res/layout/activity_login_successful.xml
new file mode 100644
index 0000000..129e9c6
--- /dev/null
+++ b/app/src/main/res/layout/activity_login_successful.xml
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_mine.xml b/app/src/main/res/layout/fragment_mine.xml
index 99caaa6..0bc7d81 100644
--- a/app/src/main/res/layout/fragment_mine.xml
+++ b/app/src/main/res/layout/fragment_mine.xml
@@ -12,356 +12,252 @@
+
-
-
+
-
+
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:layout_centerVertical="true"
+ android:layout_marginStart="12dp"
+ android:layout_marginEnd="12dp"
+ android:layout_toEndOf="@+id/head_image"
+ android:onClick="onClick"
+ android:orientation="vertical"
+ android:tag="@string/tag_args_xxgrzx"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toStartOf="@+id/ll_dj"
+ app:layout_constraintStart_toEndOf="@+id/head_image"
+ app:layout_constraintTop_toTopOf="parent">
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:adjustViewBounds="true"
+ android:onClick="onClick"
+ android:scaleType="centerCrop"
+ android:src="@drawable/icon_xwcd"
+ android:tag="@string/tag_args_new_xwcd_online"
+ app:layout_constraintStart_toEndOf="@+id/rl_grxx"
+ app:layout_constraintTop_toTopOf="parent" />
-
+
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:layout_height="66dp"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintStart_toStartOf="parent" />
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 6bf6b6e..ea1091a 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -65,5 +65,6 @@
#70B1B1B1
#ffffff
+ #656565
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index df88fe4..a9f75fc 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -48,7 +48,9 @@
4dp
10dp
16dp
- @dimen/abc_action_bar_content_inset_material
+
+ @dimen/abc_action_bar_content_inset_material
+
296dp
4dp
48dp
@@ -167,6 +169,7 @@
16dp
80dp
24dp
+
1px
10px
100px
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 1013428..5a8f089 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,5 +1,5 @@
- 学王365
+ 学王365旗舰
隐私协议
服务协议和隐私政策
\t\t\t\t请你务必审慎阅读、充分理解“服务协议”和“隐私政策”各条款,包括但不限于:为了向你提供即时通讯,内容分享等服务,
@@ -17,5 +17,8 @@
学习时长%s
未设置
桌面运行需授予权限,点击设置
+ 本服务需获取网络、账号、设备、应用、交易信息以及您主动上传的数据,用于提供应用内支付服务。同时为了提升您的使用体验,基于您的“同意"为您启个性化服务。\n使用本服务,即表示您已满 14 周岁,并同意上述内容及学王365软终端内支付用户协议,关于学王365软终端内支付与隐私的声明。
+
+ 如果您已经订购实体包装版,您可以在包装盒内找到“许可证”贴纸,\n请刮开涂层,将密钥输入在下面的对话框内