diff --git a/app/build.gradle b/app/build.gradle index ae9f760..1b06965 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,8 +20,8 @@ android { minSdkVersion 23 targetSdkVersion 29 - versionCode 45 - versionName "1.4.4" + versionCode 46 + versionName "1.4.5" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 68f3271..174cff0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -34,12 +34,14 @@ + + @@ -110,7 +112,6 @@ - + { + + private Disposable mDisposable; + + @Override + protected int getLayoutId() { + return R.layout.activity_exit_code; + } + + @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() { + mViewModel.mSentSuccessfullyData.observe(this, new Observer() { + @Override + public void onChanged(Boolean aBoolean) { + if (aBoolean) { + Toaster.show("验证码发送成功"); + startCountdown(); + } else { + setCodeTextEnable(); + } + } + }); + + mViewModel.mExitSuccessData.observe(this, new Observer() { + @Override + public void onChanged(Boolean aBoolean) { + if (aBoolean) { + Intent intent = new Intent(); + setResult(Activity.RESULT_OK, intent); + finish(); + } + } + }); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (mDisposable != null && !mDisposable.isDisposed()) { + mDisposable.dispose(); + mDisposable = null; + } + } + + private void startCountdown() { + int countdownTime = 60; + + mDisposable = Observable.interval(0, 1, TimeUnit.SECONDS) + .take(countdownTime + 1) + .map(aLong -> countdownTime - aLong) + .subscribeOn(Schedulers.computation()) + .observeOn(AndroidSchedulers.mainThread()) + .compose(RxLifecycle.bindUntilEvent(getLifecycleSubject(), ActivityEvent.DESTROY)) + .subscribeWith(new DisposableObserver() { + @Override + public void onNext(Long remainingTime) { + Log.e("ExitCodeActivity", "countdown: " + remainingTime); + mViewDataBinding.tvGetCode.setText(remainingTime + "秒"); + mViewDataBinding.tvGetCode.setEnabled(true); + } + + @Override + public void onError(Throwable e) { + Log.e("ExitCodeActivity", "countdown Error: ", e); + onComplete(); + } + + @Override + public void onComplete() { + Log.e("ExitCodeActivity", "countdown complete"); + setCodeTextEnable(); + } + }); + } + + private void setCodeTextEnable() { + mViewDataBinding.tvGetCode.setText("获取"); + mViewDataBinding.tvGetCode.setEnabled(true); + } + + public class BtnClick { + public void getCode(View view) { + mViewDataBinding.tvGetCode.setText("发送中"); + mViewDataBinding.tvGetCode.setEnabled(false); +// Editable editable = mViewDataBinding.etMobile.getText(); +// if (editable == null) { +// Toaster.show("请输入手机号"); +// setCodeTextEnable(); +// return; +// } +// String mobile = editable.toString(); +// if (TextUtils.isEmpty(mobile)) { +// Toaster.show("请输入手机号"); +// setCodeTextEnable(); +// return; +// } + mViewModel.getPhoneCode(); + } + + public void codeExit(View view) { +// Editable editable = mViewDataBinding.etMobile.getText(); +// if (editable == null) { +// Toaster.show("请输入手机号"); +// return; +// } +// String mobile = editable.toString(); +// if (TextUtils.isEmpty(mobile)) { +// Toaster.show("请输入手机号"); +// return; +// } + Editable codeEditable = mViewDataBinding.etCode.getText(); + if (codeEditable == null) { + Toaster.show("请输入验证码"); + return; + } + String code = codeEditable.toString(); + if (TextUtils.isEmpty(code)) { + Toaster.show("请输入验证码"); + return; + } + mViewModel.codeExit(code); + } + } +} diff --git a/app/src/main/java/com/xwad/os/activity/exit/ExitCodeViewModel.java b/app/src/main/java/com/xwad/os/activity/exit/ExitCodeViewModel.java new file mode 100644 index 0000000..563a9ec --- /dev/null +++ b/app/src/main/java/com/xwad/os/activity/exit/ExitCodeViewModel.java @@ -0,0 +1,108 @@ +package com.xwad.os.activity.exit; + +import android.util.Log; + +import androidx.lifecycle.MutableLiveData; + +import com.hjq.toast.Toaster; +import com.tencent.mmkv.MMKV; +import com.trello.rxlifecycle4.RxLifecycle; +import com.trello.rxlifecycle4.android.ActivityEvent; +import com.xwad.os.base.mvvm.BaseViewModel; +import com.xwad.os.bean.BaseResponse; +import com.xwad.os.config.CommonConfig; +import com.xwad.os.databinding.ActivityExitCodeBinding; +import com.xwad.os.network.NetInterfaceManager; + +import io.reactivex.rxjava3.annotations.NonNull; +import io.reactivex.rxjava3.core.Observer; +import io.reactivex.rxjava3.disposables.Disposable; + +public class ExitCodeViewModel extends BaseViewModel { + + private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE); + + @Override + public ActivityExitCodeBinding getVDBinding() { + return binding; + } + + @Override + public void onDestroy() { + + } + + public MutableLiveData mSentSuccessfullyData = new MutableLiveData<>(); + + public void getPhoneCode() { + NetInterfaceManager.getInstance().getLogoutCodeObservable() + .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("ExitCodeVM", "getPhoneCode onSubscribe: "); + } + + @Override + public void onNext(@NonNull BaseResponse baseResponse) { + Log.e("ExitCodeVM", "getPhoneCode onNext: "); + mSentSuccessfullyData.setValue(baseResponse.code == 200); + Toaster.show(baseResponse.msg); + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("ExitCodeVM", "getPhoneCode onError: " + e.getMessage()); + mSentSuccessfullyData.setValue(false); + } + + @Override + public void onComplete() { + Log.e("ExitCodeVM", "getPhoneCode onComplete: "); + } + }); + } + + public MutableLiveData mExitSuccessData = new MutableLiveData<>(); + + public void codeExit(String code) { + NetInterfaceManager.getInstance().getLogoutObservable(code) + .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("ExitCodeVM", "codeExit onSubscribe: "); + } + + @Override + public void onNext(@NonNull BaseResponse baseResponse) { + Log.e("ExitCodeVM", "codeExit onNext: " + baseResponse); + if (baseResponse.code == 200) { + // 验证成功,清除登录状态 + mMMKV.encode(CommonConfig.ACCOUNT_LOGIN_STATU, 0); + mMMKV.encode(CommonConfig.ACCOUNT_LOGIN_TOKEN, ""); + mMMKV.encode(CommonConfig.ACCOUNT_LOGIN_MOBILE, ""); + mMMKV.encode(CommonConfig.ACCOUNT_LOGIN_ID, ""); + mMMKV.encode(CommonConfig.ACCOUNT_DEVICE_ID, ""); + mMMKV.encode(CommonConfig.ACCOUNT_DEVICE_SN, ""); +// Toaster.show("验证成功"); + mExitSuccessData.setValue(true); + } else { + Toaster.show(baseResponse.msg); + mExitSuccessData.setValue(false); + } + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("ExitCodeVM", "codeExit onError: " + e.getMessage()); + mExitSuccessData.setValue(false); + } + + @Override + public void onComplete() { + Log.e("ExitCodeVM", "codeExit onComplete: "); + } + }); + } +} 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 a7853b9..8200397 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 @@ -412,6 +412,12 @@ public class HomeActivity extends BaseMvvmActivity() { @Override diff --git a/app/src/main/java/com/xwad/os/activity/home/HomeViewModel.java b/app/src/main/java/com/xwad/os/activity/home/HomeViewModel.java index e0cffb0..a722fb7 100644 --- a/app/src/main/java/com/xwad/os/activity/home/HomeViewModel.java +++ b/app/src/main/java/com/xwad/os/activity/home/HomeViewModel.java @@ -10,7 +10,6 @@ import com.tencent.mmkv.MMKV; import com.trello.rxlifecycle4.RxLifecycle; import com.trello.rxlifecycle4.android.ActivityEvent; import com.xwad.os.BuildConfig; -import com.xwad.os.R; import com.xwad.os.base.mvvm.BaseViewModel; import com.xwad.os.bean.AppInfo; import com.xwad.os.bean.BaseResponse; @@ -54,77 +53,58 @@ public class HomeViewModel extends BaseViewModel mGradleData = new MutableLiveData<>(); public void getSnInfo() { - NetInterfaceManager.getInstance().getSnInfoControl() - .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) - .subscribe(new Observer>() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("getSnInfo", "onSubscribe: "); - } + NetInterfaceManager.getInstance().getSnInfo(getLifecycle(), new NetInterfaceManager.ObserverCallback() { + @Override + public void onSubscribe(Disposable d) { + } - @Override - public void onNext(@NonNull BaseResponse snInfoBaseResponse) { - Log.e("getSnInfo", "onNext: "); - if (snInfoBaseResponse.code == 200) { - SnInfo snInfo = snInfoBaseResponse.data; - String old = mMMKV.decodeString(CommonConfig.UIUI_USER_GRADE_KEY, getCtx().getString(R.string.default_grade)); - String grade = snInfo.getGrade(); - SPUtils.setGrade(grade); -// if (!old.equals(grade)) { -// mMMKV.encode(CommonConfig.UIUI_USER_GRADE_KEY, grade); -// Toaster.showLong("桌面调整,正在重启"); -// Utils.triggerRebirth(getCtx()); -// } else { -// Log.e("getSnInfo", "onNext: not changed"); -// } - mGradleData.setValue(grade); - } - } + @Override + public void onNext(BaseResponse response) { + if (response.code == 200) { + SnInfo snInfo = (SnInfo) response.data; + String grade = snInfo.getGrade(); + SPUtils.setGrade(grade); + mGradleData.setValue(grade); + } + } - @Override - public void onError(@NonNull Throwable e) { - Log.e("getSnInfo", "onError: " + e.getMessage()); - } + @Override + public void onError(Throwable e) { + Log.e("getSnInfo", "onError: " + e.getMessage()); + } - @Override - public void onComplete() { - Log.e("getSnInfo", "onComplete: "); - } - }); + @Override + public void onComplete() { + } + }); } public MutableLiveData mSystemSettingsMutableLiveData = new MutableLiveData<>(); public void getSystemSettings() { - NetInterfaceManager.getInstance().getSettingControl() - .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) - .subscribe(new Observer>() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("getSystemSettings", "onSubscribe: "); - } + NetInterfaceManager.getInstance().getSystemSettings(getLifecycle(), new NetInterfaceManager.ObserverCallback() { + @Override + public void onSubscribe(Disposable d) { + } - @Override - public void onNext(@NonNull BaseResponse systemSettingsBaseResponse) { - Log.e("getSystemSettings", "onNext: " + systemSettingsBaseResponse); - if (systemSettingsBaseResponse.code == 200) { - SystemSettings systemSettings = systemSettingsBaseResponse.data; - mMMKV.encode(CommonConfig.APP_INSTALLATION, systemSettings.getSetting_other_appInstaller()); - mSystemSettingsMutableLiveData.setValue(systemSettings); - } - } + @Override + public void onNext(BaseResponse response) { + if (response.code == 200) { + SystemSettings systemSettings = (SystemSettings) response.data; + mMMKV.encode(CommonConfig.APP_INSTALLATION, systemSettings.getSetting_other_appInstaller()); + mSystemSettingsMutableLiveData.setValue(systemSettings); + } + } - @Override - public void onError(@NonNull Throwable e) { - Log.e("getSystemSettings", "onError: " + e.getMessage()); - } + @Override + public void onError(Throwable e) { + } - @Override - public void onComplete() { - Log.e("getSystemSettings", "onComplete: "); - } - }); + @Override + public void onComplete() { + } + }); } diff --git a/app/src/main/java/com/xwad/os/activity/main/MainViewModel.java b/app/src/main/java/com/xwad/os/activity/main/MainViewModel.java index b9f39a9..2ea5a9a 100644 --- a/app/src/main/java/com/xwad/os/activity/main/MainViewModel.java +++ b/app/src/main/java/com/xwad/os/activity/main/MainViewModel.java @@ -51,73 +51,63 @@ public class MainViewModel extends BaseViewModel mGradleData = new MutableLiveData<>(); public void getSnInfo() { - NetInterfaceManager.getInstance().getSnInfoControl() - .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) - .subscribe(new Observer>() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("getSnInfo", "onSubscribe: "); - } + NetInterfaceManager.getInstance().getSnInfo(getLifecycle(), new NetInterfaceManager.ObserverCallback() { + @Override + public void onSubscribe(Disposable d) { + } - @Override - public void onNext(@NonNull BaseResponse snInfoBaseResponse) { - Log.e("getSnInfo", "onNext: "); - if (snInfoBaseResponse.code == 200) { - SnInfo snInfo = snInfoBaseResponse.data; - String old = mMMKV.decodeString(CommonConfig.UIUI_USER_GRADE_KEY, getCtx().getString(R.string.default_grade)); - if (!old.equals(snInfo.getGrade())) { - mMMKV.encode(CommonConfig.UIUI_USER_GRADE_KEY, snInfo.getGrade()); - Toaster.showLong("桌面调整,正在重启"); - Utils.triggerRebirth(getCtx()); - } else { - Log.e("getSnInfo", "onNext: not changed"); - } - mGradleData.setValue(snInfo.getGrade()); - } + @Override + public void onNext(BaseResponse response) { + if (response.code == 200) { + SnInfo snInfo = (SnInfo) response.data; + String old = mMMKV.decodeString(CommonConfig.UIUI_USER_GRADE_KEY, getCtx().getString(R.string.default_grade)); + if (!old.equals(snInfo.getGrade())) { + mMMKV.encode(CommonConfig.UIUI_USER_GRADE_KEY, snInfo.getGrade()); + Toaster.showLong("桌面调整,正在重启"); + Utils.triggerRebirth(getCtx()); + } else { + Log.e("getSnInfo", "onNext: not changed"); } + mGradleData.setValue(snInfo.getGrade()); + } + } - @Override - public void onError(@NonNull Throwable e) { - Log.e("getSnInfo", "onError: " + e.getMessage()); - } + @Override + public void onError(Throwable e) { + Log.e("getSnInfo", "onError: " + e.getMessage()); + } - @Override - public void onComplete() { - Log.e("getSnInfo", "onComplete: "); - } - }); + @Override + public void onComplete() { + } + }); } public MutableLiveData mSystemSettingsMutableLiveData = new MutableLiveData<>(); public void getSystemSettings() { - NetInterfaceManager.getInstance().getSettingControl() - .subscribe(new Observer>() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("getSystemSettings", "onSubscribe: "); - } + NetInterfaceManager.getInstance().getSystemSettings(new NetInterfaceManager.ObserverCallback() { + @Override + public void onSubscribe(Disposable d) { + } - @Override - public void onNext(@NonNull BaseResponse systemSettingsBaseResponse) { - Log.e("getSystemSettings", "onNext: " + systemSettingsBaseResponse); - if (systemSettingsBaseResponse.code == 200) { - SystemSettings systemSettings = systemSettingsBaseResponse.data; - mSystemSettingsMutableLiveData.setValue(systemSettings); - } - } + @Override + public void onNext(BaseResponse response) { + if (response.code == 200) { + SystemSettings systemSettings = (SystemSettings) response.data; + mSystemSettingsMutableLiveData.setValue(systemSettings); + } + } - @Override - public void onError(@NonNull Throwable e) { - Log.e("getSystemSettings", "onError: " + e.getMessage()); - } + @Override + public void onError(Throwable e) { + } - @Override - public void onComplete() { - Log.e("getSystemSettings", "onComplete: "); - } - }); + @Override + public void onComplete() { + } + }); } diff --git a/app/src/main/java/com/xwad/os/activity/user/UserViewModel.java b/app/src/main/java/com/xwad/os/activity/user/UserViewModel.java index b1a4282..1abbde8 100644 --- a/app/src/main/java/com/xwad/os/activity/user/UserViewModel.java +++ b/app/src/main/java/com/xwad/os/activity/user/UserViewModel.java @@ -41,31 +41,12 @@ public class UserViewModel extends BaseViewModel mUserAvatarInfoData = new MutableLiveData<>(); public void getUserAvatarInfo() { - NetInterfaceManager.getInstance() - .getUserAvatarInfoControl() - .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) - .subscribe(new Observer>() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("getUserAvatarInfo", "onSubscribe: "); - } - - @Override - public void onNext(@NonNull BaseResponse userAvatarInfoBaseResponse) { - Log.e("getUserAvatarInfo", "onNext: " + userAvatarInfoBaseResponse); - mUserAvatarInfoData.setValue(userAvatarInfoBaseResponse.data); - } - - @Override - public void onError(@NonNull Throwable e) { - Log.e("getUserAvatarInfo", "onError: " + e.getMessage()); - } - - @Override - public void onComplete() { - Log.e("getUserAvatarInfo", "onComplete: "); - } - }); + NetInterfaceManager.getInstance().getUserAvatarInfo(getLifecycle(), new NetInterfaceManager.UserAvatarInfoCallback() { + @Override + public void setUserAvatarInfo(UserAvatarInfo info) { + mUserAvatarInfoData.setValue(info); + } + }); } public MutableLiveData mAppUpdateInfoData = new MutableLiveData<>(); @@ -146,7 +127,7 @@ public class UserViewModel extends BaseViewModel() { @Override diff --git a/app/src/main/java/com/xwad/os/bean/DesktopCustomInfo.java b/app/src/main/java/com/xwad/os/bean/DesktopCustomInfo.java new file mode 100644 index 0000000..dd89cc9 --- /dev/null +++ b/app/src/main/java/com/xwad/os/bean/DesktopCustomInfo.java @@ -0,0 +1,44 @@ +package com.xwad.os.bean; + +import java.io.Serializable; + +public class DesktopCustomInfo implements Serializable { + private static final long serialVersionUID = -6331426739993694587L; + + public String banner; + public String top_tag_img; + public String boot_animation; + public String wallpaper; + + public String getBanner() { + return banner; + } + + public void setBanner(String banner) { + this.banner = banner; + } + + public String getTop_tag_img() { + return top_tag_img; + } + + public void setTop_tag_img(String top_tag_img) { + this.top_tag_img = top_tag_img; + } + + public String getBoot_animation() { + return boot_animation; + } + + public void setBoot_animation(String boot_animation) { + this.boot_animation = boot_animation; + } + + public String getWallpaper() { + return wallpaper; + } + + public void setWallpaper(String wallpaper) { + this.wallpaper = wallpaper; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/xwad/os/config/CommonConfig.java b/app/src/main/java/com/xwad/os/config/CommonConfig.java index c89529c..7f951c6 100644 --- a/app/src/main/java/com/xwad/os/config/CommonConfig.java +++ b/app/src/main/java/com/xwad/os/config/CommonConfig.java @@ -27,7 +27,7 @@ public class CommonConfig { public static final String AES_KEY = "xqdep8exnafpef3d"; public static final String LOCK_SCREEN_PASSWORD = "Iflytek_lockScreenPasswordKey"; - public static final String DEFAULT_PASSWORD = "666666"; + public static final String DEFAULT_PASSWORD = "260825"; public static final String SCREEN_LOCK_PWD = "screen_lock_passwd"; public static final String SUPER_PASSWORD = "0728"; @@ -167,4 +167,8 @@ public class CommonConfig { /*应用ID管控*/ public final static String AOLE_ACTION_APP_FORBID_ARRAY = "DeselectViewArray"; + /** + * 是否已经设置了壁纸 + */ + public static final String SET_WALLPAPER = "set_wallpaper_1"; } diff --git a/app/src/main/java/com/xwad/os/fragment/dialog/login/statu/LoginStatuDialogFragment.java b/app/src/main/java/com/xwad/os/fragment/dialog/login/statu/LoginStatuDialogFragment.java index a73ce2f..a1da643 100644 --- a/app/src/main/java/com/xwad/os/fragment/dialog/login/statu/LoginStatuDialogFragment.java +++ b/app/src/main/java/com/xwad/os/fragment/dialog/login/statu/LoginStatuDialogFragment.java @@ -126,17 +126,14 @@ public class LoginStatuDialogFragment extends BaseMvvmDialogFragment { - private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE); - @Override public FragmentMineBinding getVDBinding() { return binding; @@ -36,69 +27,36 @@ public class MineViewModel extends BaseViewModel mUserAvatarInfoData = new MutableLiveData<>(); public void getUserAvatarInfo() { - NetInterfaceManager.getInstance() - .getUserAvatarInfoControl() - .compose(RxLifecycle.bindUntilEvent(getLifecycle(), FragmentEvent.DESTROY)) - .subscribe(new Observer>() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("getUserAvatarInfo", "onSubscribe: "); - } - - @Override - public void onNext(@NonNull BaseResponse userAvatarInfoBaseResponse) { - Log.e("getUserAvatarInfo", "onNext: " + userAvatarInfoBaseResponse); - mUserAvatarInfoData.setValue(userAvatarInfoBaseResponse.data); - } - - @Override - public void onError(@NonNull Throwable e) { - Log.e("getUserAvatarInfo", "onError: " + e.getMessage()); - } - - @Override - public void onComplete() { - Log.e("getUserAvatarInfo", "onComplete: "); - } - }); + NetInterfaceManager.getInstance().getUserAvatarInfoFragment(getLifecycle(), new NetInterfaceManager.UserAvatarInfoCallback() { + @Override + public void setUserAvatarInfo(UserAvatarInfo info) { + mUserAvatarInfoData.setValue(info); + } + }); } public MutableLiveData mSnInfoData = new MutableLiveData<>(); public void getSnInfo() { - NetInterfaceManager.getInstance().getSnInfoControl() - .compose(RxLifecycle.bindUntilEvent(getLifecycle(), FragmentEvent.DESTROY)) - .subscribe(new Observer>() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("getSnInfo", "onSubscribe: "); - } + NetInterfaceManager.getInstance().getSnInfoFragment(getLifecycle(), new NetInterfaceManager.ObserverCallback() { + @Override + public void onSubscribe(Disposable d) { + } - @Override - public void onNext(@NonNull BaseResponse snInfoBaseResponse) { - Log.e("getSnInfo", "onNext: " + snInfoBaseResponse); - if (snInfoBaseResponse.code == 200) { - mSnInfoData.setValue(snInfoBaseResponse.data); - SnInfo snInfo = snInfoBaseResponse.data; - mMMKV.encode(CommonConfig.UIUI_USER_GENDER_KEY, snInfo.getSex()); - mMMKV.encode(CommonConfig.UIUI_USER_NAME_KEY, snInfo.getSn_name()); - mMMKV.encode(CommonConfig.UIUI_USER_SCHOOL_KEY, snInfo.getSchool()); - mMMKV.encode(CommonConfig.UIUI_USER_GRADE_KEY, snInfo.getGrade()); - mMMKV.encode(CommonConfig.UIUI_USER_CLASS_KEY, snInfo.getClass_name()); - mMMKV.encode(CommonConfig.UIUI_USER_AVATAR_KEY, snInfo.getGrade()); - mMMKV.encode(CommonConfig.UIUI_USER_MOBILE_KEY, snInfo.getMobile()); - } - } + @Override + public void onNext(BaseResponse response) { + if (response.code == 200) { + mSnInfoData.setValue((SnInfo) response.data); + } + } - @Override - public void onError(@NonNull Throwable e) { - Log.e("getSnInfo", "onError: "); - } + @Override + public void onError(Throwable e) { + } - @Override - public void onComplete() { - Log.e("getSnInfo", "onComplete: "); - } - }); + @Override + public void onComplete() { + } + }); } } diff --git a/app/src/main/java/com/xwad/os/fragment/usercenter/account/AccountFragment.java b/app/src/main/java/com/xwad/os/fragment/usercenter/account/AccountFragment.java index 1c96b55..5fd0bb0 100644 --- a/app/src/main/java/com/xwad/os/fragment/usercenter/account/AccountFragment.java +++ b/app/src/main/java/com/xwad/os/fragment/usercenter/account/AccountFragment.java @@ -19,6 +19,7 @@ import com.tencent.mmkv.MMKV; import com.xwad.os.R; import com.xwad.os.activity.activation.ActivationActivity; import com.xwad.os.activity.download.DownloadActivity; +import com.xwad.os.activity.exit.ExitCodeActivity; import com.xwad.os.activity.login.LoginActivity; import com.xwad.os.base.mvvm.fragment.BaseMvvmFragment; import com.xwad.os.bean.UserInfo; @@ -148,6 +149,31 @@ public class AccountFragment extends BaseMvvmFragment mLoginOutLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { + @Override + public void onActivityResult(ActivityResult result) { + Log.e(TAG, "onActivityResult: mLoginLauncher = " + result); + if (result != null) { + Intent intent = result.getData(); + if (intent != null && result.getResultCode() == Activity.RESULT_OK) { + mMMKV.encode(CommonConfig.ACCOUNT_LOGIN_STATU, 0); + mMMKV.remove(CommonConfig.ACCOUNT_LOGIN_TOKEN); + mMMKV.remove(CommonConfig.ACCOUNT_LOGIN_MOBILE); + mMMKV.remove(CommonConfig.ACCOUNT_LOGIN_ID); + + mViewDataBinding.setUserInfo(null); + mLoginStatu = 0; + mViewDataBinding.tvPhone.setText("点击登录"); + mViewDataBinding.tvVipName.setText("普通会员"); + mViewDataBinding.tvVipStatu.setText("点击购买激活"); + mLoginStatuDialogFragment.dismiss(); + + Toaster.show("退出成功"); + } + } + } + }); + private void getLocalLoginInfo() { mLoginStatu = mMMKV.decodeInt(CommonConfig.ACCOUNT_LOGIN_STATU, 0); @@ -192,13 +218,7 @@ public class AccountFragment extends BaseMvvmFragment>>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("getTestApp", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull BaseResponse> listBaseResponse) { + Log.e("getTestApp", "onNext: " + listBaseResponse); + if (listBaseResponse.code == 200) { + List appInfos = listBaseResponse.data; + PackageManager pm = getCtx().getPackageManager(); + appInfos.forEach(new Consumer() { + @Override + public void accept(AppInfo appInfo) { + String packages = appInfo.getApp_package(); + long app_version_code = appInfo.getApp_version_code(); + PackageInfo packageInfo = null; + try { + packageInfo = pm.getPackageInfo(packages, 0); + + } catch (PackageManager.NameNotFoundException e) { + e.printStackTrace(); + } + if (packageInfo != null) { + long appVersionCode; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + appVersionCode = packageInfo.getLongVersionCode(); + } else { + appVersionCode = packageInfo.versionCode; + } + if (app_version_code > appVersionCode) { + FileUtils.ariaDownload(getCtx(), appInfo.getApp_url(), appInfo); + } else { + Log.e("getTestApp", "intallApk: " + packages + " is up to date"); + } + } else { + FileUtils.ariaDownload(getCtx(), appInfo.getApp_url(), appInfo); + } + } + }); + } + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("getTestApp", "onError: "); + } + + @Override + public void onComplete() { + Log.e("getTestApp", "onComplete: "); + } + }); + } + public void checkStoreUpdate(String pkg) { NetInterfaceManager.getInstance().getUpdateObservable(pkg) .compose(RxLifecycle.bindUntilEvent(getLifecycle(), FragmentEvent.DESTROY)) diff --git a/app/src/main/java/com/xwad/os/fragment/usercenter/info/InfoViewModel.java b/app/src/main/java/com/xwad/os/fragment/usercenter/info/InfoViewModel.java index 5d8c36f..6073eef 100644 --- a/app/src/main/java/com/xwad/os/fragment/usercenter/info/InfoViewModel.java +++ b/app/src/main/java/com/xwad/os/fragment/usercenter/info/InfoViewModel.java @@ -2,27 +2,24 @@ package com.xwad.os.fragment.usercenter.info; import android.util.Log; +import androidx.annotation.NonNull; import androidx.lifecycle.MutableLiveData; import com.hjq.toast.Toaster; -import com.tencent.mmkv.MMKV; import com.trello.rxlifecycle4.RxLifecycle; import com.trello.rxlifecycle4.android.FragmentEvent; import com.xwad.os.base.mvvm.BaseViewModel; import com.xwad.os.bean.BaseResponse; import com.xwad.os.bean.SnInfo; -import com.xwad.os.config.CommonConfig; import com.xwad.os.databinding.FragmentInfoBinding; import com.xwad.os.network.NetInterfaceManager; import java.util.Map; -import io.reactivex.rxjava3.annotations.NonNull; import io.reactivex.rxjava3.core.Observer; import io.reactivex.rxjava3.disposables.Disposable; public class InfoViewModel extends BaseViewModel { - private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE); @Override public FragmentInfoBinding getVDBinding() { @@ -37,40 +34,26 @@ public class InfoViewModel extends BaseViewModel mSnInfoData = new MutableLiveData<>(); public void getSnInfo() { - NetInterfaceManager.getInstance().getSnInfoControl() - .compose(RxLifecycle.bindUntilEvent(getLifecycle(), FragmentEvent.DESTROY)) - .subscribe(new Observer>() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("getSnInfo", "onSubscribe: "); - } + NetInterfaceManager.getInstance().getSnInfoFragment(getLifecycle(), new NetInterfaceManager.ObserverCallback() { + @Override + public void onSubscribe(Disposable d) { + } - @Override - public void onNext(@NonNull BaseResponse snInfoBaseResponse) { - Log.e("getSnInfo", "onNext: " + snInfoBaseResponse); - if (snInfoBaseResponse.code == 200) { - mSnInfoData.setValue(snInfoBaseResponse.data); - SnInfo snInfo = snInfoBaseResponse.data; - mMMKV.encode(CommonConfig.UIUI_USER_GENDER_KEY, snInfo.getSex()); - mMMKV.encode(CommonConfig.UIUI_USER_NAME_KEY, snInfo.getSn_name()); - mMMKV.encode(CommonConfig.UIUI_USER_SCHOOL_KEY, snInfo.getSchool()); - mMMKV.encode(CommonConfig.UIUI_USER_GRADE_KEY, snInfo.getGrade()); - mMMKV.encode(CommonConfig.UIUI_USER_CLASS_KEY, snInfo.getClass_name()); - mMMKV.encode(CommonConfig.UIUI_USER_AVATAR_KEY, snInfo.getGrade()); - mMMKV.encode(CommonConfig.UIUI_USER_MOBILE_KEY, snInfo.getMobile()); - } - } + @Override + public void onNext(BaseResponse response) { + if (response.code == 200) { + mSnInfoData.setValue((SnInfo) response.data); + } + } - @Override - public void onError(@NonNull Throwable e) { - Log.e("getSnInfo", "onError: "); - } + @Override + public void onError(Throwable e) { + } - @Override - public void onComplete() { - Log.e("getSnInfo", "onComplete: "); - } - }); + @Override + public void onComplete() { + } + }); } public MutableLiveData mSuccessfulData = new MutableLiveData<>(); diff --git a/app/src/main/java/com/xwad/os/manager/ControlManager.java b/app/src/main/java/com/xwad/os/manager/ControlManager.java index 253456e..9951e40 100644 --- a/app/src/main/java/com/xwad/os/manager/ControlManager.java +++ b/app/src/main/java/com/xwad/os/manager/ControlManager.java @@ -19,6 +19,7 @@ import com.xwad.os.bean.SystemSettings; import com.xwad.os.config.CommonConfig; import com.xwad.os.gson.GsonUtils; import com.xwad.os.mdm.AdminManager; +import com.xwad.os.utils.ActivationUtil; import com.xwad.os.utils.JgyUtils; import com.xwad.os.utils.TimeUtils; @@ -825,7 +826,9 @@ public class ControlManager { public void setDeviceRecover(int status) { Log.e(TAG, "setDeviceRecover: " + status); - AdminManager.getInstance().setRestoreFactoryDisabled(status); + if (ActivationUtil.getInstance().isLogin()) { + AdminManager.getInstance().setRestoreFactoryDisabled(status); + } } public void setTopNotify(int status) { diff --git a/app/src/main/java/com/xwad/os/mdm/AdminManager.java b/app/src/main/java/com/xwad/os/mdm/AdminManager.java index ed817a4..fa01e47 100644 --- a/app/src/main/java/com/xwad/os/mdm/AdminManager.java +++ b/app/src/main/java/com/xwad/os/mdm/AdminManager.java @@ -356,8 +356,10 @@ public class AdminManager { uninstallPackage("com.honor.quickgamecenter"); uninstallPackage("com.baidu.homework"); uninstallPackage("com.xueersi.abczone"); + uninstallPackage("com.hihonor.phoneservice"); + uninstallPackage("com.hihonor.gamecenter"); -// addDisallowedRunningApp("com.hihonor.appmarket"); + addDisallowedRunningApp("com.hihonor.appmarket"); addDisallowedRunningApp("com.hihonor.baidu.browser"); addDisallowedRunningApp("com.huawei.android.findmyphone"); addDisallowedRunningApp("com.hihonor.phoneservice"); @@ -367,6 +369,7 @@ public class AdminManager { addDisallowedRunningApp("com.huawei.android.thememanager"); addDisallowedRunningApp("com.huawei.wallet"); addDisallowedRunningApp("com.hihonor.popularapps"); + addDisallowedRunningApp("com.hihonor.parentcontrol"); emitter.onNext(0); } diff --git a/app/src/main/java/com/xwad/os/network/NetInterfaceManager.java b/app/src/main/java/com/xwad/os/network/NetInterfaceManager.java index edd450b..c26ce91 100644 --- a/app/src/main/java/com/xwad/os/network/NetInterfaceManager.java +++ b/app/src/main/java/com/xwad/os/network/NetInterfaceManager.java @@ -6,14 +6,19 @@ import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; +import android.graphics.Bitmap; import android.graphics.drawable.Drawable; import android.os.Build; import android.os.Environment; import android.text.TextUtils; import android.util.Log; +import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.target.SimpleTarget; +import com.bumptech.glide.request.transition.Transition; import com.google.gson.Gson; import com.google.gson.JsonObject; import com.google.gson.reflect.TypeToken; @@ -29,6 +34,7 @@ import com.xwad.os.bean.AppInfo; import com.xwad.os.bean.AppUploadInfo; import com.xwad.os.bean.BaseResponse; import com.xwad.os.bean.CodeBean; +import com.xwad.os.bean.DesktopCustomInfo; import com.xwad.os.bean.GuideBean; import com.xwad.os.bean.HomeworkBean; import com.xwad.os.bean.LessonApp; @@ -57,6 +63,7 @@ import com.xwad.os.network.api.AlarmClockApi; import com.xwad.os.network.api.AppApi; import com.xwad.os.network.api.AppIconApi; import com.xwad.os.network.api.AppUsageRecordApi; +import com.xwad.os.network.api.DesktopCustomApi; import com.xwad.os.network.api.FilesApi; import com.xwad.os.network.api.GetWhoisApi; import com.xwad.os.network.api.HomeworkApi; @@ -147,82 +154,56 @@ public class NetInterfaceManager { private NetInterfaceManager(Context context) { this.mContext = context; this.mCacheHelper = new CacheHelper(context); + if (mOkHttpClient == null) { - //如果无法生存缓存文件目录,检测权限使用已经加上,检测手机是否把文件读写权限禁止了 - OkHttpClient.Builder builder = new OkHttpClient.Builder(); - builder.connectTimeout(TIME_OUT, TimeUnit.SECONDS); // 设置连接超时时间 - builder.writeTimeout(TIME_OUT, TimeUnit.SECONDS);// 设置写入超时时间 - builder.readTimeout(TIME_OUT, TimeUnit.SECONDS);// 设置读取数据超时时间 - builder.retryOnConnectionFailure(true);// 设置进行连接失败重试 - builder.addInterceptor(new RepeatRequestInterceptor()); - - // 设置缓存文件路径 - Cache cache = new Cache(new File(Utils.getCacheDir(mContext) + "/OkHttpCache"), CACHE_SIZE); - builder.cache(cache);// 设置缓存 - mOkHttpClient = builder.build(); + mOkHttpClient = buildOkHttpClient(); } - if (mRetrofit == null) { - mRetrofit = new Retrofit.Builder() - .client(mOkHttpClient) - .baseUrl(UrlAddress.ROOT_URL) - .addConverterFactory(GsonConverterFactory.create()) - .addCallAdapterFactory(RxJava3CallAdapterFactory.create()) - .build(); + mRetrofit = buildRetrofit(mOkHttpClient, UrlAddress.ROOT_URL); } if (mUiuiosOkHttpClient == null) { - //如果无法生存缓存文件目录,检测权限使用已经加上,检测手机是否把文件读写权限禁止了 - OkHttpClient.Builder builder = new OkHttpClient.Builder(); - builder.connectTimeout(TIME_OUT, TimeUnit.SECONDS); // 设置连接超时时间 - builder.writeTimeout(TIME_OUT, TimeUnit.SECONDS);// 设置写入超时时间 - builder.readTimeout(TIME_OUT, TimeUnit.SECONDS);// 设置读取数据超时时间 - builder.retryOnConnectionFailure(true);// 设置进行连接失败重试 - builder.addInterceptor(new RepeatRequestInterceptor()); - - // 设置缓存文件路径 - Cache cache = new Cache(new File(Utils.getCacheDir(mContext) + "/OkHttpCache"), CACHE_SIZE); - builder.cache(cache);// 设置缓存 - mUiuiosOkHttpClient = builder.build(); + mUiuiosOkHttpClient = buildOkHttpClient(); } - if (mUiuiosRetrofit == null) { - mUiuiosRetrofit = new Retrofit.Builder() - .client(mUiuiosOkHttpClient) - .baseUrl(UrlAddress.UIUIOS_ROOT_URL) - .addConverterFactory(GsonConverterFactory.create()) - .addCallAdapterFactory(RxJava3CallAdapterFactory.create()) - .build(); + mUiuiosRetrofit = buildRetrofit(mUiuiosOkHttpClient, UrlAddress.UIUIOS_ROOT_URL); } if (mJxwOkHttpClient == null) { - //如果无法生存缓存文件目录,检测权限使用已经加上,检测手机是否把文件读写权限禁止了 - OkHttpClient.Builder builder = new OkHttpClient.Builder(); - builder.connectTimeout(TIME_OUT, TimeUnit.SECONDS); // 设置连接超时时间 - builder.writeTimeout(TIME_OUT, TimeUnit.SECONDS);// 设置写入超时时间 - builder.readTimeout(TIME_OUT, TimeUnit.SECONDS);// 设置读取数据超时时间 - builder.retryOnConnectionFailure(true);// 设置进行连接失败重试 - builder.addInterceptor(new RepeatRequestInterceptor()); - - // 设置缓存文件路径 - Cache cache = new Cache(new File(Utils.getCacheDir(mContext) + "/OkHttpCache"), CACHE_SIZE); - builder.cache(cache);// 设置缓存 - mJxwOkHttpClient = builder.build(); + mJxwOkHttpClient = buildOkHttpClient(); } - if (mJxwRetrofit == null) { - mJxwRetrofit = new Retrofit.Builder() - .client(mJxwOkHttpClient) - .baseUrl(UrlAddress.JXW_BASE_URL) - .addConverterFactory(GsonConverterFactory.create()) - .addCallAdapterFactory(RxJava3CallAdapterFactory.create()) - .build(); + mJxwRetrofit = buildRetrofit(mJxwOkHttpClient, UrlAddress.JXW_BASE_URL); } mUploadIconPkgs = mMMKV.decodeStringSet(uploadIconPkgsKey, new HashSet<>()); Log.e("init", "NetInterfaceManager: mUploadIconPkgs = " + mUploadIconPkgs); } + private OkHttpClient buildOkHttpClient() { + //如果无法生存缓存文件目录,检测权限使用已经加上,检测手机是否把文件读写权限禁止了 + OkHttpClient.Builder builder = new OkHttpClient.Builder(); + builder.connectTimeout(TIME_OUT, TimeUnit.SECONDS); // 设置连接超时时间 + builder.writeTimeout(TIME_OUT, TimeUnit.SECONDS);// 设置写入超时时间 + builder.readTimeout(TIME_OUT, TimeUnit.SECONDS);// 设置读取数据超时时间 + builder.retryOnConnectionFailure(true);// 设置进行连接失败重试 + builder.addInterceptor(new RepeatRequestInterceptor()); + + // 设置缓存文件路径 + Cache cache = new Cache(new File(Utils.getCacheDir(mContext) + "/OkHttpCache"), CACHE_SIZE); + builder.cache(cache);// 设置缓存 + return builder.build(); + } + + private Retrofit buildRetrofit(OkHttpClient client, String baseUrl) { + return new Retrofit.Builder() + .client(client) + .baseUrl(baseUrl) + .addConverterFactory(GsonConverterFactory.create()) + .addCallAdapterFactory(RxJava3CallAdapterFactory.create()) + .build(); + } + /** * 打印全局统一拦截添加的Http Headers *

@@ -353,6 +334,10 @@ public class NetInterfaceManager { return getApiService(AppIconApi.class); } + public DesktopCustomApi getDesktopCustomApi() { + return getApiService(DesktopCustomApi.class); + } + /* * @@ -393,7 +378,7 @@ public class NetInterfaceManager { .updateUserInfo(getToken(), params, multipartBody)); } - public Observable getupdateAvatarObservable(Map params, MultipartBody.Part multipartBody) { + public Observable getUpdateAvatarObservable(Map params, MultipartBody.Part multipartBody) { return schedule(getSnInfoApi() .updateAvatar(getToken(), params, multipartBody)); } @@ -475,6 +460,14 @@ public class NetInterfaceManager { return schedule(getLoginApi().newCodeLogin(mobile, code, AdminManager.getInstance().getSerial(), BuildConfig.APPLICATION_ID)); } + public Observable getLogoutCodeObservable() { + return schedule(getLoginApi().getLogoutCode(getToken())); + } + + public Observable getLogoutObservable(String code) { + return schedule(getLoginApi().logout(getToken(), code)); + } + public Observable getUserLoginObservable(String mobile, String password) { return schedule(getLoginApi().userLogin(mobile, password, AdminManager.getInstance().getSerial())); } @@ -563,6 +556,11 @@ public class NetInterfaceManager { } + public Observable> getDesktopCustomInfoObservable() { + return schedule(getDesktopCustomApi().getInfo(Utils.getSerial())); + } + + /* * * execution @@ -654,7 +652,7 @@ public class NetInterfaceManager { mMMKV.encode(CommonConfig.UIUI_USER_SCHOOL_KEY, snInfo.getSchool()); mMMKV.encode(CommonConfig.UIUI_USER_GRADE_KEY, snInfo.getGrade()); mMMKV.encode(CommonConfig.UIUI_USER_CLASS_KEY, snInfo.getClass_name()); - mMMKV.encode(CommonConfig.UIUI_USER_AVATAR_KEY, snInfo.getGrade()); + mMMKV.encode(CommonConfig.UIUI_USER_AVATAR_KEY, snInfo.getAvatar()); mMMKV.encode(CommonConfig.UIUI_USER_MOBILE_KEY, snInfo.getMobile()); } else if (code == 300) { @@ -699,6 +697,13 @@ public class NetInterfaceManager { .subscribe(getUserAvatarInfoObserver(callback)); } + public void getUserAvatarInfoFragment(BehaviorSubject lifecycle, UserAvatarInfoCallback callback) { + NetInterfaceManager.getInstance() + .getUserAvatarInfoControl() + .compose(RxLifecycle.bindUntilEvent(lifecycle, FragmentEvent.DESTROY)) + .subscribe(getUserAvatarInfoObserver(callback)); + } + public void getUserAvatarInfo(UserAvatarInfoCallback callback) { NetInterfaceManager.getInstance() .getUserAvatarInfoControl() @@ -771,7 +776,7 @@ public class NetInterfaceManager { } if (lessonAppBaseResponse.code == 200) { List app = lessonAppBaseResponse.data.getApp(); - if (app != null || app.size() != 0) { + if (app != null && app.size() != 0) { List appList = app.stream().map(LessonApp.App::getApp_package).collect(Collectors.toList()); String pkgs = String.join(",", appList); lessonJson.setPkgs(pkgs); @@ -1491,39 +1496,66 @@ public class NetInterfaceManager { }; } + public void getSystemSettings(BehaviorSubject lifecycle, ObserverCallback callback) { + getSettingControl() + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(getSystemSettingsObserver(callback)); + } + + public void getSystemSettings(ObserverCallback callback) { + getSettingControl() + .subscribe(getSystemSettingsObserver(callback)); + } + public void getSystemSettings() { getSettingControl() - .subscribe(new Observer>() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("getSystemSettings", "onSubscribe: "); - } + .subscribe(getSystemSettingsObserver(null)); + } - @Override - public void onNext(@NonNull BaseResponse baseresponse) { - Log.e("getSystemSettings", "onNext: " + baseresponse); - int code = baseresponse.code; - if (code == 200) { - String data = new Gson().toJson(baseresponse.data); - ControlManager.getInstance().setSystemSetting(data); - mCacheHelper.put(UrlAddress.GET_SETTINGS, GsonUtils.toJSONString(baseresponse.data)); - } else { - ControlManager.getInstance().setDisableSetting(); - mCacheHelper.put(UrlAddress.GET_SETTINGS, ""); - } - } + private Observer> getSystemSettingsObserver(ObserverCallback callback) { + return new Observer>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("getSystemSettings", "onSubscribe: "); + if (callback != null) { + callback.onSubscribe(d); + } + } - @Override - public void onError(@NonNull Throwable e) { - Log.e("getSystemSettings", "onError: " + e.getMessage()); - onComplete(); - } + @Override + public void onNext(@NonNull BaseResponse baseresponse) { + Log.e("getSystemSettings", "onNext: " + baseresponse); + if (callback != null) { + callback.onNext(baseresponse); + } + int code = baseresponse.code; + if (code == 200) { + String data = new Gson().toJson(baseresponse.data); + ControlManager.getInstance().setSystemSetting(data); + mCacheHelper.put(UrlAddress.GET_SETTINGS, GsonUtils.toJSONString(baseresponse.data)); + } else { + ControlManager.getInstance().setDisableSetting(); + mCacheHelper.put(UrlAddress.GET_SETTINGS, ""); + } + } - @Override - public void onComplete() { - Log.e("getSystemSettings", "onComplete: "); - } - }); + @Override + public void onError(@NonNull Throwable e) { + Log.e("getSystemSettings", "onError: " + e.getMessage()); + if (callback != null) { + callback.onError(e); + } + onComplete(); + } + + @Override + public void onComplete() { + Log.e("getSystemSettings", "onComplete: "); + if (callback != null) { + callback.onComplete(); + } + } + }; } public interface AppIconCallback { @@ -1589,4 +1621,46 @@ public class NetInterfaceManager { } }; } + + public void getDesktopCustomInfo(BehaviorSubject lifecycle, OnCompleteCallback callback) { + getDesktopCustomInfoObservable() + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(new Observer>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e(TAG, "getDesktopCustom onSubscribe: "); + } + + @Override + public void onNext(BaseResponse baseResponse) { + Log.e(TAG, "getDesktopCustom onNext: " + baseResponse); + if (baseResponse.code == 200) { + DesktopCustomInfo desktopCustomInfo = baseResponse.data; + if (desktopCustomInfo != null && !TextUtils.isEmpty(desktopCustomInfo.getWallpaper())) { + Glide.with(mContext) + .asBitmap() + .load(desktopCustomInfo.getWallpaper()) + .into(new SimpleTarget() { + @Override + public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition transition) { + boolean success = JgyUtils.getInstance().setSystemLockWallpaper(resource); + Log.e(TAG, "getDesktopCustom setSystemLockWallpaper: " + success); + } + }); + } + } + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e(TAG, "getDesktopCustom onError: "); + } + + @Override + public void onComplete() { + Log.e(TAG, "getDesktopCustom onComplete: "); + } + }); + } + } diff --git a/app/src/main/java/com/xwad/os/network/UrlAddress.java b/app/src/main/java/com/xwad/os/network/UrlAddress.java index 4cf11df..389edb6 100644 --- a/app/src/main/java/com/xwad/os/network/UrlAddress.java +++ b/app/src/main/java/com/xwad/os/network/UrlAddress.java @@ -15,6 +15,10 @@ public class UrlAddress { public final static String NEW_CODE_LOGIN = "login/new-login"; /*账号密码登录*/ public final static String USER_LOGIN = "login/user-login"; + /*发送退出登录验证码*/ + public final static String GET_LOGOUT_CODE = "user/get-logout-code"; + /*退出登录(输入验证码后请求这个)*/ + public final static String LOGOUT = "login/logout"; /*用户会员信息(用于判断是否有VIP)*/ @@ -59,6 +63,7 @@ public class UrlAddress { public static final String UPLOAD_APP_IMG = "collectData/uploadAppImg"; /*获取应用库是否有图标*/ public static final String GET_IS_APP_IMG = "collectData/getIsAppImg"; + public static final String DESKTOP_CUSTOM_INFO = "desktop-custom/info"; /*设备信息接口*/ public static final String SNINFO = "sn/getSnInfo"; @@ -83,8 +88,6 @@ public class UrlAddress { public static final String UPLOAD_CONTROL_SCREENSHOT = "sn/uploadControlScreenshot"; - - /*获取统计*/ public static final String GET_STUDY_STAT = "Sn/getStudyStat"; /*上传地址信息*/ diff --git a/app/src/main/java/com/xwad/os/network/api/DesktopCustomApi.java b/app/src/main/java/com/xwad/os/network/api/DesktopCustomApi.java new file mode 100644 index 0000000..5005749 --- /dev/null +++ b/app/src/main/java/com/xwad/os/network/api/DesktopCustomApi.java @@ -0,0 +1,16 @@ +package com.xwad.os.network.api; + +import com.xwad.os.bean.BaseResponse; +import com.xwad.os.bean.DesktopCustomInfo; +import com.xwad.os.network.UrlAddress; + +import io.reactivex.rxjava3.core.Observable; +import retrofit2.http.GET; +import retrofit2.http.Query; + +public interface DesktopCustomApi { + @GET(UrlAddress.DESKTOP_CUSTOM_INFO) + Observable> getInfo( + @Query("sn") String sn + ); +} diff --git a/app/src/main/java/com/xwad/os/network/api/LoginApi.java b/app/src/main/java/com/xwad/os/network/api/LoginApi.java index f26b7d0..e4edcb0 100644 --- a/app/src/main/java/com/xwad/os/network/api/LoginApi.java +++ b/app/src/main/java/com/xwad/os/network/api/LoginApi.java @@ -8,6 +8,7 @@ import io.reactivex.rxjava3.core.Observable; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; +import retrofit2.http.Header; import retrofit2.http.POST; import retrofit2.http.Query; @@ -41,4 +42,16 @@ public interface LoginApi { @Field("sn") String sn, @Field("desktop_package") String desktop_package ); + + @GET(UrlAddress.GET_LOGOUT_CODE) + Observable getLogoutCode( + @Header("token") String token + ); + + @FormUrlEncoded + @POST(UrlAddress.LOGOUT) + Observable logout( + @Header("token") String token, + @Field("code") String code + ); } diff --git a/app/src/main/java/com/xwad/os/service/DownloadService.java b/app/src/main/java/com/xwad/os/service/DownloadService.java index 644eb05..61765d4 100644 --- a/app/src/main/java/com/xwad/os/service/DownloadService.java +++ b/app/src/main/java/com/xwad/os/service/DownloadService.java @@ -93,7 +93,7 @@ public class DownloadService extends Service { PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID) .setSmallIcon(R.mipmap.ic_launcher) - .setContentTitle("学习超人365正在运行") + .setContentTitle("双系统学习管理中心正在运行") // .setContentText("测试内容") .setAutoCancel(false) .setShowWhen(false) diff --git a/app/src/main/java/com/xwad/os/service/main/MainSContact.java b/app/src/main/java/com/xwad/os/service/main/MainSContact.java index bb1fbac..0b89926 100644 --- a/app/src/main/java/com/xwad/os/service/main/MainSContact.java +++ b/app/src/main/java/com/xwad/os/service/main/MainSContact.java @@ -65,6 +65,8 @@ public class MainSContact { void getSystemSettings(); /*获取锁屏密码*/ void getLockScreenPwd(); + + void getDesktopCustomInfo(); } public interface MainSView extends BaseView { @@ -99,5 +101,8 @@ public class MainSContact { void setAppNetwork(); void setSystemSettings(); void setLockScreenPwd(); + + void getDesktopCustomInfoFinish(); + } } diff --git a/app/src/main/java/com/xwad/os/service/main/MainSPresenter.java b/app/src/main/java/com/xwad/os/service/main/MainSPresenter.java index c95c2f3..b919480 100644 --- a/app/src/main/java/com/xwad/os/service/main/MainSPresenter.java +++ b/app/src/main/java/com/xwad/os/service/main/MainSPresenter.java @@ -520,5 +520,15 @@ public class MainSPresenter implements MainSContact.Presenter { }); } + @Override + public void getDesktopCustomInfo() { + NetInterfaceManager.getInstance().getDesktopCustomInfo(lifecycle, new NetInterfaceManager.OnCompleteCallback() { + @Override + public void onComplete() { + mView.getDesktopCustomInfoFinish(); + } + }); + } + } diff --git a/app/src/main/java/com/xwad/os/service/main/MainService.java b/app/src/main/java/com/xwad/os/service/main/MainService.java index 5112ea6..3855483 100644 --- a/app/src/main/java/com/xwad/os/service/main/MainService.java +++ b/app/src/main/java/com/xwad/os/service/main/MainService.java @@ -156,7 +156,7 @@ public class MainService extends BaseRxService implements MainSContact.MainSView mPresenter.get365Admin(); mPresenter.getSystemSettings(); mPresenter.getLockScreenPwd(); - + mPresenter.getDesktopCustomInfo(); } @Override @@ -212,7 +212,7 @@ public class MainService extends BaseRxService implements MainSContact.MainSView PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID) .setSmallIcon(R.mipmap.ic_launcher) - .setContentTitle("学习超人365正在运行") + .setContentTitle("双系统学习管理中心正在运行") // .setContentText("测试内容") .setAutoCancel(false) .setShowWhen(false) @@ -446,4 +446,10 @@ public class MainService extends BaseRxService implements MainSContact.MainSView } + @Override + public void getDesktopCustomInfoFinish() { + + } + + } diff --git a/app/src/main/java/com/xwad/os/utils/JgyUtils.java b/app/src/main/java/com/xwad/os/utils/JgyUtils.java index 44fc6fc..1fdfdf2 100644 --- a/app/src/main/java/com/xwad/os/utils/JgyUtils.java +++ b/app/src/main/java/com/xwad/os/utils/JgyUtils.java @@ -1,9 +1,12 @@ package com.xwad.os.utils; +import static android.app.ActivityManager.RECENT_IGNORE_UNAVAILABLE; + import android.annotation.SuppressLint; import android.app.ActivityManager; import android.app.ActivityManagerNative; import android.app.ActivityTaskManager; +import android.app.WallpaperManager; import android.app.role.RoleManager; import android.content.ComponentName; import android.content.ContentResolver; @@ -16,6 +19,8 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.UserInfo; import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; import android.media.AudioManager; import android.net.ConnectivityManager; import android.net.NetworkInfo; @@ -69,8 +74,6 @@ import io.reactivex.rxjava3.core.ObservableOnSubscribe; import io.reactivex.rxjava3.core.Observer; import io.reactivex.rxjava3.disposables.Disposable; -import static android.app.ActivityManager.RECENT_IGNORE_UNAVAILABLE; - public class JgyUtils { private static final String TAG = "JgyUtils"; @@ -1084,6 +1087,128 @@ public class JgyUtils { mContext.sendBroadcast(intent); } + /** + * 设置系统桌面壁纸(主屏幕),通过资源 ID + */ + public boolean setSystemWallpaper(int resId) { + try { + WallpaperManager manager = WallpaperManager.getInstance(mContext); + if (manager == null) { + return false; + } + manager.setResource(resId); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 设置系统桌面壁纸(主屏幕),通过 Bitmap + */ + public boolean setSystemWallpaper(Bitmap bitmap) { + if (bitmap == null) { + return false; + } + try { + WallpaperManager manager = WallpaperManager.getInstance(mContext); + if (manager == null) { + return false; + } + manager.setBitmap(bitmap); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 设置系统桌面壁纸(主屏幕),通过图片文件绝对路径 + */ + public boolean setSystemWallpaper(String filePath) { + if (filePath == null || filePath.isEmpty()) { + return false; + } + Bitmap bitmap = BitmapFactory.decodeFile(filePath); + if (bitmap == null) { + return false; + } + boolean result = setSystemWallpaper(bitmap); + bitmap.recycle(); + return result; + } + + /** + * 设置系统锁屏壁纸(Android N 及以上支持,低版本回退到桌面壁纸) + */ + public boolean setSystemLockWallpaper(int resId) { + try { + WallpaperManager manager = WallpaperManager.getInstance(mContext); + if (manager == null) { + return false; + } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + manager.setResource(resId, WallpaperManager.FLAG_LOCK); + } else { + manager.setResource(resId); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 设置系统锁屏壁纸(Android N 及以上支持),通过 Bitmap + */ + public boolean setSystemLockWallpaper(Bitmap bitmap) { + if (bitmap == null) { + return false; + } + try { + WallpaperManager manager = WallpaperManager.getInstance(mContext); + if (manager == null) { + return false; + } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + manager.setBitmap(bitmap, null, true, WallpaperManager.FLAG_SYSTEM | WallpaperManager.FLAG_LOCK); + } else { + manager.setBitmap(bitmap); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 同时设置系统桌面与锁屏壁纸(Android N 及以上支持) + */ + public boolean setSystemWallpaperBoth(int resId) { + try { + WallpaperManager manager = WallpaperManager.getInstance(mContext); + if (manager == null) { + return false; + } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + // 使用按位或组合标志位 + int flags = WallpaperManager.FLAG_SYSTEM | WallpaperManager.FLAG_LOCK; + manager.setResource(resId, flags); + } else { + manager.setResource(resId); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + Log.e(TAG, "setSystemWallpaperBoth: " + e.getMessage()); + return false; + } + } + public void getLauncherClassName(String pkg) { } @@ -1300,7 +1425,7 @@ public class JgyUtils { mContext.startForegroundService(new Intent(mContext, MainService.class)); // Log.e(TAG, "setDefault: startServices time = " + (System.currentTimeMillis() - time) + "ms"); } else { - mContext.startService(new Intent(mContext, MainService.class)); + mContext.startService(new Intent(mContext, MainService.class)); } // } } diff --git a/app/src/main/res/drawable-nodpi/mine_wallpaper.png b/app/src/main/res/drawable-nodpi/mine_wallpaper.png new file mode 100644 index 0000000..3902130 Binary files /dev/null and b/app/src/main/res/drawable-nodpi/mine_wallpaper.png differ diff --git a/app/src/main/res/layout/activity_activation.xml b/app/src/main/res/layout/activity_activation.xml index e7d053d..497c295 100644 --- a/app/src/main/res/layout/activity_activation.xml +++ b/app/src/main/res/layout/activity_activation.xml @@ -14,7 +14,7 @@ + android:background="@drawable/img_home_bg_0"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_home.xml b/app/src/main/res/layout/activity_home.xml index a6dbd1d..979cdc9 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/mine_wallpaper" + android:background="@drawable/img_home_bg_0" android:orientation="vertical"> + android:background="@drawable/img_home_bg_0"> + android:background="@drawable/img_home_bg_0"> 80dp 24dp - 1px - 10px - 100px - 1000px - 1001px - 1002px - 1003px - 1004px - 1005px - 1006px - 1007px - 1008px - 1009px - 101px - 1010px - 1011px - 1012px - 1013px - 1014px - 1015px - 1016px - 1017px - 1018px - 1019px - 102px - 1020px - 1021px - 1022px - 1023px - 1024px - 1025px - 1026px - 1027px - 1028px - 1029px - 103px - 1030px - 1031px - 1032px - 1033px - 1034px - 1035px - 1036px - 1037px - 1038px - 1039px - 104px - 1040px - 1041px - 1042px - 1043px - 1044px - 1045px - 1046px - 1047px - 1048px - 1049px - 105px - 1050px - 1051px - 1052px - 1053px - 1054px - 1055px - 1056px - 1057px - 1058px - 1059px - 106px - 1060px - 1061px - 1062px - 1063px - 1064px - 1065px - 1066px - 1067px - 1068px - 1069px - 107px - 1070px - 1071px - 1072px - 1073px - 1074px - 1075px - 1076px - 1077px - 1078px - 1079px - 108px - 1080px - 1081px - 1082px - 1083px - 1084px - 1085px - 1086px - 1087px - 1088px - 1089px - 109px - 1090px - 1091px - 1092px - 1093px - 1094px - 1095px - 1096px - 1097px - 1098px - 1099px - 11px - 110px - 1100px - 1101px - 1102px - 1103px - 1104px - 1105px - 1106px - 1107px - 1108px - 1109px - 111px - 1110px - 1111px - 1112px - 1113px - 1114px - 1115px - 1116px - 1117px - 1118px - 1119px - 112px - 1120px - 1121px - 1122px - 1123px - 1124px - 1125px - 1126px - 1127px - 1128px - 1129px - 113px - 1130px - 1131px - 1132px - 1133px - 1134px - 1135px - 1136px - 1137px - 1138px - 1139px - 114px - 1140px - 1141px - 1142px - 1143px - 1144px - 1145px - 1146px - 1147px - 1148px - 1149px - 115px - 1150px - 1151px - 1152px - 1153px - 1154px - 1155px - 1156px - 1157px - 1158px - 1159px - 116px - 1160px - 1161px - 1162px - 1163px - 1164px - 1165px - 1166px - 1167px - 1168px - 1169px - 117px - 1170px - 1171px - 1172px - 1173px - 1174px - 1175px - 1176px - 1177px - 1178px - 1179px - 118px - 1180px - 1181px - 1182px - 1183px - 1184px - 1185px - 1186px - 1187px - 1188px - 1189px - 119px - 1190px - 1191px - 1192px - 1193px - 1194px - 1195px - 1196px - 1197px - 1198px - 1199px - 12px - 120px - 1200px - 121px - 122px - 123px - 124px - 125px - 126px - 127px - 128px - 129px - 13px - 130px - 131px - 132px - 133px - 134px - 135px - 136px - 137px - 138px - 139px - 14px - 140px - 141px - 142px - 143px - 144px - 145px - 146px - 147px - 148px - 149px - 15px - 150px - 151px - 152px - 153px - 154px - 155px - 156px - 157px - 158px - 159px - 16px - 160px - 161px - 162px - 163px - 164px - 165px - 166px - 167px - 168px - 169px - 17px - 170px - 171px - 172px - 173px - 174px - 175px - 176px - 177px - 178px - 179px - 18px - 180px - 181px - 182px - 183px - 184px - 185px - 186px - 187px - 188px - 189px - 19px - 190px - 191px - 192px - 193px - 194px - 195px - 196px - 197px - 198px - 199px - 2px - 20px - 200px - 201px - 202px - 203px - 204px - 205px - 206px - 207px - 208px - 209px - 21px - 210px - 211px - 212px - 213px - 214px - 215px - 216px - 217px - 218px - 219px - 22px - 220px - 221px - 222px - 223px - 224px - 225px - 226px - 227px - 228px - 229px - 23px - 230px - 231px - 232px - 233px - 234px - 235px - 236px - 237px - 238px - 239px - 24px - 240px - 241px - 242px - 243px - 244px - 245px - 246px - 247px - 248px - 249px - 25px - 250px - 251px - 252px - 253px - 254px - 255px - 256px - 257px - 258px - 259px - 26px - 260px - 261px - 262px - 263px - 264px - 265px - 266px - 267px - 268px - 269px - 27px - 270px - 271px - 272px - 273px - 274px - 275px - 276px - 277px - 278px - 279px - 28px - 280px - 281px - 282px - 283px - 284px - 285px - 286px - 287px - 288px - 289px - 29px - 290px - 291px - 292px - 293px - 294px - 295px - 296px - 297px - 298px - 299px - 3px - 30px - 300px - 301px - 302px - 303px - 304px - 305px - 306px - 307px - 308px - 309px - 31px - 310px - 311px - 312px - 313px - 314px - 315px - 316px - 317px - 318px - 319px - 32px - 320px - 321px - 322px - 323px - 324px - 325px - 326px - 327px - 328px - 329px - 33px - 330px - 331px - 332px - 333px - 334px - 335px - 336px - 337px - 338px - 339px - 34px - 340px - 341px - 342px - 343px - 344px - 345px - 346px - 347px - 348px - 349px - 35px - 350px - 351px - 352px - 353px - 354px - 355px - 356px - 357px - 358px - 359px - 36px - 360px - 361px - 362px - 363px - 364px - 365px - 366px - 367px - 368px - 369px - 37px - 370px - 371px - 372px - 373px - 374px - 375px - 376px - 377px - 378px - 379px - 38px - 380px - 381px - 382px - 383px - 384px - 385px - 386px - 387px - 388px - 389px - 39px - 390px - 391px - 392px - 393px - 394px - 395px - 396px - 397px - 398px - 399px - 4px - 40px - 400px - 401px - 402px - 403px - 404px - 405px - 406px - 407px - 408px - 409px - 41px - 410px - 411px - 412px - 413px - 414px - 415px - 416px - 417px - 418px - 419px - 42px - 420px - 421px - 422px - 423px - 424px - 425px - 426px - 427px - 428px - 429px - 43px - 430px - 431px - 432px - 433px - 434px - 435px - 436px - 437px - 438px - 439px - 44px - 440px - 441px - 442px - 443px - 444px - 445px - 446px - 447px - 448px - 449px - 45px - 450px - 451px - 452px - 453px - 454px - 455px - 456px - 457px - 458px - 459px - 46px - 460px - 461px - 462px - 463px - 464px - 465px - 466px - 467px - 468px - 469px - 47px - 470px - 471px - 472px - 473px - 474px - 475px - 476px - 477px - 478px - 479px - 48px - 480px - 481px - 482px - 483px - 484px - 485px - 486px - 487px - 488px - 489px - 49px - 490px - 491px - 492px - 493px - 494px - 495px - 496px - 497px - 498px - 499px - 5px - 50px - 500px - 501px - 502px - 503px - 504px - 505px - 506px - 507px - 508px - 509px - 51px - 510px - 511px - 512px - 513px - 514px - 515px - 516px - 517px - 518px - 519px - 52px - 520px - 521px - 522px - 523px - 524px - 525px - 526px - 527px - 528px - 529px - 53px - 530px - 531px - 532px - 533px - 534px - 535px - 536px - 537px - 538px - 539px - 54px - 540px - 541px - 542px - 543px - 544px - 545px - 546px - 547px - 548px - 549px - 55px - 550px - 551px - 552px - 553px - 554px - 555px - 556px - 557px - 558px - 559px - 56px - 560px - 561px - 562px - 563px - 564px - 565px - 566px - 567px - 568px - 569px - 57px - 570px - 571px - 572px - 573px - 574px - 575px - 576px - 577px - 578px - 579px - 58px - 580px - 581px - 582px - 583px - 584px - 585px - 586px - 587px - 588px - 589px - 59px - 590px - 591px - 592px - 593px - 594px - 595px - 596px - 597px - 598px - 599px - 6px - 60px - 600px - 601px - 602px - 603px - 604px - 605px - 606px - 607px - 608px - 609px - 61px - 610px - 611px - 612px - 613px - 614px - 615px - 616px - 617px - 618px - 619px - 62px - 620px - 621px - 622px - 623px - 624px - 625px - 626px - 627px - 628px - 629px - 63px - 630px - 631px - 632px - 633px - 634px - 635px - 636px - 637px - 638px - 639px - 64px - 640px - 641px - 642px - 643px - 644px - 645px - 646px - 647px - 648px - 649px - 65px - 650px - 651px - 652px - 653px - 654px - 655px - 656px - 657px - 658px - 659px - 66px - 660px - 661px - 662px - 663px - 664px - 665px - 666px - 667px - 668px - 669px - 67px - 670px - 671px - 672px - 673px - 674px - 675px - 676px - 677px - 678px - 679px - 68px - 680px - 681px - 682px - 683px - 684px - 685px - 686px - 687px - 688px - 689px - 69px - 690px - 691px - 692px - 693px - 694px - 695px - 696px - 697px - 698px - 699px - 7px - 70px - 700px - 701px - 702px - 703px - 704px - 705px - 706px - 707px - 708px - 709px - 71px - 710px - 711px - 712px - 713px - 714px - 715px - 716px - 717px - 718px - 719px - 72px - 720px - 721px - 722px - 723px - 724px - 725px - 726px - 727px - 728px - 729px - 73px - 730px - 731px - 732px - 733px - 734px - 735px - 736px - 737px - 738px - 739px - 74px - 740px - 741px - 742px - 743px - 744px - 745px - 746px - 747px - 748px - 749px - 75px - 750px - 751px - 752px - 753px - 754px - 755px - 756px - 757px - 758px - 759px - 76px - 760px - 761px - 762px - 763px - 764px - 765px - 766px - 767px - 768px - 769px - 77px - 770px - 771px - 772px - 773px - 774px - 775px - 776px - 777px - 778px - 779px - 78px - 780px - 781px - 782px - 783px - 784px - 785px - 786px - 787px - 788px - 789px - 79px - 790px - 791px - 792px - 793px - 794px - 795px - 796px - 797px - 798px - 799px - 8px - 80px - 800px - 801px - 802px - 803px - 804px - 805px - 806px - 807px - 808px - 809px - 81px - 810px - 811px - 812px - 813px - 814px - 815px - 816px - 817px - 818px - 819px - 82px - 820px - 821px - 822px - 823px - 824px - 825px - 826px - 827px - 828px - 829px - 83px - 830px - 831px - 832px - 833px - 834px - 835px - 836px - 837px - 838px - 839px - 84px - 840px - 841px - 842px - 843px - 844px - 845px - 846px - 847px - 848px - 849px - 85px - 850px - 851px - 852px - 853px - 854px - 855px - 856px - 857px - 858px - 859px - 86px - 860px - 861px - 862px - 863px - 864px - 865px - 866px - 867px - 868px - 869px - 87px - 870px - 871px - 872px - 873px - 874px - 875px - 876px - 877px - 878px - 879px - 88px - 880px - 881px - 882px - 883px - 884px - 885px - 886px - 887px - 888px - 889px - 89px - 890px - 891px - 892px - 893px - 894px - 895px - 896px - 897px - 898px - 899px - 9px - 90px - 900px - 901px - 902px - 903px - 904px - 905px - 906px - 907px - 908px - 909px - 91px - 910px - 911px - 912px - 913px - 914px - 915px - 916px - 917px - 918px - 919px - 92px - 920px - 921px - 922px - 923px - 924px - 925px - 926px - 927px - 928px - 929px - 93px - 930px - 931px - 932px - 933px - 934px - 935px - 936px - 937px - 938px - 939px - 94px - 940px - 941px - 942px - 943px - 944px - 945px - 946px - 947px - 948px - 949px - 95px - 950px - 951px - 952px - 953px - 954px - 955px - 956px - 957px - 958px - 959px - 96px - 960px - 961px - 962px - 963px - 964px - 965px - 966px - 967px - 968px - 969px - 97px - 970px - 971px - 972px - 973px - 974px - 975px - 976px - 977px - 978px - 979px - 98px - 980px - 981px - 982px - 983px - 984px - 985px - 986px - 987px - 988px - 989px - 99px - 990px - 991px - 992px - 993px - 994px - 995px - 996px - 997px - 998px - 999px - 1px - 10px - 100px - 1000px - 1001px - 1002px - 1003px - 1004px - 1005px - 1006px - 1007px - 1008px - 1009px - 101px - 1010px - 1011px - 1012px - 1013px - 1014px - 1015px - 1016px - 1017px - 1018px - 1019px - 102px - 1020px - 1021px - 1022px - 1023px - 1024px - 1025px - 1026px - 1027px - 1028px - 1029px - 103px - 1030px - 1031px - 1032px - 1033px - 1034px - 1035px - 1036px - 1037px - 1038px - 1039px - 104px - 1040px - 1041px - 1042px - 1043px - 1044px - 1045px - 1046px - 1047px - 1048px - 1049px - 105px - 1050px - 1051px - 1052px - 1053px - 1054px - 1055px - 1056px - 1057px - 1058px - 1059px - 106px - 1060px - 1061px - 1062px - 1063px - 1064px - 1065px - 1066px - 1067px - 1068px - 1069px - 107px - 1070px - 1071px - 1072px - 1073px - 1074px - 1075px - 1076px - 1077px - 1078px - 1079px - 108px - 1080px - 1081px - 1082px - 1083px - 1084px - 1085px - 1086px - 1087px - 1088px - 1089px - 109px - 1090px - 1091px - 1092px - 1093px - 1094px - 1095px - 1096px - 1097px - 1098px - 1099px - 11px - 110px - 1100px - 1101px - 1102px - 1103px - 1104px - 1105px - 1106px - 1107px - 1108px - 1109px - 111px - 1110px - 1111px - 1112px - 1113px - 1114px - 1115px - 1116px - 1117px - 1118px - 1119px - 112px - 1120px - 1121px - 1122px - 1123px - 1124px - 1125px - 1126px - 1127px - 1128px - 1129px - 113px - 1130px - 1131px - 1132px - 1133px - 1134px - 1135px - 1136px - 1137px - 1138px - 1139px - 114px - 1140px - 1141px - 1142px - 1143px - 1144px - 1145px - 1146px - 1147px - 1148px - 1149px - 115px - 1150px - 1151px - 1152px - 1153px - 1154px - 1155px - 1156px - 1157px - 1158px - 1159px - 116px - 1160px - 1161px - 1162px - 1163px - 1164px - 1165px - 1166px - 1167px - 1168px - 1169px - 117px - 1170px - 1171px - 1172px - 1173px - 1174px - 1175px - 1176px - 1177px - 1178px - 1179px - 118px - 1180px - 1181px - 1182px - 1183px - 1184px - 1185px - 1186px - 1187px - 1188px - 1189px - 119px - 1190px - 1191px - 1192px - 1193px - 1194px - 1195px - 1196px - 1197px - 1198px - 1199px - 12px - 120px - 1200px - 1201px - 1202px - 1203px - 1204px - 1205px - 1206px - 1207px - 1208px - 1209px - 121px - 1210px - 1211px - 1212px - 1213px - 1214px - 1215px - 1216px - 1217px - 1218px - 1219px - 122px - 1220px - 1221px - 1222px - 1223px - 1224px - 1225px - 1226px - 1227px - 1228px - 1229px - 123px - 1230px - 1231px - 1232px - 1233px - 1234px - 1235px - 1236px - 1237px - 1238px - 1239px - 124px - 1240px - 1241px - 1242px - 1243px - 1244px - 1245px - 1246px - 1247px - 1248px - 1249px - 125px - 1250px - 1251px - 1252px - 1253px - 1254px - 1255px - 1256px - 1257px - 1258px - 1259px - 126px - 1260px - 1261px - 1262px - 1263px - 1264px - 1265px - 1266px - 1267px - 1268px - 1269px - 127px - 1270px - 1271px - 1272px - 1273px - 1274px - 1275px - 1276px - 1277px - 1278px - 1279px - 128px - 1280px - 1281px - 1282px - 1283px - 1284px - 1285px - 1286px - 1287px - 1288px - 1289px - 129px - 1290px - 1291px - 1292px - 1293px - 1294px - 1295px - 1296px - 1297px - 1298px - 1299px - 13px - 130px - 1300px - 1301px - 1302px - 1303px - 1304px - 1305px - 1306px - 1307px - 1308px - 1309px - 131px - 1310px - 1311px - 1312px - 1313px - 1314px - 1315px - 1316px - 1317px - 1318px - 1319px - 132px - 1320px - 1321px - 1322px - 1323px - 1324px - 1325px - 1326px - 1327px - 1328px - 1329px - 133px - 1330px - 1331px - 1332px - 1333px - 1334px - 1335px - 1336px - 1337px - 1338px - 1339px - 134px - 1340px - 1341px - 1342px - 1343px - 1344px - 1345px - 1346px - 1347px - 1348px - 1349px - 135px - 1350px - 1351px - 1352px - 1353px - 1354px - 1355px - 1356px - 1357px - 1358px - 1359px - 136px - 1360px - 1361px - 1362px - 1363px - 1364px - 1365px - 1366px - 1367px - 1368px - 1369px - 137px - 1370px - 1371px - 1372px - 1373px - 1374px - 1375px - 1376px - 1377px - 1378px - 1379px - 138px - 1380px - 1381px - 1382px - 1383px - 1384px - 1385px - 1386px - 1387px - 1388px - 1389px - 139px - 1390px - 1391px - 1392px - 1393px - 1394px - 1395px - 1396px - 1397px - 1398px - 1399px - 14px - 140px - 1400px - 1401px - 1402px - 1403px - 1404px - 1405px - 1406px - 1407px - 1408px - 1409px - 141px - 1410px - 1411px - 1412px - 1413px - 1414px - 1415px - 1416px - 1417px - 1418px - 1419px - 142px - 1420px - 1421px - 1422px - 1423px - 1424px - 1425px - 1426px - 1427px - 1428px - 1429px - 143px - 1430px - 1431px - 1432px - 1433px - 1434px - 1435px - 1436px - 1437px - 1438px - 1439px - 144px - 1440px - 1441px - 1442px - 1443px - 1444px - 1445px - 1446px - 1447px - 1448px - 1449px - 145px - 1450px - 1451px - 1452px - 1453px - 1454px - 1455px - 1456px - 1457px - 1458px - 1459px - 146px - 1460px - 1461px - 1462px - 1463px - 1464px - 1465px - 1466px - 1467px - 1468px - 1469px - 147px - 1470px - 1471px - 1472px - 1473px - 1474px - 1475px - 1476px - 1477px - 1478px - 1479px - 148px - 1480px - 1481px - 1482px - 1483px - 1484px - 1485px - 1486px - 1487px - 1488px - 1489px - 149px - 1490px - 1491px - 1492px - 1493px - 1494px - 1495px - 1496px - 1497px - 1498px - 1499px - 15px - 150px - 1500px - 1501px - 1502px - 1503px - 1504px - 1505px - 1506px - 1507px - 1508px - 1509px - 151px - 1510px - 1511px - 1512px - 1513px - 1514px - 1515px - 1516px - 1517px - 1518px - 1519px - 152px - 1520px - 1521px - 1522px - 1523px - 1524px - 1525px - 1526px - 1527px - 1528px - 1529px - 153px - 1530px - 1531px - 1532px - 1533px - 1534px - 1535px - 1536px - 1537px - 1538px - 1539px - 154px - 1540px - 1541px - 1542px - 1543px - 1544px - 1545px - 1546px - 1547px - 1548px - 1549px - 155px - 1550px - 1551px - 1552px - 1553px - 1554px - 1555px - 1556px - 1557px - 1558px - 1559px - 156px - 1560px - 1561px - 1562px - 1563px - 1564px - 1565px - 1566px - 1567px - 1568px - 1569px - 157px - 1570px - 1571px - 1572px - 1573px - 1574px - 1575px - 1576px - 1577px - 1578px - 1579px - 158px - 1580px - 1581px - 1582px - 1583px - 1584px - 1585px - 1586px - 1587px - 1588px - 1589px - 159px - 1590px - 1591px - 1592px - 1593px - 1594px - 1595px - 1596px - 1597px - 1598px - 1599px - 16px - 160px - 1600px - 1601px - 1602px - 1603px - 1604px - 1605px - 1606px - 1607px - 1608px - 1609px - 161px - 1610px - 1611px - 1612px - 1613px - 1614px - 1615px - 1616px - 1617px - 1618px - 1619px - 162px - 1620px - 1621px - 1622px - 1623px - 1624px - 1625px - 1626px - 1627px - 1628px - 1629px - 163px - 1630px - 1631px - 1632px - 1633px - 1634px - 1635px - 1636px - 1637px - 1638px - 1639px - 164px - 1640px - 1641px - 1642px - 1643px - 1644px - 1645px - 1646px - 1647px - 1648px - 1649px - 165px - 1650px - 1651px - 1652px - 1653px - 1654px - 1655px - 1656px - 1657px - 1658px - 1659px - 166px - 1660px - 1661px - 1662px - 1663px - 1664px - 1665px - 1666px - 1667px - 1668px - 1669px - 167px - 1670px - 1671px - 1672px - 1673px - 1674px - 1675px - 1676px - 1677px - 1678px - 1679px - 168px - 1680px - 1681px - 1682px - 1683px - 1684px - 1685px - 1686px - 1687px - 1688px - 1689px - 169px - 1690px - 1691px - 1692px - 1693px - 1694px - 1695px - 1696px - 1697px - 1698px - 1699px - 17px - 170px - 1700px - 1701px - 1702px - 1703px - 1704px - 1705px - 1706px - 1707px - 1708px - 1709px - 171px - 1710px - 1711px - 1712px - 1713px - 1714px - 1715px - 1716px - 1717px - 1718px - 1719px - 172px - 1720px - 1721px - 1722px - 1723px - 1724px - 1725px - 1726px - 1727px - 1728px - 1729px - 173px - 1730px - 1731px - 1732px - 1733px - 1734px - 1735px - 1736px - 1737px - 1738px - 1739px - 174px - 1740px - 1741px - 1742px - 1743px - 1744px - 1745px - 1746px - 1747px - 1748px - 1749px - 175px - 1750px - 1751px - 1752px - 1753px - 1754px - 1755px - 1756px - 1757px - 1758px - 1759px - 176px - 1760px - 1761px - 1762px - 1763px - 1764px - 1765px - 1766px - 1767px - 1768px - 1769px - 177px - 1770px - 1771px - 1772px - 1773px - 1774px - 1775px - 1776px - 1777px - 1778px - 1779px - 178px - 1780px - 1781px - 1782px - 1783px - 1784px - 1785px - 1786px - 1787px - 1788px - 1789px - 179px - 1790px - 1791px - 1792px - 1793px - 1794px - 1795px - 1796px - 1797px - 1798px - 1799px - 18px - 180px - 1800px - 1801px - 1802px - 1803px - 1804px - 1805px - 1806px - 1807px - 1808px - 1809px - 181px - 1810px - 1811px - 1812px - 1813px - 1814px - 1815px - 1816px - 1817px - 1818px - 1819px - 182px - 1820px - 1821px - 1822px - 1823px - 1824px - 1825px - 1826px - 1827px - 1828px - 1829px - 183px - 1830px - 1831px - 1832px - 1833px - 1834px - 1835px - 1836px - 1837px - 1838px - 1839px - 184px - 1840px - 1841px - 1842px - 1843px - 1844px - 1845px - 1846px - 1847px - 1848px - 1849px - 185px - 1850px - 1851px - 1852px - 1853px - 1854px - 1855px - 1856px - 1857px - 1858px - 1859px - 186px - 1860px - 1861px - 1862px - 1863px - 1864px - 1865px - 1866px - 1867px - 1868px - 1869px - 187px - 1870px - 1871px - 1872px - 1873px - 1874px - 1875px - 1876px - 1877px - 1878px - 1879px - 188px - 1880px - 1881px - 1882px - 1883px - 1884px - 1885px - 1886px - 1887px - 1888px - 1889px - 189px - 1890px - 1891px - 1892px - 1893px - 1894px - 1895px - 1896px - 1897px - 1898px - 1899px - 19px - 190px - 1900px - 1901px - 1902px - 1903px - 1904px - 1905px - 1906px - 1907px - 1908px - 1909px - 191px - 1910px - 1911px - 1912px - 1913px - 1914px - 1915px - 1916px - 1917px - 1918px - 1919px - 192px - 1920px - 193px - 194px - 195px - 196px - 197px - 198px - 199px - 2px - 20px - 200px - 201px - 202px - 203px - 204px - 205px - 206px - 207px - 208px - 209px - 21px - 210px - 211px - 212px - 213px - 214px - 215px - 216px - 217px - 218px - 219px - 22px - 220px - 221px - 222px - 223px - 224px - 225px - 226px - 227px - 228px - 229px - 23px - 230px - 231px - 232px - 233px - 234px - 235px - 236px - 237px - 238px - 239px - 24px - 240px - 241px - 242px - 243px - 244px - 245px - 246px - 247px - 248px - 249px - 25px - 250px - 251px - 252px - 253px - 254px - 255px - 256px - 257px - 258px - 259px - 26px - 260px - 261px - 262px - 263px - 264px - 265px - 266px - 267px - 268px - 269px - 27px - 270px - 271px - 272px - 273px - 274px - 275px - 276px - 277px - 278px - 279px - 28px - 280px - 281px - 282px - 283px - 284px - 285px - 286px - 287px - 288px - 289px - 29px - 290px - 291px - 292px - 293px - 294px - 295px - 296px - 297px - 298px - 299px - 3px - 30px - 300px - 301px - 302px - 303px - 304px - 305px - 306px - 307px - 308px - 309px - 31px - 310px - 311px - 312px - 313px - 314px - 315px - 316px - 317px - 318px - 319px - 32px - 320px - 321px - 322px - 323px - 324px - 325px - 326px - 327px - 328px - 329px - 33px - 330px - 331px - 332px - 333px - 334px - 335px - 336px - 337px - 338px - 339px - 34px - 340px - 341px - 342px - 343px - 344px - 345px - 346px - 347px - 348px - 349px - 35px - 350px - 351px - 352px - 353px - 354px - 355px - 356px - 357px - 358px - 359px - 36px - 360px - 361px - 362px - 363px - 364px - 365px - 366px - 367px - 368px - 369px - 37px - 370px - 371px - 372px - 373px - 374px - 375px - 376px - 377px - 378px - 379px - 38px - 380px - 381px - 382px - 383px - 384px - 385px - 386px - 387px - 388px - 389px - 39px - 390px - 391px - 392px - 393px - 394px - 395px - 396px - 397px - 398px - 399px - 4px - 40px - 400px - 401px - 402px - 403px - 404px - 405px - 406px - 407px - 408px - 409px - 41px - 410px - 411px - 412px - 413px - 414px - 415px - 416px - 417px - 418px - 419px - 42px - 420px - 421px - 422px - 423px - 424px - 425px - 426px - 427px - 428px - 429px - 43px - 430px - 431px - 432px - 433px - 434px - 435px - 436px - 437px - 438px - 439px - 44px - 440px - 441px - 442px - 443px - 444px - 445px - 446px - 447px - 448px - 449px - 45px - 450px - 451px - 452px - 453px - 454px - 455px - 456px - 457px - 458px - 459px - 46px - 460px - 461px - 462px - 463px - 464px - 465px - 466px - 467px - 468px - 469px - 47px - 470px - 471px - 472px - 473px - 474px - 475px - 476px - 477px - 478px - 479px - 48px - 480px - 481px - 482px - 483px - 484px - 485px - 486px - 487px - 488px - 489px - 49px - 490px - 491px - 492px - 493px - 494px - 495px - 496px - 497px - 498px - 499px - 5px - 50px - 500px - 501px - 502px - 503px - 504px - 505px - 506px - 507px - 508px - 509px - 51px - 510px - 511px - 512px - 513px - 514px - 515px - 516px - 517px - 518px - 519px - 52px - 520px - 521px - 522px - 523px - 524px - 525px - 526px - 527px - 528px - 529px - 53px - 530px - 531px - 532px - 533px - 534px - 535px - 536px - 537px - 538px - 539px - 54px - 540px - 541px - 542px - 543px - 544px - 545px - 546px - 547px - 548px - 549px - 55px - 550px - 551px - 552px - 553px - 554px - 555px - 556px - 557px - 558px - 559px - 56px - 560px - 561px - 562px - 563px - 564px - 565px - 566px - 567px - 568px - 569px - 57px - 570px - 571px - 572px - 573px - 574px - 575px - 576px - 577px - 578px - 579px - 58px - 580px - 581px - 582px - 583px - 584px - 585px - 586px - 587px - 588px - 589px - 59px - 590px - 591px - 592px - 593px - 594px - 595px - 596px - 597px - 598px - 599px - 6px - 60px - 600px - 601px - 602px - 603px - 604px - 605px - 606px - 607px - 608px - 609px - 61px - 610px - 611px - 612px - 613px - 614px - 615px - 616px - 617px - 618px - 619px - 62px - 620px - 621px - 622px - 623px - 624px - 625px - 626px - 627px - 628px - 629px - 63px - 630px - 631px - 632px - 633px - 634px - 635px - 636px - 637px - 638px - 639px - 64px - 640px - 641px - 642px - 643px - 644px - 645px - 646px - 647px - 648px - 649px - 65px - 650px - 651px - 652px - 653px - 654px - 655px - 656px - 657px - 658px - 659px - 66px - 660px - 661px - 662px - 663px - 664px - 665px - 666px - 667px - 668px - 669px - 67px - 670px - 671px - 672px - 673px - 674px - 675px - 676px - 677px - 678px - 679px - 68px - 680px - 681px - 682px - 683px - 684px - 685px - 686px - 687px - 688px - 689px - 69px - 690px - 691px - 692px - 693px - 694px - 695px - 696px - 697px - 698px - 699px - 7px - 70px - 700px - 701px - 702px - 703px - 704px - 705px - 706px - 707px - 708px - 709px - 71px - 710px - 711px - 712px - 713px - 714px - 715px - 716px - 717px - 718px - 719px - 72px - 720px - 721px - 722px - 723px - 724px - 725px - 726px - 727px - 728px - 729px - 73px - 730px - 731px - 732px - 733px - 734px - 735px - 736px - 737px - 738px - 739px - 74px - 740px - 741px - 742px - 743px - 744px - 745px - 746px - 747px - 748px - 749px - 75px - 750px - 751px - 752px - 753px - 754px - 755px - 756px - 757px - 758px - 759px - 76px - 760px - 761px - 762px - 763px - 764px - 765px - 766px - 767px - 768px - 769px - 77px - 770px - 771px - 772px - 773px - 774px - 775px - 776px - 777px - 778px - 779px - 78px - 780px - 781px - 782px - 783px - 784px - 785px - 786px - 787px - 788px - 789px - 79px - 790px - 791px - 792px - 793px - 794px - 795px - 796px - 797px - 798px - 799px - 8px - 80px - 800px - 801px - 802px - 803px - 804px - 805px - 806px - 807px - 808px - 809px - 81px - 810px - 811px - 812px - 813px - 814px - 815px - 816px - 817px - 818px - 819px - 82px - 820px - 821px - 822px - 823px - 824px - 825px - 826px - 827px - 828px - 829px - 83px - 830px - 831px - 832px - 833px - 834px - 835px - 836px - 837px - 838px - 839px - 84px - 840px - 841px - 842px - 843px - 844px - 845px - 846px - 847px - 848px - 849px - 85px - 850px - 851px - 852px - 853px - 854px - 855px - 856px - 857px - 858px - 859px - 86px - 860px - 861px - 862px - 863px - 864px - 865px - 866px - 867px - 868px - 869px - 87px - 870px - 871px - 872px - 873px - 874px - 875px - 876px - 877px - 878px - 879px - 88px - 880px - 881px - 882px - 883px - 884px - 885px - 886px - 887px - 888px - 889px - 89px - 890px - 891px - 892px - 893px - 894px - 895px - 896px - 897px - 898px - 899px - 9px - 90px - 900px - 901px - 902px - 903px - 904px - 905px - 906px - 907px - 908px - 909px - 91px - 910px - 911px - 912px - 913px - 914px - 915px - 916px - 917px - 918px - 919px - 92px - 920px - 921px - 922px - 923px - 924px - 925px - 926px - 927px - 928px - 929px - 93px - 930px - 931px - 932px - 933px - 934px - 935px - 936px - 937px - 938px - 939px - 94px - 940px - 941px - 942px - 943px - 944px - 945px - 946px - 947px - 948px - 949px - 95px - 950px - 951px - 952px - 953px - 954px - 955px - 956px - 957px - 958px - 959px - 96px - 960px - 961px - 962px - 963px - 964px - 965px - 966px - 967px - 968px - 969px - 97px - 970px - 971px - 972px - 973px - 974px - 975px - 976px - 977px - 978px - 979px - 98px - 980px - 981px - 982px - 983px - 984px - 985px - 986px - 987px - 988px - 989px - 99px - 990px - 991px - 992px - 993px - 994px - 995px - 996px - 997px - 998px - 999px - 36dp 48dp 8sp diff --git a/app/src/main/res/values/dimens_jxw.xml b/app/src/main/res/values/dimens_jxw.xml new file mode 100644 index 0000000..c233148 --- /dev/null +++ b/app/src/main/res/values/dimens_jxw.xml @@ -0,0 +1,3123 @@ + + + 1px + 10px + 100px + 1000px + 1001px + 1002px + 1003px + 1004px + 1005px + 1006px + 1007px + 1008px + 1009px + 101px + 1010px + 1011px + 1012px + 1013px + 1014px + 1015px + 1016px + 1017px + 1018px + 1019px + 102px + 1020px + 1021px + 1022px + 1023px + 1024px + 1025px + 1026px + 1027px + 1028px + 1029px + 103px + 1030px + 1031px + 1032px + 1033px + 1034px + 1035px + 1036px + 1037px + 1038px + 1039px + 104px + 1040px + 1041px + 1042px + 1043px + 1044px + 1045px + 1046px + 1047px + 1048px + 1049px + 105px + 1050px + 1051px + 1052px + 1053px + 1054px + 1055px + 1056px + 1057px + 1058px + 1059px + 106px + 1060px + 1061px + 1062px + 1063px + 1064px + 1065px + 1066px + 1067px + 1068px + 1069px + 107px + 1070px + 1071px + 1072px + 1073px + 1074px + 1075px + 1076px + 1077px + 1078px + 1079px + 108px + 1080px + 1081px + 1082px + 1083px + 1084px + 1085px + 1086px + 1087px + 1088px + 1089px + 109px + 1090px + 1091px + 1092px + 1093px + 1094px + 1095px + 1096px + 1097px + 1098px + 1099px + 11px + 110px + 1100px + 1101px + 1102px + 1103px + 1104px + 1105px + 1106px + 1107px + 1108px + 1109px + 111px + 1110px + 1111px + 1112px + 1113px + 1114px + 1115px + 1116px + 1117px + 1118px + 1119px + 112px + 1120px + 1121px + 1122px + 1123px + 1124px + 1125px + 1126px + 1127px + 1128px + 1129px + 113px + 1130px + 1131px + 1132px + 1133px + 1134px + 1135px + 1136px + 1137px + 1138px + 1139px + 114px + 1140px + 1141px + 1142px + 1143px + 1144px + 1145px + 1146px + 1147px + 1148px + 1149px + 115px + 1150px + 1151px + 1152px + 1153px + 1154px + 1155px + 1156px + 1157px + 1158px + 1159px + 116px + 1160px + 1161px + 1162px + 1163px + 1164px + 1165px + 1166px + 1167px + 1168px + 1169px + 117px + 1170px + 1171px + 1172px + 1173px + 1174px + 1175px + 1176px + 1177px + 1178px + 1179px + 118px + 1180px + 1181px + 1182px + 1183px + 1184px + 1185px + 1186px + 1187px + 1188px + 1189px + 119px + 1190px + 1191px + 1192px + 1193px + 1194px + 1195px + 1196px + 1197px + 1198px + 1199px + 12px + 120px + 1200px + 121px + 122px + 123px + 124px + 125px + 126px + 127px + 128px + 129px + 13px + 130px + 131px + 132px + 133px + 134px + 135px + 136px + 137px + 138px + 139px + 14px + 140px + 141px + 142px + 143px + 144px + 145px + 146px + 147px + 148px + 149px + 15px + 150px + 151px + 152px + 153px + 154px + 155px + 156px + 157px + 158px + 159px + 16px + 160px + 161px + 162px + 163px + 164px + 165px + 166px + 167px + 168px + 169px + 17px + 170px + 171px + 172px + 173px + 174px + 175px + 176px + 177px + 178px + 179px + 18px + 180px + 181px + 182px + 183px + 184px + 185px + 186px + 187px + 188px + 189px + 19px + 190px + 191px + 192px + 193px + 194px + 195px + 196px + 197px + 198px + 199px + 2px + 20px + 200px + 201px + 202px + 203px + 204px + 205px + 206px + 207px + 208px + 209px + 21px + 210px + 211px + 212px + 213px + 214px + 215px + 216px + 217px + 218px + 219px + 22px + 220px + 221px + 222px + 223px + 224px + 225px + 226px + 227px + 228px + 229px + 23px + 230px + 231px + 232px + 233px + 234px + 235px + 236px + 237px + 238px + 239px + 24px + 240px + 241px + 242px + 243px + 244px + 245px + 246px + 247px + 248px + 249px + 25px + 250px + 251px + 252px + 253px + 254px + 255px + 256px + 257px + 258px + 259px + 26px + 260px + 261px + 262px + 263px + 264px + 265px + 266px + 267px + 268px + 269px + 27px + 270px + 271px + 272px + 273px + 274px + 275px + 276px + 277px + 278px + 279px + 28px + 280px + 281px + 282px + 283px + 284px + 285px + 286px + 287px + 288px + 289px + 29px + 290px + 291px + 292px + 293px + 294px + 295px + 296px + 297px + 298px + 299px + 3px + 30px + 300px + 301px + 302px + 303px + 304px + 305px + 306px + 307px + 308px + 309px + 31px + 310px + 311px + 312px + 313px + 314px + 315px + 316px + 317px + 318px + 319px + 32px + 320px + 321px + 322px + 323px + 324px + 325px + 326px + 327px + 328px + 329px + 33px + 330px + 331px + 332px + 333px + 334px + 335px + 336px + 337px + 338px + 339px + 34px + 340px + 341px + 342px + 343px + 344px + 345px + 346px + 347px + 348px + 349px + 35px + 350px + 351px + 352px + 353px + 354px + 355px + 356px + 357px + 358px + 359px + 36px + 360px + 361px + 362px + 363px + 364px + 365px + 366px + 367px + 368px + 369px + 37px + 370px + 371px + 372px + 373px + 374px + 375px + 376px + 377px + 378px + 379px + 38px + 380px + 381px + 382px + 383px + 384px + 385px + 386px + 387px + 388px + 389px + 39px + 390px + 391px + 392px + 393px + 394px + 395px + 396px + 397px + 398px + 399px + 4px + 40px + 400px + 401px + 402px + 403px + 404px + 405px + 406px + 407px + 408px + 409px + 41px + 410px + 411px + 412px + 413px + 414px + 415px + 416px + 417px + 418px + 419px + 42px + 420px + 421px + 422px + 423px + 424px + 425px + 426px + 427px + 428px + 429px + 43px + 430px + 431px + 432px + 433px + 434px + 435px + 436px + 437px + 438px + 439px + 44px + 440px + 441px + 442px + 443px + 444px + 445px + 446px + 447px + 448px + 449px + 45px + 450px + 451px + 452px + 453px + 454px + 455px + 456px + 457px + 458px + 459px + 46px + 460px + 461px + 462px + 463px + 464px + 465px + 466px + 467px + 468px + 469px + 47px + 470px + 471px + 472px + 473px + 474px + 475px + 476px + 477px + 478px + 479px + 48px + 480px + 481px + 482px + 483px + 484px + 485px + 486px + 487px + 488px + 489px + 49px + 490px + 491px + 492px + 493px + 494px + 495px + 496px + 497px + 498px + 499px + 5px + 50px + 500px + 501px + 502px + 503px + 504px + 505px + 506px + 507px + 508px + 509px + 51px + 510px + 511px + 512px + 513px + 514px + 515px + 516px + 517px + 518px + 519px + 52px + 520px + 521px + 522px + 523px + 524px + 525px + 526px + 527px + 528px + 529px + 53px + 530px + 531px + 532px + 533px + 534px + 535px + 536px + 537px + 538px + 539px + 54px + 540px + 541px + 542px + 543px + 544px + 545px + 546px + 547px + 548px + 549px + 55px + 550px + 551px + 552px + 553px + 554px + 555px + 556px + 557px + 558px + 559px + 56px + 560px + 561px + 562px + 563px + 564px + 565px + 566px + 567px + 568px + 569px + 57px + 570px + 571px + 572px + 573px + 574px + 575px + 576px + 577px + 578px + 579px + 58px + 580px + 581px + 582px + 583px + 584px + 585px + 586px + 587px + 588px + 589px + 59px + 590px + 591px + 592px + 593px + 594px + 595px + 596px + 597px + 598px + 599px + 6px + 60px + 600px + 601px + 602px + 603px + 604px + 605px + 606px + 607px + 608px + 609px + 61px + 610px + 611px + 612px + 613px + 614px + 615px + 616px + 617px + 618px + 619px + 62px + 620px + 621px + 622px + 623px + 624px + 625px + 626px + 627px + 628px + 629px + 63px + 630px + 631px + 632px + 633px + 634px + 635px + 636px + 637px + 638px + 639px + 64px + 640px + 641px + 642px + 643px + 644px + 645px + 646px + 647px + 648px + 649px + 65px + 650px + 651px + 652px + 653px + 654px + 655px + 656px + 657px + 658px + 659px + 66px + 660px + 661px + 662px + 663px + 664px + 665px + 666px + 667px + 668px + 669px + 67px + 670px + 671px + 672px + 673px + 674px + 675px + 676px + 677px + 678px + 679px + 68px + 680px + 681px + 682px + 683px + 684px + 685px + 686px + 687px + 688px + 689px + 69px + 690px + 691px + 692px + 693px + 694px + 695px + 696px + 697px + 698px + 699px + 7px + 70px + 700px + 701px + 702px + 703px + 704px + 705px + 706px + 707px + 708px + 709px + 71px + 710px + 711px + 712px + 713px + 714px + 715px + 716px + 717px + 718px + 719px + 72px + 720px + 721px + 722px + 723px + 724px + 725px + 726px + 727px + 728px + 729px + 73px + 730px + 731px + 732px + 733px + 734px + 735px + 736px + 737px + 738px + 739px + 74px + 740px + 741px + 742px + 743px + 744px + 745px + 746px + 747px + 748px + 749px + 75px + 750px + 751px + 752px + 753px + 754px + 755px + 756px + 757px + 758px + 759px + 76px + 760px + 761px + 762px + 763px + 764px + 765px + 766px + 767px + 768px + 769px + 77px + 770px + 771px + 772px + 773px + 774px + 775px + 776px + 777px + 778px + 779px + 78px + 780px + 781px + 782px + 783px + 784px + 785px + 786px + 787px + 788px + 789px + 79px + 790px + 791px + 792px + 793px + 794px + 795px + 796px + 797px + 798px + 799px + 8px + 80px + 800px + 801px + 802px + 803px + 804px + 805px + 806px + 807px + 808px + 809px + 81px + 810px + 811px + 812px + 813px + 814px + 815px + 816px + 817px + 818px + 819px + 82px + 820px + 821px + 822px + 823px + 824px + 825px + 826px + 827px + 828px + 829px + 83px + 830px + 831px + 832px + 833px + 834px + 835px + 836px + 837px + 838px + 839px + 84px + 840px + 841px + 842px + 843px + 844px + 845px + 846px + 847px + 848px + 849px + 85px + 850px + 851px + 852px + 853px + 854px + 855px + 856px + 857px + 858px + 859px + 86px + 860px + 861px + 862px + 863px + 864px + 865px + 866px + 867px + 868px + 869px + 87px + 870px + 871px + 872px + 873px + 874px + 875px + 876px + 877px + 878px + 879px + 88px + 880px + 881px + 882px + 883px + 884px + 885px + 886px + 887px + 888px + 889px + 89px + 890px + 891px + 892px + 893px + 894px + 895px + 896px + 897px + 898px + 899px + 9px + 90px + 900px + 901px + 902px + 903px + 904px + 905px + 906px + 907px + 908px + 909px + 91px + 910px + 911px + 912px + 913px + 914px + 915px + 916px + 917px + 918px + 919px + 92px + 920px + 921px + 922px + 923px + 924px + 925px + 926px + 927px + 928px + 929px + 93px + 930px + 931px + 932px + 933px + 934px + 935px + 936px + 937px + 938px + 939px + 94px + 940px + 941px + 942px + 943px + 944px + 945px + 946px + 947px + 948px + 949px + 95px + 950px + 951px + 952px + 953px + 954px + 955px + 956px + 957px + 958px + 959px + 96px + 960px + 961px + 962px + 963px + 964px + 965px + 966px + 967px + 968px + 969px + 97px + 970px + 971px + 972px + 973px + 974px + 975px + 976px + 977px + 978px + 979px + 98px + 980px + 981px + 982px + 983px + 984px + 985px + 986px + 987px + 988px + 989px + 99px + 990px + 991px + 992px + 993px + 994px + 995px + 996px + 997px + 998px + 999px + 1px + 10px + 100px + 1000px + 1001px + 1002px + 1003px + 1004px + 1005px + 1006px + 1007px + 1008px + 1009px + 101px + 1010px + 1011px + 1012px + 1013px + 1014px + 1015px + 1016px + 1017px + 1018px + 1019px + 102px + 1020px + 1021px + 1022px + 1023px + 1024px + 1025px + 1026px + 1027px + 1028px + 1029px + 103px + 1030px + 1031px + 1032px + 1033px + 1034px + 1035px + 1036px + 1037px + 1038px + 1039px + 104px + 1040px + 1041px + 1042px + 1043px + 1044px + 1045px + 1046px + 1047px + 1048px + 1049px + 105px + 1050px + 1051px + 1052px + 1053px + 1054px + 1055px + 1056px + 1057px + 1058px + 1059px + 106px + 1060px + 1061px + 1062px + 1063px + 1064px + 1065px + 1066px + 1067px + 1068px + 1069px + 107px + 1070px + 1071px + 1072px + 1073px + 1074px + 1075px + 1076px + 1077px + 1078px + 1079px + 108px + 1080px + 1081px + 1082px + 1083px + 1084px + 1085px + 1086px + 1087px + 1088px + 1089px + 109px + 1090px + 1091px + 1092px + 1093px + 1094px + 1095px + 1096px + 1097px + 1098px + 1099px + 11px + 110px + 1100px + 1101px + 1102px + 1103px + 1104px + 1105px + 1106px + 1107px + 1108px + 1109px + 111px + 1110px + 1111px + 1112px + 1113px + 1114px + 1115px + 1116px + 1117px + 1118px + 1119px + 112px + 1120px + 1121px + 1122px + 1123px + 1124px + 1125px + 1126px + 1127px + 1128px + 1129px + 113px + 1130px + 1131px + 1132px + 1133px + 1134px + 1135px + 1136px + 1137px + 1138px + 1139px + 114px + 1140px + 1141px + 1142px + 1143px + 1144px + 1145px + 1146px + 1147px + 1148px + 1149px + 115px + 1150px + 1151px + 1152px + 1153px + 1154px + 1155px + 1156px + 1157px + 1158px + 1159px + 116px + 1160px + 1161px + 1162px + 1163px + 1164px + 1165px + 1166px + 1167px + 1168px + 1169px + 117px + 1170px + 1171px + 1172px + 1173px + 1174px + 1175px + 1176px + 1177px + 1178px + 1179px + 118px + 1180px + 1181px + 1182px + 1183px + 1184px + 1185px + 1186px + 1187px + 1188px + 1189px + 119px + 1190px + 1191px + 1192px + 1193px + 1194px + 1195px + 1196px + 1197px + 1198px + 1199px + 12px + 120px + 1200px + 1201px + 1202px + 1203px + 1204px + 1205px + 1206px + 1207px + 1208px + 1209px + 121px + 1210px + 1211px + 1212px + 1213px + 1214px + 1215px + 1216px + 1217px + 1218px + 1219px + 122px + 1220px + 1221px + 1222px + 1223px + 1224px + 1225px + 1226px + 1227px + 1228px + 1229px + 123px + 1230px + 1231px + 1232px + 1233px + 1234px + 1235px + 1236px + 1237px + 1238px + 1239px + 124px + 1240px + 1241px + 1242px + 1243px + 1244px + 1245px + 1246px + 1247px + 1248px + 1249px + 125px + 1250px + 1251px + 1252px + 1253px + 1254px + 1255px + 1256px + 1257px + 1258px + 1259px + 126px + 1260px + 1261px + 1262px + 1263px + 1264px + 1265px + 1266px + 1267px + 1268px + 1269px + 127px + 1270px + 1271px + 1272px + 1273px + 1274px + 1275px + 1276px + 1277px + 1278px + 1279px + 128px + 1280px + 1281px + 1282px + 1283px + 1284px + 1285px + 1286px + 1287px + 1288px + 1289px + 129px + 1290px + 1291px + 1292px + 1293px + 1294px + 1295px + 1296px + 1297px + 1298px + 1299px + 13px + 130px + 1300px + 1301px + 1302px + 1303px + 1304px + 1305px + 1306px + 1307px + 1308px + 1309px + 131px + 1310px + 1311px + 1312px + 1313px + 1314px + 1315px + 1316px + 1317px + 1318px + 1319px + 132px + 1320px + 1321px + 1322px + 1323px + 1324px + 1325px + 1326px + 1327px + 1328px + 1329px + 133px + 1330px + 1331px + 1332px + 1333px + 1334px + 1335px + 1336px + 1337px + 1338px + 1339px + 134px + 1340px + 1341px + 1342px + 1343px + 1344px + 1345px + 1346px + 1347px + 1348px + 1349px + 135px + 1350px + 1351px + 1352px + 1353px + 1354px + 1355px + 1356px + 1357px + 1358px + 1359px + 136px + 1360px + 1361px + 1362px + 1363px + 1364px + 1365px + 1366px + 1367px + 1368px + 1369px + 137px + 1370px + 1371px + 1372px + 1373px + 1374px + 1375px + 1376px + 1377px + 1378px + 1379px + 138px + 1380px + 1381px + 1382px + 1383px + 1384px + 1385px + 1386px + 1387px + 1388px + 1389px + 139px + 1390px + 1391px + 1392px + 1393px + 1394px + 1395px + 1396px + 1397px + 1398px + 1399px + 14px + 140px + 1400px + 1401px + 1402px + 1403px + 1404px + 1405px + 1406px + 1407px + 1408px + 1409px + 141px + 1410px + 1411px + 1412px + 1413px + 1414px + 1415px + 1416px + 1417px + 1418px + 1419px + 142px + 1420px + 1421px + 1422px + 1423px + 1424px + 1425px + 1426px + 1427px + 1428px + 1429px + 143px + 1430px + 1431px + 1432px + 1433px + 1434px + 1435px + 1436px + 1437px + 1438px + 1439px + 144px + 1440px + 1441px + 1442px + 1443px + 1444px + 1445px + 1446px + 1447px + 1448px + 1449px + 145px + 1450px + 1451px + 1452px + 1453px + 1454px + 1455px + 1456px + 1457px + 1458px + 1459px + 146px + 1460px + 1461px + 1462px + 1463px + 1464px + 1465px + 1466px + 1467px + 1468px + 1469px + 147px + 1470px + 1471px + 1472px + 1473px + 1474px + 1475px + 1476px + 1477px + 1478px + 1479px + 148px + 1480px + 1481px + 1482px + 1483px + 1484px + 1485px + 1486px + 1487px + 1488px + 1489px + 149px + 1490px + 1491px + 1492px + 1493px + 1494px + 1495px + 1496px + 1497px + 1498px + 1499px + 15px + 150px + 1500px + 1501px + 1502px + 1503px + 1504px + 1505px + 1506px + 1507px + 1508px + 1509px + 151px + 1510px + 1511px + 1512px + 1513px + 1514px + 1515px + 1516px + 1517px + 1518px + 1519px + 152px + 1520px + 1521px + 1522px + 1523px + 1524px + 1525px + 1526px + 1527px + 1528px + 1529px + 153px + 1530px + 1531px + 1532px + 1533px + 1534px + 1535px + 1536px + 1537px + 1538px + 1539px + 154px + 1540px + 1541px + 1542px + 1543px + 1544px + 1545px + 1546px + 1547px + 1548px + 1549px + 155px + 1550px + 1551px + 1552px + 1553px + 1554px + 1555px + 1556px + 1557px + 1558px + 1559px + 156px + 1560px + 1561px + 1562px + 1563px + 1564px + 1565px + 1566px + 1567px + 1568px + 1569px + 157px + 1570px + 1571px + 1572px + 1573px + 1574px + 1575px + 1576px + 1577px + 1578px + 1579px + 158px + 1580px + 1581px + 1582px + 1583px + 1584px + 1585px + 1586px + 1587px + 1588px + 1589px + 159px + 1590px + 1591px + 1592px + 1593px + 1594px + 1595px + 1596px + 1597px + 1598px + 1599px + 16px + 160px + 1600px + 1601px + 1602px + 1603px + 1604px + 1605px + 1606px + 1607px + 1608px + 1609px + 161px + 1610px + 1611px + 1612px + 1613px + 1614px + 1615px + 1616px + 1617px + 1618px + 1619px + 162px + 1620px + 1621px + 1622px + 1623px + 1624px + 1625px + 1626px + 1627px + 1628px + 1629px + 163px + 1630px + 1631px + 1632px + 1633px + 1634px + 1635px + 1636px + 1637px + 1638px + 1639px + 164px + 1640px + 1641px + 1642px + 1643px + 1644px + 1645px + 1646px + 1647px + 1648px + 1649px + 165px + 1650px + 1651px + 1652px + 1653px + 1654px + 1655px + 1656px + 1657px + 1658px + 1659px + 166px + 1660px + 1661px + 1662px + 1663px + 1664px + 1665px + 1666px + 1667px + 1668px + 1669px + 167px + 1670px + 1671px + 1672px + 1673px + 1674px + 1675px + 1676px + 1677px + 1678px + 1679px + 168px + 1680px + 1681px + 1682px + 1683px + 1684px + 1685px + 1686px + 1687px + 1688px + 1689px + 169px + 1690px + 1691px + 1692px + 1693px + 1694px + 1695px + 1696px + 1697px + 1698px + 1699px + 17px + 170px + 1700px + 1701px + 1702px + 1703px + 1704px + 1705px + 1706px + 1707px + 1708px + 1709px + 171px + 1710px + 1711px + 1712px + 1713px + 1714px + 1715px + 1716px + 1717px + 1718px + 1719px + 172px + 1720px + 1721px + 1722px + 1723px + 1724px + 1725px + 1726px + 1727px + 1728px + 1729px + 173px + 1730px + 1731px + 1732px + 1733px + 1734px + 1735px + 1736px + 1737px + 1738px + 1739px + 174px + 1740px + 1741px + 1742px + 1743px + 1744px + 1745px + 1746px + 1747px + 1748px + 1749px + 175px + 1750px + 1751px + 1752px + 1753px + 1754px + 1755px + 1756px + 1757px + 1758px + 1759px + 176px + 1760px + 1761px + 1762px + 1763px + 1764px + 1765px + 1766px + 1767px + 1768px + 1769px + 177px + 1770px + 1771px + 1772px + 1773px + 1774px + 1775px + 1776px + 1777px + 1778px + 1779px + 178px + 1780px + 1781px + 1782px + 1783px + 1784px + 1785px + 1786px + 1787px + 1788px + 1789px + 179px + 1790px + 1791px + 1792px + 1793px + 1794px + 1795px + 1796px + 1797px + 1798px + 1799px + 18px + 180px + 1800px + 1801px + 1802px + 1803px + 1804px + 1805px + 1806px + 1807px + 1808px + 1809px + 181px + 1810px + 1811px + 1812px + 1813px + 1814px + 1815px + 1816px + 1817px + 1818px + 1819px + 182px + 1820px + 1821px + 1822px + 1823px + 1824px + 1825px + 1826px + 1827px + 1828px + 1829px + 183px + 1830px + 1831px + 1832px + 1833px + 1834px + 1835px + 1836px + 1837px + 1838px + 1839px + 184px + 1840px + 1841px + 1842px + 1843px + 1844px + 1845px + 1846px + 1847px + 1848px + 1849px + 185px + 1850px + 1851px + 1852px + 1853px + 1854px + 1855px + 1856px + 1857px + 1858px + 1859px + 186px + 1860px + 1861px + 1862px + 1863px + 1864px + 1865px + 1866px + 1867px + 1868px + 1869px + 187px + 1870px + 1871px + 1872px + 1873px + 1874px + 1875px + 1876px + 1877px + 1878px + 1879px + 188px + 1880px + 1881px + 1882px + 1883px + 1884px + 1885px + 1886px + 1887px + 1888px + 1889px + 189px + 1890px + 1891px + 1892px + 1893px + 1894px + 1895px + 1896px + 1897px + 1898px + 1899px + 19px + 190px + 1900px + 1901px + 1902px + 1903px + 1904px + 1905px + 1906px + 1907px + 1908px + 1909px + 191px + 1910px + 1911px + 1912px + 1913px + 1914px + 1915px + 1916px + 1917px + 1918px + 1919px + 192px + 1920px + 193px + 194px + 195px + 196px + 197px + 198px + 199px + 2px + 20px + 200px + 201px + 202px + 203px + 204px + 205px + 206px + 207px + 208px + 209px + 21px + 210px + 211px + 212px + 213px + 214px + 215px + 216px + 217px + 218px + 219px + 22px + 220px + 221px + 222px + 223px + 224px + 225px + 226px + 227px + 228px + 229px + 23px + 230px + 231px + 232px + 233px + 234px + 235px + 236px + 237px + 238px + 239px + 24px + 240px + 241px + 242px + 243px + 244px + 245px + 246px + 247px + 248px + 249px + 25px + 250px + 251px + 252px + 253px + 254px + 255px + 256px + 257px + 258px + 259px + 26px + 260px + 261px + 262px + 263px + 264px + 265px + 266px + 267px + 268px + 269px + 27px + 270px + 271px + 272px + 273px + 274px + 275px + 276px + 277px + 278px + 279px + 28px + 280px + 281px + 282px + 283px + 284px + 285px + 286px + 287px + 288px + 289px + 29px + 290px + 291px + 292px + 293px + 294px + 295px + 296px + 297px + 298px + 299px + 3px + 30px + 300px + 301px + 302px + 303px + 304px + 305px + 306px + 307px + 308px + 309px + 31px + 310px + 311px + 312px + 313px + 314px + 315px + 316px + 317px + 318px + 319px + 32px + 320px + 321px + 322px + 323px + 324px + 325px + 326px + 327px + 328px + 329px + 33px + 330px + 331px + 332px + 333px + 334px + 335px + 336px + 337px + 338px + 339px + 34px + 340px + 341px + 342px + 343px + 344px + 345px + 346px + 347px + 348px + 349px + 35px + 350px + 351px + 352px + 353px + 354px + 355px + 356px + 357px + 358px + 359px + 36px + 360px + 361px + 362px + 363px + 364px + 365px + 366px + 367px + 368px + 369px + 37px + 370px + 371px + 372px + 373px + 374px + 375px + 376px + 377px + 378px + 379px + 38px + 380px + 381px + 382px + 383px + 384px + 385px + 386px + 387px + 388px + 389px + 39px + 390px + 391px + 392px + 393px + 394px + 395px + 396px + 397px + 398px + 399px + 4px + 40px + 400px + 401px + 402px + 403px + 404px + 405px + 406px + 407px + 408px + 409px + 41px + 410px + 411px + 412px + 413px + 414px + 415px + 416px + 417px + 418px + 419px + 42px + 420px + 421px + 422px + 423px + 424px + 425px + 426px + 427px + 428px + 429px + 43px + 430px + 431px + 432px + 433px + 434px + 435px + 436px + 437px + 438px + 439px + 44px + 440px + 441px + 442px + 443px + 444px + 445px + 446px + 447px + 448px + 449px + 45px + 450px + 451px + 452px + 453px + 454px + 455px + 456px + 457px + 458px + 459px + 46px + 460px + 461px + 462px + 463px + 464px + 465px + 466px + 467px + 468px + 469px + 47px + 470px + 471px + 472px + 473px + 474px + 475px + 476px + 477px + 478px + 479px + 48px + 480px + 481px + 482px + 483px + 484px + 485px + 486px + 487px + 488px + 489px + 49px + 490px + 491px + 492px + 493px + 494px + 495px + 496px + 497px + 498px + 499px + 5px + 50px + 500px + 501px + 502px + 503px + 504px + 505px + 506px + 507px + 508px + 509px + 51px + 510px + 511px + 512px + 513px + 514px + 515px + 516px + 517px + 518px + 519px + 52px + 520px + 521px + 522px + 523px + 524px + 525px + 526px + 527px + 528px + 529px + 53px + 530px + 531px + 532px + 533px + 534px + 535px + 536px + 537px + 538px + 539px + 54px + 540px + 541px + 542px + 543px + 544px + 545px + 546px + 547px + 548px + 549px + 55px + 550px + 551px + 552px + 553px + 554px + 555px + 556px + 557px + 558px + 559px + 56px + 560px + 561px + 562px + 563px + 564px + 565px + 566px + 567px + 568px + 569px + 57px + 570px + 571px + 572px + 573px + 574px + 575px + 576px + 577px + 578px + 579px + 58px + 580px + 581px + 582px + 583px + 584px + 585px + 586px + 587px + 588px + 589px + 59px + 590px + 591px + 592px + 593px + 594px + 595px + 596px + 597px + 598px + 599px + 6px + 60px + 600px + 601px + 602px + 603px + 604px + 605px + 606px + 607px + 608px + 609px + 61px + 610px + 611px + 612px + 613px + 614px + 615px + 616px + 617px + 618px + 619px + 62px + 620px + 621px + 622px + 623px + 624px + 625px + 626px + 627px + 628px + 629px + 63px + 630px + 631px + 632px + 633px + 634px + 635px + 636px + 637px + 638px + 639px + 64px + 640px + 641px + 642px + 643px + 644px + 645px + 646px + 647px + 648px + 649px + 65px + 650px + 651px + 652px + 653px + 654px + 655px + 656px + 657px + 658px + 659px + 66px + 660px + 661px + 662px + 663px + 664px + 665px + 666px + 667px + 668px + 669px + 67px + 670px + 671px + 672px + 673px + 674px + 675px + 676px + 677px + 678px + 679px + 68px + 680px + 681px + 682px + 683px + 684px + 685px + 686px + 687px + 688px + 689px + 69px + 690px + 691px + 692px + 693px + 694px + 695px + 696px + 697px + 698px + 699px + 7px + 70px + 700px + 701px + 702px + 703px + 704px + 705px + 706px + 707px + 708px + 709px + 71px + 710px + 711px + 712px + 713px + 714px + 715px + 716px + 717px + 718px + 719px + 72px + 720px + 721px + 722px + 723px + 724px + 725px + 726px + 727px + 728px + 729px + 73px + 730px + 731px + 732px + 733px + 734px + 735px + 736px + 737px + 738px + 739px + 74px + 740px + 741px + 742px + 743px + 744px + 745px + 746px + 747px + 748px + 749px + 75px + 750px + 751px + 752px + 753px + 754px + 755px + 756px + 757px + 758px + 759px + 76px + 760px + 761px + 762px + 763px + 764px + 765px + 766px + 767px + 768px + 769px + 77px + 770px + 771px + 772px + 773px + 774px + 775px + 776px + 777px + 778px + 779px + 78px + 780px + 781px + 782px + 783px + 784px + 785px + 786px + 787px + 788px + 789px + 79px + 790px + 791px + 792px + 793px + 794px + 795px + 796px + 797px + 798px + 799px + 8px + 80px + 800px + 801px + 802px + 803px + 804px + 805px + 806px + 807px + 808px + 809px + 81px + 810px + 811px + 812px + 813px + 814px + 815px + 816px + 817px + 818px + 819px + 82px + 820px + 821px + 822px + 823px + 824px + 825px + 826px + 827px + 828px + 829px + 83px + 830px + 831px + 832px + 833px + 834px + 835px + 836px + 837px + 838px + 839px + 84px + 840px + 841px + 842px + 843px + 844px + 845px + 846px + 847px + 848px + 849px + 85px + 850px + 851px + 852px + 853px + 854px + 855px + 856px + 857px + 858px + 859px + 86px + 860px + 861px + 862px + 863px + 864px + 865px + 866px + 867px + 868px + 869px + 87px + 870px + 871px + 872px + 873px + 874px + 875px + 876px + 877px + 878px + 879px + 88px + 880px + 881px + 882px + 883px + 884px + 885px + 886px + 887px + 888px + 889px + 89px + 890px + 891px + 892px + 893px + 894px + 895px + 896px + 897px + 898px + 899px + 9px + 90px + 900px + 901px + 902px + 903px + 904px + 905px + 906px + 907px + 908px + 909px + 91px + 910px + 911px + 912px + 913px + 914px + 915px + 916px + 917px + 918px + 919px + 92px + 920px + 921px + 922px + 923px + 924px + 925px + 926px + 927px + 928px + 929px + 93px + 930px + 931px + 932px + 933px + 934px + 935px + 936px + 937px + 938px + 939px + 94px + 940px + 941px + 942px + 943px + 944px + 945px + 946px + 947px + 948px + 949px + 95px + 950px + 951px + 952px + 953px + 954px + 955px + 956px + 957px + 958px + 959px + 96px + 960px + 961px + 962px + 963px + 964px + 965px + 966px + 967px + 968px + 969px + 97px + 970px + 971px + 972px + 973px + 974px + 975px + 976px + 977px + 978px + 979px + 98px + 980px + 981px + 982px + 983px + 984px + 985px + 986px + 987px + 988px + 989px + 99px + 990px + 991px + 992px + 993px + 994px + 995px + 996px + 997px + 998px + 999px + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8241a56..231010d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -7,7 +7,7 @@ 未绑定 未设置 设备未经授权 - 小学王 + 学习超人 一年级 1班 diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index e993d30..6e2a4ef 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -23,7 +23,7 @@ @color/colorPrimary @color/colorPrimaryDark @color/colorAccent - @drawable/mine_wallpaper + @drawable/img_home_bg_0 false diff --git a/screenMatch_example_dimens.xml b/screenMatch_example_dimens.xml index 026f490..4075f33 100644 --- a/screenMatch_example_dimens.xml +++ b/screenMatch_example_dimens.xml @@ -2,7 +2,7 @@ - @dimen/dp_15 + @@ -15,7 +15,6 @@ -5dp -2dp -1dp - 0dp 0.1dp 0.5dp 1dp