| | |
| | | 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 |
| | |
| | | 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() { |
| | | |
| | |
| | | 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, |
| | |
| | | |
| | | 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() |
| | | } |
| | | } |
| | | |
| | |
| | | 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 |