From 6403ddc78af1190995fa4f6335b57b3820fa2fc6 Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期二, 22 四月 2025 14:20:10 +0800
Subject: [PATCH] add: 消息提醒图片,code工具类
---
app/src/main/res/drawable/reminder_png.png | 0
app/src/main/res/layout/activity_reminder_settings.xml | 2
app/src/main/java/com/example/firstapp/utils/CodeUtils.kt | 202 ++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 203 insertions(+), 1 deletions(-)
diff --git a/app/src/main/java/com/example/firstapp/utils/CodeUtils.kt b/app/src/main/java/com/example/firstapp/utils/CodeUtils.kt
new file mode 100644
index 0000000..7ac26fe
--- /dev/null
+++ b/app/src/main/java/com/example/firstapp/utils/CodeUtils.kt
@@ -0,0 +1,202 @@
+package com.example.firstapp.utils
+
+import com.example.firstapp.core.Core
+import com.example.firstapp.database.entity.Code
+import android.util.Log
+
+object CodeUtils {
+ private const val TAG = "CodeUtils"
+
+ /**
+ * 保存code到数据库,如果已存在则跳过
+ * @param code 要保存的code对象
+ * @return Boolean 是否成功保存
+ */
+ fun saveCode(code: Code): Boolean {
+ // 检查必要字段是否为空
+ if (code.oneLevel.isEmpty() || code.code.isEmpty()) {
+ Log.d(TAG, "保存失败:必要字段为空")
+ return false
+ }
+
+ // 检查是否已存在相同记录
+ val existingCode = Core.code.queryByTypeAndCodeAndDate(
+ code.category,
+ code.code,
+ code.createTime
+ )
+
+ return if (existingCode == null) {
+ try {
+ Core.code.insert(code)
+ Log.d(TAG, "成功保存${code.category}记录: ${code.code}")
+ true
+ } catch (e: Exception) {
+ Log.e(TAG, "保存${code.category}记录失败: ${e.message}")
+ false
+ }
+ } else {
+ Log.d(TAG, "发现重复${code.category}记录,跳过保存: ${code.code}")
+ false
+ }
+ }
+
+ /**
+ * 创建快递类型的Code对象
+ */
+ fun createExpressCode(
+ msgId: Long,
+ createTime: String,
+ post: String?,
+ company: String?,
+ pickupCode: String?,
+ address: String?,
+ time: String?
+ ): Code {
+// val secondLevel = if (company.isNullOrEmpty()) "未知" else company
+ return Code(
+ id = 0,
+ category = "快递",
+ categoryId = 1,
+ typeId = 1,
+ ruleId = 1,
+ msgId = msgId,
+ createTime = createTime,
+ oneLevel = post ?: "",
+ secondLevel = if (company.isNullOrEmpty()) "未知" else company,
+ code = pickupCode ?: "",
+ pickup = 0,
+ pickupTime = "",
+ overTime = "",
+ address = address ?: "",
+ remarks = time ?: ""
+ )
+ }
+
+ /**
+ * 创建还款类型的Code对象
+ */
+ fun createRepaymentCode(
+ msgId: Long,
+ createTime: String,
+ type: String?,
+ bank: String?,
+ amount: String?,
+ date: String?,
+ address: String?,
+ minAmount: String?,
+ number: String?
+ ): Code {
+ return Code(
+ id = 0,
+ category = "还款",
+ categoryId = 2,
+ typeId = 1,
+ ruleId = 2,
+ msgId = msgId,
+ createTime = createTime,
+ oneLevel = type ?: "还款",
+ secondLevel = if (bank.isNullOrEmpty()) "未知" else bank ,
+ code = amount ?: "",
+ pickup = 0,
+ pickupTime = "",
+ overTime = date ?: "",
+ address = address ?: "",
+ remarks = "最小还款金额${minAmount ?: ""}还款卡号${number ?: ""}"
+ )
+ }
+
+ /**
+ * 创建收入类型的Code对象
+ */
+ fun createIncomeCode(
+ msgId: Long,
+ createTime: String,
+ bank: String?,
+ amount: String?,
+ datetime: String?,
+ address: String?,
+ balance: String?
+ ): Code {
+ return Code(
+ id = 0,
+ category = "收入",
+ categoryId = 3,
+ typeId = 1,
+ ruleId = 2,
+ msgId = msgId,
+ createTime = createTime,
+ oneLevel = bank ?: "",
+ secondLevel = if (bank.isNullOrEmpty()) "未知" else bank,
+ code = amount ?: "",
+ pickup = 0,
+ pickupTime = "",
+ overTime = datetime ?: "",
+ address = address ?: "",
+ remarks = "余额${balance ?: ""}"
+ )
+ }
+
+ /**
+ * 创建航班类型的Code对象
+ */
+ fun createFlightCode(
+ msgId: Long,
+ createTime: String,
+ company: String?,
+ start: String?,
+ end: String?,
+ seat: String?,
+ time: String?,
+ address: String?
+ ): Code {
+ return Code(
+ id = 0,
+ category = "航班",
+ categoryId = 4,
+ typeId = 1,
+ ruleId = 2,
+ msgId = msgId,
+ createTime = createTime,
+ oneLevel = company ?: "",
+ secondLevel = "${start ?: ""}${end ?: ""}",
+ code = seat ?: "",
+ pickup = 0,
+ pickupTime = "",
+ overTime = time ?: "",
+ address = address ?: "",
+ remarks = seat ?: ""
+ )
+ }
+
+ /**
+ * 创建火车票类型的Code对象
+ */
+ fun createTrainTicketCode(
+ msgId: Long,
+ createTime: String,
+ company: String?,
+ seat: String?,
+ time: String?,
+ address: String?,
+ trips: String?
+ ): Code {
+ return Code(
+ id = 0,
+ category = "火车票",
+ categoryId = 5,
+ typeId = 1,
+ ruleId = 2,
+ msgId = msgId,
+ createTime = createTime,
+ oneLevel = company ?: "",
+ secondLevel = company ?: "未知",
+ code = seat ?: "",
+ pickup = 0,
+ pickupTime = "",
+ overTime = time ?: "",
+ address = address ?: "",
+ remarks = trips ?: ""
+ )
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/reminder_png.png b/app/src/main/res/drawable/reminder_png.png
new file mode 100644
index 0000000..085c1f6
--- /dev/null
+++ b/app/src/main/res/drawable/reminder_png.png
Binary files differ
diff --git a/app/src/main/res/layout/activity_reminder_settings.xml b/app/src/main/res/layout/activity_reminder_settings.xml
index 53b1571..5675196 100644
--- a/app/src/main/res/layout/activity_reminder_settings.xml
+++ b/app/src/main/res/layout/activity_reminder_settings.xml
@@ -228,7 +228,7 @@
android:background="#F8F8F8"
android:contentDescription="通知示例"
android:padding="8dp"
- android:src="@drawable/up" />
+ android:src="@drawable/reminder_png" />
</LinearLayout>
</androidx.cardview.widget.CardView>
--
Gitblit v1.9.3