first
This commit is contained in:
208
app/src/main/java/com/ckkj/water/mine/SettingsActivity.java
Normal file
208
app/src/main/java/com/ckkj/water/mine/SettingsActivity.java
Normal 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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user