Text Basic 2.0.0: quick fix on the dropdown menu, implemented a custom DropdownAdapter.kt because a bug on the dropdown menus from years ago still has not been fixed... I encountered this bug in a project back in 2019. How is this still a thing?

This commit is contained in:
denizk0461
2023-05-17 10:22:55 +02:00
parent 5636f1e679
commit 447ca4ecb2
10 changed files with 59 additions and 5 deletions
@@ -0,0 +1,18 @@
package com.denizd.textbasic.adapter
import android.content.Context
import android.widget.ArrayAdapter
import android.widget.Filter
import com.denizd.textbasic.R
class DropdownAdapter(context: Context, items: List<String>)
: ArrayAdapter<String>(context, R.layout.item_dropdown, items) {
private val noOpFilter = object : Filter() {
private val noOpResult = FilterResults()
override fun performFiltering(constraint: CharSequence?) = noOpResult
override fun publishResults(constraint: CharSequence?, results: FilterResults?) {}
}
override fun getFilter() = noOpFilter
}
@@ -8,7 +8,6 @@ import android.os.Bundle
import android.util.TypedValue
import android.view.View
import android.view.ViewGroup
import android.widget.ArrayAdapter
import android.widget.ImageButton
import android.widget.TextView
import androidx.annotation.ColorInt
@@ -16,6 +15,7 @@ import androidx.annotation.StringRes
import androidx.transition.TransitionManager
import com.denizd.textbasic.BuildConfig
import com.denizd.textbasic.R
import com.denizd.textbasic.adapter.DropdownAdapter
import com.denizd.textbasic.databinding.FragmentSettingsNewBinding
import com.denizd.textbasic.db.QuoteStorage
import com.denizd.textbasic.sheet.TextSheet
@@ -41,10 +41,9 @@ class SettingsNewFragment : BaseFragment(R.layout.fragment_settings_new) {
storage = QuoteStorage.getInstance(context)
// --- text font --- //
val fontAdapter = ArrayAdapter.createFromResource(
val fontAdapter = DropdownAdapter(
context,
R.array.text_fonts,
R.layout.item_dropdown,
context.resources.getStringArray(R.array.text_fonts).toList(),
)
binding.autoCompleteFont.setAdapter(fontAdapter)
@@ -0,0 +1,16 @@
package com.denizd.textbasic.view
import android.content.Context
import android.util.AttributeSet
import com.google.android.material.textfield.MaterialAutoCompleteTextView
class ExposedDropdownMenu @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0,
) : MaterialAutoCompleteTextView(context, attrs, defStyleAttr) {
override fun getFreezesText(): Boolean {
return false
}
}
@@ -41,5 +41,6 @@
ads:layout_constraintBottom_toBottomOf="parent"
ads:layout_constraintStart_toStartOf="parent"
ads:layout_constraintEnd_toEndOf="parent"/>
<!-- ads:adUnitId="ca-app-pub-6028283326987089/7147449316"-->
</androidx.constraintlayout.widget.ConstraintLayout>