diff --git a/app/src/main/kotlin/com/tutpro/baresip/CodecsActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/CodecsActivity.kt index 4b8a0ea8..bdb003db 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/CodecsActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/CodecsActivity.kt @@ -68,16 +68,6 @@ class CodecsActivity : AppCompatActivity() { codecList.layoutManager = LinearLayoutManager(this) codecList.adapter = codecsAdapter - codecsAdapter.setOnItemClickListener(object : CodecsAdapter.OnItemClickListener { - @SuppressLint("NotifyDataSetChanged") - override fun onItemClick(position: Int) { - if (!newCodecs[position].enabled) { - codecsAdapter.enableItem(position) - codecsAdapter.notifyDataSetChanged() - } - } - }) - itemTouchHelper.attachToRecyclerView(binding.CodecList) codecsTitle.setOnClickListener { @@ -93,9 +83,8 @@ class CodecsActivity : AppCompatActivity() { private val itemTouchHelper by lazy { val simpleItemTouchCallback = object : ItemTouchHelper.SimpleCallback( - UP or DOWN or START or END, - RIGHT - ) { + UP or DOWN or START or END, RIGHT) { + override fun onMove( recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, @@ -108,9 +97,16 @@ class CodecsActivity : AppCompatActivity() { return true } + @SuppressLint("NotifyDataSetChanged") override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) { - codecsAdapter.removeItem(viewHolder.adapterPosition) - codecsAdapter.notifyItemRemoved(viewHolder.adapterPosition) + val position = viewHolder.adapterPosition + if (newCodecs[position].enabled) { + codecsAdapter.disableItem(position) + codecsAdapter.notifyItemRemoved(position) + } else { + codecsAdapter.enableItem(position) + codecsAdapter.notifyDataSetChanged() + } } @SuppressLint("NotifyDataSetChanged") diff --git a/app/src/main/kotlin/com/tutpro/baresip/CodecsAdapter.kt b/app/src/main/kotlin/com/tutpro/baresip/CodecsAdapter.kt index 00e162f8..059a85e6 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/CodecsAdapter.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/CodecsAdapter.kt @@ -11,19 +11,9 @@ import java.util.* class CodecsAdapter(private val codecs: ArrayList): RecyclerView.Adapter() { - private var codecListener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnItemClickListener(listener: OnItemClickListener) { - codecListener = listener - } - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CodecViewHolder { val v = LayoutInflater.from(parent.context).inflate(R.layout.codec, parent, false) - return CodecViewHolder(v, codecListener!!) + return CodecViewHolder(v) } override fun getItemCount(): Int { @@ -37,7 +27,14 @@ class CodecsAdapter(private val codecs: ArrayList): codecs.add(toPosition, codec) } - fun removeItem(position: Int) { + fun enableItem(position: Int) { + val codec: Codec = codecs[position] + codec.enabled = true + codecs.removeAt(position) + codecs.add(0, codec) + } + + fun disableItem(position: Int) { val codec: Codec = codecs[position] if (codec.enabled) { codec.enabled = false @@ -46,33 +43,17 @@ class CodecsAdapter(private val codecs: ArrayList): } } - fun enableItem(position: Int) { - val codec: Codec = codecs[position] - codec.enabled = true - codecs.removeAt(position) - codecs.add(0, codec) - } - override fun onBindViewHolder(holder: CodecViewHolder, position: Int) { val codec = codecs[position] holder.codecName.text = codec.name holder.codecName.alpha = if (codec.enabled) 1.0f else 0.5f - holder.actionImage.setImageResource( - if (codec.enabled) R.drawable.reorder else R.drawable.add + holder.reorderImage.setImageResource( + if (codec.enabled) R.drawable.reorder else android.R.color.transparent ) } - class CodecViewHolder(itemView: View, listener: OnItemClickListener): - RecyclerView.ViewHolder(itemView) { + class CodecViewHolder(itemView: View): RecyclerView.ViewHolder(itemView) { var codecName: TextView = itemView.findViewById(R.id.codecName) - var actionImage: ImageView = itemView.findViewById(R.id.actionImage) - init { - itemView.setOnClickListener { - val position = adapterPosition - if (position != RecyclerView.NO_POSITION) { - listener.onItemClick(position) - } - } - } + var reorderImage: ImageView = itemView.findViewById(R.id.reorderImage) } } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 6ed4a683..d6095741 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -240,6 +240,7 @@ android:hint="@string/dtmf" android:importantForAutofill="no" android:inputType="phone" + android:digits="0123456789#*" android:textSize="20sp" > diff --git a/app/src/main/res/layout/codec.xml b/app/src/main/res/layout/codec.xml index 6686dc4b..5d5e88c5 100644 --- a/app/src/main/res/layout/codec.xml +++ b/app/src/main/res/layout/codec.xml @@ -22,7 +22,7 @@ app:layout_constraintStart_toStartOf="parent" /> Haluatko tyhjentää tilin \'%1$s\' viestihistorian\? Audion koodausmenetelmät - Luettelo käytössä olevista audion - koodausmenetelmistä prioriteettijärjestyksessä. Ota käyttöön koskettamalla, - järjestä vetämällä ja pudottamalla, poista käytöstä pyyhkäisemällä oikealle. + Luettelo audion koodausmenetelmistä prioriteettijärjestyksessä. + Järjestä raahaamalla ja pudottamalla, ota käyttöön tai poista käytöstä pyyhkäisemällä oikealle. + Videon koodausmenetelmät - Luettelo käytössä olevista videon - koodausmenetelmistä prioriteettijärjestyksessä. Ota käyttöön koskettamalla, - järjestä vetämällä ja pudottamalla, poista käytöstä pyyhkäisemällä oikealle. - Koodausmenetelmä toiminto (ota käyttöön, järjestä, poista - käytöstä) + Luettelo videon koodausmenetelmistä prioriteettijärjestyksessä. + Järjestä raahaamalla ja pudottamalla, ota käyttöön tai poista käytöstä pyyhkäisemällä oikealle. + + Järjestä Asetukset Käynnistä automaattisesti diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fd0447f8..100fc818 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -279,12 +279,12 @@ Do you want to delete chat history of account \'%1$s\'\? Audio Codecs - List of enabled audio codecs in priority order. Click to enable, - drag to reorder, swipe right to disable. + List of audio codecs in priority order. Drag to reorder, + swipe right to enable or disable. Video Codecs - List of enabled video codecs in priority order. Click to enable, - drag to reorder, swipe right to disable. - Codec action (enable, reorder, disable) + List of video codecs in priority order. Drag to reorder, + swipe right to enable or disable. + Reorder Settings Start Automatically