cloudroam
2025-03-13 c6adb1c42a76001de0978e99f73cd6f5678c685e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
package com.example.firstapp.ui.notifications
 
import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.EditText
import android.widget.Toast
import androidx.fragment.app.Fragment
import androidx.navigation.fragment.findNavController
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.example.firstapp.R
import com.example.firstapp.activity.ContentDetailActivity
import com.example.firstapp.databinding.FragmentNotificationsBinding
import com.example.firstapp.ui.reminderOther.ReminderOtherAddActivity2
import com.example.firstapp.ui.reminderOther.ReminderSettingsFragmentOther
 
class NotificationsFragment : Fragment() {
 
    private var _binding: FragmentNotificationsBinding? = null
 
    // This property is only valid between onCreateView and
    // onDestroyView.
    private val binding get() = _binding!!
 
    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View {
        _binding = FragmentNotificationsBinding.inflate(inflater, container, false)
 
        setupClickListeners()
 
        return binding.root
    }
 
    private fun setupClickListeners() {
        // 设置提醒
        binding.settingsReminder.setOnClickListener {
            // 跳转到设置提醒页面
            findNavController().navigate(R.id.action_navigation_notifications_to_reminderSettingsFragment)
        }
 
//         设置其他提醒 暂时不需要
//        binding.settingsReminderOther.setOnClickListener {
//            // 跳转到设置提醒页面
//            findNavController().navigate(R.id.action_settings_to_reminderSettingsFragmentOther)
//        }
 
 
 
        // 关于小红书
        binding.aboutApp.setOnClickListener {
            // 跳转到小红书账号页面
            val intent = Intent(Intent.ACTION_VIEW, Uri.parse("https://www.xiaohongshu.com/user/profile/64978d5c000000001001ee26"))
            startActivity(intent)
        }
 
        // 邮件联系
        binding.emailContact.setOnClickListener {
            showEmailDialog()
        }
 
        // 意见与反馈
        binding.feedback.setOnClickListener {
            showFeedbackDialog()
        }
 
        // 分享给好友
        binding.shareToFriends.setOnClickListener {
            shareToWechat()
        }
 
        // 隐私协议
        binding.privacyPolicy.setOnClickListener {
            startContentActivity("privacy_policy", "隐私协议")
        }
 
        // 如何使用
        binding.howToUse.setOnClickListener {
            startContentActivity("user_guide", "使用说明")
        }
    }
 
    private fun showEmailDialog() {
        val email = "support@example.com"
        MaterialAlertDialogBuilder(requireContext())
            .setTitle("联系邮箱")
            .setMessage(email)
            .setPositiveButton("复制") { _, _ ->
                val clipboard = requireContext().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
                val clip = ClipData.newPlainText("email", email)
                clipboard.setPrimaryClip(clip)
                Toast.makeText(context, "邮箱已复制", Toast.LENGTH_SHORT).show()
            }
            .setNegativeButton("取消", null)
            .show()
    }
 
    private fun showFeedbackDialog() {
        val dialogView = LayoutInflater.from(context).inflate(R.layout.dialog_feedback, null)
        val editText = dialogView.findViewById<EditText>(R.id.feedback_edit_text)
 
        MaterialAlertDialogBuilder(requireContext())
            .setTitle("意见反馈")
            .setView(dialogView)
            .setPositiveButton("提交") { _, _ ->
                val feedback = editText.text.toString()
                if (feedback.isNotEmpty()) {
                    // TODO: 提交反馈到服务器
                    Toast.makeText(context, "感谢您的反馈", Toast.LENGTH_SHORT).show()
                }
            }
            .setNegativeButton("取消", null)
            .show()
    }
 
    private fun shareToWechat() {
        try {
            // 获取应用程序的包名
            //val packageName = requireContext().packageName
 
            // 创建分享文本
            val shareText = "推荐一个很棒的应用给你!\n" + "下载地址:https://oia.xiaohongshu.com/oia"
 
            // 创建分享意图
            val intent = Intent().apply {
                action = Intent.ACTION_SEND
                type = "text/plain"
                putExtra(Intent.EXTRA_TEXT, shareText)
 
                // 指定分享到微信
                setPackage("com.tencent.mm")
            }
//            intent.setPackage("com.tencent.mm")
//            intent.action = Intent.ACTION_SEND
//            intent.type = "text/plain"
//            intent.putExtra(Intent.EXTRA_TEXT, "推荐一个很棒的应用给你!")
            startActivity(Intent.createChooser(intent, "分享到微信"))
        } catch (e: Exception) {
            Toast.makeText(context, "请先安装微信", Toast.LENGTH_SHORT).show()
        }
    }
 
    private fun startContentActivity(type: String, title: String) {
        val intent = Intent(requireContext(), ContentDetailActivity::class.java).apply {
            putExtra(ContentDetailActivity.EXTRA_CONTENT_TYPE, type)
            putExtra(ContentDetailActivity.EXTRA_TITLE, title)
        }
        startActivity(intent)
    }
 
    override fun onDestroyView() {
        super.onDestroyView()
        _binding = null
    }
}