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);
}
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);
}
}
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();
}
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();
}
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;
}
Aggregations