[fenix] For https://github.com/mozilla-mobile/fenix/issues/20257 - Sets min no. of grid columns to 2 in TabsTray

pull/600/head
codrut.topliceanu 3 years ago committed by mergify[bot]
parent ae19555d25
commit 02d170a5b4

@ -15,5 +15,5 @@ internal val Context.numberOfGridColumns: Int
get() {
val displayMetrics = resources.displayMetrics
val screenWidthDp = displayMetrics.widthPixels / displayMetrics.density
return (screenWidthDp / MIN_COLUMN_WIDTH_DP).toInt()
return (screenWidthDp / MIN_COLUMN_WIDTH_DP).toInt().coerceAtLeast(2)
}

@ -5,10 +5,13 @@
package org.mozilla.fenix.tabstray.browser
import android.content.Context
import android.content.res.Resources
import android.util.DisplayMetrics
import androidx.recyclerview.widget.GridLayoutManager
import io.mockk.every
import io.mockk.mockk
import io.mockk.mockkStatic
import io.mockk.spyk
import io.mockk.unmockkStatic
import org.junit.After
import org.junit.Assert.assertEquals
@ -79,4 +82,20 @@ class DefaultBrowserTrayInteractorTest {
// Should NOT be 4.
assertEquals(1, (result as GridLayoutManager).spanCount)
}
@Test
fun `WHEN screen density is very low THEN numberOfGridColumns will still be a minimum of 2`() {
val context = mockk<Context>()
val resources = mockk<Resources>()
val displayMetrics = spyk<DisplayMetrics> {
widthPixels = 1
density = 1f
}
every { context.resources } returns resources
every { resources.displayMetrics } returns displayMetrics
val result = context.numberOfGridColumns
assertEquals(2, result)
}
}

Loading…
Cancel
Save