Bug 1829531 - Fix the status bar color when the download prompt appears.

(cherry picked from commit 4356199b11f9f4852eb21a7a0f7214fd985d0cfe)
fenix/113.1.0
iorgamgabriel 1 year ago committed by mergify[bot]
parent 72fcb6121f
commit b4c9315f0a

@ -17,7 +17,6 @@ import android.view.accessibility.AccessibilityEvent
import android.view.accessibility.AccessibilityNodeInfo import android.view.accessibility.AccessibilityNodeInfo
import androidx.annotation.VisibleForTesting import androidx.annotation.VisibleForTesting
import androidx.coordinatorlayout.widget.CoordinatorLayout import androidx.coordinatorlayout.widget.CoordinatorLayout
import androidx.core.content.ContextCompat
import androidx.core.view.ViewCompat import androidx.core.view.ViewCompat
import androidx.core.view.children import androidx.core.view.children
import androidx.viewbinding.ViewBinding import androidx.viewbinding.ViewBinding
@ -25,8 +24,6 @@ import mozilla.components.feature.downloads.databinding.MozacDownloaderChooserPr
import mozilla.components.feature.downloads.toMegabyteOrKilobyteString import mozilla.components.feature.downloads.toMegabyteOrKilobyteString
import mozilla.components.feature.downloads.ui.DownloaderApp import mozilla.components.feature.downloads.ui.DownloaderApp
import mozilla.components.feature.downloads.ui.DownloaderAppAdapter import mozilla.components.feature.downloads.ui.DownloaderAppAdapter
import mozilla.components.support.ktx.android.view.setNavigationBarTheme
import mozilla.components.support.ktx.android.view.setStatusBarTheme
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.databinding.DialogScrimBinding import org.mozilla.fenix.databinding.DialogScrimBinding
import org.mozilla.fenix.databinding.StartDownloadDialogLayoutBinding import org.mozilla.fenix.databinding.StartDownloadDialogLayoutBinding
@ -51,12 +48,6 @@ abstract class StartDownloadDialog(
@VisibleForTesting @VisibleForTesting
internal var onDismiss: () -> Unit = {} internal var onDismiss: () -> Unit = {}
@VisibleForTesting
internal var initialNavigationBarColor = activity.window.navigationBarColor
@VisibleForTesting
internal var initialStatusBarColor = activity.window.statusBarColor
/** /**
* Show the download view. * Show the download view.
* *
@ -89,10 +80,6 @@ abstract class StartDownloadDialog(
elevation = activity.resources.getDimension(R.dimen.browser_fragment_download_dialog_elevation) elevation = activity.resources.getDimension(R.dimen.browser_fragment_download_dialog_elevation)
visibility = View.VISIBLE visibility = View.VISIBLE
} }
activity.window.setNavigationBarTheme(ContextCompat.getColor(activity, R.color.material_scrim_color))
activity.window.setStatusBarTheme(ContextCompat.getColor(activity, R.color.material_scrim_color))
return this return this
} }
@ -121,9 +108,6 @@ abstract class StartDownloadDialog(
container?.visibility = View.GONE container?.visibility = View.GONE
activity.window.setNavigationBarTheme(initialNavigationBarColor)
activity.window.setStatusBarTheme(initialStatusBarColor)
onDismiss() onDismiss()
} }

@ -6,21 +6,16 @@ package org.mozilla.fenix.downloads
import android.app.Activity import android.app.Activity
import android.content.Context import android.content.Context
import android.graphics.Color
import android.view.Gravity import android.view.Gravity
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.widget.FrameLayout import android.widget.FrameLayout
import androidx.coordinatorlayout.widget.CoordinatorLayout import androidx.coordinatorlayout.widget.CoordinatorLayout
import androidx.core.content.ContextCompat
import androidx.core.view.children import androidx.core.view.children
import androidx.core.view.isVisible import androidx.core.view.isVisible
import io.mockk.every import io.mockk.every
import io.mockk.mockk import io.mockk.mockk
import io.mockk.mockkStatic import io.mockk.mockkStatic
import io.mockk.verify
import mozilla.components.support.ktx.android.view.setNavigationBarTheme
import mozilla.components.support.ktx.android.view.setStatusBarTheme
import mozilla.components.support.test.robolectric.testContext import mozilla.components.support.test.robolectric.testContext
import org.junit.Assert.assertEquals import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse import org.junit.Assert.assertFalse
@ -37,20 +32,6 @@ import org.robolectric.Robolectric
@RunWith(FenixRobolectricTestRunner::class) @RunWith(FenixRobolectricTestRunner::class)
class StartDownloadDialogTest { class StartDownloadDialogTest {
@Test
fun `WHEN the dialog is instantiated THEN cache the navigation and status bar colors`() {
val navigationBarColor = Color.RED
val statusBarColor = Color.BLUE
val activity: Activity = mockk {
every { window.navigationBarColor } returns navigationBarColor
every { window.statusBarColor } returns statusBarColor
}
val dialog = TestDownloadDialog(activity)
assertEquals(navigationBarColor, dialog.initialNavigationBarColor)
assertEquals(statusBarColor, dialog.initialStatusBarColor)
}
@Test @Test
fun `WHEN the view is to be shown THEN set the scrim and other window customization bind the download values`() { fun `WHEN the view is to be shown THEN set the scrim and other window customization bind the download values`() {
val activity = Robolectric.buildActivity(Activity::class.java).create().get() val activity = Robolectric.buildActivity(Activity::class.java).create().get()
@ -78,10 +59,6 @@ class StartDownloadDialogTest {
dialogContainer.elevation, dialogContainer.elevation,
) )
assertTrue(dialogContainer.isVisible) assertTrue(dialogContainer.isVisible)
verify {
activity.window.setNavigationBarTheme(ContextCompat.getColor(activity, R.color.material_scrim_color))
activity.window.setStatusBarTheme(ContextCompat.getColor(activity, R.color.material_scrim_color))
}
assertEquals(dialog, fluentDialog) assertEquals(dialog, fluentDialog)
} }
} }
@ -119,10 +96,6 @@ class StartDownloadDialogTest {
assertTrue(dialogParent.childCount == 1) assertTrue(dialogParent.childCount == 1)
assertTrue(dialogContainer.childCount == 0) assertTrue(dialogContainer.childCount == 0)
assertFalse(dialogContainer.isVisible) assertFalse(dialogContainer.isVisible)
verify {
activity.window.setNavigationBarTheme(dialog.initialNavigationBarColor)
activity.window.setStatusBarTheme(dialog.initialStatusBarColor)
}
} }
} }

Loading…
Cancel
Save