|
|
|
@ -6,7 +6,6 @@
|
|
|
|
|
|
|
|
|
|
package org.mozilla.fenix.home.pocket
|
|
|
|
|
|
|
|
|
|
import android.content.res.Configuration
|
|
|
|
|
import android.graphics.Rect
|
|
|
|
|
import android.net.Uri
|
|
|
|
|
import androidx.annotation.FloatRange
|
|
|
|
@ -40,7 +39,6 @@ import androidx.compose.ui.graphics.Color
|
|
|
|
|
import androidx.compose.ui.layout.LayoutCoordinates
|
|
|
|
|
import androidx.compose.ui.layout.boundsInWindow
|
|
|
|
|
import androidx.compose.ui.layout.onGloballyPositioned
|
|
|
|
|
import androidx.compose.ui.platform.LocalConfiguration
|
|
|
|
|
import androidx.compose.ui.platform.LocalContext
|
|
|
|
|
import androidx.compose.ui.platform.LocalDensity
|
|
|
|
|
import androidx.compose.ui.platform.LocalView
|
|
|
|
@ -69,7 +67,6 @@ import mozilla.components.service.pocket.PocketStory.PocketSponsoredStoryShim
|
|
|
|
|
import org.mozilla.fenix.R
|
|
|
|
|
import org.mozilla.fenix.compose.ClickableSubstringLink
|
|
|
|
|
import org.mozilla.fenix.compose.EagerFlingBehavior
|
|
|
|
|
import org.mozilla.fenix.compose.ITEM_WIDTH
|
|
|
|
|
import org.mozilla.fenix.compose.ListItemTabLarge
|
|
|
|
|
import org.mozilla.fenix.compose.ListItemTabLargePlaceholder
|
|
|
|
|
import org.mozilla.fenix.compose.ListItemTabSurface
|
|
|
|
@ -274,20 +271,12 @@ fun PocketStories(
|
|
|
|
|
val listState = rememberLazyListState()
|
|
|
|
|
val flingBehavior = EagerFlingBehavior(lazyRowState = listState)
|
|
|
|
|
|
|
|
|
|
val configuration = LocalConfiguration.current
|
|
|
|
|
val screenWidth = configuration.screenWidthDp.dp
|
|
|
|
|
|
|
|
|
|
val endPadding =
|
|
|
|
|
remember { mutableStateOf(endPadding(configuration, screenWidth, contentPadding)) }
|
|
|
|
|
// Force recomposition as padding is not consistently updated when orientation has changed.
|
|
|
|
|
endPadding.value = endPadding(configuration, screenWidth, contentPadding)
|
|
|
|
|
|
|
|
|
|
LazyRow(
|
|
|
|
|
modifier = Modifier.semantics {
|
|
|
|
|
testTagsAsResourceId = true
|
|
|
|
|
testTag = "pocket.stories"
|
|
|
|
|
},
|
|
|
|
|
contentPadding = PaddingValues(start = contentPadding, end = endPadding.value),
|
|
|
|
|
contentPadding = PaddingValues(horizontal = contentPadding),
|
|
|
|
|
state = listState,
|
|
|
|
|
flingBehavior = flingBehavior,
|
|
|
|
|
horizontalArrangement = Arrangement.spacedBy(8.dp),
|
|
|
|
@ -341,16 +330,6 @@ fun PocketStories(
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun endPadding(configuration: Configuration, screenWidth: Dp, contentPadding: Dp) =
|
|
|
|
|
if (configuration.orientation == Configuration.ORIENTATION_PORTRAIT) {
|
|
|
|
|
alignColumnToTitlePadding(screenWidth = screenWidth, contentPadding = contentPadding)
|
|
|
|
|
} else {
|
|
|
|
|
contentPadding
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun alignColumnToTitlePadding(screenWidth: Dp, contentPadding: Dp) =
|
|
|
|
|
screenWidth - (ITEM_WIDTH.dp + contentPadding)
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Add a callback for when this Composable is "shown" on the screen.
|
|
|
|
|
* This checks whether the composable has at least [threshold] ratio of it's total area drawn inside
|
|
|
|
|