Added autoFitTextView.

This commit is contained in:
Erik C. Thauvin 2016-08-26 22:31:17 -07:00
parent 59255cae06
commit d7d643b94a
2 changed files with 19 additions and 7 deletions

View file

@ -42,6 +42,9 @@ dependencies {
// https://github.com/JakeWharton/ViewPagerIndicator
compile 'fr.avianey.com.viewpagerindicator:library:2.4.1.1@aar'
// https://github.com/AndroidDeveloperLB/AutoFitTextView
compile 'com.github.AndroidDeveloperLB:AutoFitTextView:3'
// https://github.com/hotchemi/PermissionsDispatcher
compile 'com.github.hotchemi:permissionsdispatcher:2.1.3'
kapt 'com.github.hotchemi:permissionsdispatcher-processor:2.1.3'
@ -49,6 +52,7 @@ dependencies {
repositories {
mavenCentral()
maven { url "https://jitpack.io" }
}
kapt {

View file

@ -31,17 +31,21 @@ import android.text.TextUtils
import android.text.method.DigitsKeyListener
import android.util.TypedValue
import android.view.Gravity.*
import android.view.ViewManager
import android.view.inputmethod.EditorInfo
import android.view.inputmethod.InputMethodManager
import android.widget.EditText
import com.lb.auto_fit_textview.AutoResizeTextView
import net.thauvin.erik.android.tesremoteprogrammer.filters.AlphaFilter
import net.thauvin.erik.android.tesremoteprogrammer.filters.MinMaxFilter
import net.thauvin.erik.android.tesremoteprogrammer.filters.NumberFilter
import net.thauvin.erik.android.tesremoteprogrammer.models.Option
import net.thauvin.erik.android.tesremoteprogrammer.models.Params
import net.thauvin.erik.android.tesremoteprogrammer.util.Dtmf
import net.thauvin.erik.android.tesremoteprogrammer.util.plural
import net.thauvin.erik.android.tesremoteprogrammer.widget.ScrollAwareFABBehavior
import org.jetbrains.anko.*
import org.jetbrains.anko.custom.ankoView
import org.jetbrains.anko.design.coordinatorLayout
import org.jetbrains.anko.design.floatingActionButton
import org.jetbrains.anko.design.textInputLayout
@ -52,6 +56,9 @@ import java.util.*
@RuntimePermissions
class ProgrammingActivity : AppCompatActivity(), AnkoLogger {
fun ViewManager.autofitTextView(theme: Int = 0, init: AutoResizeTextView.() -> Unit) = ankoView({ AutoResizeTextView(it) }, theme, init)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@ -61,18 +68,19 @@ class ProgrammingActivity : AppCompatActivity(), AnkoLogger {
coordinatorLayout {
textView {
autofitTextView {
padding = dip(20)
text = option.title
setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20f)
singleLine = true
maxLines = 1
typeface = Typeface.DEFAULT_BOLD
isFocusableInTouchMode = true
singleLine = true
ellipsize = TextUtils.TruncateAt.END
}
}.lparams(width = matchParent, height = matchParent)
nestedScrollView {
topPadding = dip(55)
topPadding = dip(50)
horizontalPadding = dip(20)
verticalLayout {
@ -96,9 +104,9 @@ class ProgrammingActivity : AppCompatActivity(), AnkoLogger {
inputType = InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS
inputFilters.add(AlphaFilter())
} else {
inputType = InputType.TYPE_CLASS_NUMBER
keyListener = DigitsKeyListener.getInstance("0,1,2,3,4,5,6,7,8,9" +
if (field.hash) ",${params.hash}" else "")
inputType = InputType.TYPE_CLASS_PHONE
inputFilters.add(NumberFilter("0123456789" +
if (field.hash) "${params.hash}" else ""))
if (field.max != -1 && field.min != -1) {
inputFilters.add(MinMaxFilter(field.min, field.max, field.size))
}