From 49f4b178d05c69f7da7b2200f394ece296766bdb Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期二, 25 二月 2025 18:03:45 +0800 Subject: [PATCH] fix 提醒样式处理 --- .idea/deploymentTargetSelector.xml | 2 app/src/main/java/com/example/firstapp/database/dao/ReminderDao.kt | 1 app/src/main/java/com/example/firstapp/adapter/ReminderAdapter.kt | 2 app/src/main/java/com/example/firstapp/database/AppDatabase.kt | 1 app/src/main/java/com/example/firstapp/receiver/SmsReceiver.kt | 2 app/src/main/res/layout/fragment_reminder_settings.xml | 162 +++++++++++++++++++++++++++------------- app/src/main/java/com/example/firstapp/database/entity/Code.kt | 2 app/src/main/java/com/example/firstapp/App.kt | 18 ++++ app/src/main/res/drawable/bg_button_primary.xml | 5 + app/src/main/res/drawable/bg_edit_border.xml | 8 ++ app/src/main/res/layout/item_reminder.xml | 21 ++-- 11 files changed, 156 insertions(+), 68 deletions(-) diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml index 51a703e..3b8cd93 100644 --- a/.idea/deploymentTargetSelector.xml +++ b/.idea/deploymentTargetSelector.xml @@ -4,7 +4,7 @@ <selectionStates> <SelectionState runConfigName="app"> <option name="selectionMode" value="DROPDOWN" /> - <DropdownSelection timestamp="2025-02-14T05:55:28.808113500Z"> + <DropdownSelection timestamp="2025-02-25T09:44:45.437232500Z"> <Target type="DEFAULT_BOOT"> <handle> <DeviceId pluginId="PhysicalDevice" identifier="serial=88Y5T19C14010323" /> diff --git a/app/src/main/java/com/example/firstapp/App.kt b/app/src/main/java/com/example/firstapp/App.kt index 4e0a37b..6663556 100644 --- a/app/src/main/java/com/example/firstapp/App.kt +++ b/app/src/main/java/com/example/firstapp/App.kt @@ -3,10 +3,14 @@ import android.annotation.SuppressLint import android.app.Application import android.app.PendingIntent +import android.bluetooth.BluetoothAdapter +import android.bluetooth.BluetoothDevice import android.content.Context import android.content.Intent import android.content.IntentFilter import android.location.Geocoder +import android.net.ConnectivityManager +import android.net.wifi.WifiManager import android.os.Build import androidx.lifecycle.MutableLiveData import androidx.multidex.MultiDex @@ -16,26 +20,35 @@ import com.gyf.cactus.callback.CactusCallback import com.gyf.cactus.ext.cactus import com.hjq.language.MultiLanguages +import com.hjq.language.OnLanguageListener import com.example.firstapp.core.Core -import com.example.firstapp.database.repository.ReminderRepository import com.example.firstapp.database.repository.CodeRepository import com.example.firstapp.database.repository.KeywordRepository import com.example.firstapp.database.repository.MsgRepository +import com.example.firstapp.database.repository.ReminderRepository import com.example.firstapp.database.service.RetrofitClient import com.example.firstapp.receiver.CactusReceiver +import com.example.firstapp.service.BluetoothScanService +import com.example.firstapp.service.HttpServerService +import com.example.firstapp.utils.ACTION_START import com.example.firstapp.utils.AppInfo +import com.example.firstapp.utils.CactusSave import com.example.firstapp.utils.FRONT_CHANNEL_ID import com.example.firstapp.utils.FRONT_CHANNEL_NAME import com.example.firstapp.utils.FRONT_NOTIFY_ID import com.example.firstapp.utils.FRPC_LIB_VERSION +import com.example.firstapp.utils.HistoryUtils import com.example.firstapp.utils.Log import com.example.firstapp.utils.SettingUtils +import com.example.firstapp.utils.SharedPreference import com.example.firstapp.utils.tinker.TinkerLoadLibrary import com.king.location.LocationClient import com.xuexiang.xutil.file.FileUtils import frpclib.Frpclib +import io.reactivex.Observable import io.reactivex.disposables.Disposable +import io.reactivex.schedulers.Schedulers import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.SupervisorJob import java.io.BufferedWriter @@ -45,6 +58,8 @@ import java.text.SimpleDateFormat import java.util.Date import java.util.Locale +import java.util.TimeZone +import java.util.concurrent.TimeUnit @Suppress("DEPRECATION") class App : Application(), CactusCallback, Configuration.Provider by Core { @@ -55,7 +70,6 @@ val codeRepository by lazy { CodeRepository(database.codeDao()) } val reminderRepository by lazy { ReminderRepository(database.reminderDao()) } val keywordRepository by lazy { KeywordRepository(RetrofitClient.apiService,database.keywordDao()) } - companion object { const val TAG: String = "SmsForwarder" diff --git a/app/src/main/java/com/example/firstapp/adapter/ReminderAdapter.kt b/app/src/main/java/com/example/firstapp/adapter/ReminderAdapter.kt index fb4335b..e4a2ade 100644 --- a/app/src/main/java/com/example/firstapp/adapter/ReminderAdapter.kt +++ b/app/src/main/java/com/example/firstapp/adapter/ReminderAdapter.kt @@ -15,7 +15,7 @@ fun bind(reminder: Reminder, onDelete: (Reminder) -> Unit) { binding.textNickname.text = reminder.nickname - binding.textKeywords.text = reminder.keywords + //binding.textKeywords.text = reminder.keywords binding.btnDelete.setOnClickListener { onDelete(reminder) } } } diff --git a/app/src/main/java/com/example/firstapp/database/AppDatabase.kt b/app/src/main/java/com/example/firstapp/database/AppDatabase.kt index 8c2b7c0..2251240 100644 --- a/app/src/main/java/com/example/firstapp/database/AppDatabase.kt +++ b/app/src/main/java/com/example/firstapp/database/AppDatabase.kt @@ -1,6 +1,5 @@ package com.example.firstapp - import android.content.Context import androidx.room.Database import androidx.room.Room diff --git a/app/src/main/java/com/example/firstapp/database/dao/ReminderDao.kt b/app/src/main/java/com/example/firstapp/database/dao/ReminderDao.kt index 8c9b629..59d5af1 100644 --- a/app/src/main/java/com/example/firstapp/database/dao/ReminderDao.kt +++ b/app/src/main/java/com/example/firstapp/database/dao/ReminderDao.kt @@ -1,4 +1,5 @@ package com.example.firstapp.database.dao + import androidx.room.* import com.example.firstapp.database.entity.Reminder import kotlinx.coroutines.flow.Flow diff --git a/app/src/main/java/com/example/firstapp/database/entity/Code.kt b/app/src/main/java/com/example/firstapp/database/entity/Code.kt index a4cf519..ac1f130 100644 --- a/app/src/main/java/com/example/firstapp/database/entity/Code.kt +++ b/app/src/main/java/com/example/firstapp/database/entity/Code.kt @@ -15,5 +15,7 @@ val msgId: Long, val code: String, var overtime: String, + var name: String, var time: Date = Date(), + ) diff --git a/app/src/main/java/com/example/firstapp/receiver/SmsReceiver.kt b/app/src/main/java/com/example/firstapp/receiver/SmsReceiver.kt index f6fcaa2..db9f14c 100644 --- a/app/src/main/java/com/example/firstapp/receiver/SmsReceiver.kt +++ b/app/src/main/java/com/example/firstapp/receiver/SmsReceiver.kt @@ -84,7 +84,7 @@ // 转换为字符串 val overtime = futureTime.format(formatter) // 封装成一个Code对象,并保存在数据库中 - val code = Code(0, rule.type,1, rule.content,1, 1, msgId, code, overtime) + val code = Code(0, rule.type,1, rule.content,1, 1, msgId, code, overtime,"中通") Core.code.insert(code) Log.d("SMS_DEBUG", "新短信已保存到数据库") // 发送广播通知数据已更新 diff --git a/app/src/main/res/drawable/bg_button_primary.xml b/app/src/main/res/drawable/bg_button_primary.xml new file mode 100644 index 0000000..0ea70b4 --- /dev/null +++ b/app/src/main/res/drawable/bg_button_primary.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android"> + <solid android:color="#666666"/> + <corners android:radius="4dp"/> +</shape> \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_edit_border.xml b/app/src/main/res/drawable/bg_edit_border.xml new file mode 100644 index 0000000..37e31a5 --- /dev/null +++ b/app/src/main/res/drawable/bg_edit_border.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android"> + <solid android:color="#FFFFFF"/> + <stroke + android:width="1dp" + android:color="#E0E0E0"/> + <corners android:radius="4dp"/> +</shape> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_reminder_settings.xml b/app/src/main/res/layout/fragment_reminder_settings.xml index 8403cd9..6c6fdc1 100644 --- a/app/src/main/res/layout/fragment_reminder_settings.xml +++ b/app/src/main/res/layout/fragment_reminder_settings.xml @@ -2,21 +2,23 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" - android:orientation="vertical"> + android:orientation="vertical" + android:background="#FAFAFA"> <!-- 标题栏 --> <RelativeLayout android:layout_width="match_parent" - android:layout_height="?attr/actionBarSize" - android:background="#FFFFFF"> + android:layout_height="56dp" + android:background="#FFFFFF" + android:elevation="1dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="新增短信提醒" - android:textSize="18sp" - android:textColor="#000000" /> + android:textSize="17sp" + android:textColor="#222222" /> <!-- 关闭按钮 --> <ImageButton @@ -26,63 +28,119 @@ android:layout_alignParentEnd="true" android:layout_centerVertical="true" android:background="?attr/selectableItemBackgroundBorderless" + android:padding="12dp" android:src="@android:drawable/ic_menu_close_clear_cancel" /> </RelativeLayout> - <!-- 提醒类型选择 --> - <Spinner - android:id="@+id/spinner_type" + <!-- 内容区域 --> + <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_margin="16dp" - android:padding="12dp" - android:background="@android:drawable/btn_dropdown" /> + android:orientation="vertical" + android:padding="16dp"> - <!-- 昵称输入框 --> - <EditText - android:id="@+id/edit_nickname" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginHorizontal="16dp" - android:hint="昵称" - android:padding="12dp" - android:background="@android:drawable/edit_text" /> + <!-- 提醒类型选择 --> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:layout_marginBottom="16dp"> - <!-- 关键词输入框 --> - <EditText - android:id="@+id/edit_keywords" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_margin="16dp" - android:hint="关键词" - android:padding="12dp" - android:background="@android:drawable/edit_text" /> + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="选择新增类型 →" + android:textColor="#666666" + android:textSize="14sp" + android:layout_marginBottom="8dp"/> - <!-- 已添加列表标题 --> - <Button - android:id="@+id/btn_add_reminder" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_margin="16dp" - android:backgroundTint="#03A9F4" - android:text="确定新增" - android:textColor="#FFFFFF" /> + <Spinner + android:id="@+id/spinner_type" + android:layout_width="match_parent" + android:layout_height="48dp" + android:background="@drawable/bg_edit_border" + android:paddingHorizontal="12dp"/> + </LinearLayout> - <TextView - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:padding="16dp" - android:text="已添加列表" - android:textStyle="bold" /> + <!-- 昵称输入框 --> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:layout_marginBottom="16dp"> - <!-- 已添加列表 --> - <androidx.recyclerview.widget.RecyclerView - android:id="@+id/recycler_reminders" - android:layout_width="match_parent" - android:layout_height="221dp" - android:layout_weight="1" - android:padding="8dp" /> + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="昵称 →" + android:textColor="#666666" + android:textSize="14sp" + android:layout_marginBottom="8dp"/> - <!-- 确定新增按钮 --> + <EditText + android:id="@+id/edit_nickname" + android:layout_width="match_parent" + android:layout_height="48dp" + android:background="@drawable/bg_edit_border" + android:hint="仅用于显示与区分,可任意输入" + android:textColorHint="#999999" + android:textSize="14sp" + android:paddingHorizontal="12dp"/> + </LinearLayout> + + <!-- 关键词输入框 --> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:layout_marginBottom="16dp"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="关键词 →" + android:textColor="#666666" + android:textSize="14sp" + android:layout_marginBottom="8dp"/> + + <EditText + android:id="@+id/edit_keywords" + android:layout_width="match_parent" + android:layout_height="48dp" + android:background="@drawable/bg_edit_border" + android:hint="用于匹配短信类型" + android:textColorHint="#999999" + android:textSize="14sp" + android:paddingHorizontal="12dp"/> + </LinearLayout> + + <!-- 确定新增按钮 --> + <Button + android:id="@+id/btn_add_reminder" + android:layout_width="match_parent" + android:layout_height="48dp" + android:text="确定新增" + android:textColor="#FFFFFF" + android:textSize="16sp" + android:background="@drawable/bg_button_primary" + android:layout_marginTop="16dp"/> + + <!-- 已添加列表 --> + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="已添加列表 →" + android:textColor="#666666" + android:textSize="14sp" + android:layout_marginTop="24dp" + android:layout_marginBottom="8dp"/> + + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/recycler_reminders" + android:layout_width="match_parent" + android:layout_height="160dp" + android:layout_marginTop="2dp" /> + + </LinearLayout> </LinearLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/item_reminder.xml b/app/src/main/res/layout/item_reminder.xml index 98b1aa9..e6bcbe3 100644 --- a/app/src/main/res/layout/item_reminder.xml +++ b/app/src/main/res/layout/item_reminder.xml @@ -2,12 +2,13 @@ <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" - android:padding="12dp" + android:padding="8dp" android:background="@android:color/white"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginEnd="0dp" android:layout_toStartOf="@id/btn_delete" android:orientation="vertical"> @@ -15,16 +16,16 @@ android:id="@+id/text_nickname" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:textSize="16sp" - android:textColor="#000000" /> + android:textColor="#000000" + android:textSize="16sp" /> - <TextView - android:id="@+id/text_keywords" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginTop="4dp" - android:textSize="14sp" - android:textColor="#666666" /> +<!-- <TextView--> +<!-- android:id="@+id/text_keywords"--> +<!-- android:layout_width="wrap_content"--> +<!-- android:layout_height="wrap_content"--> +<!-- android:layout_marginTop="4dp"--> +<!-- android:textColor="#666666"--> +<!-- android:textSize="14sp" />--> </LinearLayout> <ImageButton -- Gitblit v1.9.3