From d7d643b94a953c6651022ef8dcc6eea124dcac0c Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Fri, 26 Aug 2016 22:31:17 -0700 Subject: [PATCH] Added autoFitTextView. --- app/build.gradle | 4 ++++ .../ProgrammingActivity.kt | 22 +++++++++++++------ 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 4ccf0d1..79deb83 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -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 { diff --git a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/ProgrammingActivity.kt b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/ProgrammingActivity.kt index 30fae8d..0334ae7 100644 --- a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/ProgrammingActivity.kt +++ b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/ProgrammingActivity.kt @@ -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)) }