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