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 { - 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请刮开涂层,将密钥输入在下面的对话框内