Yuvipanda has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/99778


Change subject: Add retry button to network failure vie
......................................................................

Add retry button to network failure vie

Change-Id: I595a26b3883e660cd346158c5658177004a463dc
---
M wikipedia/res/layout/fragment_page.xml
M wikipedia/res/values/strings.xml
M wikipedia/src/main/java/org/wikimedia/wikipedia/PageViewFragment.java
M wikipedia/src/main/java/org/wikimedia/wikipedia/Utils.java
4 files changed, 35 insertions(+), 6 deletions(-)


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

diff --git a/wikipedia/res/layout/fragment_page.xml 
b/wikipedia/res/layout/fragment_page.xml
index 7dcb46a..7465dd3 100644
--- a/wikipedia/res/layout/fragment_page.xml
+++ b/wikipedia/res/layout/fragment_page.xml
@@ -17,10 +17,12 @@
         android:layout_height="match_parent"
         android:visibility="gone"
         />
-    <FrameLayout
+    <LinearLayout
             android:id="@+id/pageError"
             android:layout_width="match_parent"
-            android:layout_height="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_vertical"
+            android:orientation="vertical"
             android:visibility="gone"
             >
         <TextView android:layout_width="wrap_content" 
android:layout_height="wrap_content"
@@ -29,5 +31,12 @@
                   style="?android:textAppearanceLarge"
                 />
 
-    </FrameLayout>
+        <Button
+                android:id="@+id/pageErrorRetry"
+                android:text="@string/page_error_retry"
+                android:layout_gravity="center"
+                android:layout_width="wrap_content" 
android:layout_height="wrap_content"/>
+
+
+    </LinearLayout>
 </FrameLayout>
\ No newline at end of file
diff --git a/wikipedia/res/values/strings.xml b/wikipedia/res/values/strings.xml
index 8b9209e..afe4f18 100644
--- a/wikipedia/res/values/strings.xml
+++ b/wikipedia/res/values/strings.xml
@@ -11,4 +11,5 @@
     <string name="nav_item_history">History</string>
     <string name="error_network_error">Could not reach the network :(</string>
     <string name="search_network_error">Network error. Tap to try 
again.</string>
+    <string name="page_error_retry">Retry</string>
 </resources>
\ No newline at end of file
diff --git 
a/wikipedia/src/main/java/org/wikimedia/wikipedia/PageViewFragment.java 
b/wikipedia/src/main/java/org/wikimedia/wikipedia/PageViewFragment.java
index b772d6a..f9f8f84 100644
--- a/wikipedia/src/main/java/org/wikimedia/wikipedia/PageViewFragment.java
+++ b/wikipedia/src/main/java/org/wikimedia/wikipedia/PageViewFragment.java
@@ -37,7 +37,8 @@
     private PageTitle title;
     private WebView webView;
     private ProgressBar loadProgress;
-    private FrameLayout networkError;
+    private View networkError;
+    private View retryButton;
 
     private Page page;
     private HistoryEntry curEntry;
@@ -107,7 +108,8 @@
 
         webView = (WebView) parentView.findViewById(R.id.pageWebView);
         loadProgress = (ProgressBar) 
parentView.findViewById(R.id.pageLoadProgress);
-        networkError = (FrameLayout) parentView.findViewById(R.id.pageError);
+        networkError = parentView.findViewById(R.id.pageError);
+        retryButton = parentView.findViewById(R.id.pageErrorRetry);
 
         if (savedInstanceState != null && 
savedInstanceState.containsKey(KEY_TITLE)) {
             title = savedInstanceState.getParcelable(KEY_TITLE);
@@ -131,6 +133,20 @@
         app = (WikipediaApp)getActivity().getApplicationContext();
         api = 
((WikipediaApp)getActivity().getApplicationContext()).getAPIForSite(title.getSite());
 
+        startDisplayPage();
+
+        retryButton.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Utils.crossFade(networkError, loadProgress);
+                startDisplayPage();
+            }
+        });
+
+        return parentView;
+    }
+
+    private void startDisplayPage() {
         switch (state) {
             case STATE_NO_FETCH:
                 new LeadSectionFetchTask().execute();
@@ -151,7 +167,6 @@
                 }, 500);
                 break;
         }
-        return parentView;
     }
 
     private class LeadSectionFetchTask extends SectionsFetchTask {
@@ -175,6 +190,9 @@
             // Should check for the source of the error and have different 
things turn up
             // But good enough for now
             Utils.crossFade(loadProgress, networkError);
+            // Not sure why this is required, but without it tapping retry 
hides networkError
+            // FIXME: INVESTIGATE WHY THIS HAPPENS!
+            networkError.setVisibility(View.VISIBLE);
         }
     }
 
diff --git a/wikipedia/src/main/java/org/wikimedia/wikipedia/Utils.java 
b/wikipedia/src/main/java/org/wikimedia/wikipedia/Utils.java
index efe6fb5..e829cbe 100644
--- a/wikipedia/src/main/java/org/wikimedia/wikipedia/Utils.java
+++ b/wikipedia/src/main/java/org/wikimedia/wikipedia/Utils.java
@@ -39,6 +39,7 @@
                     @Override
                     public void onAnimationEnd(Animator animation) {
                         curView.setVisibility(View.GONE);
+                        curView.setAlpha(1.0f);
                     }
                 });
     }

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

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

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

Reply via email to