Skip to content

Commit 8e3619b

Browse files
committed
Merge branch 'trunk' into fix/redirect-image-url-auth-2
2 parents 6914cd8 + 610c495 commit 8e3619b

File tree

164 files changed

+9259
-3334
lines changed

Some content is hidden

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

164 files changed

+9259
-3334
lines changed

RELEASE-NOTES.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
* [*] Fixed a crash that occurs with Blogging Reminders [https://github.com/wordpress-mobile/WordPress-Android/pull/20845]
1111
* [*] [internal] Block Editor: Upgrade target sdk version to Android API 34 [https://github.com/wordpress-mobile/WordPress-Android/pull/20841]
1212
* [*] [internal] In-app updates feature [https://github.com/wordpress-mobile/WordPress-Android/pull/20822]
13+
* [**] [Jetpack-only] Reader: Add a new feed dedicated to tags [https://github.com/wordpress-mobile/WordPress-Android/pull/20812]
1314

1415
24.9
1516
-----

WordPress/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,8 @@ android {
151151
buildConfigField "boolean", "READER_DISCOVER_NEW_ENDPOINT", "false"
152152
buildConfigField "boolean", "READER_READING_PREFERENCES", "false"
153153
buildConfigField "boolean", "READER_READING_PREFERENCES_FEEDBACK", "false"
154+
buildConfigField "boolean", "READER_TAGS_FEED", "false"
155+
buildConfigField "boolean", "READER_ANNOUNCEMENT_CARD", "false"
154156
buildConfigField "boolean", "VOICE_TO_CONTENT", "false"
155157

156158
// Override these constants in jetpack product flavor to enable/ disable features

WordPress/src/main/java/org/wordpress/android/datasets/wrappers/ReaderPostTableWrapper.kt

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import org.wordpress.android.datasets.ReaderPostTable
55
import org.wordpress.android.models.ReaderPost
66
import org.wordpress.android.models.ReaderPostList
77
import org.wordpress.android.models.ReaderTag
8+
import org.wordpress.android.ui.reader.actions.ReaderActions.UpdateResult
9+
import org.wordpress.android.ui.reader.models.ReaderBlogIdPostId
810
import javax.inject.Inject
911

1012
@Reusable
@@ -30,6 +32,23 @@ class ReaderPostTableWrapper @Inject constructor() {
3032

3133
fun getNumPostsWithTag(readerTag: ReaderTag): Int = ReaderPostTable.getNumPostsWithTag(readerTag)
3234

33-
fun addOrUpdatePosts(readerTag: ReaderTag, posts: ReaderPostList) =
35+
fun addOrUpdatePosts(readerTag: ReaderTag?, posts: ReaderPostList) =
3436
ReaderPostTable.addOrUpdatePosts(readerTag, posts)
37+
38+
fun deletePostsWithTag(tag: ReaderTag) = ReaderPostTable.deletePostsWithTag(tag)
39+
40+
fun comparePosts(posts: ReaderPostList): UpdateResult = ReaderPostTable.comparePosts(posts)
41+
42+
fun updateBookmarkedPostPseudoId(posts: ReaderPostList) = ReaderPostTable.updateBookmarkedPostPseudoId(posts)
43+
44+
fun setGapMarkerForTag(blogId: Long, postId: Long, tag: ReaderTag) =
45+
ReaderPostTable.setGapMarkerForTag(blogId, postId, tag)
46+
47+
fun removeGapMarkerForTag(tag: ReaderTag) = ReaderPostTable.removeGapMarkerForTag(tag)
48+
49+
fun deletePostsBeforeGapMarkerForTag(tag: ReaderTag) = ReaderPostTable.deletePostsBeforeGapMarkerForTag(tag)
50+
51+
fun hasOverlap(posts: ReaderPostList?, tag: ReaderTag): Boolean = ReaderPostTable.hasOverlap(posts, tag)
52+
53+
fun getGapMarkerIdsForTag(tag: ReaderTag): ReaderBlogIdPostId? = ReaderPostTable.getGapMarkerIdsForTag(tag)
3554
}

WordPress/src/main/java/org/wordpress/android/models/ReaderTag.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,10 @@ public boolean isBookmarked() {
184184
return tagType == ReaderTagType.BOOKMARKED;
185185
}
186186

187+
public boolean isTags() {
188+
return tagType == ReaderTagType.TAGS;
189+
}
190+
187191
public boolean isDiscover() {
188192
return tagType == ReaderTagType.DEFAULT && getEndpoint().endsWith(DISCOVER_PATH);
189193
}
@@ -204,7 +208,7 @@ public boolean isA8C() {
204208
}
205209

206210
public boolean isFilterable() {
207-
return this.isFollowedSites() || this.isA8C() || this.isP2();
211+
return this.isFollowedSites() || this.isA8C() || this.isP2() || this.isTags();
208212
}
209213

210214
public boolean isListTopic() {

WordPress/src/main/java/org/wordpress/android/models/ReaderTagType.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ public enum ReaderTagType {
77
CUSTOM_LIST,
88
SEARCH,
99
INTERESTS,
10-
DISCOVER_POST_CARDS;
10+
DISCOVER_POST_CARDS,
11+
TAGS;
1112

1213
private static final int INT_DEFAULT = 0;
1314
private static final int INT_FOLLOWED = 1;

WordPress/src/main/java/org/wordpress/android/ui/bloggingprompts/BloggingPromptsPostTagProvider.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package org.wordpress.android.ui.bloggingprompts
22

33
import org.wordpress.android.models.ReaderTag
44
import org.wordpress.android.models.ReaderTagType
5-
import org.wordpress.android.ui.reader.services.post.ReaderPostLogic
5+
import org.wordpress.android.ui.reader.repository.ReaderPostRepository
66
import org.wordpress.android.ui.reader.utils.ReaderUtilsWrapper
77
import javax.inject.Inject
88

@@ -23,7 +23,7 @@ class BloggingPromptsPostTagProvider @Inject constructor(
2323
promptIdTag,
2424
promptIdTag,
2525
promptIdTag,
26-
ReaderPostLogic.formatFullEndpointForTag(promptIdTag),
26+
ReaderPostRepository.formatFullEndpointForTag(promptIdTag),
2727
ReaderTagType.FOLLOWED,
2828
)
2929
}

WordPress/src/main/java/org/wordpress/android/ui/bloggingprompts/promptslist/compose/BloggingPromptsListScreen.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,8 @@ private fun FetchErrorContent() {
112112
@Composable
113113
private fun NetworkErrorContent() {
114114
EmptyContent(
115-
title = stringResource(R.string.blogging_prompts_list_error_network_title),
116-
subtitle = stringResource(R.string.blogging_prompts_list_error_network_subtitle),
115+
title = stringResource(R.string.no_connection_error_title),
116+
subtitle = stringResource(R.string.no_connection_error_description),
117117
image = R.drawable.img_illustration_cloud_off_152dp,
118118
modifier = Modifier.fillMaxSize(),
119119
)

WordPress/src/main/java/org/wordpress/android/ui/prefs/AppPrefs.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,7 @@ public enum DeletablePrefKey implements PrefKey {
204204
SHOULD_HIDE_DYNAMIC_CARD,
205205
PINNED_SITE_IDS,
206206
READER_READING_PREFERENCES_JSON,
207+
SHOULD_SHOW_READER_ANNOUNCEMENT_CARD,
207208
}
208209

209210
/**
@@ -1784,6 +1785,14 @@ public static void setPinnedSiteLocalIds(@NonNull final String ids) {
17841785
setString(DeletablePrefKey.PINNED_SITE_IDS, ids);
17851786
}
17861787

1788+
public static boolean getShouldShowReaderAnnouncementCard() {
1789+
return prefs().getBoolean(DeletablePrefKey.SHOULD_SHOW_READER_ANNOUNCEMENT_CARD.name(), true);
1790+
}
1791+
1792+
public static void setShouldShowReaderAnnouncementCard(final boolean shouldShow) {
1793+
prefs().edit().putBoolean(DeletablePrefKey.SHOULD_SHOW_READER_ANNOUNCEMENT_CARD.name(), shouldShow).apply();
1794+
}
1795+
17871796
@Nullable
17881797
public static String getReaderReadingPreferencesJson() {
17891798
return getString(DeletablePrefKey.READER_READING_PREFERENCES_JSON, null);

WordPress/src/main/java/org/wordpress/android/ui/prefs/AppPrefsWrapper.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -450,6 +450,15 @@ class AppPrefsWrapper @Inject constructor(val buildConfigWrapper: BuildConfigWra
450450
fun getShouldHideDynamicCard(id: String, ): Boolean =
451451
AppPrefs.getShouldHideDynamicCard(id)
452452

453+
fun shouldUpdateBookmarkPostsPseudoIds(tag: ReaderTag?): Boolean = AppPrefs.shouldUpdateBookmarkPostsPseudoIds(tag)
454+
455+
fun setBookmarkPostsPseudoIdsUpdated() = AppPrefs.setBookmarkPostsPseudoIdsUpdated()
456+
457+
fun shouldShowReaderAnnouncementCard(): Boolean = AppPrefs.getShouldShowReaderAnnouncementCard()
458+
459+
fun setShouldShowReaderAnnouncementCard(shouldShow: Boolean) =
460+
AppPrefs.setShouldShowReaderAnnouncementCard(shouldShow)
461+
453462
fun getAllPrefs(): Map<String, Any?> = AppPrefs.getAllPrefs()
454463

455464
fun getDebugBooleanPref(key: String, default: Boolean = false) =

WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderActivityLauncher.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,11 +175,19 @@ public static void showReaderTagPreview(Context context, @NonNull ReaderTag tag,
175175
tag.getTagSlug(),
176176
source
177177
);
178-
Intent intent = new Intent(context, ReaderPostListActivity.class);
178+
final Intent intent = createReaderTagPreviewIntent(context, tag, source);
179+
context.startActivity(intent);
180+
}
181+
182+
@NonNull
183+
public static Intent createReaderTagPreviewIntent(@NonNull final Context context,
184+
@NonNull final ReaderTag tag,
185+
@NonNull final String source) {
186+
final Intent intent = new Intent(context, ReaderPostListActivity.class);
179187
intent.putExtra(ReaderConstants.ARG_SOURCE, source);
180188
intent.putExtra(ReaderConstants.ARG_TAG, tag);
181189
intent.putExtra(ReaderConstants.ARG_POST_LIST_TYPE, ReaderPostListType.TAG_PREVIEW);
182-
context.startActivity(intent);
190+
return intent;
183191
}
184192

185193
public static void showReaderSearch(Context context) {

0 commit comments

Comments
 (0)