Coverage Summary for Class: InAppImageView (cloud.mindbox.mobile_sdk.inapp.presentation.view)

Class Method, % Branch, % Line, % Instruction, %
InAppImageView 0% (0/3) 0% (0/2) 0% (0/17) 0% (0/77)
InAppImageView$Companion
InAppImageView$prepareViewForModalWindow$2 0% (0/1) 0% (0/5) 0% (0/50)
Total 0% (0/4) 0% (0/2) 0% (0/22) 0% (0/127)


 package cloud.mindbox.mobile_sdk.inapp.presentation.view
 
 import android.content.Context
 import androidx.appcompat.widget.AppCompatImageView
 import androidx.constraintlayout.widget.ConstraintLayout
 import androidx.constraintlayout.widget.ConstraintSet
 import androidx.core.view.updateLayoutParams
 import cloud.mindbox.mobile_sdk.dp
 import cloud.mindbox.mobile_sdk.inapp.domain.models.Size
 import kotlin.math.roundToInt
 
 internal class InAppImageView(context: Context) : AppCompatImageView(context) {
 
     companion object {
         private const val MODAL_WINDOW_ASPECT_RATIO = "H,3:4"
     }
 
     init {
         id = generateViewId()
     }
 
     fun prepareViewForSnackBar(size: Size, marginStart: Int, marginEnd: Int) {
         val oneThirdScreenHeight = resources.displayMetrics.heightPixels / 3
         val desiredHeight =
             (((resources.displayMetrics.widthPixels.toDouble() - marginStart.toDouble() - marginEnd.toDouble()) / (size.width.toDouble())) * size.height).roundToInt()
         layoutParams = ConstraintLayout.LayoutParams(
             ConstraintLayout.LayoutParams.MATCH_PARENT,
             if (desiredHeight > oneThirdScreenHeight) oneThirdScreenHeight else desiredHeight
         )
         scaleType = ScaleType.CENTER_CROP
     }
 
     fun prepareViewForModalWindow(currentDialog: InAppConstraintLayout) {
         updateLayoutParams {
             width = 0.dp
             height = 0.dp
         }
         scaleType = ScaleType.CENTER_CROP
         currentDialog.updateConstraints {
             setDimensionRatio(id, MODAL_WINDOW_ASPECT_RATIO)
             connect(id, ConstraintSet.TOP, currentDialog.id, ConstraintSet.TOP, 0)
             connect(id, ConstraintSet.END, currentDialog.id, ConstraintSet.END, 0)
             connect(id, ConstraintSet.START, currentDialog.id, ConstraintSet.START, 0)
             connect(id, ConstraintSet.BOTTOM, currentDialog.id, ConstraintSet.BOTTOM, 0)
         }
     }
 }