新增:自动任务·快捷指令 (开发中)

pull/408/head
pppscn 10 months ago
parent 1d1fb747fc
commit 0a651b2da2

@ -47,7 +47,9 @@ class SplashActivity : BaseSplashActivity(), CancelAdapt {
}
private fun whereToJump() {
if (SettingUtils.enablePureClientMode) {
if (SettingUtils.enablePureTaskMode) {
ActivityUtils.startActivity(TaskActivity::class.java)
} else if (SettingUtils.enablePureClientMode) {
ActivityUtils.startActivity(ClientActivity::class.java)
} else {
ActivityUtils.startActivity(MainActivity::class.java)

@ -3,12 +3,12 @@ package com.idormy.sms.forwarder.activity
import android.os.Bundle
import androidx.viewbinding.ViewBinding
import com.idormy.sms.forwarder.core.BaseActivity
import com.idormy.sms.forwarder.fragment.TasksEditFragment
import com.idormy.sms.forwarder.fragment.TasksFragment
class TaskActivity : BaseActivity<ViewBinding?>() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
openPage(TasksEditFragment::class.java)
openPage(TasksFragment::class.java)
}
}

@ -26,7 +26,6 @@ class FrpcPagingAdapter(private val itemClickListener: OnItemClickListener) : Pa
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
val item = getItem(position)
if (item != null) {
holder.binding.ivImage.setImageResource(R.drawable.ic_menu_frpc)
holder.binding.ivAutorun.setImageResource(item.autorunImageId)
holder.binding.tvUid.text = "UID:${item.uid}"
holder.binding.tvName.text = item.name
@ -43,10 +42,6 @@ class FrpcPagingAdapter(private val itemClickListener: OnItemClickListener) : Pa
}
}
holder.binding.ivCopy.setImageResource(R.drawable.ic_copy)
holder.binding.ivEdit.setImageResource(R.drawable.ic_edit)
holder.binding.ivDelete.setImageResource(R.drawable.ic_delete)
holder.binding.ivCopy.setOnClickListener { view: View? ->
itemClickListener.onItemClicked(view, item)
}

@ -42,9 +42,6 @@ class RulePagingAdapter(private val itemClickListener: OnItemClickListener) : Pa
holder.binding.layoutSenders.addView(layoutSenderItem)
}
holder.binding.ivCopy.setImageResource(R.drawable.ic_copy)
holder.binding.ivEdit.setImageResource(R.drawable.ic_edit)
holder.binding.ivDelete.setImageResource(R.drawable.ic_delete)
holder.binding.ivCopy.setOnClickListener { view: View? ->
itemClickListener.onItemClicked(view, item)
}

@ -7,7 +7,6 @@ import android.view.ViewGroup
import androidx.paging.PagingDataAdapter
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.RecyclerView
import com.idormy.sms.forwarder.R
import com.idormy.sms.forwarder.adapter.SenderPagingAdapter.MyViewHolder
import com.idormy.sms.forwarder.database.entity.Sender
import com.idormy.sms.forwarder.databinding.AdapterSendersCardViewListItemBinding
@ -26,12 +25,6 @@ class SenderPagingAdapter(private val itemClickListener: OnItemClickListener) :
holder.binding.ivStatus.setImageResource(item.statusImageId)
holder.binding.tvName.text = item.name
/*holder.binding.cardView.setOnClickListener { view: View? ->
itemClickListener.onItemClicked(view, item)
}*/
holder.binding.ivCopy.setImageResource(R.drawable.ic_copy)
holder.binding.ivEdit.setImageResource(R.drawable.ic_edit)
holder.binding.ivDelete.setImageResource(R.drawable.ic_delete)
holder.binding.ivCopy.setOnClickListener { view: View? ->
itemClickListener.onItemClicked(view, item)
}

@ -1,16 +1,22 @@
package com.idormy.sms.forwarder.adapter
import android.annotation.SuppressLint
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.LinearLayout
import androidx.paging.PagingDataAdapter
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.RecyclerView
import com.google.gson.Gson
import com.idormy.sms.forwarder.App
import com.idormy.sms.forwarder.R
import com.idormy.sms.forwarder.adapter.TaskPagingAdapter.MyViewHolder
import com.idormy.sms.forwarder.database.entity.Task
import com.idormy.sms.forwarder.databinding.AdapterTasksCardViewListItemBinding
import com.idormy.sms.forwarder.entity.task.TaskSetting
class TaskPagingAdapter(private val itemClickListener: OnItemClickListener) : PagingDataAdapter<Task, MyViewHolder>(diffCallback) {
@ -22,23 +28,53 @@ class TaskPagingAdapter(private val itemClickListener: OnItemClickListener) : Pa
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
val item = getItem(position)
if (item != null) {
holder.binding.ivImage.setImageResource(item.imageId)
holder.binding.ivStatus.setImageResource(item.statusImageId)
holder.binding.tvName.text = item.name
// 任务类型1000为任务模板>=1000为自定义任务
if (item.type >= 1000) {
holder.binding.layoutImage.visibility = View.GONE
/*holder.binding.cardView.setOnClickListener { view: View? ->
itemClickListener.onItemClicked(view, item)
}*/
holder.binding.ivCopy.setImageResource(R.drawable.ic_copy)
holder.binding.ivEdit.setImageResource(R.drawable.ic_edit)
holder.binding.ivDelete.setImageResource(R.drawable.ic_delete)
holder.binding.ivCopy.setOnClickListener { view: View? ->
itemClickListener.onItemClicked(view, item)
}
holder.binding.ivEdit.setOnClickListener { view: View? ->
itemClickListener.onItemClicked(view, item)
//遍历conditions显示图标
holder.binding.layoutConditionsIcons.removeAllViews()
if (item.conditions.isNotEmpty()) {
val conditionList = Gson().fromJson(item.conditions, Array<TaskSetting>::class.java).toMutableList()
for (condition in conditionList) {
val layoutConditionItem = View.inflate(App.context, R.layout.item_setting, null) as LinearLayout
val ivConditionIcon = layoutConditionItem.findViewById<ImageView>(R.id.iv_setting_icon)
ivConditionIcon.setImageResource(condition.iconId)
holder.binding.layoutConditionsIcons.addView(layoutConditionItem)
}
}
//遍历actions显示图标
holder.binding.layoutActionsIcons.removeAllViews()
if (item.actions.isNotEmpty()) {
val actionList = Gson().fromJson(item.actions, Array<TaskSetting>::class.java).toMutableList()
Log.d("TaskPagingAdapter", "actionList:$actionList")
for (action in actionList) {
Log.d("TaskPagingAdapter", "action:$action")
val layoutActionItem = View.inflate(App.context, R.layout.item_setting, null) as LinearLayout
val ivActionIcon = layoutActionItem.findViewById<ImageView>(R.id.iv_setting_icon)
ivActionIcon.setImageResource(action.iconId)
holder.binding.layoutActionsIcons.addView(layoutActionItem)
}
}
holder.binding.ivEdit.setOnClickListener { view: View? ->
itemClickListener.onItemClicked(view, item)
}
holder.binding.ivDelete.setOnClickListener { view: View? ->
itemClickListener.onItemClicked(view, item)
}
} else {
holder.binding.layoutImage.visibility = View.VISIBLE
holder.binding.layoutIcons.visibility = View.GONE
holder.binding.ivImage.setImageResource(item.imageId)
holder.binding.ivStatus.setImageResource(item.statusImageId)
holder.binding.ivEdit.visibility = View.GONE
holder.binding.ivDelete.visibility = View.GONE
}
holder.binding.ivDelete.setOnClickListener { view: View? ->
holder.binding.tvName.text = item.name
holder.binding.tvDescription.text = item.description
holder.binding.ivCopy.setOnClickListener { view: View? ->
itemClickListener.onItemClicked(view, item)
}
}

@ -23,8 +23,11 @@ interface TaskDao {
@Query("SELECT * FROM Task ORDER BY id DESC")
fun getAll(): List<Task>
@Query("SELECT * FROM Task where type=:type ORDER BY id DESC")
fun pagingSource(type: String): PagingSource<Int, Task>
@Query("SELECT * FROM Task where type < 1000 ORDER BY id DESC")
fun pagingSourceFixed(): PagingSource<Int, Task>
@Query("SELECT * FROM Task where type >= 1000 ORDER BY id DESC")
fun pagingSourceMine(): PagingSource<Int, Task>
@Transaction
@RawQuery(observedEntities = [Task::class])

@ -6,22 +6,14 @@ 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.TYPE_BARK
import com.idormy.sms.forwarder.utils.TYPE_DINGTALK_GROUP_ROBOT
import com.idormy.sms.forwarder.utils.TYPE_DINGTALK_INNER_ROBOT
import com.idormy.sms.forwarder.utils.TYPE_EMAIL
import com.idormy.sms.forwarder.utils.TYPE_FEISHU
import com.idormy.sms.forwarder.utils.TYPE_FEISHU_APP
import com.idormy.sms.forwarder.utils.TYPE_GOTIFY
import com.idormy.sms.forwarder.utils.TYPE_PUSHPLUS
import com.idormy.sms.forwarder.utils.TYPE_SERVERCHAN
import com.idormy.sms.forwarder.utils.TYPE_SMS
import com.idormy.sms.forwarder.utils.TYPE_SOCKET
import com.idormy.sms.forwarder.utils.TYPE_TELEGRAM
import com.idormy.sms.forwarder.utils.TYPE_URL_SCHEME
import com.idormy.sms.forwarder.utils.TYPE_WEBHOOK
import com.idormy.sms.forwarder.utils.TYPE_WEWORK_AGENT
import com.idormy.sms.forwarder.utils.TYPE_WEWORK_ROBOT
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 kotlinx.parcelize.Parcelize
import java.util.Date
@ -29,35 +21,27 @@ import java.util.Date
@Entity(tableName = "Task")
data class Task(
@PrimaryKey(autoGenerate = true) var id: Long = 0,
@ColumnInfo(name = "type", defaultValue = "1") var type: Int = 1, // 任务类型字段
@ColumnInfo(name = "type", defaultValue = "1") var type: Int = 1, // 任务类型1000为任务模板>=1000为自定义任务
@ColumnInfo(name = "name", defaultValue = "") val name: String = "", // 任务名称
@ColumnInfo(name = "description", defaultValue = "") val description: String = "", // 任务描述
@ColumnInfo(name = "conditions", defaultValue = "") val conditions: String = "", // 触发条件
@ColumnInfo(name = "actions", defaultValue = "") val actions: String = "", // 执行动作
@ColumnInfo(name = "status", defaultValue = "1") var status: Int = 1, // 任务状态
@ColumnInfo(name = "last_exec_time") var lastExecTime: Date = Date(), // 上次执行时间
@ColumnInfo(name = "next_exec_time") var nextExecTime: Date = Date(), // 下次执行时间
@ColumnInfo(name = "status", defaultValue = "1") var status: Int = 1, // 任务状态
) : Parcelable {
val imageId: Int
get() = when (type) {
TYPE_DINGTALK_GROUP_ROBOT -> R.drawable.icon_dingtalk
TYPE_EMAIL -> R.drawable.icon_email
TYPE_BARK -> R.drawable.icon_bark
TYPE_WEBHOOK -> R.drawable.icon_webhook
TYPE_WEWORK_ROBOT -> R.drawable.icon_wework_robot
TYPE_WEWORK_AGENT -> R.drawable.icon_wework_agent
TYPE_SERVERCHAN -> R.drawable.icon_serverchan
TYPE_TELEGRAM -> R.drawable.icon_telegram
TYPE_FEISHU -> R.drawable.icon_feishu
TYPE_PUSHPLUS -> R.drawable.icon_pushplus
TYPE_GOTIFY -> R.drawable.icon_gotify
TYPE_SMS -> R.drawable.icon_sms
TYPE_DINGTALK_INNER_ROBOT -> R.drawable.icon_dingtalk_inner
TYPE_FEISHU_APP -> R.drawable.icon_feishu_app
TYPE_URL_SCHEME -> R.drawable.icon_url_scheme
TYPE_SOCKET -> R.drawable.icon_socket
else -> R.drawable.icon_sms
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_wlan
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
}
val statusImageId: Int

@ -12,7 +12,7 @@ import com.idormy.sms.forwarder.database.ext.ioThread
import kotlinx.coroutines.flow.Flow
class TaskViewModel(private val dao: TaskDao) : ViewModel() {
private var type: String = "sms"
private var type: String = "mine"
fun setType(type: String): TaskViewModel {
this.type = type
@ -26,7 +26,9 @@ class TaskViewModel(private val dao: TaskDao) : ViewModel() {
initialLoadSize = 10
)
) {
dao.pagingSource(type)
//TODO:根据条件查询,咱不使用
//dao.pagingSource(type)
if (type == "mine") dao.pagingSourceMine() else dao.pagingSourceFixed()
}.flow.cachedIn(viewModelScope)
fun insertOrUpdate(task: Task) = ioThread {

@ -1,10 +1,14 @@
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_WLAN
import com.idormy.sms.forwarder.utils.TASK_CONDITION_NETWORK
import java.io.Serializable
data class TaskSetting(
@ -17,10 +21,14 @@ data class TaskSetting(
val iconId: Int
get() = when (type) {
TASK_CONDITION_CRON -> R.drawable.auto_task_icon_cron
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_WLAN -> R.drawable.auto_task_icon_wlan
else -> R.drawable.auto_task_icon_sim
TASK_CONDITION_NETWORK -> R.drawable.auto_task_icon_wlan
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
}
}

@ -99,23 +99,12 @@ class TasksEditFragment : BaseFragment<FragmentTasksEditBinding?>(), View.OnClic
* 初始化控件
*/
override fun initViews() {
if (taskId <= 0) { //新增
titleBar?.setSubTitle(getString(R.string.add_task))
binding!!.btnDel.setText(R.string.discard)
} else { //编辑 & 克隆
binding!!.btnDel.setText(R.string.del)
initForm()
}
recyclerConditions = findViewById(R.id.recycler_conditions)
recyclerActions = findViewById(R.id.recycler_actions)
// 初始化 RecyclerView 和 Adapter
initRecyclerViews()
// 添加示例项目
// addSampleItems()
// 设置拖动排序
val conditionsCallback = ItemMoveCallback(object : ItemMoveCallback.Listener {
override fun onItemMove(fromPosition: Int, toPosition: Int) {
@ -150,6 +139,14 @@ class TasksEditFragment : BaseFragment<FragmentTasksEditBinding?>(), View.OnClic
val itemTouchHelperActions = ItemTouchHelper(actionsCallback)
itemTouchHelperActions.attachToRecyclerView(recyclerActions)
actionsAdapter.setTouchHelper(itemTouchHelperActions)
if (taskId <= 0) { //新增
titleBar?.setSubTitle(getString(R.string.add_task))
binding!!.btnDel.setText(R.string.discard)
} else { //编辑 & 克隆
binding!!.btnDel.setText(R.string.del)
initForm()
}
}
override fun initListeners() {
@ -238,6 +235,7 @@ class TasksEditFragment : BaseFragment<FragmentTasksEditBinding?>(), View.OnClic
e.printStackTrace()
}
@SuppressLint("NotifyDataSetChanged")
override fun onSuccess(task: Task) {
Log.d(TAG, task.toString())
if (isClone) {
@ -248,13 +246,54 @@ class TasksEditFragment : BaseFragment<FragmentTasksEditBinding?>(), View.OnClic
}
binding!!.etName.setText(task.name)
binding!!.sbStatus.isChecked = task.status == STATUS_ON
try {
if (task.conditions.isNotEmpty()) {
val conditionList = Gson().fromJson(task.conditions, Array<TaskSetting>::class.java).toMutableList()
for (condition in conditionList) {
itemListConditions.add(condition)
}
Log.d(TAG, "initForm: $itemListConditions")
conditionsAdapter.notifyDataSetChanged()
}
if (task.actions.isNotEmpty()) {
val actionList = Gson().fromJson(task.actions, Array<TaskSetting>::class.java).toMutableList()
for (action in actionList) {
itemListActions.add(action)
}
Log.d(TAG, "initForm: $itemListActions")
actionsAdapter.notifyDataSetChanged()
}
} catch (e: Exception) {
e.printStackTrace()
XToastUtils.error(e.message.toString())
}
}
})
}
//提交前检查表单
private fun checkForm(): Task {
return Task()
val taskName = binding!!.etName.text.toString().trim()
if (taskName.isEmpty()) {
throw Exception("请输入任务名称")
}
if (itemListConditions.size <= 0) {
throw Exception("请添加触发条件")
}
if (itemListActions.size <= 0) {
throw Exception("请添加执行动作")
}
taskType = itemListConditions[0].type
//拼接任务描述
val description = StringBuilder()
description.append(getString(R.string.task_conditions)).append(" ")
description.append(itemListConditions.map { it.description }.toTypedArray().joinToString(","))
description.append(" ").append(getString(R.string.task_actions)).append(" ")
description.append(itemListActions.map { it.description }.toTypedArray().joinToString(","))
val status = if (binding!!.sbStatus.isChecked) STATUS_ON else STATUS_OFF
return Task(taskId, taskType, taskName, description.toString(), Gson().toJson(itemListConditions), Gson().toJson(itemListActions), status)
}
private fun testTask(task: Task) {
@ -310,6 +349,7 @@ class TasksEditFragment : BaseFragment<FragmentTasksEditBinding?>(), View.OnClic
val widgetInfo = TASK_CONDITION_FRAGMENT_LIST[widgetInfoIndex]
val taskSetting: TaskSetting
when (resultCode) {
TASK_CONDITION_CRON -> {
val settingVo = Gson().fromJson(setting, CronSetting::class.java)
Log.d(TAG, settingVo.toString())
@ -326,6 +366,22 @@ class TasksEditFragment : BaseFragment<FragmentTasksEditBinding?>(), View.OnClic
)
}
TASK_CONDITION_CHARGE -> {
val settingVo = Gson().fromJson(setting, CronSetting::class.java)
Log.d(TAG, settingVo.toString())
taskSetting = TaskSetting(
resultCode, widgetInfo.name, settingVo.description, setting, requestCode
)
}
TASK_CONDITION_NETWORK -> {
val settingVo = Gson().fromJson(setting, CronSetting::class.java)
Log.d(TAG, settingVo.toString())
taskSetting = TaskSetting(
resultCode, widgetInfo.name, settingVo.description, setting, requestCode
)
}
else -> {
return
}
@ -338,28 +394,65 @@ class TasksEditFragment : BaseFragment<FragmentTasksEditBinding?>(), View.OnClic
itemListConditions[requestCode - 1] = taskSetting
}
conditionsAdapter.notifyDataSetChanged()
} else if (resultCode == KEY_BACK_CODE_ACTION) {
} else if (resultCode in KEY_BACK_CODE_ACTION..KEY_BACK_CODE_ACTION + 999) {
setting = extras!!.getString(KEY_BACK_DATA_ACTION)
if (setting == null) return
//注意TASK_ACTION_XXX 枚举值 等于 TASK_ACTION_FRAGMENT_LIST 索引加上 KEY_BACK_CODE_ACTION不可改变
val widgetInfoIndex = resultCode - KEY_BACK_CODE_ACTION
if (widgetInfoIndex >= TASK_ACTION_FRAGMENT_LIST.size) return
val widgetInfo = TASK_ACTION_FRAGMENT_LIST[widgetInfoIndex]
val taskSetting: TaskSetting
when (resultCode) {
TASK_ACTION_SENDSMS -> {
val settingVo = Gson().fromJson(setting, CronSetting::class.java)
Log.d(TAG, settingVo.toString())
taskSetting = TaskSetting(
resultCode, widgetInfo.name, settingVo.description, setting, requestCode
)
}
TASK_ACTION_NOTIFICATION -> {
val settingVo = Gson().fromJson(setting, CronSetting::class.java)
Log.d(TAG, settingVo.toString())
taskSetting = TaskSetting(
resultCode, widgetInfo.name, settingVo.description, setting, requestCode
)
}
TASK_ACTION_FRPC -> {
val settingVo = Gson().fromJson(setting, CronSetting::class.java)
Log.d(TAG, settingVo.toString())
taskSetting = TaskSetting(
resultCode, widgetInfo.name, settingVo.description, setting, requestCode
)
}
TASK_ACTION_HTTPSERVER -> {
val settingVo = Gson().fromJson(setting, CronSetting::class.java)
Log.d(TAG, settingVo.toString())
taskSetting = TaskSetting(
resultCode, widgetInfo.name, settingVo.description, setting, requestCode
)
}
else -> {
return
}
}
//requestCode: 等于 itemListActions 的索引加1
if (requestCode == 0) {
taskSetting.position = itemListActions.size
itemListActions.add(taskSetting)
} else {
itemListActions[requestCode - 1] = taskSetting
}
actionsAdapter.notifyDataSetChanged()
}
Log.d(TAG, "requestCode:$requestCode resultCode:$resultCode setting:$setting")
}
}
@SuppressLint("NotifyDataSetChanged")
private fun addSampleItems() {
// 添加示例项目到列表中
itemListConditions.add(TaskSetting(TYPE_DINGTALK_GROUP_ROBOT, "DingTalk 1", "Description 1"))
itemListConditions.add(TaskSetting(TYPE_DINGTALK_GROUP_ROBOT, "DingTalk 2", "Description 2"))
itemListConditions.add(TaskSetting(TYPE_DINGTALK_GROUP_ROBOT, "DingTalk 3", "Description 3"))
itemListActions.add(TaskSetting(TYPE_EMAIL, "Email 1", "Description 1"))
itemListActions.add(TaskSetting(TYPE_EMAIL, "Email 2", "Description 2"))
itemListActions.add(TaskSetting(TYPE_EMAIL, "Email 3", "Description 3"))
// 更新 Adapter
conditionsAdapter.notifyDataSetChanged()
actionsAdapter.notifyDataSetChanged()
}
private fun initRecyclerViews() {
conditionsAdapter = TaskSettingAdapter(itemListConditions, { position -> editCondition(position) }, { position -> removeCondition(position) })
@ -388,8 +481,7 @@ class TasksEditFragment : BaseFragment<FragmentTasksEditBinding?>(), View.OnClic
val widgetInfo = TASK_CONDITION_FRAGMENT_LIST[condition.type - KEY_BACK_CODE_CONDITION]
@Suppress("UNCHECKED_CAST") PageOption.to(Class.forName(widgetInfo.classPath) as Class<XPageFragment>) //跳转的fragment
.setRequestCode(position + 1) //requestCode: 0 新增 、>0 编辑itemListConditions 的索引加1
.putString(KEY_EVENT_DATA_CONDITION, condition.setting)
.open(this)
.putString(KEY_EVENT_DATA_CONDITION, condition.setting).open(this)
}
private fun removeCondition(position: Int) {
@ -409,8 +501,7 @@ class TasksEditFragment : BaseFragment<FragmentTasksEditBinding?>(), View.OnClic
val widgetInfo = TASK_ACTION_FRAGMENT_LIST[action.type - KEY_BACK_CODE_ACTION]
@Suppress("UNCHECKED_CAST") PageOption.to(Class.forName(widgetInfo.classPath) as Class<XPageFragment>) //跳转的fragment
.setRequestCode(position + 1) //requestCode: 0 新增 、>0 编辑itemListActions 的索引加1
.putString(KEY_EVENT_DATA_ACTION, action.setting)
.open(this)
.putString(KEY_EVENT_DATA_ACTION, action.setting).open(this)
}
private fun removeAction(position: Int) {

@ -14,10 +14,9 @@ import com.idormy.sms.forwarder.database.entity.Task
import com.idormy.sms.forwarder.database.viewmodel.BaseViewModelFactory
import com.idormy.sms.forwarder.database.viewmodel.TaskViewModel
import com.idormy.sms.forwarder.databinding.FragmentTasksBinding
import com.idormy.sms.forwarder.utils.EVENT_UPDATE_RULE_TYPE
import com.idormy.sms.forwarder.utils.KEY_RULE_CLONE
import com.idormy.sms.forwarder.utils.KEY_RULE_ID
import com.idormy.sms.forwarder.utils.KEY_RULE_TYPE
import com.idormy.sms.forwarder.utils.EVENT_UPDATE_TASK_TYPE
import com.idormy.sms.forwarder.utils.KEY_TASK_CLONE
import com.idormy.sms.forwarder.utils.KEY_TASK_ID
import com.idormy.sms.forwarder.utils.XToastUtils
import com.jeremyliao.liveeventbus.LiveEventBus
import com.scwang.smartrefresh.layout.api.RefreshLayout
@ -80,7 +79,7 @@ class TasksFragment : BaseFragment<FragmentTasksBinding?>(), TaskPagingAdapter.O
else -> "mine"
}
viewModel.setType(currentType)
LiveEventBus.get(EVENT_UPDATE_RULE_TYPE, String::class.java).post(currentType)
LiveEventBus.get(EVENT_UPDATE_TASK_TYPE, String::class.java).post(currentType)
adapter.refresh()
binding!!.recyclerView.scrollToPosition(0)
}
@ -106,18 +105,25 @@ class TasksFragment : BaseFragment<FragmentTasksBinding?>(), TaskPagingAdapter.O
override fun onItemClicked(view: View?, item: Task) {
when (view?.id) {
R.id.iv_copy -> {
PageOption.to(TasksEditFragment::class.java).setNewActivity(true).putLong(KEY_RULE_ID, item.id).putString(KEY_RULE_TYPE, item.type.toString()).putBoolean(KEY_RULE_CLONE, true).open(this)
PageOption.to(TasksEditFragment::class.java)
.setNewActivity(true).putLong(KEY_TASK_ID, item.id)
//.putString(KEY_TASK_TYPE, item.type.toString())
.putBoolean(KEY_TASK_CLONE, true)
.open(this)
}
R.id.iv_edit -> {
PageOption.to(TasksEditFragment::class.java).setNewActivity(true).putLong(KEY_RULE_ID, item.id).putString(KEY_RULE_TYPE, item.type.toString()).open(this)
PageOption.to(TasksEditFragment::class.java)
.setNewActivity(true).putLong(KEY_TASK_ID, item.id)
//.putString(KEY_TASK_TYPE, item.type.toString())
.open(this)
}
R.id.iv_delete -> {
MaterialDialog.Builder(requireContext()).title(R.string.delete_task_title).content(R.string.delete_task_tips).positiveText(R.string.lab_yes).negativeText(R.string.lab_no).onPositive { _: MaterialDialog?, _: DialogAction? ->
viewModel.delete(item.id)
XToastUtils.success(R.string.delete_task_toast)
}.show()
viewModel.delete(item.id)
XToastUtils.success(R.string.delete_task_toast)
}.show()
}
else -> {}

@ -0,0 +1,141 @@
package com.idormy.sms.forwarder.fragment.action
import android.annotation.SuppressLint
import android.content.Intent
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.google.gson.Gson
import com.idormy.sms.forwarder.R
import com.idormy.sms.forwarder.core.BaseFragment
import com.idormy.sms.forwarder.databinding.FragmentTasksCronBinding
import com.idormy.sms.forwarder.entity.task.CronSetting
import com.idormy.sms.forwarder.utils.KEY_BACK_DATA_ACTION
import com.idormy.sms.forwarder.utils.KEY_EVENT_DATA_ACTION
import com.idormy.sms.forwarder.utils.KEY_TEST_ACTION
import com.idormy.sms.forwarder.utils.TASK_ACTION_FRPC
import com.idormy.sms.forwarder.utils.XToastUtils
import com.jeremyliao.liveeventbus.LiveEventBus
import com.xuexiang.xaop.annotation.SingleClick
import com.xuexiang.xpage.annotation.Page
import com.xuexiang.xrouter.annotation.AutoWired
import com.xuexiang.xrouter.launcher.XRouter
import com.xuexiang.xui.utils.CountDownButtonHelper
import com.xuexiang.xui.widget.actionbar.TitleBar
@Page(name = "Frpc")
@Suppress("PrivatePropertyName")
class FrpcFragment : BaseFragment<FragmentTasksCronBinding?>(), View.OnClickListener {
private val TAG: String = FrpcFragment::class.java.simpleName
var titleBar: TitleBar? = null
private var mCountDownHelper: CountDownButtonHelper? = null
@JvmField
@AutoWired(name = KEY_EVENT_DATA_ACTION)
var eventData: String? = null
private var expression = "* * * * * ? *"
private var description = "测试描述"
override fun initArgs() {
XRouter.getInstance().inject(this)
}
override fun viewBindingInflate(
inflater: LayoutInflater,
container: ViewGroup,
): FragmentTasksCronBinding {
return FragmentTasksCronBinding.inflate(inflater, container, false)
}
override fun initTitle(): TitleBar? {
titleBar = super.initTitle()!!.setImmersive(false).setTitle(R.string.task_cron)
return titleBar
}
/**
* 初始化控件
*/
override fun initViews() {
//测试按钮增加倒计时,避免重复点击
mCountDownHelper = CountDownButtonHelper(binding!!.btnTest, 3)
mCountDownHelper!!.setOnCountDownListener(object : CountDownButtonHelper.OnCountDownListener {
override fun onCountDown(time: Int) {
binding!!.btnTest.text = String.format(getString(R.string.seconds_n), time)
}
override fun onFinished() {
binding!!.btnTest.text = getString(R.string.test)
}
})
Log.d(TAG, "initViews eventData:$eventData")
if (eventData != null) {
val settingVo = Gson().fromJson(eventData, CronSetting::class.java)
Log.d(TAG, "initViews settingVo:$settingVo")
}
}
@SuppressLint("SetTextI18n")
override fun initListeners() {
binding!!.btnTest.setOnClickListener(this)
binding!!.btnDel.setOnClickListener(this)
binding!!.btnSave.setOnClickListener(this)
LiveEventBus.get(KEY_TEST_ACTION, String::class.java).observe(this) {
mCountDownHelper?.finish()
if (it == "success") {
XToastUtils.success("测试通过", 30000)
} else {
XToastUtils.error(it, 30000)
}
}
}
@SingleClick
override fun onClick(v: View) {
try {
when (v.id) {
R.id.btn_test -> {
mCountDownHelper?.start()
Thread {
try {
val settingVo = checkSetting()
Log.d(TAG, settingVo.toString())
LiveEventBus.get(KEY_TEST_ACTION, String::class.java).post("success")
} catch (e: Exception) {
LiveEventBus.get(KEY_TEST_ACTION, String::class.java).post(e.message.toString())
e.printStackTrace()
}
}.start()
return
}
R.id.btn_del -> {
popToBack()
return
}
R.id.btn_save -> {
val settingVo = checkSetting()
val intent = Intent()
intent.putExtra(KEY_BACK_DATA_ACTION, Gson().toJson(settingVo))
setFragmentResult(TASK_ACTION_FRPC, intent)
popToBack()
return
}
}
} catch (e: Exception) {
XToastUtils.error(e.message.toString(), 30000)
e.printStackTrace()
}
}
//检查设置
@SuppressLint("SetTextI18n")
private fun checkSetting(): CronSetting {
return CronSetting(expression, description)
}
}

@ -0,0 +1,141 @@
package com.idormy.sms.forwarder.fragment.action
import android.annotation.SuppressLint
import android.content.Intent
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.google.gson.Gson
import com.idormy.sms.forwarder.R
import com.idormy.sms.forwarder.core.BaseFragment
import com.idormy.sms.forwarder.databinding.FragmentTasksCronBinding
import com.idormy.sms.forwarder.entity.task.CronSetting
import com.idormy.sms.forwarder.utils.KEY_BACK_DATA_ACTION
import com.idormy.sms.forwarder.utils.KEY_EVENT_DATA_ACTION
import com.idormy.sms.forwarder.utils.KEY_TEST_ACTION
import com.idormy.sms.forwarder.utils.TASK_ACTION_HTTPSERVER
import com.idormy.sms.forwarder.utils.XToastUtils
import com.jeremyliao.liveeventbus.LiveEventBus
import com.xuexiang.xaop.annotation.SingleClick
import com.xuexiang.xpage.annotation.Page
import com.xuexiang.xrouter.annotation.AutoWired
import com.xuexiang.xrouter.launcher.XRouter
import com.xuexiang.xui.utils.CountDownButtonHelper
import com.xuexiang.xui.widget.actionbar.TitleBar
@Page(name = "HttpServer")
@Suppress("PrivatePropertyName")
class HttpServerFragment : BaseFragment<FragmentTasksCronBinding?>(), View.OnClickListener {
private val TAG: String = HttpServerFragment::class.java.simpleName
var titleBar: TitleBar? = null
private var mCountDownHelper: CountDownButtonHelper? = null
@JvmField
@AutoWired(name = KEY_EVENT_DATA_ACTION)
var eventData: String? = null
private var expression = "* * * * * ? *"
private var description = "测试描述"
override fun initArgs() {
XRouter.getInstance().inject(this)
}
override fun viewBindingInflate(
inflater: LayoutInflater,
container: ViewGroup,
): FragmentTasksCronBinding {
return FragmentTasksCronBinding.inflate(inflater, container, false)
}
override fun initTitle(): TitleBar? {
titleBar = super.initTitle()!!.setImmersive(false).setTitle(R.string.task_cron)
return titleBar
}
/**
* 初始化控件
*/
override fun initViews() {
//测试按钮增加倒计时,避免重复点击
mCountDownHelper = CountDownButtonHelper(binding!!.btnTest, 3)
mCountDownHelper!!.setOnCountDownListener(object : CountDownButtonHelper.OnCountDownListener {
override fun onCountDown(time: Int) {
binding!!.btnTest.text = String.format(getString(R.string.seconds_n), time)
}
override fun onFinished() {
binding!!.btnTest.text = getString(R.string.test)
}
})
Log.d(TAG, "initViews eventData:$eventData")
if (eventData != null) {
val settingVo = Gson().fromJson(eventData, CronSetting::class.java)
Log.d(TAG, "initViews settingVo:$settingVo")
}
}
@SuppressLint("SetTextI18n")
override fun initListeners() {
binding!!.btnTest.setOnClickListener(this)
binding!!.btnDel.setOnClickListener(this)
binding!!.btnSave.setOnClickListener(this)
LiveEventBus.get(KEY_TEST_ACTION, String::class.java).observe(this) {
mCountDownHelper?.finish()
if (it == "success") {
XToastUtils.success("测试通过", 30000)
} else {
XToastUtils.error(it, 30000)
}
}
}
@SingleClick
override fun onClick(v: View) {
try {
when (v.id) {
R.id.btn_test -> {
mCountDownHelper?.start()
Thread {
try {
val settingVo = checkSetting()
Log.d(TAG, settingVo.toString())
LiveEventBus.get(KEY_TEST_ACTION, String::class.java).post("success")
} catch (e: Exception) {
LiveEventBus.get(KEY_TEST_ACTION, String::class.java).post(e.message.toString())
e.printStackTrace()
}
}.start()
return
}
R.id.btn_del -> {
popToBack()
return
}
R.id.btn_save -> {
val settingVo = checkSetting()
val intent = Intent()
intent.putExtra(KEY_BACK_DATA_ACTION, Gson().toJson(settingVo))
setFragmentResult(TASK_ACTION_HTTPSERVER, intent)
popToBack()
return
}
}
} catch (e: Exception) {
XToastUtils.error(e.message.toString(), 30000)
e.printStackTrace()
}
}
//检查设置
@SuppressLint("SetTextI18n")
private fun checkSetting(): CronSetting {
return CronSetting(expression, description)
}
}

@ -0,0 +1,827 @@
package com.idormy.sms.forwarder.fragment.action
import android.annotation.SuppressLint
import android.os.Looper
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.*
import androidx.fragment.app.viewModels
import androidx.lifecycle.Observer
import androidx.work.OneTimeWorkRequestBuilder
import androidx.work.WorkManager
import com.idormy.sms.forwarder.App
import com.idormy.sms.forwarder.R
import com.idormy.sms.forwarder.adapter.spinner.AppListAdapterItem
import com.idormy.sms.forwarder.adapter.spinner.AppListSpinnerAdapter
import com.idormy.sms.forwarder.adapter.spinner.SenderAdapterItem
import com.idormy.sms.forwarder.adapter.spinner.SenderSpinnerAdapter
import com.idormy.sms.forwarder.core.BaseFragment
import com.idormy.sms.forwarder.database.AppDatabase
import com.idormy.sms.forwarder.database.entity.Rule
import com.idormy.sms.forwarder.database.entity.Sender
import com.idormy.sms.forwarder.database.viewmodel.BaseViewModelFactory
import com.idormy.sms.forwarder.database.viewmodel.RuleViewModel
import com.idormy.sms.forwarder.databinding.FragmentRulesEditBinding
import com.idormy.sms.forwarder.entity.MsgInfo
import com.idormy.sms.forwarder.utils.*
import com.idormy.sms.forwarder.workers.LoadAppListWorker
import com.jeremyliao.liveeventbus.LiveEventBus
import com.xuexiang.xaop.annotation.SingleClick
import com.xuexiang.xpage.annotation.Page
import com.xuexiang.xrouter.annotation.AutoWired
import com.xuexiang.xrouter.launcher.XRouter
import com.xuexiang.xrouter.utils.TextUtils
import com.xuexiang.xui.utils.ResUtils
import com.xuexiang.xui.widget.actionbar.TitleBar
import com.xuexiang.xui.widget.dialog.materialdialog.DialogAction
import com.xuexiang.xui.widget.dialog.materialdialog.MaterialDialog
import com.xuexiang.xui.widget.picker.widget.builder.OptionsPickerBuilder
import com.xuexiang.xui.widget.picker.widget.listener.OnOptionsSelectListener
import com.xuexiang.xui.widget.spinner.materialspinner.MaterialSpinner
import com.xuexiang.xutil.XUtil
import io.reactivex.SingleObserver
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers
import kotlinx.coroutines.*
import java.util.*
@Page(name = "Notification")
@Suppress("PrivatePropertyName", "DEPRECATION")
class NotificationFragment : BaseFragment<FragmentRulesEditBinding?>(), View.OnClickListener, CompoundButton.OnCheckedChangeListener {
private val TAG: String = NotificationFragment::class.java.simpleName
var titleBar: TitleBar? = null
private val viewModel by viewModels<RuleViewModel> { BaseViewModelFactory(context) }
var callType = 1
var callTypeIndex = 0
//免打扰(禁用转发)时间段
private val mTimeOption = DataProvider.timePeriodOption
private var silentPeriodStart = 0
private var silentPeriodEnd = 0
//当前发送通道
var senderId = 0L
var senderListSelected: MutableList<Sender> = mutableListOf()
private var senderItemMap = HashMap<Long, LinearLayout>(2)
//发送通道列表
var senderListAll: MutableList<Sender> = mutableListOf()
private val senderSpinnerList = ArrayList<SenderAdapterItem>()
private lateinit var senderSpinnerAdapter: SenderSpinnerAdapter<*>
//已安装App信息列表
private val appListSpinnerList = ArrayList<AppListAdapterItem>()
private lateinit var appListSpinnerAdapter: AppListSpinnerAdapter<*>
private val appListObserver = Observer { it: String ->
Log.d(TAG, "EVENT_LOAD_APP_LIST: $it")
initAppSpinner()
}
@JvmField
@AutoWired(name = KEY_RULE_ID)
var ruleId: Long = 0
@JvmField
@AutoWired(name = KEY_RULE_TYPE)
var ruleType: String = "sms"
@JvmField
@AutoWired(name = KEY_RULE_CLONE)
var isClone: Boolean = false
override fun initArgs() {
XRouter.getInstance().inject(this)
}
override fun viewBindingInflate(
inflater: LayoutInflater,
container: ViewGroup,
): FragmentRulesEditBinding {
return FragmentRulesEditBinding.inflate(inflater, container, false)
}
override fun initTitle(): TitleBar? {
titleBar = super.initTitle()!!.setImmersive(false)
titleBar!!.setTitle(R.string.menu_rules)
return titleBar
}
/**
* 初始化控件
*/
override fun initViews() {
when (ruleType) {
"app" -> {
titleBar?.setTitle(R.string.app_rule)
binding!!.layoutSimSlot.visibility = View.GONE
binding!!.rbPhone.visibility = View.GONE
binding!!.rbCallType.visibility = View.GONE
binding!!.rbContent.visibility = View.GONE
binding!!.tvMuRuleTips.setText(R.string.mu_rule_app_tips)
binding!!.btInsertExtra.visibility = View.GONE
binding!!.btInsertSender.visibility = View.GONE
binding!!.btInsertContent.visibility = View.GONE
//初始化APP下拉列表
initAppSpinner()
//监听已安装App信息列表加载完成事件
LiveEventBus.get(EVENT_LOAD_APP_LIST, String::class.java).observeStickyForever(appListObserver)
}
"call" -> {
titleBar?.setTitle(R.string.call_rule)
binding!!.rbContent.visibility = View.GONE
binding!!.rbPackageName.visibility = View.GONE
binding!!.rbUid.visibility = View.GONE
binding!!.rbInformContent.visibility = View.GONE
//binding!!.rbMultiMatch.visibility = View.GONE
binding!!.tvMuRuleTips.setText(R.string.mu_rule_call_tips)
binding!!.btInsertContent.visibility = View.GONE
binding!!.btInsertSenderApp.visibility = View.GONE
binding!!.btInsertUid.visibility = View.GONE
binding!!.btInsertTitleApp.visibility = View.GONE
binding!!.btInsertContentApp.visibility = View.GONE
//通话类型1.来电挂机 2.去电挂机 3.未接来电 4.来电提醒 5.来电接通 6.去电拨出
binding!!.spCallType.setItems(CALL_TYPE_MAP.values.toList())
binding!!.spCallType.setOnItemSelectedListener { _: MaterialSpinner?, _: Int, _: Long, item: Any ->
CALL_TYPE_MAP.forEach {
if (it.value == item) callType = it.key.toInt()
}
}
binding!!.spCallType.setOnNothingSelectedListener {
callType = 1
callTypeIndex = 0
binding!!.spCallType.selectedIndex = callTypeIndex
}
binding!!.spCallType.selectedIndex = callTypeIndex
}
else -> {
titleBar?.setTitle(R.string.sms_rule)
binding!!.rbCallType.visibility = View.GONE
binding!!.rbPackageName.visibility = View.GONE
binding!!.rbUid.visibility = View.GONE
binding!!.rbInformContent.visibility = View.GONE
binding!!.btInsertSenderApp.visibility = View.GONE
binding!!.btInsertUid.visibility = View.GONE
binding!!.btInsertTitleApp.visibility = View.GONE
binding!!.btInsertContentApp.visibility = View.GONE
}
}
if (ruleId <= 0) { //新增
titleBar?.setSubTitle(getString(R.string.add_rule))
binding!!.btnDel.setText(R.string.discard)
initSenderSpinner()
} else { //编辑 & 克隆
binding!!.btnDel.setText(R.string.del)
initForm()
}
}
override fun initListeners() {
binding!!.btnSilentPeriod.setOnClickListener(this)
binding!!.btInsertSender.setOnClickListener(this)
binding!!.btInsertContent.setOnClickListener(this)
binding!!.btInsertSenderApp.setOnClickListener(this)
binding!!.btInsertUid.setOnClickListener(this)
binding!!.btInsertTitleApp.setOnClickListener(this)
binding!!.btInsertContentApp.setOnClickListener(this)
binding!!.btInsertExtra.setOnClickListener(this)
binding!!.btInsertTime.setOnClickListener(this)
binding!!.btInsertDeviceName.setOnClickListener(this)
binding!!.btnTest.setOnClickListener(this)
binding!!.btnDel.setOnClickListener(this)
binding!!.btnSave.setOnClickListener(this)
binding!!.sbStatus.setOnCheckedChangeListener(this)
binding!!.sbSmsTemplate.setOnCheckedChangeListener(this)
binding!!.sbRegexReplace.setOnCheckedChangeListener(this)
binding!!.rgFiled.setOnCheckedChangeListener { _: RadioGroup?, checkedId: Int ->
if (ruleType == "app" && appListSpinnerList.isNotEmpty()) {
binding!!.layoutAppList.visibility = if (checkedId == R.id.rb_inform_content) View.GONE else View.VISIBLE
}
when (checkedId) {
R.id.rb_transpond_all -> {
binding!!.rgCheck.check(R.id.rb_is)
binding!!.spCallType.visibility = View.GONE
binding!!.tvMuRuleTips.visibility = View.GONE
binding!!.layoutMatchType.visibility = View.GONE
binding!!.layoutMatchValue.visibility = View.GONE
}
R.id.rb_multi_match -> {
binding!!.rgCheck.check(R.id.rb_is)
binding!!.spCallType.visibility = View.GONE
binding!!.tvMuRuleTips.visibility = View.VISIBLE
binding!!.layoutMatchType.visibility = View.GONE
binding!!.layoutMatchValue.visibility = View.VISIBLE
binding!!.etValue.visibility = View.VISIBLE
}
R.id.rb_call_type -> {
binding!!.rgCheck.check(R.id.rb_is)
binding!!.tvMuRuleTips.visibility = View.GONE
binding!!.layoutMatchType.visibility = View.GONE
binding!!.layoutMatchValue.visibility = View.VISIBLE
binding!!.etValue.visibility = View.GONE
binding!!.spCallType.visibility = View.VISIBLE
}
else -> {
binding!!.spCallType.visibility = View.GONE
binding!!.tvMuRuleTips.visibility = View.GONE
binding!!.layoutMatchType.visibility = View.VISIBLE
binding!!.layoutMatchValue.visibility = View.VISIBLE
binding!!.etValue.visibility = View.VISIBLE
}
}
}
binding!!.rgCheck.setOnCheckedChangeListener { group: RadioGroup?, checkedId: Int ->
if (group != null && checkedId > 0) {
binding!!.rgCheck2.clearCheck()
group.check(checkedId)
}
}
binding!!.rgCheck2.setOnCheckedChangeListener { group: RadioGroup?, checkedId: Int ->
if (group != null && checkedId > 0) {
binding!!.rgCheck.clearCheck()
group.check(checkedId)
}
}
}
override fun onCheckedChanged(buttonView: CompoundButton?, isChecked: Boolean) {
when (buttonView?.id) {
R.id.sb_status -> {
binding!!.layoutSilentPeriod.visibility = if (isChecked) View.VISIBLE else View.GONE
}
R.id.sb_sms_template -> {
if (isChecked) {
binding!!.layoutSmsTemplate.visibility = View.VISIBLE
} else {
binding!!.layoutSmsTemplate.visibility = View.GONE
binding!!.etSmsTemplate.setText("")
}
}
R.id.sb_regex_replace -> {
if (isChecked) {
binding!!.layoutRegexReplace.visibility = View.VISIBLE
} else {
binding!!.layoutRegexReplace.visibility = View.GONE
binding!!.etRegexReplace.setText("")
}
}
else -> {}
}
}
@SingleClick
override fun onClick(v: View) {
try {
val etSmsTemplate: EditText = binding!!.etSmsTemplate
when (v.id) {
R.id.btn_silent_period -> {
OptionsPickerBuilder(context, OnOptionsSelectListener { _: View?, options1: Int, options2: Int, _: Int ->
silentPeriodStart = options1
silentPeriodEnd = options2
val txt = mTimeOption[options1] + " ~ " + mTimeOption[options2]
binding!!.tvSilentPeriod.text = txt
XToastUtils.toast(txt)
return@OnOptionsSelectListener false
}).setTitleText(getString(R.string.select_time_period)).setSelectOptions(silentPeriodStart, silentPeriodEnd).build<Any>().also {
it.setNPicker(mTimeOption, mTimeOption)
it.show()
}
}
R.id.bt_insert_sender -> {
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_from))
return
}
R.id.bt_insert_content -> {
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_sms))
return
}
R.id.bt_insert_sender_app -> {
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_package_name))
return
}
R.id.bt_insert_uid -> {
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_uid))
return
}
R.id.bt_insert_title_app -> {
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_title))
return
}
R.id.bt_insert_content_app -> {
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_msg))
return
}
R.id.bt_insert_extra -> {
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_card_slot))
return
}
R.id.bt_insert_time -> {
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_receive_time))
return
}
R.id.bt_insert_device_name -> {
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_device_name))
return
}
R.id.btn_test -> {
val ruleNew = checkForm()
testRule(ruleNew)
return
}
R.id.btn_del -> {
if (ruleId <= 0 || isClone) {
popToBack()
return
}
MaterialDialog.Builder(requireContext()).title(R.string.delete_rule_title).content(R.string.delete_rule_tips).positiveText(R.string.lab_yes).negativeText(R.string.lab_no).onPositive { _: MaterialDialog?, _: DialogAction? ->
viewModel.delete(ruleId)
XToastUtils.success(R.string.delete_rule_toast)
popToBack()
}.show()
return
}
R.id.btn_save -> {
val ruleNew = checkForm()
if (isClone) ruleNew.id = 0
Log.d(TAG, ruleNew.toString())
viewModel.insertOrUpdate(ruleNew)
XToastUtils.success(R.string.tipSaveSuccess)
popToBack()
return
}
}
} catch (e: Exception) {
XToastUtils.error(e.message.toString())
e.printStackTrace()
}
}
//初始化发送通道下拉框
@SuppressLint("SetTextI18n")
private fun initSenderSpinner() {
//免打扰(禁用转发)时间段
binding!!.tvSilentPeriod.text = mTimeOption[silentPeriodStart] + " ~ " + mTimeOption[silentPeriodEnd]
AppDatabase.getInstance(requireContext()).senderDao().getAll().subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(object : SingleObserver<List<Sender>> {
override fun onSubscribe(d: Disposable) {}
override fun onError(e: Throwable) {
e.printStackTrace()
}
override fun onSuccess(senderList: List<Sender>) {
if (senderList.isEmpty()) {
XToastUtils.error(R.string.add_sender_first)
return
}
senderListAll = senderList as MutableList<Sender>
for (sender in senderList) {
val name = if (sender.name.length > 20) sender.name.substring(0, 19) else sender.name
senderSpinnerList.add(SenderAdapterItem(name, sender.imageId, sender.id, sender.status))
}
senderSpinnerAdapter = SenderSpinnerAdapter(senderSpinnerList)
//.setTextColor(ResUtils.getColor(R.color.green))
//.setTextSize(12F)
.setIsFilterKey(true).setFilterColor("#EF5362").setBackgroundSelector(R.drawable.selector_custom_spinner_bg)
binding!!.spSender.setAdapter(senderSpinnerAdapter)
if (senderListSelected.isNotEmpty()) {
for (sender in senderListSelected) {
for (senderItem in senderSpinnerList) {
if (sender.id == senderItem.id) {
addSenderItemLinearLayout(senderItemMap, binding!!.layoutSenders, senderItem)
}
}
}
}
}
})
binding!!.spSender.setOnItemClickListener { _: AdapterView<*>, _: View, position: Int, _: Long ->
try {
val sender = senderSpinnerAdapter.getItemSource(position) as SenderAdapterItem
senderId = sender.id!!
if (senderId > 0L) {
senderListSelected.forEach {
if (senderId == it.id) {
XToastUtils.warning(getString(R.string.sender_contains_tips))
return@setOnItemClickListener
}
}
senderListAll.forEach {
if (senderId == it.id) {
senderListSelected.add(it)
addSenderItemLinearLayout(senderItemMap, binding!!.layoutSenders, sender)
}
}
if (STATUS_OFF == sender.status) {
XToastUtils.warning(getString(R.string.sender_disabled_tips))
}
}
} catch (e: Exception) {
XToastUtils.error(e.message.toString())
}
}
}
/**
* 动态增删Sender
*
* @param senderItemMap 管理item的map用于删除指定header
* @param layoutSenders 需要挂载item的LinearLayout
* @param sender SenderAdapterItem
*/
@SuppressLint("SetTextI18n")
private fun addSenderItemLinearLayout(
senderItemMap: MutableMap<Long, LinearLayout>, layoutSenders: LinearLayout, sender: SenderAdapterItem
) {
val layoutSenderItem = View.inflate(requireContext(), R.layout.item_add_sender, null) as LinearLayout
val ivRemoveSender = layoutSenderItem.findViewById<ImageView>(R.id.iv_remove_sender)
val ivSenderImage = layoutSenderItem.findViewById<ImageView>(R.id.iv_sender_image)
val ivSenderStatus = layoutSenderItem.findViewById<ImageView>(R.id.iv_sender_status)
val tvSenderName = layoutSenderItem.findViewById<TextView>(R.id.tv_sender_name)
ivSenderImage.setImageDrawable(sender.icon)
ivSenderStatus.setImageDrawable(ResUtils.getDrawable(if (STATUS_OFF == sender.status) R.drawable.icon_off else R.drawable.icon_on))
val senderItemId = sender.id as Long
tvSenderName.text = "ID-$senderItemId${sender.title}"
ivRemoveSender.tag = senderItemId
ivRemoveSender.setOnClickListener { view2: View ->
val tagId = view2.tag as Long
layoutSenders.removeView(senderItemMap[tagId])
senderItemMap.remove(tagId)
//senderListSelected.removeIf { it.id == tagId }
for (it in senderListSelected) {
if (it.id == tagId) {
senderListSelected -= it
break
}
}
Log.d(TAG, senderListSelected.count().toString())
Log.d(TAG, senderListSelected.toString())
if (senderListSelected.isEmpty()) senderId = 0L
if (senderListSelected.count() > 1) {
binding!!.layoutSenderLogic.visibility = View.VISIBLE
} else {
binding!!.layoutSenderLogic.visibility = View.GONE
binding!!.rgSenderLogic.check(R.id.rb_sender_logic_all)
}
}
layoutSenders.addView(layoutSenderItem)
senderItemMap[senderItemId] = layoutSenderItem
if (senderListSelected.count() > 1) {
binding!!.layoutSenderLogic.visibility = View.VISIBLE
} else {
binding!!.layoutSenderLogic.visibility = View.GONE
binding!!.rgSenderLogic.check(R.id.rb_sender_logic_all)
}
}
//初始化APP下拉列表
private fun initAppSpinner() {
if (ruleType != "app") return
//未开启异步获取已安装App信息开关时规则编辑不显示已安装APP下拉框
if (!SettingUtils.enableLoadUserAppList && !SettingUtils.enableLoadSystemAppList) return
if (App.UserAppList.isEmpty() && App.SystemAppList.isEmpty()) {
XToastUtils.info(getString(R.string.loading_app_list))
val request = OneTimeWorkRequestBuilder<LoadAppListWorker>().build()
WorkManager.getInstance(XUtil.getContext()).enqueue(request)
return
}
appListSpinnerList.clear()
if (SettingUtils.enableLoadUserAppList) {
for (appInfo in App.UserAppList) {
if (TextUtils.isEmpty(appInfo.packageName)) continue
appListSpinnerList.add(AppListAdapterItem(appInfo.name, appInfo.icon, appInfo.packageName))
}
}
if (SettingUtils.enableLoadSystemAppList) {
for (appInfo in App.SystemAppList) {
if (TextUtils.isEmpty(appInfo.packageName)) continue
appListSpinnerList.add(AppListAdapterItem(appInfo.name, appInfo.icon, appInfo.packageName))
}
}
//列表为空也不显示下拉框
if (appListSpinnerList.isEmpty()) return
appListSpinnerAdapter = AppListSpinnerAdapter(appListSpinnerList).setIsFilterKey(true).setFilterColor("#EF5362").setBackgroundSelector(R.drawable.selector_custom_spinner_bg)
binding!!.spApp.setAdapter(appListSpinnerAdapter)
binding!!.spApp.setOnItemClickListener { _: AdapterView<*>, _: View, position: Int, _: Long ->
try {
val appInfo = appListSpinnerAdapter.getItemSource(position) as AppListAdapterItem
CommonUtils.insertOrReplaceText2Cursor(binding!!.etValue, appInfo.packageName.toString())
} catch (e: Exception) {
XToastUtils.error(e.message.toString())
}
}
binding!!.layoutAppList.visibility = View.VISIBLE
}
//初始化表单
private fun initForm() {
AppDatabase.getInstance(requireContext()).ruleDao().get(ruleId).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(object : SingleObserver<Rule> {
override fun onSubscribe(d: Disposable) {}
override fun onError(e: Throwable) {
e.printStackTrace()
}
override fun onSuccess(rule: Rule) {
Log.d(TAG, rule.senderList.toString())
rule.senderList.forEach {
senderId = it.id
senderListSelected.add(it)
}
if (isClone) {
titleBar?.setSubTitle(getString(R.string.clone_rule))
binding!!.btnDel.setText(R.string.discard)
} else {
titleBar?.setSubTitle(getString(R.string.edit_rule))
}
Log.d(TAG, rule.toString())
binding!!.rgSenderLogic.check(rule.getSenderLogicCheckId())
binding!!.rgSimSlot.check(rule.getSimSlotCheckId())
binding!!.rgFiled.check(rule.getFiledCheckId())
val checkId = rule.getCheckCheckId()
if (checkId == R.id.rb_is || checkId == R.id.rb_contain || checkId == R.id.rb_not_contain) {
binding!!.rgCheck.check(checkId)
} else {
binding!!.rgCheck2.check(checkId)
}
binding!!.etValue.setText(rule.value)
if (ruleType == "call" && rule.filed == FILED_CALL_TYPE) {
callType = rule.value.toInt()
callTypeIndex = callType - 1
binding!!.spCallType.selectedIndex = callTypeIndex
}
binding!!.sbSmsTemplate.isChecked = !TextUtils.isEmpty(rule.smsTemplate.trim())
binding!!.etSmsTemplate.setText(rule.smsTemplate.trim())
binding!!.sbRegexReplace.isChecked = !TextUtils.isEmpty(rule.regexReplace.trim())
binding!!.etRegexReplace.setText(rule.regexReplace.trim())
binding!!.sbStatus.isChecked = rule.statusChecked
silentPeriodStart = rule.silentPeriodStart
silentPeriodEnd = rule.silentPeriodEnd
//初始化发送通道下拉框
initSenderSpinner()
}
})
}
//提交前检查表单
private fun checkForm(): Rule {
if (senderListSelected.isEmpty() || senderId == 0L) {
throw Exception(getString(R.string.new_sender_first))
}
val filed = when (binding!!.rgFiled.checkedRadioButtonId) {
R.id.rb_content -> FILED_MSG_CONTENT
R.id.rb_phone -> FILED_PHONE_NUM
R.id.rb_call_type -> FILED_CALL_TYPE
R.id.rb_package_name -> FILED_PACKAGE_NAME
R.id.rb_uid -> FILED_UID
R.id.rb_inform_content -> FILED_INFORM_CONTENT
R.id.rb_multi_match -> FILED_MULTI_MATCH
else -> FILED_TRANSPOND_ALL
}
val check = when (kotlin.math.max(binding!!.rgCheck.checkedRadioButtonId, binding!!.rgCheck2.checkedRadioButtonId)) {
R.id.rb_contain -> CHECK_CONTAIN
R.id.rb_not_contain -> CHECK_NOT_CONTAIN
R.id.rb_start_with -> CHECK_START_WITH
R.id.rb_end_with -> CHECK_END_WITH
R.id.rb_regex -> CHECK_REGEX
else -> CHECK_IS
}
var value = binding!!.etValue.text.toString().trim()
if (FILED_CALL_TYPE == filed) {
value = callType.toString()
if (callType !in 1..6) {
throw Exception(getString(R.string.invalid_call_type))
}
} else if (FILED_TRANSPOND_ALL != filed && TextUtils.isEmpty(value)) {
throw Exception(getString(R.string.invalid_match_value))
}
if (FILED_MULTI_MATCH == filed) {
val lineError = checkMultiMatch(value)
if (lineError > 0) {
throw Exception(String.format(getString(R.string.invalid_multi_match), lineError))
}
}
val smsTemplate = binding!!.etSmsTemplate.text.toString().trim()
val regexReplace = binding!!.etRegexReplace.text.toString().trim()
val lineNum = checkRegexReplace(regexReplace)
if (lineNum > 0) {
throw Exception(String.format(getString(R.string.invalid_regex_replace), lineNum))
}
val senderLogic = when (binding!!.rgSenderLogic.checkedRadioButtonId) {
R.id.rb_sender_logic_until_fail -> SENDER_LOGIC_UNTIL_FAIL
R.id.rb_sender_logic_until_success -> SENDER_LOGIC_UNTIL_SUCCESS
else -> SENDER_LOGIC_ALL
}
val simSlot = when (binding!!.rgSimSlot.checkedRadioButtonId) {
R.id.rb_sim_slot_1 -> CHECK_SIM_SLOT_1
R.id.rb_sim_slot_2 -> CHECK_SIM_SLOT_2
else -> CHECK_SIM_SLOT_ALL
}
val status = if (binding!!.sbStatus.isChecked) STATUS_ON else STATUS_OFF
//if (status == STATUS_OFF) {
// throw Exception(getString(R.string.invalid_rule_status))
//}
return Rule(
ruleId,
ruleType,
filed,
check,
value,
senderId,
smsTemplate,
regexReplace,
simSlot,
status,
Date(),
senderListSelected,
senderLogic,
silentPeriodStart,
silentPeriodEnd
)
}
//检查多重匹配规则是否正确
private fun checkMultiMatch(ruleStr: String?): Int {
if (TextUtils.isEmpty(ruleStr)) return 0
//Log.d(TAG, getString(R.string.regex_multi_match))
val regex = Regex(pattern = getString(R.string.regex_multi_match))
var lineNum = 1
val lineArray = ruleStr?.split("\\n".toRegex())?.toTypedArray()
for (line in lineArray!!) {
Log.d(TAG, line)
if (!line.matches(regex)) return lineNum
lineNum++
}
return 0
}
//检查正则替换填写是否正确
private fun checkRegexReplace(regexReplace: String?): Int {
if (TextUtils.isEmpty(regexReplace)) return 0
var lineNum = 1
val lineArray = regexReplace?.split("\\n".toRegex())?.toTypedArray()
for (line in lineArray!!) {
val position = line.indexOf("===")
if (position < 1) return lineNum
lineNum++
}
return 0
}
private fun testRule(rule: Rule) {
val dialogTest = View.inflate(requireContext(), R.layout.dialog_rule_test, null)
val tvSimSlot = dialogTest.findViewById<TextView>(R.id.tv_sim_slot)
val rgSimSlot = dialogTest.findViewById<RadioGroup>(R.id.rg_sim_slot)
val tvFrom = dialogTest.findViewById<TextView>(R.id.tv_from)
val etFrom = dialogTest.findViewById<EditText>(R.id.et_from)
val tvTitle = dialogTest.findViewById<TextView>(R.id.tv_title)
val etTitle = dialogTest.findViewById<EditText>(R.id.et_title)
val tvContent = dialogTest.findViewById<TextView>(R.id.tv_content)
val etContent = dialogTest.findViewById<EditText>(R.id.et_content)
//通话类型
val tvCallType = dialogTest.findViewById<TextView>(R.id.tv_call_type)
val spCallType = dialogTest.findViewById<MaterialSpinner>(R.id.sp_call_type)
var callTypeTest = callType
var callTypeIndexTest = callTypeIndex
if ("app" == ruleType) {
tvSimSlot.visibility = View.GONE
rgSimSlot.visibility = View.GONE
tvTitle.visibility = View.VISIBLE
etTitle.visibility = View.VISIBLE
tvFrom.setText(R.string.test_package_name)
tvContent.setText(R.string.test_inform_content)
tvCallType.visibility = View.GONE
spCallType.visibility = View.GONE
} else if ("call" == ruleType) {
tvContent.visibility = View.GONE
etContent.visibility = View.GONE
tvCallType.visibility = View.VISIBLE
spCallType.visibility = View.VISIBLE
spCallType.setItems(CALL_TYPE_MAP.values.toList())
spCallType.setOnItemSelectedListener { _: MaterialSpinner?, _: Int, _: Long, item: Any ->
CALL_TYPE_MAP.forEach {
if (it.value == item) callTypeTest = it.key.toInt()
}
}
spCallType.setOnNothingSelectedListener {
callTypeTest = callType
callTypeIndexTest = callTypeIndex
spCallType.selectedIndex = callTypeIndexTest
}
spCallType.selectedIndex = callTypeIndexTest
}
MaterialDialog.Builder(requireContext()).iconRes(android.R.drawable.ic_dialog_email).title(R.string.rule_tester).customView(dialogTest, true).cancelable(false).autoDismiss(false).neutralText(R.string.action_back).neutralColor(ResUtils.getColors(R.color.darkGrey)).onNeutral { dialog: MaterialDialog?, _: DialogAction? ->
dialog?.dismiss()
}.positiveText(R.string.action_test).onPositive { _: MaterialDialog?, _: DialogAction? ->
try {
val simSlot = when (if (ruleType == "app") -1 else rgSimSlot.checkedRadioButtonId) {
R.id.rb_sim_slot_1 -> 0
R.id.rb_sim_slot_2 -> 1
else -> -1
}
val testSim = "SIM" + (simSlot + 1)
val ruleSim: String = rule.simSlot
if (ruleSim != "ALL" && ruleSim != testSim) {
throw Exception(getString(R.string.card_slot_does_not_match))
}
//获取卡槽信息
val simInfo = when (simSlot) {
0 -> "SIM1_" + SettingUtils.extraSim1
1 -> "SIM2_" + SettingUtils.extraSim2
else -> etTitle.text.toString()
}
val subId = when (simSlot) {
0 -> SettingUtils.subidSim1
1 -> SettingUtils.subidSim2
else -> 0
}
val msg = StringBuilder()
if (ruleType == "call") {
val phoneNumber = etFrom.text.toString()
val contacts = PhoneUtils.getContactByNumber(phoneNumber)
val contactName = if (contacts.isNotEmpty()) contacts[0].name else ResUtils.getString(R.string.unknown_number)
msg.append(ResUtils.getString(R.string.contact)).append(contactName).append("\n")
msg.append(ResUtils.getString(R.string.mandatory_type))
msg.append(CALL_TYPE_MAP[callType.toString()] ?: ResUtils.getString(R.string.unknown_call))
} else {
msg.append(etContent.text.toString())
}
val msgInfo = MsgInfo(ruleType, etFrom.text.toString(), msg.toString(), Date(), simInfo, simSlot, subId, callTypeTest)
if (!rule.checkMsg(msgInfo)) {
throw Exception(getString(R.string.unmatched_rule))
}
Thread {
try {
SendUtils.sendMsgSender(msgInfo, rule)
} catch (e: Exception) {
e.printStackTrace()
if (Looper.myLooper() == null) Looper.prepare()
XToastUtils.error(e.message.toString())
Looper.loop()
}
}.start()
} catch (e: Exception) {
XToastUtils.error(e.message.toString())
}
}.show()
}
}

@ -0,0 +1,141 @@
package com.idormy.sms.forwarder.fragment.action
import android.annotation.SuppressLint
import android.content.Intent
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.google.gson.Gson
import com.idormy.sms.forwarder.R
import com.idormy.sms.forwarder.core.BaseFragment
import com.idormy.sms.forwarder.databinding.FragmentTasksCronBinding
import com.idormy.sms.forwarder.entity.task.CronSetting
import com.idormy.sms.forwarder.utils.KEY_BACK_DATA_ACTION
import com.idormy.sms.forwarder.utils.KEY_EVENT_DATA_ACTION
import com.idormy.sms.forwarder.utils.KEY_TEST_ACTION
import com.idormy.sms.forwarder.utils.TASK_ACTION_SENDSMS
import com.idormy.sms.forwarder.utils.XToastUtils
import com.jeremyliao.liveeventbus.LiveEventBus
import com.xuexiang.xaop.annotation.SingleClick
import com.xuexiang.xpage.annotation.Page
import com.xuexiang.xrouter.annotation.AutoWired
import com.xuexiang.xrouter.launcher.XRouter
import com.xuexiang.xui.utils.CountDownButtonHelper
import com.xuexiang.xui.widget.actionbar.TitleBar
@Page(name = "SendSms")
@Suppress("PrivatePropertyName")
class SendSmsFragment : BaseFragment<FragmentTasksCronBinding?>(), View.OnClickListener {
private val TAG: String = SendSmsFragment::class.java.simpleName
var titleBar: TitleBar? = null
private var mCountDownHelper: CountDownButtonHelper? = null
@JvmField
@AutoWired(name = KEY_EVENT_DATA_ACTION)
var eventData: String? = null
private var expression = "* * * * * ? *"
private var description = "测试描述"
override fun initArgs() {
XRouter.getInstance().inject(this)
}
override fun viewBindingInflate(
inflater: LayoutInflater,
container: ViewGroup,
): FragmentTasksCronBinding {
return FragmentTasksCronBinding.inflate(inflater, container, false)
}
override fun initTitle(): TitleBar? {
titleBar = super.initTitle()!!.setImmersive(false).setTitle(R.string.task_cron)
return titleBar
}
/**
* 初始化控件
*/
override fun initViews() {
//测试按钮增加倒计时,避免重复点击
mCountDownHelper = CountDownButtonHelper(binding!!.btnTest, 3)
mCountDownHelper!!.setOnCountDownListener(object : CountDownButtonHelper.OnCountDownListener {
override fun onCountDown(time: Int) {
binding!!.btnTest.text = String.format(getString(R.string.seconds_n), time)
}
override fun onFinished() {
binding!!.btnTest.text = getString(R.string.test)
}
})
Log.d(TAG, "initViews eventData:$eventData")
if (eventData != null) {
val settingVo = Gson().fromJson(eventData, CronSetting::class.java)
Log.d(TAG, "initViews settingVo:$settingVo")
}
}
@SuppressLint("SetTextI18n")
override fun initListeners() {
binding!!.btnTest.setOnClickListener(this)
binding!!.btnDel.setOnClickListener(this)
binding!!.btnSave.setOnClickListener(this)
LiveEventBus.get(KEY_TEST_ACTION, String::class.java).observe(this) {
mCountDownHelper?.finish()
if (it == "success") {
XToastUtils.success("测试通过", 30000)
} else {
XToastUtils.error(it, 30000)
}
}
}
@SingleClick
override fun onClick(v: View) {
try {
when (v.id) {
R.id.btn_test -> {
mCountDownHelper?.start()
Thread {
try {
val settingVo = checkSetting()
Log.d(TAG, settingVo.toString())
LiveEventBus.get(KEY_TEST_ACTION, String::class.java).post("success")
} catch (e: Exception) {
LiveEventBus.get(KEY_TEST_ACTION, String::class.java).post(e.message.toString())
e.printStackTrace()
}
}.start()
return
}
R.id.btn_del -> {
popToBack()
return
}
R.id.btn_save -> {
val settingVo = checkSetting()
val intent = Intent()
intent.putExtra(KEY_BACK_DATA_ACTION, Gson().toJson(settingVo))
setFragmentResult(TASK_ACTION_SENDSMS, intent)
popToBack()
return
}
}
} catch (e: Exception) {
XToastUtils.error(e.message.toString(), 30000)
e.printStackTrace()
}
}
//检查设置
@SuppressLint("SetTextI18n")
private fun checkSetting(): CronSetting {
return CronSetting(expression, description)
}
}

@ -18,7 +18,17 @@ import com.idormy.sms.forwarder.databinding.FragmentClientCallQueryBinding
import com.idormy.sms.forwarder.entity.CallInfo
import com.idormy.sms.forwarder.server.model.BaseResponse
import com.idormy.sms.forwarder.server.model.CallQueryData
import com.idormy.sms.forwarder.utils.*
import com.idormy.sms.forwarder.utils.Base64
import com.idormy.sms.forwarder.utils.DataProvider
import com.idormy.sms.forwarder.utils.EVENT_KEY_PHONE_NUMBERS
import com.idormy.sms.forwarder.utils.EVENT_KEY_SIM_SLOT
import com.idormy.sms.forwarder.utils.HttpServerUtils
import com.idormy.sms.forwarder.utils.PhoneUtils
import com.idormy.sms.forwarder.utils.PlaceholderHelper
import com.idormy.sms.forwarder.utils.RSACrypt
import com.idormy.sms.forwarder.utils.SM4Crypt
import com.idormy.sms.forwarder.utils.SettingUtils
import com.idormy.sms.forwarder.utils.XToastUtils
import com.jeremyliao.liveeventbus.LiveEventBus
import com.scwang.smartrefresh.layout.api.RefreshLayout
import com.xuexiang.xaop.annotation.SingleClick
@ -40,7 +50,7 @@ import com.xuexiang.xutil.data.DateUtils
import com.xuexiang.xutil.system.ClipboardUtils
import me.samlss.broccoli.Broccoli
@Suppress("PropertyName")
@Suppress("PropertyName", "DEPRECATION")
@Page(name = "远程查通话")
class CallQueryFragment : BaseFragment<FragmentClientCallQueryBinding?>() {
@ -96,9 +106,7 @@ class CallQueryFragment : BaseFragment<FragmentClientCallQueryBinding?>() {
holder.image(R.id.iv_image, model.typeImageId)
holder.image(R.id.iv_sim_image, model.simImageId)
holder.text(R.id.tv_duration, ResUtils.getString(R.string.call_duration) + model.duration + ResUtils.getString(R.string.seconds))
holder.image(R.id.iv_copy, R.drawable.ic_copy)
holder.image(R.id.iv_call, R.drawable.ic_phone_out)
holder.image(R.id.iv_reply, R.drawable.ic_reply)
holder.click(R.id.iv_copy) {
XToastUtils.info(String.format(getString(R.string.copied_to_clipboard), from))
ClipboardUtils.copyText(from)
@ -231,6 +239,7 @@ class CallQueryFragment : BaseFragment<FragmentClientCallQueryBinding?>() {
}
postRequest.upString(requestMsg)
}
3 -> {
try {
val sm4Key = ConvertTools.hexStringToByteArray(HttpServerUtils.clientSignKey)
@ -245,6 +254,7 @@ class CallQueryFragment : BaseFragment<FragmentClientCallQueryBinding?>() {
}
postRequest.upString(requestMsg)
}
else -> {
postRequest.upJson(requestMsg)
}

@ -19,7 +19,16 @@ import com.idormy.sms.forwarder.databinding.FragmentClientContactQueryBinding
import com.idormy.sms.forwarder.entity.ContactInfo
import com.idormy.sms.forwarder.server.model.BaseResponse
import com.idormy.sms.forwarder.server.model.ContactQueryData
import com.idormy.sms.forwarder.utils.*
import com.idormy.sms.forwarder.utils.Base64
import com.idormy.sms.forwarder.utils.DataProvider
import com.idormy.sms.forwarder.utils.EVENT_KEY_PHONE_NUMBERS
import com.idormy.sms.forwarder.utils.HttpServerUtils
import com.idormy.sms.forwarder.utils.PhoneUtils
import com.idormy.sms.forwarder.utils.PlaceholderHelper
import com.idormy.sms.forwarder.utils.RSACrypt
import com.idormy.sms.forwarder.utils.SM4Crypt
import com.idormy.sms.forwarder.utils.SettingUtils
import com.idormy.sms.forwarder.utils.XToastUtils
import com.jeremyliao.liveeventbus.LiveEventBus
import com.scwang.smartrefresh.layout.api.RefreshLayout
import com.xuexiang.xaop.annotation.SingleClick
@ -40,7 +49,7 @@ import com.xuexiang.xutil.data.ConvertTools
import com.xuexiang.xutil.system.ClipboardUtils
import me.samlss.broccoli.Broccoli
@Suppress("PropertyName")
@Suppress("PropertyName", "DEPRECATION")
@Page(name = "远程查话簿")
class ContactQueryFragment : BaseFragment<FragmentClientContactQueryBinding?>() {
@ -90,9 +99,7 @@ class ContactQueryFragment : BaseFragment<FragmentClientContactQueryBinding?>()
holder.text(R.id.sb_letter, model.firstLetter)
holder.text(R.id.tv_name, model.name)
holder.text(R.id.tv_phone_number, model.phoneNumber)
holder.image(R.id.iv_copy, R.drawable.ic_copy)
holder.image(R.id.iv_call, R.drawable.ic_phone_out)
holder.image(R.id.iv_reply, R.drawable.ic_reply)
holder.click(R.id.iv_copy) {
val str = model.toString()
XToastUtils.info(String.format(getString(R.string.copied_to_clipboard), str))
@ -104,9 +111,6 @@ class ContactQueryFragment : BaseFragment<FragmentClientContactQueryBinding?>()
}
holder.click(R.id.iv_reply) {
XToastUtils.info(getString(R.string.remote_sms) + model.phoneNumber)
/*val params = Bundle()
params.putString(KEY_PHONE_NUMBERS, model.phoneNumber)
openPage(SmsSendFragment::class.java, params)*/
LiveEventBus.get<String>(EVENT_KEY_PHONE_NUMBERS).post(model.phoneNumber)
PageOption.to(SmsSendFragment::class.java).setNewActivity(true).open((context as XPageActivity?)!!)
}
@ -213,6 +217,7 @@ class ContactQueryFragment : BaseFragment<FragmentClientContactQueryBinding?>()
}
postRequest.upString(requestMsg)
}
3 -> {
try {
val sm4Key = ConvertTools.hexStringToByteArray(HttpServerUtils.clientSignKey)
@ -227,6 +232,7 @@ class ContactQueryFragment : BaseFragment<FragmentClientContactQueryBinding?>()
}
postRequest.upString(requestMsg)
}
else -> {
postRequest.upJson(requestMsg)
}

@ -18,8 +18,16 @@ import com.idormy.sms.forwarder.databinding.FragmentClientSmsQueryBinding
import com.idormy.sms.forwarder.entity.SmsInfo
import com.idormy.sms.forwarder.server.model.BaseResponse
import com.idormy.sms.forwarder.server.model.SmsQueryData
import com.idormy.sms.forwarder.utils.*
import com.idormy.sms.forwarder.utils.Base64
import com.idormy.sms.forwarder.utils.DataProvider.emptySmsInfo
import com.idormy.sms.forwarder.utils.EVENT_KEY_PHONE_NUMBERS
import com.idormy.sms.forwarder.utils.EVENT_KEY_SIM_SLOT
import com.idormy.sms.forwarder.utils.HttpServerUtils
import com.idormy.sms.forwarder.utils.PlaceholderHelper
import com.idormy.sms.forwarder.utils.RSACrypt
import com.idormy.sms.forwarder.utils.SM4Crypt
import com.idormy.sms.forwarder.utils.SettingUtils
import com.idormy.sms.forwarder.utils.XToastUtils
import com.jeremyliao.liveeventbus.LiveEventBus
import com.scwang.smartrefresh.layout.api.RefreshLayout
import com.xuexiang.xaop.annotation.SingleClick
@ -41,7 +49,7 @@ import com.xuexiang.xutil.data.ConvertTools
import com.xuexiang.xutil.data.DateUtils
import me.samlss.broccoli.Broccoli
@Suppress("PropertyName")
@Suppress("PropertyName", "DEPRECATION")
@Page(name = "远程查短信")
class SmsQueryFragment : BaseFragment<FragmentClientSmsQueryBinding?>() {
@ -96,7 +104,7 @@ class SmsQueryFragment : BaseFragment<FragmentClientSmsQueryBinding?>() {
holder.image(R.id.iv_image, model.typeImageId)
holder.image(R.id.iv_sim_image, model.simImageId)
holder.text(R.id.tv_content, model.content)
holder.image(R.id.iv_reply, R.drawable.ic_reply)
//holder.image(R.id.iv_reply, R.drawable.ic_reply)
holder.click(R.id.iv_reply) {
XToastUtils.info(getString(R.string.remote_sms) + model.number)
LiveEventBus.get<Int>(EVENT_KEY_SIM_SLOT).post(model.simId)
@ -220,6 +228,7 @@ class SmsQueryFragment : BaseFragment<FragmentClientSmsQueryBinding?>() {
}
postRequest.upString(requestMsg)
}
3 -> {
try {
val sm4Key = ConvertTools.hexStringToByteArray(HttpServerUtils.clientSignKey)
@ -234,6 +243,7 @@ class SmsQueryFragment : BaseFragment<FragmentClientSmsQueryBinding?>() {
}
postRequest.upString(requestMsg)
}
else -> {
postRequest.upJson(requestMsg)
}

@ -0,0 +1,141 @@
package com.idormy.sms.forwarder.fragment.condition
import android.annotation.SuppressLint
import android.content.Intent
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.google.gson.Gson
import com.idormy.sms.forwarder.R
import com.idormy.sms.forwarder.core.BaseFragment
import com.idormy.sms.forwarder.databinding.FragmentTasksCronBinding
import com.idormy.sms.forwarder.entity.task.CronSetting
import com.idormy.sms.forwarder.utils.KEY_BACK_DATA_CONDITION
import com.idormy.sms.forwarder.utils.KEY_EVENT_DATA_CONDITION
import com.idormy.sms.forwarder.utils.KEY_TEST_CONDITION
import com.idormy.sms.forwarder.utils.TASK_CONDITION_BATTERY
import com.idormy.sms.forwarder.utils.XToastUtils
import com.jeremyliao.liveeventbus.LiveEventBus
import com.xuexiang.xaop.annotation.SingleClick
import com.xuexiang.xpage.annotation.Page
import com.xuexiang.xrouter.annotation.AutoWired
import com.xuexiang.xrouter.launcher.XRouter
import com.xuexiang.xui.utils.CountDownButtonHelper
import com.xuexiang.xui.widget.actionbar.TitleBar
@Page(name = "Battery")
@Suppress("PrivatePropertyName")
class BatteryFragment : BaseFragment<FragmentTasksCronBinding?>(), View.OnClickListener {
private val TAG: String = BatteryFragment::class.java.simpleName
var titleBar: TitleBar? = null
private var mCountDownHelper: CountDownButtonHelper? = null
@JvmField
@AutoWired(name = KEY_EVENT_DATA_CONDITION)
var eventData: String? = null
private var expression = "* * * * * ? *"
private var description = "测试描述"
override fun initArgs() {
XRouter.getInstance().inject(this)
}
override fun viewBindingInflate(
inflater: LayoutInflater,
container: ViewGroup,
): FragmentTasksCronBinding {
return FragmentTasksCronBinding.inflate(inflater, container, false)
}
override fun initTitle(): TitleBar? {
titleBar = super.initTitle()!!.setImmersive(false).setTitle(R.string.task_battery)
return titleBar
}
/**
* 初始化控件
*/
override fun initViews() {
//测试按钮增加倒计时,避免重复点击
mCountDownHelper = CountDownButtonHelper(binding!!.btnTest, 3)
mCountDownHelper!!.setOnCountDownListener(object : CountDownButtonHelper.OnCountDownListener {
override fun onCountDown(time: Int) {
binding!!.btnTest.text = String.format(getString(R.string.seconds_n), time)
}
override fun onFinished() {
binding!!.btnTest.text = getString(R.string.test)
}
})
Log.d(TAG, "initViews eventData:$eventData")
if (eventData != null) {
val settingVo = Gson().fromJson(eventData, CronSetting::class.java)
Log.d(TAG, "initViews settingVo:$settingVo")
}
}
@SuppressLint("SetTextI18n")
override fun initListeners() {
binding!!.btnTest.setOnClickListener(this)
binding!!.btnDel.setOnClickListener(this)
binding!!.btnSave.setOnClickListener(this)
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).observe(this) {
mCountDownHelper?.finish()
if (it == "success") {
XToastUtils.success("测试通过", 30000)
} else {
XToastUtils.error(it, 30000)
}
}
}
@SingleClick
override fun onClick(v: View) {
try {
when (v.id) {
R.id.btn_test -> {
mCountDownHelper?.start()
Thread {
try {
val settingVo = checkSetting()
Log.d(TAG, settingVo.toString())
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).post("success")
} catch (e: Exception) {
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).post(e.message.toString())
e.printStackTrace()
}
}.start()
return
}
R.id.btn_del -> {
popToBack()
return
}
R.id.btn_save -> {
val settingVo = checkSetting()
val intent = Intent()
intent.putExtra(KEY_BACK_DATA_CONDITION, Gson().toJson(settingVo))
setFragmentResult(TASK_CONDITION_BATTERY, intent)
popToBack()
return
}
}
} catch (e: Exception) {
XToastUtils.error(e.message.toString(), 30000)
e.printStackTrace()
}
}
//检查设置
@SuppressLint("SetTextI18n")
private fun checkSetting(): CronSetting {
return CronSetting(expression, description)
}
}

@ -0,0 +1,141 @@
package com.idormy.sms.forwarder.fragment.condition
import android.annotation.SuppressLint
import android.content.Intent
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.google.gson.Gson
import com.idormy.sms.forwarder.R
import com.idormy.sms.forwarder.core.BaseFragment
import com.idormy.sms.forwarder.databinding.FragmentTasksCronBinding
import com.idormy.sms.forwarder.entity.task.CronSetting
import com.idormy.sms.forwarder.utils.KEY_BACK_DATA_CONDITION
import com.idormy.sms.forwarder.utils.KEY_EVENT_DATA_CONDITION
import com.idormy.sms.forwarder.utils.KEY_TEST_CONDITION
import com.idormy.sms.forwarder.utils.TASK_CONDITION_CHARGE
import com.idormy.sms.forwarder.utils.XToastUtils
import com.jeremyliao.liveeventbus.LiveEventBus
import com.xuexiang.xaop.annotation.SingleClick
import com.xuexiang.xpage.annotation.Page
import com.xuexiang.xrouter.annotation.AutoWired
import com.xuexiang.xrouter.launcher.XRouter
import com.xuexiang.xui.utils.CountDownButtonHelper
import com.xuexiang.xui.widget.actionbar.TitleBar
@Page(name = "Charge")
@Suppress("PrivatePropertyName")
class ChargeFragment : BaseFragment<FragmentTasksCronBinding?>(), View.OnClickListener {
private val TAG: String = ChargeFragment::class.java.simpleName
var titleBar: TitleBar? = null
private var mCountDownHelper: CountDownButtonHelper? = null
@JvmField
@AutoWired(name = KEY_EVENT_DATA_CONDITION)
var eventData: String? = null
private var expression = "* * * * * ? *"
private var description = "测试描述"
override fun initArgs() {
XRouter.getInstance().inject(this)
}
override fun viewBindingInflate(
inflater: LayoutInflater,
container: ViewGroup,
): FragmentTasksCronBinding {
return FragmentTasksCronBinding.inflate(inflater, container, false)
}
override fun initTitle(): TitleBar? {
titleBar = super.initTitle()!!.setImmersive(false).setTitle(R.string.task_charge)
return titleBar
}
/**
* 初始化控件
*/
override fun initViews() {
//测试按钮增加倒计时,避免重复点击
mCountDownHelper = CountDownButtonHelper(binding!!.btnTest, 3)
mCountDownHelper!!.setOnCountDownListener(object : CountDownButtonHelper.OnCountDownListener {
override fun onCountDown(time: Int) {
binding!!.btnTest.text = String.format(getString(R.string.seconds_n), time)
}
override fun onFinished() {
binding!!.btnTest.text = getString(R.string.test)
}
})
Log.d(TAG, "initViews eventData:$eventData")
if (eventData != null) {
val settingVo = Gson().fromJson(eventData, CronSetting::class.java)
Log.d(TAG, "initViews settingVo:$settingVo")
}
}
@SuppressLint("SetTextI18n")
override fun initListeners() {
binding!!.btnTest.setOnClickListener(this)
binding!!.btnDel.setOnClickListener(this)
binding!!.btnSave.setOnClickListener(this)
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).observe(this) {
mCountDownHelper?.finish()
if (it == "success") {
XToastUtils.success("测试通过", 30000)
} else {
XToastUtils.error(it, 30000)
}
}
}
@SingleClick
override fun onClick(v: View) {
try {
when (v.id) {
R.id.btn_test -> {
mCountDownHelper?.start()
Thread {
try {
val settingVo = checkSetting()
Log.d(TAG, settingVo.toString())
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).post("success")
} catch (e: Exception) {
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).post(e.message.toString())
e.printStackTrace()
}
}.start()
return
}
R.id.btn_del -> {
popToBack()
return
}
R.id.btn_save -> {
val settingVo = checkSetting()
val intent = Intent()
intent.putExtra(KEY_BACK_DATA_CONDITION, Gson().toJson(settingVo))
setFragmentResult(TASK_CONDITION_CHARGE, intent)
popToBack()
return
}
}
} catch (e: Exception) {
XToastUtils.error(e.message.toString(), 30000)
e.printStackTrace()
}
}
//检查设置
@SuppressLint("SetTextI18n")
private fun checkSetting(): CronSetting {
return CronSetting(expression, description)
}
}

@ -35,7 +35,6 @@ import java.text.SimpleDateFormat
import java.util.Date
import java.util.Locale
@Page(name = "Cron")
@Suppress("PrivatePropertyName")
class CronFragment : BaseFragment<FragmentTasksCronBinding?>(), View.OnClickListener {

@ -0,0 +1,141 @@
package com.idormy.sms.forwarder.fragment.condition
import android.annotation.SuppressLint
import android.content.Intent
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.google.gson.Gson
import com.idormy.sms.forwarder.R
import com.idormy.sms.forwarder.core.BaseFragment
import com.idormy.sms.forwarder.databinding.FragmentTasksCronBinding
import com.idormy.sms.forwarder.entity.task.CronSetting
import com.idormy.sms.forwarder.utils.KEY_BACK_DATA_CONDITION
import com.idormy.sms.forwarder.utils.KEY_EVENT_DATA_CONDITION
import com.idormy.sms.forwarder.utils.KEY_TEST_CONDITION
import com.idormy.sms.forwarder.utils.TASK_CONDITION_NETWORK
import com.idormy.sms.forwarder.utils.XToastUtils
import com.jeremyliao.liveeventbus.LiveEventBus
import com.xuexiang.xaop.annotation.SingleClick
import com.xuexiang.xpage.annotation.Page
import com.xuexiang.xrouter.annotation.AutoWired
import com.xuexiang.xrouter.launcher.XRouter
import com.xuexiang.xui.utils.CountDownButtonHelper
import com.xuexiang.xui.widget.actionbar.TitleBar
@Page(name = "Network")
@Suppress("PrivatePropertyName")
class NetworkFragment : BaseFragment<FragmentTasksCronBinding?>(), View.OnClickListener {
private val TAG: String = NetworkFragment::class.java.simpleName
var titleBar: TitleBar? = null
private var mCountDownHelper: CountDownButtonHelper? = null
@JvmField
@AutoWired(name = KEY_EVENT_DATA_CONDITION)
var eventData: String? = null
private var expression = "* * * * * ? *"
private var description = "测试描述"
override fun initArgs() {
XRouter.getInstance().inject(this)
}
override fun viewBindingInflate(
inflater: LayoutInflater,
container: ViewGroup,
): FragmentTasksCronBinding {
return FragmentTasksCronBinding.inflate(inflater, container, false)
}
override fun initTitle(): TitleBar? {
titleBar = super.initTitle()!!.setImmersive(false).setTitle(R.string.task_network)
return titleBar
}
/**
* 初始化控件
*/
override fun initViews() {
//测试按钮增加倒计时,避免重复点击
mCountDownHelper = CountDownButtonHelper(binding!!.btnTest, 3)
mCountDownHelper!!.setOnCountDownListener(object : CountDownButtonHelper.OnCountDownListener {
override fun onCountDown(time: Int) {
binding!!.btnTest.text = String.format(getString(R.string.seconds_n), time)
}
override fun onFinished() {
binding!!.btnTest.text = getString(R.string.test)
}
})
Log.d(TAG, "initViews eventData:$eventData")
if (eventData != null) {
val settingVo = Gson().fromJson(eventData, CronSetting::class.java)
Log.d(TAG, "initViews settingVo:$settingVo")
}
}
@SuppressLint("SetTextI18n")
override fun initListeners() {
binding!!.btnTest.setOnClickListener(this)
binding!!.btnDel.setOnClickListener(this)
binding!!.btnSave.setOnClickListener(this)
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).observe(this) {
mCountDownHelper?.finish()
if (it == "success") {
XToastUtils.success("测试通过", 30000)
} else {
XToastUtils.error(it, 30000)
}
}
}
@SingleClick
override fun onClick(v: View) {
try {
when (v.id) {
R.id.btn_test -> {
mCountDownHelper?.start()
Thread {
try {
val settingVo = checkSetting()
Log.d(TAG, settingVo.toString())
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).post("success")
} catch (e: Exception) {
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).post(e.message.toString())
e.printStackTrace()
}
}.start()
return
}
R.id.btn_del -> {
popToBack()
return
}
R.id.btn_save -> {
val settingVo = checkSetting()
val intent = Intent()
intent.putExtra(KEY_BACK_DATA_CONDITION, Gson().toJson(settingVo))
setFragmentResult(TASK_CONDITION_NETWORK, intent)
popToBack()
return
}
}
} catch (e: Exception) {
XToastUtils.error(e.message.toString(), 30000)
e.printStackTrace()
}
}
//检查设置
@SuppressLint("SetTextI18n")
private fun checkSetting(): CronSetting {
return CronSetting(expression, description)
}
}

@ -86,6 +86,7 @@ const val SP_SMS_TEMPLATE = "sms_template"
const val SP_ENABLE_HELP_TIP = "enable_help_tip"
const val SP_PURE_CLIENT_MODE = "enable_pure_client_mode"
const val SP_PURE_TASK_MODE = "enable_pure_task_mode"
const val SP_LOCATION_TAG = "enable_location_tag"
const val SP_ENABLE_CACTUS = "enable_cactus"
@ -353,7 +354,8 @@ const val KEY_URL = "key_url"
//主页监听时间
const val EVENT_UPDATE_LOGS_TYPE = "key_logs_type"
const val EVENT_UPDATE_RULE_TYPE = "key_status"
const val EVENT_UPDATE_RULE_TYPE = "key_rules_type"
const val EVENT_UPDATE_TASK_TYPE = "key_tasks_type"
const val KEY_SENDER_ID = "key_sender_id"
const val KEY_SENDER_TYPE = "key_sender_type"
@ -364,6 +366,10 @@ const val KEY_RULE_ID = "key_rule_id"
const val KEY_RULE_TYPE = "key_rule_type"
const val KEY_RULE_CLONE = "key_rule_clone"
const val KEY_TASK_ID = "key_task_id"
const val KEY_TASK_TYPE = "key_task_type"
const val KEY_TASK_CLONE = "key_task_clone"
const val EVENT_LOAD_APP_LIST = "EVENT_LOAD_APP_LIST"
const val EVENT_KEY_SIM_SLOT = "EVENT_KEY_SIM_SLOT"
@ -476,10 +482,6 @@ var CLIENT_FRAGMENT_LIST = listOf(
)
//自动任务
const val KEY_TASK_ID = "key_task_id"
const val KEY_TASK_TYPE = "key_task_type"
const val KEY_TASK_CLONE = "key_task_clone"
const val KEY_TEST_CONDITION = "key_test_condition"
const val KEY_EVENT_DATA_CONDITION = "event_data_condition"
const val KEY_BACK_CODE_CONDITION = 1000
@ -494,32 +496,32 @@ const val KEY_BACK_DATA_ACTION = "back_data_action"
const val TASK_CONDITION_CRON = 1000
const val TASK_CONDITION_BATTERY = 1001
const val TASK_CONDITION_CHARGE = 1002
const val TASK_CONDITION_WLAN = 1003
const val TASK_CONDITION_NETWORK = 1003
var TASK_CONDITION_FRAGMENT_LIST = listOf(
PageInfo(
getString(R.string.task_cron),
"com.idormy.sms.forwarder.fragment.condition.CronFragment",
"{\"\":\"\"}",
CoreAnim.slide,
R.drawable.auto_task_icon_cron,
R.drawable.auto_task_icon_custom_time,
),
PageInfo(
getString(R.string.email),
"com.idormy.sms.forwarder.fragment.senders.EmailFragment",
getString(R.string.task_battery),
"com.idormy.sms.forwarder.fragment.condition.BatteryFragment",
"{\"\":\"\"}",
CoreAnim.slide,
R.drawable.auto_task_icon_battery
),
PageInfo(
getString(R.string.bark),
"com.idormy.sms.forwarder.fragment.senders.BarkFragment",
getString(R.string.task_charge),
"com.idormy.sms.forwarder.fragment.condition.ChargeFragment",
"{\"\":\"\"}",
CoreAnim.slide,
R.drawable.auto_task_icon_charge
),
PageInfo(
getString(R.string.webhook),
"com.idormy.sms.forwarder.fragment.senders.WebhookFragment",
getString(R.string.task_network),
"com.idormy.sms.forwarder.fragment.condition.NetworkFragment",
"{\"\":\"\"}",
CoreAnim.slide,
R.drawable.auto_task_icon_wlan
@ -527,33 +529,37 @@ var TASK_CONDITION_FRAGMENT_LIST = listOf(
)
//注意TASK_ACTION_XXX 枚举值 等于 TASK_ACTION_FRAGMENT_LIST 索引加上 KEY_BACK_CODE_ACTION不可改变
const val TASK_ACTION_SENDSMS = 2000
const val TASK_ACTION_NOTIFICATION = 2001
const val TASK_ACTION_FRPC = 2002
const val TASK_ACTION_HTTPSERVER = 2003
var TASK_ACTION_FRAGMENT_LIST = listOf(
PageInfo(
getString(R.string.task_cron),
"com.idormy.sms.forwarder.fragment.condition.CronFragment",
getString(R.string.task_sendsms),
"com.idormy.sms.forwarder.fragment.action.SendSmsFragment",
"{\"\":\"\"}",
CoreAnim.slide,
R.drawable.auto_task_icon_cron
R.drawable.auto_task_icon_sms
),
PageInfo(
getString(R.string.email),
"com.idormy.sms.forwarder.fragment.senders.EmailFragment",
getString(R.string.task_notification),
"com.idormy.sms.forwarder.fragment.action.NotificationFragment",
"{\"\":\"\"}",
CoreAnim.slide,
R.drawable.auto_task_icon_battery
R.drawable.auto_task_icon_sender,
),
PageInfo(
getString(R.string.bark),
"com.idormy.sms.forwarder.fragment.senders.BarkFragment",
getString(R.string.task_frpc),
"com.idormy.sms.forwarder.fragment.action.FrpcFragment",
"{\"\":\"\"}",
CoreAnim.slide,
R.drawable.auto_task_icon_charge
R.drawable.auto_task_icon_frpc
),
PageInfo(
getString(R.string.webhook),
"com.idormy.sms.forwarder.fragment.senders.WebhookFragment",
getString(R.string.task_server),
"com.idormy.sms.forwarder.fragment.action.HttpServerFragment",
"{\"\":\"\"}",
CoreAnim.slide,
R.drawable.auto_task_icon_wlan
R.drawable.auto_task_icon_http_server
),
)

@ -3,6 +3,7 @@ package com.idormy.sms.forwarder.utils
import com.idormy.sms.forwarder.R
import com.xuexiang.xui.utils.ResUtils.getString
@Suppress("DEPRECATION")
class SettingUtils private constructor() {
companion object {
@ -157,6 +158,9 @@ class SettingUtils private constructor() {
//是否纯客户端模式
var enablePureClientMode: Boolean by SharedPreference(SP_PURE_CLIENT_MODE, false)
//是否纯任务模式
var enablePureTaskMode: Boolean by SharedPreference(SP_PURE_TASK_MODE, true)
//是否启用定位标签
var enableLocationTag: Boolean by SharedPreference(SP_LOCATION_TAG, false)

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/view_dimen_48" />
<solid android:color="@color/auto_task_select_address_normal_bg_color" />
</shape>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/view_dimen_48" />
<solid android:color="@color/auto_task_select_address_selected_bg_color" />
</shape>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/view_dimen_48" />
<solid android:color="@color/task_bg_color" />
</shape>

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="@dimen/view_dimen_64" android:width="@dimen/view_dimen_64" android:viewportWidth="64.0" android:viewportHeight="64.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/base_color_wb_bw" android:pathData="M8.7787,19.4678C11.885,14.5468 16.6222,10.7168 22.2573,8.7049C20.9458,6.7865 18.8447,5.4137 16.3947,5C12.3575,7.0142 8.8211,9.8173 6.0059,13.1987C6.0054,13.2166 6.0042,13.2344 6.0031,13.252L6.0031,13.2521C6.0015,13.2755 6,13.2989 6,13.3227C6,15.746 7.0712,17.9259 8.7787,19.4678ZM7.2998,34.848C7.2998,21.2303 18.3579,10.1911 31.9992,10.1911C45.6405,10.1911 56.6998,21.2303 56.6998,34.848C56.6998,48.4644 45.6405,59.5061 31.9992,59.5061C18.3579,59.5061 7.2998,48.4644 7.2998,34.848ZM33.2996,25.5038V33.549H39.583C41.1388,33.549 42.3996,34.7124 42.3996,36.1446C42.3996,37.5793 41.1388,38.7401 39.583,38.7401H30.9161C30.8828,38.7401 30.8495,38.7396 30.8164,38.7385C30.7779,38.74 30.7391,38.7408 30.7002,38.7408C29.2643,38.7408 28.0996,37.6938 28.0996,36.4046V36.1446V25.5038C28.0996,24.2135 29.2643,23.1676 30.7002,23.1676C32.1348,23.1676 33.2996,24.2135 33.2996,25.5038ZM58,13.3238C58,15.7472 56.9288,17.927 55.2213,19.4689C52.115,14.5479 47.3778,10.7179 41.7427,8.706C43.0542,6.7865 45.1565,5.4137 47.6088,5C51.6448,7.0142 55.1789,9.8162 57.9941,13.1942C57.9946,13.2132 57.9958,13.2317 57.9969,13.2501C57.9985,13.2745 58,13.2988 58,13.3238Z" android:fillAlpha="@integer/svg_fill_alpha_w03_d04" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="@dimen/view_dimen_64" android:width="@dimen/view_dimen_64" android:viewportWidth="64.0" android:viewportHeight="64.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/base_color_wb_bw" android:pathData="M24.8577,56.1381C24.8577,55.5706 25.314,55.1105 25.8769,55.1105H38.6693C39.2322,55.1105 39.6885,55.5706 39.6885,56.1381C39.6885,58.9656 36.2949,61 32.2731,61C28.2512,61 24.8577,58.9656 24.8577,56.1381ZM7.9834,48.2465C8.0157,47.8727 8.1322,47.4954 8.3463,47.1388L15.6534,34.9708V22.121C15.6534,12.6593 23.3302,5 32.7867,5C37.9516,5 42.236,7.1894 45.0842,10.8424L49.3591,6.5325C50.4275,5.4555 52.1596,5.4555 53.228,6.5325C54.2964,7.6096 54.2964,9.356 53.228,10.4331L10.6702,53.3388C9.6018,54.4159 7.8696,54.4159 6.8013,53.3388C5.7329,52.2617 5.7329,50.5154 6.8013,49.4383L7.9834,48.2465ZM48.8869,22.3707C48.8908,22.5484 48.8927,22.727 48.8927,22.9065V34.8721L57.3806,46.9872C58.5727,48.6888 57.3657,51.0381 55.2994,51.0381H20.452L48.8869,22.3707Z" android:fillAlpha="@integer/svg_fill_alpha_w03_d04" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="@dimen/view_dimen_64" android:width="@dimen/view_dimen_64" android:viewportWidth="64.0" android:viewportHeight="64.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/base_color_wb_bw" android:pathData="M47.7347,16.5837L34.8406,49.5422H6.8687C5.2343,49.5422 4.3904,47.5891 5.5106,46.3989L10.1446,41.4753C10.1814,41.431 10.2199,41.3875 10.2599,41.3449L16.1902,35.0399V18.8528C16.1902,10.0976 23.2878,3 32.0431,3C36.0817,3 39.7676,4.5102 42.5668,6.9967C45.3921,9.8214 47.1458,12.4748 47.7347,16.5837ZM25.005,53.2724C24.3142,53.2724 23.8118,54.0174 24.068,54.7037C25.3908,58.2356 28.6166,60.7326 32.3926,60.7326C36.1686,60.7326 39.3953,58.2356 40.7171,54.7037C40.9743,54.0174 40.4709,53.2724 39.7791,53.2724H25.005ZM57.917,49.5422H34.8406L47.7347,16.5837C47.8409,17.3248 47.8959,18.0824 47.8959,18.8528V34.3085L59.2751,46.3989C60.3953,47.5891 59.5514,49.5422 57.917,49.5422Z" android:fillAlpha="@integer/svg_fill_alpha_w03_d04" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="@dimen/view_dimen_64" android:width="@dimen/view_dimen_64" android:viewportWidth="64.0" android:viewportHeight="64.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/base_color_wb_bw" android:pathData="M15,57C16.6642,57 18.2229,56.5483 19.5602,55.7608C20.0596,55.5887 20.5199,55.2825 20.883,54.8473L20.996,54.7119C21.0003,54.708 21.0047,54.7042 21.009,54.7003L22.6726,52.7069C22.6756,52.702 22.6786,52.697 22.6817,52.6921L47.4611,23H47.4643L56,12.7721V12.7682L59.7564,8.267C60.818,6.9949 60.6474,5.1031 59.3753,4.0415C58.1033,2.9799 56.2115,3.1505 55.1499,4.4226L53.5645,6.3223C52.7467,6 51.6535,6 49.64,6H24.36C22.1575,6 21.0563,6 20.2121,6.4218C19.4372,6.809 18.809,7.4372 18.4218,8.2121C18.0974,8.8613 18.0225,9.6626 18.0052,11H18V12.36V16.64V39.5121C17.0617,39.1805 16.0519,39 15,39C10.0294,39 6,43.0295 6,48C6,52.9706 10.0294,57 15,57ZM56,22.1364L50,29.3259V39.5121C49.0617,39.1805 48.0519,39 47,39C42.0294,39 38,43.0295 38,48C38,52.9706 42.0294,57 47,57C51.9706,57 56,52.9706 56,48V48V22.1364ZM39.6462,23L24,41.7481V22.9999L24.36,23H39.6462Z" android:fillAlpha="@integer/svg_fill_alpha_w03_d04" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="@dimen/view_dimen_64" android:width="@dimen/view_dimen_64" android:viewportWidth="64.0" android:viewportHeight="64.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/base_color_wb_bw" android:pathData="M17.4218,8.2121C17.0974,8.8613 17.0225,9.6626 17.0052,11H17V12.36V16.64V39.5121C16.0617,39.1805 15.0519,39 14,39C9.0294,39 5,43.0294 5,48C5,52.9706 9.0294,57 14,57C18.9706,57 23,52.9706 23,48V22.9999L23.36,23H48.64L49,22.9999V39.5121C48.0617,39.1805 47.0519,39 46,39C41.0294,39 37,43.0294 37,48C37,52.9706 41.0294,57 46,57C50.9706,57 55,52.9706 55,48V16.64V13V12.36C55,10.1575 55,9.0563 54.5782,8.2121C54.191,7.4372 53.5628,6.809 52.7879,6.4218C51.9437,6 50.8425,6 48.64,6H23.36C21.1575,6 20.0563,6 19.2121,6.4218C18.4372,6.809 17.809,7.4372 17.4218,8.2121Z" android:fillAlpha="@integer/svg_fill_alpha_w03_d04" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="@dimen/view_dimen_68" android:width="@dimen/view_dimen_68" android:viewportWidth="68.0" android:viewportHeight="68.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/base_color_wb_bw" android:pathData="M34,66C51.6731,66 66,51.6731 66,34C66,16.3269 51.6731,2 34,2C16.3269,2 2,16.3269 2,34C2,51.6731 16.3269,66 34,66Z" android:fillAlpha="0.06" />
<path android:fillColor="#00000000" android:pathData="M34,67C52.2254,67 67,52.2254 67,34C67,15.7746 52.2254,1 34,1C15.7746,1 1,15.7746 1,34C1,52.2254 15.7746,67 34,67Z" android:strokeColor="@color/base_color_ww_bb" android:strokeWidth="2.0" android:strokeAlpha="0.1" />
<path android:fillColor="@color/base_color_wb_bw" android:pathData="M28.2162,21.8787C29.3878,20.7071 31.2873,20.7071 32.4589,21.8787L42.3817,31.8015C43.1674,32.5872 43.4261,33.7002 43.1581,34.7015C43.0359,35.2304 42.7688,35.7325 42.3566,36.1447L32.4338,46.0675C31.2622,47.2391 29.3628,47.239 28.1912,46.0675C27.0196,44.8959 27.0196,42.9964 28.1912,41.8248L36.0555,33.9606L28.2162,26.1213C27.0447,24.9497 27.0447,23.0503 28.2162,21.8787Z" android:fillAlpha="0.3" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="25.0dip" android:width="25.0dip" android:autoMirrored="true" android:viewportWidth="25.0" android:viewportHeight="25.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/auto_task_icon_light_blue" android:pathData="M6.66,0.66L18.66,0.66A6,6 0,0 1,24.66 6.66L24.66,18.66A6,6 0,0 1,18.66 24.66L6.66,24.66A6,6 0,0 1,0.66 18.66L0.66,6.66A6,6 0,0 1,6.66 0.66z" />
<path android:fillColor="#ffffffff" android:pathData="M15.101,6.158C16.635,5.272 18.438,5.274 19.916,6.004C19.709,7.552 18.811,8.991 17.353,9.833C16.001,10.614 14.444,10.72 13.073,10.257L13.389,15.319C13.401,15.51 13.56,15.659 13.751,15.659H16.973C18.112,15.659 19.035,16.583 19.035,17.722C19.035,18.861 18.112,19.784 16.973,19.784H8.348C7.209,19.784 6.285,18.861 6.285,17.722C6.285,16.583 7.209,15.659 8.348,15.659H11.569C11.761,15.659 11.92,15.51 11.931,15.319L12.247,10.271C11.286,10.605 10.19,10.535 9.24,9.986C8.159,9.363 7.521,8.268 7.435,7.111C8.48,6.608 9.747,6.613 10.827,7.237C11.767,7.779 12.372,8.678 12.57,9.664C12.589,9.661 12.607,9.659 12.626,9.659H12.633C12.893,8.239 13.752,6.937 15.101,6.158Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="25.0dip" android:width="25.0dip" android:autoMirrored="true" android:viewportWidth="25.0" android:viewportHeight="25.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/auto_task_icon_grey_bg" android:pathData="M6.66,0.66L18.66,0.66A6,6 0,0 1,24.66 6.66L24.66,18.66A6,6 0,0 1,18.66 24.66L6.66,24.66A6,6 0,0 1,0.66 18.66L0.66,6.66A6,6 0,0 1,6.66 0.66z" />
<path android:fillColor="@color/auto_task_icon_grey" android:pathData="M15.101,6.158C16.635,5.272 18.438,5.274 19.916,6.004C19.709,7.552 18.811,8.991 17.353,9.833C16.001,10.614 14.444,10.72 13.073,10.257L13.389,15.319C13.401,15.51 13.56,15.659 13.751,15.659H16.973C18.112,15.659 19.035,16.583 19.035,17.722C19.035,18.861 18.112,19.784 16.973,19.784H8.348C7.209,19.784 6.285,18.861 6.285,17.722C6.285,16.583 7.209,15.659 8.348,15.659H11.569C11.761,15.659 11.92,15.51 11.931,15.319L12.247,10.271C11.286,10.605 10.19,10.535 9.24,9.986C8.159,9.363 7.521,8.268 7.435,7.111C8.48,6.608 9.747,6.613 10.827,7.237C11.767,7.779 12.372,8.678 12.57,9.664C12.589,9.661 12.607,9.659 12.626,9.659H12.633C12.893,8.239 13.752,6.937 15.101,6.158Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="25.0dip" android:width="25.0dip" android:autoMirrored="true" android:viewportWidth="25.0" android:viewportHeight="25.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/auto_task_icon_light_blue" android:pathData="M6.66,0.66L18.66,0.66A6,6 0,0 1,24.66 6.66L24.66,18.66A6,6 0,0 1,18.66 24.66L6.66,24.66A6,6 0,0 1,0.66 18.66L0.66,6.66A6,6 0,0 1,6.66 0.66z" android:strokeAlpha="0.3" android:fillAlpha="0.3" />
<path android:fillColor="#ffffffff" android:pathData="M15.101,6.158C16.635,5.272 18.438,5.274 19.916,6.004C19.709,7.552 18.811,8.991 17.353,9.833C16.001,10.614 14.444,10.72 13.073,10.257L13.389,15.319C13.401,15.51 13.56,15.659 13.751,15.659H16.973C18.112,15.659 19.035,16.583 19.035,17.722C19.035,18.861 18.112,19.784 16.973,19.784H8.348C7.209,19.784 6.285,18.861 6.285,17.722C6.285,16.583 7.209,15.659 8.348,15.659H11.569C11.761,15.659 11.92,15.51 11.931,15.319L12.247,10.271C11.286,10.605 10.19,10.535 9.24,9.986C8.159,9.363 7.521,8.268 7.435,7.111C8.48,6.608 9.747,6.613 10.827,7.237C11.767,7.779 12.372,8.678 12.57,9.664C12.589,9.661 12.607,9.659 12.626,9.659H12.633C12.893,8.239 13.752,6.937 15.101,6.158Z" android:strokeAlpha="0.3" android:fillAlpha="0.3" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/base_color_wb_bw" android:pathData="M10.875,19.535C10.875,20.137 11.363,20.625 11.965,20.625H12.035C12.637,20.625 13.125,20.137 13.125,19.535V13.125H19.535C20.137,13.125 20.625,12.637 20.625,12.035V11.965C20.625,11.363 20.137,10.875 19.535,10.875H13.125V4.465C13.125,3.863 12.637,3.375 12.035,3.375H11.965C11.363,3.375 10.875,3.863 10.875,4.465V10.875H4.465C3.863,10.875 3.375,11.363 3.375,11.965V12.035C3.375,12.637 3.863,13.125 4.465,13.125H10.875V19.535Z" android:fillAlpha="0.6" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_green_primary_default" android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" />
<path android:fillColor="#ffffffff" android:pathData="M12.952,4.64C13.083,4.754 13.159,4.922 13.159,5.1V18.9C13.159,19.231 12.9,19.5 12.58,19.5C12.409,19.5 12.247,19.422 12.137,19.288L9.131,15.612L6.494,15.613C6.014,15.613 5.625,15.21 5.625,14.713V9.314C5.625,8.817 6.014,8.415 6.494,8.415L9.138,8.414L12.135,4.714C12.341,4.461 12.707,4.427 12.952,4.64ZM15.701,6.64C17.32,7.837 18.375,9.798 18.375,12.014C18.375,14.265 17.286,16.252 15.623,17.443L14.75,16.244C16.063,15.328 16.926,13.775 16.926,12.014C16.926,10.287 16.097,8.761 14.828,7.839L15.701,6.64Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/auto_task_icon_grey_bg" android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" />
<path android:fillColor="@color/auto_task_icon_grey" android:pathData="M12.952,4.64C13.083,4.754 13.159,4.922 13.159,5.1V18.9C13.159,19.231 12.9,19.5 12.58,19.5C12.409,19.5 12.247,19.422 12.137,19.288L9.131,15.612L6.494,15.613C6.014,15.613 5.625,15.21 5.625,14.713V9.314C5.625,8.817 6.014,8.415 6.494,8.415L9.138,8.414L12.135,4.714C12.341,4.461 12.707,4.427 12.952,4.64ZM15.701,6.64C17.32,7.837 18.375,9.798 18.375,12.014C18.375,14.265 17.286,16.252 15.623,17.443L14.75,16.244C16.063,15.328 16.926,13.775 16.926,12.014C16.926,10.287 16.097,8.761 14.828,7.839L15.701,6.64Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_green_primary_default" android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" android:strokeAlpha="0.3" android:fillAlpha="0.3" />
<path android:fillColor="#ffffffff" android:pathData="M12.952,4.64C13.083,4.754 13.159,4.922 13.159,5.1V18.9C13.159,19.231 12.9,19.5 12.58,19.5C12.409,19.5 12.247,19.422 12.137,19.288L9.131,15.612L6.494,15.613C6.014,15.613 5.625,15.21 5.625,14.713V9.314C5.625,8.817 6.014,8.415 6.494,8.415L9.138,8.414L12.135,4.714C12.341,4.461 12.707,4.427 12.952,4.64ZM15.701,6.64C17.32,7.837 18.375,9.798 18.375,12.014C18.375,14.265 17.286,16.252 15.623,17.443L14.75,16.244C16.063,15.328 16.926,13.775 16.926,12.014C16.926,10.287 16.097,8.761 14.828,7.839L15.701,6.64Z" android:strokeAlpha="0.3" android:fillAlpha="0.3" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_blue_primary_default" android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" />
<path android:fillColor="#ffffffff" android:pathData="M11.813,4.875C11.132,4.875 10.582,5.408 10.605,6.099L10.605,6.1L10.69,9.223L5.688,12.458C5.415,12.635 5.25,12.94 5.25,13.266V13.765C5.25,13.816 5.259,13.867 5.276,13.915C5.358,14.146 5.611,14.268 5.843,14.184L10.771,12.391L10.871,16.143C10.879,16.456 10.715,16.747 10.446,16.9L9.3,17.552C9.16,17.632 9.075,17.78 9.075,17.94V18.305C9.075,18.549 9.271,18.75 9.517,18.75H14.108C14.354,18.75 14.55,18.549 14.55,18.305V17.94C14.55,17.78 14.465,17.632 14.325,17.552L13.178,16.9C12.91,16.747 12.746,16.456 12.753,16.143L12.854,12.391L17.782,14.184C17.83,14.201 17.881,14.21 17.933,14.21C18.179,14.21 18.375,14.009 18.375,13.765V13.266C18.375,12.94 18.21,12.635 17.937,12.458L12.935,9.223L13.02,6.098L13.02,6.093C13.021,5.375 12.495,4.875 11.813,4.875Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/auto_task_icon_grey_bg" android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" />
<path android:fillColor="@color/auto_task_icon_grey" android:pathData="M11.813,4.875C11.132,4.875 10.582,5.408 10.605,6.099L10.605,6.1L10.69,9.223L5.688,12.458C5.415,12.635 5.25,12.94 5.25,13.266V13.765C5.25,13.816 5.259,13.867 5.276,13.915C5.358,14.146 5.611,14.268 5.843,14.184L10.771,12.391L10.871,16.143C10.879,16.456 10.715,16.747 10.446,16.9L9.3,17.552C9.16,17.632 9.075,17.78 9.075,17.94V18.305C9.075,18.549 9.271,18.75 9.517,18.75H14.108C14.354,18.75 14.55,18.549 14.55,18.305V17.94C14.55,17.78 14.465,17.632 14.325,17.552L13.178,16.9C12.91,16.747 12.746,16.456 12.753,16.143L12.854,12.391L17.782,14.184C17.83,14.201 17.881,14.21 17.933,14.21C18.179,14.21 18.375,14.009 18.375,13.765V13.266C18.375,12.94 18.21,12.635 17.937,12.458L12.935,9.223L13.02,6.098L13.02,6.093C13.021,5.375 12.495,4.875 11.813,4.875Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_blue_primary_default" android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" android:strokeAlpha="0.3" android:fillAlpha="0.3" />
<path android:fillColor="#ffffffff" android:pathData="M11.813,4.875C11.132,4.875 10.582,5.408 10.605,6.099L10.605,6.1L10.69,9.223L5.688,12.458C5.415,12.635 5.25,12.94 5.25,13.266V13.765C5.25,13.816 5.259,13.867 5.276,13.915C5.358,14.146 5.611,14.268 5.843,14.184L10.771,12.391L10.871,16.143C10.879,16.456 10.715,16.747 10.446,16.9L9.3,17.552C9.16,17.632 9.075,17.78 9.075,17.94V18.305C9.075,18.549 9.271,18.75 9.517,18.75H14.108C14.354,18.75 14.55,18.549 14.55,18.305V17.94C14.55,17.78 14.465,17.632 14.325,17.552L13.178,16.9C12.91,16.747 12.746,16.456 12.753,16.143L12.854,12.391L17.782,14.184C17.83,14.201 17.881,14.21 17.933,14.21C18.179,14.21 18.375,14.009 18.375,13.765V13.266C18.375,12.94 18.21,12.635 17.937,12.458L12.935,9.223L13.02,6.098L13.02,6.093C13.021,5.375 12.495,4.875 11.813,4.875Z" android:strokeAlpha="0.3" android:fillAlpha="0.3" android:fillType="evenOdd" />
</vector>

@ -1,15 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="25.0dip"
android:height="25.0dip"
android:autoMirrored="true"
android:viewportWidth="25.0"
android:viewportHeight="25.0">
<path
android:fillColor="@color/app_color_theme_4"
android:pathData="M6.66,0.66L18.66,0.66A6,6 0,0 1,24.66 6.66L24.66,18.66A6,6 0,0 1,18.66 24.66L6.66,24.66A6,6 0,0 1,0.66 18.66L0.66,6.66A6,6 0,0 1,6.66 0.66z" />
<path
android:fillColor="#ffffffff"
android:fillType="evenOdd"
android:pathData="M6.109,7.924C5.306,7.924 4.656,8.575 4.656,9.377V15.189C4.656,15.992 5.306,16.642 6.109,16.642H15.553C16.356,16.642 17.006,15.992 17.006,15.189V9.377C17.006,8.575 16.356,7.924 15.553,7.924H6.109ZM19.367,10.104C18.865,10.104 18.459,10.511 18.459,11.012V13.555C18.459,14.057 18.865,14.463 19.367,14.463C19.868,14.463 20.275,14.057 20.275,13.555V11.012C20.275,10.511 19.868,10.104 19.367,10.104Z" />
<vector android:height="25.0dip" android:width="25.0dip" android:autoMirrored="true" android:viewportWidth="25.0" android:viewportHeight="25.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_green_primary_default" android:pathData="M6.66,0.66L18.66,0.66A6,6 0,0 1,24.66 6.66L24.66,18.66A6,6 0,0 1,18.66 24.66L6.66,24.66A6,6 0,0 1,0.66 18.66L0.66,6.66A6,6 0,0 1,6.66 0.66z" />
<path android:fillColor="#ffffffff" android:pathData="M6.109,7.924C5.306,7.924 4.656,8.575 4.656,9.377V15.189C4.656,15.992 5.306,16.642 6.109,16.642H15.553C16.356,16.642 17.006,15.992 17.006,15.189V9.377C17.006,8.575 16.356,7.924 15.553,7.924H6.109ZM19.367,10.104C18.865,10.104 18.459,10.511 18.459,11.012V13.555C18.459,14.057 18.865,14.463 19.367,14.463C19.868,14.463 20.275,14.057 20.275,13.555V11.012C20.275,10.511 19.868,10.104 19.367,10.104Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="25.0dip" android:width="25.0dip" android:autoMirrored="true" android:viewportWidth="25.0" android:viewportHeight="25.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/auto_task_icon_grey_bg" android:pathData="M6.66,0.66L18.66,0.66A6,6 0,0 1,24.66 6.66L24.66,18.66A6,6 0,0 1,18.66 24.66L6.66,24.66A6,6 0,0 1,0.66 18.66L0.66,6.66A6,6 0,0 1,6.66 0.66z" />
<path android:fillColor="@color/auto_task_icon_grey" android:pathData="M6.109,7.924C5.306,7.924 4.656,8.575 4.656,9.377V15.189C4.656,15.992 5.306,16.642 6.109,16.642H15.553C16.356,16.642 17.006,15.992 17.006,15.189V9.377C17.006,8.575 16.356,7.924 15.553,7.924H6.109ZM19.367,10.104C18.865,10.104 18.459,10.511 18.459,11.012V13.555C18.459,14.057 18.865,14.463 19.367,14.463C19.868,14.463 20.275,14.057 20.275,13.555V11.012C20.275,10.511 19.868,10.104 19.367,10.104Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="25.0dip" android:width="25.0dip" android:autoMirrored="true" android:viewportWidth="25.0" android:viewportHeight="25.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_green_primary_default" android:pathData="M6.66,0.66L18.66,0.66A6,6 0,0 1,24.66 6.66L24.66,18.66A6,6 0,0 1,18.66 24.66L6.66,24.66A6,6 0,0 1,0.66 18.66L0.66,6.66A6,6 0,0 1,6.66 0.66z" android:strokeAlpha="0.3" android:fillAlpha="0.3" />
<path android:fillColor="#ffffffff" android:pathData="M6.109,7.924C5.306,7.924 4.656,8.575 4.656,9.377V15.189C4.656,15.992 5.306,16.642 6.109,16.642H15.553C16.356,16.642 17.006,15.992 17.006,15.189V9.377C17.006,8.575 16.356,7.924 15.553,7.924H6.109ZM19.367,10.104C18.865,10.104 18.459,10.511 18.459,11.012V13.555C18.459,14.057 18.865,14.463 19.367,14.463C19.868,14.463 20.275,14.057 20.275,13.555V11.012C20.275,10.511 19.868,10.104 19.367,10.104Z" android:strokeAlpha="0.3" android:fillAlpha="0.3" android:fillType="evenOdd" />
</vector>

@ -1,15 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="25.0dip"
android:height="25.0dip"
android:autoMirrored="true"
android:viewportWidth="25.0"
android:viewportHeight="25.0">
<path
android:fillColor="@color/colorPrimaryDark"
android:pathData="M6.66,0.66L18.66,0.66A6,6 0,0 1,24.66 6.66L24.66,18.66A6,6 0,0 1,18.66 24.66L6.66,24.66A6,6 0,0 1,0.66 18.66L0.66,6.66A6,6 0,0 1,6.66 0.66z" />
<path
android:fillColor="#ffffffff"
android:fillType="evenOdd"
android:pathData="M13.285,5.328C12.461,4.618 11.189,5.207 11.189,6.298V8.095C11.189,8.1 11.188,8.105 11.188,8.11V10.365L7.469,8.362C7.035,8.11 6.48,8.26 6.23,8.696C5.979,9.133 6.128,9.691 6.562,9.942L10.845,12.284L6.563,14.625C6.128,14.876 5.979,15.434 6.23,15.871C6.48,16.307 7.035,16.457 7.469,16.205L11.188,14.202V18.269C11.188,19.36 12.461,19.949 13.285,19.239L17.651,15.773C18.317,15.2 18.219,14.137 17.459,13.696L14.697,12.283L17.46,10.871C18.219,10.43 18.317,9.367 17.652,8.794L13.285,5.328ZM13.003,16.472C13.003,16.467 13.003,16.462 13.003,16.457V13.523L15.887,14.891L13.003,17.079V16.472ZM15.887,9.676L13.003,11.044V7.488L15.887,9.676Z" />
<vector android:height="25.0dip" android:width="25.0dip" android:autoMirrored="true" android:viewportWidth="25.0" android:viewportHeight="25.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/auto_task_icon_light_blue" android:pathData="M6.66,0.66L18.66,0.66A6,6 0,0 1,24.66 6.66L24.66,18.66A6,6 0,0 1,18.66 24.66L6.66,24.66A6,6 0,0 1,0.66 18.66L0.66,6.66A6,6 0,0 1,6.66 0.66z" />
<path android:fillColor="#ffffffff" android:pathData="M13.285,5.328C12.461,4.618 11.189,5.207 11.189,6.298V8.095C11.189,8.1 11.188,8.105 11.188,8.11V10.365L7.469,8.362C7.035,8.11 6.48,8.26 6.23,8.696C5.979,9.133 6.128,9.691 6.562,9.942L10.845,12.284L6.563,14.625C6.128,14.876 5.979,15.434 6.23,15.871C6.48,16.307 7.035,16.457 7.469,16.205L11.188,14.202V18.269C11.188,19.36 12.461,19.949 13.285,19.239L17.651,15.773C18.317,15.2 18.219,14.137 17.459,13.696L14.697,12.283L17.46,10.871C18.219,10.43 18.317,9.367 17.652,8.794L13.285,5.328ZM13.003,16.472C13.003,16.467 13.003,16.462 13.003,16.457V13.523L15.887,14.891L13.003,17.079V16.472ZM15.887,9.676L13.003,11.044V7.488L15.887,9.676Z" android:fillType="evenOdd" />
</vector>

@ -1,19 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="25.0dip"
android:height="25.0dip"
android:autoMirrored="true"
android:viewportWidth="25.0"
android:viewportHeight="25.0">
<path
android:fillColor="@color/colorPrimaryDark"
android:pathData="M6.66,0.66L18.66,0.66A6,6 0,0 1,24.66 6.66L24.66,18.66A6,6 0,0 1,18.66 24.66L6.66,24.66A6,6 0,0 1,0.66 18.66L0.66,6.66A6,6 0,0 1,6.66 0.66z" />
<path
android:fillColor="#ffffffff"
android:fillType="evenOdd"
android:pathData="M15.874,11.732C15.332,11.28 14.497,11.655 14.497,12.351V13.23C14.497,13.234 14.496,13.238 14.496,13.241V14.679L12.053,13.401C11.767,13.241 11.403,13.337 11.239,13.615C11.074,13.893 11.172,14.249 11.457,14.409L14.496,16.022V16.047L11.458,17.66C11.172,17.82 11.074,18.176 11.239,18.454C11.403,18.733 11.768,18.828 12.053,18.668L14.496,17.39V19.719C14.496,20.414 15.332,20.79 15.874,20.337L18.742,18.127C19.18,17.762 19.115,17.084 18.616,16.803L17.068,16.035L18.616,15.266C19.115,14.985 19.18,14.307 18.742,13.942L15.874,11.732ZM15.688,18.839C15.689,18.835 15.689,18.831 15.689,18.828V16.719L15.716,16.705L17.583,17.565L15.688,18.96V18.839ZM15.716,15.364L17.583,14.505L15.689,13.109V15.35L15.716,15.364Z" />
<path
android:fillColor="#ffffffff"
android:fillType="evenOdd"
android:pathData="M5.909,6.847C5.909,5.501 7,4.41 8.346,4.41H16.596C17.943,4.41 19.034,5.501 19.034,6.847V9.66C19.034,10.177 18.614,10.597 18.096,10.597C17.579,10.597 17.159,10.177 17.159,9.66V6.847C17.159,6.536 16.907,6.285 16.596,6.285H8.346C8.036,6.285 7.784,6.536 7.784,6.847V18.097C7.784,18.408 8.036,18.66 8.346,18.66H9.659C10.177,18.66 10.596,19.079 10.596,19.597C10.596,20.115 10.177,20.535 9.659,20.535H8.346C7,20.535 5.909,19.443 5.909,18.097V6.847Z" />
<vector android:height="25.0dip" android:width="25.0dip" android:autoMirrored="true" android:viewportWidth="25.0" android:viewportHeight="25.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/auto_task_icon_light_blue" android:pathData="M6.66,0.66L18.66,0.66A6,6 0,0 1,24.66 6.66L24.66,18.66A6,6 0,0 1,18.66 24.66L6.66,24.66A6,6 0,0 1,0.66 18.66L0.66,6.66A6,6 0,0 1,6.66 0.66z" />
<path android:fillColor="#ffffffff" android:pathData="M15.874,11.732C15.332,11.28 14.497,11.655 14.497,12.351V13.23C14.497,13.234 14.496,13.238 14.496,13.241V14.679L12.053,13.401C11.767,13.241 11.403,13.337 11.239,13.615C11.074,13.893 11.172,14.249 11.457,14.409L14.496,16.022V16.047L11.458,17.66C11.172,17.82 11.074,18.176 11.239,18.454C11.403,18.733 11.768,18.828 12.053,18.668L14.496,17.39V19.719C14.496,20.414 15.332,20.79 15.874,20.337L18.742,18.127C19.18,17.762 19.115,17.084 18.616,16.803L17.068,16.035L18.616,15.266C19.115,14.985 19.18,14.307 18.742,13.942L15.874,11.732ZM15.688,18.839C15.689,18.835 15.689,18.831 15.689,18.828V16.719L15.716,16.705L17.583,17.565L15.688,18.96V18.839ZM15.716,15.364L17.583,14.505L15.689,13.109V15.35L15.716,15.364Z" android:fillType="evenOdd" />
<path android:fillColor="#ffffffff" android:pathData="M5.909,6.847C5.909,5.501 7,4.41 8.346,4.41H16.596C17.943,4.41 19.034,5.501 19.034,6.847V9.66C19.034,10.177 18.614,10.597 18.096,10.597C17.579,10.597 17.159,10.177 17.159,9.66V6.847C17.159,6.536 16.907,6.285 16.596,6.285H8.346C8.036,6.285 7.784,6.536 7.784,6.847V18.097C7.784,18.408 8.036,18.66 8.346,18.66H9.659C10.177,18.66 10.596,19.079 10.596,19.597C10.596,20.115 10.177,20.535 9.659,20.535H8.346C7,20.535 5.909,19.443 5.909,18.097V6.847Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="25.0dip" android:width="25.0dip" android:autoMirrored="true" android:viewportWidth="25.0" android:viewportHeight="25.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/auto_task_icon_grey_bg" android:pathData="M6.66,0.66L18.66,0.66A6,6 0,0 1,24.66 6.66L24.66,18.66A6,6 0,0 1,18.66 24.66L6.66,24.66A6,6 0,0 1,0.66 18.66L0.66,6.66A6,6 0,0 1,6.66 0.66z" />
<path android:fillColor="@color/auto_task_icon_grey" android:pathData="M15.874,11.732C15.332,11.28 14.497,11.655 14.497,12.351V13.23C14.497,13.234 14.496,13.238 14.496,13.241V14.679L12.053,13.401C11.767,13.241 11.403,13.337 11.239,13.615C11.074,13.893 11.172,14.249 11.457,14.409L14.496,16.022V16.047L11.458,17.66C11.172,17.82 11.074,18.176 11.239,18.454C11.403,18.733 11.768,18.828 12.053,18.668L14.496,17.39V19.719C14.496,20.414 15.332,20.79 15.874,20.337L18.742,18.127C19.18,17.762 19.115,17.084 18.616,16.803L17.068,16.035L18.616,15.266C19.115,14.985 19.18,14.307 18.742,13.942L15.874,11.732ZM15.688,18.839C15.689,18.835 15.689,18.831 15.689,18.828V16.719L15.716,16.705L17.583,17.565L15.688,18.96V18.839ZM15.716,15.364L17.583,14.505L15.689,13.109V15.35L15.716,15.364Z" android:fillType="evenOdd" />
<path android:fillColor="@color/auto_task_icon_grey" android:pathData="M5.909,6.847C5.909,5.501 7,4.41 8.346,4.41H16.596C17.943,4.41 19.034,5.501 19.034,6.847V9.66C19.034,10.177 18.614,10.597 18.096,10.597C17.579,10.597 17.159,10.177 17.159,9.66V6.847C17.159,6.536 16.907,6.285 16.596,6.285H8.346C8.036,6.285 7.784,6.536 7.784,6.847V18.097C7.784,18.408 8.036,18.66 8.346,18.66H9.659C10.177,18.66 10.596,19.079 10.596,19.597C10.596,20.115 10.177,20.535 9.659,20.535H8.346C7,20.535 5.909,19.443 5.909,18.097V6.847Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="25.0dip" android:width="25.0dip" android:autoMirrored="true" android:viewportWidth="25.0" android:viewportHeight="25.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/auto_task_icon_light_blue" android:pathData="M6.66,0.66L18.66,0.66A6,6 0,0 1,24.66 6.66L24.66,18.66A6,6 0,0 1,18.66 24.66L6.66,24.66A6,6 0,0 1,0.66 18.66L0.66,6.66A6,6 0,0 1,6.66 0.66z" android:strokeAlpha="0.3" android:fillAlpha="0.3" />
<path android:fillColor="#ffffffff" android:pathData="M15.874,11.732C15.332,11.28 14.497,11.655 14.497,12.351V13.23C14.497,13.234 14.496,13.238 14.496,13.241V14.679L12.053,13.401C11.767,13.241 11.403,13.337 11.239,13.615C11.074,13.893 11.172,14.249 11.457,14.409L14.496,16.022V16.047L11.458,17.66C11.172,17.82 11.074,18.176 11.239,18.454C11.403,18.733 11.768,18.828 12.053,18.668L14.496,17.39V19.719C14.496,20.414 15.332,20.79 15.874,20.337L18.742,18.127C19.18,17.762 19.115,17.084 18.616,16.803L17.068,16.035L18.616,15.266C19.115,14.985 19.18,14.307 18.742,13.942L15.874,11.732ZM15.688,18.839C15.689,18.835 15.689,18.831 15.689,18.828V16.719L15.716,16.705L17.583,17.565L15.688,18.96V18.839ZM15.716,15.364L17.583,14.505L15.689,13.109V15.35L15.716,15.364Z" android:strokeAlpha="0.3" android:fillAlpha="0.3" android:fillType="evenOdd" />
<path android:fillColor="#ffffffff" android:pathData="M5.909,6.847C5.909,5.501 7,4.41 8.346,4.41H16.596C17.943,4.41 19.034,5.501 19.034,6.847V9.66C19.034,10.177 18.614,10.597 18.096,10.597C17.579,10.597 17.159,10.177 17.159,9.66V6.847C17.159,6.536 16.907,6.285 16.596,6.285H8.346C8.036,6.285 7.784,6.536 7.784,6.847V18.097C7.784,18.408 8.036,18.66 8.346,18.66H9.659C10.177,18.66 10.596,19.079 10.596,19.597C10.596,20.115 10.177,20.535 9.659,20.535H8.346C7,20.535 5.909,19.443 5.909,18.097V6.847Z" android:strokeAlpha="0.3" android:fillAlpha="0.3" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="25.0dip" android:width="25.0dip" android:autoMirrored="true" android:viewportWidth="25.0" android:viewportHeight="25.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/auto_task_icon_grey_bg" android:pathData="M6.66,0.66L18.66,0.66A6,6 0,0 1,24.66 6.66L24.66,18.66A6,6 0,0 1,18.66 24.66L6.66,24.66A6,6 0,0 1,0.66 18.66L0.66,6.66A6,6 0,0 1,6.66 0.66z" />
<path android:fillColor="@color/auto_task_icon_grey" android:pathData="M13.285,5.328C12.461,4.618 11.189,5.207 11.189,6.298V8.095C11.189,8.1 11.188,8.105 11.188,8.11V10.365L7.469,8.362C7.035,8.11 6.48,8.26 6.23,8.696C5.979,9.133 6.128,9.691 6.562,9.942L10.845,12.284L6.563,14.625C6.128,14.876 5.979,15.434 6.23,15.871C6.48,16.307 7.035,16.457 7.469,16.205L11.188,14.202V18.269C11.188,19.36 12.461,19.949 13.285,19.239L17.651,15.773C18.317,15.2 18.219,14.137 17.459,13.696L14.697,12.283L17.46,10.871C18.219,10.43 18.317,9.367 17.652,8.794L13.285,5.328ZM13.003,16.472C13.003,16.467 13.003,16.462 13.003,16.457V13.523L15.887,14.891L13.003,17.079V16.472ZM15.887,9.676L13.003,11.044V7.488L15.887,9.676Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="25.0dip" android:width="25.0dip" android:autoMirrored="true" android:viewportWidth="25.0" android:viewportHeight="25.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/auto_task_icon_light_blue" android:pathData="M6.66,0.66L18.66,0.66A6,6 0,0 1,24.66 6.66L24.66,18.66A6,6 0,0 1,18.66 24.66L6.66,24.66A6,6 0,0 1,0.66 18.66L0.66,6.66A6,6 0,0 1,6.66 0.66z" android:strokeAlpha="0.3" android:fillAlpha="0.3" />
<path android:fillColor="#ffffffff" android:pathData="M13.285,5.328C12.461,4.618 11.189,5.207 11.189,6.298V8.095C11.189,8.1 11.188,8.105 11.188,8.11V10.365L7.469,8.362C7.035,8.11 6.48,8.26 6.23,8.696C5.979,9.133 6.128,9.691 6.562,9.942L10.845,12.284L6.563,14.625C6.128,14.876 5.979,15.434 6.23,15.871C6.48,16.307 7.035,16.457 7.469,16.205L11.188,14.202V18.269C11.188,19.36 12.461,19.949 13.285,19.239L17.651,15.773C18.317,15.2 18.219,14.137 17.459,13.696L14.697,12.284L17.46,10.871C18.219,10.43 18.317,9.367 17.652,8.794L13.285,5.328ZM13.003,16.472C13.003,16.467 13.003,16.462 13.003,16.457V13.524L15.887,14.891L13.003,17.079V16.472ZM15.887,9.676L13.003,11.044V7.488L15.887,9.676Z" android:strokeAlpha="0.3" android:fillAlpha="0.3" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_blue_primary_default" android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" />
<path android:fillColor="#ffffffff" android:pathData="M12.186,5.326C11.665,5.107 11.089,5.38 10.889,5.903L6.037,17.649L6.035,17.653C6.012,17.715 6,17.779 6,17.845C6,18.123 6.217,18.375 6.516,18.375H7.345C7.564,18.375 7.75,18.235 7.825,18.04L9.371,14.308H14.255L15.8,18.04C15.875,18.235 16.061,18.375 16.28,18.375H17.109C17.177,18.375 17.243,18.361 17.305,18.335C17.574,18.222 17.688,17.913 17.59,17.653L17.589,17.649L12.736,5.903C12.637,5.644 12.44,5.434 12.186,5.326ZM10.06,12.645L11.813,8.412L13.566,12.645H10.06Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/auto_task_icon_grey_bg" android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" />
<path android:fillColor="@color/auto_task_icon_grey" android:pathData="M12.186,5.326C11.665,5.107 11.089,5.38 10.889,5.903L6.037,17.649L6.035,17.653C6.012,17.715 6,17.779 6,17.845C6,18.123 6.217,18.375 6.516,18.375H7.345C7.564,18.375 7.75,18.235 7.825,18.04L9.371,14.308H14.255L15.8,18.04C15.875,18.235 16.061,18.375 16.28,18.375H17.109C17.177,18.375 17.243,18.361 17.305,18.335C17.574,18.222 17.688,17.913 17.59,17.653L17.589,17.649L12.736,5.903C12.637,5.644 12.44,5.434 12.186,5.326ZM10.06,12.645L11.813,8.412L13.566,12.645H10.06Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_blue_primary_default" android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" android:strokeAlpha="0.3" android:fillAlpha="0.3" />
<path android:fillColor="#ffffffff" android:pathData="M12.186,5.326C11.665,5.107 11.089,5.38 10.889,5.903L6.037,17.649L6.035,17.653C6.012,17.715 6,17.779 6,17.845C6,18.123 6.217,18.375 6.516,18.375H7.345C7.564,18.375 7.75,18.235 7.825,18.04L9.371,14.308H14.255L15.8,18.04C15.875,18.235 16.061,18.375 16.28,18.375H17.109C17.177,18.375 17.243,18.361 17.305,18.335C17.574,18.222 17.688,17.913 17.59,17.653L17.589,17.649L12.736,5.903C12.637,5.644 12.44,5.434 12.186,5.326ZM10.06,12.645L11.813,8.412L13.566,12.645H10.06Z" android:strokeAlpha="0.3" android:fillAlpha="0.3" android:fillType="evenOdd" />
</vector>

@ -1,15 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="25.0dip"
android:height="25.0dip"
android:autoMirrored="true"
android:viewportWidth="25.0"
android:viewportHeight="25.0">
<path
android:fillColor="@color/app_color_theme_5"
android:pathData="M6.66,0.66L18.66,0.66A6,6 0,0 1,24.66 6.66L24.66,18.66A6,6 0,0 1,18.66 24.66L6.66,24.66A6,6 0,0 1,0.66 18.66L0.66,6.66A6,6 0,0 1,6.66 0.66z" />
<path
android:fillColor="#ffffffff"
android:fillType="evenOdd"
android:pathData="M4.655,9.377C4.655,8.575 5.306,7.924 6.108,7.924H15.552C16.355,7.924 17.006,8.575 17.006,9.377V15.189C17.006,15.992 16.355,16.642 15.552,16.642H6.108C5.306,16.642 4.655,15.992 4.655,15.189V9.377ZM18.459,11.012C18.459,10.511 18.865,10.104 19.367,10.104C19.868,10.104 20.275,10.511 20.275,11.012V13.555C20.275,14.057 19.868,14.463 19.367,14.463C18.865,14.463 18.459,14.057 18.459,13.555V11.012ZM11.768,12.272C11.71,12.272 11.657,12.237 11.635,12.184C11.622,12.153 11.62,12.118 11.629,12.086L12.245,10.031C12.355,9.663 11.892,9.398 11.631,9.68L8.726,12.812C8.51,13.044 8.675,13.422 8.992,13.422H10.551C10.609,13.422 10.662,13.457 10.684,13.511C10.697,13.542 10.699,13.576 10.689,13.608L10.074,15.663C9.964,16.031 10.427,16.296 10.688,16.014L13.593,12.882C13.809,12.65 13.644,12.272 13.327,12.272H11.768Z" />
<vector android:height="25.0dip" android:width="25.0dip" android:autoMirrored="true" android:viewportWidth="25.0" android:viewportHeight="25.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_green_primary_default" android:pathData="M6.66,0.66L18.66,0.66A6,6 0,0 1,24.66 6.66L24.66,18.66A6,6 0,0 1,18.66 24.66L6.66,24.66A6,6 0,0 1,0.66 18.66L0.66,6.66A6,6 0,0 1,6.66 0.66z" />
<path android:fillColor="#ffffffff" android:pathData="M4.655,9.377C4.655,8.575 5.306,7.924 6.108,7.924H15.552C16.355,7.924 17.006,8.575 17.006,9.377V15.189C17.006,15.992 16.355,16.642 15.552,16.642H6.108C5.306,16.642 4.655,15.992 4.655,15.189V9.377ZM18.459,11.012C18.459,10.511 18.865,10.104 19.367,10.104C19.868,10.104 20.275,10.511 20.275,11.012V13.555C20.275,14.057 19.868,14.463 19.367,14.463C18.865,14.463 18.459,14.057 18.459,13.555V11.012ZM11.768,12.272C11.71,12.272 11.657,12.237 11.635,12.184C11.622,12.153 11.62,12.118 11.629,12.086L12.245,10.031C12.355,9.663 11.892,9.398 11.631,9.68L8.726,12.812C8.51,13.044 8.675,13.422 8.992,13.422H10.551C10.609,13.422 10.662,13.457 10.684,13.511C10.697,13.542 10.699,13.576 10.689,13.608L10.074,15.663C9.964,16.031 10.427,16.296 10.688,16.014L13.593,12.882C13.809,12.65 13.644,12.272 13.327,12.272H11.768Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="25.0dip" android:width="25.0dip" android:autoMirrored="true" android:viewportWidth="25.0" android:viewportHeight="25.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/auto_task_icon_grey_bg" android:pathData="M6.66,0.66L18.66,0.66A6,6 0,0 1,24.66 6.66L24.66,18.66A6,6 0,0 1,18.66 24.66L6.66,24.66A6,6 0,0 1,0.66 18.66L0.66,6.66A6,6 0,0 1,6.66 0.66z" />
<path android:fillColor="@color/auto_task_icon_grey" android:pathData="M4.655,9.377C4.655,8.575 5.306,7.924 6.108,7.924H15.552C16.355,7.924 17.006,8.575 17.006,9.377V15.189C17.006,15.992 16.355,16.642 15.552,16.642H6.108C5.306,16.642 4.655,15.992 4.655,15.189V9.377ZM18.459,11.012C18.459,10.511 18.865,10.104 19.367,10.104C19.868,10.104 20.275,10.511 20.275,11.012V13.555C20.275,14.057 19.868,14.463 19.367,14.463C18.865,14.463 18.459,14.057 18.459,13.555V11.012ZM11.768,12.272C11.71,12.272 11.657,12.237 11.635,12.184C11.622,12.153 11.62,12.118 11.629,12.086L12.245,10.031C12.355,9.663 11.892,9.398 11.631,9.68L8.726,12.812C8.51,13.044 8.675,13.422 8.992,13.422H10.551C10.609,13.422 10.662,13.457 10.684,13.511C10.697,13.542 10.699,13.576 10.689,13.608L10.074,15.663C9.964,16.031 10.427,16.296 10.688,16.014L13.593,12.882C13.809,12.65 13.644,12.272 13.327,12.272H11.768Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="25.0dip" android:width="25.0dip" android:autoMirrored="true" android:viewportWidth="25.0" android:viewportHeight="25.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_green_primary_default" android:pathData="M6.66,0.66L18.66,0.66A6,6 0,0 1,24.66 6.66L24.66,18.66A6,6 0,0 1,18.66 24.66L6.66,24.66A6,6 0,0 1,0.66 18.66L0.66,6.66A6,6 0,0 1,6.66 0.66z" android:strokeAlpha="0.3" android:fillAlpha="0.3" />
<path android:fillColor="#ffffffff" android:pathData="M4.655,9.377C4.655,8.575 5.306,7.924 6.108,7.924H15.552C16.355,7.924 17.006,8.575 17.006,9.377V15.189C17.006,15.992 16.355,16.642 15.552,16.642H6.108C5.306,16.642 4.655,15.992 4.655,15.189V9.377ZM18.459,11.012C18.459,10.511 18.865,10.104 19.367,10.104C19.868,10.104 20.275,10.511 20.275,11.012V13.555C20.275,14.057 19.868,14.463 19.367,14.463C18.865,14.463 18.459,14.057 18.459,13.555V11.012ZM11.768,12.272C11.71,12.272 11.657,12.237 11.635,12.184C11.622,12.153 11.62,12.118 11.629,12.086L12.245,10.031C12.355,9.663 11.892,9.398 11.631,9.68L8.726,12.812C8.51,13.044 8.675,13.422 8.992,13.422H10.551C10.609,13.422 10.662,13.457 10.684,13.511C10.697,13.542 10.699,13.576 10.689,13.608L10.074,15.663C9.964,16.031 10.427,16.296 10.688,16.014L13.593,12.882C13.809,12.65 13.644,12.272 13.327,12.272H11.768Z" android:strokeAlpha="0.3" android:fillAlpha="0.3" android:fillType="evenOdd" />
</vector>

@ -1,35 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24.0dip"
android:height="24.0dip"
android:autoMirrored="true"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="@color/app_color_theme_7"
android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" />
<path
android:fillColor="#ffffffff"
android:fillType="evenOdd"
android:pathData="M12,15.319C12.568,15.319 13.09,15.518 13.502,15.85C13.603,15.932 13.619,16.08 13.539,16.182C13.533,16.189 13.528,16.195 13.522,16.201L12.214,17.535C12.097,17.655 11.906,17.656 11.788,17.537C11.788,17.537 11.787,17.536 11.786,17.535L10.479,16.201C10.388,16.109 10.389,15.959 10.48,15.867C10.486,15.861 10.493,15.855 10.499,15.85C10.911,15.518 11.433,15.319 12,15.319Z" />
<path
android:fillColor="#ffffffff"
android:fillType="evenOdd"
android:pathData="M12,12.368C13.264,12.368 14.42,12.83 15.313,13.597C15.33,13.612 15.349,13.629 15.37,13.648L15.37,13.648C15.494,13.759 15.505,13.952 15.395,14.077C15.391,14.081 15.387,14.085 15.384,14.089L14.746,14.739C14.634,14.853 14.455,14.86 14.335,14.755C14.303,14.726 14.274,14.703 14.25,14.683C13.632,14.186 12.851,13.889 12,13.889C11.153,13.889 10.374,14.184 9.758,14.677C9.732,14.698 9.701,14.724 9.666,14.755C9.547,14.86 9.367,14.853 9.255,14.739L8.617,14.089C8.5,13.97 8.501,13.777 8.619,13.659C8.623,13.655 8.627,13.651 8.631,13.648C8.657,13.624 8.681,13.603 8.702,13.585C9.593,12.825 10.744,12.368 12,12.368Z" />
<path
android:fillColor="#ffffffff"
android:fillType="evenOdd"
android:pathData="M12,9.325C14.085,9.325 15.987,10.119 17.426,11.423C17.447,11.442 17.47,11.463 17.496,11.488L17.496,11.488C17.618,11.602 17.625,11.795 17.512,11.918C17.509,11.92 17.507,11.923 17.505,11.925L16.869,12.574C16.755,12.69 16.57,12.695 16.451,12.584C16.419,12.554 16.392,12.529 16.368,12.508C15.202,11.474 13.674,10.846 12,10.846C10.328,10.846 8.801,11.473 7.635,12.506C7.611,12.528 7.582,12.554 7.55,12.584L7.55,12.584C7.431,12.695 7.246,12.69 7.132,12.574L6.496,11.925C6.379,11.806 6.38,11.613 6.498,11.495C6.5,11.493 6.502,11.49 6.505,11.488C6.54,11.455 6.571,11.426 6.598,11.403C8.034,10.11 9.926,9.325 12,9.325Z" />
<path
android:fillColor="#ffffffff"
android:fillType="evenOdd"
android:pathData="M12,6.375C14.842,6.375 17.428,7.481 19.361,9.289C19.375,9.302 19.389,9.316 19.406,9.331L19.406,9.331C19.527,9.446 19.532,9.639 19.418,9.761C19.416,9.763 19.414,9.765 19.413,9.767L18.777,10.415C18.662,10.532 18.476,10.536 18.357,10.423C18.345,10.412 18.334,10.401 18.323,10.392C16.661,8.842 14.44,7.896 12,7.896C9.558,7.896 7.335,8.844 5.672,10.396C5.663,10.404 5.653,10.413 5.643,10.423L5.643,10.423C5.524,10.536 5.338,10.532 5.223,10.415L4.587,9.767C4.47,9.647 4.471,9.455 4.589,9.336C4.591,9.335 4.593,9.333 4.595,9.331C4.609,9.318 4.622,9.305 4.634,9.294C6.567,7.482 9.156,6.375 12,6.375Z" />
<path
android:fillColor="#ffffffff"
android:fillType="evenOdd"
android:pathData="M16.346,16.347L16.346,13.259C16.346,12.958 16.59,12.714 16.891,12.714C17.191,12.714 17.435,12.958 17.435,13.259L17.435,17.254C17.435,17.555 17.191,17.799 16.891,17.799C16.874,17.799 16.858,17.799 16.842,17.797C16.772,17.837 16.681,17.838 16.606,17.783L15.544,17.003C15.261,16.795 15.408,16.347 15.759,16.347L16.346,16.347Z" />
<path
android:fillColor="#ffffffff"
android:fillType="evenOdd"
android:pathData="M19.615,14.166L19.615,17.254C19.615,17.555 19.371,17.799 19.07,17.799C18.769,17.799 18.525,17.555 18.525,17.254L18.525,13.258C18.525,12.958 18.769,12.714 19.07,12.714C19.086,12.714 19.102,12.714 19.118,12.716C19.188,12.676 19.279,12.675 19.354,12.73L20.417,13.51C20.7,13.718 20.553,14.166 20.202,14.166L19.615,14.166Z" />
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/auto_task_icon_light_blue" android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" />
<path android:fillColor="#ffffffff" android:pathData="M12,15.319C12.568,15.319 13.09,15.518 13.502,15.85C13.603,15.932 13.619,16.08 13.539,16.182C13.533,16.189 13.528,16.195 13.522,16.201L12.214,17.535C12.097,17.655 11.906,17.656 11.788,17.537C11.788,17.537 11.787,17.536 11.786,17.535L10.479,16.201C10.388,16.109 10.389,15.959 10.48,15.867C10.486,15.861 10.493,15.855 10.499,15.85C10.911,15.518 11.433,15.319 12,15.319Z" android:fillType="evenOdd" />
<path android:fillColor="#ffffffff" android:pathData="M12,12.368C13.264,12.368 14.42,12.83 15.313,13.597C15.33,13.612 15.349,13.629 15.37,13.648L15.37,13.648C15.494,13.759 15.505,13.952 15.395,14.077C15.391,14.081 15.387,14.085 15.384,14.089L14.746,14.739C14.634,14.853 14.455,14.86 14.335,14.755C14.303,14.726 14.274,14.703 14.25,14.683C13.632,14.186 12.851,13.889 12,13.889C11.153,13.889 10.374,14.184 9.758,14.677C9.732,14.698 9.701,14.724 9.666,14.755C9.547,14.86 9.367,14.853 9.255,14.739L8.617,14.089C8.5,13.97 8.501,13.777 8.619,13.659C8.623,13.655 8.627,13.651 8.631,13.648C8.657,13.624 8.681,13.603 8.702,13.585C9.593,12.825 10.744,12.368 12,12.368Z" android:fillType="evenOdd" />
<path android:fillColor="#ffffffff" android:pathData="M12,9.325C14.085,9.325 15.987,10.119 17.426,11.423C17.447,11.442 17.47,11.463 17.496,11.488L17.496,11.488C17.618,11.602 17.625,11.795 17.512,11.918C17.509,11.92 17.507,11.923 17.505,11.925L16.869,12.574C16.755,12.69 16.57,12.695 16.451,12.584C16.419,12.554 16.392,12.529 16.368,12.508C15.202,11.474 13.674,10.846 12,10.846C10.328,10.846 8.801,11.473 7.635,12.506C7.611,12.528 7.582,12.554 7.55,12.584L7.55,12.584C7.431,12.695 7.246,12.69 7.132,12.574L6.496,11.925C6.379,11.806 6.38,11.613 6.498,11.495C6.5,11.493 6.502,11.49 6.505,11.488C6.54,11.455 6.571,11.426 6.598,11.403C8.034,10.11 9.926,9.325 12,9.325Z" android:fillType="evenOdd" />
<path android:fillColor="#ffffffff" android:pathData="M12,6.375C14.842,6.375 17.428,7.481 19.361,9.289C19.375,9.302 19.389,9.316 19.406,9.331L19.406,9.331C19.527,9.446 19.532,9.639 19.418,9.761C19.416,9.763 19.414,9.765 19.413,9.767L18.777,10.415C18.662,10.532 18.476,10.536 18.357,10.423C18.345,10.412 18.334,10.401 18.323,10.392C16.661,8.842 14.44,7.896 12,7.896C9.558,7.896 7.335,8.844 5.672,10.396C5.663,10.404 5.653,10.413 5.643,10.423L5.643,10.423C5.524,10.536 5.338,10.532 5.223,10.415L4.587,9.767C4.47,9.647 4.471,9.455 4.589,9.336C4.591,9.335 4.593,9.333 4.595,9.331C4.609,9.318 4.622,9.305 4.634,9.294C6.567,7.482 9.156,6.375 12,6.375Z" android:fillType="evenOdd" />
<path android:fillColor="#ffffffff" android:pathData="M16.346,16.347L16.346,13.259C16.346,12.958 16.59,12.714 16.891,12.714C17.191,12.714 17.435,12.958 17.435,13.259L17.435,17.254C17.435,17.555 17.191,17.799 16.891,17.799C16.874,17.799 16.858,17.799 16.842,17.797C16.772,17.837 16.681,17.838 16.606,17.783L15.544,17.003C15.261,16.795 15.408,16.347 15.759,16.347L16.346,16.347Z" android:fillType="evenOdd" />
<path android:fillColor="#ffffffff" android:pathData="M19.615,14.166L19.615,17.254C19.615,17.555 19.371,17.799 19.07,17.799C18.769,17.799 18.525,17.555 18.525,17.254L18.525,13.258C18.525,12.958 18.769,12.714 19.07,12.714C19.086,12.714 19.102,12.714 19.118,12.716C19.188,12.676 19.279,12.675 19.354,12.73L20.417,13.51C20.7,13.718 20.553,14.166 20.202,14.166L19.615,14.166Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/auto_task_icon_grey_bg" android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" />
<path android:fillColor="@color/auto_task_icon_grey" android:pathData="M12,15.319C12.568,15.319 13.09,15.518 13.502,15.85C13.603,15.932 13.619,16.08 13.539,16.182C13.533,16.189 13.528,16.195 13.522,16.201L12.214,17.535C12.097,17.655 11.906,17.656 11.788,17.537C11.788,17.537 11.787,17.536 11.786,17.535L10.479,16.201C10.388,16.109 10.389,15.959 10.48,15.867C10.486,15.861 10.493,15.855 10.499,15.85C10.911,15.518 11.433,15.319 12,15.319Z" android:fillType="evenOdd" />
<path android:fillColor="@color/auto_task_icon_grey" android:pathData="M12,12.368C13.264,12.368 14.42,12.83 15.313,13.597C15.33,13.612 15.349,13.629 15.37,13.648L15.37,13.648C15.494,13.759 15.505,13.952 15.395,14.077C15.391,14.081 15.387,14.085 15.384,14.089L14.746,14.739C14.634,14.853 14.455,14.86 14.335,14.755C14.303,14.726 14.274,14.703 14.25,14.683C13.632,14.186 12.851,13.889 12,13.889C11.153,13.889 10.374,14.184 9.758,14.677C9.732,14.698 9.701,14.724 9.666,14.755C9.547,14.86 9.367,14.853 9.255,14.739L8.617,14.089C8.5,13.97 8.501,13.777 8.619,13.659C8.623,13.655 8.627,13.651 8.631,13.648C8.657,13.624 8.681,13.603 8.702,13.585C9.593,12.825 10.744,12.368 12,12.368Z" android:fillType="evenOdd" />
<path android:fillColor="@color/auto_task_icon_grey" android:pathData="M12,9.325C14.085,9.325 15.987,10.119 17.426,11.423C17.447,11.442 17.47,11.463 17.496,11.488L17.496,11.488C17.618,11.602 17.625,11.795 17.512,11.918C17.509,11.92 17.507,11.923 17.505,11.925L16.869,12.574C16.755,12.69 16.57,12.695 16.451,12.584C16.419,12.554 16.392,12.529 16.368,12.508C15.202,11.474 13.674,10.846 12,10.846C10.328,10.846 8.801,11.473 7.635,12.506C7.611,12.528 7.582,12.554 7.55,12.584L7.55,12.584C7.431,12.695 7.246,12.69 7.132,12.574L6.496,11.925C6.379,11.806 6.38,11.613 6.498,11.495C6.5,11.493 6.502,11.49 6.505,11.488C6.54,11.455 6.571,11.426 6.598,11.403C8.034,10.11 9.926,9.325 12,9.325Z" android:fillType="evenOdd" />
<path android:fillColor="@color/auto_task_icon_grey" android:pathData="M12,6.375C14.842,6.375 17.428,7.481 19.361,9.289C19.375,9.302 19.389,9.316 19.406,9.331L19.406,9.331C19.527,9.446 19.532,9.639 19.418,9.761C19.416,9.763 19.414,9.765 19.413,9.767L18.777,10.415C18.662,10.532 18.476,10.536 18.357,10.423C18.345,10.412 18.334,10.401 18.323,10.392C16.661,8.842 14.44,7.896 12,7.896C9.558,7.896 7.335,8.844 5.672,10.396C5.663,10.404 5.653,10.413 5.643,10.423L5.643,10.423C5.524,10.536 5.338,10.532 5.223,10.415L4.587,9.767C4.47,9.647 4.471,9.455 4.589,9.336C4.591,9.335 4.593,9.333 4.595,9.331C4.609,9.318 4.622,9.305 4.634,9.294C6.567,7.482 9.156,6.375 12,6.375Z" android:fillType="evenOdd" />
<path android:fillColor="@color/auto_task_icon_grey" android:pathData="M16.346,16.347L16.346,13.259C16.346,12.958 16.59,12.714 16.891,12.714C17.191,12.714 17.435,12.958 17.435,13.259L17.435,17.254C17.435,17.555 17.191,17.799 16.891,17.799C16.874,17.799 16.858,17.799 16.842,17.797C16.772,17.837 16.681,17.838 16.606,17.783L15.544,17.003C15.261,16.795 15.408,16.347 15.759,16.347L16.346,16.347Z" android:fillType="evenOdd" />
<path android:fillColor="@color/auto_task_icon_grey" android:pathData="M19.615,14.166L19.615,17.254C19.615,17.555 19.371,17.799 19.07,17.799C18.769,17.799 18.525,17.555 18.525,17.254L18.525,13.258C18.525,12.958 18.769,12.714 19.07,12.714C19.086,12.714 19.102,12.714 19.118,12.716C19.188,12.676 19.279,12.675 19.354,12.73L20.417,13.51C20.7,13.718 20.553,14.166 20.202,14.166L19.615,14.166Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/auto_task_icon_light_blue" android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" android:strokeAlpha="0.3" android:fillAlpha="0.3" />
<path android:fillColor="#ffffffff" android:pathData="M12,15.319C12.568,15.319 13.09,15.518 13.502,15.85C13.603,15.932 13.619,16.08 13.539,16.182C13.533,16.189 13.528,16.195 13.522,16.201L12.214,17.535C12.097,17.655 11.906,17.656 11.788,17.537C11.788,17.537 11.787,17.536 11.786,17.535L10.479,16.201C10.388,16.109 10.389,15.959 10.48,15.867C10.486,15.861 10.493,15.855 10.499,15.85C10.911,15.518 11.433,15.319 12,15.319Z" android:strokeAlpha="0.3" android:fillAlpha="0.3" android:fillType="evenOdd" />
<path android:fillColor="#ffffffff" android:pathData="M12,12.368C13.264,12.368 14.42,12.83 15.313,13.597C15.33,13.612 15.349,13.629 15.37,13.648L15.37,13.648C15.494,13.759 15.505,13.952 15.395,14.077C15.391,14.081 15.387,14.085 15.384,14.089L14.746,14.739C14.634,14.853 14.455,14.86 14.335,14.755C14.303,14.726 14.274,14.703 14.25,14.683C13.632,14.186 12.851,13.889 12,13.889C11.153,13.889 10.374,14.184 9.758,14.677C9.732,14.698 9.701,14.724 9.666,14.755C9.547,14.86 9.367,14.853 9.255,14.739L8.617,14.089C8.5,13.97 8.501,13.777 8.619,13.659C8.623,13.655 8.627,13.651 8.631,13.648C8.657,13.624 8.681,13.603 8.702,13.585C9.593,12.825 10.744,12.368 12,12.368Z" android:strokeAlpha="0.3" android:fillAlpha="0.3" android:fillType="evenOdd" />
<path android:fillColor="#ffffffff" android:pathData="M12,9.325C14.085,9.325 15.987,10.119 17.426,11.423C17.447,11.442 17.47,11.463 17.496,11.488L17.496,11.488C17.618,11.602 17.625,11.795 17.512,11.918C17.509,11.92 17.507,11.923 17.505,11.925L16.869,12.574C16.755,12.69 16.57,12.695 16.451,12.584C16.419,12.554 16.392,12.529 16.368,12.508C15.202,11.474 13.674,10.846 12,10.846C10.328,10.846 8.801,11.473 7.635,12.506C7.611,12.528 7.582,12.554 7.55,12.584L7.55,12.584C7.431,12.695 7.246,12.69 7.132,12.574L6.496,11.925C6.379,11.806 6.38,11.613 6.498,11.495C6.5,11.493 6.502,11.49 6.505,11.488C6.54,11.455 6.571,11.426 6.598,11.403C8.034,10.11 9.926,9.325 12,9.325Z" android:strokeAlpha="0.3" android:fillAlpha="0.3" android:fillType="evenOdd" />
<path android:fillColor="#ffffffff" android:pathData="M12,6.375C14.842,6.375 17.428,7.481 19.361,9.289C19.375,9.302 19.389,9.316 19.406,9.331L19.406,9.331C19.527,9.446 19.532,9.639 19.418,9.761C19.416,9.763 19.414,9.765 19.413,9.767L18.777,10.415C18.662,10.532 18.476,10.536 18.357,10.423C18.345,10.412 18.334,10.401 18.323,10.392C16.661,8.842 14.44,7.896 12,7.896C9.558,7.896 7.335,8.844 5.672,10.396C5.663,10.404 5.653,10.413 5.643,10.423L5.643,10.423C5.524,10.536 5.338,10.532 5.223,10.415L4.587,9.767C4.47,9.647 4.471,9.455 4.589,9.336C4.591,9.335 4.593,9.333 4.595,9.331C4.609,9.318 4.622,9.305 4.634,9.294C6.567,7.482 9.156,6.375 12,6.375Z" android:strokeAlpha="0.3" android:fillAlpha="0.3" android:fillType="evenOdd" />
<path android:fillColor="#ffffffff" android:pathData="M16.346,16.347L16.346,13.259C16.346,12.958 16.59,12.714 16.891,12.714C17.191,12.714 17.435,12.958 17.435,13.259L17.435,17.254C17.435,17.555 17.191,17.799 16.891,17.799C16.874,17.799 16.858,17.799 16.842,17.797C16.772,17.837 16.681,17.838 16.606,17.783L15.544,17.003C15.261,16.795 15.408,16.347 15.759,16.347L16.346,16.347Z" android:strokeAlpha="0.3" android:fillAlpha="0.3" android:fillType="evenOdd" />
<path android:fillColor="#ffffffff" android:pathData="M19.615,14.166L19.615,17.254C19.615,17.555 19.371,17.799 19.07,17.799C18.769,17.799 18.525,17.555 18.525,17.254L18.525,13.258C18.525,12.958 18.769,12.714 19.07,12.714C19.086,12.714 19.102,12.714 19.118,12.716C19.188,12.676 19.279,12.675 19.354,12.73L20.417,13.51C20.7,13.718 20.553,14.166 20.202,14.166L19.615,14.166Z" android:strokeAlpha="0.3" android:fillAlpha="0.3" android:fillType="evenOdd" />
</vector>

@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="25.0dip"
android:height="25.0dip"
android:autoMirrored="true"
android:viewportWidth="25.0"
android:viewportHeight="25.0">
<path
android:fillColor="@color/app_color_theme_6"
android:pathData="M6.66,0.66L18.66,0.66A6,6 0,0 1,24.66 6.66L24.66,18.66A6,6 0,0 1,18.66 24.66L6.66,24.66A6,6 0,0 1,0.66 18.66L0.66,6.66A6,6 0,0 1,6.66 0.66z" />
<path
android:fillColor="#ffffffff"
android:fillType="evenOdd"
android:pathData="M12.66,18.66C15.973,18.66 18.66,15.973 18.66,12.66C18.66,9.346 15.973,6.66 12.66,6.66C9.346,6.66 6.66,9.346 6.66,12.66C6.66,15.973 9.346,18.66 12.66,18.66ZM12.66,20.535C17.009,20.535 20.535,17.009 20.535,12.66C20.535,8.31 17.009,4.785 12.66,4.785C8.31,4.785 4.785,8.31 4.785,12.66C4.785,17.009 8.31,20.535 12.66,20.535ZM11.535,10.222C11.535,9.704 11.954,9.285 12.472,9.285C12.99,9.285 13.41,9.704 13.41,10.222V11.91H15.097C15.615,11.91 16.035,12.329 16.035,12.847C16.035,13.365 15.615,13.785 15.097,13.785H12.472C12.44,13.785 12.408,13.783 12.376,13.78C11.903,13.732 11.535,13.333 11.535,12.847V10.222Z" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="25.0dip" android:width="25.0dip" android:autoMirrored="true" android:viewportWidth="25.0" android:viewportHeight="25.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_blue_primary_default" android:pathData="M6.66,0.66L18.66,0.66A6,6 0,0 1,24.66 6.66L24.66,18.66A6,6 0,0 1,18.66 24.66L6.66,24.66A6,6 0,0 1,0.66 18.66L0.66,6.66A6,6 0,0 1,6.66 0.66z" />
<path android:fillColor="#ffffffff" android:pathData="M12.66,18.66C15.973,18.66 18.66,15.973 18.66,12.66C18.66,9.346 15.973,6.66 12.66,6.66C9.346,6.66 6.66,9.346 6.66,12.66C6.66,15.973 9.346,18.66 12.66,18.66ZM12.66,20.535C17.009,20.535 20.535,17.009 20.535,12.66C20.535,8.31 17.009,4.785 12.66,4.785C8.31,4.785 4.785,8.31 4.785,12.66C4.785,17.009 8.31,20.535 12.66,20.535ZM11.535,10.222C11.535,9.704 11.954,9.285 12.472,9.285C12.99,9.285 13.41,9.704 13.41,10.222V11.91H15.097C15.615,11.91 16.035,12.329 16.035,12.847C16.035,13.365 15.615,13.785 15.097,13.785H12.472C12.44,13.785 12.408,13.783 12.376,13.78C11.903,13.732 11.535,13.333 11.535,12.847V10.222Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="25.0dip" android:width="25.0dip" android:autoMirrored="true" android:viewportWidth="25.0" android:viewportHeight="25.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/auto_task_icon_grey_bg" android:pathData="M6.66,0.66L18.66,0.66A6,6 0,0 1,24.66 6.66L24.66,18.66A6,6 0,0 1,18.66 24.66L6.66,24.66A6,6 0,0 1,0.66 18.66L0.66,6.66A6,6 0,0 1,6.66 0.66z" />
<path android:fillColor="@color/auto_task_icon_grey" android:pathData="M12.66,18.66C15.973,18.66 18.66,15.973 18.66,12.66C18.66,9.346 15.973,6.66 12.66,6.66C9.346,6.66 6.66,9.346 6.66,12.66C6.66,15.973 9.346,18.66 12.66,18.66ZM12.66,20.535C17.009,20.535 20.535,17.009 20.535,12.66C20.535,8.31 17.009,4.785 12.66,4.785C8.31,4.785 4.785,8.31 4.785,12.66C4.785,17.009 8.31,20.535 12.66,20.535ZM11.535,10.222C11.535,9.704 11.954,9.285 12.472,9.285C12.99,9.285 13.41,9.704 13.41,10.222V11.91H15.097C15.615,11.91 16.035,12.329 16.035,12.847C16.035,13.365 15.615,13.785 15.097,13.785H12.472C12.44,13.785 12.408,13.783 12.376,13.78C11.903,13.732 11.535,13.333 11.535,12.847V10.222Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="25.0dip" android:width="25.0dip" android:autoMirrored="true" android:viewportWidth="25.0" android:viewportHeight="25.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_blue_primary_default" android:pathData="M6.66,0.66L18.66,0.66A6,6 0,0 1,24.66 6.66L24.66,18.66A6,6 0,0 1,18.66 24.66L6.66,24.66A6,6 0,0 1,0.66 18.66L0.66,6.66A6,6 0,0 1,6.66 0.66z" android:strokeAlpha="0.3" android:fillAlpha="0.3" />
<path android:fillColor="#ffffffff" android:pathData="M12.66,18.66C15.973,18.66 18.66,15.973 18.66,12.66C18.66,9.346 15.973,6.66 12.66,6.66C9.346,6.66 6.66,9.346 6.66,12.66C6.66,15.973 9.346,18.66 12.66,18.66ZM12.66,20.535C17.009,20.535 20.535,17.009 20.535,12.66C20.535,8.31 17.009,4.785 12.66,4.785C8.31,4.785 4.785,8.31 4.785,12.66C4.785,17.009 8.31,20.535 12.66,20.535ZM11.535,10.222C11.535,9.704 11.954,9.285 12.472,9.285C12.99,9.285 13.41,9.704 13.41,10.222V11.91H15.097C15.615,11.91 16.035,12.329 16.035,12.847C16.035,13.365 15.615,13.785 15.097,13.785H12.472C12.44,13.785 12.408,13.783 12.376,13.78C11.903,13.732 11.535,13.333 11.535,12.847V10.222Z" android:strokeAlpha="0.3" android:fillAlpha="0.3" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_blue_primary_default" android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" />
<path android:fillColor="#ffffffff" android:pathData="M12,18C15.314,18 18,15.314 18,12C18,8.686 15.314,6 12,6C8.686,6 6,8.686 6,12C6,15.314 8.686,18 12,18ZM12,19.875C16.349,19.875 19.875,16.349 19.875,12C19.875,7.651 16.349,4.125 12,4.125C7.651,4.125 4.125,7.651 4.125,12C4.125,16.349 7.651,19.875 12,19.875Z" android:fillType="evenOdd" />
<path android:fillColor="@color/color_blue_primary_default" android:pathData="M15.399,12C15.399,13.877 13.877,15.399 12,15.399C10.123,15.399 8.601,13.877 8.601,12C8.601,10.123 10.123,8.601 12,8.601C13.877,8.601 15.399,10.123 15.399,12Z" android:strokeColor="#ffffffff" android:strokeWidth="1.453" />
<path android:fillColor="#ffffffff" android:pathData="M12,7.875C9.722,7.875 7.875,9.722 7.875,12C7.875,14.279 9.722,16.125 12,16.125V7.875Z" android:fillType="evenOdd" />
<group>
<clip-path android:pathData="M12,7.875C9.722,7.875 7.875,9.722 7.875,12C7.875,14.279 9.722,16.125 12,16.125V7.875Z" android:fillType="evenOdd" />
<path android:fillColor="#ffffffff" android:pathData="M12,7.875H12.363V7.512H12V7.875ZM12,16.125V16.489H12.363V16.125H12ZM8.238,12C8.238,9.923 9.922,8.239 12,8.239V7.512C9.521,7.512 7.512,9.522 7.512,12H8.238ZM12,15.762C9.922,15.762 8.238,14.078 8.238,12H7.512C7.512,14.479 9.521,16.489 12,16.489V15.762ZM12.363,16.125V7.875H11.637V16.125H12.363Z" />
</group>
</vector>

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/auto_task_icon_grey_bg" android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" />
<path android:fillColor="@color/auto_task_icon_grey" android:pathData="M12,18C15.314,18 18,15.314 18,12C18,8.686 15.314,6 12,6C8.686,6 6,8.686 6,12C6,15.314 8.686,18 12,18ZM12,19.875C16.349,19.875 19.875,16.349 19.875,12C19.875,7.651 16.349,4.125 12,4.125C7.651,4.125 4.125,7.651 4.125,12C4.125,16.349 7.651,19.875 12,19.875Z" android:fillType="evenOdd" />
<path android:fillColor="@color/auto_task_icon_grey_bg" android:pathData="M15.399,12C15.399,13.877 13.877,15.399 12,15.399C10.123,15.399 8.601,13.877 8.601,12C8.601,10.123 10.123,8.601 12,8.601C13.877,8.601 15.399,10.123 15.399,12Z" android:strokeColor="@color/auto_task_icon_grey" android:strokeWidth="1.453" />
<path android:fillColor="@color/auto_task_icon_grey" android:pathData="M12,7.875C9.722,7.875 7.875,9.722 7.875,12C7.875,14.278 9.722,16.125 12,16.125V7.875Z" android:fillType="evenOdd" />
<group>
<clip-path android:pathData="M12,7.875C9.722,7.875 7.875,9.722 7.875,12C7.875,14.278 9.722,16.125 12,16.125V7.875Z" android:fillType="evenOdd" />
<path android:fillColor="@color/auto_task_icon_grey" android:pathData="M12,7.875H12.363V7.512H12V7.875ZM12,16.125V16.489H12.363V16.125H12ZM8.238,12C8.238,9.923 9.922,8.239 12,8.239V7.512C9.521,7.512 7.512,9.522 7.512,12H8.238ZM12,15.762C9.922,15.762 8.238,14.078 8.238,12H7.512C7.512,14.479 9.521,16.489 12,16.489V15.762ZM12.363,16.125V7.875H11.637V16.125H12.363Z" />
</group>
</vector>

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_blue_primary_default" android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" android:strokeAlpha="0.3" android:fillAlpha="0.3" />
<path android:fillColor="#ffffffff" android:pathData="M12,18C15.314,18 18,15.314 18,12C18,8.686 15.314,6 12,6C8.686,6 6,8.686 6,12C6,15.314 8.686,18 12,18ZM12,19.875C16.349,19.875 19.875,16.349 19.875,12C19.875,7.651 16.349,4.125 12,4.125C7.651,4.125 4.125,7.651 4.125,12C4.125,16.349 7.651,19.875 12,19.875Z" android:strokeAlpha="0.3" android:fillAlpha="0.3" android:fillType="evenOdd" />
<path android:fillColor="@color/color_blue_primary_default" android:pathData="M15.399,12C15.399,13.877 13.877,15.399 12,15.399C10.123,15.399 8.601,13.877 8.601,12C8.601,10.123 10.123,8.601 12,8.601C13.877,8.601 15.399,10.123 15.399,12Z" android:strokeColor="#ffffffff" android:strokeWidth="1.453" android:strokeAlpha="0.3" android:fillAlpha="0.3" />
<path android:fillColor="#ffffffff" android:pathData="M12,7.875C9.722,7.875 7.875,9.722 7.875,12C7.875,14.278 9.722,16.125 12,16.125V7.875Z" android:strokeAlpha="0.3" android:fillAlpha="0.3" android:fillType="evenOdd" />
<group>
<clip-path android:pathData="M12,7.875C9.722,7.875 7.875,9.722 7.875,12C7.875,14.278 9.722,16.125 12,16.125V7.875Z" android:fillType="evenOdd" />
<path android:fillColor="#ffffffff" android:pathData="M12,7.875H12.363V7.512H12V7.875ZM12,16.125V16.489H12.363V16.125H12ZM8.238,12C8.238,9.923 9.922,8.239 12,8.239V7.512C9.521,7.512 7.512,9.522 7.512,12H8.238ZM12,15.762C9.922,15.762 8.238,14.078 8.238,12H7.512C7.512,14.479 9.521,16.489 12,16.489V15.762ZM12.363,16.125V7.875H11.637V16.125H12.363Z" android:strokeAlpha="0.3" android:fillAlpha="0.3" />
</group>
</vector>

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_blue_primary_default" android:pathData="M8.179,4.4C7.122,4.4 6.17,5.042 5.774,6.022L3.788,10.936H20.128L18.142,6.022C17.746,5.042 16.795,4.4 15.737,4.4H8.179ZM7.911,5.67C7.496,5.67 7.128,5.933 6.992,6.324L6.279,8.372C6.06,9.005 6.529,9.665 7.198,9.665H16.717C17.386,9.665 17.856,9.005 17.636,8.372L16.924,6.324C16.788,5.933 16.419,5.67 16.005,5.67H7.911Z" android:fillType="evenOdd" />
<path android:fillColor="@color/color_blue_primary_default" android:pathData="M3.351,9.643C2.743,9.643 2.25,10.136 2.25,10.745C2.25,11.353 2.743,11.846 3.351,11.846H4.861V9.643H3.351ZM20.608,9.643C21.216,9.643 21.709,10.136 21.709,10.745C21.709,11.353 21.216,11.846 20.608,11.846H19.099V9.643H20.608Z" android:fillType="evenOdd" />
<path android:fillColor="@color/color_blue_primary_default" android:pathData="M5.445,9.974C4.46,9.974 3.628,10.71 3.537,11.691C3.491,12.191 3.449,12.722 3.429,13.164C3.405,13.686 3.401,14.46 3.405,15.182C3.405,15.246 3.408,15.309 3.415,15.372C3.407,15.429 3.403,15.489 3.403,15.549V18.048C3.403,18.791 4.006,19.393 4.749,19.393C5.492,19.393 6.095,18.791 6.095,18.048V17.087H17.821V18.048C17.821,18.791 18.424,19.393 19.167,19.393C19.91,19.393 20.513,18.791 20.513,18.048V15.741C20.513,15.651 20.504,15.564 20.487,15.479C20.503,15.383 20.511,15.283 20.512,15.182C20.515,14.46 20.511,13.686 20.488,13.164C20.468,12.722 20.425,12.191 20.379,11.691C20.288,10.71 19.457,9.974 18.472,9.974H5.445ZM7.44,14.396C8.077,14.396 8.594,13.88 8.594,13.243C8.594,12.606 8.077,12.09 7.44,12.09C6.803,12.09 6.287,12.606 6.287,13.243C6.287,13.88 6.803,14.396 7.44,14.396ZM17.629,13.243C17.629,13.88 17.113,14.396 16.476,14.396C15.839,14.396 15.322,13.88 15.322,13.243C15.322,12.606 15.839,12.09 16.476,12.09C17.113,12.09 17.629,12.606 17.629,13.243ZM10.6,13.437C10.255,13.437 9.976,13.716 9.976,14.061C9.976,14.405 10.255,14.684 10.6,14.684H13.509C13.854,14.684 14.133,14.405 14.133,14.061C14.133,13.716 13.854,13.437 13.509,13.437H10.6Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="62.0dip" android:width="62.0dip" android:autoMirrored="true" android:viewportWidth="62.0" android:viewportHeight="62.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_blue_primary_default" android:pathData="M18,0L44,0A18,18 0,0 1,62 18L62,44A18,18 0,0 1,44 62L18,62A18,18 0,0 1,0 44L0,18A18,18 0,0 1,18 0z" />
<path android:fillColor="#ffffffff" android:pathData="M24.632,18.333C22.87,18.333 21.284,19.403 20.623,21.037L17.313,29.227H44.547L41.237,21.037C40.577,19.403 38.991,18.333 37.228,18.333H24.632ZM24.184,20.451C23.494,20.451 22.879,20.888 22.653,21.54L21.466,24.954C21.1,26.008 21.882,27.108 22.998,27.108H38.862C39.978,27.108 40.76,26.008 40.394,24.954L39.207,21.54C38.98,20.888 38.366,20.451 37.675,20.451H24.184Z" android:fillType="evenOdd" />
<path android:fillColor="#ffffffff" android:pathData="M16.586,27.072C15.572,27.072 14.75,27.894 14.75,28.908C14.75,29.921 15.572,30.743 16.586,30.743H19.101V27.072H16.586ZM45.347,27.072C46.361,27.072 47.182,27.894 47.182,28.908C47.182,29.921 46.361,30.743 45.347,30.743H42.831V27.072H45.347Z" android:fillType="evenOdd" />
<path android:fillColor="#ffffffff" android:pathData="M20.074,27.624C18.433,27.624 17.047,28.85 16.895,30.485C16.818,31.319 16.748,32.203 16.714,32.94C16.675,33.81 16.668,35.1 16.674,36.304C16.675,36.41 16.68,36.515 16.691,36.619C16.678,36.715 16.672,36.814 16.672,36.914V41.079C16.672,42.318 17.676,43.322 18.915,43.322C20.153,43.322 21.157,42.318 21.157,41.079V39.479H40.702V41.079C40.702,42.318 41.706,43.322 42.945,43.322C44.183,43.322 45.188,42.318 45.188,41.079V37.234C45.188,37.085 45.173,36.94 45.145,36.799C45.171,36.638 45.185,36.472 45.186,36.304C45.192,35.099 45.186,33.81 45.146,32.94C45.112,32.203 45.042,31.319 44.965,30.485C44.813,28.85 43.427,27.624 41.786,27.624H20.074ZM23.4,34.994C24.462,34.994 25.323,34.133 25.323,33.071C25.323,32.01 24.462,31.149 23.4,31.149C22.338,31.149 21.478,32.01 21.478,33.071C21.478,34.133 22.338,34.994 23.4,34.994ZM40.382,33.071C40.382,34.133 39.521,34.994 38.459,34.994C37.397,34.994 36.537,34.133 36.537,33.071C36.537,32.01 37.397,31.149 38.459,31.149C39.521,31.149 40.382,32.01 40.382,33.071ZM28.666,33.395C28.092,33.395 27.627,33.861 27.627,34.435C27.627,35.008 28.092,35.474 28.666,35.474H33.515C34.089,35.474 34.554,35.008 34.554,34.435C34.554,33.861 34.089,33.395 33.515,33.395H28.666Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_deep_orange_primary_default" android:pathData="M12,21.824C16.836,21.824 20.757,17.903 20.757,13.067C20.757,8.231 16.836,4.311 12,4.311C7.164,4.311 3.243,8.231 3.243,13.067C3.243,17.903 7.164,21.824 12,21.824ZM11.351,9.082C11.351,8.724 11.642,8.434 12,8.434C12.358,8.434 12.649,8.724 12.649,9.082V13.27L14.247,14.193C14.557,14.372 14.664,14.769 14.484,15.079C14.305,15.39 13.909,15.496 13.598,15.317L11.913,14.344C11.858,14.312 11.808,14.273 11.766,14.228C11.524,14.134 11.351,13.899 11.351,13.623V9.082Z" android:fillType="evenOdd" />
<path android:fillColor="@color/color_deep_orange_primary_default" android:pathData="M4.216,5.265C4.037,4.955 4.143,4.558 4.454,4.379L7.543,2.595C7.853,2.416 8.25,2.522 8.429,2.833C8.608,3.143 8.502,3.54 8.192,3.719L5.102,5.503C4.792,5.682 4.395,5.575 4.216,5.265ZM19.781,5.328C19.96,5.018 19.854,4.621 19.543,4.442L16.454,2.658C16.143,2.479 15.747,2.585 15.568,2.896C15.389,3.206 15.495,3.603 15.805,3.782L18.895,5.565C19.205,5.745 19.602,5.638 19.781,5.328Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="62.0dip" android:width="62.0dip" android:autoMirrored="true" android:viewportWidth="62.0" android:viewportHeight="62.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_deep_orange_primary_default" android:pathData="M18,0L44,0A18,18 0,0 1,62 18L62,44A18,18 0,0 1,44 62L18,62A18,18 0,0 1,0 44L0,18A18,18 0,0 1,18 0z" />
<path android:fillColor="#ffffffff" android:pathData="M31,47.373C39.061,47.373 45.595,40.839 45.595,32.779C45.595,24.718 39.061,18.184 31,18.184C22.94,18.184 16.406,24.718 16.406,32.779C16.406,40.839 22.94,47.373 31,47.373ZM29.919,26.137C29.919,25.54 30.403,25.056 31,25.056C31.597,25.056 32.081,25.54 32.081,26.137V33.117L34.745,34.655C35.262,34.954 35.439,35.615 35.141,36.132C34.842,36.649 34.181,36.826 33.664,36.528L30.855,34.906C30.763,34.853 30.681,34.787 30.611,34.714C30.206,34.557 29.919,34.165 29.919,33.705V26.137Z" android:fillType="evenOdd" />
<path android:fillColor="#ffffffff" android:pathData="M18.027,19.775C17.729,19.258 17.906,18.597 18.423,18.298L23.572,15.325C24.089,15.027 24.75,15.204 25.049,15.721C25.348,16.238 25.17,16.899 24.653,17.198L19.504,20.171C18.987,20.469 18.326,20.292 18.027,19.775ZM43.968,19.88C44.267,19.363 44.089,18.702 43.572,18.403L38.423,15.43C37.906,15.132 37.245,15.309 36.946,15.826C36.648,16.343 36.825,17.004 37.342,17.303L42.491,20.276C43.008,20.574 43.669,20.397 43.968,19.88Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_deep_orange_primary_default" android:pathData="M12.735,0.895C15.488,1.958 19.289,4.085 20.41,6.106C21.355,7.808 21.532,10.147 19.39,13.657C20.809,8.479 17.496,6.976 15.654,6.644V16.138H15.653C15.653,19.72 12.749,22.624 9.167,22.624C5.585,22.624 2.681,19.72 2.681,16.138C2.681,12.555 5.585,9.651 9.167,9.651C10.485,9.651 11.711,10.044 12.735,10.719V6.638V3.165V0.895ZM9.167,19.056C10.779,19.056 12.086,17.749 12.086,16.137C12.086,14.525 10.779,13.218 9.167,13.218C7.555,13.218 6.248,14.525 6.248,16.137C6.248,17.749 7.555,19.056 9.167,19.056Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="62.0dip" android:width="62.0dip" android:autoMirrored="true" android:viewportWidth="62.0" android:viewportHeight="62.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_deep_orange_primary_default" android:pathData="M18,0L44,0A18,18 0,0 1,62 18L62,44A18,18 0,0 1,44 62L18,62A18,18 0,0 1,0 44L0,18A18,18 0,0 1,18 0z" />
<path android:fillColor="#ffffffff" android:pathData="M32.225,12.491C36.813,14.264 43.148,17.809 45.017,21.177C46.591,24.013 46.886,27.912 43.318,33.762C45.681,25.132 40.161,22.627 37.089,22.073V37.897H37.089C37.089,43.867 32.249,48.707 26.278,48.707C20.308,48.707 15.468,43.867 15.468,37.896C15.468,31.925 20.308,27.085 26.278,27.085C28.475,27.085 30.519,27.74 32.225,28.866V22.063V16.275V12.491ZM26.278,42.76C28.965,42.76 31.143,40.582 31.143,37.895C31.143,35.208 28.965,33.03 26.278,33.03C23.592,33.03 21.414,35.208 21.414,37.895C21.414,40.582 23.592,42.76 26.278,42.76Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_blue_primary_default" android:pathData="M16.191,3.248C15.805,3.248 15.493,3.56 15.493,3.946V5.342H8.507V3.946C8.507,3.561 8.194,3.248 7.808,3.248C7.423,3.248 7.11,3.561 7.11,3.946V5.342C5.844,5.343 5.178,5.361 4.66,5.625C4.172,5.873 3.775,6.27 3.526,6.759C3.243,7.314 3.243,8.04 3.243,9.493V16.326C3.243,17.779 3.243,18.505 3.526,19.06C3.775,19.549 4.172,19.945 4.66,20.194C5.215,20.477 5.942,20.477 7.395,20.477H16.605C18.059,20.477 18.785,20.477 19.34,20.194C19.828,19.945 20.225,19.549 20.474,19.06C20.757,18.505 20.757,17.779 20.757,16.326V9.493C20.757,8.04 20.757,7.314 20.474,6.759C20.225,6.27 19.828,5.873 19.34,5.625C18.823,5.361 18.156,5.343 16.89,5.342V3.946C16.89,3.56 16.577,3.248 16.191,3.248ZM11.014,15.59C11.002,15.578 10.99,15.566 10.979,15.553L8.303,12.877C8.03,12.604 8.03,12.162 8.303,11.889C8.575,11.616 9.018,11.616 9.291,11.889L11.509,14.107L15.124,10.492C15.397,10.22 15.839,10.22 16.112,10.492C16.385,10.765 16.385,11.207 16.112,11.48L12.068,15.524C12.049,15.548 12.029,15.571 12.007,15.593C11.785,15.816 11.45,15.857 11.186,15.717C11.124,15.684 11.066,15.642 11.014,15.59Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="62.0dip" android:width="62.0dip" android:autoMirrored="true" android:viewportWidth="62.0" android:viewportHeight="62.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_blue_primary_default" android:pathData="M18,0L44,0A18,18 0,0 1,62 18L62,44A18,18 0,0 1,44 62L18,62A18,18 0,0 1,0 44L0,18A18,18 0,0 1,18 0z" />
<path android:fillColor="#ffffffff" android:pathData="M37.985,16.412C37.342,16.412 36.821,16.934 36.821,17.576V19.903H25.178V17.577C25.178,16.934 24.657,16.413 24.014,16.413C23.371,16.413 22.85,16.934 22.85,17.577V19.903C20.74,19.905 19.629,19.935 18.767,20.374C17.953,20.789 17.292,21.451 16.877,22.264C16.406,23.189 16.406,24.4 16.406,26.822V38.209C16.406,40.631 16.406,41.842 16.877,42.767C17.292,43.581 17.953,44.242 18.767,44.657C19.692,45.128 20.903,45.128 23.325,45.128H38.676C41.098,45.128 42.309,45.128 43.234,44.657C44.047,44.242 44.709,43.581 45.124,42.767C45.595,41.842 45.595,40.631 45.595,38.209V26.822C45.595,24.4 45.595,23.189 45.124,22.264C44.709,21.451 44.047,20.789 43.234,20.374C42.371,19.935 41.26,19.905 39.15,19.903V17.576C39.15,16.934 38.628,16.412 37.985,16.412ZM29.357,36.984C29.336,36.964 29.316,36.943 29.298,36.921L24.838,32.461C24.383,32.007 24.383,31.269 24.838,30.815C25.293,30.36 26.03,30.36 26.484,30.815L30.182,34.512L36.207,28.487C36.662,28.033 37.399,28.033 37.853,28.487C38.308,28.942 38.308,29.679 37.853,30.134L31.113,36.875C31.082,36.914 31.049,36.953 31.012,36.989C30.644,37.357 30.091,37.427 29.653,37.2C29.546,37.145 29.446,37.074 29.357,36.984Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#00000000" android:pathData="M9.243,2.784C9.243,2.784 8.595,3.507 8.595,4.081C8.595,4.656 9.243,5.379 9.243,5.379C9.243,5.379 9.892,6.102 9.892,6.676C9.892,7.25 9.243,7.973 9.243,7.973" android:strokeColor="@color/color_yellow_primary_default" android:strokeWidth="1.2973" android:strokeLineCap="round" android:strokeLineJoin="round" />
<path android:fillColor="#00000000" android:pathData="M12.649,2.784C12.649,2.784 12,3.507 12,4.081C12,4.656 12.649,5.379 12.649,5.379C12.649,5.379 13.297,6.102 13.297,6.676C13.297,7.25 12.649,7.973 12.649,7.973" android:strokeColor="@color/color_yellow_primary_default" android:strokeWidth="1.2973" android:strokeLineCap="round" android:strokeLineJoin="round" />
<path android:fillColor="#00000000" android:pathData="M18,10.487H19.297C20.685,10.487 21.811,11.612 21.811,13C21.811,14.389 20.685,15.514 19.297,15.514H18V10.487Z" android:strokeColor="@color/color_yellow_primary_default" android:strokeWidth="1.2973" />
<path android:fillColor="@color/color_yellow_primary_default" android:pathData="M3,11.001C3,10.359 3.521,9.838 4.163,9.838H17.648C18.29,9.838 18.811,10.359 18.811,11.001V13.852C18.811,18.218 15.271,21.757 10.905,21.757C6.539,21.757 3,18.218 3,13.852V11.001Z" />
</vector>

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="62.0dip" android:width="62.0dip" android:autoMirrored="true" android:viewportWidth="62.0" android:viewportHeight="62.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_yellow_primary_default" android:pathData="M18,0L44,0A18,18 0,0 1,62 18L62,44A18,18 0,0 1,44 62L18,62A18,18 0,0 1,0 44L0,18A18,18 0,0 1,18 0z" />
<path android:fillColor="#00000000" android:pathData="M26.406,15.64C26.406,15.64 25.325,16.845 25.325,17.802C25.325,18.759 26.406,19.965 26.406,19.965C26.406,19.965 27.487,21.17 27.487,22.127C27.487,23.084 26.406,24.289 26.406,24.289" android:strokeColor="#ffffffff" android:strokeWidth="2.16216" android:strokeLineCap="round" android:strokeLineJoin="round" />
<path android:fillColor="#00000000" android:pathData="M32.081,15.64C32.081,15.64 31,16.845 31,17.802C31,18.759 32.081,19.965 32.081,19.965C32.081,19.965 33.162,21.17 33.162,22.127C33.162,23.084 32.081,24.289 32.081,24.289" android:strokeColor="#ffffffff" android:strokeWidth="2.16216" android:strokeLineCap="round" android:strokeLineJoin="round" />
<path android:fillColor="#00000000" android:pathData="M41,28.478H43.162C45.476,28.478 47.351,30.354 47.351,32.667C47.351,34.981 45.476,36.856 43.162,36.856H41V28.478Z" android:strokeColor="#ffffffff" android:strokeWidth="2.16216" />
<path android:fillColor="#ffffffff" android:pathData="M16,29.335C16,28.264 16.868,27.397 17.938,27.397H40.413C41.484,27.397 42.351,28.264 42.351,29.335V34.086C42.351,41.363 36.452,47.262 29.176,47.262C21.899,47.262 16,41.363 16,34.086V29.335Z" />
</vector>

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_green_primary_default" android:pathData="M2.963,7.672C2.681,8.227 2.681,8.954 2.681,10.407V13.687C2.681,15.141 2.681,15.867 2.963,16.422C3.212,16.91 3.609,17.307 4.097,17.556C4.652,17.839 5.379,17.839 6.832,17.839H15.209C16.662,17.839 17.388,17.839 17.943,17.556C18.432,17.307 18.829,16.91 19.077,16.422C19.36,15.867 19.36,15.141 19.36,13.687V10.407C19.36,8.954 19.36,8.227 19.077,7.672C18.829,7.184 18.432,6.787 17.943,6.539C17.388,6.256 16.662,6.256 15.209,6.256H6.832C5.379,6.256 4.652,6.256 4.097,6.539C3.609,6.787 3.212,7.184 2.963,7.672ZM21.445,9.036C21.061,9.036 20.75,9.347 20.75,9.731V14.132C20.75,14.516 21.061,14.827 21.445,14.827C21.829,14.827 22.14,14.516 22.14,14.132V9.731C22.14,9.347 21.829,9.036 21.445,9.036Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="62.0dip" android:width="62.0dip" android:autoMirrored="true" android:viewportWidth="62.0" android:viewportHeight="62.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_green_primary_default" android:pathData="M18,0L44,0A18,18 0,0 1,62 18L62,44A18,18 0,0 1,44 62L18,62A18,18 0,0 1,0 44L0,18A18,18 0,0 1,18 0z" />
<path android:fillColor="#ffffffff" android:pathData="M15.939,23.787C15.468,24.712 15.468,25.923 15.468,28.345V33.812C15.468,36.234 15.468,37.445 15.939,38.37C16.354,39.184 17.015,39.845 17.829,40.26C18.754,40.731 19.965,40.731 22.387,40.731H36.348C38.77,40.731 39.981,40.731 40.906,40.26C41.72,39.845 42.381,39.184 42.796,38.37C43.267,37.445 43.267,36.234 43.267,33.812V28.345C43.267,25.923 43.267,24.712 42.796,23.787C42.381,22.974 41.72,22.312 40.906,21.898C39.981,21.426 38.77,21.426 36.348,21.426H22.387C19.965,21.426 18.754,21.426 17.829,21.898C17.015,22.312 16.354,22.974 15.939,23.787ZM46.742,26.06C46.102,26.06 45.583,26.578 45.583,27.218V34.554C45.583,35.194 46.102,35.712 46.742,35.712C47.382,35.712 47.9,35.194 47.9,34.554V27.218C47.9,26.578 47.382,26.06 46.742,26.06Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_purple_primary_default" android:pathData="M20.72,14.58C21.056,14.337 21.525,14.685 21.377,15.076C20.01,18.768 16.458,21.404 12.286,21.404C6.94,21.404 2.594,17.052 2.594,11.675C2.594,7.57 5.13,4.053 8.713,2.626C9.119,2.468 9.497,2.912 9.25,3.266C8.171,4.829 7.609,6.783 7.84,8.875C8.235,12.456 11.023,15.436 14.569,16.017C16.868,16.397 19.036,15.8 20.72,14.58Z" />
<path android:fillColor="@color/color_purple_primary_default" android:pathData="M15.583,4.517C15.68,4.218 16.103,4.218 16.2,4.517L16.838,6.481C16.882,6.614 17.006,6.705 17.147,6.705H19.212C19.526,6.705 19.657,7.107 19.403,7.291L17.732,8.505C17.618,8.588 17.571,8.734 17.614,8.868L18.252,10.832C18.349,11.131 18.007,11.379 17.753,11.194L16.082,9.981C15.969,9.898 15.815,9.898 15.701,9.981L14.031,11.194C13.776,11.379 13.434,11.131 13.531,10.832L14.17,8.868C14.213,8.734 14.165,8.588 14.052,8.505L12.381,7.291C12.127,7.107 12.257,6.705 12.572,6.705H14.637C14.777,6.705 14.902,6.614 14.945,6.481L15.583,4.517Z" />
</vector>

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="62.0dip" android:width="62.0dip" android:autoMirrored="true" android:viewportWidth="62.0" android:viewportHeight="62.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_purple_primary_default" android:pathData="M18,0L44,0A18,18 0,0 1,62 18L62,44A18,18 0,0 1,44 62L18,62A18,18 0,0 1,0 44L0,18A18,18 0,0 1,18 0z" />
<path android:fillColor="#ffffffff" android:pathData="M45.533,35.3C46.094,34.895 46.875,35.476 46.629,36.127C44.349,42.281 38.43,46.674 31.476,46.674C22.567,46.674 15.324,39.42 15.324,30.458C15.324,23.617 19.551,17.754 25.522,15.377C26.198,15.113 26.829,15.853 26.417,16.443C24.619,19.048 23.681,22.306 24.067,25.792C24.724,31.761 29.372,36.726 35.282,37.694C39.114,38.328 42.727,37.333 45.533,35.3Z" />
<path android:fillColor="#ffffffff" android:pathData="M36.972,18.528C37.134,18.03 37.839,18.03 38,18.528L39.064,21.801C39.137,22.024 39.344,22.174 39.578,22.174H43.02C43.544,22.174 43.761,22.845 43.338,23.152L40.553,25.175C40.364,25.313 40.285,25.557 40.357,25.78L41.421,29.053C41.582,29.551 41.012,29.965 40.589,29.657L37.804,27.634C37.615,27.497 37.358,27.497 37.169,27.634L34.384,29.657C33.961,29.965 33.391,29.551 33.552,29.053L34.616,25.78C34.688,25.557 34.609,25.313 34.42,25.175L31.635,23.152C31.212,22.845 31.429,22.174 31.953,22.174H35.395C35.629,22.174 35.836,22.024 35.909,21.801L36.972,18.528Z" />
</vector>

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_purple_primary_default" android:pathData="M6.162,15.892C6.162,14.984 6.162,14.53 6.339,14.183C6.494,13.878 6.742,13.63 7.047,13.474C7.394,13.297 7.848,13.297 8.756,13.297H18.486C19.394,13.297 19.848,13.297 20.195,13.474C20.5,13.63 20.749,13.878 20.904,14.183C21.081,14.53 21.081,14.984 21.081,15.892V18.487C21.081,19.395 21.081,19.849 20.904,20.196C20.749,20.501 20.5,20.749 20.195,20.904C19.848,21.081 19.394,21.081 18.486,21.081H8.756C7.848,21.081 7.394,21.081 7.047,20.904C6.742,20.749 6.494,20.501 6.339,20.196C6.162,19.849 6.162,19.395 6.162,18.487V15.892Z" />
<path android:fillColor="@color/color_purple_primary_default" android:pathData="M10.747,12H8.497C7.226,12 6.59,12 6.104,12.247C5.677,12.465 5.33,12.812 5.112,13.239C4.865,13.725 4.865,14.361 4.865,15.632V18.421C4.865,18.453 4.865,18.485 4.865,18.516C4.365,18.507 4.056,18.471 3.804,18.343C3.499,18.187 3.251,17.939 3.095,17.634C2.919,17.287 2.919,16.833 2.919,15.925V6.083C2.919,5.175 2.919,4.721 3.095,4.374C3.251,4.069 3.499,3.821 3.804,3.666C4.151,3.489 4.605,3.489 5.513,3.489H8.153C9.061,3.489 9.515,3.489 9.862,3.666C10.167,3.821 10.415,4.069 10.571,4.374C10.747,4.721 10.747,5.175 10.747,6.083L10.747,12Z" android:fillType="evenOdd" />
<path android:fillColor="#00000000" android:pathData="M19.908,11.004C19.189,7.922 16.872,5.453 13.879,4.519" android:strokeColor="@color/color_purple_primary_default" android:strokeWidth="1.2973" android:strokeLineCap="round" />
</vector>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="62.0dip" android:width="62.0dip" android:autoMirrored="true" android:viewportWidth="62.0" android:viewportHeight="62.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_purple_primary_default" android:pathData="M18,0L44,0A18,18 0,0 1,62 18L62,44A18,18 0,0 1,44 62L18,62A18,18 0,0 1,0 44L0,18A18,18 0,0 1,18 0z" />
<path android:fillColor="#ffffffff" android:pathData="M21.27,37.487C21.27,35.973 21.27,35.216 21.564,34.638C21.823,34.129 22.237,33.716 22.746,33.457C23.324,33.162 24.08,33.162 25.594,33.162H41.81C43.324,33.162 44.081,33.162 44.659,33.457C45.167,33.716 45.581,34.129 45.84,34.638C46.135,35.216 46.135,35.973 46.135,37.487V41.811C46.135,43.325 46.135,44.081 45.84,44.66C45.581,45.168 45.167,45.582 44.659,45.841C44.081,46.135 43.324,46.135 41.81,46.135H25.594C24.08,46.135 23.324,46.135 22.746,45.841C22.237,45.582 21.823,45.168 21.564,44.66C21.27,44.081 21.27,43.325 21.27,41.811V37.487Z" />
<path android:fillColor="#ffffffff" android:pathData="M28.912,30.999H25.162C23.043,30.999 21.983,30.999 21.174,31.412C20.462,31.774 19.883,32.353 19.52,33.065C19.108,33.875 19.108,34.934 19.108,37.053V41.702C19.108,41.755 19.108,41.808 19.108,41.86C18.276,41.844 17.761,41.786 17.34,41.571C16.832,41.312 16.418,40.899 16.159,40.39C15.865,39.812 15.865,39.055 15.865,37.542V21.139C15.865,19.625 15.865,18.869 16.159,18.291C16.418,17.782 16.832,17.368 17.34,17.109C17.918,16.815 18.675,16.815 20.189,16.815L24.588,16.815C26.101,16.815 26.858,16.815 27.436,17.109C27.945,17.368 28.358,17.782 28.617,18.291C28.912,18.869 28.912,19.625 28.912,21.139V21.139V30.999Z" android:fillType="evenOdd" />
<path android:fillColor="#00000000" android:pathData="M44.181,29.34C42.982,24.203 39.121,20.088 34.131,18.531" android:strokeColor="#ffffffff" android:strokeWidth="2.16216" android:strokeLineCap="round" />
</vector>

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="@dimen/view_dimen_68" android:width="@dimen/view_dimen_68" android:viewportWidth="68.0" android:viewportHeight="68.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/base_color_wb_bw" android:pathData="M34,66C51.6731,66 66,51.6731 66,34C66,16.3269 51.6731,2 34,2C16.3269,2 2,16.3269 2,34C2,51.6731 16.3269,66 34,66Z" android:fillAlpha="@integer/svg_fill_alpha_w006_d02" />
<path android:fillColor="#00000000" android:pathData="M34,67C52.2254,67 67,52.2254 67,34C67,15.7746 52.2254,1 34,1C15.7746,1 1,15.7746 1,34C1,52.2254 15.7746,67 34,67Z" android:strokeColor="#ffffffff" android:strokeWidth="2.0" android:strokeAlpha="@integer/svg_fill_alpha_w01_d02" />
<path android:fillColor="@color/base_color_wb_bw" android:pathData="M24.1005,43.8997C22.9289,42.7281 22.9289,40.8286 24.1005,39.657L29.7574,34.0002L24.1005,28.3433C22.9289,27.1717 22.9289,25.2722 24.1005,24.1007C25.2721,22.9291 27.1716,22.9291 28.3431,24.1007L34,29.7575L39.6569,24.1007C40.8284,22.9291 42.7279,22.9291 43.8995,24.1007C45.0711,25.2722 45.0711,27.1717 43.8995,28.3433L38.2426,34.0002L43.8995,39.657C45.0711,40.8286 45.0711,42.7281 43.8995,43.8997C42.7279,45.0712 40.8284,45.0712 39.6569,43.8997L34,38.2428L28.3431,43.8997C27.1716,45.0712 25.2721,45.0712 24.1005,43.8997Z" android:fillAlpha="@integer/svg_fill_alpha_w03_d04" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="25.0dip" android:width="25.0dip" android:autoMirrored="true" android:viewportWidth="25.0" android:viewportHeight="25.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_green_primary_default" android:pathData="M6.66,0.66L18.66,0.66A6,6 0,0 1,24.66 6.66L24.66,18.66A6,6 0,0 1,18.66 24.66L6.66,24.66A6,6 0,0 1,0.66 18.66L0.66,6.66A6,6 0,0 1,6.66 0.66z" />
<path android:fillColor="#ffffffff" android:pathData="M8.057,11.522C7.357,11.522 6.789,10.954 6.789,10.254C6.789,9.553 7.357,8.986 8.057,8.986C8.757,8.986 9.325,9.553 9.325,10.254C9.325,10.954 8.757,11.522 8.057,11.522ZM8.057,15.466C7.357,15.466 6.789,14.899 6.789,14.198C6.789,13.498 7.357,12.93 8.057,12.93C8.757,12.93 9.325,13.498 9.325,14.198C9.325,14.899 8.757,15.466 8.057,15.466ZM8.057,19.411C7.357,19.411 6.789,18.843 6.789,18.143C6.789,17.442 7.357,16.875 8.057,16.875C8.757,16.875 9.325,17.442 9.325,18.143C9.325,18.843 8.757,19.411 8.057,19.411ZM12.283,11.522C11.583,11.522 11.015,10.954 11.015,10.254C11.015,9.553 11.583,8.986 12.283,8.986C12.983,8.986 13.551,9.553 13.551,10.254C13.551,10.954 12.983,11.522 12.283,11.522ZM12.283,7.577C11.583,7.577 11.015,7.009 11.015,6.309C11.015,5.609 11.583,5.041 12.283,5.041C12.983,5.041 13.551,5.609 13.551,6.309C13.551,7.009 12.983,7.577 12.283,7.577ZM12.283,15.466C11.583,15.466 11.015,14.899 11.015,14.198C11.015,13.498 11.583,12.93 12.283,12.93C12.983,12.93 13.551,13.498 13.551,14.198C13.551,14.899 12.983,15.466 12.283,15.466ZM12.283,19.411C11.583,19.411 11.015,18.843 11.015,18.143C11.015,17.442 11.583,16.875 12.283,16.875C12.983,16.875 13.551,17.442 13.551,18.143C13.551,18.843 12.983,19.411 12.283,19.411ZM16.51,11.522C15.809,11.522 15.242,10.954 15.242,10.254C15.242,9.553 15.809,8.986 16.51,8.986C17.21,8.986 17.777,9.553 17.777,10.254C17.777,10.954 17.21,11.522 16.51,11.522ZM16.51,15.466C15.809,15.466 15.242,14.899 15.242,14.198C15.242,13.498 15.809,12.93 16.51,12.93C17.21,12.93 17.777,13.498 17.777,14.198C17.777,14.899 17.21,15.466 16.51,15.466ZM16.51,19.411C15.809,19.411 15.242,18.843 15.242,18.143C15.242,17.442 15.809,16.875 16.51,16.875C17.21,16.875 17.777,17.442 17.777,18.143C17.777,18.843 17.21,19.411 16.51,19.411Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="25.0dip" android:width="25.0dip" android:autoMirrored="true" android:viewportWidth="25.0" android:viewportHeight="25.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/auto_task_icon_grey_bg" android:pathData="M6.66,0.66L18.66,0.66A6,6 0,0 1,24.66 6.66L24.66,18.66A6,6 0,0 1,18.66 24.66L6.66,24.66A6,6 0,0 1,0.66 18.66L0.66,6.66A6,6 0,0 1,6.66 0.66z" />
<path android:fillColor="@color/auto_task_icon_grey" android:pathData="M8.057,11.522C7.357,11.522 6.789,10.954 6.789,10.254C6.789,9.553 7.357,8.986 8.057,8.986C8.757,8.986 9.325,9.553 9.325,10.254C9.325,10.954 8.757,11.522 8.057,11.522ZM8.057,15.466C7.357,15.466 6.789,14.899 6.789,14.198C6.789,13.498 7.357,12.93 8.057,12.93C8.757,12.93 9.325,13.498 9.325,14.198C9.325,14.899 8.757,15.466 8.057,15.466ZM8.057,19.411C7.357,19.411 6.789,18.843 6.789,18.143C6.789,17.442 7.357,16.875 8.057,16.875C8.757,16.875 9.325,17.442 9.325,18.143C9.325,18.843 8.757,19.411 8.057,19.411ZM12.283,11.522C11.583,11.522 11.015,10.954 11.015,10.254C11.015,9.553 11.583,8.986 12.283,8.986C12.983,8.986 13.551,9.553 13.551,10.254C13.551,10.954 12.983,11.522 12.283,11.522ZM12.283,7.577C11.583,7.577 11.015,7.009 11.015,6.309C11.015,5.609 11.583,5.041 12.283,5.041C12.983,5.041 13.551,5.609 13.551,6.309C13.551,7.009 12.983,7.577 12.283,7.577ZM12.283,15.466C11.583,15.466 11.015,14.899 11.015,14.198C11.015,13.498 11.583,12.93 12.283,12.93C12.983,12.93 13.551,13.498 13.551,14.198C13.551,14.899 12.983,15.466 12.283,15.466ZM12.283,19.411C11.583,19.411 11.015,18.843 11.015,18.143C11.015,17.442 11.583,16.875 12.283,16.875C12.983,16.875 13.551,17.442 13.551,18.143C13.551,18.843 12.983,19.411 12.283,19.411ZM16.51,11.522C15.809,11.522 15.242,10.954 15.242,10.254C15.242,9.553 15.809,8.986 16.51,8.986C17.21,8.986 17.777,9.553 17.777,10.254C17.777,10.954 17.21,11.522 16.51,11.522ZM16.51,15.466C15.809,15.466 15.242,14.899 15.242,14.198C15.242,13.498 15.809,12.93 16.51,12.93C17.21,12.93 17.777,13.498 17.777,14.198C17.777,14.899 17.21,15.466 16.51,15.466ZM16.51,19.411C15.809,19.411 15.242,18.843 15.242,18.143C15.242,17.442 15.809,16.875 16.51,16.875C17.21,16.875 17.777,17.442 17.777,18.143C17.777,18.843 17.21,19.411 16.51,19.411Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="25.0dip" android:width="25.0dip" android:autoMirrored="true" android:viewportWidth="25.0" android:viewportHeight="25.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_green_primary_default" android:pathData="M6.66,0.66L18.66,0.66A6,6 0,0 1,24.66 6.66L24.66,18.66A6,6 0,0 1,18.66 24.66L6.66,24.66A6,6 0,0 1,0.66 18.66L0.66,6.66A6,6 0,0 1,6.66 0.66z" android:strokeAlpha="0.3" android:fillAlpha="0.3" />
<path android:fillColor="#ffffffff" android:pathData="M8.057,11.521C7.357,11.521 6.789,10.954 6.789,10.254C6.789,9.553 7.357,8.986 8.057,8.986C8.757,8.986 9.325,9.553 9.325,10.254C9.325,10.954 8.757,11.521 8.057,11.521ZM8.057,15.466C7.357,15.466 6.789,14.898 6.789,14.198C6.789,13.498 7.357,12.93 8.057,12.93C8.757,12.93 9.325,13.498 9.325,14.198C9.325,14.898 8.757,15.466 8.057,15.466ZM8.057,19.411C7.357,19.411 6.789,18.843 6.789,18.143C6.789,17.442 7.357,16.875 8.057,16.875C8.757,16.875 9.325,17.442 9.325,18.143C9.325,18.843 8.757,19.411 8.057,19.411ZM12.283,11.521C11.583,11.521 11.015,10.954 11.015,10.254C11.015,9.553 11.583,8.986 12.283,8.986C12.983,8.986 13.551,9.553 13.551,10.254C13.551,10.954 12.983,11.521 12.283,11.521ZM12.283,7.577C11.583,7.577 11.015,7.009 11.015,6.309C11.015,5.609 11.583,5.041 12.283,5.041C12.983,5.041 13.551,5.609 13.551,6.309C13.551,7.009 12.983,7.577 12.283,7.577ZM12.283,15.466C11.583,15.466 11.015,14.898 11.015,14.198C11.015,13.498 11.583,12.93 12.283,12.93C12.983,12.93 13.551,13.498 13.551,14.198C13.551,14.898 12.983,15.466 12.283,15.466ZM12.283,19.411C11.583,19.411 11.015,18.843 11.015,18.143C11.015,17.442 11.583,16.875 12.283,16.875C12.983,16.875 13.551,17.442 13.551,18.143C13.551,18.843 12.983,19.411 12.283,19.411ZM16.51,11.521C15.809,11.521 15.242,10.954 15.242,10.254C15.242,9.553 15.809,8.986 16.51,8.986C17.21,8.986 17.777,9.553 17.777,10.254C17.777,10.954 17.21,11.521 16.51,11.521ZM16.51,15.466C15.809,15.466 15.242,14.898 15.242,14.198C15.242,13.498 15.809,12.93 16.51,12.93C17.21,12.93 17.777,13.498 17.777,14.198C17.777,14.898 17.21,15.466 16.51,15.466ZM16.51,19.411C15.809,19.411 15.242,18.843 15.242,18.143C15.242,17.442 15.809,16.875 16.51,16.875C17.21,16.875 17.777,17.442 17.777,18.143C17.777,18.843 17.21,19.411 16.51,19.411Z" android:strokeAlpha="0.3" android:fillAlpha="0.3" android:fillType="evenOdd" />
</vector>

@ -1,22 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24.0dip"
android:height="24.0dip"
android:autoMirrored="true"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="@color/colorPrimaryDark"
android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" />
<path
android:fillColor="#ffffffff"
android:fillType="evenOdd"
android:pathData="M15.214,11.072C14.673,10.62 13.837,10.995 13.837,11.691V12.571C13.837,12.575 13.837,12.578 13.837,12.582V14.02L11.393,12.742C11.108,12.581 10.743,12.677 10.579,12.955C10.415,13.234 10.513,13.589 10.798,13.75L13.837,15.363V15.388L10.798,17C10.513,17.161 10.415,17.516 10.579,17.795C10.744,18.073 11.108,18.169 11.393,18.008L13.837,16.73V19.059C13.837,19.755 14.673,20.13 15.214,19.678L18.083,17.468C18.52,17.102 18.455,16.424 17.957,16.144L16.408,15.375L17.957,14.606C18.456,14.326 18.52,13.648 18.083,13.282L15.214,11.072ZM15.029,18.179C15.029,18.176 15.029,18.172 15.029,18.168V16.06L15.057,16.046L16.923,16.905L15.029,18.301V18.179ZM15.057,14.704L16.923,13.845L15.029,12.45V14.69L15.057,14.704Z" />
<path
android:fillColor="#ffffffff"
android:fillType="evenOdd"
android:pathData="M5.249,6.188C5.249,4.841 6.341,3.75 7.687,3.75H15.937C17.283,3.75 18.374,4.841 18.374,6.188V9C18.374,9.518 17.955,9.938 17.437,9.938C16.919,9.938 16.499,9.518 16.499,9V6.188C16.499,5.877 16.247,5.625 15.937,5.625H7.687C7.376,5.625 7.124,5.877 7.124,6.188V17.438C7.124,17.748 7.376,18 7.687,18H8.999C9.517,18 9.937,18.42 9.937,18.938C9.937,19.455 9.517,19.875 8.999,19.875H7.687C6.341,19.875 5.249,18.784 5.249,17.438V6.188Z" />
<path
android:fillColor="@color/colorPrimaryDark"
android:pathData="M12.389,17.5l6.203,-3.243l0.463,0.886l-6.203,3.243z" />
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/auto_task_icon_light_blue" android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" />
<path android:fillColor="#ffffffff" android:pathData="M15.214,11.072C14.673,10.62 13.837,10.995 13.837,11.691V12.571C13.837,12.575 13.837,12.578 13.837,12.582V14.02L11.393,12.742C11.108,12.581 10.743,12.677 10.579,12.955C10.415,13.234 10.513,13.589 10.798,13.75L13.837,15.363V15.388L10.798,17C10.513,17.161 10.415,17.516 10.579,17.795C10.744,18.073 11.108,18.169 11.393,18.008L13.837,16.73V19.059C13.837,19.755 14.673,20.13 15.214,19.678L18.083,17.468C18.52,17.102 18.455,16.424 17.957,16.144L16.408,15.375L17.957,14.606C18.456,14.326 18.52,13.648 18.083,13.282L15.214,11.072ZM15.029,18.179C15.029,18.176 15.029,18.172 15.029,18.168V16.06L15.057,16.046L16.923,16.905L15.029,18.301V18.179ZM15.057,14.704L16.923,13.845L15.029,12.45V14.69L15.057,14.704Z" android:fillType="evenOdd" />
<path android:fillColor="#ffffffff" android:pathData="M5.249,6.188C5.249,4.841 6.341,3.75 7.687,3.75H15.937C17.283,3.75 18.374,4.841 18.374,6.188V9C18.374,9.518 17.955,9.938 17.437,9.938C16.919,9.938 16.499,9.518 16.499,9V6.188C16.499,5.877 16.247,5.625 15.937,5.625H7.687C7.376,5.625 7.124,5.877 7.124,6.188V17.438C7.124,17.748 7.376,18 7.687,18H8.999C9.517,18 9.937,18.42 9.937,18.938C9.937,19.455 9.517,19.875 8.999,19.875H7.687C6.341,19.875 5.249,18.784 5.249,17.438V6.188Z" android:fillType="evenOdd" />
<path android:fillColor="@color/auto_task_icon_light_blue" android:pathData="M12.389,17.5l6.203,-3.243l0.463,0.886l-6.203,3.243z" />
</vector>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/auto_task_icon_grey_bg" android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" />
<path android:fillColor="@color/auto_task_icon_grey" android:pathData="M15.214,11.072C14.673,10.62 13.837,10.995 13.837,11.691V12.571C13.837,12.575 13.837,12.578 13.837,12.582V14.02L11.393,12.742C11.108,12.581 10.743,12.677 10.579,12.955C10.415,13.234 10.513,13.589 10.798,13.75L13.837,15.363V15.388L10.798,17C10.513,17.161 10.415,17.516 10.579,17.795C10.744,18.073 11.108,18.169 11.393,18.008L13.837,16.73V19.059C13.837,19.755 14.673,20.13 15.214,19.678L18.083,17.468C18.52,17.102 18.455,16.424 17.957,16.144L16.408,15.375L17.957,14.606C18.456,14.326 18.52,13.648 18.083,13.282L15.214,11.072ZM15.029,18.179C15.029,18.176 15.029,18.172 15.029,18.168V16.06L15.057,16.046L16.923,16.905L15.029,18.301V18.179ZM15.057,14.704L16.923,13.845L15.029,12.45V14.69L15.057,14.704Z" android:fillType="evenOdd" />
<path android:fillColor="@color/auto_task_icon_grey" android:pathData="M5.249,6.188C5.249,4.841 6.341,3.75 7.687,3.75H15.937C17.283,3.75 18.374,4.841 18.374,6.188V9C18.374,9.518 17.955,9.938 17.437,9.938C16.919,9.938 16.499,9.518 16.499,9V6.188C16.499,5.877 16.247,5.625 15.937,5.625H7.687C7.376,5.625 7.124,5.877 7.124,6.188V17.438C7.124,17.748 7.376,18 7.687,18H8.999C9.517,18 9.937,18.42 9.937,18.938C9.937,19.455 9.517,19.875 8.999,19.875H7.687C6.341,19.875 5.249,18.784 5.249,17.438V6.188Z" android:fillType="evenOdd" />
<path android:fillColor="@color/auto_task_icon_grey_bg" android:pathData="M12.389,17.5l6.203,-3.243l0.463,0.886l-6.203,3.243z" />
</vector>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/auto_task_icon_light_blue" android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" android:strokeAlpha="0.3" android:fillAlpha="0.3" />
<path android:fillColor="#ffffffff" android:pathData="M15.214,11.072C14.673,10.62 13.837,10.995 13.837,11.691V12.571C13.837,12.575 13.837,12.578 13.837,12.582V14.02L11.393,12.742C11.108,12.581 10.743,12.677 10.579,12.955C10.415,13.234 10.513,13.589 10.798,13.75L13.837,15.363V15.388L10.798,17C10.513,17.161 10.415,17.516 10.579,17.795C10.744,18.073 11.108,18.169 11.393,18.008L13.837,16.73V19.059C13.837,19.755 14.673,20.13 15.214,19.678L18.083,17.468C18.52,17.102 18.455,16.424 17.957,16.144L16.408,15.375L17.957,14.606C18.456,14.326 18.52,13.648 18.083,13.282L15.214,11.072ZM15.029,18.179C15.029,18.176 15.029,18.172 15.029,18.168V16.06L15.057,16.046L16.923,16.905L15.029,18.301V18.179ZM15.057,14.704L16.923,13.845L15.029,12.45V14.69L15.057,14.704Z" android:strokeAlpha="0.3" android:fillAlpha="0.3" android:fillType="evenOdd" />
<path android:fillColor="#ffffffff" android:pathData="M5.249,6.188C5.249,4.841 6.341,3.75 7.687,3.75H15.937C17.283,3.75 18.374,4.841 18.374,6.188V9C18.374,9.518 17.955,9.938 17.437,9.938C16.919,9.938 16.499,9.518 16.499,9V6.188C16.499,5.877 16.247,5.625 15.937,5.625H7.687C7.376,5.625 7.124,5.877 7.124,6.188V17.438C7.124,17.748 7.376,18 7.687,18H8.999C9.517,18 9.937,18.42 9.937,18.938C9.937,19.455 9.517,19.875 8.999,19.875H7.687C6.341,19.875 5.249,18.784 5.249,17.438V6.188Z" android:strokeAlpha="0.3" android:fillAlpha="0.3" android:fillType="evenOdd" />
<path android:fillColor="@color/auto_task_icon_light_blue" android:pathData="M12.389,17.5l6.203,-3.243l0.463,0.886l-6.203,3.243z" android:strokeAlpha="0.3" android:fillAlpha="0.3" />
</vector>

@ -1,39 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24.0dip"
android:height="24.0dip"
android:autoMirrored="true"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="@color/app_color_theme_7"
android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" />
<path
android:fillColor="#ffffffff"
android:fillType="evenOdd"
android:pathData="M12,15.319C12.568,15.319 13.09,15.518 13.502,15.85C13.603,15.932 13.619,16.08 13.539,16.182C13.533,16.189 13.528,16.195 13.522,16.201L12.214,17.535C12.097,17.655 11.906,17.656 11.788,17.537C11.788,17.537 11.787,17.536 11.786,17.535L10.479,16.201C10.388,16.109 10.389,15.959 10.48,15.867C10.486,15.861 10.493,15.855 10.499,15.85C10.911,15.518 11.433,15.319 12,15.319Z" />
<path
android:fillColor="#ffffffff"
android:fillType="evenOdd"
android:pathData="M12,12.368C13.264,12.368 14.42,12.83 15.313,13.597C15.33,13.612 15.349,13.629 15.37,13.648L15.37,13.648C15.494,13.759 15.505,13.952 15.395,14.077C15.391,14.081 15.387,14.085 15.384,14.089L14.746,14.739C14.634,14.853 14.455,14.86 14.335,14.755C14.303,14.726 14.274,14.703 14.25,14.683C13.632,14.186 12.851,13.889 12,13.889C11.153,13.889 10.374,14.184 9.758,14.677C9.732,14.698 9.701,14.724 9.666,14.755C9.547,14.86 9.367,14.853 9.255,14.739L8.617,14.089C8.5,13.97 8.501,13.777 8.619,13.659C8.623,13.655 8.627,13.651 8.631,13.648C8.657,13.624 8.681,13.603 8.702,13.585C9.593,12.825 10.744,12.368 12,12.368Z" />
<path
android:fillColor="#ffffffff"
android:fillType="evenOdd"
android:pathData="M12,9.325C14.085,9.325 15.987,10.119 17.425,11.423C17.446,11.442 17.469,11.463 17.495,11.488L17.495,11.488C17.617,11.602 17.624,11.795 17.511,11.918C17.509,11.92 17.507,11.923 17.504,11.925L16.868,12.574C16.754,12.69 16.569,12.695 16.45,12.584C16.419,12.554 16.391,12.529 16.367,12.508C15.201,11.474 13.673,10.846 12,10.846C10.328,10.846 8.8,11.473 7.635,12.506C7.61,12.528 7.582,12.554 7.549,12.584L7.549,12.584C7.43,12.695 7.245,12.69 7.131,12.574L6.495,11.925C6.378,11.806 6.379,11.613 6.497,11.495C6.499,11.493 6.502,11.49 6.504,11.488C6.539,11.455 6.57,11.426 6.597,11.403C8.033,10.11 9.926,9.325 12,9.325Z" />
<path
android:fillColor="#ffffffff"
android:fillType="evenOdd"
android:pathData="M12,6.375C14.842,6.375 17.428,7.481 19.361,9.289C19.375,9.302 19.389,9.316 19.406,9.331L19.406,9.331C19.527,9.446 19.532,9.639 19.418,9.761C19.416,9.763 19.414,9.765 19.413,9.767L18.777,10.415C18.662,10.532 18.476,10.536 18.357,10.423C18.345,10.412 18.334,10.401 18.323,10.392C16.661,8.842 14.44,7.896 12,7.896C9.558,7.896 7.335,8.844 5.672,10.396C5.663,10.404 5.653,10.413 5.643,10.423L5.643,10.423C5.524,10.536 5.338,10.532 5.223,10.415L4.587,9.767C4.47,9.647 4.471,9.455 4.589,9.336C4.591,9.335 4.593,9.333 4.595,9.331C4.609,9.318 4.622,9.305 4.634,9.294C6.567,7.482 9.156,6.375 12,6.375Z" />
<path
android:fillColor="#00000000"
android:pathData="M7,15.973L16.825,6"
android:strokeWidth="1.6"
android:strokeColor="#ffffffff"
android:strokeLineCap="round" />
<path
android:fillColor="#00000000"
android:pathData="M8.14,17.096L17.965,7.123"
android:strokeWidth="1.6"
android:strokeColor="@color/app_color_theme_7"
android:strokeLineCap="round" />
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/auto_task_icon_light_blue" android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" />
<path android:fillColor="#ffffffff" android:pathData="M12,15.319C12.568,15.319 13.09,15.518 13.502,15.85C13.603,15.932 13.619,16.08 13.539,16.182C13.533,16.189 13.528,16.195 13.522,16.201L12.214,17.535C12.097,17.655 11.906,17.656 11.788,17.537C11.788,17.537 11.787,17.536 11.786,17.535L10.479,16.201C10.388,16.109 10.389,15.959 10.48,15.867C10.486,15.861 10.493,15.855 10.499,15.85C10.911,15.518 11.433,15.319 12,15.319Z" android:fillType="evenOdd" />
<path android:fillColor="#ffffffff" android:pathData="M12,12.368C13.264,12.368 14.42,12.83 15.313,13.597C15.33,13.612 15.349,13.629 15.37,13.648L15.37,13.648C15.494,13.759 15.505,13.952 15.395,14.077C15.391,14.081 15.387,14.085 15.384,14.089L14.746,14.739C14.634,14.853 14.455,14.86 14.335,14.755C14.303,14.726 14.274,14.703 14.25,14.683C13.632,14.186 12.851,13.889 12,13.889C11.153,13.889 10.374,14.184 9.758,14.677C9.732,14.698 9.701,14.724 9.666,14.755C9.547,14.86 9.367,14.853 9.255,14.739L8.617,14.089C8.5,13.97 8.501,13.777 8.619,13.659C8.623,13.655 8.627,13.651 8.631,13.648C8.657,13.624 8.681,13.603 8.702,13.585C9.593,12.825 10.744,12.368 12,12.368Z" android:fillType="evenOdd" />
<path android:fillColor="#ffffffff" android:pathData="M12,9.325C14.085,9.325 15.987,10.119 17.425,11.423C17.446,11.442 17.469,11.463 17.495,11.488L17.495,11.488C17.617,11.602 17.624,11.795 17.511,11.918C17.509,11.92 17.507,11.923 17.504,11.925L16.868,12.574C16.754,12.69 16.569,12.695 16.45,12.584C16.419,12.554 16.391,12.529 16.367,12.508C15.201,11.474 13.673,10.846 12,10.846C10.328,10.846 8.8,11.473 7.635,12.506C7.61,12.528 7.582,12.554 7.549,12.584L7.549,12.584C7.43,12.695 7.245,12.69 7.131,12.574L6.495,11.925C6.378,11.806 6.379,11.613 6.497,11.495C6.499,11.493 6.502,11.49 6.504,11.488C6.539,11.455 6.57,11.426 6.597,11.403C8.033,10.11 9.926,9.325 12,9.325Z" android:fillType="evenOdd" />
<path android:fillColor="#ffffffff" android:pathData="M12,6.375C14.842,6.375 17.428,7.481 19.361,9.289C19.375,9.302 19.389,9.316 19.406,9.331L19.406,9.331C19.527,9.446 19.532,9.639 19.418,9.761C19.416,9.763 19.414,9.765 19.413,9.767L18.777,10.415C18.662,10.532 18.476,10.536 18.357,10.423C18.345,10.412 18.334,10.401 18.323,10.392C16.661,8.842 14.44,7.896 12,7.896C9.558,7.896 7.335,8.844 5.672,10.396C5.663,10.404 5.653,10.413 5.643,10.423L5.643,10.423C5.524,10.536 5.338,10.532 5.223,10.415L4.587,9.767C4.47,9.647 4.471,9.455 4.589,9.336C4.591,9.335 4.593,9.333 4.595,9.331C4.609,9.318 4.622,9.305 4.634,9.294C6.567,7.482 9.156,6.375 12,6.375Z" android:fillType="evenOdd" />
<path android:fillColor="#00000000" android:pathData="M7,15.973L16.825,6" android:strokeColor="#ffffffff" android:strokeWidth="1.6" android:strokeLineCap="round" />
<path android:fillColor="#00000000" android:pathData="M8.14,17.096L17.965,7.123" android:strokeColor="@color/auto_task_icon_light_blue" android:strokeWidth="1.6" android:strokeLineCap="round" />
</vector>

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/auto_task_icon_grey_bg" android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" />
<path android:fillColor="@color/auto_task_icon_grey" android:pathData="M12,15.319C12.568,15.319 13.09,15.518 13.502,15.85C13.603,15.932 13.619,16.08 13.539,16.182C13.533,16.189 13.528,16.195 13.522,16.201L12.214,17.535C12.097,17.655 11.906,17.656 11.788,17.537C11.788,17.537 11.787,17.536 11.786,17.535L10.479,16.201C10.388,16.109 10.389,15.959 10.48,15.867C10.486,15.861 10.493,15.855 10.499,15.85C10.911,15.518 11.433,15.319 12,15.319Z" android:fillType="evenOdd" />
<path android:fillColor="@color/auto_task_icon_grey" android:pathData="M12,12.368C13.264,12.368 14.42,12.83 15.313,13.597C15.33,13.612 15.349,13.629 15.37,13.648L15.37,13.648C15.494,13.759 15.505,13.952 15.395,14.077C15.391,14.081 15.387,14.085 15.384,14.089L14.746,14.739C14.634,14.853 14.455,14.86 14.335,14.755C14.303,14.726 14.274,14.703 14.25,14.683C13.632,14.186 12.851,13.889 12,13.889C11.153,13.889 10.374,14.184 9.758,14.677C9.732,14.698 9.701,14.724 9.666,14.755C9.547,14.86 9.367,14.853 9.255,14.739L8.617,14.089C8.5,13.97 8.501,13.777 8.619,13.659C8.623,13.655 8.627,13.651 8.631,13.648C8.657,13.624 8.681,13.603 8.702,13.585C9.593,12.825 10.744,12.368 12,12.368Z" android:fillType="evenOdd" />
<path android:fillColor="@color/auto_task_icon_grey" android:pathData="M12,9.325C14.085,9.325 15.987,10.119 17.425,11.423C17.446,11.442 17.469,11.463 17.495,11.488L17.495,11.488C17.617,11.602 17.624,11.795 17.511,11.918C17.509,11.92 17.507,11.923 17.504,11.925L16.868,12.574C16.754,12.69 16.569,12.695 16.45,12.584C16.419,12.554 16.391,12.529 16.367,12.508C15.201,11.474 13.673,10.846 12,10.846C10.328,10.846 8.8,11.473 7.635,12.506C7.61,12.528 7.582,12.554 7.549,12.584L7.549,12.584C7.43,12.695 7.245,12.69 7.131,12.574L6.495,11.925C6.378,11.806 6.379,11.613 6.497,11.495C6.499,11.493 6.502,11.49 6.504,11.488C6.539,11.455 6.57,11.426 6.597,11.403C8.033,10.11 9.926,9.325 12,9.325Z" android:fillType="evenOdd" />
<path android:fillColor="@color/auto_task_icon_grey" android:pathData="M12,6.375C14.842,6.375 17.428,7.481 19.361,9.289C19.375,9.302 19.389,9.316 19.406,9.331L19.406,9.331C19.527,9.446 19.532,9.639 19.418,9.761C19.416,9.763 19.414,9.765 19.413,9.767L18.777,10.415C18.662,10.532 18.476,10.536 18.357,10.423C18.345,10.412 18.334,10.401 18.323,10.392C16.661,8.842 14.44,7.896 12,7.896C9.558,7.896 7.335,8.844 5.672,10.396C5.663,10.404 5.653,10.413 5.643,10.423L5.643,10.423C5.524,10.536 5.338,10.532 5.223,10.415L4.587,9.767C4.47,9.647 4.471,9.455 4.589,9.336C4.591,9.335 4.593,9.333 4.595,9.331C4.609,9.318 4.622,9.305 4.634,9.294C6.567,7.482 9.156,6.375 12,6.375Z" android:fillType="evenOdd" />
<path android:fillColor="#00000000" android:pathData="M7,15.973L16.825,6" android:strokeColor="@color/auto_task_icon_grey" android:strokeWidth="1.6" android:strokeLineCap="round" />
<path android:fillColor="#00000000" android:pathData="M8.14,17.096L17.965,7.123" android:strokeColor="@color/auto_task_icon_grey_bg" android:strokeWidth="1.6" android:strokeLineCap="round" />
</vector>

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/auto_task_icon_light_blue" android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" android:strokeAlpha="0.3" android:fillAlpha="0.3" />
<path android:fillColor="#ffffffff" android:pathData="M12,15.319C12.568,15.319 13.09,15.518 13.502,15.85C13.603,15.932 13.619,16.08 13.539,16.182C13.533,16.189 13.528,16.195 13.522,16.201L12.214,17.535C12.097,17.655 11.906,17.656 11.788,17.537C11.788,17.537 11.787,17.536 11.786,17.535L10.479,16.201C10.388,16.109 10.389,15.959 10.48,15.867C10.486,15.861 10.493,15.855 10.499,15.85C10.911,15.518 11.433,15.319 12,15.319Z" android:strokeAlpha="0.3" android:fillAlpha="0.3" android:fillType="evenOdd" />
<path android:fillColor="#ffffffff" android:pathData="M12,12.368C13.264,12.368 14.42,12.83 15.313,13.597C15.33,13.612 15.349,13.629 15.37,13.648L15.37,13.648C15.494,13.759 15.505,13.952 15.395,14.077C15.391,14.081 15.387,14.085 15.384,14.089L14.746,14.739C14.634,14.853 14.455,14.86 14.335,14.755C14.303,14.726 14.274,14.703 14.25,14.683C13.632,14.186 12.851,13.889 12,13.889C11.153,13.889 10.374,14.184 9.758,14.677C9.732,14.698 9.701,14.724 9.666,14.755C9.547,14.86 9.367,14.853 9.255,14.739L8.617,14.089C8.5,13.97 8.501,13.777 8.619,13.659C8.623,13.655 8.627,13.651 8.631,13.648C8.657,13.624 8.681,13.603 8.702,13.585C9.593,12.825 10.744,12.368 12,12.368Z" android:strokeAlpha="0.3" android:fillAlpha="0.3" android:fillType="evenOdd" />
<path android:fillColor="#ffffffff" android:pathData="M12,9.325C14.085,9.325 15.987,10.119 17.425,11.423C17.446,11.442 17.469,11.463 17.495,11.488L17.495,11.488C17.617,11.602 17.624,11.795 17.511,11.918C17.509,11.92 17.507,11.923 17.504,11.925L16.868,12.574C16.754,12.69 16.569,12.695 16.45,12.584C16.419,12.554 16.391,12.529 16.367,12.508C15.201,11.474 13.673,10.846 12,10.846C10.328,10.846 8.8,11.473 7.635,12.506C7.61,12.528 7.582,12.554 7.549,12.584L7.549,12.584C7.43,12.695 7.245,12.69 7.131,12.574L6.495,11.925C6.378,11.806 6.379,11.613 6.497,11.495C6.499,11.493 6.502,11.49 6.504,11.488C6.539,11.455 6.57,11.426 6.597,11.403C8.033,10.11 9.926,9.325 12,9.325Z" android:strokeAlpha="0.3" android:fillAlpha="0.3" android:fillType="evenOdd" />
<path android:fillColor="#ffffffff" android:pathData="M12,6.375C14.842,6.375 17.428,7.481 19.361,9.289C19.375,9.302 19.389,9.316 19.406,9.331L19.406,9.331C19.527,9.446 19.532,9.639 19.418,9.761C19.416,9.763 19.414,9.765 19.413,9.767L18.777,10.415C18.662,10.532 18.476,10.536 18.357,10.423C18.345,10.412 18.334,10.401 18.323,10.392C16.661,8.842 14.44,7.896 12,7.896C9.558,7.896 7.335,8.844 5.672,10.396C5.663,10.404 5.653,10.413 5.643,10.423L5.643,10.423C5.524,10.536 5.338,10.532 5.223,10.415L4.587,9.767C4.47,9.647 4.471,9.455 4.589,9.336C4.591,9.335 4.593,9.333 4.595,9.331C4.609,9.318 4.622,9.305 4.634,9.294C6.567,7.482 9.156,6.375 12,6.375Z" android:strokeAlpha="0.3" android:fillAlpha="0.3" android:fillType="evenOdd" />
<path android:fillColor="#00000000" android:pathData="M7,15.973L16.825,6" android:strokeColor="#ffffffff" android:strokeWidth="1.6" android:strokeLineCap="round" android:strokeAlpha="0.3" android:fillAlpha="0.3" />
<path android:fillColor="#00000000" android:pathData="M8.14,17.096L17.965,7.123" android:strokeColor="@color/auto_task_icon_light_blue" android:strokeWidth="1.6" android:strokeLineCap="round" android:strokeAlpha="0.3" android:fillAlpha="0.3" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_purple_primary_default" android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" />
<path android:fillColor="#ffffffff" android:pathData="M14.616,6.801H9.383C8.997,6.801 8.777,6.801 8.612,6.812C8.51,6.819 8.467,6.827 8.456,6.83C8.383,6.857 8.317,6.901 8.263,6.958C8.256,6.967 8.23,7.003 8.182,7.096C8.103,7.247 8.011,7.453 7.85,7.814L6.989,9.75H17.01L16.148,7.814C15.988,7.453 15.895,7.247 15.817,7.096C15.769,7.003 15.743,6.967 15.736,6.958C15.682,6.901 15.616,6.857 15.543,6.83C15.532,6.827 15.489,6.819 15.387,6.812C15.222,6.801 15.001,6.801 14.616,6.801ZM4.124,11.382H4.293C4.184,11.665 4.124,11.972 4.124,12.293V13.825L4.124,13.875V16.5C4.124,16.533 4.124,16.549 4.125,16.563C4.139,17.143 4.606,17.61 5.186,17.625C5.2,17.625 5.217,17.625 5.249,17.625C5.282,17.625 5.298,17.625 5.312,17.625C5.892,17.61 6.359,17.143 6.374,16.563C6.374,16.549 6.374,16.533 6.374,16.5V15.75H17.624V16.5C17.624,16.533 17.624,16.549 17.625,16.563C17.639,17.143 18.106,17.61 18.686,17.625C18.7,17.625 18.717,17.625 18.749,17.625C18.782,17.625 18.799,17.625 18.812,17.625C19.392,17.61 19.859,17.143 19.874,16.563C19.874,16.549 19.874,16.533 19.874,16.5V15.75H19.875V12.293C19.875,11.972 19.815,11.665 19.706,11.382H19.874C20.289,11.382 20.624,11.046 20.624,10.632C20.624,10.218 20.289,9.882 19.874,9.882H18.749C18.741,9.882 18.733,9.882 18.724,9.882L17.517,7.168L17.517,7.168C17.211,6.48 17.058,6.137 16.822,5.884C16.603,5.65 16.335,5.473 16.038,5.366C15.717,5.25 15.35,5.25 14.616,5.25H9.383C8.649,5.25 8.282,5.25 7.96,5.366C7.664,5.473 7.395,5.65 7.177,5.884C6.941,6.137 6.788,6.48 6.482,7.168L5.275,9.882C5.266,9.882 5.258,9.882 5.249,9.882H4.124C3.71,9.882 3.374,10.218 3.374,10.632C3.374,11.046 3.71,11.382 4.124,11.382ZM10.499,12.75C10.085,12.75 9.749,13.086 9.749,13.5C9.749,13.914 10.085,14.25 10.499,14.25H13.499C13.914,14.25 14.249,13.914 14.249,13.5C14.249,13.086 13.914,12.75 13.499,12.75H10.499ZM17.999,13.125C17.999,13.746 17.496,14.25 16.874,14.25C16.253,14.25 15.749,13.746 15.749,13.125C15.749,12.504 16.253,12 16.874,12C17.496,12 17.999,12.504 17.999,13.125ZM7.124,14.25C7.746,14.25 8.249,13.746 8.249,13.125C8.249,12.504 7.746,12 7.124,12C6.503,12 5.999,12.504 5.999,13.125C5.999,13.746 6.503,14.25 7.124,14.25Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/auto_task_icon_grey_bg" android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" />
<path android:fillColor="@color/auto_task_icon_grey" android:pathData="M14.616,6.801H9.383C8.997,6.801 8.777,6.801 8.612,6.812C8.51,6.819 8.467,6.827 8.456,6.83C8.383,6.857 8.317,6.901 8.263,6.958C8.256,6.967 8.23,7.003 8.182,7.096C8.103,7.247 8.011,7.453 7.85,7.814L6.989,9.75H17.01L16.148,7.814C15.988,7.453 15.895,7.247 15.817,7.096C15.769,7.003 15.743,6.967 15.736,6.958C15.682,6.901 15.616,6.857 15.543,6.83C15.532,6.827 15.489,6.819 15.387,6.812C15.222,6.801 15.001,6.801 14.616,6.801ZM4.124,11.382H4.293C4.184,11.665 4.124,11.972 4.124,12.293V13.825L4.124,13.875V16.5C4.124,16.533 4.124,16.549 4.125,16.563C4.139,17.143 4.606,17.61 5.186,17.625C5.2,17.625 5.217,17.625 5.249,17.625C5.282,17.625 5.298,17.625 5.312,17.625C5.892,17.61 6.359,17.143 6.374,16.563C6.374,16.549 6.374,16.533 6.374,16.5V15.75H17.624V16.5C17.624,16.533 17.624,16.549 17.625,16.563C17.639,17.143 18.106,17.61 18.686,17.625C18.7,17.625 18.717,17.625 18.749,17.625C18.782,17.625 18.799,17.625 18.812,17.625C19.392,17.61 19.859,17.143 19.874,16.563C19.874,16.549 19.874,16.533 19.874,16.5V15.75H19.875V12.293C19.875,11.972 19.815,11.665 19.706,11.382H19.874C20.289,11.382 20.624,11.046 20.624,10.632C20.624,10.218 20.289,9.882 19.874,9.882H18.749C18.741,9.882 18.733,9.882 18.724,9.882L17.517,7.168L17.517,7.168C17.211,6.48 17.058,6.137 16.822,5.884C16.603,5.65 16.335,5.473 16.038,5.366C15.717,5.25 15.35,5.25 14.616,5.25H9.383C8.649,5.25 8.282,5.25 7.96,5.366C7.664,5.473 7.395,5.65 7.177,5.884C6.941,6.137 6.788,6.48 6.482,7.168L5.275,9.882C5.266,9.882 5.258,9.882 5.249,9.882H4.124C3.71,9.882 3.374,10.218 3.374,10.632C3.374,11.046 3.71,11.382 4.124,11.382ZM10.499,12.75C10.085,12.75 9.749,13.086 9.749,13.5C9.749,13.914 10.085,14.25 10.499,14.25H13.499C13.914,14.25 14.249,13.914 14.249,13.5C14.249,13.086 13.914,12.75 13.499,12.75H10.499ZM17.999,13.125C17.999,13.746 17.496,14.25 16.874,14.25C16.253,14.25 15.749,13.746 15.749,13.125C15.749,12.504 16.253,12 16.874,12C17.496,12 17.999,12.504 17.999,13.125ZM7.124,14.25C7.746,14.25 8.249,13.746 8.249,13.125C8.249,12.504 7.746,12 7.124,12C6.503,12 5.999,12.504 5.999,13.125C5.999,13.746 6.503,14.25 7.124,14.25Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_purple_primary_default" android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" android:strokeAlpha="0.3" android:fillAlpha="0.3" />
<path android:fillColor="#ffffffff" android:pathData="M14.616,6.801H9.383C8.997,6.801 8.777,6.801 8.612,6.812C8.51,6.819 8.467,6.827 8.456,6.83C8.383,6.857 8.317,6.901 8.263,6.958C8.256,6.967 8.23,7.003 8.182,7.096C8.103,7.247 8.011,7.453 7.85,7.814L6.989,9.75H17.01L16.148,7.814C15.988,7.453 15.895,7.247 15.817,7.096C15.769,7.003 15.743,6.967 15.736,6.958C15.682,6.901 15.616,6.857 15.543,6.83C15.532,6.827 15.489,6.819 15.387,6.812C15.222,6.801 15.001,6.801 14.616,6.801ZM4.124,11.382H4.293C4.184,11.665 4.124,11.972 4.124,12.293V13.825L4.124,13.875V16.5C4.124,16.533 4.124,16.549 4.125,16.563C4.139,17.143 4.606,17.61 5.186,17.625C5.2,17.625 5.217,17.625 5.249,17.625C5.282,17.625 5.298,17.625 5.312,17.625C5.892,17.61 6.359,17.143 6.374,16.563C6.374,16.549 6.374,16.533 6.374,16.5V15.75H17.624V16.5C17.624,16.533 17.624,16.549 17.625,16.563C17.639,17.143 18.106,17.61 18.686,17.625C18.7,17.625 18.717,17.625 18.749,17.625C18.782,17.625 18.799,17.625 18.812,17.625C19.392,17.61 19.859,17.143 19.874,16.563C19.874,16.549 19.874,16.533 19.874,16.5V15.75H19.875V12.293C19.875,11.972 19.815,11.665 19.706,11.382H19.874C20.289,11.382 20.624,11.046 20.624,10.632C20.624,10.218 20.289,9.882 19.874,9.882H18.749C18.741,9.882 18.733,9.882 18.724,9.882L17.517,7.168L17.517,7.168C17.211,6.48 17.058,6.137 16.822,5.884C16.603,5.65 16.335,5.473 16.038,5.366C15.717,5.25 15.35,5.25 14.616,5.25H9.383C8.649,5.25 8.282,5.25 7.96,5.366C7.664,5.473 7.395,5.65 7.177,5.884C6.941,6.137 6.788,6.48 6.482,7.168L5.275,9.882C5.266,9.882 5.258,9.882 5.249,9.882H4.124C3.71,9.882 3.374,10.218 3.374,10.632C3.374,11.046 3.71,11.382 4.124,11.382ZM10.499,12.75C10.085,12.75 9.749,13.086 9.749,13.5C9.749,13.914 10.085,14.25 10.499,14.25H13.499C13.914,14.25 14.249,13.914 14.249,13.5C14.249,13.086 13.914,12.75 13.499,12.75H10.499ZM17.999,13.125C17.999,13.746 17.496,14.25 16.874,14.25C16.253,14.25 15.749,13.746 15.749,13.125C15.749,12.504 16.253,12 16.874,12C17.496,12 17.999,12.504 17.999,13.125ZM7.124,14.25C7.746,14.25 8.249,13.746 8.249,13.125C8.249,12.504 7.746,12 7.124,12C6.503,12 5.999,12.504 5.999,13.125C5.999,13.746 6.503,14.25 7.124,14.25Z" android:strokeAlpha="0.3" android:fillAlpha="0.3" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/color_yellow_primary_default" android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" />
<path android:fillColor="#ffffffff" android:pathData="M11.813,18C8.376,18 4.995,15.52 3.804,12.12C3.734,11.921 3.731,11.702 3.802,11.498C4.985,8.1 8.339,5.625 11.813,5.625C15.286,5.625 18.64,8.1 19.823,11.498C19.892,11.698 19.892,11.915 19.823,12.115C18.633,15.518 15.25,18 11.813,18ZM5.689,11.805C6.716,9.279 9.285,7.5 11.813,7.5C14.34,7.5 16.909,9.279 17.936,11.805C16.901,14.34 14.305,16.125 11.813,16.125C9.32,16.125 6.724,14.34 5.689,11.805ZM14.063,11.813C14.063,13.055 13.055,14.063 11.813,14.063C10.57,14.063 9.563,13.055 9.563,11.813C9.563,10.57 10.57,9.563 11.813,9.563C13.055,9.563 14.063,10.57 14.063,11.813Z" android:fillType="evenOdd" />
</vector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24.0dip" android:width="24.0dip" android:autoMirrored="true" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/auto_task_icon_grey_bg" android:pathData="M6,0L18,0A6,6 0,0 1,24 6L24,18A6,6 0,0 1,18 24L6,24A6,6 0,0 1,0 18L0,6A6,6 0,0 1,6 0z" />
<path android:fillColor="@color/auto_task_icon_grey" android:pathData="M11.813,18C8.376,18 4.995,15.52 3.804,12.12C3.734,11.921 3.731,11.702 3.802,11.498C4.985,8.1 8.339,5.625 11.813,5.625C15.286,5.625 18.64,8.1 19.823,11.498C19.892,11.698 19.892,11.915 19.823,12.115C18.633,15.518 15.25,18 11.813,18ZM5.689,11.805C6.716,9.279 9.285,7.5 11.813,7.5C14.34,7.5 16.909,9.279 17.936,11.805C16.901,14.34 14.305,16.125 11.813,16.125C9.32,16.125 6.724,14.34 5.689,11.805ZM14.063,11.813C14.063,13.055 13.055,14.063 11.813,14.063C10.57,14.063 9.563,13.055 9.563,11.813C9.563,10.57 10.57,9.563 11.813,9.563C13.055,9.563 14.063,10.57 14.063,11.813Z" android:fillType="evenOdd" />
</vector>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save