Add empty list tip
This commit is contained in:
1 parent
6992b1591b
commit
c30c3aef77
11 files changed
+207
-12
No files matched your search
@@ -34,6 +34,7 @@ import com.h6ah4i.android.widget.advrecyclerview.swipeable.SwipeableItemAdapter;
|
||||
import com.h6ah4i.android.widget.advrecyclerview.touchguard.RecyclerViewTouchActionGuardManager;
|
||||
import com.h6ah4i.android.widget.advrecyclerview.utils.AbstractDraggableSwipeableItemViewHolder;
|
||||
import com.h6ah4i.android.widget.advrecyclerview.utils.WrapperAdapterUtils;
|
||||
import com.hippo.effect.ViewTransition;
|
||||
import com.hippo.ehviewer.R;
|
||||
import com.hippo.rippleold.RippleSalon;
|
||||
import com.hippo.scene.AppbarScene;
|
||||
@@ -46,6 +47,8 @@ import java.util.List;
|
||||
|
||||
public abstract class AbsDragSortScene extends AppbarScene {
|
||||
|
||||
private ViewGroup mTip;
|
||||
private TextView mTipTextView;
|
||||
private EasyRecyclerView mRecyclerView;
|
||||
private RecyclerView.LayoutManager mLayoutManager;
|
||||
private RecyclerView.Adapter mAdapter;
|
||||
@@ -54,6 +57,8 @@ public abstract class AbsDragSortScene extends AppbarScene {
|
||||
private RecyclerViewSwipeManager mRecyclerViewSwipeManager;
|
||||
private RecyclerViewTouchActionGuardManager mRecyclerViewTouchActionGuardManager;
|
||||
|
||||
private ViewTransition mViewTransition;
|
||||
|
||||
private int mOriginalPaddingBottom;
|
||||
|
||||
@Override
|
||||
@@ -65,6 +70,8 @@ public abstract class AbsDragSortScene extends AppbarScene {
|
||||
|
||||
Resources resources = getStageActivity().getResources();
|
||||
|
||||
mTip = (ViewGroup) findViewById(R.id.tip);
|
||||
mTipTextView = (TextView) mTip.findViewById(R.id.text_view);
|
||||
mRecyclerView = (EasyRecyclerView) findViewById(R.id.recycler_view);
|
||||
mOriginalPaddingBottom = mRecyclerView.getPaddingBottom();
|
||||
|
||||
@@ -118,11 +125,27 @@ public abstract class AbsDragSortScene extends AppbarScene {
|
||||
mRecyclerViewTouchActionGuardManager.attachRecyclerView(mRecyclerView);
|
||||
mRecyclerViewSwipeManager.attachRecyclerView(mRecyclerView);
|
||||
mRecyclerViewDragDropManager.attachRecyclerView(mRecyclerView);
|
||||
|
||||
mViewTransition = new ViewTransition(mTip, mRecyclerView);
|
||||
if (mWrappedAdapter.getItemCount() == 0) {
|
||||
mViewTransition.showView(0, false);
|
||||
} else {
|
||||
mViewTransition.showView(1, false);
|
||||
}
|
||||
}
|
||||
|
||||
public void setTipText(String text) {
|
||||
mTipTextView.setText(text);
|
||||
}
|
||||
|
||||
public void notifyDataSetChanged() {
|
||||
if (mWrappedAdapter != null) {
|
||||
mWrappedAdapter.notifyDataSetChanged();
|
||||
if (mWrappedAdapter.getItemCount() == 0) {
|
||||
mViewTransition.showView(0, true);
|
||||
} else {
|
||||
mViewTransition.showView(1, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -311,6 +334,12 @@ public abstract class AbsDragSortScene extends AppbarScene {
|
||||
onRemove(position);
|
||||
mList.remove(position);
|
||||
notifyItemRemoved(position);
|
||||
// Try to show tip
|
||||
if (mWrappedAdapter.getItemCount() == 0) {
|
||||
mViewTransition.showView(0, true);
|
||||
} else {
|
||||
mViewTransition.showView(1, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -49,6 +49,8 @@ public class DownloadLabelScene extends AbsDragSortScene implements AppbarScene.
|
||||
protected void onCreate(boolean rebirth) {
|
||||
super.onCreate(rebirth);
|
||||
|
||||
setTipText("No download label"); // TODO hardcode
|
||||
|
||||
addAction(R.drawable.ic_plus_dark_x24);
|
||||
|
||||
setOnClickActionListener(this);
|
||||
|
||||
@@ -175,6 +175,7 @@ public class DownloadScene extends Scene implements DrawerProvider,
|
||||
mRightDrawerView.setOnItemClickListener(new DownloadTagClickListener());
|
||||
mRightDrawerView.setPlusVisibility(View.GONE);
|
||||
mRightDrawerView.setHelper(this);
|
||||
mRightDrawerView.showRecyclerView(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -334,6 +334,12 @@ public final class GalleryListScene extends Scene implements ListSearchBar.Helpe
|
||||
mRightDrawerView.setAdapter(mQuickSearchAdapter);
|
||||
mRightDrawerView.setOnItemClickListener(new QuickSearchClickListener());
|
||||
mRightDrawerView.setHelper(this);
|
||||
mRightDrawerView.setTipText("No quick search"); // TODO hardcode
|
||||
if (mQuickSearchAdapter.getItemCount() == 0) {
|
||||
mRightDrawerView.showTip(false);
|
||||
} else {
|
||||
mRightDrawerView.showRecyclerView(false);
|
||||
}
|
||||
|
||||
// When scene start
|
||||
if (!rebirth) {
|
||||
@@ -932,6 +938,11 @@ public final class GalleryListScene extends Scene implements ListSearchBar.Helpe
|
||||
} else if (Constants.MESSENGER_ID_UPDATE_QUICK_SEARCH == id) {
|
||||
mQuickSearches = DBUtils.getAllQuickSearch();
|
||||
mQuickSearchAdapter.notifyDataSetChanged();
|
||||
if (mQuickSearchAdapter.getItemCount() == 0) {
|
||||
mRightDrawerView.showTip(false);
|
||||
} else {
|
||||
mRightDrawerView.showRecyclerView(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -46,6 +46,13 @@ public class QuickSearchScene extends AbsDragSortScene implements Messenger.Rece
|
||||
Messenger.getInstance().unregister(Constants.MESSENGER_ID_UPDATE_QUICK_SEARCH_NAME, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(boolean rebirth) {
|
||||
super.onCreate(rebirth);
|
||||
|
||||
setTipText("No quick search"); // TODO hardcode
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy(boolean die) {
|
||||
super.onDestroy(die);
|
||||
|
||||
@@ -22,9 +22,11 @@ import android.support.v7.widget.RecyclerView;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.hippo.effect.ViewTransition;
|
||||
import com.hippo.ehviewer.R;
|
||||
import com.hippo.rippleold.RippleSalon;
|
||||
import com.hippo.widget.recyclerview.EasyRecyclerView;
|
||||
@@ -36,8 +38,12 @@ public class AppbarRecyclerView extends LinearLayout implements View.OnClickList
|
||||
public TextView mTitle;
|
||||
public View mPlus;
|
||||
public View mSettings;
|
||||
public ViewGroup mTip;
|
||||
public TextView mTipTextView;
|
||||
public EasyRecyclerView mRecyclerView;
|
||||
|
||||
public ViewTransition mViewTransition;
|
||||
|
||||
public int mOriginalPaddingBottom;
|
||||
|
||||
public Helper mHelper;
|
||||
@@ -64,6 +70,8 @@ public class AppbarRecyclerView extends LinearLayout implements View.OnClickList
|
||||
mTitle = (TextView) findViewById(R.id.title);
|
||||
mPlus = findViewById(R.id.plus);
|
||||
mSettings = findViewById(R.id.settings);
|
||||
mTip = (ViewGroup) findViewById(R.id.tip);
|
||||
mTipTextView = (TextView) mTip.findViewById(R.id.text_view);
|
||||
mRecyclerView = (EasyRecyclerView) findViewById(R.id.recycler_view);
|
||||
|
||||
mRecyclerView.setHasFixedSize(true);
|
||||
@@ -85,6 +93,8 @@ public class AppbarRecyclerView extends LinearLayout implements View.OnClickList
|
||||
RippleSalon.addRipple(mSettings, true);
|
||||
|
||||
mOriginalPaddingBottom = mRecyclerView.getPaddingBottom();
|
||||
|
||||
mViewTransition = new ViewTransition(mTip, mRecyclerView);
|
||||
}
|
||||
|
||||
public void setHelper(Helper helper) {
|
||||
@@ -95,10 +105,22 @@ public class AppbarRecyclerView extends LinearLayout implements View.OnClickList
|
||||
mTitle.setText(title);
|
||||
}
|
||||
|
||||
public void setTipText(String tipText) {
|
||||
mTipTextView.setText(tipText);
|
||||
}
|
||||
|
||||
public void setAdapter(RecyclerView.Adapter adapter) {
|
||||
mRecyclerView.setAdapter(adapter);
|
||||
}
|
||||
|
||||
public void showTip(boolean animation) {
|
||||
mViewTransition.showView(0, animation);
|
||||
}
|
||||
|
||||
public void showRecyclerView(boolean animation) {
|
||||
mViewTransition.showView(1, animation);
|
||||
}
|
||||
|
||||
public void setOnItemClickListener(EasyRecyclerView.OnItemClickListener listener) {
|
||||
mRecyclerView.setOnItemClickListener(listener);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user