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
+1 -1
View File
@@ -11,7 +11,7 @@ android {
applicationId "com.denizk0461.textbasic" applicationId "com.denizk0461.textbasic"
minSdk 23 minSdk 23
targetSdk 33 targetSdk 33
versionCode 6 versionCode 7
versionName "2.0.0" versionName "2.0.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+20
View File
@@ -0,0 +1,20 @@
{
"version": 3,
"artifactType": {
"type": "APK",
"kind": "Directory"
},
"applicationId": "com.denizk0461.textbasic",
"variantName": "release",
"elements": [
{
"type": "SINGLE",
"filters": [],
"attributes": [],
"versionCode": 6,
"versionName": "2.0.0",
"outputFile": "app-release.apk"
}
],
"elementType": "File"
}
@@ -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.util.TypedValue
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.ArrayAdapter
import android.widget.ImageButton import android.widget.ImageButton
import android.widget.TextView import android.widget.TextView
import androidx.annotation.ColorInt import androidx.annotation.ColorInt
@@ -16,6 +15,7 @@ import androidx.annotation.StringRes
import androidx.transition.TransitionManager import androidx.transition.TransitionManager
import com.denizd.textbasic.BuildConfig import com.denizd.textbasic.BuildConfig
import com.denizd.textbasic.R import com.denizd.textbasic.R
import com.denizd.textbasic.adapter.DropdownAdapter
import com.denizd.textbasic.databinding.FragmentSettingsNewBinding import com.denizd.textbasic.databinding.FragmentSettingsNewBinding
import com.denizd.textbasic.db.QuoteStorage import com.denizd.textbasic.db.QuoteStorage
import com.denizd.textbasic.sheet.TextSheet import com.denizd.textbasic.sheet.TextSheet
@@ -41,10 +41,9 @@ class SettingsNewFragment : BaseFragment(R.layout.fragment_settings_new) {
storage = QuoteStorage.getInstance(context) storage = QuoteStorage.getInstance(context)
// --- text font --- // // --- text font --- //
val fontAdapter = ArrayAdapter.createFromResource( val fontAdapter = DropdownAdapter(
context, context,
R.array.text_fonts, context.resources.getStringArray(R.array.text_fonts).toList(),
R.layout.item_dropdown,
) )
binding.autoCompleteFont.setAdapter(fontAdapter) 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_constraintBottom_toBottomOf="parent"
ads:layout_constraintStart_toStartOf="parent" ads:layout_constraintStart_toStartOf="parent"
ads:layout_constraintEnd_toEndOf="parent"/> ads:layout_constraintEnd_toEndOf="parent"/>
<!-- ads:adUnitId="ca-app-pub-6028283326987089/7147449316"-->
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>