Search in sources :

Example 1 with DBNote

use of it.niedermann.owncloud.notes.model.DBNote 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 DBNote

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

the class NotesListViewActivity method onNoteClick.

@Override
public void onNoteClick(int position, View v) {
    if (mActionMode != null) {
        if (!adapter.select(position)) {
            v.setSelected(false);
            adapter.deselect(position);
        } else {
            v.setSelected(true);
        }
        int size = adapter.getSelected().size();
        mActionMode.setTitle(String.valueOf(getResources().getQuantityString(R.plurals.ab_selected, size, size)));
        int checkedItemCount = adapter.getSelected().size();
        boolean hasCheckedItems = checkedItemCount > 0;
        if (hasCheckedItems && mActionMode == null) {
            // TODO differ if one or more items are selected
            // if (checkedItemCount == 1) {
            // mActionMode = startActionMode(new
            // SingleSelectedActionModeCallback());
            // } else {
            // there are some selected items, start the actionMode
            mActionMode = startSupportActionMode(new MultiSelectedActionModeCallback());
        // }
        } else if (!hasCheckedItems && mActionMode != null) {
            // there no selected items, finish the actionMode
            mActionMode.finish();
        }
    } else {
        DBNote note = (DBNote) adapter.getItem(position);
        Intent intent = new Intent(getApplicationContext(), EditNoteActivity.class);
        intent.putExtra(EditNoteActivity.PARAM_NOTE_ID, note.getId());
        startActivityForResult(intent, show_single_note_cmd);
    }
}
Also used : DBNote(it.niedermann.owncloud.notes.model.DBNote) Intent(android.content.Intent) PendingIntent(android.app.PendingIntent)

Example 3 with DBNote

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

the class NotesListViewActivity method onNoteFavoriteClick.

@Override
public void onNoteFavoriteClick(int position, View view) {
    DBNote note = (DBNote) adapter.getItem(position);
    NoteSQLiteOpenHelper db = NoteSQLiteOpenHelper.getInstance(view.getContext());
    db.toggleFavorite(note, syncCallBack);
    adapter.notifyItemChanged(position);
    refreshLists();
}
Also used : DBNote(it.niedermann.owncloud.notes.model.DBNote) NoteSQLiteOpenHelper(it.niedermann.owncloud.notes.persistence.NoteSQLiteOpenHelper)

Example 4 with DBNote

use of it.niedermann.owncloud.notes.model.DBNote 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)

Example 5 with DBNote

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

the class NoteListWidgetFactory method getViewAt.

@Override
public RemoteViews getViewAt(int i) {
    if (dbNotes == null || dbNotes.get(i) == null) {
        return null;
    }
    RemoteViews note_content = new RemoteViews(mContext.getPackageName(), R.layout.widget_entry);
    DBNote note = dbNotes.get(i);
    final Intent fillInIntent = new Intent();
    final Bundle extras = new Bundle();
    extras.putLong(EditNoteActivity.PARAM_NOTE_ID, note.getId());
    fillInIntent.putExtras(extras);
    fillInIntent.setData(Uri.parse(fillInIntent.toUri(Intent.URI_INTENT_SCHEME)));
    note_content.setOnClickFillInIntent(R.id.widget_note_list_entry, fillInIntent);
    if (note.isFavorite()) {
        note_content.setViewVisibility(R.id.widget_entry_fav_icon, View.VISIBLE);
    } else {
        note_content.setViewVisibility(R.id.widget_entry_fav_icon, View.GONE);
    }
    note_content.setTextViewText(R.id.widget_entry_content_tv, note.getTitle());
    return note_content;
}
Also used : DBNote(it.niedermann.owncloud.notes.model.DBNote) RemoteViews(android.widget.RemoteViews) Bundle(android.os.Bundle) Intent(android.content.Intent)

Aggregations

DBNote (it.niedermann.owncloud.notes.model.DBNote)13 Intent (android.content.Intent)3 SQLiteDatabase (android.database.sqlite.SQLiteDatabase)3 NonNull (android.support.annotation.NonNull)3 WorkerThread (android.support.annotation.WorkerThread)3 Item (it.niedermann.owncloud.notes.model.Item)3 ArrayList (java.util.ArrayList)3 ContentValues (android.content.ContentValues)2 Bundle (android.os.Bundle)2 ItemAdapter (it.niedermann.owncloud.notes.model.ItemAdapter)2 SectionItem (it.niedermann.owncloud.notes.model.SectionItem)2 PendingIntent (android.app.PendingIntent)1 SharedPreferences (android.content.SharedPreferences)1 Cursor (android.database.Cursor)1 Canvas (android.graphics.Canvas)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