[MediaWiki-commits] [Gerrit] apps...wikipedia[master]: Framework for onboarding cards in the Explore feed.
jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/370684 ) Change subject: Framework for onboarding cards in the Explore feed. .. Framework for onboarding cards in the Explore feed. Bug: T172187 Change-Id: Ic04249a6f655381574dcf2902b36bbd1067f10e1 --- M app/src/main/java/org/wikipedia/feed/FeedCoordinator.java M app/src/main/java/org/wikipedia/feed/FeedCoordinatorBase.java M app/src/main/java/org/wikipedia/feed/FeedFragment.java M app/src/main/java/org/wikipedia/feed/model/Card.java A app/src/main/java/org/wikipedia/feed/onboarding/OnboardingCard.java A app/src/main/java/org/wikipedia/feed/onboarding/OnboardingCardView.java A app/src/main/java/org/wikipedia/feed/onboarding/OnboardingClient.java M app/src/main/java/org/wikipedia/feed/view/FeedAdapter.java A app/src/main/res/layout/view_card_onboarding.xml 9 files changed, 175 insertions(+), 1 deletion(-) Approvals: jenkins-bot: Verified Mholloway: Looks good to me, approved diff --git a/app/src/main/java/org/wikipedia/feed/FeedCoordinator.java b/app/src/main/java/org/wikipedia/feed/FeedCoordinator.java index bc1f2d0..5de6cb7 100644 --- a/app/src/main/java/org/wikipedia/feed/FeedCoordinator.java +++ b/app/src/main/java/org/wikipedia/feed/FeedCoordinator.java @@ -9,6 +9,7 @@ import org.wikipedia.feed.continuereading.ContinueReadingClient; import org.wikipedia.feed.mainpage.MainPageClient; import org.wikipedia.feed.offline.OfflineCompilationClient; +import org.wikipedia.feed.onboarding.OnboardingClient; import org.wikipedia.feed.random.RandomClient; import org.wikipedia.feed.searchbar.SearchClient; import org.wikipedia.util.DeviceUtil; @@ -27,6 +28,7 @@ conditionallyAddPendingClient(new SearchClient(), age == 0); conditionallyAddPendingClient(new OfflineCompilationClient(), age == 0 && !online && isPreBetaRelease()); +conditionallyAddPendingClient(new OnboardingClient(), age == 0); conditionallyAddPendingClient(new AnnouncementClient(), age == 0 && online); conditionallyAddPendingClient(new AggregatedFeedContentClient(), online); addPendingClient(new ContinueReadingClient()); diff --git a/app/src/main/java/org/wikipedia/feed/FeedCoordinatorBase.java b/app/src/main/java/org/wikipedia/feed/FeedCoordinatorBase.java index cddf45a..f5fc669 100644 --- a/app/src/main/java/org/wikipedia/feed/FeedCoordinatorBase.java +++ b/app/src/main/java/org/wikipedia/feed/FeedCoordinatorBase.java @@ -96,12 +96,14 @@ int position = cards.indexOf(card); addHiddenCard(card); removeCard(card, position); +card.onDismiss(); return position; } public void undoDismissCard(@NonNull Card card, int position) { unHideCard(card); insertCard(card, position); +card.onRestore(); } void retryFromOffline(@NonNull WikiSite wiki) { diff --git a/app/src/main/java/org/wikipedia/feed/FeedFragment.java b/app/src/main/java/org/wikipedia/feed/FeedFragment.java index 28b2841..09d2701 100644 --- a/app/src/main/java/org/wikipedia/feed/FeedFragment.java +++ b/app/src/main/java/org/wikipedia/feed/FeedFragment.java @@ -27,6 +27,7 @@ import org.wikipedia.feed.image.FeaturedImageCard; import org.wikipedia.feed.model.Card; import org.wikipedia.feed.news.NewsItemCard; +import org.wikipedia.feed.onboarding.OnboardingCard; import org.wikipedia.feed.random.RandomCardView; import org.wikipedia.feed.view.FeedAdapter; import org.wikipedia.feed.view.FeedView; @@ -421,6 +422,11 @@ public void onViewCompilations() { startActivity(LocalCompilationsActivity.newIntent(getContext())); } + +@Override +public void onOnboardingPositiveAction(@NonNull Card card, @NonNull OnboardingCard.OnboardingAction action) { + +} } private class FeedScrollListener extends RecyclerView.OnScrollListener { diff --git a/app/src/main/java/org/wikipedia/feed/model/Card.java b/app/src/main/java/org/wikipedia/feed/model/Card.java index 4e325b0..b0dfdc5 100644 --- a/app/src/main/java/org/wikipedia/feed/model/Card.java +++ b/app/src/main/java/org/wikipedia/feed/model/Card.java @@ -25,6 +25,12 @@ @NonNull public abstract CardType type(); +public void onDismiss() { +} + +public void onRestore() { +} + public String getHideKey() { return Long.toString(type().code() + dismissHashCode()); } diff --git a/app/src/main/java/org/wikipedia/feed/onboarding/OnboardingCard.java b/app/src/main/java/org/wikipedia/feed/onboarding/OnboardingCard.java new file mode 100644 index 000..020fe31 --- /dev/null +++ b/app/src/main/java/org/wikipedia/feed/onboarding/OnboardingCard.java @@ -0,0 +1,24 @@ +package org.wikipedia.feed.onboarding; + +import android.net.Uri; +import android.support.annotation.DrawableRes; +import android.support.annotation.NonNull; +import
[MediaWiki-commits] [Gerrit] apps...wikipedia[master]: Framework for onboarding cards in the Explore feed.
Dbrant has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/370684 ) Change subject: Framework for onboarding cards in the Explore feed. .. Framework for onboarding cards in the Explore feed. Bug: T172187 Change-Id: Ic04249a6f655381574dcf2902b36bbd1067f10e1 --- M app/src/main/java/org/wikipedia/feed/FeedCoordinator.java M app/src/main/java/org/wikipedia/feed/FeedCoordinatorBase.java M app/src/main/java/org/wikipedia/feed/FeedFragment.java M app/src/main/java/org/wikipedia/feed/model/Card.java A app/src/main/java/org/wikipedia/feed/onboarding/OnboardingCard.java A app/src/main/java/org/wikipedia/feed/onboarding/OnboardingCardView.java A app/src/main/java/org/wikipedia/feed/onboarding/OnboardingClient.java M app/src/main/java/org/wikipedia/feed/view/FeedAdapter.java A app/src/main/res/layout/view_card_onboarding.xml 9 files changed, 183 insertions(+), 1 deletion(-) git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia refs/changes/84/370684/1 diff --git a/app/src/main/java/org/wikipedia/feed/FeedCoordinator.java b/app/src/main/java/org/wikipedia/feed/FeedCoordinator.java index bc1f2d0..5de6cb7 100644 --- a/app/src/main/java/org/wikipedia/feed/FeedCoordinator.java +++ b/app/src/main/java/org/wikipedia/feed/FeedCoordinator.java @@ -9,6 +9,7 @@ import org.wikipedia.feed.continuereading.ContinueReadingClient; import org.wikipedia.feed.mainpage.MainPageClient; import org.wikipedia.feed.offline.OfflineCompilationClient; +import org.wikipedia.feed.onboarding.OnboardingClient; import org.wikipedia.feed.random.RandomClient; import org.wikipedia.feed.searchbar.SearchClient; import org.wikipedia.util.DeviceUtil; @@ -27,6 +28,7 @@ conditionallyAddPendingClient(new SearchClient(), age == 0); conditionallyAddPendingClient(new OfflineCompilationClient(), age == 0 && !online && isPreBetaRelease()); +conditionallyAddPendingClient(new OnboardingClient(), age == 0); conditionallyAddPendingClient(new AnnouncementClient(), age == 0 && online); conditionallyAddPendingClient(new AggregatedFeedContentClient(), online); addPendingClient(new ContinueReadingClient()); diff --git a/app/src/main/java/org/wikipedia/feed/FeedCoordinatorBase.java b/app/src/main/java/org/wikipedia/feed/FeedCoordinatorBase.java index cddf45a..f5fc669 100644 --- a/app/src/main/java/org/wikipedia/feed/FeedCoordinatorBase.java +++ b/app/src/main/java/org/wikipedia/feed/FeedCoordinatorBase.java @@ -96,12 +96,14 @@ int position = cards.indexOf(card); addHiddenCard(card); removeCard(card, position); +card.onDismiss(); return position; } public void undoDismissCard(@NonNull Card card, int position) { unHideCard(card); insertCard(card, position); +card.onRestore(); } void retryFromOffline(@NonNull WikiSite wiki) { diff --git a/app/src/main/java/org/wikipedia/feed/FeedFragment.java b/app/src/main/java/org/wikipedia/feed/FeedFragment.java index 28b2841..09d2701 100644 --- a/app/src/main/java/org/wikipedia/feed/FeedFragment.java +++ b/app/src/main/java/org/wikipedia/feed/FeedFragment.java @@ -27,6 +27,7 @@ import org.wikipedia.feed.image.FeaturedImageCard; import org.wikipedia.feed.model.Card; import org.wikipedia.feed.news.NewsItemCard; +import org.wikipedia.feed.onboarding.OnboardingCard; import org.wikipedia.feed.random.RandomCardView; import org.wikipedia.feed.view.FeedAdapter; import org.wikipedia.feed.view.FeedView; @@ -421,6 +422,11 @@ public void onViewCompilations() { startActivity(LocalCompilationsActivity.newIntent(getContext())); } + +@Override +public void onOnboardingPositiveAction(@NonNull Card card, @NonNull OnboardingCard.OnboardingAction action) { + +} } private class FeedScrollListener extends RecyclerView.OnScrollListener { diff --git a/app/src/main/java/org/wikipedia/feed/model/Card.java b/app/src/main/java/org/wikipedia/feed/model/Card.java index 4e325b0..b0dfdc5 100644 --- a/app/src/main/java/org/wikipedia/feed/model/Card.java +++ b/app/src/main/java/org/wikipedia/feed/model/Card.java @@ -25,6 +25,12 @@ @NonNull public abstract CardType type(); +public void onDismiss() { +} + +public void onRestore() { +} + public String getHideKey() { return Long.toString(type().code() + dismissHashCode()); } diff --git a/app/src/main/java/org/wikipedia/feed/onboarding/OnboardingCard.java b/app/src/main/java/org/wikipedia/feed/onboarding/OnboardingCard.java new file mode 100644 index 000..020fe31 --- /dev/null +++ b/app/src/main/java/org/wikipedia/feed/onboarding/OnboardingCard.java @@ -0,0 +1,24 @@ +package org.wikipedia.feed.onboarding; + +import android.net.Uri; +import android.support.annotation.DrawableRes; +import android.support.annotation.NonNull; +import