Skip to content

Commit aea51ea

Browse files
committed
Merge branch 'trunk' into issue/16202-remove-msd-default-tab-expr
2 parents 9dbbe8e + 670bce1 commit aea51ea

5 files changed

Lines changed: 24 additions & 16 deletions

File tree

RELEASE-NOTES.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
20.5
44
-----
5+
* [*] Use larger thumbnail previews for recommended themes during site creation [https://github.com/wordpress-mobile/WordPress-Android/pull/16848]
56

67

78
20.4

WordPress/src/main/java/org/wordpress/android/ui/sitecreation/theme/SiteDesignRecommendedDimensionProvider.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,9 @@ class SiteDesignRecommendedDimensionProvider @Inject constructor(private val con
1515

1616
override val rowHeight: Int
1717
get() = contextProvider.getContext().resources.getDimensionPixelSize(dimen.hpp_recommended_row_height)
18+
19+
// For larger images, we must provide a scale of 2.0 to the API due to a limitation in MShots and our endpoint
20+
// integration (currently, MShots only supports a scale value of 1 or 2).
21+
override val scale: Double
22+
get() = if (1f < contextProvider.getContext().resources.displayMetrics.density) 2.0 else 1.0
1823
}

WordPress/src/main/java/org/wordpress/android/ui/sitecreation/usecases/FetchHomePageLayoutsUseCase.kt

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import org.wordpress.android.fluxc.generated.ThemeActionBuilder
77
import org.wordpress.android.fluxc.store.ThemeStore
88
import org.wordpress.android.fluxc.store.ThemeStore.FetchStarterDesignsPayload
99
import org.wordpress.android.fluxc.store.ThemeStore.OnStarterDesignsFetched
10-
import org.wordpress.android.ui.sitecreation.theme.SiteDesignPickerDimensionProvider
10+
import org.wordpress.android.ui.sitecreation.theme.SiteDesignRecommendedDimensionProvider
1111
import org.wordpress.android.util.config.BetaSiteDesignsFeatureConfig
1212
import javax.inject.Inject
1313
import kotlin.coroutines.Continuation
@@ -17,7 +17,7 @@ import kotlin.coroutines.suspendCoroutine
1717
class FetchHomePageLayoutsUseCase @Inject constructor(
1818
val dispatcher: Dispatcher,
1919
@Suppress("unused") val themeStore: ThemeStore,
20-
private val thumbDimensionProvider: SiteDesignPickerDimensionProvider,
20+
private val thumbDimensionProvider: SiteDesignRecommendedDimensionProvider,
2121
private val betaSiteDesigns: BetaSiteDesignsFeatureConfig
2222
) {
2323
enum class GROUP(val key: String) {
@@ -31,16 +31,18 @@ class FetchHomePageLayoutsUseCase @Inject constructor(
3131
if (continuation != null) {
3232
throw IllegalStateException("Fetch already in progress.")
3333
}
34-
val payload = if (betaSiteDesigns.isEnabled()) FetchStarterDesignsPayload(
35-
thumbDimensionProvider.previewWidth.toFloat(),
36-
thumbDimensionProvider.previewHeight.toFloat(),
37-
thumbDimensionProvider.scale.toFloat(),
38-
GROUP.STABLE.key, GROUP.BETA.key
39-
) else FetchStarterDesignsPayload(
40-
thumbDimensionProvider.previewWidth.toFloat(),
41-
thumbDimensionProvider.previewHeight.toFloat(),
42-
thumbDimensionProvider.scale.toFloat()
43-
)
34+
35+
val previewScale = thumbDimensionProvider.scale.toFloat()
36+
// Since dimensions are scaled in the WPCOM endpoint for MShots, we divide by the scale factor here to avoid
37+
// having the dimensions scaled twice.
38+
@Suppress("ForbiddenComment")
39+
// TODO: revisit this after the endpoint is modified to scale on the client instead.
40+
val previewWidth = thumbDimensionProvider.previewWidth.toFloat() / previewScale
41+
val previewHeight = thumbDimensionProvider.previewHeight.toFloat() / previewScale
42+
val groups = if (betaSiteDesigns.isEnabled()) arrayOf(GROUP.STABLE.key, GROUP.BETA.key) else emptyArray()
43+
@Suppress("SpreadOperator")
44+
val payload = FetchStarterDesignsPayload(previewWidth, previewHeight, previewScale, *groups)
45+
4446
return suspendCoroutine { cont ->
4547
continuation = cont
4648
dispatcher.dispatch(ThemeActionBuilder.newFetchStarterDesignsAction(payload))

WordPress/src/main/res/values/dimens.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -663,9 +663,9 @@
663663
<dimen name="hpp_layout_card_height">260dp</dimen>
664664
<dimen name="hpp_layout_card_width">200dp</dimen>
665665
<dimen name="hpp_layouts_row_height">330dp</dimen>
666-
<dimen name="hpp_recommended_card_height">260dp</dimen>
667-
<dimen name="hpp_recommended_card_width">200dp</dimen>
668-
<dimen name="hpp_recommended_row_height">350dp</dimen>
666+
<dimen name="hpp_recommended_card_height">416dp</dimen>
667+
<dimen name="hpp_recommended_card_width">320dp</dimen>
668+
<dimen name="hpp_recommended_row_height">500dp</dimen>
669669
<dimen name="hpp_recommended_subtitle_margin">5dp</dimen>
670670

671671
<!-- Site Intent Question -->

WordPress/src/test/java/org/wordpress/android/ui/sitecreation/theme/FetchHomePageLayoutsUseCaseTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class FetchHomePageLayoutsUseCaseTest {
3232

3333
@Mock lateinit var dispatcher: Dispatcher
3434
@Mock lateinit var store: ThemeStore
35-
@Mock lateinit var thumbDimensionProvider: SiteDesignPickerDimensionProvider
35+
@Mock lateinit var thumbDimensionProvider: SiteDesignRecommendedDimensionProvider
3636
@Mock lateinit var betaSiteDesigns: BetaSiteDesignsFeatureConfig
3737

3838
private lateinit var useCase: FetchHomePageLayoutsUseCase

0 commit comments

Comments
 (0)