From 3887822962afb3a60d5d3aa1eb410f5e5c354390 Mon Sep 17 00:00:00 2001 From: pppscn <35696959@qq.com> Date: Tue, 7 Jun 2022 18:20:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E4=B8=8B=E6=8B=89?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E6=A1=86=E5=85=B3=E9=94=AE=E5=AD=97=E6=A8=A1?= =?UTF-8?q?=E7=B3=8A=E5=8C=B9=E9=85=8DBUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/spinner/AppListSpinnerAdapter.kt | 4 ++ .../adapter/spinner/SenderSpinnerAdapter.kt | 4 ++ .../forwarder/fragment/RulesEditFragment.kt | 41 ++++++++++--------- 3 files changed, 29 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/com/idormy/sms/forwarder/adapter/spinner/AppListSpinnerAdapter.kt b/app/src/main/java/com/idormy/sms/forwarder/adapter/spinner/AppListSpinnerAdapter.kt index 90028aa2..f3daca6b 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/adapter/spinner/AppListSpinnerAdapter.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/adapter/spinner/AppListSpinnerAdapter.kt @@ -150,4 +150,8 @@ class AppListSpinnerAdapter : BaseEditSpinnerAdapter, EditSpinnerFilter { } } } + + fun getItemSource(position: Int): T { + return mDataSource[mIndexs[position]] + } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/adapter/spinner/SenderSpinnerAdapter.kt b/app/src/main/java/com/idormy/sms/forwarder/adapter/spinner/SenderSpinnerAdapter.kt index a0ff255d..2f1477f7 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/adapter/spinner/SenderSpinnerAdapter.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/adapter/spinner/SenderSpinnerAdapter.kt @@ -160,4 +160,8 @@ class SenderSpinnerAdapter : BaseEditSpinnerAdapter, EditSpinnerFilter { } } } + + fun getItemSource(position: Int): T { + return mDataSource[mIndexs[position]] + } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/RulesEditFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/RulesEditFragment.kt index 093c81a8..0e6e471c 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/RulesEditFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/RulesEditFragment.kt @@ -42,7 +42,7 @@ import kotlinx.coroutines.launch import java.util.* @Page(name = "转发规则·编辑器") -@Suppress("PrivatePropertyName") +@Suppress("PrivatePropertyName", "CAST_NEVER_SUCCEEDS") class RulesEditFragment : BaseFragment(), View.OnClickListener, CompoundButton.OnCheckedChangeListener { private val TAG: String = RulesEditFragment::class.java.simpleName @@ -54,9 +54,11 @@ class RulesEditFragment : BaseFragment(), View.OnClic //发送通道列表 private val senderSpinnerList = ArrayList() + private lateinit var senderSpinnerAdapter: SenderSpinnerAdapter<*> //已安装App信息列表 private val appListSpinnerList = ArrayList() + private lateinit var appListSpinnerAdapter: AppListSpinnerAdapter<*> @JvmField @AutoWired(name = KEY_RULE_ID) @@ -293,14 +295,13 @@ class RulesEditFragment : BaseFragment(), View.OnClic for (sender in senderList) { senderSpinnerList.add(SenderAdapterItem(sender.name, sender.imageId, sender.id, sender.status)) } - binding!!.spSender.setAdapter( - SenderSpinnerAdapter(senderSpinnerList) - //.setTextColor(ResUtils.getColor(R.color.green)) - //.setTextSize(12F) - .setIsFilterKey(true) - .setFilterColor("#FFFF00") - .setBackgroundSelector(R.drawable.selector_custom_spinner_bg) - ) + 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 (senderId > 0) { for (sender in senderSpinnerList) { @@ -322,11 +323,11 @@ class RulesEditFragment : BaseFragment(), View.OnClic }) binding!!.spSender.setOnItemClickListener { _: AdapterView<*>, _: View, position: Int, _: Long -> try { - val sender = senderSpinnerList[position] + //val sender = senderSpinnerList[position] + val sender = senderSpinnerAdapter.getItemSource(position) as SenderAdapterItem sender.id.also { senderId = it ?: 0L } - XToastUtils.toast(sender.title) binding!!.ivSenderImage.setImageDrawable(sender.icon) binding!!.ivSenderStatus.setImageDrawable( ResUtils.getDrawable( @@ -362,17 +363,17 @@ class RulesEditFragment : BaseFragment(), View.OnClic for (appInfo in App.AppInfoList) { appListSpinnerList.add(AppListAdapterItem(appInfo.name, appInfo.icon, appInfo.packageName)) } - binding!!.spApp.setAdapter( - AppListSpinnerAdapter(appListSpinnerList) - //.setTextColor(ResUtils.getColor(R.color.green)) - //.setTextSize(12F) - .setIsFilterKey(true) - .setFilterColor("#FFFF00") - .setBackgroundSelector(R.drawable.selector_custom_spinner_bg) - ) + appListSpinnerAdapter = AppListSpinnerAdapter(appListSpinnerList) + //.setTextColor(ResUtils.getColor(R.color.green)) + //.setTextSize(12F) + .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 = appListSpinnerList[position] + //val appInfo = appListSpinnerList[position] + val appInfo = appListSpinnerAdapter.getItemSource(position) as AppListAdapterItem CommonUtils.insertOrReplaceText2Cursor(binding!!.etValue, appInfo.packageName.toString()) } catch (e: Exception) { XToastUtils.error(e.message.toString())