This commit is contained in:
fengjignqi
2026-07-06 10:35:56 +08:00
parent d8d546c90a
commit fa44e0edbd
35 changed files with 643 additions and 368 deletions

View File

@@ -5,6 +5,7 @@ import android.view.View;
import com.ckkj.water.R;
import com.ckkj.water.base.BaseActivity;
import com.ckkj.water.main.entity.CheckVersionEntity;
import com.ckkj.water.mine.entity.MineUserInfoBean;
import com.ckkj.water.databinding.AppThemeChangeLayoutBinding;
import com.ckkj.water.mine.mvp.MineContract;
@@ -127,4 +128,9 @@ public class AppThemActivity extends BaseActivity<AppThemeChangeLayoutBinding, M
public void uploadImageSuccess(MineUserInfoBean bean) {
}
@Override
public void getAppVersionSuccess(CheckVersionEntity bean) {
}
}

View File

@@ -5,6 +5,7 @@ import android.os.CountDownTimer;
import android.text.TextUtils;
import android.view.View;
import com.ckkj.water.main.entity.CheckVersionEntity;
import com.ckkj.water.mine.entity.MineUserInfoBean;
import com.gyf.immersionbar.ImmersionBar;
import com.ckkj.water.R;
@@ -155,4 +156,9 @@ public class ChangePhoneActivity extends BaseActivity<ChangePhoneActivityBinding
public void uploadImageSuccess(MineUserInfoBean bean) {
}
@Override
public void getAppVersionSuccess(CheckVersionEntity bean) {
}
}

View File

@@ -1,6 +1,7 @@
package com.ckkj.water.mine;
import static android.view.View.INVISIBLE;
import static android.view.View.VISIBLE;
import android.os.Bundle;
import android.text.TextUtils;
@@ -11,6 +12,7 @@ import com.ckkj.water.AppConfig;
import com.ckkj.water.ConstantUtil;
import com.ckkj.water.R;
import com.ckkj.water.base.BaseFragment;
import com.ckkj.water.main.entity.CheckVersionEntity;
import com.ckkj.water.mine.entity.MineUserInfoBean;
import com.ckkj.water.databinding.MineFragmentLayoutBinding;
import com.ckkj.water.login.LoginActivity;
@@ -44,6 +46,7 @@ public class MineCenterFragment extends BaseFragment<MineFragmentLayoutBinding,
.titleBar(viewBinding.rlTitle)
.init();
viewBinding.includedTitle.imgBack.setVisibility(INVISIBLE);
viewBinding.includedTitle.imgSetting.setVisibility(VISIBLE);
viewBinding.includedTitle.tvTitle.setText(getString(R.string.mine_center_title));
initListener();
}
@@ -62,6 +65,7 @@ public class MineCenterFragment extends BaseFragment<MineFragmentLayoutBinding,
setClick(viewBinding.linearPsdManage);
setClick(viewBinding.linearTheme);
setClick(viewBinding.btnDelete);
setClick(viewBinding.includedTitle.imgSetting);
}
private void setClick(View view) {
@@ -70,6 +74,11 @@ public class MineCenterFragment extends BaseFragment<MineFragmentLayoutBinding,
public void onClick(View v){
switch (v.getId()){
case R.id.img_setting:
goTo(mContext, SettingsActivity.class,null);
break;
case R.id.linear_info:
Bundle bundle = new Bundle();
bundle.putSerializable(ConstantUtil.USER_INFO_JSON_CONTENT,mUserBean);
@@ -169,6 +178,11 @@ public class MineCenterFragment extends BaseFragment<MineFragmentLayoutBinding,
}
@Override
public void getAppVersionSuccess(CheckVersionEntity bean) {
}
@Override
public void updateUserInfoSuccess(BaseBean bean) {

View File

@@ -13,6 +13,7 @@ import com.bumptech.glide.Glide;
import com.ckkj.water.ConstantUtil;
import com.ckkj.water.R;
import com.ckkj.water.base.BaseActivity;
import com.ckkj.water.main.entity.CheckVersionEntity;
import com.ckkj.water.mine.entity.MineUserInfoBean;
import com.ckkj.water.databinding.MineInformationLayoutBinding;
import com.ckkj.water.mine.mvp.MineContract;
@@ -225,6 +226,11 @@ public class MineInfomationActivity extends BaseActivity<MineInformationLayoutBi
ToastUtil.showShort(mContext, getString(R.string.avatar_update_success));
}
@Override
public void getAppVersionSuccess(CheckVersionEntity bean) {
}
private void getCompressFile(File file) {
LubanCompressUtil.getInstance().getCompressFile(mContext, file, new LubanCompressUtil.CompressCallback() {

View File

@@ -5,6 +5,7 @@ import android.view.View;
import com.ckkj.water.R;
import com.ckkj.water.base.BaseActivity;
import com.ckkj.water.main.entity.CheckVersionEntity;
import com.ckkj.water.mine.entity.MineUserInfoBean;
import com.ckkj.water.databinding.PasswordManLayoutBinding;
import com.ckkj.water.login.ForgetPasswordActivity;
@@ -106,4 +107,9 @@ public class PsdManageActivity extends BaseActivity<PasswordManLayoutBinding, Mi
public void uploadImageSuccess(MineUserInfoBean bean) {
}
@Override
public void getAppVersionSuccess(CheckVersionEntity bean) {
}
}

View File

@@ -6,6 +6,7 @@ import android.view.View;
import com.ckkj.water.R;
import com.ckkj.water.base.BaseActivity;
import com.ckkj.water.main.entity.CheckVersionEntity;
import com.ckkj.water.mine.entity.MineUserInfoBean;
import com.ckkj.water.databinding.ResetPsdLayoutBinding;
import com.ckkj.water.mine.mvp.MineContract;
@@ -101,6 +102,11 @@ public class ResetPsdActivity extends BaseActivity<ResetPsdLayoutBinding, MinePr
}
@Override
public void getAppVersionSuccess(CheckVersionEntity bean) {
}
@Override
public MinePresenter createPresenter() {
return new MinePresenter(new MineImpl());

View File

@@ -1,12 +1,22 @@
package com.ckkj.water.mine;
import static com.ckkj.water.ConstantUtil.POST_NOTIFICATIONS_PERMISSION_CODE;
import static com.ckkj.water.ConstantUtil.WRITE_FILE_PERMISSON_CPDE;
import android.Manifest;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import androidx.annotation.NonNull;
import com.ckkj.water.main.MainContract;
import com.ckkj.water.main.entity.CheckVersionEntity;
import com.ckkj.water.mine.entity.MineUserInfoBean;
import com.ckkj.water.utils.AppInfoUtil;
import com.ckkj.water.utils.manager.ThemeManager;
import com.gyf.immersionbar.ImmersionBar;
import com.ckkj.water.AppConfig;
import com.ckkj.water.EventMessage;
@@ -24,9 +34,13 @@ import com.ckkj.water.utils.manager.ActivityManager;
import com.ckkj.water.utils.manager.WaterUserInfoManager;
import com.ckkj.water.utils.show.ToastUtil;
import org.jetbrains.annotations.NotNull;
import java.io.File;
import java.util.List;
import de.greenrobot.event.EventBus;
import pub.devrel.easypermissions.EasyPermissions;
/**
* @author fengxiaoyang
@@ -35,23 +49,21 @@ import de.greenrobot.event.EventBus;
*/
public class SettingsActivity extends BaseActivity<ActivitySettingsLayoutBinding, MinePresenter>
implements MineContract.MineView {
implements MineContract.MineView, MainContract.MainView, EasyPermissions.PermissionCallbacks{
@Override
public void initData(Bundle savedInstanceState) {
super.initData(savedInstanceState);
ImmersionBar.with(this)
.statusBarColor(R.color.white)
.statusBarDarkFont(true)
.titleBar(viewBinding.rlTitle) // 替换为你的标题栏View
.keyboardEnable(true)
.navigationBarDarkIcon(true)
.statusBarDarkFont(ThemeManager.isAppThemeLight(mContext)) // 白色状态栏图标
.navigationBarColor(R.color.color_gray_theme)
.titleBar(viewBinding.rlTitle)
.init();
viewBinding.includeTitle.tvTitle.setText("设置");
viewBinding.includeTitle.tvTitle.setText(R.string.settings_title);
viewBinding.includeTitle.imgBack.setOnClickListener(c -> finish());
if(AppConfig.USER_LOGIN){
// viewBinding.tvUserPhone.setText(WaterUserInfoManager.getInstance().getUserInfo().getMobile());
viewBinding.tvLogOut.setVisibility(View.VISIBLE);
// viewBinding.tvLogOut.setVisibility(View.VISIBLE);
}
//获取本应用所占用的缓存
displayCacheSize();
@@ -62,12 +74,28 @@ public class SettingsActivity extends BaseActivity<ActivitySettingsLayoutBinding
PackageInfo packageInfo = packageManager.getPackageInfo(mContext.getPackageName(), 0);
// 获取版本名称
String versionName = packageInfo.versionName;
viewBinding.tvVersionName.setText("version " + versionName);
viewBinding.tvVersionName.setText(versionName);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
initListener();
}
private void initListener() {
setClick(viewBinding.rlCheckVersion);
setClick(viewBinding.rlSetCache);
setClick(viewBinding.rlUserAgreement);
setClick(viewBinding.rlUserPrivacy);
setClick(viewBinding.rlLogOff);
}
private void setClick(View view) {
view.setOnClickListener(this::onClick);
}
@Override
public MinePresenter createPresenter() {
return new MinePresenter(new MineImpl());
@@ -81,16 +109,11 @@ public class SettingsActivity extends BaseActivity<ActivitySettingsLayoutBinding
public void onClick(View v) {
switch (v.getId()){
case R.id.rl_change_phone:
goTo(mContext, ChangePhoneActivity.class,null);
break;
case R.id.rl_check_version://版本检测
//版本检测更新
mPresenter.checkNewVersion();
break;
case R.id.rl_commit_service:
break;
case R.id.rl_set_cache:
showLoadingDialog();
@@ -105,26 +128,6 @@ public class SettingsActivity extends BaseActivity<ActivitySettingsLayoutBinding
},800);
break;
case R.id.tv_log_out:
showDialogtext(mContext.getResources().getDrawable(R.mipmap.img_location), false, false,true,
getString(R.string.tip_text),
getString(R.string.logout_dialog_tips),
getString(R.string.cancel_text),
getString(R.string.confirm_text),
new BaseFragment.OnDialogClick() {
@Override
public void onCancelClick() {
}
@Override
public void onConfirmClick() {
WaterUserInfoManager.getInstance().clearUser(mContext);
ActivityManager.removeAllActivity();
goTo(mContext, LoginActivity.class,null);
EventBus.getDefault().post(new EventMessage(EventMessage.USER_LOGIN_LOST));
}
});
break;
case R.id.rl_user_agreement://用户协议
Bundle bundle = new Bundle();
@@ -229,4 +232,93 @@ public class SettingsActivity extends BaseActivity<ActivitySettingsLayoutBinding
public void uploadImageSuccess(MineUserInfoBean bean) {
}
@Override
public void getAppVersionSuccess(CheckVersionEntity bean) {
int versionCode = (int) AppInfoUtil.getAppVersionCode(mContext);
if(bean == null){
return;
}
if(!bean.isForceUpdate()){//不强制
isForceUpdate = false;
}else{
isForceUpdate = true;
}
//前期强制更新
// isForceUpdate = true;
if(bean.getVersionCode() > versionCode){
//App更新dialog
mUpdateDialog = new DialogAppUpdate(mContext,R.layout.dialog_app_update_water,isForceUpdate,bean);
mUpdateDialog.show();
mUpdateDialog.setOnDialogListener(new DialogAppUpdate.DialogListener() {
@Override
public void callBackGetPermisson(String permission) {
if (!hasRecordPermission(permission)) {
if (Manifest.permission.POST_NOTIFICATIONS.equals(permission)) {
getPermissionRequst(permission,"通知权限申请",
"渥田氏需要通知权限来显示应用下载进度",POST_NOTIFICATIONS_PERMISSION_CODE);
return;
}
// 没有权限只在ACTION_DOWN时去申请
getPermissionRequst(permission,"文件存储权限申请",
"渥田氏需要您的授权,获取存储权限来更新您的应用",WRITE_FILE_PERMISSON_CPDE);
}else{
}
}
@Override
public void downLoadFinish() {
runOnUiThread(new Runnable() {
@Override
public void run() {
ToastUtil.showShort(mContext,"下载完成,正在安装");
}
});
}
});
}
}
@Override
public void activationVipSuccess(BaseBean bean) {
}
@Override
public void getVersionCheck(CheckVersionEntity bean) {
}
@Override
public void getYunshiDataSuccess(BaseBean bean) {
}
@Override
public void onPermissionsGranted(int requestCode, @NonNull List<String> perms) {
}
@Override
public void onPermissionsDenied(int requestCode, @NonNull List<String> perms) {
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull @NotNull String[] permissions, @NonNull @NotNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
hidePermissionDialog();
if(requestCode == WRITE_FILE_PERMISSON_CPDE){
if(mUpdateDialog != null && grantResults.length > 0 && grantResults[0] == android.content.pm.PackageManager.PERMISSION_GRANTED){
mUpdateDialog.startUpdateApp();
}
}else if(requestCode == POST_NOTIFICATIONS_PERMISSION_CODE){
if(mUpdateDialog != null && grantResults.length > 0 && grantResults[0] == android.content.pm.PackageManager.PERMISSION_GRANTED){
mUpdateDialog.startUpdateApp();
}
}
}
}

View File

@@ -5,7 +5,9 @@ import android.os.CountDownTimer;
import android.text.TextUtils;
import android.view.View;
import com.ckkj.water.main.entity.CheckVersionEntity;
import com.ckkj.water.mine.entity.MineUserInfoBean;
import com.ckkj.water.utils.manager.WaterUserInfoManager;
import com.gyf.immersionbar.ImmersionBar;
import com.ckkj.water.AppConfig;
import com.ckkj.water.R;
@@ -47,10 +49,10 @@ public class UserLogOffAccountActivity extends BaseActivity<UserLogOffActivityBi
.init();
viewBinding.includeTitle.tvTitle.setText("注销账号");
if(AppConfig.USER_LOGIN){
// String phoneNum = WaterUserInfoManager.getInstance().getUserInfo().getMobile();
// if(!TextUtils.isEmpty(phoneNum)){
// viewBinding.tvUserPhone.setText(PhoneNumberUtils.hidePhoneNumber(phoneNum));
// }
String phoneNum = WaterUserInfoManager.getInstance().getUserInfo().getUser().getPhonenumber();
if(!TextUtils.isEmpty(phoneNum)){
viewBinding.tvUserPhone.setText(phoneNum);
}
}
}
@@ -134,4 +136,9 @@ public class UserLogOffAccountActivity extends BaseActivity<UserLogOffActivityBi
public void uploadImageSuccess(MineUserInfoBean bean) {
}
@Override
public void getAppVersionSuccess(CheckVersionEntity bean) {
}
}

View File

@@ -1,6 +1,7 @@
package com.ckkj.water.mine.mvp;
import com.ckkj.water.base.IView;
import com.ckkj.water.main.entity.CheckVersionEntity;
import com.ckkj.water.mine.entity.MineUserInfoBean;
import com.ckkj.water.network.BaseBean;
@@ -44,6 +45,7 @@ public class MineContract {
void logOutSuccess(BaseBean bean);
//上传图片成功
void uploadImageSuccess(MineUserInfoBean bean);
void getAppVersionSuccess(CheckVersionEntity bean);
}

View File

@@ -2,7 +2,12 @@ package com.ckkj.water.mine.mvp;
import android.text.TextUtils;
import com.ckkj.water.BuildConfig;
import com.ckkj.water.base.BasePresenter;
import com.ckkj.water.main.MainContract;
import com.ckkj.water.main.MainImpl;
import com.ckkj.water.main.MainPresenter;
import com.ckkj.water.main.entity.CheckVersionEntity;
import com.ckkj.water.mine.entity.MineUserInfoBean;
import com.ckkj.water.login.mvp.LoginContract;
import com.ckkj.water.login.mvp.LoginImpl;
@@ -168,4 +173,26 @@ public class MinePresenter extends BasePresenter<MineContract.MineView> {
}
}
}
public void checkNewVersion() {
Map<String,String> map = new HashMap<>();
map.put("platform","android");
map.put("currentVersion", BuildConfig.APP_VERSION_NAME);
new MainImpl().checkAppVersionCode(map, new MainContract.CallBack<CheckVersionEntity>() {
@Override
public void success(CheckVersionEntity bean) {
if( MinePresenter.this.getView() != null){
MinePresenter.this.getView().getAppVersionSuccess(bean);
}
}
@Override
public void fail(String msg) {
if( MinePresenter.this.getView() != null){
MinePresenter.this.getView().showError(msg);
}
}
});
}
}