Browse Source

Custom fonts: Fix title being cut off, resolves #1936 (#1944)

Enrico D'Ortenzio 5 years ago
parent
commit
e28453bce8

+ 2 - 0
core/src/main/java/com/afollestad/materialdialogs/internal/main/DialogTitleLayout.kt

@@ -29,6 +29,7 @@ import androidx.annotation.RestrictTo
 import androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP
 import com.afollestad.materialdialogs.R
 import com.afollestad.materialdialogs.utils.MDUtil.dimenPx
+import com.afollestad.materialdialogs.utils.MDUtil.maybeSetAdditionalPadding
 import com.afollestad.materialdialogs.utils.isNotVisible
 import com.afollestad.materialdialogs.utils.isRtl
 import com.afollestad.materialdialogs.utils.isVisible
@@ -114,6 +115,7 @@ class DialogTitleLayout(
     val titleHalfHeight = titleView.measuredHeight / 2
     val titleTop = contentMidPoint - titleHalfHeight
     val titleBottom = contentMidPoint + titleHalfHeight
+    + titleView.maybeSetAdditionalPadding(titleView.measuredHeight)
     var titleLeft: Int
     var titleRight: Int
 

+ 6 - 0
core/src/main/java/com/afollestad/materialdialogs/utils/MDUtil.kt

@@ -234,6 +234,12 @@ object MDUtil {
     }
   }
 
+  @RestrictTo(LIBRARY_GROUP) fun TextView.maybeSetAdditionalPadding(height: Int): Int {
+    val fm = paint.fontMetrics
+    val textHeight = fm.descent - fm.ascent
+    return if (textHeight > height) (textHeight - height).toInt() else 0
+  }
+
   @RestrictTo(LIBRARY_GROUP) inline fun Int?.ifNotZero(block: (value: Int) -> Unit) {
     if (this != null && this != 0) {
       block(this)