Skip to content

Commit 5385671

Browse files
wpmobilebotcrazytonyliadalpariclaude[bot]
authored
Merge release/26.4 into trunk (#22390)
* Merge release_notes/26.4 into release/26.4 (#22365) * Add editorialized release notes for 26.4 * Update WordPress `PlayStoreStrings.po` for version 26.4 * Update Jetpack `PlayStoreStrings.po` for version 26.4 --------- Co-authored-by: Tony Li <[email protected]> * CMM-955 reader subscribe button unresponsive on quick tap (#22373) * Adding a loading spinner to the recommended blogs subscribe button * Fixing the loading wrong state * Fixing it for the post details screen * Fixing blog screen subscription as well * detekt * lint fix * Using suspend function to iterate over cards * Removing the withContext, but keeping the scope usage * Some refactoring * Adding tests * Update WordPress/src/main/java/org/wordpress/android/ui/reader/views/ReaderSiteHeaderView.java Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> * Compile fix * chore: trigger CI --------- Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> * CMM-992 reader deeplinks (#22374) * Supporting read and discovery deeplinks * Fixing discovery issue * Handling feed links * Handling search and tags * Some improvements * Re-adding deleted code * Lint fixes * Adding tests for ReaderActivityLauncher * Update WordPress/src/main/java/org/wordpress/android/ui/ActivityLauncher.java Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> * chore: trigger CI * Supporting the new Calypso banner specs * Adding some tests --------- Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> * Merge release_notes/26.4 into release/26.4 (#22387) * Update editorial release notes * Update WordPress `PlayStoreStrings.po` for version 26.4 * Update Jetpack `PlayStoreStrings.po` for version 26.4 --------- Co-authored-by: Tony Li <[email protected]> * Update translations * Update WordPress metadata translations for 26.4 * Update Jetpack metadata translations for 26.4 * Bump version number * Update translations * Bump version number * Fix a resolving conflicts error --------- Co-authored-by: Tony Li <[email protected]> Co-authored-by: Adalberto Plaza <[email protected]> Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
1 parent 7c51403 commit 5385671

File tree

92 files changed

+5480
-2155
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+5480
-2155
lines changed

WordPress/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -494,6 +494,8 @@ dependencies {
494494
testImplementation(libs.assertj.core)
495495
testImplementation(libs.kotlinx.coroutines.test)
496496
testImplementation(libs.turbine)
497+
testImplementation(libs.robolectric)
498+
testImplementation(libs.androidx.test.core)
497499

498500
androidTestImplementation project(path:':libs:mocks')
499501

WordPress/jetpack_metadata/PlayStoreStrings.po

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,14 @@ msgstr ""
1010
"X-Generator: VsCode\n"
1111
"Project-Id-Version: Jetpack - Apps - Android - Release Notes\n"
1212

13+
msgctxt "release_note_264"
14+
msgid ""
15+
"26.4:\n"
16+
"- The app icon has a single-color option to match your device’s other themed icons. #aesthetic\n"
17+
"- Large, high-resolution images are more likely to load (but might take a few seconds).\n"
18+
"- We removed HTML tags from the Reader comment editor and fixed the “Subscribe” button.\n"
19+
msgstr ""
20+
1321
msgctxt "release_note_263"
1422
msgid ""
1523
"26.3:\n"
@@ -18,14 +26,6 @@ msgid ""
1826
"The experimental editor just got smoother, too. Your content stays put when you rotate your device or toggle dark mode, and dialogs now respond properly to the back button. Happy editing!\n"
1927
msgstr ""
2028

21-
msgctxt "release_note_262"
22-
msgid ""
23-
"26.2:\n"
24-
"- Connect your self-hosted sites to Jetpack with our new streamlined flow—available right from Stats and Notifications.\n"
25-
"- We've added support for mentions in the experimental editor—tag your friends and collaborators with ease.\n"
26-
"- Media selection just got more accessible for everyone.\n"
27-
msgstr ""
28-
2929
#. translators: Release notes for this version to be displayed in the Play Store. Limit to 500 characters including spaces and commas!
3030
#. translators: Title to be displayed in the Play Store. Limit to 30 characters including spaces and commas!
3131
msgctxt "play_store_app_title"
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1-
* [*] Monochrome icon support for the WordPress app [#22321]
2-
* [*] Fixed high-resolution image loading issues [#22235]
1+
- The app icon has a single-color option to match your device’s other themed icons. #aesthetic
2+
- Large, high-resolution images are more likely to load (but might take a few seconds).
3+
- We removed HTML tags from the Reader comment editor and fixed the “Subscribe” button.

WordPress/metadata/PlayStoreStrings.po

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,13 @@ msgstr ""
1010
"X-Generator: VsCode\n"
1111
"Project-Id-Version: Release Notes & Play Store Descriptions\n"
1212

13+
msgctxt "release_note_264"
14+
msgid ""
15+
"26.4:\n"
16+
"- The app icon has a single-color option to match your device’s other themed icons. #aesthetic\n"
17+
"- Large, high-resolution images are more likely to load (but might take a few seconds).\n"
18+
msgstr ""
19+
1320
msgctxt "release_note_263"
1421
msgid ""
1522
"26.3:\n"
@@ -20,13 +27,6 @@ msgid ""
2027
"The experimental editor just got smoother, too. Your content stays put when you rotate your device or toggle dark mode, and dialogs now respond properly to the back button. Happy editing!\n"
2128
msgstr ""
2229

23-
msgctxt "release_note_262"
24-
msgid ""
25-
"26.2:\n"
26-
"- We've added support for mentions in the experimental editor—tag your friends and collaborators with ease.\n"
27-
"- Media selection just got more accessible for everyone.\n"
28-
msgstr ""
29-
3030
#. translators: Release notes for this version to be displayed in the Play Store. Limit to 500 characters including spaces and commas!
3131
#. translators: Shorter Release notes for this version to be displayed in the Play Store. Limit to 500 characters including spaces and commas!
3232
msgctxt "sample_post_content"
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
* [*] Monochrome icon support for the WordPress app [#22321]
2-
* [*] Fixed high-resolution image loading issues [#22235]
1+
- The app icon has a single-color option to match your device’s other themed icons. #aesthetic
2+
- Large, high-resolution images are more likely to load (but might take a few seconds).

WordPress/src/main/AndroidManifest.xml

Lines changed: 106 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -581,6 +581,82 @@
581581
android:pathPattern="/site-monitoring/.*"
582582
android:scheme="http" />
583583

584+
<data
585+
android:host="wordpress.com"
586+
android:path="/read"
587+
android:scheme="https" />
588+
589+
<data
590+
android:host="wordpress.com"
591+
android:path="/read"
592+
android:scheme="http" />
593+
594+
<data
595+
android:host="wordpress.com"
596+
android:path="/discover"
597+
android:scheme="https" />
598+
599+
<data
600+
android:host="wordpress.com"
601+
android:path="/discover"
602+
android:scheme="http" />
603+
604+
<data
605+
android:host="wordpress.com"
606+
android:pathPattern="/read/feeds/.*"
607+
android:scheme="https" />
608+
609+
<data
610+
android:host="wordpress.com"
611+
android:pathPattern="/read/feeds/.*"
612+
android:scheme="http" />
613+
614+
<data
615+
android:host="wordpress.com"
616+
android:pathPattern="/reader/feeds/.*"
617+
android:scheme="https" />
618+
619+
<data
620+
android:host="wordpress.com"
621+
android:pathPattern="/reader/feeds/.*"
622+
android:scheme="http" />
623+
624+
<data
625+
android:host="wordpress.com"
626+
android:path="/read/search"
627+
android:scheme="https"
628+
tools:ignore="IntentFilterUniqueDataAttributes" />
629+
630+
<data
631+
android:host="wordpress.com"
632+
android:path="/read/search"
633+
android:scheme="http"
634+
tools:ignore="IntentFilterUniqueDataAttributes" />
635+
636+
<data
637+
android:host="wordpress.com"
638+
android:path="/reader/search"
639+
android:scheme="https"
640+
tools:ignore="IntentFilterUniqueDataAttributes" />
641+
642+
<data
643+
android:host="wordpress.com"
644+
android:path="/reader/search"
645+
android:scheme="http"
646+
tools:ignore="IntentFilterUniqueDataAttributes" />
647+
648+
<data
649+
android:host="wordpress.com"
650+
android:pathPattern="/tag/.*"
651+
android:scheme="https"
652+
tools:ignore="IntentFilterUniqueDataAttributes" />
653+
654+
<data
655+
android:host="wordpress.com"
656+
android:pathPattern="/tag/.*"
657+
android:scheme="http"
658+
tools:ignore="IntentFilterUniqueDataAttributes" />
659+
584660
</intent-filter>
585661
</activity-alias>
586662

@@ -612,49 +688,71 @@
612688
<data
613689
android:host="wordpress.com"
614690
android:pathPattern="/read/feeds/.*/posts/.*"
615-
android:scheme="https" >
691+
android:scheme="https"
692+
tools:ignore="IntentFilterUniqueDataAttributes" >
616693
</data>
617694

618695
<data
619696
android:host="wordpress.com"
620697
android:pathPattern="/read/feeds/.*/posts/.*"
621-
android:scheme="http" >
698+
android:scheme="http"
699+
tools:ignore="IntentFilterUniqueDataAttributes" >
622700
</data>
623701

624702
<data
625703
android:host="wordpress.com"
626704
android:pathPattern="/read/blogs/.*/posts/.*"
627-
android:scheme="https" >
705+
android:scheme="https"
706+
tools:ignore="IntentFilterUniqueDataAttributes" >
628707
</data>
629708

630709
<data
631710
android:host="wordpress.com"
632711
android:pathPattern="/read/blogs/.*/posts/.*"
633-
android:scheme="http" >
712+
android:scheme="http"
713+
tools:ignore="IntentFilterUniqueDataAttributes" >
634714
</data>
635715

636716
<data
637717
android:host="*.wordpress.com"
638718
android:pathPattern="/2.../../../.*"
639-
android:scheme="https" >
719+
android:scheme="https"
720+
tools:ignore="IntentFilterUniqueDataAttributes" >
640721
</data>
641722

642723
<data
643724
android:host="*.wordpress.com"
644725
android:pathPattern="/2.../../../.*"
645-
android:scheme="http" >
726+
android:scheme="http"
727+
tools:ignore="IntentFilterUniqueDataAttributes" >
646728
</data>
647729

648730
<data
649731
android:host="*.wordpress.com"
650732
android:pathPattern="/19../../../.*"
651-
android:scheme="https" >
733+
android:scheme="https"
734+
tools:ignore="IntentFilterUniqueDataAttributes" >
652735
</data>
653736

654737
<data
655738
android:host="*.wordpress.com"
656739
android:pathPattern="/19../../../.*"
657-
android:scheme="http" >
740+
android:scheme="http"
741+
tools:ignore="IntentFilterUniqueDataAttributes" >
742+
</data>
743+
744+
<data
745+
android:host="wordpress.com"
746+
android:pathPattern="/reader/feeds/.*/posts/.*"
747+
android:scheme="https"
748+
tools:ignore="IntentFilterUniqueDataAttributes" >
749+
</data>
750+
751+
<data
752+
android:host="wordpress.com"
753+
android:pathPattern="/reader/feeds/.*/posts/.*"
754+
android:scheme="http"
755+
tools:ignore="IntentFilterUniqueDataAttributes" >
658756
</data>
659757

660758
<data

WordPress/src/main/java/org/wordpress/android/ui/ActivityLauncher.java

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,43 @@ public static void viewReaderInNewStack(Context context) {
338338
context.startActivity(intent);
339339
}
340340

341+
public static void viewReaderDiscoverInNewStack(Context context) {
342+
Intent intent = getMainActivityInNewStack(context);
343+
intent.putExtra(WPMainActivity.ARG_OPEN_PAGE, WPMainActivity.ARG_READER);
344+
intent.putExtra(WPMainActivity.ARG_READER_DISCOVER_TAB, true);
345+
context.startActivity(intent);
346+
}
347+
348+
public static void viewReaderFeedInNewStack(Context context, long feedId) {
349+
Intent mainActivityIntent = getMainActivityInNewStack(context)
350+
.putExtra(WPMainActivity.ARG_OPEN_PAGE, WPMainActivity.ARG_READER);
351+
Intent feedIntent = ReaderActivityLauncher.buildReaderFeedIntent(context, feedId, "deeplink");
352+
TaskStackBuilder.create(context)
353+
.addNextIntent(mainActivityIntent)
354+
.addNextIntent(feedIntent)
355+
.startActivities();
356+
}
357+
358+
public static void viewReaderSearchInNewStack(Context context) {
359+
Intent mainActivityIntent = getMainActivityInNewStack(context)
360+
.putExtra(WPMainActivity.ARG_OPEN_PAGE, WPMainActivity.ARG_READER);
361+
Intent searchIntent = ReaderActivityLauncher.createReaderSearchIntent(context);
362+
TaskStackBuilder.create(context)
363+
.addNextIntent(mainActivityIntent)
364+
.addNextIntent(searchIntent)
365+
.startActivities();
366+
}
367+
368+
public static void viewReaderTagInNewStack(@NonNull Context context, @NonNull String tagSlug) {
369+
Intent mainActivityIntent = getMainActivityInNewStack(context)
370+
.putExtra(WPMainActivity.ARG_OPEN_PAGE, WPMainActivity.ARG_READER);
371+
Intent tagIntent = ReaderActivityLauncher.buildReaderTagIntent(context, tagSlug, "deeplink");
372+
TaskStackBuilder.create(context)
373+
.addNextIntent(mainActivityIntent)
374+
.addNextIntent(tagIntent)
375+
.startActivities();
376+
}
377+
341378
public static void viewPostDeeplinkInNewStack(Context context, Uri uri) {
342379
Intent mainActivityIntent = getMainActivityInNewStack(context)
343380
.putExtra(WPMainActivity.ARG_OPEN_PAGE, WPMainActivity.ARG_READER);

WordPress/src/main/java/org/wordpress/android/ui/deeplinks/DeepLinkNavigator.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,11 @@ import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenN
1818
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenPages
1919
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenPagesForSite
2020
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenQRCodeAuthFlow
21+
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenFeedInReader
2122
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenReader
23+
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenReaderDiscover
24+
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenReaderSearch
25+
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenTagInReader
2226
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenStats
2327
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenStatsForSite
2428
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenStatsForSiteAndTimeframe
@@ -78,6 +82,10 @@ class DeepLinkNavigator
7882
)
7983

8084
OpenReader -> ActivityLauncher.viewReaderInNewStack(activity)
85+
OpenReaderDiscover -> ActivityLauncher.viewReaderDiscoverInNewStack(activity)
86+
OpenReaderSearch -> ActivityLauncher.viewReaderSearchInNewStack(activity)
87+
is OpenFeedInReader -> ActivityLauncher.viewReaderFeedInNewStack(activity, navigateAction.feedId)
88+
is OpenTagInReader -> ActivityLauncher.viewReaderTagInNewStack(activity, navigateAction.tagSlug)
8189
is OpenInReader -> ActivityLauncher.viewPostDeeplinkInNewStack(activity, navigateAction.uri.uri)
8290
is ViewPostInReader -> ActivityLauncher.viewReaderPostDetailInNewStack(
8391
activity,
@@ -123,6 +131,10 @@ class DeepLinkNavigator
123131
data class OpenEditorForPost(val site: SiteModel, val postId: Int) : NavigateAction()
124132
data class OpenEditorForSite(val site: SiteModel) : NavigateAction()
125133
object OpenReader : NavigateAction()
134+
object OpenReaderDiscover : NavigateAction()
135+
object OpenReaderSearch : NavigateAction()
136+
data class OpenFeedInReader(val feedId: Long) : NavigateAction()
137+
data class OpenTagInReader(val tagSlug: String) : NavigateAction()
126138
data class OpenInReader(val uri: UriWrapper) : NavigateAction()
127139
data class ViewPostInReader(val blogId: Long, val postId: Long, val uri: UriWrapper) : NavigateAction()
128140
object OpenEditor : NavigateAction()

0 commit comments

Comments
 (0)