Search in sources :

Example 1 with SwipeableItemTouchHelperCallback

use of org.wikipedia.views.SwipeableItemTouchHelperCallback in project apps-android-wikipedia by wikimedia.

the class ReadingListFragment method onCreateView.

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    super.onCreateView(inflater, container, savedInstanceState);
    View view = inflater.inflate(R.layout.fragment_reading_list, container, false);
    unbinder = ButterKnife.bind(this, view);
    getAppCompatActivity().setSupportActionBar(toolbar);
    getAppCompatActivity().getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getAppCompatActivity().getSupportActionBar().setTitle("");
    DeviceUtil.updateStatusBarTheme(requireActivity(), toolbar, true);
    appBarLayout.addOnOffsetChangedListener(appBarListener);
    toolBarLayout.setCollapsedTitleTextColor(ResourceUtil.getThemedColor(requireContext(), R.attr.main_toolbar_icon_color));
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        toolBarLayout.setStatusBarScrimColor(ResourceUtil.getThemedColor(requireContext(), R.attr.main_status_bar_color));
    }
    ItemTouchHelper.Callback touchCallback = new SwipeableItemTouchHelperCallback(requireContext());
    ItemTouchHelper itemTouchHelper = new ItemTouchHelper(touchCallback);
    itemTouchHelper.attachToRecyclerView(recyclerView);
    recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
    recyclerView.setAdapter(adapter);
    ((SimpleItemAnimator) recyclerView.getItemAnimator()).setSupportsChangeAnimations(false);
    recyclerView.addItemDecoration(new DrawableItemDecoration(requireContext(), R.attr.list_separator_drawable, false));
    recyclerView.addItemDecoration(new MarginItemDecoration(0, 0, 0, DimenUtil.roundedDpToPx(DimenUtil.getDimension(R.dimen.floating_queue_container_height))) {

        @Override
        public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
            if (parent.getChildAdapterPosition(view) == adapter.getItemCount() - 1 && floatingQueueView.getVisibility() == View.VISIBLE) {
                super.getItemOffsets(outRect, view, parent, state);
            }
        }
    });
    headerView = new ReadingListItemView(getContext());
    headerView.setCallback(headerCallback);
    headerView.setClickable(false);
    headerView.setThumbnailVisible(false);
    headerView.setTitleTextAppearance(R.style.ReadingListTitleTextAppearance);
    readingListId = getArguments().getLong(EXTRA_READING_LIST_ID);
    disposables.add(WikipediaApp.getInstance().getBus().subscribe(new EventBusConsumer()));
    floatingQueueView.setCallback(this);
    swipeRefreshLayout.setColorSchemeResources(getThemedAttributeId(requireContext(), R.attr.colorAccent));
    swipeRefreshLayout.setOnRefreshListener(() -> ReadingListsFragment.refreshSync(ReadingListFragment.this, swipeRefreshLayout));
    if (ReadingListSyncAdapter.isDisabledByRemoteConfig()) {
        swipeRefreshLayout.setEnabled(false);
    }
    appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> swipeRefreshLayout.setEnabled(verticalOffset == 0));
    return view;
}
Also used : Rect(android.graphics.Rect) SimpleItemAnimator(android.support.v7.widget.SimpleItemAnimator) DrawableItemDecoration(org.wikipedia.views.DrawableItemDecoration) MarginItemDecoration(org.wikipedia.views.MarginItemDecoration) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) FloatingQueueView(org.wikipedia.main.floatingqueue.FloatingQueueView) PageItemView(org.wikipedia.views.PageItemView) BindView(butterknife.BindView) View(android.view.View) SearchEmptyView(org.wikipedia.views.SearchEmptyView) TextView(android.widget.TextView) RecyclerView(android.support.v7.widget.RecyclerView) ItemTouchHelper(android.support.v7.widget.helper.ItemTouchHelper) RecyclerView(android.support.v7.widget.RecyclerView) SwipeableItemTouchHelperCallback(org.wikipedia.views.SwipeableItemTouchHelperCallback) Nullable(android.support.annotation.Nullable)

Example 2 with SwipeableItemTouchHelperCallback

use of org.wikipedia.views.SwipeableItemTouchHelperCallback in project apps-android-wikipedia by wikimedia.

the class NotificationActivity method onCreate.

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_notifications);
    ButterKnife.bind(this);
    errorView.setRetryClickListener((v) -> beginUpdateList());
    recyclerView.setLayoutManager(new LinearLayoutManager(this));
    recyclerView.addItemDecoration(new DrawableItemDecoration(this, R.attr.list_separator_drawable));
    ItemTouchHelper.Callback touchCallback = new SwipeableItemTouchHelperCallback(this, ResourceUtil.getThemedAttributeId(this, R.attr.chart_shade5), R.drawable.ic_archive_white_24dp, ResourceUtil.getThemedAttributeId(this, R.attr.secondary_text_color));
    ItemTouchHelper itemTouchHelper = new ItemTouchHelper(touchCallback);
    itemTouchHelper.attachToRecyclerView(recyclerView);
    swipeRefreshLayout.setOnRefreshListener(() -> {
        swipeRefreshLayout.setRefreshing(false);
        beginUpdateList();
    });
    beginUpdateList();
    NotificationSettingsActivity.promptEnablePollDialog(this);
}
Also used : ItemTouchHelper(android.support.v7.widget.helper.ItemTouchHelper) DrawableItemDecoration(org.wikipedia.views.DrawableItemDecoration) SwipeableItemTouchHelperCallback(org.wikipedia.views.SwipeableItemTouchHelperCallback) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager)

Example 3 with SwipeableItemTouchHelperCallback

use of org.wikipedia.views.SwipeableItemTouchHelperCallback in project apps-android-wikipedia by wikimedia.

the class HistoryFragment method onCreateView.

@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_history, container, false);
    unbinder = ButterKnife.bind(this, view);
    searchEmptyView.setEmptyText(R.string.search_history_no_results);
    ItemTouchHelper.Callback touchCallback = new SwipeableItemTouchHelperCallback(requireContext());
    ItemTouchHelper itemTouchHelper = new ItemTouchHelper(touchCallback);
    itemTouchHelper.attachToRecyclerView(historyList);
    historyList.setLayoutManager(new LinearLayoutManager(getContext()));
    historyList.setAdapter(adapter);
    historyList.addItemDecoration(new MarginItemDecoration(0, 0, 0, DimenUtil.roundedDpToPx(DimenUtil.getDimension(R.dimen.floating_queue_container_height))) {

        @Override
        public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
            if (parent.getChildAdapterPosition(view) == adapter.getItemCount() - 1 && ((MainActivity) requireActivity()).isFloatingQueueEnabled()) {
                super.getItemOffsets(outRect, view, parent, state);
            }
        }
    });
    requireActivity().getSupportLoaderManager().initLoader(HISTORY_FRAGMENT_LOADER_ID, null, loaderCallback);
    return view;
}
Also used : ItemTouchHelper(android.support.v7.widget.helper.ItemTouchHelper) Rect(android.graphics.Rect) RecyclerView(android.support.v7.widget.RecyclerView) SwipeableItemTouchHelperCallback(org.wikipedia.views.SwipeableItemTouchHelperCallback) MarginItemDecoration(org.wikipedia.views.MarginItemDecoration) MainActivity(org.wikipedia.main.MainActivity) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) PageItemView(org.wikipedia.views.PageItemView) BindView(butterknife.BindView) View(android.view.View) SearchEmptyView(org.wikipedia.views.SearchEmptyView) RecyclerView(android.support.v7.widget.RecyclerView)

Aggregations

LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)3 ItemTouchHelper (android.support.v7.widget.helper.ItemTouchHelper)3 SwipeableItemTouchHelperCallback (org.wikipedia.views.SwipeableItemTouchHelperCallback)3 Rect (android.graphics.Rect)2 RecyclerView (android.support.v7.widget.RecyclerView)2 View (android.view.View)2 BindView (butterknife.BindView)2 DrawableItemDecoration (org.wikipedia.views.DrawableItemDecoration)2 MarginItemDecoration (org.wikipedia.views.MarginItemDecoration)2 PageItemView (org.wikipedia.views.PageItemView)2 SearchEmptyView (org.wikipedia.views.SearchEmptyView)2 Nullable (android.support.annotation.Nullable)1 SimpleItemAnimator (android.support.v7.widget.SimpleItemAnimator)1 TextView (android.widget.TextView)1 MainActivity (org.wikipedia.main.MainActivity)1 FloatingQueueView (org.wikipedia.main.floatingqueue.FloatingQueueView)1