diff --git a/app/src/main/java/com/yizhuan/erban/ui/setting/SettingActivity.kt b/app/src/main/java/com/yizhuan/erban/ui/setting/SettingActivity.kt index 5f33e7c68..61c9122ac 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/setting/SettingActivity.kt +++ b/app/src/main/java/com/yizhuan/erban/ui/setting/SettingActivity.kt @@ -1,226 +1,180 @@ -package com.yizhuan.erban.ui.setting; +package com.yizhuan.erban.ui.setting -import android.annotation.SuppressLint; -import android.content.Intent; -import android.os.Build; -import android.os.Bundle; -import android.os.Environment; -import android.text.SpannableString; -import android.view.View; - -import androidx.databinding.DataBindingUtil; - -import com.netease.nim.uikit.StatusBarUtil; -import com.tongdaxing.erban.upgrade.AppUpgradeHelper; -import com.yizhuan.erban.R; -import com.yizhuan.erban.UIHelper; -import com.yizhuan.erban.base.BaseActivity; -import com.yizhuan.erban.common.widget.dialog.DialogManager; -import com.yizhuan.erban.databinding.ActivitySettingBinding; -import com.yizhuan.erban.ui.im.avtivity.BlackListManageActivity; -import com.yizhuan.erban.ui.login.BindPhoneActivity; -import com.yizhuan.erban.ui.login.ShowBindPhoneActivity; -import com.yizhuan.erban.ui.login.helper.LogoutHelper; -import com.yizhuan.erban.ui.user.AboutActivity; -import com.yizhuan.erban.ui.webview.CommonWebViewActivity; -import com.yizhuan.xchat_android_core.UriProvider; -import com.yizhuan.xchat_android_core.auth.AuthModel; -import com.yizhuan.xchat_android_core.auth.event.LogoutEvent; -import com.yizhuan.xchat_android_core.user.UserModel; -import com.yizhuan.xchat_android_core.user.bean.UserInfo; -import com.yizhuan.xchat_android_core.utils.SharedPreferenceUtils; -import com.yizhuan.xchat_android_library.common.file.FileHelper; -import com.yizhuan.xchat_android_library.utils.ResUtil; -import com.yizhuan.xchat_android_library.utils.config.BasicConfig; -import com.yizhuan.xchat_android_library.utils.file.JXFileUtils; - -import org.greenrobot.eventbus.EventBus; -import org.greenrobot.eventbus.Subscribe; -import org.greenrobot.eventbus.ThreadMode; - -import java.io.File; - -import lombok.val; +import android.annotation.SuppressLint +import android.content.Intent +import android.os.Build +import android.os.Environment +import android.text.SpannableString +import android.view.View +import com.netease.nim.uikit.StatusBarUtil +import com.tongdaxing.erban.upgrade.AppUpgradeHelper +import com.yizhuan.erban.R +import com.yizhuan.erban.UIHelper +import com.yizhuan.erban.base.BaseViewBindingActivity +import com.yizhuan.erban.common.widget.dialog.DialogManager.OkCancelDialogListener +import com.yizhuan.erban.databinding.ActivitySettingBinding +import com.yizhuan.erban.ui.im.avtivity.BlackListManageActivity +import com.yizhuan.erban.ui.login.BindPhoneActivity +import com.yizhuan.erban.ui.login.ShowBindPhoneActivity +import com.yizhuan.erban.ui.login.helper.LogoutHelper +import com.yizhuan.erban.ui.user.AboutActivity +import com.yizhuan.erban.ui.webview.CommonWebViewActivity +import com.yizhuan.xchat_android_core.UriProvider +import com.yizhuan.xchat_android_core.auth.AuthModel +import com.yizhuan.xchat_android_core.auth.event.LogoutEvent +import com.yizhuan.xchat_android_core.user.UserModel +import com.yizhuan.xchat_android_core.user.bean.UserInfo +import com.yizhuan.xchat_android_core.utils.SharedPreferenceUtils +import com.yizhuan.xchat_android_library.common.file.FileHelper +import com.yizhuan.xchat_android_library.utils.ResUtil +import com.yizhuan.xchat_android_library.utils.config.BasicConfig +import com.yizhuan.xchat_android_library.utils.file.JXFileUtils +import org.greenrobot.eventbus.EventBus +import org.greenrobot.eventbus.Subscribe +import org.greenrobot.eventbus.ThreadMode +import java.io.File /** - * Created by zhouxiangfeng on 2017/4/16. + * 设置页 + * Created by wushaocheng on 2023/2/1. */ -public class SettingActivity extends BaseActivity implements View.OnClickListener { - - private ActivitySettingBinding settingBinding; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - EventBus.getDefault().register(this); - settingBinding = DataBindingUtil.setContentView(this, R.layout.activity_setting); - settingBinding.setClick(this); - initWhiteTitleBar(ResUtil.getString(R.string.ui_setting_settingactivity_01)); - initView(); - initData(); - initListeners(); +class SettingActivity : BaseViewBindingActivity(), View.OnClickListener { + override fun init() { + EventBus.getDefault().register(this) + initWhiteTitleBar(ResUtil.getString(R.string.ui_setting_settingactivity_01)) + initView() + initListener() } - private void initListeners() { + @SuppressLint("SetTextI18n") + private fun initView() { + binding.versions.text = "V${BasicConfig.getLocalVersionName(this)}" + val cacheLoginUserInfo = UserModel.get().cacheLoginUserInfo ?: return + if (cacheLoginUserInfo.isBindPasswd) { + binding.tvLoginPwd.text = ResUtil.getString(R.string.text_reset_password) + } else { + binding.tvLoginPwd.text = ResUtil.getString(R.string.ui_setting_settingactivity_016) + } + } + private fun initListener() { + binding.rlyBindPhone.setOnClickListener(this) + binding.rlyContactUs.setOnClickListener(this) + binding.rlyHelp.setOnClickListener(this) + binding.rlyUpdate.setOnClickListener(this) + binding.tvBlackManager.setOnClickListener(this) + binding.rlyLoginPwd.setOnClickListener(this) + binding.rlyPayPwd.setOnClickListener(this) + binding.btnLoginOut.setOnClickListener(this) + binding.tvCommunityNorms.setOnClickListener(this) + binding.rlyClearCache.setOnClickListener(this) + binding.tvNoticeSetting.setOnClickListener(this) + binding.tvShieldManager.setOnClickListener(this) + binding.rlyPermission.setOnClickListener(this) + binding.rlyCheck.setOnClickListener(this) } @SuppressLint("CheckResult") - @Override - protected void onResume() { - super.onResume(); - UserInfo userInfo = UserModel.get().getCacheLoginUserInfo(); - if(userInfo != null && userInfo.isBindPhone()){ - settingBinding.tvBindPhone.setText(getString(R.string.text_modify_bind_phone)); - }else { - settingBinding.tvBindPhone.setText(getString(R.string.text_bind_phone)); + override fun onResume() { + super.onResume() + val userInfo = UserModel.get().cacheLoginUserInfo + if (userInfo != null && userInfo.isBindPhone) { + binding.tvBindPhone.text = getString(R.string.text_modify_bind_phone) + } else { + binding.tvBindPhone.text = getString(R.string.text_bind_phone) } UserModel.get().updateCurrentUserInfo() - .compose(bindToLifecycle()) - .subscribe(info -> { - //刷新下界面 - initView(); - }); - } - - private void initData() { - settingBinding.versions.setText("V" + BasicConfig.getLocalVersionName(getApplicationContext())); - } - - @Override - public void onClick(View view) { - switch (view.getId()) { - case R.id.rly_bind_phone: - UserInfo userInfo = UserModel.get().getCacheLoginUserInfo(); - if(userInfo != null && userInfo.isBindPhone()){ - ShowBindPhoneActivity.start(context); - }else { - BindPhoneActivity.start(this); - } - break; - case R.id.rly_contact_us: - UIHelper.openContactUs(this); - break; - case R.id.rly_help: - UIHelper.showUsinghelp(this); - break; - case R.id.rly_update://关于我们 - startActivity(new Intent(getApplicationContext(), AboutActivity.class)); - break; - case R.id.tv_black_manager: - BlackListManageActivity.start(this); - break; - case R.id.rly_login_pwd: - ModifyPwdActivity.start(this, ModifyPwdActivity.LOGIN_PWD); - break; - case R.id.rly_pay_pwd: - if (UserModel.get().getCacheLoginUserInfo() == null) { - toast(ResUtil.getString(R.string.ui_setting_settingactivity_06)); - return; - } - ModifyPwdActivity.start(this, ModifyPwdActivity.PAY_PWD); - break; - case R.id.btn_login_out://退出登录 - getDialogManager().showProgressDialog(this); - LogoutHelper.logout(); - break; - - case R.id.tv_community_norms: - CommonWebViewActivity.start(this, UriProvider.getCommnunityNorms()); - break; - - case R.id.rly_clear_cache: - getDialogManager().showOkCancelWithTitleDialog(ResUtil.getString(R.string.ui_setting_settingactivity_07), - new SpannableString(ResUtil.getString(R.string.ui_setting_settingactivity_08)), - ResUtil.getString(R.string.ui_setting_settingactivity_09), ResUtil.getString(R.string.ui_setting_settingactivity_010), new DialogManager.OkCancelDialogListener() { - @Override - public void onCancel() { - - } - - @Override - public void onOk() { - clearCache(); - } - }); - - break; - case R.id.tv_notice_setting: - NoticeSettingActivity.start(context); - break; - case R.id.tv_shield_manager: - ShieldManageActivity.start(context); - break; - case R.id.rly_permission: - PermissionGuideActivity.Companion.start(context); - break; - case R.id.rly_check: - AppUpgradeHelper.checkAppUpgrade(this, getDialogManager()); - break; - } - } - - private void clearCache() { - try { - - SharedPreferenceUtils.remove(SharedPreferenceUtils.SEARCH_HISTORY + AuthModel.get().getCurrentUid()); - - File dataDir; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { - dataDir = new File(new File(FileHelper.getRootCacheDir().getPath(), "Android"), "data"); - }else { - dataDir = new File(new File(Environment.getExternalStorageDirectory(), "Android"), "data"); + .compose(bindToLifecycle()) + .subscribe { _: UserInfo? -> + //刷新下界面 + initView() } - File appCacheDir = new File(new File(dataDir, context.getPackageName()), "cache"); - JXFileUtils.deleteFile(appCacheDir); - - toast(ResUtil.getString(R.string.ui_setting_settingactivity_011)); - - } catch (Exception ex) { - ex.printStackTrace(); + } + override fun onClick(view: View) { + when (view.id) { + R.id.rly_bind_phone -> { + val userInfo = UserModel.get().cacheLoginUserInfo + if (userInfo != null && userInfo.isBindPhone) { + ShowBindPhoneActivity.start(context) + } else { + BindPhoneActivity.start(this) + } + } + R.id.rly_contact_us -> UIHelper.openContactUs(this) + R.id.rly_help -> UIHelper.showUsinghelp(this) + R.id.rly_update -> startActivity(Intent(applicationContext, AboutActivity::class.java)) + R.id.tv_black_manager -> BlackListManageActivity.start(this) + R.id.rly_login_pwd -> ModifyPwdActivity.start(this, ModifyPwdActivity.LOGIN_PWD) + R.id.rly_pay_pwd -> { + if (UserModel.get().cacheLoginUserInfo == null) { + toast(ResUtil.getString(R.string.ui_setting_settingactivity_06)) + return + } + ModifyPwdActivity.start(this, ModifyPwdActivity.PAY_PWD) + } + R.id.btn_login_out -> { + dialogManager.showProgressDialog(this) + LogoutHelper.logout() + } + R.id.tv_community_norms -> CommonWebViewActivity.start( + this, + UriProvider.getCommnunityNorms() + ) + R.id.rly_clear_cache -> dialogManager.showOkCancelWithTitleDialog(ResUtil.getString(R.string.ui_setting_settingactivity_07), + SpannableString(ResUtil.getString(R.string.ui_setting_settingactivity_08)), + ResUtil.getString(R.string.ui_setting_settingactivity_09), + ResUtil.getString(R.string.ui_setting_settingactivity_010), + object : OkCancelDialogListener { + override fun onCancel() {} + override fun onOk() { + clearCache() + } + }) + R.id.tv_notice_setting -> NoticeSettingActivity.start(context) + R.id.tv_shield_manager -> ShieldManageActivity.start(context) + R.id.rly_permission -> PermissionGuideActivity.start(context) + R.id.rly_check -> AppUpgradeHelper.checkAppUpgrade(this, dialogManager) } } - private void initView() { - UserInfo cacheLoginUserInfo = UserModel.get().getCacheLoginUserInfo(); - if (cacheLoginUserInfo == null) return; - if (cacheLoginUserInfo.isBindPasswd()) { - settingBinding.tvLoginPwd.setText(ResUtil.getString(R.string.text_reset_password)); - } else { - settingBinding.tvLoginPwd.setText(ResUtil.getString(R.string.ui_setting_settingactivity_016)); + private fun clearCache() { + try { + SharedPreferenceUtils.remove(SharedPreferenceUtils.SEARCH_HISTORY + AuthModel.get().currentUid) + val dataDir = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + File(File(FileHelper.getRootCacheDir().path, "Android"), "data") + } else { + File(File(Environment.getExternalStorageDirectory(), "Android"), "data") + } + val appCacheDir = File(File(dataDir, context.packageName), "cache") + JXFileUtils.deleteFile(appCacheDir) + toast(ResUtil.getString(R.string.ui_setting_settingactivity_011)) + } catch (ex: Exception) { + ex.printStackTrace() } } - public static class MissingPermissionException extends RuntimeException { - public MissingPermissionException(String message) { - super(message); - } + class MissingPermissionException(message: String?) : RuntimeException(message) + + override fun needSteepStateBar(): Boolean { + return true } - @Override - protected boolean needSteepStateBar() { - return true; - } - - @Override - protected void setStatusBar() { - super.setStatusBar(); - StatusBarUtil.transparencyBar(this); - StatusBarUtil.StatusBarLightMode(this); + override fun setStatusBar() { + super.setStatusBar() + StatusBarUtil.transparencyBar(this) + StatusBarUtil.StatusBarLightMode(this) } @Subscribe(threadMode = ThreadMode.MAIN) - public void onLogoutEvent(LogoutEvent event) { - getDialogManager().dismissDialog(); - finish(); + fun onLogoutEvent(event: LogoutEvent?) { + dialogManager.dismissDialog() + finish() } - @Override - protected void onDestroy() { - super.onDestroy(); - getDialogManager().dismissDialog(); - EventBus.getDefault().unregister(this); + override fun onDestroy() { + super.onDestroy() + dialogManager.dismissDialog() + EventBus.getDefault().unregister(this) } - -} +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_setting.xml b/app/src/main/res/layout/activity_setting.xml index 6ec641af4..60106591e 100644 --- a/app/src/main/res/layout/activity_setting.xml +++ b/app/src/main/res/layout/activity_setting.xml @@ -1,460 +1,437 @@ - + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@color/bg_normal_1c1b22" + android:orientation="vertical"> - - - - - - + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/dp_30" /> - + + + android:orientation="vertical"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + android:layout_height="50dp" + android:clickable="true" + android:focusable="true"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file