diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java index 3dee8de87..2f0e9758b 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java @@ -258,12 +258,7 @@ public class DownloadsScene extends ToolbarScene public void onDestroyView() { super.onDestroyView(); - if (null != mRecyclerView) { - mRecyclerView.setAdapter(null); - mRecyclerView.setLayoutManager(null); - mRecyclerView = null; - } - + mRecyclerView = null; mFabLayout = null; mViewTransition = null; mAdapter = null; 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 74b71cd80..7a2849623 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 @@ -18,7 +18,6 @@ package com.hippo.ehviewer.ui.scene; import android.content.Context; import android.content.DialogInterface; -import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.support.annotation.Nullable; @@ -76,6 +75,7 @@ import com.hippo.yorozuya.SimpleHandler; import com.hippo.yorozuya.ViewUtils; import java.util.ArrayList; +import java.util.Collections; import java.util.List; // TODO Bug for FavoritesScene and GalleryListScene, if list view of SearchBar expand first, RecyclerView padding top will be wrong @@ -227,8 +227,6 @@ public class FavoritesScene extends BaseScene implements @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - Resources resources = getResources(); - View view = inflater.inflate(R.layout.scene_favorites, container, false); ContentLayout contentLayout = (ContentLayout) view.findViewById(R.id.content_layout); mRecyclerView = contentLayout.getRecyclerView(); @@ -255,6 +253,7 @@ public class FavoritesScene extends BaseScene implements mAdapter = new FavoritesAdapter(LayoutInflater.from(getContext()), getContext(), mRecyclerView, layoutManager, Settings.getListMode()); mRecyclerView.setAdapter(mAdapter); + mAdapter.register(); mLeftDrawable = new DrawerArrowDrawable(getContext()); mSearchBar.setLeftDrawable(mLeftDrawable); @@ -336,16 +335,15 @@ public class FavoritesScene extends BaseScene implements public void onDestroyView() { super.onDestroyView(); - if (null != mRecyclerView) { - mRecyclerView.setAdapter(null); - mRecyclerView.setLayoutManager(null); - mRecyclerView = null; + if (null != mAdapter) { + mAdapter.unregister(); + mAdapter = null; } + mRecyclerView = null; mSearchBar = null; mFabLayout = null; - mAdapter = null; mHelper = null; mSearchBarMover = null; mLeftDrawable = null; @@ -412,9 +410,7 @@ public class FavoritesScene extends BaseScene implements mDrawerList.add(getString(R.string.local_favorites)); mDrawerList.add(getString(R.string.cloud_favorites)); if (mFavCatArray != null) { - for (String favCat: mFavCatArray) { - mDrawerList.add(favCat); - } + Collections.addAll(mDrawerList, mFavCatArray); } mDrawerAdapter = new ArrayAdapter<>(getContext(), R.layout.item_simple_list, mDrawerList); listView.setAdapter(mDrawerAdapter); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryAdapter.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryAdapter.java index 725f1f923..e452bf9e8 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryAdapter.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryAdapter.java @@ -182,13 +182,11 @@ abstract class GalleryAdapter extends RecyclerView.Adapter implem } } - @Override - public void onAttachedToRecyclerView(RecyclerView recyclerView) { + public void register() { Messenger.getInstance().register(Constants.MESSAGE_ID_LIST_MODE, this); } - @Override - public void onDetachedFromRecyclerView(RecyclerView recyclerView) { + public void unregister() { Messenger.getInstance().unregister(Constants.MESSAGE_ID_LIST_MODE, this); } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryInfoScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryInfoScene.java index 43caf2778..c92a3944e 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryInfoScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryInfoScene.java @@ -56,12 +56,6 @@ public final class GalleryInfoScene extends ToolbarScene implements EasyRecycler @Nullable private ArrayList mValues; - /*--------------- - View life cycle - ---------------*/ - @Nullable - private EasyRecyclerView mRecyclerView; - @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -157,33 +151,22 @@ public final class GalleryInfoScene extends ToolbarScene implements EasyRecycler @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.scene_gallery_info, container, false); - mRecyclerView = (EasyRecyclerView) ViewUtils.$$(view, R.id.recycler_view); + EasyRecyclerView recyclerView = (EasyRecyclerView) ViewUtils.$$(view, R.id.recycler_view); InfoAdapter adapter = new InfoAdapter(); - mRecyclerView.setAdapter(adapter); - mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false)); + recyclerView.setAdapter(adapter); + recyclerView.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false)); LinearDividerItemDecoration decoration = new LinearDividerItemDecoration( LinearDividerItemDecoration.VERTICAL, getResources().getColor(R.color.divider), LayoutUtils.dp2pix(getContext(), 1)); decoration.setPadding(getResources().getDimensionPixelOffset(R.dimen.keyline_margin)); - mRecyclerView.addItemDecoration(decoration); - mRecyclerView.setSelector(RippleSalon.generateRippleDrawable(false)); - mRecyclerView.setClipToPadding(false); - mRecyclerView.setHasFixedSize(true); - mRecyclerView.setOnItemClickListener(this); + recyclerView.addItemDecoration(decoration); + recyclerView.setSelector(RippleSalon.generateRippleDrawable(false)); + recyclerView.setClipToPadding(false); + recyclerView.setHasFixedSize(true); + recyclerView.setOnItemClickListener(this); return view; } - @Override - public void onDestroyView() { - super.onDestroyView(); - - if (null != mRecyclerView) { - mRecyclerView.setAdapter(null); - mRecyclerView.setLayoutManager(null); - mRecyclerView = null; - } - } - @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); 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 aa56e3e6d..4bcf00046 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 @@ -343,6 +343,7 @@ public final class GalleryListScene extends BaseScene mAdapter = new GalleryListAdapter(LayoutInflater.from(getContext()), getContext(), mRecyclerView, layoutManager, Settings.getListMode()); mRecyclerView.setAdapter(mAdapter); + mAdapter.register(); mLeftDrawable = new DrawerArrowDrawable(getContext()); mRightDrawable = new AddDeleteDrawable(getContext()); @@ -379,22 +380,21 @@ public final class GalleryListScene extends BaseScene public void onDestroyView() { super.onDestroyView(); - if (null != mRecyclerView) { - mRecyclerView.setAdapter(null); - mRecyclerView.setLayoutManager(null); - mRecyclerView = null; - } - if (mSearchBarMover != null) { + if (null != mSearchBarMover) { mSearchBarMover.cancelAnimation(); mSearchBarMover = null; } + if (null != mAdapter) { + mAdapter.unregister(); + mAdapter = null; + } + mRecyclerView = null; mFitPaddingLayout = null; mSearchLayout = null; mSearchBar = null; mFab = null; mViewTransition = null; - mAdapter = null; mHelper = null; mLeftDrawable = null; mRightDrawable = null; 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 470013021..f8ad7697f 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 @@ -75,8 +75,6 @@ public class GalleryPreviewsScene extends ToolbarScene implements EasyRecyclerVi View life cycle ---------------*/ @Nullable - private EasyRecyclerView mRecyclerView; - @Nullable private GalleryPreviewAdapter mAdapter; @Nullable private GalleryPreviewHelper mHelper; @@ -123,16 +121,16 @@ public class GalleryPreviewsScene extends ToolbarScene implements EasyRecyclerVi ContentLayout contentLayout = (ContentLayout) inflater.inflate( R.layout.scene_gallery_previews, container, false); contentLayout.hideFastScroll(); - mRecyclerView = contentLayout.getRecyclerView(); + EasyRecyclerView recyclerView = contentLayout.getRecyclerView(); mAdapter = new GalleryPreviewAdapter(); - mRecyclerView.setAdapter(mAdapter); - mRecyclerView.setLayoutManager(new GridLayoutManager(getContext(), 3)); // TODO hardcode + recyclerView.setAdapter(mAdapter); + recyclerView.setLayoutManager(new GridLayoutManager(getContext(), 3)); // TODO hardcode int padding = LayoutUtils.dp2pix(getContext(), 4); - mRecyclerView.setPadding(padding, padding, padding, padding); - mRecyclerView.setClipToPadding(false); - mRecyclerView.addItemDecoration(new MarginItemDecoration(padding)); - mRecyclerView.setOnItemClickListener(this); + recyclerView.setPadding(padding, padding, padding, padding); + recyclerView.setClipToPadding(false); + recyclerView.addItemDecoration(new MarginItemDecoration(padding)); + recyclerView.setOnItemClickListener(this); mHelper = new GalleryPreviewHelper(); contentLayout.setHelper(mHelper); @@ -150,12 +148,6 @@ public class GalleryPreviewsScene extends ToolbarScene implements EasyRecyclerVi public void onDestroyView() { super.onDestroyView(); - if (null != mRecyclerView) { - mRecyclerView.setAdapter(null); - mRecyclerView.setLayoutManager(null); - mRecyclerView = null; - } - mAdapter = null; mHelper = null; } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/HistoryScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/HistoryScene.java index 055f5576b..54b5ae2d3 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/HistoryScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/HistoryScene.java @@ -59,8 +59,6 @@ public class HistoryScene extends ToolbarScene View life cycle ---------------*/ @Nullable - private EasyRecyclerView mRecyclerView; - @Nullable private ViewTransition mViewTransition; @Nullable private HistoryAdapter mAdapter; @@ -78,7 +76,7 @@ public class HistoryScene extends ToolbarScene @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.scene_history, container, false); View content = ViewUtils.$$(view, R.id.content); - mRecyclerView = (EasyRecyclerView) ViewUtils.$$(content, R.id.recycler_view); + EasyRecyclerView recyclerView = (EasyRecyclerView) ViewUtils.$$(content, R.id.recycler_view); FastScroller fastScroller = (FastScroller) ViewUtils.$$(content, R.id.fast_scroller); TextView tip = (TextView) ViewUtils.$$(view, R.id.tip); mViewTransition = new ViewTransition(content, tip); @@ -89,18 +87,19 @@ public class HistoryScene extends ToolbarScene mList = EhDB.getHistoryLazyList(); GridLayoutManager layoutManager = new GridLayoutManager(getContext(), 1); - mRecyclerView.setLayoutManager(layoutManager); - mRecyclerView.setSelector(RippleSalon.generateRippleDrawable(false)); - mRecyclerView.setDrawSelectorOnTop(true); - mRecyclerView.hasFixedSize(); - mRecyclerView.setClipToPadding(false); - mRecyclerView.setOnItemClickListener(this); - mRecyclerView.setOnItemLongClickListener(this); + recyclerView.setLayoutManager(layoutManager); + recyclerView.setSelector(RippleSalon.generateRippleDrawable(false)); + recyclerView.setDrawSelectorOnTop(true); + recyclerView.hasFixedSize(); + recyclerView.setClipToPadding(false); + recyclerView.setOnItemClickListener(this); + recyclerView.setOnItemLongClickListener(this); mAdapter = new HistoryAdapter(LayoutInflater.from(getContext()), - getContext(), mRecyclerView, layoutManager, Settings.getListMode()); - mRecyclerView.setAdapter(mAdapter); + getContext(), recyclerView, layoutManager, Settings.getListMode()); + recyclerView.setAdapter(mAdapter); + mAdapter.register(); - fastScroller.attachToRecyclerView(mRecyclerView); + fastScroller.attachToRecyclerView(recyclerView); HandlerDrawable handlerDrawable = new HandlerDrawable(); handlerDrawable.setColor(ResourcesUtils.getAttrColor(getContext(), R.attr.colorAccent)); fastScroller.setHandlerDrawable(handlerDrawable); @@ -125,15 +124,14 @@ public class HistoryScene extends ToolbarScene public void onDestroyView() { super.onDestroyView(); - if (null != mRecyclerView) { - mRecyclerView.setAdapter(null); - mRecyclerView.setLayoutManager(null); - mRecyclerView = null; - } if (null != mList) { mList.close(); mList = null; } + if (null != mAdapter) { + mAdapter.unregister(); + mAdapter = null; + } mViewTransition = null; mAdapter = null; @@ -146,7 +144,7 @@ public class HistoryScene extends ToolbarScene @Override public boolean onItemClick(EasyRecyclerView parent, View view, int position, long id) { - if (null == mList || null == mRecyclerView) { + if (null == mList) { return false; } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/QuickSearchScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/QuickSearchScene.java index e46bc5089..304f24290 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/QuickSearchScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/QuickSearchScene.java @@ -64,8 +64,6 @@ public final class QuickSearchScene extends ToolbarScene { View life cycle ---------------*/ @Nullable - private EasyRecyclerView mRecyclerView; - @Nullable private ViewTransition mViewTransition; @Nullable private RecyclerView.Adapter mAdapter; @@ -89,9 +87,9 @@ public final class QuickSearchScene extends ToolbarScene { @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.scene_label_list, container, false); - mRecyclerView = (EasyRecyclerView) ViewUtils.$$(view, R.id.recycler_view); + EasyRecyclerView recyclerView = (EasyRecyclerView) ViewUtils.$$(view, R.id.recycler_view); TextView tip = (TextView) ViewUtils.$$(view, R.id.tip); - mViewTransition = new ViewTransition(mRecyclerView, tip); + mViewTransition = new ViewTransition(recyclerView, tip); Drawable drawable = DrawableManager.getDrawable(getContext(), R.drawable.big_search); drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); @@ -115,13 +113,13 @@ public final class QuickSearchScene extends ToolbarScene { mAdapter = adapter; final GeneralItemAnimator animator = new SwipeDismissItemAnimator(); animator.setSupportsChangeAnimations(false); - mRecyclerView.hasFixedSize(); - mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext())); - mRecyclerView.setAdapter(adapter); - mRecyclerView.setItemAnimator(animator); - guardManager.attachRecyclerView(mRecyclerView); - swipeManager.attachRecyclerView(mRecyclerView); - dragDropManager.attachRecyclerView(mRecyclerView); + recyclerView.hasFixedSize(); + recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); + recyclerView.setAdapter(adapter); + recyclerView.setItemAnimator(animator); + guardManager.attachRecyclerView(recyclerView); + swipeManager.attachRecyclerView(recyclerView); + dragDropManager.attachRecyclerView(recyclerView); updateView(); @@ -139,12 +137,6 @@ public final class QuickSearchScene extends ToolbarScene { public void onDestroyView() { super.onDestroyView(); - if (null != mRecyclerView) { - mRecyclerView.setAdapter(null); - mRecyclerView.setLayoutManager(null); - mRecyclerView = null; - } - mViewTransition = null; mAdapter = null; }