Search in sources :

Example 1 with ItemAdapter

use of it.niedermann.owncloud.notes.model.ItemAdapter in project nextcloud-notes by stefan-niedermann.

the class NotesListViewActivity method initList.

public void initList() {
    adapter = new ItemAdapter(this);
    RecyclerView listView = findViewById(R.id.recycler_view);
    listView.setAdapter(adapter);
    listView.setLayoutManager(new LinearLayoutManager(this));
    ItemTouchHelper touchHelper = new ItemTouchHelper(new SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {

        @Override
        public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
            return false;
        }

        /**
         * Disable swipe on sections
         *
         * @param recyclerView RecyclerView
         * @param viewHolder   RecyclerView.ViewHoler
         * @return 0 if section, otherwise super()
         */
        @Override
        public int getSwipeDirs(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
            if (viewHolder instanceof ItemAdapter.SectionViewHolder)
                return 0;
            return super.getSwipeDirs(recyclerView, viewHolder);
        }

        /**
         * Delete note if note is swiped to left or right
         *
         * @param viewHolder RecyclerView.ViewHoler
         * @param direction  int
         */
        @Override
        public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
            if (direction == ItemTouchHelper.LEFT || direction == ItemTouchHelper.RIGHT) {
                final DBNote dbNote = (DBNote) adapter.getItem(viewHolder.getAdapterPosition());
                db.deleteNoteAndSync((dbNote).getId());
                adapter.remove(dbNote);
                refreshLists();
                Log.v("Note", "Item deleted through swipe ----------------------------------------------");
                Snackbar.make(swipeRefreshLayout, R.string.action_note_deleted, Snackbar.LENGTH_LONG).setAction(R.string.action_undo, new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        db.addNoteAndSync(dbNote);
                        refreshLists();
                        Snackbar.make(swipeRefreshLayout, R.string.action_note_restored, Snackbar.LENGTH_SHORT).show();
                    }
                }).show();
            }
        }

        @Override
        public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
            ItemAdapter.NoteViewHolder noteViewHolder = (ItemAdapter.NoteViewHolder) viewHolder;
            // show delete icon on the right side
            noteViewHolder.showSwipeDelete(dX > 0);
            // move only swipeable part of item (not leave-behind)
            getDefaultUIUtil().onDraw(c, recyclerView, noteViewHolder.noteSwipeable, dX, dY, actionState, isCurrentlyActive);
        }

        @Override
        public void clearView(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
            getDefaultUIUtil().clearView(((ItemAdapter.NoteViewHolder) viewHolder).noteSwipeable);
        }
    });
    touchHelper.attachToRecyclerView(listView);
}
Also used : DBNote(it.niedermann.owncloud.notes.model.DBNote) Canvas(android.graphics.Canvas) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) SearchView(android.support.v7.widget.SearchView) View(android.view.View) RecyclerView(android.support.v7.widget.RecyclerView) ItemTouchHelper(android.support.v7.widget.helper.ItemTouchHelper) RecyclerView(android.support.v7.widget.RecyclerView) SimpleCallback(android.support.v7.widget.helper.ItemTouchHelper.SimpleCallback) ItemAdapter(it.niedermann.owncloud.notes.model.ItemAdapter)

Example 2 with ItemAdapter

use of it.niedermann.owncloud.notes.model.ItemAdapter in project nextcloud-notes by stefan-niedermann.

the class SelectSingleNoteActivity method onNoteClick.

@Override
public void onNoteClick(int position, View v) {
    ItemAdapter adapter = getItemAdapter();
    Item item = adapter.getItem(position);
    DBNote note = (DBNote) item;
    long noteID = note.getId();
    Intent intent = getIntent();
    Bundle extras = intent.getExtras();
    int mAppWidgetId = -1;
    if (extras != null) {
        mAppWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
    }
    SharedPreferences.Editor sp = PreferenceManager.getDefaultSharedPreferences(this).edit();
    sp.putLong(SingleNoteWidget.WIDGET_KEY + mAppWidgetId, noteID);
    sp.apply();
    Intent retIntent = new Intent(this, SingleNoteWidget.class);
    retIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);
    retIntent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
    sendBroadcast(retIntent);
    setResult(RESULT_OK, retIntent);
    finish();
}
Also used : DBNote(it.niedermann.owncloud.notes.model.DBNote) Item(it.niedermann.owncloud.notes.model.Item) SharedPreferences(android.content.SharedPreferences) Bundle(android.os.Bundle) Intent(android.content.Intent) ItemAdapter(it.niedermann.owncloud.notes.model.ItemAdapter)

Aggregations

DBNote (it.niedermann.owncloud.notes.model.DBNote)2 ItemAdapter (it.niedermann.owncloud.notes.model.ItemAdapter)2 Intent (android.content.Intent)1 SharedPreferences (android.content.SharedPreferences)1 Canvas (android.graphics.Canvas)1 Bundle (android.os.Bundle)1 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)1 RecyclerView (android.support.v7.widget.RecyclerView)1 SearchView (android.support.v7.widget.SearchView)1 ItemTouchHelper (android.support.v7.widget.helper.ItemTouchHelper)1 SimpleCallback (android.support.v7.widget.helper.ItemTouchHelper.SimpleCallback)1 View (android.view.View)1 Item (it.niedermann.owncloud.notes.model.Item)1