diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java
index 7a2849623..d0491af86 100644
--- a/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java
+++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java
@@ -206,9 +206,16 @@ public class FavoritesScene extends BaseScene implements
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
+
+ boolean hasFirstRefresh;
+ if (mHelper != null && 1 == mHelper.getShownViewIndex()) {
+ hasFirstRefresh = false;
+ } else {
+ hasFirstRefresh = mHasFirstRefresh;
+ }
+ outState.putBoolean(KEY_HAS_FIRST_REFRESH, hasFirstRefresh);
outState.putParcelable(KEY_URL_BUILDER, mUrlBuilder);
outState.putBoolean(KEY_SEARCH_MODE, mSearchMode);
- outState.putBoolean(KEY_HAS_FIRST_REFRESH, mHasFirstRefresh);
outState.putIntArray(KEY_FAV_COUNT_ARRAY, mFavCountArray);
outState.putInt(KEY_ALL_COUNT, mAllCount);
outState.putInt(KEY_ALL_LIMIT, mAllLimit);
@@ -339,12 +346,17 @@ public class FavoritesScene extends BaseScene implements
mAdapter.unregister();
mAdapter = null;
}
+ if (null != mHelper) {
+ if (1 == mHelper.getShownViewIndex()) {
+ mHasFirstRefresh = false;
+ }
+ mHelper = null;
+ }
mRecyclerView = null;
mSearchBar = null;
mFabLayout = null;
- mHelper = null;
mSearchBarMover = null;
mLeftDrawable = null;
@@ -763,7 +775,7 @@ public class FavoritesScene extends BaseScene implements
private void onGetFavoritesFailure(Exception e, int taskId) {
if (mHelper != null && mSearchBarMover != null &&
mHelper.isCurrentTask(taskId)) {
- mHelper.onGetExpection(taskId, e);
+ mHelper.onGetException(taskId, e);
}
}
@@ -776,7 +788,7 @@ public class FavoritesScene extends BaseScene implements
list = EhDB.searchLocalFavorites(keyword);
}
if (list.size() == 0) {
- mHelper.onGetExpection(taskId, new NotFoundException());
+ mHelper.onGetException(taskId, new NotFoundException());
} else {
mHelper.setPages(taskId, 1);
mHelper.onGetPageData(taskId, list);
diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java
index 500c64585..f2abbb4d4 100644
--- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java
+++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java
@@ -230,7 +230,14 @@ public final class GalleryListScene extends BaseScene
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
- outState.putBoolean(KEY_HAS_FIRST_REFRESH, mHasFirstRefresh);
+
+ boolean hasFirstRefresh;
+ if (mHelper != null && 1 == mHelper.getShownViewIndex()) {
+ hasFirstRefresh = false;
+ } else {
+ hasFirstRefresh = mHasFirstRefresh;
+ }
+ outState.putBoolean(KEY_HAS_FIRST_REFRESH, hasFirstRefresh);
outState.putParcelable(KEY_LIST_URL_BUILDER, mUrlBuilder);
outState.putInt(KEY_STATE, mState);
}
@@ -395,6 +402,12 @@ public final class GalleryListScene extends BaseScene
mAdapter.unregister();
mAdapter = null;
}
+ if (null != mHelper) {
+ if (1 == mHelper.getShownViewIndex()) {
+ mHasFirstRefresh = false;
+ }
+ mHelper = null;
+ }
mRecyclerView = null;
mFitPaddingLayout = null;
@@ -402,7 +415,6 @@ public final class GalleryListScene extends BaseScene
mSearchBar = null;
mFab = null;
mViewTransition = null;
- mHelper = null;
mLeftDrawable = null;
mRightDrawable = null;
mFabAnimatorListener = null;
@@ -984,7 +996,7 @@ public final class GalleryListScene extends BaseScene
private void onGetGalleryListFailure(Exception e, int taskId) {
if (mHelper != null && mSearchBarMover != null &&
mHelper.isCurrentTask(taskId) && isViewCreated()) {
- mHelper.onGetExpection(taskId, e);
+ mHelper.onGetException(taskId, e);
}
}
@@ -1000,7 +1012,7 @@ public final class GalleryListScene extends BaseScene
private void onGetWhatsHotFailure(Exception e, int taskId) {
if (mHelper != null && mSearchBarMover != null &&
mHelper.isCurrentTask(taskId) && isViewCreated()) {
- mHelper.onGetExpection(taskId, e);
+ mHelper.onGetException(taskId, e);
}
}
diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryPreviewsScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryPreviewsScene.java
index 44c506df3..508c7e9cd 100644
--- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryPreviewsScene.java
+++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryPreviewsScene.java
@@ -111,8 +111,15 @@ public class GalleryPreviewsScene extends ToolbarScene implements EasyRecyclerVi
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
+
+ boolean hasFirstRefresh;
+ if (mHelper != null && 1 == mHelper.getShownViewIndex()) {
+ hasFirstRefresh = false;
+ } else {
+ hasFirstRefresh = mHasFirstRefresh;
+ }
+ outState.putBoolean(KEY_HAS_FIRST_REFRESH, hasFirstRefresh);
outState.putParcelable(KEY_GALLERY_INFO, mGalleryInfo);
- outState.putBoolean(KEY_HAS_FIRST_REFRESH, mHasFirstRefresh);
}
@Nullable
@@ -151,8 +158,14 @@ public class GalleryPreviewsScene extends ToolbarScene implements EasyRecyclerVi
public void onDestroyView() {
super.onDestroyView();
+ if (null != mHelper) {
+ if (1 == mHelper.getShownViewIndex()) {
+ mHasFirstRefresh = false;
+ }
+ mHelper = null;
+ }
+
mAdapter = null;
- mHelper = null;
}
@Override
@@ -249,7 +262,7 @@ public class GalleryPreviewsScene extends ToolbarScene implements EasyRecyclerVi
@Override
protected void getPageData(final int taskId, int type, int page) {
if (null == mClient || null == mGalleryInfo) {
- onGetExpection(taskId, new EhException(getString(R.string.error_cannot_find_gallery)));
+ onGetException(taskId, new EhException(getString(R.string.error_cannot_find_gallery)));
return;
}
@@ -322,7 +335,7 @@ public class GalleryPreviewsScene extends ToolbarScene implements EasyRecyclerVi
private void onGetLargePreviewSetFailure(Exception e, int taskId) {
if (mHelper != null && mHelper.isCurrentTask(taskId) && isViewCreated()) {
- mHelper.onGetExpection(taskId, e);
+ mHelper.onGetException(taskId, e);
}
}
diff --git a/app/src/main/java/com/hippo/widget/ContentLayout.java b/app/src/main/java/com/hippo/widget/ContentLayout.java
index c76ccf0dc..92c0f1a23 100644
--- a/app/src/main/java/com/hippo/widget/ContentLayout.java
+++ b/app/src/main/java/com/hippo/widget/ContentLayout.java
@@ -17,6 +17,7 @@
package com.hippo.widget;
import android.content.Context;
+import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.annotation.NonNull;
@@ -35,6 +36,7 @@ import com.hippo.easyrecyclerview.FastScroller;
import com.hippo.easyrecyclerview.HandlerDrawable;
import com.hippo.easyrecyclerview.LayoutManagerUtils;
import com.hippo.ehviewer.R;
+import com.hippo.util.DrawableManager;
import com.hippo.util.ExceptionUtils;
import com.hippo.view.ViewTransition;
import com.hippo.widget.refreshlayout.RefreshLayout;
@@ -51,14 +53,12 @@ public class ContentLayout extends FrameLayout {
private static final String TAG = ContentLayout.class.getSimpleName();
private ProgressView mProgressView;
- private ViewGroup mTipView;
+ private TextView mTipView;
private ViewGroup mContentView;
private RefreshLayout mRefreshLayout;
private EasyRecyclerView mRecyclerView;
private FastScroller mFastScroller;
- private View mImageView;
- private TextView mTextView;
private ContentHelper mContentHelper;
@@ -84,14 +84,12 @@ public class ContentLayout extends FrameLayout {
LayoutInflater.from(context).inflate(R.layout.widget_content_layout, this);
mProgressView = (ProgressView) findViewById(R.id.progress);
- mTipView = (ViewGroup) findViewById(R.id.tip);
+ mTipView = (TextView) findViewById(R.id.tip);
mContentView = (ViewGroup) findViewById(R.id.content_view);
mRefreshLayout = (RefreshLayout) mContentView.findViewById(R.id.refresh_layout);
mFastScroller = (FastScroller) mContentView.findViewById(R.id.fast_scroller);
mRecyclerView = (EasyRecyclerView) mRefreshLayout.findViewById(R.id.recycler_view);
- mImageView = mTipView.getChildAt(0);
- mTextView = (TextView) mTipView.getChildAt(1);
mFastScroller.attachToRecyclerView(mRecyclerView);
HandlerDrawable drawable = new HandlerDrawable();
@@ -190,13 +188,11 @@ public class ContentLayout extends FrameLayout {
public static final int REFRESH_TYPE_PROGRESS_VIEW = 2;
private ProgressView mProgressView;
- private ViewGroup mTipView;
+ private TextView mTipView;
private ViewGroup mContentView;
private RefreshLayout mRefreshLayout;
private EasyRecyclerView mRecyclerView;
- private View mImageView;
- private TextView mTextView;
private ViewTransition mViewTransition;
@@ -303,11 +299,12 @@ public class ContentLayout extends FrameLayout {
mRefreshLayout = contentLayout.mRefreshLayout;
mRecyclerView = contentLayout.mRecyclerView;
- mImageView = contentLayout.mImageView;
- mTextView = contentLayout.mTextView;
+
+ Drawable drawable = DrawableManager.getDrawable(getContext(), R.drawable.big_weird_face);
+ drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
+ mTipView.setCompoundDrawables(null, drawable, null, null);
mViewTransition = new ViewTransition(mContentView, mProgressView, mTipView);
- mViewTransition.showView(2, false);
mRecyclerView.addOnScrollListener(mOnScrollListener);
mRefreshLayout.setOnRefreshListener(mOnRefreshListener);
@@ -342,6 +339,10 @@ public class ContentLayout extends FrameLayout {
protected void onHideRecyclerView() {
}
+ public int getShownViewIndex() {
+ return mViewTransition.getShownViewIndex();
+ }
+
public void setRefreshLayoutEnable(boolean enable) {
mRefreshLayout.setEnabled(enable);
}
@@ -542,7 +543,7 @@ public class ContentLayout extends FrameLayout {
mRefreshLayout.setFooterRefreshing(false);
}
- public void onGetExpection(int taskId, Exception e) {
+ public void onGetException(int taskId, Exception e) {
if (mCurrentTaskId == taskId) {
mRefreshLayout.setHeaderRefreshing(false);
mRefreshLayout.setFooterRefreshing(false);
@@ -582,7 +583,7 @@ public class ContentLayout extends FrameLayout {
}
public void showText(CharSequence text) {
- mTextView.setText(text);
+ mTipView.setText(text);
if (mViewTransition.showView(2)) {
onHideRecyclerView();
}
@@ -692,7 +693,7 @@ public class ContentLayout extends FrameLayout {
/**
* Check range first!
*
- * @param page the targe page
+ * @param page the target page
* @throws IndexOutOfBoundsException
*/
public void goTo(int page) throws IndexOutOfBoundsException {
@@ -737,14 +738,7 @@ public class ContentLayout extends FrameLayout {
bundle.putParcelable(KEY_SUPER, superState);
int shownView = mViewTransition.getShownViewIndex();
bundle.putInt(KEY_SHOWN_VIEW, shownView);
- String tip;
- if (shownView == 2) {
- // It is progress view
- tip = getContext().getResources().getString(R.string.content_layout_restore_tip);
- } else {
- tip = mTextView.getText().toString();
- }
- bundle.putString(KEY_TIP, tip);
+ bundle.putString(KEY_TIP, mTipView.getText().toString());
// TODO What if data is large
bundle.putParcelableArrayList(KEY_DATA, mData);
bundle.putInt(KEY_NEXT_ID, mIdGenerator.nextId());
@@ -758,12 +752,8 @@ public class ContentLayout extends FrameLayout {
private Parcelable restoreInstanceState(Parcelable state) {
if (state instanceof Bundle) {
Bundle bundle = (Bundle) state;
- int shownView = bundle.getInt(KEY_SHOWN_VIEW);
- if (shownView != 0) {
- shownView = 2;
- }
- mViewTransition.showView(shownView, false);
- mTextView.setText(bundle.getString(KEY_TIP));
+ mViewTransition.showView(bundle.getInt(KEY_SHOWN_VIEW), false);
+ mTipView.setText(bundle.getString(KEY_TIP));
mData = bundle.getParcelableArrayList(KEY_DATA);
mIdGenerator.setNextId(bundle.getInt(KEY_NEXT_ID));
mPageDivider = bundle.getParcelable(KEY_PAGE_DIVIDER);
diff --git a/app/src/main/res/drawable/big_weird_face.xml b/app/src/main/res/drawable/big_weird_face.xml
new file mode 100644
index 000000000..a53f280dd
--- /dev/null
+++ b/app/src/main/res/drawable/big_weird_face.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/widget_content_layout.xml b/app/src/main/res/layout/widget_content_layout.xml
index 14ff7ba93..3cb378d47 100644
--- a/app/src/main/res/layout/widget_content_layout.xml
+++ b/app/src/main/res/layout/widget_content_layout.xml
@@ -25,30 +25,14 @@
android:layout_height="wrap_content"
android:layout_gravity="center"/>
-
-
-
-
-
-
-
+ android:gravity="center_horizontal"
+ android:drawablePadding="16dp"
+ style="@style/TextAppearance.AppCompat.Medium"/>
M20.46,14.65C21.86,16.15,20.31,18.6,18.32,17.87C19.78,17.57,20.79,16.37,20.46,14.65ZM4.32,17.87C6.32,18.6,7.86,16.17,6.46,14.65C6.79,16.38,5.78,17.55,4.32,17.87ZM16.87,4.3C16.6,3.56,15.87,3,15,3C13.7,3,12.7,4.24,13.1,5.58C14.2,5.18,15.44,4.48,16.87,4.31ZM24,16C24,18.76,21.76,21,19,21C14.96,21,14.84,16.88,12,16.88S9.04,21,5,21C2.24,21,0,18.76,0,16C0,13.87,1.53,11.43,3.94,7.18C5.84,3.81,8.69,5.92,10.76,6.58C11.54,6.85,12.41,6.88,13.24,6.58C15.3,5.92,18.14,3.81,20.06,7.18C22.46,11.43,24,13.88,24,16ZM8,16C8,14.35,6.65,13,5,13S2,14.35,2,16S3.35,19,5,19S8,17.65,8,16ZM13,14C13,13.45,12.55,13,12,13S11,13.45,11,14S11.45,15,12,15S13,14.55,13,14ZM22,16C22,14.35,20.65,13,19,13S16,14.35,16,16S17.35,19,19,19S22,17.65,22,16ZM9,3C8.14,3,7.4,3.55,7.13,4.3C8.56,4.48,9.79,5.2,10.9,5.58C11.3,4.24,10.3,3,9,3Z
M5.5,2H22V0H5C3.3,0,2,1.3,2,3V21C2,22.7,3.3,24,5,24H22V4H5.5C4.1,4,4.1,2,5.5,2ZM20,6V22H6V6H20M12.5,11.8V14.4L14.9,15.8L15.3,15.2L13.3,14V11.9M13.3,9.3C11.5,9.3,10,10.3,9.2,11.7L8,10.5V13.8H11.3L9.9,12.4C10.5,11.1,11.8,10.3,13.3,10.3C15.4,10.3,17.1,12,17.1,14.1S15.4,17.9,13.3,17.9C11.7,17.9,10.3,16.9,9.8,15.4H8.7C9.3,17.4,11.1,18.9,13.3,18.9C15.9,18.9,18.1,16.8,18.1,14.1C18,11.4,15.9,9.3,13.3,9.3Z
M0,19V24H24V19H0ZM16,22H15V21H16V22ZM19,22H18V21H19V22ZM22,22H21V21H22V22M15,11L15,0L9,0L9,11L5,11L12,18L19,11Z
+ M12.9,21.3C11.3,19.4,10.5,18.3,8.6,17.1C7.5,16.4,6.6,15.4,5.9,14.4L6.4,13.9L6.4,13.9C8.9,15.9,11.2,16.2,15.8,16.2C15.8,16.2,17,17.4,18.2,18.8C21.1,22,16.1,25,12.9,21.3ZM10.9,21.9C5.9,21.4,2,17.1,2,12C2,6.5,6.5,2,12,2S22,6.5,22,12C22,14.2,21.3,16.2,20.1,17.8C20.6,18.4,20.9,19.1,21.1,19.8C22.9,17.7,24,15,24,12C24,5.4,18.6,0,12,0S0,5.4,0,12S5.4,24,12,24C12.3,24,12.6,24,12.9,24C12,23.3,11.6,22.8,10.9,21.9M8.5,10.7L7.2,12L6,10.8L7.3,9.5L6,8.2L7.2,7L8.5,8.3L9.8,7L11,8.2L9.7,9.5L11,10.8L9.8,12C9.8,12,8.5,10.7,8.5,10.7M15.5,6C13.6,6,12,7.6,12,9.5S13.6,13,15.5,13S19,11.4,19,9.5S17.4,6,15.5,6ZM15.5,11C14.7,11,14,10.3,14,9.5S14.7,8,15.5,8S17,8.7,17,9.5S16.3,11,15.5,11Z
M13,0C20.2,0,26,5.9,26,13.2,26,16.9,24,20.8,18.7,26.1L13,32,7.2,26.2C2,20.8,0,16.9,0,13.3,0,5.9,5.8,0,13,0Z