1
0
Fork 0

For #6763 - Fix early view access

master
Tiger Oakes 2019-11-22 22:27:33 -08:00 committed by Christian Sadilek
parent 4cfbaf2dc4
commit cd3e077bc9
3 changed files with 12 additions and 10 deletions

View File

@ -12,7 +12,6 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.Button import android.widget.Button
import android.widget.RadioButton import android.widget.RadioButton
import androidx.appcompat.widget.AppCompatImageView
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.lifecycle.Observer import androidx.lifecycle.Observer
import androidx.transition.TransitionInflater import androidx.transition.TransitionInflater
@ -121,12 +120,10 @@ class BrowserFragment : BaseBrowserFragment(), BackHandler {
val toolbarSessionObserver = TrackingProtectionOverlay( val toolbarSessionObserver = TrackingProtectionOverlay(
context = requireContext(), context = requireContext(),
settings = requireContext().settings(), settings = requireContext().settings()
toolbar = browserToolbarView.view, ) {
trackingProtectionIcon = browserToolbarView browserToolbarView.view
.view }
.findViewById<AppCompatImageView>(R.id.mozac_browser_toolbar_tracking_protection_indicator)
)
getSessionById()?.register(toolbarSessionObserver, this, autoPause = true) getSessionById()?.register(toolbarSessionObserver, this, autoPause = true)
} }

View File

@ -27,8 +27,7 @@ import org.mozilla.fenix.utils.Settings
class TrackingProtectionOverlay( class TrackingProtectionOverlay(
private val context: Context, private val context: Context,
private val settings: Settings, private val settings: Settings,
private val toolbar: View, private val getToolbar: () -> View
private val trackingProtectionIcon: View
) : Session.Observer { ) : Session.Observer {
override fun onLoadingStateChanged(session: Session, loading: Boolean) { override fun onLoadingStateChanged(session: Session, loading: Boolean) {
@ -74,6 +73,10 @@ class TrackingProtectionOverlay(
val containerHeight = layout.measuredHeight val containerHeight = layout.measuredHeight
val triangleHeight = context.getDimenInDip(R.dimen.tp_onboarding_triangle_height).toInt() val triangleHeight = context.getDimenInDip(R.dimen.tp_onboarding_triangle_height).toInt()
val toolbar = getToolbar()
val trackingProtectionIcon: View =
toolbar.findViewById(R.id.mozac_browser_toolbar_tracking_protection_indicator)
val xOffset = context.resources.getDimensionPixelSize(R.dimen.tp_onboarding_x_offset) val xOffset = context.resources.getDimensionPixelSize(R.dimen.tp_onboarding_x_offset)
// Positioning the popup above the tp anchor. // Positioning the popup above the tp anchor.

View File

@ -15,6 +15,7 @@ import mozilla.components.support.test.robolectric.testContext
import org.junit.Before import org.junit.Before
import org.junit.Test import org.junit.Test
import org.junit.runner.RunWith import org.junit.runner.RunWith
import org.mozilla.fenix.R
import org.mozilla.fenix.TestApplication import org.mozilla.fenix.TestApplication
import org.mozilla.fenix.utils.Settings import org.mozilla.fenix.utils.Settings
import org.robolectric.RobolectricTestRunner import org.robolectric.RobolectricTestRunner
@ -39,7 +40,8 @@ class TrackingProtectionOverlayTest {
icon = mockk(relaxed = true) icon = mockk(relaxed = true)
session = mockk(relaxed = true) session = mockk(relaxed = true)
overlay = TrackingProtectionOverlay(context, settings, toolbar, icon) overlay = TrackingProtectionOverlay(context, settings) { toolbar }
every { toolbar.findViewById<View>(R.id.mozac_browser_toolbar_tracking_protection_indicator) } returns icon
} }
@Test @Test