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

Change subject: Show correct error msg when searching with no connection in 
PageActivity
......................................................................

Show correct error msg when searching with no connection in PageActivity

Breaks out Page-specific behavior in a new WikiPageErrorView subclass
to avoid showing Page-specific messages in an inappropriate context.

Bug: T166155
Change-Id: I1a2c69583122e264d65d7a73b66707b39891dabc
---
M app/src/main/java/org/wikipedia/page/PageFragment.java
M app/src/main/java/org/wikipedia/views/WikiErrorView.java
A app/src/main/java/org/wikipedia/views/WikiPageErrorView.java
M app/src/main/res/layout/fragment_page.xml
4 files changed, 36 insertions(+), 10 deletions(-)


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

diff --git a/app/src/main/java/org/wikipedia/page/PageFragment.java 
b/app/src/main/java/org/wikipedia/page/PageFragment.java
index ad0f505..8f34054 100755
--- a/app/src/main/java/org/wikipedia/page/PageFragment.java
+++ b/app/src/main/java/org/wikipedia/page/PageFragment.java
@@ -87,7 +87,7 @@
 import org.wikipedia.views.ObservableWebView;
 import org.wikipedia.views.SwipeRefreshLayoutWithScroll;
 import org.wikipedia.views.WikiDrawerLayout;
-import org.wikipedia.views.WikiErrorView;
+import org.wikipedia.views.WikiPageErrorView;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -169,7 +169,7 @@
     private PageToolbarHideHandler toolbarHideHandler;
     private ObservableWebView webView;
     private SwipeRefreshLayoutWithScroll refreshView;
-    private WikiErrorView errorView;
+    private WikiPageErrorView errorView;
     private WikiDrawerLayout tocDrawer;
     private ConfigurableTabLayout tabLayout;
 
@@ -323,7 +323,7 @@
         PageActionToolbarHideHandler pageActionToolbarHideHandler = new 
PageActionToolbarHideHandler(tabLayout);
         pageActionToolbarHideHandler.setScrollView(webView);
 
-        errorView = (WikiErrorView) rootView.findViewById(R.id.page_error);
+        errorView = (WikiPageErrorView) rootView.findViewById(R.id.page_error);
 
         return rootView;
     }
diff --git a/app/src/main/java/org/wikipedia/views/WikiErrorView.java 
b/app/src/main/java/org/wikipedia/views/WikiErrorView.java
index 3ab9a0b..b4eee37 100644
--- a/app/src/main/java/org/wikipedia/views/WikiErrorView.java
+++ b/app/src/main/java/org/wikipedia/views/WikiErrorView.java
@@ -15,7 +15,6 @@
 
 import org.mediawiki.api.json.ApiException;
 import org.wikipedia.R;
-import org.wikipedia.page.PageActivity;
 
 import butterknife.BindView;
 import butterknife.ButterKnife;
@@ -76,7 +75,7 @@
         }
     }
 
-    private ErrorType getErrorType(@NonNull Context context, @Nullable 
Throwable caught) {
+    ErrorType getErrorType(@NonNull Context context, @Nullable Throwable 
caught) {
         // apps-android-java-mwapi wraps all exceptions in an ApiException.  
Strip it so we get
         // useful information about the underlying cause.
         // TODO: update when the apps-android-java-mwapi dependency is dropped 
(T141127)
@@ -88,16 +87,13 @@
             return ErrorType.PAGE_MISSING;
         }
         if (caught != null && isOffline(caught)) {
-            if (context instanceof PageActivity) {
-                return ErrorType.PAGE_OFFLINE;
-            }
             return ErrorType.OFFLINE;
         }
         return ErrorType.GENERIC;
     }
 
 
-    private enum ErrorType {
+    enum ErrorType {
         PAGE_MISSING(R.drawable.ic_error_black_24dp, 
R.string.error_page_does_not_exist,
                 R.string.page_error_back_to_main) {
             @Nullable @Override
diff --git a/app/src/main/java/org/wikipedia/views/WikiPageErrorView.java 
b/app/src/main/java/org/wikipedia/views/WikiPageErrorView.java
new file mode 100644
index 0000000..ab00fc9
--- /dev/null
+++ b/app/src/main/java/org/wikipedia/views/WikiPageErrorView.java
@@ -0,0 +1,30 @@
+package org.wikipedia.views;
+
+import android.content.Context;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.util.AttributeSet;
+
+import static org.wikipedia.util.ThrowableUtil.isOffline;
+
+public class WikiPageErrorView extends WikiErrorView {
+
+    public WikiPageErrorView(Context context) {
+        super(context);
+    }
+
+    public WikiPageErrorView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public WikiPageErrorView(Context context, AttributeSet attrs, int 
defStyle) {
+        super(context, attrs, defStyle);
+    }
+
+    @Override ErrorType getErrorType(@NonNull Context context, @Nullable 
Throwable caught) {
+        if (caught != null && isOffline(caught)) {
+            return ErrorType.PAGE_OFFLINE;
+        }
+        return super.getErrorType(context, caught);
+    }
+}
diff --git a/app/src/main/res/layout/fragment_page.xml 
b/app/src/main/res/layout/fragment_page.xml
index d18edf4..0700073 100644
--- a/app/src/main/res/layout/fragment_page.xml
+++ b/app/src/main/res/layout/fragment_page.xml
@@ -49,7 +49,7 @@
 
                 </LinearLayout>
 
-                <org.wikipedia.views.WikiErrorView
+                <org.wikipedia.views.WikiPageErrorView
                     android:id="@+id/page_error"
                     android:layout_width="match_parent"
                     android:layout_height="match_parent"

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1a2c69583122e264d65d7a73b66707b39891dabc
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