From b94a25c09d09b512384c76e6da6a35e3091a07b7 Mon Sep 17 00:00:00 2001 From: pppscn <35696959@qq.com> Date: Thu, 14 Dec 2023 21:51:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=C2=B7=E5=BF=AB=E6=8D=B7=E6=8C=87=E4=BB=A4=20?= =?UTF-8?q?=EF=BC=88=E5=BC=80=E5=8F=91=E4=B8=AD=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sms/forwarder/activity/MainActivity.kt | 4 ++ .../sms/forwarder/database/entity/Task.kt | 36 ++----------- .../sms/forwarder/entity/task/TaskSetting.kt | 34 ++----------- .../forwarder/fragment/TasksEditFragment.kt | 7 +++ .../idormy/sms/forwarder/utils/Constants.kt | 48 ++++++++++++----- .../sms/forwarder/utils/task/TaskUtils.kt | 51 +++++++++++++++++++ .../res/drawable/auto_task_icon_network.xml | 2 +- .../drawable/auto_task_icon_network_tran.xml | 2 +- .../res/layout/dialog_sender_bottom_sheet.xml | 17 ++++++- .../dialog_task_action_bottom_sheet.xml | 17 ++++++- .../dialog_task_condition_bottom_sheet.xml | 17 ++++++- app/src/main/res/values-en/strings.xml | 8 ++- app/src/main/res/values/strings.xml | 8 ++- 13 files changed, 166 insertions(+), 85 deletions(-) diff --git a/app/src/main/java/com/idormy/sms/forwarder/activity/MainActivity.kt b/app/src/main/java/com/idormy/sms/forwarder/activity/MainActivity.kt index 64e2e380..e0672d4b 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/activity/MainActivity.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/activity/MainActivity.kt @@ -46,6 +46,7 @@ import com.xuexiang.xui.adapter.recyclerview.RecyclerViewHolder import com.xuexiang.xui.utils.DensityUtils import com.xuexiang.xui.utils.ResUtils import com.xuexiang.xui.utils.WidgetUtils +import com.xuexiang.xui.widget.alpha.XUIAlphaTextView import com.xuexiang.xui.widget.dialog.materialdialog.DialogAction import com.xuexiang.xui.widget.dialog.materialdialog.GravityEnum import com.xuexiang.xui.widget.dialog.materialdialog.MaterialDialog @@ -329,6 +330,9 @@ class MainActivity : BaseActivity(), widgetItemAdapter.setOnItemClickListener(this) recyclerView.adapter = widgetItemAdapter + val bottomSheetCloseButton: XUIAlphaTextView = view.findViewById(R.id.bottom_sheet_close_button) + bottomSheetCloseButton.setOnClickListener { dialog.dismiss() } + dialog.setContentView(view) dialog.setCancelable(true) dialog.setCanceledOnTouchOutside(true) diff --git a/app/src/main/java/com/idormy/sms/forwarder/database/entity/Task.kt b/app/src/main/java/com/idormy/sms/forwarder/database/entity/Task.kt index 6d58bbd4..57146b02 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/database/entity/Task.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/database/entity/Task.kt @@ -6,15 +6,7 @@ import androidx.room.Entity import androidx.room.PrimaryKey import com.idormy.sms.forwarder.R import com.idormy.sms.forwarder.utils.STATUS_OFF -import com.idormy.sms.forwarder.utils.TASK_ACTION_FRPC -import com.idormy.sms.forwarder.utils.TASK_ACTION_HTTPSERVER -import com.idormy.sms.forwarder.utils.TASK_ACTION_NOTIFICATION -import com.idormy.sms.forwarder.utils.TASK_ACTION_SENDSMS -import com.idormy.sms.forwarder.utils.TASK_CONDITION_BATTERY -import com.idormy.sms.forwarder.utils.TASK_CONDITION_CHARGE -import com.idormy.sms.forwarder.utils.TASK_CONDITION_CRON -import com.idormy.sms.forwarder.utils.TASK_CONDITION_NETWORK -import com.idormy.sms.forwarder.utils.TASK_CONDITION_SIM +import com.idormy.sms.forwarder.utils.task.TaskUtils import kotlinx.parcelize.Parcelize import java.util.Date @@ -33,32 +25,10 @@ data class Task( ) : Parcelable { val imageId: Int - get() = when (type) { - TASK_CONDITION_CRON -> R.drawable.auto_task_icon_custom_time - TASK_CONDITION_BATTERY -> R.drawable.auto_task_icon_battery - TASK_CONDITION_CHARGE -> R.drawable.auto_task_icon_charge - TASK_CONDITION_NETWORK -> R.drawable.auto_task_icon_network - TASK_CONDITION_SIM -> R.drawable.auto_task_icon_sim - TASK_ACTION_SENDSMS -> R.drawable.auto_task_icon_sms - TASK_ACTION_NOTIFICATION -> R.drawable.auto_task_icon_sender - TASK_ACTION_FRPC -> R.drawable.auto_task_icon_frpc - TASK_ACTION_HTTPSERVER -> R.drawable.auto_task_icon_http_server - else -> R.drawable.auto_task_icon_custom_time - } + get() = TaskUtils.getTypeImageId(type) val greyImageId: Int - get() = when (type) { - TASK_CONDITION_CRON -> R.drawable.auto_task_icon_custom_time_grey - TASK_CONDITION_BATTERY -> R.drawable.auto_task_icon_battery_grey - TASK_CONDITION_CHARGE -> R.drawable.auto_task_icon_charge_grey - TASK_CONDITION_NETWORK -> R.drawable.auto_task_icon_network_grey - TASK_CONDITION_SIM -> R.drawable.auto_task_icon_sim_grey - TASK_ACTION_SENDSMS -> R.drawable.auto_task_icon_sms_grey - TASK_ACTION_NOTIFICATION -> R.drawable.auto_task_icon_sender_grey - TASK_ACTION_FRPC -> R.drawable.auto_task_icon_frpc_grey - TASK_ACTION_HTTPSERVER -> R.drawable.auto_task_icon_http_server_grey - else -> R.drawable.auto_task_icon_custom_time_grey - } + get() = TaskUtils.getTypeGreyImageId(type) val statusImageId: Int get() = when (status) { diff --git a/app/src/main/java/com/idormy/sms/forwarder/entity/task/TaskSetting.kt b/app/src/main/java/com/idormy/sms/forwarder/entity/task/TaskSetting.kt index 1ac40fbe..ffb82e11 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/entity/task/TaskSetting.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/entity/task/TaskSetting.kt @@ -1,14 +1,6 @@ package com.idormy.sms.forwarder.entity.task -import com.idormy.sms.forwarder.R -import com.idormy.sms.forwarder.utils.TASK_ACTION_FRPC -import com.idormy.sms.forwarder.utils.TASK_ACTION_HTTPSERVER -import com.idormy.sms.forwarder.utils.TASK_ACTION_NOTIFICATION -import com.idormy.sms.forwarder.utils.TASK_ACTION_SENDSMS -import com.idormy.sms.forwarder.utils.TASK_CONDITION_BATTERY -import com.idormy.sms.forwarder.utils.TASK_CONDITION_CHARGE -import com.idormy.sms.forwarder.utils.TASK_CONDITION_CRON -import com.idormy.sms.forwarder.utils.TASK_CONDITION_NETWORK +import com.idormy.sms.forwarder.utils.task.TaskUtils import java.io.Serializable data class TaskSetting( @@ -20,28 +12,8 @@ data class TaskSetting( ) : Serializable { val iconId: Int - get() = when (type) { - TASK_CONDITION_CRON -> R.drawable.auto_task_icon_custom_time - TASK_CONDITION_BATTERY -> R.drawable.auto_task_icon_battery - TASK_CONDITION_CHARGE -> R.drawable.auto_task_icon_charge - TASK_CONDITION_NETWORK -> R.drawable.auto_task_icon_network - TASK_ACTION_SENDSMS -> R.drawable.auto_task_icon_sms - TASK_ACTION_NOTIFICATION -> R.drawable.auto_task_icon_sender - TASK_ACTION_FRPC -> R.drawable.auto_task_icon_frpc - TASK_ACTION_HTTPSERVER -> R.drawable.auto_task_icon_http_server - else -> R.drawable.auto_task_icon_sms - } + get() = TaskUtils.getTypeImageId(type) val greyIconId: Int - get() = when (type) { - TASK_CONDITION_CRON -> R.drawable.auto_task_icon_custom_time_grey - TASK_CONDITION_BATTERY -> R.drawable.auto_task_icon_battery_grey - TASK_CONDITION_CHARGE -> R.drawable.auto_task_icon_charge_grey - TASK_CONDITION_NETWORK -> R.drawable.auto_task_icon_network_grey - TASK_ACTION_SENDSMS -> R.drawable.auto_task_icon_sms_grey - TASK_ACTION_NOTIFICATION -> R.drawable.auto_task_icon_sender_grey - TASK_ACTION_FRPC -> R.drawable.auto_task_icon_frpc_grey - TASK_ACTION_HTTPSERVER -> R.drawable.auto_task_icon_http_server_grey - else -> R.drawable.auto_task_icon_sms_grey - } + get() = TaskUtils.getTypeGreyImageId(type) } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/TasksEditFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/TasksEditFragment.kt index e816a7c7..e93acbbb 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/TasksEditFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/TasksEditFragment.kt @@ -38,6 +38,7 @@ import com.xuexiang.xui.adapter.recyclerview.RecyclerViewHolder import com.xuexiang.xui.utils.DensityUtils import com.xuexiang.xui.utils.WidgetUtils import com.xuexiang.xui.widget.actionbar.TitleBar +import com.xuexiang.xui.widget.alpha.XUIAlphaTextView import gatewayapps.crondroid.CronExpression import io.reactivex.SingleObserver import io.reactivex.android.schedulers.AndroidSchedulers @@ -175,6 +176,9 @@ class TasksEditFragment : BaseFragment(), View.OnClic widgetItemAdapter.setOnItemClickListener(that) recyclerView.adapter = widgetItemAdapter + val bottomSheetCloseButton: XUIAlphaTextView = view.findViewById(R.id.bottom_sheet_close_button) + bottomSheetCloseButton.setOnClickListener { dialog.dismiss() } + dialog.setContentView(view) dialog.setCancelable(true) dialog.setCanceledOnTouchOutside(true) @@ -191,6 +195,9 @@ class TasksEditFragment : BaseFragment(), View.OnClic widgetItemAdapter.setOnItemClickListener(that) recyclerView.adapter = widgetItemAdapter + val bottomSheetCloseButton: XUIAlphaTextView = view.findViewById(R.id.bottom_sheet_close_button) + bottomSheetCloseButton.setOnClickListener { dialog.dismiss() } + dialog.setContentView(view) dialog.setCancelable(true) dialog.setCanceledOnTouchOutside(true) diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/Constants.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/Constants.kt index 3756b11e..c5cc75d6 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/Constants.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/Constants.kt @@ -498,10 +498,13 @@ const val KEY_BACK_DESCRIPTION_ACTION = "back_description_action" //注意:TASK_CONDITION_XXX 枚举值 等于 TASK_CONDITION_FRAGMENT_LIST 索引加上 KEY_BACK_CODE_CONDITION,不可改变 const val TASK_CONDITION_CRON = 1000 -const val TASK_CONDITION_BATTERY = 1001 -const val TASK_CONDITION_CHARGE = 1002 +const val TASK_CONDITION_TO_ADDRESS = 1001 +const val TASK_CONDITION_LEAVE_ADDRESS = 1002 const val TASK_CONDITION_NETWORK = 1003 const val TASK_CONDITION_SIM = 1004 +const val TASK_CONDITION_BATTERY = 1005 +const val TASK_CONDITION_CHARGE = 1006 +const val TASK_CONDITION_LOCK_SCREEN = 1007 var TASK_CONDITION_FRAGMENT_LIST = listOf( PageInfo( getString(R.string.task_cron), @@ -510,6 +513,34 @@ var TASK_CONDITION_FRAGMENT_LIST = listOf( CoreAnim.slide, R.drawable.auto_task_icon_custom_time, ), + PageInfo( + getString(R.string.to_address), + "com.idormy.sms.forwarder.fragment.condition.ToAddressFragment", + "{\"\":\"\"}", + CoreAnim.slide, + R.drawable.auto_task_icon_to_address, + ), + PageInfo( + getString(R.string.leave_address), + "com.idormy.sms.forwarder.fragment.condition.LeaveAddressFragment", + "{\"\":\"\"}", + CoreAnim.slide, + R.drawable.auto_task_icon_leave_address, + ), + PageInfo( + getString(R.string.task_network), + "com.idormy.sms.forwarder.fragment.condition.NetworkFragment", + "{\"\":\"\"}", + CoreAnim.slide, + R.drawable.auto_task_icon_network + ), + PageInfo( + getString(R.string.task_sim), + "com.idormy.sms.forwarder.fragment.condition.SimFragment", + "{\"\":\"\"}", + CoreAnim.slide, + R.drawable.auto_task_icon_sim + ), PageInfo( getString(R.string.task_battery), "com.idormy.sms.forwarder.fragment.condition.BatteryFragment", @@ -525,18 +556,11 @@ var TASK_CONDITION_FRAGMENT_LIST = listOf( R.drawable.auto_task_icon_charge ), PageInfo( - getString(R.string.task_network), - "com.idormy.sms.forwarder.fragment.condition.NetworkFragment", + getString(R.string.task_lock_screen), + "com.idormy.sms.forwarder.fragment.condition.LockScreenFragment", "{\"\":\"\"}", CoreAnim.slide, - R.drawable.auto_task_icon_network - ), - PageInfo( - getString(R.string.task_sim), - "com.idormy.sms.forwarder.fragment.condition.SimFragment", - "{\"\":\"\"}", - CoreAnim.slide, - R.drawable.auto_task_icon_sim + R.drawable.auto_task_icon_lock_screen ), ) diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/task/TaskUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/task/TaskUtils.kt index 13cb941b..7ca461ae 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/task/TaskUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/task/TaskUtils.kt @@ -1,6 +1,7 @@ package com.idormy.sms.forwarder.utils.task import android.os.BatteryManager +import com.idormy.sms.forwarder.R import com.idormy.sms.forwarder.utils.SP_BATTERY_INFO import com.idormy.sms.forwarder.utils.SP_BATTERY_LEVEL import com.idormy.sms.forwarder.utils.SP_BATTERY_PCT @@ -13,6 +14,18 @@ import com.idormy.sms.forwarder.utils.SP_NETWORK_STATE import com.idormy.sms.forwarder.utils.SP_SIM_STATE import com.idormy.sms.forwarder.utils.SP_WIFI_SSID import com.idormy.sms.forwarder.utils.SharedPreference +import com.idormy.sms.forwarder.utils.TASK_ACTION_FRPC +import com.idormy.sms.forwarder.utils.TASK_ACTION_HTTPSERVER +import com.idormy.sms.forwarder.utils.TASK_ACTION_NOTIFICATION +import com.idormy.sms.forwarder.utils.TASK_ACTION_SENDSMS +import com.idormy.sms.forwarder.utils.TASK_CONDITION_BATTERY +import com.idormy.sms.forwarder.utils.TASK_CONDITION_CHARGE +import com.idormy.sms.forwarder.utils.TASK_CONDITION_CRON +import com.idormy.sms.forwarder.utils.TASK_CONDITION_LEAVE_ADDRESS +import com.idormy.sms.forwarder.utils.TASK_CONDITION_LOCK_SCREEN +import com.idormy.sms.forwarder.utils.TASK_CONDITION_NETWORK +import com.idormy.sms.forwarder.utils.TASK_CONDITION_SIM +import com.idormy.sms.forwarder.utils.TASK_CONDITION_TO_ADDRESS /** * 自动任务工具类 —— 用于存储自动任务相关的配置 @@ -21,6 +34,44 @@ class TaskUtils private constructor() { companion object { + //获取任务类型图标 + fun getTypeImageId(type: Int): Int { + return when (type) { + TASK_CONDITION_CRON -> R.drawable.auto_task_icon_custom_time + TASK_CONDITION_TO_ADDRESS -> R.drawable.auto_task_icon_to_address + TASK_CONDITION_LEAVE_ADDRESS -> R.drawable.auto_task_icon_leave_address + TASK_CONDITION_NETWORK -> R.drawable.auto_task_icon_network + TASK_CONDITION_SIM -> R.drawable.auto_task_icon_sim + TASK_CONDITION_BATTERY -> R.drawable.auto_task_icon_battery + TASK_CONDITION_CHARGE -> R.drawable.auto_task_icon_charge + TASK_CONDITION_LOCK_SCREEN -> R.drawable.auto_task_icon_lock_screen + TASK_ACTION_SENDSMS -> R.drawable.auto_task_icon_sms + TASK_ACTION_NOTIFICATION -> R.drawable.auto_task_icon_sender + TASK_ACTION_FRPC -> R.drawable.auto_task_icon_frpc + TASK_ACTION_HTTPSERVER -> R.drawable.auto_task_icon_http_server + else -> R.drawable.auto_task_icon_custom_time + } + } + + //获取任务类型图标(灰色) + fun getTypeGreyImageId(type: Int): Int { + return when (type) { + TASK_CONDITION_CRON -> R.drawable.auto_task_icon_custom_time_grey + TASK_CONDITION_TO_ADDRESS -> R.drawable.auto_task_icon_to_address_grey + TASK_CONDITION_LEAVE_ADDRESS -> R.drawable.auto_task_icon_leave_address_grey + TASK_CONDITION_NETWORK -> R.drawable.auto_task_icon_network_grey + TASK_CONDITION_SIM -> R.drawable.auto_task_icon_sim_grey + TASK_CONDITION_BATTERY -> R.drawable.auto_task_icon_battery_grey + TASK_CONDITION_CHARGE -> R.drawable.auto_task_icon_charge_grey + TASK_CONDITION_LOCK_SCREEN -> R.drawable.auto_task_icon_lock_screen_grey + TASK_ACTION_SENDSMS -> R.drawable.auto_task_icon_sms_grey + TASK_ACTION_NOTIFICATION -> R.drawable.auto_task_icon_sender_grey + TASK_ACTION_FRPC -> R.drawable.auto_task_icon_frpc_grey + TASK_ACTION_HTTPSERVER -> R.drawable.auto_task_icon_http_server_grey + else -> R.drawable.auto_task_icon_custom_time_grey + } + } + //电池信息 var batteryInfo: String by SharedPreference(SP_BATTERY_INFO, "") diff --git a/app/src/main/res/drawable/auto_task_icon_network.xml b/app/src/main/res/drawable/auto_task_icon_network.xml index 7cc268b2..f7eee1b2 100644 --- a/app/src/main/res/drawable/auto_task_icon_network.xml +++ b/app/src/main/res/drawable/auto_task_icon_network.xml @@ -1,7 +1,7 @@ - + \ No newline at end of file diff --git a/app/src/main/res/drawable/auto_task_icon_network_tran.xml b/app/src/main/res/drawable/auto_task_icon_network_tran.xml index fb51cfe1..0f487318 100644 --- a/app/src/main/res/drawable/auto_task_icon_network_tran.xml +++ b/app/src/main/res/drawable/auto_task_icon_network_tran.xml @@ -1,7 +1,7 @@ - + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_sender_bottom_sheet.xml b/app/src/main/res/layout/dialog_sender_bottom_sheet.xml index 836b2290..c652d8ec 100644 --- a/app/src/main/res/layout/dialog_sender_bottom_sheet.xml +++ b/app/src/main/res/layout/dialog_sender_bottom_sheet.xml @@ -11,7 +11,8 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:padding="10dp" - android:text="@string/select_sender_type" /> + android:text="@string/select_sender_type" + android:textStyle="bold" /> + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_task_action_bottom_sheet.xml b/app/src/main/res/layout/dialog_task_action_bottom_sheet.xml index a0101dba..c49908db 100644 --- a/app/src/main/res/layout/dialog_task_action_bottom_sheet.xml +++ b/app/src/main/res/layout/dialog_task_action_bottom_sheet.xml @@ -11,7 +11,8 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:padding="10dp" - android:text="@string/select_task_action" /> + android:text="@string/select_task_action" + android:textStyle="bold" /> + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_task_condition_bottom_sheet.xml b/app/src/main/res/layout/dialog_task_condition_bottom_sheet.xml index a616884a..e5ac2a05 100644 --- a/app/src/main/res/layout/dialog_task_condition_bottom_sheet.xml +++ b/app/src/main/res/layout/dialog_task_condition_bottom_sheet.xml @@ -12,7 +12,8 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:padding="10dp" - android:text="@string/select_task_condition" /> + android:text="@string/select_task_condition" + android:textStyle="bold" /> + + + + \ No newline at end of file diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index 66fa781c..2e4aaa19 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -1114,11 +1114,15 @@ Please select trigger condition Please select additional condition Please select action + Close Cron - Charge - Battery + To Address + Leave Address Network SIM Status + Battery + Charge + Lock Screen Send Sms Notification Frpc Setting diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 862dc5a9..8de889eb 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1115,11 +1115,15 @@ 请选择触发条件 请选择附加条件 请选择动作 + 关 闭 定时任务 - 充电状态 - 电量使用 + 到达地点 + 离开地点 网络状态 SIM卡状态 + 电量使用 + 充电状态 + 屏幕锁定 发送短信 通道推送 Frpc设置