From 168f53f24a8d13968a9e13d3072af8f046f674be Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期一, 24 三月 2025 18:01:58 +0800 Subject: [PATCH] fix 324 免登陆,删除ActionBar --- app/src/main/java/com/example/firstapp/ui/notifications/NotificationsFragment.kt | 131 +++++++++++++++++++++++++++++++++++++------ 1 files changed, 111 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/com/example/firstapp/ui/notifications/NotificationsFragment.kt b/app/src/main/java/com/example/firstapp/ui/notifications/NotificationsFragment.kt index 455a039..a2becfc 100644 --- a/app/src/main/java/com/example/firstapp/ui/notifications/NotificationsFragment.kt +++ b/app/src/main/java/com/example/firstapp/ui/notifications/NotificationsFragment.kt @@ -11,6 +11,8 @@ import android.view.ViewGroup import android.widget.EditText import android.widget.Toast +import androidx.activity.result.contract.ActivityResultContracts +import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.Fragment import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.findNavController @@ -21,7 +23,9 @@ import com.example.firstapp.databinding.FragmentNotificationsBinding import com.example.firstapp.ui.reminderOther.ReminderOtherAddActivity2 import com.example.firstapp.ui.reminderOther.ReminderSettingsFragmentOther +import com.example.firstapp.ui.profile.EditProfileActivity import kotlinx.coroutines.launch +import com.bumptech.glide.Glide class NotificationsFragment : Fragment() { @@ -40,6 +44,31 @@ private var xiaohongshuUrl = "" private var contactEmail = "" private var shareText = "" + + private val editProfileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { result -> + if (result.resultCode == AppCompatActivity.RESULT_OK) { + result.data?.let { data -> + // 更新昵称 + val newNickname = data.getStringExtra("nickname") + newNickname?.let { + binding.tvNickname.text = it + } + + // 更新头像 + val avatarUri = data.getStringExtra("avatar_uri") + avatarUri?.let { + Glide.with(requireContext()) + .load(Uri.parse(it)) + .circleCrop() + .into(binding.ivAvatar) + } + + // TODO: 将更新后的信息保存到服务器 + } + } + } override fun onCreateView( inflater: LayoutInflater, @@ -92,49 +121,72 @@ private fun setupClickListeners() { // 设置提醒 - binding.settingsReminder.setOnClickListener { - // 跳转到设置提醒页面 + binding.layoutReminder.setOnClickListener { findNavController().navigate(R.id.action_navigation_notifications_to_reminderSettingsFragment) } -// 设置其他提醒 暂时不需要 -// binding.settingsReminderOther.setOnClickListener { -// // 跳转到设置提醒页面 -// findNavController().navigate(R.id.action_settings_to_reminderSettingsFragmentOther) -// } + // 待办 + binding.layoutTodo.setOnClickListener { + // TODO: 实现待办功能 + Toast.makeText(context, "待办功能开发中", Toast.LENGTH_SHORT).show() + } + // 好友邀请 + binding.layoutInvite.setOnClickListener { + shareToWechat() + } + // AI助手 + binding.layoutAi.setOnClickListener { + // TODO: 实现AI助手功能 + Toast.makeText(context, "AI助手功能开发中", Toast.LENGTH_SHORT).show() + } + + // 离线模式 + binding.layoutOffline.setOnClickListener { + // TODO: 实现离线模式功能 + Toast.makeText(context, "离线模式功能开发中", Toast.LENGTH_SHORT).show() + } // 关于小红书 - binding.aboutApp.setOnClickListener { - // 跳转到小红书账号页面 + binding.layoutAbout.setOnClickListener { val intent = Intent(Intent.ACTION_VIEW, Uri.parse(xiaohongshuUrl)) startActivity(intent) } // 邮件联系 - binding.emailContact.setOnClickListener { + binding.layoutEmail.setOnClickListener { showEmailDialog() } // 意见与反馈 - binding.feedback.setOnClickListener { + binding.layoutFeedback.setOnClickListener { showFeedbackDialog() } - // 分享给好友 - binding.shareToFriends.setOnClickListener { - shareToWechat() - } - // 隐私协议 - binding.privacyPolicy.setOnClickListener { + binding.layoutPrivacy.setOnClickListener { startContentActivity("privacy_policy", "隐私协议") } - // 如何使用 - binding.howToUse.setOnClickListener { - startContentActivity("user_guide", "使用说明") + // 使用教程 + binding.layoutTutorial.setOnClickListener { + startContentActivity("user_guide", "使用教程") + } + + // 头像点击 + binding.layoutUserInfo.setOnClickListener { + val intent = Intent(requireContext(), EditProfileActivity::class.java).apply { + putExtra("nickname", binding.tvNickname.text.toString()) + // 如果有当前头像的URL,也可以传递 + // putExtra("avatar_url", currentAvatarUrl) + } + editProfileLauncher.launch(intent) + } + + // VIP续费 + binding.btnRenew.setOnClickListener { + Toast.makeText(context, "VIP续费功能开发中", Toast.LENGTH_SHORT).show() } } @@ -198,6 +250,45 @@ startActivity(intent) } + private suspend fun loadUserInfo() { + try { + val response = RetrofitClient.apiService.getUserInfo("17586582287") + if (response.code == "0" && response.data != null) { + val userInfo = response.data + + // 设置头像 + Glide.with(this) + .load(userInfo.cover) + .placeholder(R.drawable.default_avatar) + .into(binding.ivAvatar) + + // 设置昵称和账号 + binding.tvNickname.text = userInfo.name + binding.tvUserId.text = "个人账号:${userInfo.contactTel}" + + // 设置VIP信息 + if (userInfo.showed) { + binding.cardVip.visibility = View.VISIBLE + binding.tvVipExpire.text = "${userInfo.passTime} 到期" + } else { + binding.cardVip.visibility = View.GONE + } + } + } catch (e: Exception) { + e.printStackTrace() + Toast.makeText(context, "获取用户信息失败", Toast.LENGTH_SHORT).show() + } + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + // 加载用户信息 + lifecycleScope.launch { + loadUserInfo() + } + } + override fun onDestroyView() { super.onDestroyView() _binding = null -- Gitblit v1.9.3