Search in sources :

Example 1 with SimpleCallback

use of android.support.v7.widget.helper.ItemTouchHelper.SimpleCallback in project TrekAdvisor by peterLaurence.

the class TracksManageFragment method generateTracks.

private void generateTracks(Map map) {
    Context ctx = getContext();
    RecyclerView recyclerView = new RecyclerView(ctx);
    recyclerView.setHasFixedSize(false);
    /* All cards are laid out vertically */
    LinearLayoutManager llm = new LinearLayoutManager(ctx);
    recyclerView.setLayoutManager(llm);
    /* Apply item decoration (add an horizontal divider) */
    DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(ctx, DividerItemDecoration.VERTICAL);
    Drawable divider = this.getContext().getDrawable(R.drawable.divider);
    if (divider != null) {
        dividerItemDecoration.setDrawable(divider);
    }
    recyclerView.addItemDecoration(dividerItemDecoration);
    mTrackAdapter = new TrackAdapter(map, this, ctx.getColor(R.color.colorAccent), ctx.getColor(R.color.colorPrimaryTextWhite), ctx.getColor(R.color.colorPrimaryTextBlack));
    recyclerView.setAdapter(mTrackAdapter);
    /* Swipe to dismiss functionality */
    ItemTouchHelper.SimpleCallback simpleCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {

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

        @Override
        public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
            /* Remove the track from the list and from the map */
            mTrackAdapter.removeItem(viewHolder.getAdapterPosition());
            /* Update the view */
            if (mTrackChangeListener != null) {
                mTrackChangeListener.onTrackVisibilityChanged();
            }
            /* Save */
            saveChanges();
        }
    };
    ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleCallback);
    itemTouchHelper.attachToRecyclerView(recyclerView);
    rootView.addView(recyclerView, 0);
}
Also used : Context(android.content.Context) ItemTouchHelper(android.support.v7.widget.helper.ItemTouchHelper) Drawable(android.graphics.drawable.Drawable) RecyclerView(android.support.v7.widget.RecyclerView) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) DividerItemDecoration(android.support.v7.widget.DividerItemDecoration)

Example 2 with SimpleCallback

use of android.support.v7.widget.helper.ItemTouchHelper.SimpleCallback 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 3 with SimpleCallback

use of android.support.v7.widget.helper.ItemTouchHelper.SimpleCallback in project haven by guardianproject.

the class EventActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_event);
    Toolbar toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    StrictMode.setVmPolicy(StrictMode.VmPolicy.LAX);
    long eventId = getIntent().getLongExtra("eventid", -1);
    if (eventId != -1) {
        mEvent = Event.findById(Event.class, eventId);
        mRecyclerView = findViewById(R.id.event_trigger_list);
        setTitle(mEvent.getStartTime().toLocaleString());
        mAdapter = new EventTriggerAdapter(this, mEvent.getEventTriggers());
        LinearLayoutManager llm = new LinearLayoutManager(this);
        mRecyclerView.setLayoutManager(llm);
        mRecyclerView.setAdapter(mAdapter);
        FloatingActionButton fab = findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                shareEvent();
            }
        });
        // Handling swipe to delete
        ItemTouchHelper.SimpleCallback simpleCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {

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

            @Override
            public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
                // Remove swiped item from list and notify the RecyclerView
                final int position = viewHolder.getAdapterPosition();
                final EventTrigger eventTrigger = mEvent.getEventTriggers().get(viewHolder.getAdapterPosition());
                deleteEventTrigger(eventTrigger, position);
            }
        };
        ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleCallback);
        itemTouchHelper.attachToRecyclerView(mRecyclerView);
    } else
        finish();
}
Also used : LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) RecyclerView(android.support.v7.widget.RecyclerView) View(android.view.View) ItemTouchHelper(android.support.v7.widget.helper.ItemTouchHelper) Event(org.havenapp.main.model.Event) FloatingActionButton(android.support.design.widget.FloatingActionButton) RecyclerView(android.support.v7.widget.RecyclerView) Toolbar(android.support.v7.widget.Toolbar) EventTrigger(org.havenapp.main.model.EventTrigger)

Example 4 with SimpleCallback

use of android.support.v7.widget.helper.ItemTouchHelper.SimpleCallback in project haven by guardianproject.

the class ListActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_list);
    Log.d("Main", "onCreate");
    preferences = new PreferenceManager(this.getApplicationContext());
    recyclerView = findViewById(R.id.main_list);
    fab = findViewById(R.id.fab);
    toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    LinearLayoutManager llm = new LinearLayoutManager(this);
    recyclerView.setLayoutManager(llm);
    if (savedInstanceState != null)
        modifyPos = savedInstanceState.getInt("modify");
    // Handling swipe to delete
    ItemTouchHelper.SimpleCallback simpleCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {

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

        @Override
        public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
            // Remove swiped item from list and notify the RecyclerView
            final int position = viewHolder.getAdapterPosition();
            final Event event = events.get(viewHolder.getAdapterPosition());
            deleteEvent(event, position);
        }
    };
    ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleCallback);
    itemTouchHelper.attachToRecyclerView(recyclerView);
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
        Drawable drawable = ContextCompat.getDrawable(this, R.drawable.ic_play_arrow);
        drawable = DrawableCompat.wrap(drawable);
        DrawableCompat.setTint(drawable, Color.WHITE);
        DrawableCompat.setTintMode(drawable, PorterDuff.Mode.SRC_IN);
        fab.setImageDrawable(drawable);
    }
    fab.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent i = new Intent(ListActivity.this, MonitorActivity.class);
            startActivity(i);
        }
    });
    if (preferences.isFirstLaunch()) {
        showOnboarding();
    }
    try {
        events = Event.listAll(Event.class, "id DESC");
        if (events.size() > 0) {
            findViewById(R.id.empty_view).setVisibility(View.GONE);
        }
        adapter = new EventAdapter(ListActivity.this, events);
        recyclerView.setVisibility(View.VISIBLE);
        recyclerView.setAdapter(adapter);
        adapter.SetOnItemClickListener(new EventAdapter.OnItemClickListener() {

            @Override
            public void onItemClick(View view, int position) {
                Intent i = new Intent(ListActivity.this, EventActivity.class);
                i.putExtra("eventid", events.get(position).getId());
                modifyPos = position;
                startActivity(i);
            }
        });
    } catch (SQLiteException sqe) {
        Log.d(getClass().getName(), "database not yet initiatied", sqe);
    }
}
Also used : Drawable(android.graphics.drawable.Drawable) Intent(android.content.Intent) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) SQLiteException(android.database.sqlite.SQLiteException) View(android.view.View) RecyclerView(android.support.v7.widget.RecyclerView) EventActivity(org.havenapp.main.ui.EventActivity) SuppressLint(android.annotation.SuppressLint) EventAdapter(org.havenapp.main.ui.EventAdapter) ItemTouchHelper(android.support.v7.widget.helper.ItemTouchHelper) Event(org.havenapp.main.model.Event) RecyclerView(android.support.v7.widget.RecyclerView)

Aggregations

LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)4 RecyclerView (android.support.v7.widget.RecyclerView)4 ItemTouchHelper (android.support.v7.widget.helper.ItemTouchHelper)4 View (android.view.View)3 Drawable (android.graphics.drawable.Drawable)2 Event (org.havenapp.main.model.Event)2 SuppressLint (android.annotation.SuppressLint)1 Context (android.content.Context)1 Intent (android.content.Intent)1 SQLiteException (android.database.sqlite.SQLiteException)1 Canvas (android.graphics.Canvas)1 FloatingActionButton (android.support.design.widget.FloatingActionButton)1 DividerItemDecoration (android.support.v7.widget.DividerItemDecoration)1 SearchView (android.support.v7.widget.SearchView)1 Toolbar (android.support.v7.widget.Toolbar)1 SimpleCallback (android.support.v7.widget.helper.ItemTouchHelper.SimpleCallback)1 DBNote (it.niedermann.owncloud.notes.model.DBNote)1 ItemAdapter (it.niedermann.owncloud.notes.model.ItemAdapter)1 EventTrigger (org.havenapp.main.model.EventTrigger)1 EventActivity (org.havenapp.main.ui.EventActivity)1