From f496392b24eb9c9a38498cbbf03159ef5aa037d1 Mon Sep 17 00:00:00 2001 From: tj <1378534974@qq.com> Date: 星期一, 21 四月 2025 15:38:08 +0800 Subject: [PATCH] 1.好友邀请-我的邀请记录:列表样式重写,图片显示 2.已登录的用户点击应用图标之后直接登录 --- app/src/main/java/com/example/firstapp/activity/SettingActivity.kt | 61 ++++++++++++++++++++++++++++++ 1 files changed, 61 insertions(+), 0 deletions(-) diff --git a/app/src/main/java/com/example/firstapp/activity/SettingActivity.kt b/app/src/main/java/com/example/firstapp/activity/SettingActivity.kt index f20a9c1..4741173 100644 --- a/app/src/main/java/com/example/firstapp/activity/SettingActivity.kt +++ b/app/src/main/java/com/example/firstapp/activity/SettingActivity.kt @@ -10,6 +10,12 @@ import android.widget.Button import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope +import android.os.Build +import android.Manifest +import android.content.Context +import android.content.pm.PackageManager +import androidx.activity.result.contract.ActivityResultContracts +import androidx.core.content.ContextCompat import com.example.firstapp.databinding.ActivitySettingBinding import com.example.firstapp.R @@ -30,6 +36,26 @@ ViewModelProvider(this).get(HomeViewModel::class.java) } private var isFullscreen: Boolean = false + + // 添加通知权限请求 + private val notificationPermissionRequest = + registerForActivityResult(ActivityResultContracts.RequestPermission()) { isGranted -> + if (isGranted) { + // 权限已授予,可以发送通知 + AlertDialog.Builder(this) + .setTitle("通知权限") + .setMessage("通知权限已开启,您将能收到重要提醒") + .setPositiveButton("确定", null) + .show() + } else { + // 权限被拒绝 + AlertDialog.Builder(this) + .setTitle("通知权限") + .setMessage("通知权限被拒绝,应用将无法发送提醒通知。您可以在系统设置中手动开启权限。") + .setPositiveButton("确定", null) + .show() + } + } @SuppressLint("ClickableViewAccessibility") override fun onCreate(savedInstanceState: Bundle?) { @@ -65,6 +91,8 @@ // }) + // 通知权限 + setupNotificationPermission() // 退出登录 logout() // 账号注销 @@ -74,6 +102,35 @@ + } + + private fun setupNotificationPermission() { + binding.notificationPermission.setOnClickListener { + // 请求通知权限(在Android 13及以上需要) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + if (ContextCompat.checkSelfPermission( + this, + Manifest.permission.POST_NOTIFICATIONS + ) != PackageManager.PERMISSION_GRANTED + ) { + notificationPermissionRequest.launch(Manifest.permission.POST_NOTIFICATIONS) + } else { + // 已经有权限 + AlertDialog.Builder(this) + .setTitle("通知权限") + .setMessage("您已经开启了通知权限") + .setPositiveButton("确定", null) + .show() + } + } else { + // Android 13以下版本不需要请求权限 + AlertDialog.Builder(this) + .setTitle("通知权限") + .setMessage("当前系统版本无需单独请求通知权限") + .setPositiveButton("确定", null) + .show() + } + } } private fun aboutCompany(){ @@ -111,6 +168,7 @@ lifecycleScope.launch { try { // 清除本地的数据库 + RetrofitClient.apiService.closeAccount() Core.code.deleteAll() @@ -118,6 +176,9 @@ Core.keyword.deleteAll() // Core.reminder.deleteAll() + // 清楚登录相关信息 + homeViewModel.logout() + dialog.dismiss() // 跳转到 LoginActivity 并清除之前的任务栈 var intent = Intent(this@SettingActivity, LoginActivity::class.java) -- Gitblit v1.9.3