This commit is contained in:
fengjignqi
2026-05-16 16:19:39 +08:00
commit 1b1575eb8a
1632 changed files with 242221 additions and 0 deletions

View File

@@ -0,0 +1,208 @@
package com.ckkj.water.mine;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import com.gyf.immersionbar.ImmersionBar;
import com.ckkj.water.AppConfig;
import com.ckkj.water.EventMessage;
import com.ckkj.water.R;
import com.ckkj.water.base.BaseActivity;
import com.ckkj.water.base.BaseFragment;
import com.ckkj.water.base.entity.MineUserInfoBean;
import com.ckkj.water.databinding.ActivitySettingsLayoutBinding;
import com.ckkj.water.dialog.DialogAppUpdate;
import com.ckkj.water.login.LoginActivity;
import com.ckkj.water.main.entity.CheckVersionEntity;
import com.ckkj.water.mine.entity.MemberComboEntity;
import com.ckkj.water.mine.mvp.MineContract;
import com.ckkj.water.mine.mvp.MineImpl;
import com.ckkj.water.mine.mvp.MinePresenter;
import com.ckkj.water.network.BaseBean;
import com.ckkj.water.utils.AppInfoUtil;
import com.ckkj.water.utils.manager.ActivityManager;
import com.ckkj.water.utils.manager.MingDengUserInfoManager;
import com.ckkj.water.utils.show.ToastUtil;
import java.io.File;
import java.util.List;
import de.greenrobot.event.EventBus;
/**
* @author fengxiaoyang
* @date 2025/8/18
* @description TODO: 设置页面
*/
public class SettingsActivity extends BaseActivity<ActivitySettingsLayoutBinding, MinePresenter>
implements MineContract.MineView {
@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)
.init();
viewBinding.includeTitle.tvTitle.setText("设置");
viewBinding.includeTitle.imgBack.setOnClickListener(c -> finish());
if(AppConfig.USER_LOGIN){
viewBinding.tvUserPhone.setText(MingDengUserInfoManager.getInstance().getUserInfo().getMobile());
viewBinding.tvLogOut.setVisibility(View.VISIBLE);
}
//获取本应用所占用的缓存
displayCacheSize();
try {
// 获取 PackageManager 实例
PackageManager packageManager = mContext.getPackageManager();
// 获取应用信息
PackageInfo packageInfo = packageManager.getPackageInfo(mContext.getPackageName(), 0);
// 获取版本名称
String versionName = packageInfo.versionName;
viewBinding.tvVersionName.setText("version " + versionName);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
}
@Override
public MinePresenter createPresenter() {
return new MinePresenter(new MineImpl());
}
@Override
public int getLayoutResId(Bundle savedInstanceState) {
return 0;
}
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://版本检测
//版本检测更新
break;
case R.id.rl_commit_service:
break;
case R.id.rl_set_cache:
showLoadingDialog();
clearCache();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
hideDialogLoading();
ToastUtil.showShort(mContext,"缓存清除成功");
displayCacheSize();
}
},800);
break;
case R.id.tv_log_out:
showDialogtext(mContext.getResources().getDrawable(R.mipmap.img_location), false, false,true,
"提示", "确定要退出当前账号?",
"取消", "确定", new BaseFragment.OnDialogClick() {
@Override
public void onCancelClick() {
}
@Override
public void onConfirmClick() {
MingDengUserInfoManager.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();
bundle.putInt("from_requse_code",WebviewUserAgreement.AGREEMENT_CODE);
goToWihoutNoPresent(mContext, WebviewUserAgreement.class,bundle);
break;
case R.id.rl_user_privacy://隐私政策
Bundle bundleYS = new Bundle();
bundleYS.putInt("from_requse_code",WebviewUserAgreement.PRIVACY_CODE);
goToWihoutNoPresent(mContext, WebviewUserAgreement.class,bundleYS);
break;
case R.id.rl_log_off://注销账号
goTo(mContext, UserLogOffAccountActivity.class,null);
break;
}
}
private boolean isForceUpdate;
private DialogAppUpdate mUpdateDialog;
@Override
public void showError(String message) {
}
@Override
public void logOut(BaseBean bean) {
}
private void displayCacheSize() {
long cacheSize = getCacheSize();
String sizeString;
if (cacheSize >= 1024 * 1024) {
sizeString = String.format("%.2f MB", cacheSize / (1024.0 * 1024.0));
} else {
sizeString = String.format("%d KB", cacheSize / 1024);
}
viewBinding.tvCacheSize.setText(sizeString);
}
private long getCacheSize() {
File cacheDir = mContext.getCacheDir();
return getFolderSize(cacheDir);
}
private long getFolderSize(File dir) {
long size = 0;
if (dir != null && dir.isDirectory()) {
for (File file : dir.listFiles()) {
if (file.isFile()) {
size += file.length();
} else {
size += getFolderSize(file);
}
}
}
return size;
}
private void clearCache() {
File cacheDir = getCacheDir();
deleteDir(cacheDir);
}
private boolean deleteDir(File dir) {
if (dir != null && dir.isDirectory()) {
String[] children = dir.list();
if (children != null) {
for (String child : children) {
deleteDir(new File(dir, child));
}
}
}
return dir.delete();
}
}