Skip to content

Commit ef0e1b9

Browse files
committed
Merge remote-tracking branch 'origin/trunk' into feature/rs-post-search
2 parents 4c08069 + 7d2ed85 commit ef0e1b9

File tree

8 files changed

+112
-58
lines changed

8 files changed

+112
-58
lines changed

WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteCardAndItem.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,8 @@ sealed class MySiteCardAndItem(open val type: Type) {
8484
val label: UiString.UiStringRes,
8585
@DrawableRes val icon: Int,
8686
val disableTint: Boolean = false,
87-
val onClick: ListItemInteraction
87+
val onClick: ListItemInteraction,
88+
val showBetaBadge: Boolean = false
8889
)
8990
}
9091

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package org.wordpress.android.ui.mysite.cards.quicklinksitem
22

3+
import android.view.View
34
import android.view.ViewGroup
5+
import androidx.core.widget.ImageViewCompat
46
import androidx.recyclerview.widget.RecyclerView
57
import org.wordpress.android.databinding.QuickLinkItemBinding
68
import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.QuickLinksItem.QuickLinkItem
@@ -11,9 +13,13 @@ class QuickLinksItemViewHolder(
1113
private val binding: QuickLinkItemBinding = parent.viewBinding(QuickLinkItemBinding::inflate)
1214
) : RecyclerView.ViewHolder(binding.root) {
1315
fun onBind(item: QuickLinkItem) = with(binding) {
14-
quickLinkItem.setText(item.label.stringRes)
15-
quickLinkItem.setIconResource(item.icon)
16-
quickLinkItem.setOnClickListener { item.onClick.click() }
17-
if (item.disableTint) quickLinkItem.iconTint = null
16+
quickLinkIcon.setImageResource(item.icon)
17+
if (item.disableTint) {
18+
ImageViewCompat.setImageTintList(quickLinkIcon, null)
19+
}
20+
quickLinkLabel.setText(item.label.stringRes)
21+
quickLinkBetaBadge.visibility =
22+
if (item.showBetaBadge) View.VISIBLE else View.GONE
23+
quickLinkItemRoot.setOnClickListener { item.onClick.click() }
1824
}
1925
}

WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/quicklinksitem/QuickLinksItemViewModelSlice.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,8 @@ class QuickLinksItemViewModelSlice @Inject constructor(
127127
icon = listItem.primaryIcon,
128128
disableTint = listItem.disablePrimaryIconTint,
129129
label = (listItem.primaryText as UiString.UiStringRes),
130-
onClick = listItem.onClick
130+
onClick = listItem.onClick,
131+
showBetaBadge = listItem.showBetaBadge
131132
)
132133
}
133134
val moreQuickLink = MySiteCardAndItem.Card.QuickLinksItem.QuickLinkItem(

WordPress/src/main/java/org/wordpress/android/ui/mysite/menu/MenuActivity.kt

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import android.os.Bundle
55
import androidx.activity.compose.setContent
66
import androidx.activity.viewModels
77
import androidx.compose.foundation.Image
8+
import androidx.compose.foundation.background
89
import androidx.compose.foundation.clickable
910
import androidx.compose.foundation.layout.Arrangement
1011
import androidx.compose.foundation.layout.Box
@@ -18,6 +19,7 @@ import androidx.compose.foundation.layout.width
1819
import androidx.compose.foundation.layout.wrapContentSize
1920
import androidx.compose.foundation.lazy.LazyColumn
2021
import androidx.compose.foundation.lazy.items
22+
import androidx.compose.foundation.shape.RoundedCornerShape
2123
import androidx.compose.material.icons.Icons
2224
import androidx.compose.material.icons.automirrored.filled.ArrowBack
2325
import androidx.compose.material3.ExperimentalMaterial3Api
@@ -37,8 +39,11 @@ import androidx.compose.runtime.getValue
3739
import androidx.compose.runtime.remember
3840
import androidx.compose.ui.Alignment
3941
import androidx.compose.ui.Modifier
42+
import androidx.compose.ui.draw.clip
43+
import androidx.compose.ui.graphics.Color
4044
import androidx.compose.ui.graphics.ColorFilter
4145
import androidx.compose.ui.layout.ContentScale
46+
import androidx.compose.ui.res.colorResource
4247
import androidx.compose.ui.res.painterResource
4348
import androidx.compose.ui.res.stringResource
4449
import androidx.compose.ui.text.font.FontWeight
@@ -333,6 +338,19 @@ fun MySiteListItem(item: MenuItemState.MenuListItem, modifier: Modifier = Modifi
333338
colorFilter = ColorFilter.tint(MaterialTheme.colorScheme.onSurface)
334339
)
335340
}
341+
342+
if (item.showBetaBadge) {
343+
Text(
344+
text = stringResource(R.string.beta_label).uppercase(),
345+
color = Color.White,
346+
fontSize = 11.sp,
347+
fontWeight = FontWeight.Bold,
348+
modifier = Modifier
349+
.clip(RoundedCornerShape(4.dp))
350+
.background(colorResource(R.color.primary))
351+
.padding(horizontal = 4.dp, vertical = 2.dp)
352+
)
353+
}
336354
})
337355
}
338356
}

WordPress/src/main/java/org/wordpress/android/ui/mysite/menu/MenuState.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ sealed class MenuItemState {
2020
val secondaryText: UiString? = null,
2121
val onClick: ListItemInteraction,
2222
val disablePrimaryIconTint: Boolean = false,
23-
val listItemAction: ListItemAction
23+
val listItemAction: ListItemAction,
24+
val showBetaBadge: Boolean = false
2425
) : MenuItemState()
2526
}
2627

@@ -35,7 +36,8 @@ fun MySiteCardAndItem.Item.toMenuItemState(): MenuItemState {
3536
secondaryText = secondaryText,
3637
onClick = onClick,
3738
disablePrimaryIconTint = disablePrimaryIconTint,
38-
listItemAction = listItemAction
39+
listItemAction = listItemAction,
40+
showBetaBadge = showBetaBadge
3941
)
4042
else -> {
4143
throw IllegalArgumentException("Unsupported MySiteCardAndItem.Item type: $this")

WordPress/src/main/res/layout/my_site_item_block.xml

Lines changed: 23 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -14,42 +14,18 @@
1414
android:layout_marginTop="@dimen/margin_large"
1515
android:importantForAccessibility="no"
1616
app:layout_constraintBottom_toBottomOf="parent"
17-
app:layout_constraintEnd_toStartOf="@+id/my_site_item_beta_badge"
1817
app:layout_constraintHorizontal_bias="0.0"
1918
app:layout_constraintHorizontal_chainStyle="packed"
2019
app:layout_constraintStart_toStartOf="parent"
2120
app:layout_constraintTop_toTopOf="parent"
2221
tools:src="@drawable/ic_plans_white_24dp" />
23-
<TextView
24-
android:id="@+id/my_site_item_beta_badge"
25-
android:layout_width="wrap_content"
26-
android:layout_height="wrap_content"
27-
android:background="@drawable/bg_beta_pill"
28-
android:paddingStart="@dimen/margin_small"
29-
android:paddingEnd="@dimen/margin_small"
30-
android:paddingTop="2dp"
31-
android:paddingBottom="2dp"
32-
android:layout_marginEnd="@dimen/margin_small"
33-
android:text="@string/beta_label"
34-
android:textAllCaps="true"
35-
android:textColor="@color/white"
36-
android:textSize="11sp"
37-
android:textStyle="bold"
38-
android:visibility="gone"
39-
app:layout_constraintBottom_toBottomOf="parent"
40-
app:layout_constraintEnd_toStartOf="@+id/my_site_item_primary_text"
41-
app:layout_constraintStart_toEndOf="@+id/my_site_item_primary_icon"
42-
app:layout_constraintTop_toTopOf="parent"
43-
app:layout_constraintHorizontal_bias="0.0"
44-
tools:visibility="visible" />
4522
<org.wordpress.android.widgets.WPTextView
4623
android:id="@+id/my_site_item_primary_text"
4724
style="@style/UpdatedMySiteListRowTextView"
4825
android:layout_marginBottom="@dimen/margin_large"
4926
android:layout_marginTop="@dimen/margin_large"
5027
app:layout_constraintBottom_toBottomOf="parent"
51-
app:layout_constraintEnd_toStartOf="@+id/my_site_item_secondary_icon"
52-
app:layout_constraintStart_toEndOf="@+id/my_site_item_beta_badge"
28+
app:layout_constraintStart_toEndOf="@+id/my_site_item_primary_icon"
5329
app:layout_constraintTop_toTopOf="parent"
5430
app:layout_constraintHorizontal_bias="0.0"
5531
tools:text="@string/posts" />
@@ -61,7 +37,6 @@
6137
android:src="@drawable/ic_external_white_24dp"
6238
app:layout_constraintTop_toTopOf="parent"
6339
app:layout_constraintBottom_toBottomOf="parent"
64-
app:layout_constraintEnd_toStartOf="@+id/guideline2"
6540
app:layout_constraintStart_toEndOf="@+id/my_site_item_primary_text"/>
6641

6742
<androidx.constraintlayout.widget.Guideline
@@ -73,14 +48,34 @@
7348
<org.wordpress.android.widgets.WPTextView
7449
android:id="@+id/my_site_item_secondary_text"
7550
style="@style/MySiteListRowSecondaryTextView"
76-
android:layout_marginEnd="32dp"
7751
android:paddingEnd="0dp"
7852
android:paddingStart="0dp"
7953
android:textAlignment="viewEnd"
8054
app:layout_constraintBottom_toBottomOf="parent"
81-
app:layout_constraintEnd_toEndOf="parent"
55+
app:layout_constraintEnd_toStartOf="@+id/my_site_item_beta_badge"
8256
app:layout_constraintStart_toEndOf="@+id/guideline2"
8357
app:layout_constraintTop_toTopOf="parent"
8458
tools:text="@string/posts" />
8559

60+
<TextView
61+
android:id="@+id/my_site_item_beta_badge"
62+
android:layout_width="wrap_content"
63+
android:layout_height="wrap_content"
64+
android:background="@drawable/bg_beta_pill"
65+
android:paddingStart="@dimen/margin_small"
66+
android:paddingEnd="@dimen/margin_small"
67+
android:paddingTop="2dp"
68+
android:paddingBottom="2dp"
69+
android:layout_marginEnd="@dimen/margin_medium"
70+
android:text="@string/beta_label"
71+
android:textAllCaps="true"
72+
android:textColor="@color/white"
73+
android:textSize="11sp"
74+
android:textStyle="bold"
75+
android:visibility="gone"
76+
app:layout_constraintBottom_toBottomOf="parent"
77+
app:layout_constraintEnd_toEndOf="parent"
78+
app:layout_constraintTop_toTopOf="parent"
79+
tools:visibility="visible" />
80+
8681
</androidx.constraintlayout.widget.ConstraintLayout>

WordPress/src/main/res/layout/quick_link_item.xml

Lines changed: 52 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,60 @@
22
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
33
xmlns:app="http://schemas.android.com/apk/res-auto"
44
xmlns:tools="http://schemas.android.com/tools"
5+
android:id="@+id/quick_link_item_root"
56
android:layout_width="match_parent"
6-
android:layout_height="wrap_content">
7+
android:layout_height="wrap_content"
8+
android:background="?attr/selectableItemBackground"
9+
android:clickable="true"
10+
android:focusable="true"
11+
android:minHeight="48dp"
12+
android:paddingStart="12dp"
13+
android:paddingEnd="12dp">
714

8-
<com.google.android.material.button.MaterialButton
9-
android:id="@+id/quick_link_item"
10-
style="@style/MySiteQuickLinkItem"
11-
android:layout_width="match_parent"
12-
android:layout_height="wrap_content"
13-
tools:text="@string/my_site_btn_site_pages"
14-
tools:icon="@drawable/ic_pages_white_24dp"
15+
<ImageView
16+
android:id="@+id/quick_link_icon"
17+
android:layout_width="@dimen/quick_link_ribbon_icon_size"
18+
android:layout_height="@dimen/quick_link_ribbon_icon_size"
19+
android:layout_marginEnd="@dimen/quick_link_ribbon_icon_padding"
20+
android:importantForAccessibility="no"
21+
app:layout_constraintBottom_toBottomOf="parent"
1522
app:layout_constraintStart_toStartOf="parent"
16-
app:layout_constraintTop_toTopOf="parent" />
23+
app:layout_constraintTop_toTopOf="parent"
24+
app:tint="?attr/wpColorOnSurfaceMedium"
25+
tools:src="@drawable/ic_gridicons_menus" />
26+
27+
<TextView
28+
android:id="@+id/quick_link_label"
29+
android:layout_width="0dp"
30+
android:layout_height="wrap_content"
31+
android:fontFamily="san-serif"
32+
android:textColor="?attr/colorOnSurface"
33+
android:textSize="@dimen/quick_link_ribbon_text_size"
34+
app:layout_constraintBottom_toBottomOf="parent"
35+
app:layout_constraintEnd_toStartOf="@+id/quick_link_beta_badge"
36+
app:layout_constraintStart_toEndOf="@+id/quick_link_icon"
37+
app:layout_constraintTop_toTopOf="parent"
38+
tools:text="@string/my_site_btn_site_pages" />
39+
40+
<TextView
41+
android:id="@+id/quick_link_beta_badge"
42+
android:layout_width="wrap_content"
43+
android:layout_height="wrap_content"
44+
android:layout_marginEnd="@dimen/margin_medium"
45+
android:background="@drawable/bg_beta_pill"
46+
android:paddingStart="@dimen/margin_small"
47+
android:paddingEnd="@dimen/margin_small"
48+
android:paddingTop="2dp"
49+
android:paddingBottom="2dp"
50+
android:text="@string/beta_label"
51+
android:textAllCaps="true"
52+
android:textColor="@color/white"
53+
android:textSize="11sp"
54+
android:textStyle="bold"
55+
android:visibility="gone"
56+
app:layout_constraintBottom_toBottomOf="parent"
57+
app:layout_constraintEnd_toEndOf="parent"
58+
app:layout_constraintTop_toTopOf="parent"
59+
tools:visibility="visible" />
1760

1861
</androidx.constraintlayout.widget.ConstraintLayout>

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

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1659,19 +1659,7 @@
16591659
<item name="android:alpha">@dimen/material_emphasis_high_type</item>
16601660
</style>
16611661

1662-
<style name="MySiteQuickLinkItem" parent="Widget.MaterialComponents.Button.TextButton.Icon">
1663-
<item name="iconSize">@dimen/quick_link_ribbon_icon_size</item>
1664-
<item name="iconTint">?attr/wpColorOnSurfaceMedium</item>
1665-
<item name="iconPadding">@dimen/quick_link_ribbon_icon_padding</item>
1666-
<item name="cornerRadius">@dimen/quick_link_ribbon_corner_radius</item>
1667-
<item name="android:fontFamily">san-serif</item>
1668-
<item name="android:letterSpacing">0</item>
1669-
<item name="android:textAllCaps">false</item>
1670-
<item name="android:textColor">?attr/colorOnSurface</item>
1671-
<item name="android:textSize">@dimen/quick_link_ribbon_text_size</item>
1672-
<item name="android:textAlignment">viewStart</item>
1673-
<item name="rippleColor">@color/on_surface_disabled_transparent_selector</item>
1674-
</style>
1662+
16751663

16761664
<style name="OverlayMigrationHelperText" parent="@style/Widget.MaterialComponents.Button.TextButton.Icon">
16771665
<item name="android:ellipsize">end</item>

0 commit comments

Comments
 (0)