cloudroam
2025-02-25 49f4b178d05c69f7da7b2200f394ece296766bdb
fix 提醒样式处理
已修改9个文件
已添加2个文件
190 ■■■■ 文件已修改
.idea/deploymentTargetSelector.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/example/firstapp/App.kt 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/example/firstapp/adapter/ReminderAdapter.kt 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/example/firstapp/database/AppDatabase.kt 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/example/firstapp/database/dao/ReminderDao.kt 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/example/firstapp/database/entity/Code.kt 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/example/firstapp/receiver/SmsReceiver.kt 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/bg_button_primary.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/bg_edit_border.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/fragment_reminder_settings.xml 128 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/item_reminder.xml 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.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" />
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"
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) }
        }
    }
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
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
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(),
)
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", "新短信已保存到数据库")
                            // 发送广播通知数据已更新
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>
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>
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>
    <!-- 内容区域 -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="16dp">
    <!-- 提醒类型选择 -->
        <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"/>
    <Spinner
        android:id="@+id/spinner_type"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="16dp"
        android:padding="12dp"
        android:background="@android:drawable/btn_dropdown" />
                android:layout_height="48dp"
                android:background="@drawable/bg_edit_border"
                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_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" />
                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="wrap_content"
        android:layout_margin="16dp"
        android:hint="关键词"
        android:padding="12dp"
        android:background="@android:drawable/edit_text" />
                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="wrap_content"
        android:layout_margin="16dp"
        android:backgroundTint="#03A9F4"
            android:layout_height="48dp"
        android:text="确定新增"
        android:textColor="#FFFFFF" />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="16dp"
        android:text="已添加列表"
        android:textStyle="bold" />
            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="221dp"
        android:layout_weight="1"
        android:padding="8dp" />
            android:layout_height="160dp"
            android:layout_marginTop="2dp" />
    <!-- 确定新增按钮 -->
    </LinearLayout>
</LinearLayout>
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