Browse Source

maybeSetAdditionalPadding -> additionalPaddingForFont, fix formatting, add kdoc. additionalPaddingForFont doesn't need a height parameter, can just use measuredHeight. Part of #1936.

Aidan Follestad 5 years ago
parent
commit
985e16176a

+ 4 - 7
core/src/main/java/com/afollestad/materialdialogs/internal/main/DialogTitleLayout.kt

@@ -28,8 +28,8 @@ import android.widget.TextView
 import androidx.annotation.RestrictTo
 import androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP
 import com.afollestad.materialdialogs.R
+import com.afollestad.materialdialogs.utils.MDUtil.additionalPaddingForFont
 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
@@ -92,10 +92,7 @@ class DialogTitleLayout(
     val requiredHeight = iconViewHeight.coerceAtLeast(titleView.measuredHeight)
     val actualHeight = requiredHeight + frameMarginVertical + titleMarginBottom
 
-    setMeasuredDimension(
-        parentWidth,
-        actualHeight
-    )
+    setMeasuredDimension(parentWidth, actualHeight)
   }
 
   override fun onLayout(
@@ -114,8 +111,8 @@ class DialogTitleLayout(
 
     val titleHalfHeight = titleView.measuredHeight / 2
     val titleTop = contentMidPoint - titleHalfHeight
-    val titleBottom = contentMidPoint + titleHalfHeight
-    + titleView.maybeSetAdditionalPadding(titleView.measuredHeight)
+    val titleBottom = contentMidPoint + titleHalfHeight +
+        titleView.additionalPaddingForFont()
     var titleLeft: Int
     var titleRight: Int
 

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

@@ -234,10 +234,14 @@ object MDUtil {
     }
   }
 
-  @RestrictTo(LIBRARY_GROUP) fun TextView.maybeSetAdditionalPadding(height: Int): Int {
+  /**
+   * See [https://github.com/afollestad/material-dialogs/issues/1936]. Calculates additional
+   * spacing required to prevent a given [TextView] from being cut off at the bottom.
+   */
+  @RestrictTo(LIBRARY_GROUP) fun TextView.additionalPaddingForFont(): Int {
     val fm = paint.fontMetrics
     val textHeight = fm.descent - fm.ascent
-    return if (textHeight > height) (textHeight - height).toInt() else 0
+    return if (textHeight > measuredHeight) (textHeight - measuredHeight).toInt() else 0
   }
 
   @RestrictTo(LIBRARY_GROUP) inline fun Int?.ifNotZero(block: (value: Int) -> Unit) {