From dde2eeddbaf07246da7c2c352e7d49ec63fddcd2 Mon Sep 17 00:00:00 2001
From: tj <1378534974@qq.com>
Date: 星期五, 28 三月 2025 14:56:29 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 app/src/main/java/com/example/firstapp/ui/reminder/ReminderSettingsFragment.kt |   78 +++++++++++++++++++++++++++++++++------
 1 files changed, 66 insertions(+), 12 deletions(-)

diff --git a/app/src/main/java/com/example/firstapp/ui/reminder/ReminderSettingsFragment.kt b/app/src/main/java/com/example/firstapp/ui/reminder/ReminderSettingsFragment.kt
index 4454886..b0b459c 100644
--- a/app/src/main/java/com/example/firstapp/ui/reminder/ReminderSettingsFragment.kt
+++ b/app/src/main/java/com/example/firstapp/ui/reminder/ReminderSettingsFragment.kt
@@ -1,18 +1,31 @@
 package com.example.firstapp.ui.reminder
 
+import ReminderAdapter
 import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import android.widget.ArrayAdapter
 import android.widget.Toast
+import androidx.appcompat.app.AppCompatActivity
 import androidx.fragment.app.Fragment
+import androidx.fragment.app.viewModels
 import androidx.navigation.fragment.findNavController
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.example.firstapp.App
+import com.example.firstapp.database.entity.Reminder
 import com.example.firstapp.databinding.FragmentReminderSettingsBinding
 
 class ReminderSettingsFragment : Fragment() {
 
     private var _binding: FragmentReminderSettingsBinding? = null
     private val binding get() = _binding!!
+
+    private val reminderViewModel: ReminderViewModel by viewModels {
+        ReminderViewModelFactory((requireActivity().application as App).reminderRepository)
+    }
+
+    private lateinit var adapter: ReminderAdapter
 
     override fun onCreateView(
         inflater: LayoutInflater,
@@ -26,21 +39,62 @@
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         super.onViewCreated(view, savedInstanceState)
 
-        // 返回按钮点击事件
-        binding.btnBack.setOnClickListener {
-            findNavController().navigateUp()
-        }
+        (activity as AppCompatActivity).supportActionBar?.setDisplayHomeAsUpEnabled(true)
 
-        // 添加提醒按钮点击事件
+        setupSpinner()
+        setupRecyclerView()
+        setupClickListeners()
+        observeReminders()
+    }
+
+    private fun setupSpinner() {
+        val types = arrayOf("快递", "还款", "其他")
+        val adapter = ArrayAdapter(requireContext(), android.R.layout.simple_spinner_item, types)
+        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
+        binding.spinnerType.adapter = adapter
+    }
+
+    private fun setupRecyclerView() {
+        adapter = ReminderAdapter { reminder ->
+            reminderViewModel.deleteReminder(reminder)
+        }
+        binding.recyclerReminders.apply {
+            layoutManager = LinearLayoutManager(context)
+            this.adapter = this@ReminderSettingsFragment.adapter
+        }
+    }
+
+    private fun setupClickListeners() {
+//        binding.btnClose.setOnClickListener {
+//            findNavController().navigateUp()
+//        }
+
         binding.btnAddReminder.setOnClickListener {
-            val reminderText = binding.editQuickReminder.text.toString()
-            if (reminderText.isNotEmpty()) {
-                // TODO: 保存提醒到数据库
-                Toast.makeText(context, "提醒已添加", Toast.LENGTH_SHORT).show()
-                binding.editQuickReminder.text.clear()
-            } else {
-                Toast.makeText(context, "请输入提醒内容", Toast.LENGTH_SHORT).show()
+            val type = binding.spinnerType.selectedItem.toString()
+            val nickname = binding.editNickname.text.toString()
+            val keywords = binding.editKeywords.text.toString()
+
+            if (nickname.isBlank() || keywords.isBlank()) {
+                Toast.makeText(context, "请填写完整信息", Toast.LENGTH_SHORT).show()
+                return@setOnClickListener
             }
+
+            reminderViewModel.insertReminder(
+                Reminder(
+                    type = type,
+                    nickname = nickname,
+                    keywords = keywords
+                )
+            )
+
+            binding.editNickname.text.clear()
+            binding.editKeywords.text.clear()
+        }
+    }
+
+    private fun observeReminders() {
+        reminderViewModel.allReminders.observe(viewLifecycleOwner) { reminders ->
+            adapter.submitList(reminders)
         }
     }
 

--
Gitblit v1.9.3