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

Change subject: Update: Handle missing pages correctly in the full page view
......................................................................

Update: Handle missing pages correctly in the full page view

Bug: T157361
Change-Id: I811b3f53597dbe96d61b77d3b1d544862d14c052
---
M app/src/main/java/org/wikipedia/page/PageFragment.java
M app/src/main/java/org/wikipedia/page/linkpreview/LinkPreviewErrorView.java
M app/src/main/java/org/wikipedia/views/WikiErrorView.java
3 files changed, 23 insertions(+), 11 deletions(-)


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

diff --git a/app/src/main/java/org/wikipedia/page/PageFragment.java 
b/app/src/main/java/org/wikipedia/page/PageFragment.java
index 9c180da..256dca1 100755
--- a/app/src/main/java/org/wikipedia/page/PageFragment.java
+++ b/app/src/main/java/org/wikipedia/page/PageFragment.java
@@ -357,7 +357,12 @@
         errorView.setBackClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                onBackPressed();
+                boolean back = onBackPressed();
+
+                // Needed if we're coming from another activity
+                if (!back) {
+                    getActivity().finish();
+                }
             }
         });
 
diff --git 
a/app/src/main/java/org/wikipedia/page/linkpreview/LinkPreviewErrorView.java 
b/app/src/main/java/org/wikipedia/page/linkpreview/LinkPreviewErrorView.java
index 9f8b67b..0f412b6 100644
--- a/app/src/main/java/org/wikipedia/page/linkpreview/LinkPreviewErrorView.java
+++ b/app/src/main/java/org/wikipedia/page/linkpreview/LinkPreviewErrorView.java
@@ -92,7 +92,7 @@
     }
 
     private enum ErrorType {
-        OFFLINE(R.drawable.ic_portable_wifi_off_black_24px, 0,
+        OFFLINE(R.drawable.ic_portable_wifi_off_black_24px, 
R.string.error_message_generic,
                 R.string.button_add_to_reading_list, ButtonAction.ADD_TO_LIST) 
{
         },
 
diff --git a/app/src/main/java/org/wikipedia/views/WikiErrorView.java 
b/app/src/main/java/org/wikipedia/views/WikiErrorView.java
index 91ac7c7..ea244f7 100644
--- a/app/src/main/java/org/wikipedia/views/WikiErrorView.java
+++ b/app/src/main/java/org/wikipedia/views/WikiErrorView.java
@@ -22,6 +22,7 @@
 
 import static org.wikipedia.util.DimenUtil.getContentTopOffsetPx;
 import static org.wikipedia.util.ThrowableUtil.is404;
+import static org.wikipedia.util.ThrowableUtil.isOffline;
 
 public class WikiErrorView extends LinearLayout {
     @BindView(R.id.view_wiki_error_icon) ImageView icon;
@@ -58,7 +59,7 @@
 
     public void setError(@NonNull Context context, @Nullable Throwable caught) 
{
         Resources resources = context.getResources();
-        ErrorView errorView = getErrorView(context, caught);
+        ErrorType errorView = getErrorType(context, caught);
         icon.setImageDrawable(ContextCompat.getDrawable(context, 
errorView.icon()));
         errorText.setText(resources.getString(errorView.text()));
         button.setText(resources.getString(errorView.buttonText()));
@@ -83,15 +84,18 @@
         return new LayoutParams(LayoutParams.MATCH_PARENT, 
activity.getTabLayoutHeightPx());
     }
 
-    private ErrorView getErrorView(@NonNull Context context, @Nullable 
Throwable caught) {
-        if (caught != null && !is404(context, caught)) {
+    private ErrorType getErrorType(@NonNull Context context, @Nullable 
Throwable caught) {
+        if (caught != null && is404(context, caught)) {
+            return ErrorType.PAGE_MISSING;
+        }
+        if (caught != null && isOffline(caught)) {
             if (context instanceof PageActivity) {
-                return ErrorView.PAGE_OFFLINE;
+                return ErrorType.PAGE_OFFLINE;
             } else {
-                return ErrorView.OFFLINE;
+                return ErrorType.OFFLINE;
             }
         }
-        return ErrorView.GENERIC;
+        return ErrorType.GENERIC;
     }
 
     private OnClickListener getOnClickListener(@NonNull ButtonFunction 
buttonFunction) {
@@ -105,7 +109,10 @@
         }
     }
 
-    private enum ErrorView {
+    private enum ErrorType {
+        PAGE_MISSING(R.drawable.ic_error_black_24dp, 
R.string.error_page_does_not_exist,
+                R.string.page_error_back_to_main, ButtonFunction.BACK),
+
         PAGE_OFFLINE(R.drawable.ic_no_article, 
R.string.page_offline_notice_cannot_load_while_offline,
                 R.string.page_error_retry, 
R.string.page_offline_notice_add_to_reading_list,
                 ButtonFunction.RETRY),
@@ -146,14 +153,14 @@
             return footerText != 0;
         }
 
-        ErrorView(@DrawableRes int icon, @StringRes int text, @StringRes int 
buttonText, ButtonFunction buttonFunction) {
+        ErrorType(@DrawableRes int icon, @StringRes int text, @StringRes int 
buttonText, ButtonFunction buttonFunction) {
             this.icon = icon;
             this.text = text;
             this.buttonText = buttonText;
             this.buttonFunction = buttonFunction;
         }
 
-        ErrorView(@DrawableRes int icon, @StringRes int text, @StringRes int 
buttonText, @StringRes int footerText, ButtonFunction buttonFunction) {
+        ErrorType(@DrawableRes int icon, @StringRes int text, @StringRes int 
buttonText, @StringRes int footerText, ButtonFunction buttonFunction) {
             this.icon = icon;
             this.text = text;
             this.buttonText = buttonText;

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I811b3f53597dbe96d61b77d3b1d544862d14c052
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Mholloway <mhollo...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to