From 02d170a5b49cfb08a5b83282c2e3e78110c1fff7 Mon Sep 17 00:00:00 2001 From: "codrut.topliceanu" Date: Wed, 7 Jul 2021 17:31:09 +0300 Subject: [PATCH] [fenix] For https://github.com/mozilla-mobile/fenix/issues/20257 - Sets min no. of grid columns to 2 in TabsTray --- .../org/mozilla/fenix/tabstray/ext/Context.kt | 2 +- .../DefaultBrowserTrayInteractorTest.kt | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/ext/Context.kt b/app/src/main/java/org/mozilla/fenix/tabstray/ext/Context.kt index 82f522ec66..1beff26775 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/ext/Context.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/ext/Context.kt @@ -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) } diff --git a/app/src/test/java/org/mozilla/fenix/tabstray/browser/DefaultBrowserTrayInteractorTest.kt b/app/src/test/java/org/mozilla/fenix/tabstray/browser/DefaultBrowserTrayInteractorTest.kt index 41922e4315..cbb916abd7 100644 --- a/app/src/test/java/org/mozilla/fenix/tabstray/browser/DefaultBrowserTrayInteractorTest.kt +++ b/app/src/test/java/org/mozilla/fenix/tabstray/browser/DefaultBrowserTrayInteractorTest.kt @@ -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() + val resources = mockk() + val displayMetrics = spyk { + widthPixels = 1 + density = 1f + } + every { context.resources } returns resources + every { resources.displayMetrics } returns displayMetrics + + val result = context.numberOfGridColumns + + assertEquals(2, result) + } }