Mholloway has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/350465 )

Change subject: Hook up offline card Retry button
......................................................................

Hook up offline card Retry button

Bug: T157381
Change-Id: Ifd1ccec4489a8495ed5d5ff11abb5e07c90604fd
---
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/offline/OfflineCardView.java
M app/src/main/java/org/wikipedia/feed/view/FeedAdapter.java
M app/src/main/res/layout/view_card_offline.xml
5 files changed, 34 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia 
refs/changes/65/350465/1

diff --git a/app/src/main/java/org/wikipedia/feed/FeedCoordinatorBase.java 
b/app/src/main/java/org/wikipedia/feed/FeedCoordinatorBase.java
index 18389a1..78527ec 100644
--- a/app/src/main/java/org/wikipedia/feed/FeedCoordinatorBase.java
+++ b/app/src/main/java/org/wikipedia/feed/FeedCoordinatorBase.java
@@ -102,6 +102,15 @@
         insertCard(card, position);
     }
 
+    void moreFromOffline(@NonNull WikiSite wiki) {
+        int lastIndex = cards.size() - 1;
+        Card card = cards.get(lastIndex);
+        if (card instanceof OfflineCard) {
+            removeCard(card, lastIndex);
+        }
+        more(wiki);
+    }
+
     protected abstract void buildScript(int age);
 
     protected void addPendingClient(FeedClient client) {
@@ -121,10 +130,7 @@
         if (pos < 0) {
             return;
         }
-        cards.remove(progressCard);
-        if (updateListener != null) {
-            updateListener.remove(progressCard, pos);
-        }
+        removeCard(progressCard, pos);
     }
 
     private class ClientRequestCallback implements FeedClient.Callback {
diff --git a/app/src/main/java/org/wikipedia/feed/FeedFragment.java 
b/app/src/main/java/org/wikipedia/feed/FeedFragment.java
index 7af80b2..6601a92 100644
--- a/app/src/main/java/org/wikipedia/feed/FeedFragment.java
+++ b/app/src/main/java/org/wikipedia/feed/FeedFragment.java
@@ -271,6 +271,12 @@
         }
 
         @Override
+        public void onRetryFromOffline() {
+            funnel.requestMore(coordinator.getAge());
+            coordinator.moreFromOffline(app.getWikiSite());
+        }
+
+        @Override
         public void onError(@NonNull Throwable t) {
             FeedbackUtil.showError(getActivity(), t);
         }
diff --git a/app/src/main/java/org/wikipedia/feed/offline/OfflineCardView.java 
b/app/src/main/java/org/wikipedia/feed/offline/OfflineCardView.java
index 6434173..da1bfee 100644
--- a/app/src/main/java/org/wikipedia/feed/offline/OfflineCardView.java
+++ b/app/src/main/java/org/wikipedia/feed/offline/OfflineCardView.java
@@ -10,15 +10,30 @@
 import org.wikipedia.feed.view.FeedAdapter;
 import org.wikipedia.feed.view.FeedCardView;
 
+import butterknife.ButterKnife;
+import butterknife.OnClick;
+
 public class OfflineCardView extends LinearLayout implements 
FeedCardView<Card> {
+    @Nullable private FeedAdapter.Callback callback;
+
     public OfflineCardView(Context context) {
         super(context);
         inflate(getContext(), R.layout.view_card_offline, this);
+        ButterKnife.bind(this);
+    }
+
+    @OnClick(R.id.view_card_offline_button_retry) void onRetryClick() {
+        if (callback != null) {
+            callback.onRetryFromOffline();
+        }
+    }
+
+    @Override public void setCallback(@Nullable FeedAdapter.Callback callback) 
{
+        this.callback = callback;
     }
 
     @Override public void setCard(@NonNull Card card) { }
     @Override public Card getCard() {
         return null;
     }
-    @Override public void setCallback(@Nullable FeedAdapter.Callback callback) 
{ }
 }
diff --git a/app/src/main/java/org/wikipedia/feed/view/FeedAdapter.java 
b/app/src/main/java/org/wikipedia/feed/view/FeedAdapter.java
index 2646e4e..6fe51ab 100644
--- a/app/src/main/java/org/wikipedia/feed/view/FeedAdapter.java
+++ b/app/src/main/java/org/wikipedia/feed/view/FeedAdapter.java
@@ -26,6 +26,7 @@
             AnnouncementCardView.Callback, FeaturedArticleCardView.Callback {
         void onShowCard(@Nullable Card card);
         void onRequestMore();
+        void onRetryFromOffline();
         void onError(@NonNull Throwable t);
     }
 
diff --git a/app/src/main/res/layout/view_card_offline.xml 
b/app/src/main/res/layout/view_card_offline.xml
index 05aace2..52eed58 100644
--- a/app/src/main/res/layout/view_card_offline.xml
+++ b/app/src/main/res/layout/view_card_offline.xml
@@ -17,6 +17,7 @@
         android:textSize="16sp" />
 
     <TextView
+        android:id="@+id/view_card_offline_button_retry"
         style="@style/Widget.AppCompat.Button"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"

-- 
To view, visit https://gerrit.wikimedia.org/r/350465
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifd1ccec4489a8495ed5d5ff11abb5e07c90604fd
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Mholloway <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to