Added autoFitTextView.
This commit is contained in:
parent
59255cae06
commit
d7d643b94a
2 changed files with 19 additions and 7 deletions
|
@ -42,6 +42,9 @@ dependencies {
|
||||||
// https://github.com/JakeWharton/ViewPagerIndicator
|
// https://github.com/JakeWharton/ViewPagerIndicator
|
||||||
compile 'fr.avianey.com.viewpagerindicator:library:2.4.1.1@aar'
|
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
|
// https://github.com/hotchemi/PermissionsDispatcher
|
||||||
compile 'com.github.hotchemi:permissionsdispatcher:2.1.3'
|
compile 'com.github.hotchemi:permissionsdispatcher:2.1.3'
|
||||||
kapt 'com.github.hotchemi:permissionsdispatcher-processor:2.1.3'
|
kapt 'com.github.hotchemi:permissionsdispatcher-processor:2.1.3'
|
||||||
|
@ -49,6 +52,7 @@ dependencies {
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
|
maven { url "https://jitpack.io" }
|
||||||
}
|
}
|
||||||
|
|
||||||
kapt {
|
kapt {
|
||||||
|
|
|
@ -31,17 +31,21 @@ import android.text.TextUtils
|
||||||
import android.text.method.DigitsKeyListener
|
import android.text.method.DigitsKeyListener
|
||||||
import android.util.TypedValue
|
import android.util.TypedValue
|
||||||
import android.view.Gravity.*
|
import android.view.Gravity.*
|
||||||
|
import android.view.ViewManager
|
||||||
import android.view.inputmethod.EditorInfo
|
import android.view.inputmethod.EditorInfo
|
||||||
import android.view.inputmethod.InputMethodManager
|
import android.view.inputmethod.InputMethodManager
|
||||||
import android.widget.EditText
|
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.AlphaFilter
|
||||||
import net.thauvin.erik.android.tesremoteprogrammer.filters.MinMaxFilter
|
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.Option
|
||||||
import net.thauvin.erik.android.tesremoteprogrammer.models.Params
|
import net.thauvin.erik.android.tesremoteprogrammer.models.Params
|
||||||
import net.thauvin.erik.android.tesremoteprogrammer.util.Dtmf
|
import net.thauvin.erik.android.tesremoteprogrammer.util.Dtmf
|
||||||
import net.thauvin.erik.android.tesremoteprogrammer.util.plural
|
import net.thauvin.erik.android.tesremoteprogrammer.util.plural
|
||||||
import net.thauvin.erik.android.tesremoteprogrammer.widget.ScrollAwareFABBehavior
|
import net.thauvin.erik.android.tesremoteprogrammer.widget.ScrollAwareFABBehavior
|
||||||
import org.jetbrains.anko.*
|
import org.jetbrains.anko.*
|
||||||
|
import org.jetbrains.anko.custom.ankoView
|
||||||
import org.jetbrains.anko.design.coordinatorLayout
|
import org.jetbrains.anko.design.coordinatorLayout
|
||||||
import org.jetbrains.anko.design.floatingActionButton
|
import org.jetbrains.anko.design.floatingActionButton
|
||||||
import org.jetbrains.anko.design.textInputLayout
|
import org.jetbrains.anko.design.textInputLayout
|
||||||
|
@ -52,6 +56,9 @@ import java.util.*
|
||||||
|
|
||||||
@RuntimePermissions
|
@RuntimePermissions
|
||||||
class ProgrammingActivity : AppCompatActivity(), AnkoLogger {
|
class ProgrammingActivity : AppCompatActivity(), AnkoLogger {
|
||||||
|
|
||||||
|
fun ViewManager.autofitTextView(theme: Int = 0, init: AutoResizeTextView.() -> Unit) = ankoView({ AutoResizeTextView(it) }, theme, init)
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
|
@ -61,18 +68,19 @@ class ProgrammingActivity : AppCompatActivity(), AnkoLogger {
|
||||||
|
|
||||||
coordinatorLayout {
|
coordinatorLayout {
|
||||||
|
|
||||||
textView {
|
autofitTextView {
|
||||||
padding = dip(20)
|
padding = dip(20)
|
||||||
text = option.title
|
text = option.title
|
||||||
setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20f)
|
setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20f)
|
||||||
|
singleLine = true
|
||||||
|
maxLines = 1
|
||||||
typeface = Typeface.DEFAULT_BOLD
|
typeface = Typeface.DEFAULT_BOLD
|
||||||
isFocusableInTouchMode = true
|
isFocusableInTouchMode = true
|
||||||
singleLine = true
|
|
||||||
ellipsize = TextUtils.TruncateAt.END
|
ellipsize = TextUtils.TruncateAt.END
|
||||||
}
|
}.lparams(width = matchParent, height = matchParent)
|
||||||
|
|
||||||
nestedScrollView {
|
nestedScrollView {
|
||||||
topPadding = dip(55)
|
topPadding = dip(50)
|
||||||
horizontalPadding = dip(20)
|
horizontalPadding = dip(20)
|
||||||
|
|
||||||
verticalLayout {
|
verticalLayout {
|
||||||
|
@ -96,9 +104,9 @@ class ProgrammingActivity : AppCompatActivity(), AnkoLogger {
|
||||||
inputType = InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS
|
inputType = InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS
|
||||||
inputFilters.add(AlphaFilter())
|
inputFilters.add(AlphaFilter())
|
||||||
} else {
|
} else {
|
||||||
inputType = InputType.TYPE_CLASS_NUMBER
|
inputType = InputType.TYPE_CLASS_PHONE
|
||||||
keyListener = DigitsKeyListener.getInstance("0,1,2,3,4,5,6,7,8,9" +
|
inputFilters.add(NumberFilter("0123456789" +
|
||||||
if (field.hash) ",${params.hash}" else "")
|
if (field.hash) "${params.hash}" else ""))
|
||||||
if (field.max != -1 && field.min != -1) {
|
if (field.max != -1 && field.min != -1) {
|
||||||
inputFilters.add(MinMaxFilter(field.min, field.max, field.size))
|
inputFilters.add(MinMaxFilter(field.min, field.max, field.size))
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue