diff options
author | Stefan Niedermann <info@niedermann.it> | 2020-10-06 12:54:56 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2020-10-06 12:54:56 +0300 |
commit | 34f5a0a902247a2191d82c4dcd586d3ddb088a30 (patch) | |
tree | b56b171462a9881d7eca19f50f538ac538e6decd /app/src/main/java/it/niedermann/owncloud | |
parent | 4f7fdc9e09fa39951a066432e7e0962eb62d4fce (diff) |
#831 Migrate from SQLiteOpenHelper to Room
Remove old DBNote and CloudNote
Diffstat (limited to 'app/src/main/java/it/niedermann/owncloud')
22 files changed, 53 insertions, 274 deletions
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/AppendToNoteActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/AppendToNoteActivity.java index 5b3d0cfc..8c4a6fca 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/AppendToNoteActivity.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/AppendToNoteActivity.java @@ -11,7 +11,6 @@ import androidx.appcompat.app.ActionBar; import it.niedermann.owncloud.notes.main.MainActivity; import it.niedermann.owncloud.notes.persistence.entity.NoteEntity; -import it.niedermann.owncloud.notes.shared.model.DBNote; public class AppendToNoteActivity extends MainActivity { @@ -37,7 +36,7 @@ public class AppendToNoteActivity extends MainActivity { @Override public void onNoteClick(int position, View v) { if (receivedText != null && receivedText.length() > 0) { - final NoteEntity note = roomDatabase.getNoteDao().getNote(localAccount.getId(), ((DBNote) adapter.getItem(position)).getId()); + final NoteEntity note = roomDatabase.getNoteDao().getNote(localAccount.getId(), ((NoteEntity) adapter.getItem(position)).getId()); final String oldContent = note.getContent(); String newContent; if (oldContent != null && oldContent.length() > 0) { diff --git a/app/src/main/java/it/niedermann/owncloud/notes/edit/BaseNoteFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/edit/BaseNoteFragment.java index d6ba527b..3cca6d4b 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/edit/BaseNoteFragment.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/edit/BaseNoteFragment.java @@ -40,7 +40,6 @@ import it.niedermann.owncloud.notes.persistence.NotesRoomDatabase; import it.niedermann.owncloud.notes.persistence.entity.LocalAccountEntity; import it.niedermann.owncloud.notes.persistence.entity.NoteEntity; import it.niedermann.owncloud.notes.shared.model.ApiVersion; -import it.niedermann.owncloud.notes.shared.model.CloudNote; import it.niedermann.owncloud.notes.shared.model.DBStatus; import it.niedermann.owncloud.notes.shared.model.ISyncCallback; import it.niedermann.owncloud.notes.shared.util.ColorUtil; @@ -109,7 +108,7 @@ public abstract class BaseNoteFragment extends BrandedFragment implements Catego isNew = false; note = originalNote = db.getNoteDao().getNote(localAccountEntity.getId(), id); } else { - CloudNote cloudNote = (CloudNote) requireArguments().getSerializable(PARAM_NEWNOTE); + NoteEntity cloudNote = (NoteEntity) requireArguments().getSerializable(PARAM_NEWNOTE); String content = requireArguments().getString(PARAM_CONTENT); if (cloudNote == null) { if (content == null) { diff --git a/app/src/main/java/it/niedermann/owncloud/notes/edit/EditNoteActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/edit/EditNoteActivity.java index 9aa200ce..5f22d8ae 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/edit/EditNoteActivity.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/edit/EditNoteActivity.java @@ -26,7 +26,6 @@ import it.niedermann.owncloud.notes.main.MainActivity; import it.niedermann.owncloud.notes.persistence.entity.LocalAccountEntity; import it.niedermann.owncloud.notes.persistence.entity.NoteEntity; import it.niedermann.owncloud.notes.shared.model.Category; -import it.niedermann.owncloud.notes.shared.model.CloudNote; import it.niedermann.owncloud.notes.shared.util.NoteUtil; public class EditNoteActivity extends LockedActivity implements BaseNoteFragment.NoteFragmentListener, AccountPickerListener { @@ -180,7 +179,7 @@ public class EditNoteActivity extends LockedActivity implements BaseNoteFragment if (content == null) { content = ""; } - CloudNote newNote = new CloudNote(0, Calendar.getInstance(), NoteUtil.generateNonEmptyNoteTitle(content, this), content, favorite, category, null); + NoteEntity newNote = new NoteEntity(0, Calendar.getInstance(), NoteUtil.generateNonEmptyNoteTitle(content, this), content, favorite, category, null); fragment = NoteEditFragment.newInstanceWithNewNote(newNote); getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container_view, fragment).commit(); } diff --git a/app/src/main/java/it/niedermann/owncloud/notes/edit/NoteEditFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/edit/NoteEditFragment.java index 3cbb9d2d..a9cd7970 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/edit/NoteEditFragment.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/edit/NoteEditFragment.java @@ -34,7 +34,7 @@ import it.niedermann.owncloud.notes.R; import it.niedermann.owncloud.notes.databinding.FragmentNoteEditBinding; import it.niedermann.owncloud.notes.edit.format.ContextBasedFormattingCallback; import it.niedermann.owncloud.notes.edit.format.ContextBasedRangeFormattingCallback; -import it.niedermann.owncloud.notes.shared.model.CloudNote; +import it.niedermann.owncloud.notes.persistence.entity.NoteEntity; import it.niedermann.owncloud.notes.shared.model.ISyncCallback; import it.niedermann.owncloud.notes.shared.util.MarkDownUtil; @@ -78,7 +78,7 @@ public class NoteEditFragment extends SearchableBaseNoteFragment { return f; } - public static NoteEditFragment newInstanceWithNewNote(CloudNote newNote) { + public static NoteEditFragment newInstanceWithNewNote(NoteEntity newNote) { NoteEditFragment f = new NoteEditFragment(); Bundle b = new Bundle(); b.putSerializable(PARAM_NEWNOTE, newNote); diff --git a/app/src/main/java/it/niedermann/owncloud/notes/main/MainActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/main/MainActivity.java index d31e9eb5..c99293ae 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/main/MainActivity.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/main/MainActivity.java @@ -83,7 +83,6 @@ import it.niedermann.owncloud.notes.preferences.PreferencesActivity; import it.niedermann.owncloud.notes.shared.model.Capabilities; import it.niedermann.owncloud.notes.shared.model.Category; import it.niedermann.owncloud.notes.shared.model.CategorySortingMethod; -import it.niedermann.owncloud.notes.shared.model.DBNote; import it.niedermann.owncloud.notes.shared.model.ISyncCallback; import it.niedermann.owncloud.notes.shared.model.Item; import it.niedermann.owncloud.notes.shared.model.NoteClickListener; @@ -867,7 +866,7 @@ public class MainActivity extends LockedActivity implements NoteClickListener, V mActionMode.finish(); } } else { - DBNote note = (DBNote) adapter.getItem(position); + NoteEntity note = (NoteEntity) adapter.getItem(position); Intent intent = new Intent(getApplicationContext(), EditNoteActivity.class); intent.putExtra(EditNoteActivity.PARAM_NOTE_ID, note.getId()); startActivityForResult(intent, show_single_note_cmd); @@ -876,7 +875,7 @@ public class MainActivity extends LockedActivity implements NoteClickListener, V @Override public void onNoteFavoriteClick(int position, View view) { - DBNote note = (DBNote) adapter.getItem(position); + NoteEntity note = (NoteEntity) adapter.getItem(position); NotesRoomDatabase db = NotesRoomDatabase.getInstance(view.getContext()); db.toggleFavoriteAndSync(ssoAccount, note.getId(), syncCallBack); adapter.notifyItemChanged(position); diff --git a/app/src/main/java/it/niedermann/owncloud/notes/main/MultiSelectedActionModeCallback.java b/app/src/main/java/it/niedermann/owncloud/notes/main/MultiSelectedActionModeCallback.java index 45063c8f..09b124cb 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/main/MultiSelectedActionModeCallback.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/main/MultiSelectedActionModeCallback.java @@ -33,7 +33,6 @@ import it.niedermann.owncloud.notes.main.items.ItemAdapter; import it.niedermann.owncloud.notes.persistence.NoteServerSyncHelper.ViewProvider; import it.niedermann.owncloud.notes.persistence.NotesRoomDatabase; import it.niedermann.owncloud.notes.persistence.entity.NoteEntity; -import it.niedermann.owncloud.notes.shared.model.DBNote; import it.niedermann.owncloud.notes.shared.util.ShareUtil; public class MultiSelectedActionModeCallback implements Callback { @@ -102,11 +101,11 @@ public class MultiSelectedActionModeCallback implements Callback { case R.id.menu_delete: try { SingleSignOnAccount ssoAccount = SingleAccountHelper.getCurrentSingleSignOnAccount(context); - List<DBNote> deletedNotes = new ArrayList<>(); + List<NoteEntity> deletedNotes = new ArrayList<>(); List<Integer> selection = adapter.getSelected(); for (Integer i : selection) { - DBNote note = (DBNote) adapter.getItem(i); - deletedNotes.add(NoteEntity.entityToDBNote(db.getNoteDao().getNote(note.getAccountId(), note.getId()))); + NoteEntity note = (NoteEntity) adapter.getItem(i); + deletedNotes.add(db.getNoteDao().getNote(note.getAccountId(), note.getId())); db.deleteNoteAndSync(ssoAccount, note.getId()); } mode.finish(); // Action picked, so close the CAB @@ -119,7 +118,7 @@ public class MultiSelectedActionModeCallback implements Callback { BrandedSnackbar.make(viewProvider.getView(), deletedSnackbarTitle, Snackbar.LENGTH_LONG) .setAction(R.string.action_undo, (View v) -> { db.getNoteServerSyncHelper().addCallbackPush(ssoAccount, refreshLists::run); - for (DBNote deletedNote : deletedNotes) { + for (NoteEntity deletedNote : deletedNotes) { db.addNoteAndSync(ssoAccount, deletedNote.getAccountId(), deletedNote); } refreshLists.run(); @@ -141,11 +140,11 @@ public class MultiSelectedActionModeCallback implements Callback { return true; case R.id.menu_share: final String subject = (adapter.getSelected().size() == 1) - ? ((DBNote) adapter.getItem(adapter.getSelected().get(0))).getTitle() + ? ((NoteEntity) adapter.getItem(adapter.getSelected().get(0))).getTitle() : context.getResources().getQuantityString(R.plurals.share_multiple, adapter.getSelected().size(), adapter.getSelected().size()); final StringBuilder noteContents = new StringBuilder(); for (Integer i : adapter.getSelected()) { - final DBNote noteWithoutContent = (DBNote) adapter.getItem(i); + final NoteEntity noteWithoutContent = (NoteEntity) adapter.getItem(i); final String tempFullNote = db.getNoteDao().getNote(noteWithoutContent.getAccountId(), noteWithoutContent.getId()).getContent(); if (!TextUtils.isEmpty(tempFullNote)) { if (noteContents.length() > 0) { @@ -158,7 +157,7 @@ public class MultiSelectedActionModeCallback implements Callback { return true; case R.id.menu_category: CategoryDialogFragment - .newInstance(((DBNote) adapter.getItem(adapter.getSelected().get(0))).getAccountId(), "") + .newInstance(((NoteEntity) adapter.getItem(adapter.getSelected().get(0))).getAccountId(), "") .show(fragmentManager, CategoryDialogFragment.class.getSimpleName()); default: return false; diff --git a/app/src/main/java/it/niedermann/owncloud/notes/main/items/ItemAdapter.java b/app/src/main/java/it/niedermann/owncloud/notes/main/items/ItemAdapter.java index ff71c6eb..2172dc1e 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/main/items/ItemAdapter.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/main/items/ItemAdapter.java @@ -32,7 +32,6 @@ import it.niedermann.owncloud.notes.main.items.list.NoteViewHolderWithoutExcerpt import it.niedermann.owncloud.notes.main.items.section.SectionItem; import it.niedermann.owncloud.notes.main.items.section.SectionViewHolder; import it.niedermann.owncloud.notes.persistence.entity.NoteEntity; -import it.niedermann.owncloud.notes.shared.model.DBNote; import it.niedermann.owncloud.notes.shared.model.Item; import it.niedermann.owncloud.notes.shared.model.NoteClickListener; @@ -80,7 +79,7 @@ public class ItemAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> i public long getItemId(int position) { return getItemViewType(position) == TYPE_SECTION ? ((SectionItem) getItem(position)).getTitle().hashCode() * -1 - : ((DBNote) getItem(position)).getId(); + : ((NoteEntity) getItem(position)).getId(); } */ @@ -161,7 +160,7 @@ public class ItemAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> i case TYPE_NOTE_WITH_EXCERPT: case TYPE_NOTE_WITHOUT_EXCERPT: case TYPE_NOTE_ONLY_TITLE: { - ((NoteViewHolder) holder).bind((DBNote) itemList.get(position), showCategory, mainColor, textColor, searchQuery); + ((NoteViewHolder) holder).bind((NoteEntity) itemList.get(position), showCategory, mainColor, textColor, searchQuery); break; } } @@ -225,9 +224,9 @@ public class ItemAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> i throw new IllegalArgumentException("Item at position " + position + " must not be null"); } if (getItem(position).isSection()) return TYPE_SECTION; - DBNote note = (DBNote) getItem(position); + NoteEntity note = (NoteEntity) getItem(position); if (TextUtils.isEmpty(note.getExcerpt())) { - if (TextUtils.isEmpty(note.getCategory())) { + if (TextUtils.isEmpty(note.getCategory().getTitle())) { return TYPE_NOTE_ONLY_TITLE; } else { return TYPE_NOTE_WITHOUT_EXCERPT; diff --git a/app/src/main/java/it/niedermann/owncloud/notes/main/items/NoteViewHolder.java b/app/src/main/java/it/niedermann/owncloud/notes/main/items/NoteViewHolder.java index e1cd4d44..6709d8d0 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/main/items/NoteViewHolder.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/main/items/NoteViewHolder.java @@ -29,7 +29,7 @@ import java.util.regex.Pattern; import it.niedermann.owncloud.notes.NotesApplication; import it.niedermann.owncloud.notes.R; import it.niedermann.owncloud.notes.branding.BrandingUtil; -import it.niedermann.owncloud.notes.shared.model.DBNote; +import it.niedermann.owncloud.notes.persistence.entity.NoteEntity; import it.niedermann.owncloud.notes.shared.model.DBStatus; import it.niedermann.owncloud.notes.shared.model.NoteClickListener; @@ -49,7 +49,7 @@ public abstract class NoteViewHolder extends RecyclerView.ViewHolder { } @CallSuper - public void bind(@NonNull DBNote note, boolean showCategory, int mainColor, int textColor, @Nullable CharSequence searchQuery) { + public void bind(@NonNull NoteEntity note, boolean showCategory, int mainColor, int textColor, @Nullable CharSequence searchQuery) { itemView.setOnClickListener((view) -> noteClickListener.onNoteClick(getAdapterPosition(), view)); itemView.setOnLongClickListener((view) -> noteClickListener.onNoteLongClick(getAdapterPosition(), view)); } diff --git a/app/src/main/java/it/niedermann/owncloud/notes/main/items/grid/NoteViewGridHolder.java b/app/src/main/java/it/niedermann/owncloud/notes/main/items/grid/NoteViewGridHolder.java index 78cd52f0..7a52980f 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/main/items/grid/NoteViewGridHolder.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/main/items/grid/NoteViewGridHolder.java @@ -12,7 +12,7 @@ import androidx.annotation.Px; import it.niedermann.owncloud.notes.databinding.ItemNotesListNoteItemGridBinding; import it.niedermann.owncloud.notes.main.items.NoteViewHolder; -import it.niedermann.owncloud.notes.shared.model.DBNote; +import it.niedermann.owncloud.notes.persistence.entity.NoteEntity; import it.niedermann.owncloud.notes.shared.model.NoteClickListener; import static android.view.View.GONE; @@ -39,12 +39,12 @@ public class NoteViewGridHolder extends NoteViewHolder { throw new UnsupportedOperationException(NoteViewGridHolder.class.getSimpleName() + " does not support swiping"); } - public void bind(@NonNull DBNote note, boolean showCategory, int mainColor, int textColor, @Nullable CharSequence searchQuery) { + public void bind(@NonNull NoteEntity note, boolean showCategory, int mainColor, int textColor, @Nullable CharSequence searchQuery) { super.bind(note, showCategory, mainColor, textColor, searchQuery); @NonNull final Context context = itemView.getContext(); - bindCategory(context, binding.noteCategory, showCategory, note.getCategory(), mainColor); + bindCategory(context, binding.noteCategory, showCategory, note.getCategory().getTitle(), mainColor); bindStatus(binding.noteStatus, note.getStatus(), mainColor); - bindFavorite(binding.noteFavorite, note.isFavorite()); + bindFavorite(binding.noteFavorite, note.getFavorite()); bindSearchableContent(context, binding.noteTitle, searchQuery, note.getTitle(), mainColor); bindSearchableContent(context, binding.noteExcerpt, searchQuery, note.getExcerpt().replace(EXCERPT_LINE_SEPARATOR, "\n"), mainColor); binding.noteExcerpt.setVisibility(TextUtils.isEmpty(note.getExcerpt()) ? GONE : VISIBLE); diff --git a/app/src/main/java/it/niedermann/owncloud/notes/main/items/grid/NoteViewGridHolderOnlyTitle.java b/app/src/main/java/it/niedermann/owncloud/notes/main/items/grid/NoteViewGridHolderOnlyTitle.java index 52abd8ed..bc65499a 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/main/items/grid/NoteViewGridHolderOnlyTitle.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/main/items/grid/NoteViewGridHolderOnlyTitle.java @@ -11,7 +11,7 @@ import androidx.annotation.Px; import it.niedermann.owncloud.notes.databinding.ItemNotesListNoteItemGridOnlyTitleBinding; import it.niedermann.owncloud.notes.main.items.NoteViewHolder; -import it.niedermann.owncloud.notes.shared.model.DBNote; +import it.niedermann.owncloud.notes.persistence.entity.NoteEntity; import it.niedermann.owncloud.notes.shared.model.NoteClickListener; public class NoteViewGridHolderOnlyTitle extends NoteViewHolder { @@ -32,11 +32,11 @@ public class NoteViewGridHolderOnlyTitle extends NoteViewHolder { throw new UnsupportedOperationException(NoteViewGridHolderOnlyTitle.class.getSimpleName() + " does not support swiping"); } - public void bind(@NonNull DBNote note, boolean showCategory, int mainColor, int textColor, @Nullable CharSequence searchQuery) { + public void bind(@NonNull NoteEntity note, boolean showCategory, int mainColor, int textColor, @Nullable CharSequence searchQuery) { super.bind(note, showCategory, mainColor, textColor, searchQuery); @NonNull final Context context = itemView.getContext(); bindStatus(binding.noteStatus, note.getStatus(), mainColor); - bindFavorite(binding.noteFavorite, note.isFavorite()); + bindFavorite(binding.noteFavorite, note.getFavorite()); bindSearchableContent(context, binding.noteTitle, searchQuery, note.getTitle(), mainColor); } diff --git a/app/src/main/java/it/niedermann/owncloud/notes/main/items/list/NoteViewHolderWithExcerpt.java b/app/src/main/java/it/niedermann/owncloud/notes/main/items/list/NoteViewHolderWithExcerpt.java index a8a5cb45..2ff41951 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/main/items/list/NoteViewHolderWithExcerpt.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/main/items/list/NoteViewHolderWithExcerpt.java @@ -9,7 +9,7 @@ import androidx.annotation.Nullable; import it.niedermann.owncloud.notes.R; import it.niedermann.owncloud.notes.databinding.ItemNotesListNoteItemWithExcerptBinding; import it.niedermann.owncloud.notes.main.items.NoteViewHolder; -import it.niedermann.owncloud.notes.shared.model.DBNote; +import it.niedermann.owncloud.notes.persistence.entity.NoteEntity; import it.niedermann.owncloud.notes.shared.model.DBStatus; import it.niedermann.owncloud.notes.shared.model.NoteClickListener; @@ -28,13 +28,13 @@ public class NoteViewHolderWithExcerpt extends NoteViewHolder { binding.noteSwipeFrame.setBackgroundResource(left ? R.color.bg_warning : R.color.bg_attention); } - public void bind(@NonNull DBNote note, boolean showCategory, int mainColor, int textColor, @Nullable CharSequence searchQuery) { + public void bind(@NonNull NoteEntity note, boolean showCategory, int mainColor, int textColor, @Nullable CharSequence searchQuery) { super.bind(note, showCategory, mainColor, textColor, searchQuery); @NonNull final Context context = itemView.getContext(); binding.noteSwipeable.setAlpha(DBStatus.LOCAL_DELETED.equals(note.getStatus()) ? 0.5f : 1.0f); - bindCategory(context, binding.noteCategory, showCategory, note.getCategory(), mainColor); + bindCategory(context, binding.noteCategory, showCategory, note.getCategory().getTitle(), mainColor); bindStatus(binding.noteStatus, note.getStatus(), mainColor); - bindFavorite(binding.noteFavorite, note.isFavorite()); + bindFavorite(binding.noteFavorite, note.getFavorite()); bindSearchableContent(context, binding.noteTitle, searchQuery, note.getTitle(), mainColor); bindSearchableContent(context, binding.noteExcerpt, searchQuery, note.getExcerpt(), mainColor); diff --git a/app/src/main/java/it/niedermann/owncloud/notes/main/items/list/NoteViewHolderWithoutExcerpt.java b/app/src/main/java/it/niedermann/owncloud/notes/main/items/list/NoteViewHolderWithoutExcerpt.java index 39a08101..f2957bcf 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/main/items/list/NoteViewHolderWithoutExcerpt.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/main/items/list/NoteViewHolderWithoutExcerpt.java @@ -9,7 +9,7 @@ import androidx.annotation.Nullable; import it.niedermann.owncloud.notes.R; import it.niedermann.owncloud.notes.databinding.ItemNotesListNoteItemWithoutExcerptBinding; import it.niedermann.owncloud.notes.main.items.NoteViewHolder; -import it.niedermann.owncloud.notes.shared.model.DBNote; +import it.niedermann.owncloud.notes.persistence.entity.NoteEntity; import it.niedermann.owncloud.notes.shared.model.DBStatus; import it.niedermann.owncloud.notes.shared.model.NoteClickListener; @@ -28,13 +28,13 @@ public class NoteViewHolderWithoutExcerpt extends NoteViewHolder { binding.noteSwipeFrame.setBackgroundResource(left ? R.color.bg_warning : R.color.bg_attention); } - public void bind(@NonNull DBNote note, boolean showCategory, int mainColor, int textColor, @Nullable CharSequence searchQuery) { + public void bind(@NonNull NoteEntity note, boolean showCategory, int mainColor, int textColor, @Nullable CharSequence searchQuery) { super.bind(note, showCategory, mainColor, textColor, searchQuery); @NonNull final Context context = itemView.getContext(); binding.noteSwipeable.setAlpha(DBStatus.LOCAL_DELETED.equals(note.getStatus()) ? 0.5f : 1.0f); - bindCategory(context, binding.noteCategory, showCategory, note.getCategory(), mainColor); + bindCategory(context, binding.noteCategory, showCategory, note.getCategory().getTitle(), mainColor); bindStatus(binding.noteStatus, note.getStatus(), mainColor); - bindFavorite(binding.noteFavorite, note.isFavorite()); + bindFavorite(binding.noteFavorite, note.getFavorite()); bindSearchableContent(context, binding.noteTitle, searchQuery, note.getTitle(), mainColor); } diff --git a/app/src/main/java/it/niedermann/owncloud/notes/main/items/list/NotesListViewItemTouchHelper.java b/app/src/main/java/it/niedermann/owncloud/notes/main/items/list/NotesListViewItemTouchHelper.java index 20bbc604..864d1313 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/main/items/list/NotesListViewItemTouchHelper.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/main/items/list/NotesListViewItemTouchHelper.java @@ -23,7 +23,6 @@ import it.niedermann.owncloud.notes.main.items.section.SectionViewHolder; import it.niedermann.owncloud.notes.persistence.NoteServerSyncHelper.ViewProvider; import it.niedermann.owncloud.notes.persistence.NotesRoomDatabase; import it.niedermann.owncloud.notes.persistence.entity.NoteEntity; -import it.niedermann.owncloud.notes.shared.model.DBNote; import it.niedermann.owncloud.notes.shared.model.ISyncCallback; public class NotesListViewItemTouchHelper extends ItemTouchHelper { @@ -72,8 +71,8 @@ public class NotesListViewItemTouchHelper extends ItemTouchHelper { public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) { switch (direction) { case ItemTouchHelper.LEFT: - final DBNote dbNoteWithoutContent = (DBNote) adapter.getItem(viewHolder.getAdapterPosition()); - final DBNote dbNote = NoteEntity.entityToDBNote(roomDatabase.getNoteDao().getNote(dbNoteWithoutContent.getAccountId(), dbNoteWithoutContent.getId())); + final NoteEntity dbNoteWithoutContent = (NoteEntity) adapter.getItem(viewHolder.getAdapterPosition()); + final NoteEntity dbNote = roomDatabase.getNoteDao().getNote(dbNoteWithoutContent.getAccountId(), dbNoteWithoutContent.getId()); roomDatabase.deleteNoteAndSync(ssoAccount, dbNote.getId()); adapter.remove(dbNote); refreshLists.run(); @@ -93,7 +92,7 @@ public class NotesListViewItemTouchHelper extends ItemTouchHelper { } break; case ItemTouchHelper.RIGHT: - final DBNote adapterNote = (DBNote) adapter.getItem(viewHolder.getAdapterPosition()); + final NoteEntity adapterNote = (NoteEntity) adapter.getItem(viewHolder.getAdapterPosition()); roomDatabase.toggleFavoriteAndSync(ssoAccount, adapterNote.getId(), syncCallBack); refreshLists.run(); break; diff --git a/app/src/main/java/it/niedermann/owncloud/notes/persistence/LoadNotesListTask.java b/app/src/main/java/it/niedermann/owncloud/notes/persistence/LoadNotesListTask.java index 3527d102..62f5d66c 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/persistence/LoadNotesListTask.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/persistence/LoadNotesListTask.java @@ -17,7 +17,6 @@ import it.niedermann.owncloud.notes.main.items.section.SectionItem; import it.niedermann.owncloud.notes.persistence.entity.NoteEntity; import it.niedermann.owncloud.notes.shared.model.Category; import it.niedermann.owncloud.notes.shared.model.CategorySortingMethod; -import it.niedermann.owncloud.notes.shared.model.DBNote; import it.niedermann.owncloud.notes.shared.model.Item; import it.niedermann.owncloud.notes.shared.util.NoteUtil; @@ -61,13 +60,13 @@ public class LoadNotesListTask extends AsyncTask<Void, Void, List<Item>> { List<Item> itemList = new ArrayList<>(); String currentCategory = category.category; for (NoteEntity entity : noteList) { - DBNote note = NoteEntity.entityToDBNote(entity); + NoteEntity note = entity; if (currentCategory != null && !currentCategory.equals(note.getCategory())) { - itemList.add(new SectionItem(NoteUtil.extendCategory(note.getCategory()))); + itemList.add(new SectionItem(NoteUtil.extendCategory(note.getCategory().getTitle()))); } itemList.add(note); - currentCategory = note.getCategory(); + currentCategory = note.getCategory().getTitle(); } return itemList; } @@ -79,7 +78,7 @@ public class LoadNotesListTask extends AsyncTask<Void, Void, List<Item>> { Timeslotter timeslotter = new Timeslotter(); String lastTimeslot = null; for (int i = 0; i < noteList.size(); i++) { - DBNote currentNote = NoteEntity.entityToDBNote(noteList.get(i)); + NoteEntity currentNote = noteList.get(i); String timeslot = timeslotter.getTimeslot(currentNote); if (i > 0 && !timeslot.equals(lastTimeslot)) { itemList.add(new SectionItem(timeslot)); @@ -105,7 +104,7 @@ public class LoadNotesListTask extends AsyncTask<Void, Void, List<Item>> { if (i > 0 && !initials.equals(lastInitials)) { itemList.add(new SectionItem(initials)); } - itemList.add(NoteEntity.entityToDBNote(currentNote)); + itemList.add(currentNote); lastInitials = initials; } @@ -140,8 +139,8 @@ public class LoadNotesListTask extends AsyncTask<Void, Void, List<Item>> { lastYear.set(now.get(Calendar.YEAR) - 1, 0, 1, 0, 0, 0); } - private String getTimeslot(DBNote note) { - if (note.isFavorite()) { + private String getTimeslot(NoteEntity note) { + if (note.getFavorite()) { return ""; } Calendar modified = note.getModified(); diff --git a/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesRoomDatabase.java b/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesRoomDatabase.java index b2f1363b..210c256f 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesRoomDatabase.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesRoomDatabase.java @@ -6,7 +6,6 @@ import android.content.SharedPreferences; import android.content.pm.ShortcutInfo; import android.content.pm.ShortcutManager; import android.content.res.Resources; -import android.database.Cursor; import android.graphics.drawable.Icon; import android.os.Build; import android.text.TextUtils; @@ -56,8 +55,6 @@ import it.niedermann.owncloud.notes.shared.model.ApiVersion; import it.niedermann.owncloud.notes.shared.model.Capabilities; import it.niedermann.owncloud.notes.shared.model.Category; import it.niedermann.owncloud.notes.shared.model.CategorySortingMethod; -import it.niedermann.owncloud.notes.shared.model.CloudNote; -import it.niedermann.owncloud.notes.shared.model.DBNote; import it.niedermann.owncloud.notes.shared.model.DBStatus; import it.niedermann.owncloud.notes.shared.model.ISyncCallback; import it.niedermann.owncloud.notes.shared.util.ColorUtil; @@ -195,7 +192,7 @@ public abstract class NotesRoomDatabase extends RoomDatabase { public void moveNoteToAnotherAccount(SingleSignOnAccount ssoAccount, long oldAccountId, NoteEntity note, long newAccountId) { // Add new note - addNoteAndSync(ssoAccount, newAccountId, new CloudNote(0, note.getModified(), note.getTitle(), note.getContent(), note.getFavorite(), note.getCategory().getTitle(), null)); + addNoteAndSync(ssoAccount, newAccountId, new NoteEntity(0, note.getModified(), note.getTitle(), note.getContent(), note.getFavorite(), note.getCategory().getTitle(), null)); deleteNoteAndSync(ssoAccount, note.getId()); notifyWidgets(); @@ -234,8 +231,8 @@ public abstract class NotesRoomDatabase extends RoomDatabase { * * @param note Note */ - public long addNoteAndSync(SingleSignOnAccount ssoAccount, long accountId, CloudNote note) { - NoteEntity entity = new NoteEntity(0, 0, note.getModified(), note.getTitle(), note.getContent(), note.isFavorite(), note.getCategory(), note.getEtag(), DBStatus.LOCAL_EDITED, accountId, generateNoteExcerpt(note.getContent(), note.getTitle()), 0); + public long addNoteAndSync(SingleSignOnAccount ssoAccount, long accountId, NoteEntity note) { + NoteEntity entity = new NoteEntity(0, 0, note.getModified(), note.getTitle(), note.getContent(), note.getFavorite(), note.getCategory().getTitle(), note.getETag(), DBStatus.LOCAL_EDITED, accountId, generateNoteExcerpt(note.getContent(), note.getTitle()), 0); long id = addNote(accountId, entity); notifyWidgets(); syncHelper.scheduleSync(ssoAccount, true); @@ -246,7 +243,7 @@ public abstract class NotesRoomDatabase extends RoomDatabase { * Inserts a note directly into the Database. * No Synchronisation will be triggered! Use addNoteAndSync()! * - * @param note Note to be added. Remotely created Notes must be of type CloudNote and locally created Notes must be of Type DBNote (with DBStatus.LOCAL_EDITED)! + * @param note Note to be added. Remotely created Notes must be of type CloudNote and locally created Notes must be of Type {@link NoteEntity} (with {@link DBStatus#LOCAL_EDITED})! */ long addNote(long accountId, NoteEntity note) { NoteEntity entity = new NoteEntity(); @@ -481,7 +478,7 @@ public abstract class NotesRoomDatabase extends RoomDatabase { * @param newContent New content. If this is <code>null</code>, then <code>oldNote</code> is saved again (useful for undoing changes). * @param newTitle New title. If this is <code>null</code>, then either the old title is reused (in case the note has been synced before) or a title is generated (in case it is a new note) * @param callback When the synchronization is finished, this callback will be invoked (optional). - * @return changed {@link DBNote} if differs from database, otherwise the old {@link DBNote}. + * @return changed {@link NoteEntity} if differs from database, otherwise the old {@link NoteEntity}. */ public NoteEntity updateNoteAndSync(SingleSignOnAccount ssoAccount, @NonNull LocalAccountEntity localAccount, @NonNull NoteEntity oldNote, @Nullable String newContent, @Nullable String newTitle, @Nullable ISyncCallback callback) { NoteEntity newNote; diff --git a/app/src/main/java/it/niedermann/owncloud/notes/persistence/dao/NoteDao.java b/app/src/main/java/it/niedermann/owncloud/notes/persistence/dao/NoteDao.java index 3dc521ed..e4ad4f7c 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/persistence/dao/NoteDao.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/persistence/dao/NoteDao.java @@ -12,7 +12,6 @@ import java.util.Set; import it.niedermann.owncloud.notes.persistence.NoteServerSyncHelper; import it.niedermann.owncloud.notes.persistence.entity.NoteEntity; import it.niedermann.owncloud.notes.shared.model.CategorySortingMethod; -import it.niedermann.owncloud.notes.shared.model.DBNote; import it.niedermann.owncloud.notes.shared.model.DBStatus; @Dao @@ -66,7 +65,7 @@ public interface NoteDao { * Get a single Note by remote Id (aka. nextcloud file id) * * @param remoteId int - remote ID of the requested Note - * @return {@link DBNote#getId()} + * @return {@link NoteEntity#getId()} */ @Query("SELECT id FROM NoteEntity WHERE accountId = :accountId AND remoteId = :remoteId AND status != 'LOCAL_DELETED'") Long getLocalIdByRemoteId(long accountId, long remoteId); diff --git a/app/src/main/java/it/niedermann/owncloud/notes/persistence/entity/NoteEntity.java b/app/src/main/java/it/niedermann/owncloud/notes/persistence/entity/NoteEntity.java index 674a33c6..87fb5e79 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/persistence/entity/NoteEntity.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/persistence/entity/NoteEntity.java @@ -8,7 +8,6 @@ import androidx.room.PrimaryKey; import java.io.Serializable; import java.util.Calendar; -import it.niedermann.owncloud.notes.shared.model.DBNote; import it.niedermann.owncloud.notes.shared.model.DBStatus; import it.niedermann.owncloud.notes.shared.model.Item; @@ -149,27 +148,6 @@ public class NoteEntity implements Serializable, Item { this.category = category; } - @Deprecated - public static DBNote entityToDBNote(NoteEntity entity) { - if (entity == null) { - return null; - } - return new DBNote( - entity.getId(), - entity.getRemoteId(), - entity.getModified(), - entity.getTitle(), - entity.getContent(), - entity.getFavorite(), - entity.getCategory().getTitle(), - entity.getETag(), - entity.getStatus(), - entity.getAccountId(), - entity.getExcerpt(), - entity.getScrollY() - ); - } - @Ignore @Override public boolean isSection() { diff --git a/app/src/main/java/it/niedermann/owncloud/notes/shared/model/CloudNote.java b/app/src/main/java/it/niedermann/owncloud/notes/shared/model/CloudNote.java deleted file mode 100644 index 6ba3a943..00000000 --- a/app/src/main/java/it/niedermann/owncloud/notes/shared/model/CloudNote.java +++ /dev/null @@ -1,104 +0,0 @@ -package it.niedermann.owncloud.notes.shared.model; - -import androidx.annotation.NonNull; - -import java.io.Serializable; -import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Locale; - -import it.niedermann.owncloud.notes.shared.util.NoteUtil; - -/** - * CloudNote represents a remote note from an OwnCloud server. - * It can be directly generated from the JSON answer from the server. - */ -@Deprecated -public class CloudNote implements Serializable { - private long remoteId; - private String title = ""; - private Calendar modified; - private String content = ""; - private boolean favorite = false; - private String category = ""; - private String etag = ""; - private static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss"; - - public CloudNote(long remoteId, Calendar modified, String title, String content, boolean favorite, String category, String etag) { - this.remoteId = remoteId; - setTitle(title); - setContent(content); - setFavorite(favorite); - setCategory(category); - setEtag(etag); - this.modified = modified; - } - - public long getRemoteId() { - return remoteId; - } - - public void setRemoteId(long remoteId) { - this.remoteId = remoteId; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = NoteUtil.removeMarkDown(title); - } - - public Calendar getModified() { - return modified; - } - - public String getModified(String format) { - if (modified == null) - return null; - return new SimpleDateFormat(format, Locale.GERMANY).format(this.getModified().getTimeInMillis()); - } - - public void setModified(Calendar modified) { - this.modified = modified; - } - - public String getContent() { - return content; - } - - public void setContent(String content) { - this.content = content; - } - - public boolean isFavorite() { - return favorite; - } - - public void setFavorite(boolean favorite) { - this.favorite = favorite; - } - - public String getEtag() { - return etag; - } - - public void setEtag(String etag) { - this.etag = etag; - } - - public String getCategory() { - return category; - } - - public void setCategory(String category) { - this.category = category == null ? "" : category; - } - - @NonNull - @Override - public String toString() { - return "R" + getRemoteId() + " " + (isFavorite() ? " (*) " : " ") + getCategory() + " / " + getTitle() + " (" + getModified(DATE_FORMAT) + " / " + getEtag() + ")"; - } -}
\ No newline at end of file diff --git a/app/src/main/java/it/niedermann/owncloud/notes/shared/model/DBNote.java b/app/src/main/java/it/niedermann/owncloud/notes/shared/model/DBNote.java deleted file mode 100644 index 5ec1434d..00000000 --- a/app/src/main/java/it/niedermann/owncloud/notes/shared/model/DBNote.java +++ /dev/null @@ -1,81 +0,0 @@ -package it.niedermann.owncloud.notes.shared.model; - -import androidx.annotation.NonNull; - -import java.io.Serializable; -import java.util.Calendar; - -/** - * DBNote represents a single note from the local SQLite database with all attributes. - * It extends CloudNote with attributes required for local data management. - */ -@Deprecated -public class DBNote extends CloudNote implements Item, Serializable { - - private final long id; - private final long accountId; - private DBStatus status; - private String excerpt; - private int scrollY; - - public DBNote(long id, long remoteId, Calendar modified, String title, String content, boolean favorite, String category, String etag, DBStatus status, long accountId, String excerpt, int scrollY) { - super(remoteId, modified, title, content, favorite, category, etag); - this.id = id; - this.excerpt = excerpt; - this.status = status; - this.accountId = accountId; - this.scrollY = scrollY; - } - - public long getId() { - return id; - } - - public long getAccountId() { - return accountId; - } - - public DBStatus getStatus() { - return status; - } - - public void setStatus(DBStatus status) { - this.status = status; - } - - public String getExcerpt() { - return excerpt; - } - - public void setExcerpt(String excerpt) { - this.excerpt = excerpt; - } - - public void setContent(String content) { - super.setContent(content); - } - - @Override - public boolean isSection() { - return false; - } - - @NonNull - @Override - public String toString() { - return "DBNote{" + - "id=" + id + - ", accountId=" + accountId + - ", status=" + status + - ", excerpt='" + excerpt + '\'' + - '}'; - } - - public int getScrollY() { - return scrollY; - } - - public void setScrollY(int scrollY) { - this.scrollY = scrollY; - } -} diff --git a/app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidget.java b/app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidget.java index 50905c40..51a589c0 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidget.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidget.java @@ -36,7 +36,6 @@ public class NoteListWidget extends AppWidgetProvider { public static final int PENDING_INTENT_OPEN_APP_RQ = 2; static void updateAppWidget(Context context, AppWidgetManager awm, int[] appWidgetIds) { - final NotesDatabase sqliteOpenHelperDatabase = NotesDatabase.getInstance(context); final NotesRoomDatabase roomDatabase = NotesRoomDatabase.getInstance(context); RemoteViews views; diff --git a/app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidgetConfigurationActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidgetConfigurationActivity.java index 72febe4f..555a9d87 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidgetConfigurationActivity.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidgetConfigurationActivity.java @@ -16,8 +16,8 @@ import it.niedermann.owncloud.notes.NotesApplication; import it.niedermann.owncloud.notes.R; import it.niedermann.owncloud.notes.exception.ExceptionHandler; import it.niedermann.owncloud.notes.main.MainActivity; +import it.niedermann.owncloud.notes.persistence.entity.NoteEntity; import it.niedermann.owncloud.notes.persistence.entity.WidgetSingleNoteEntity; -import it.niedermann.owncloud.notes.shared.model.DBNote; public class SingleNoteWidgetConfigurationActivity extends MainActivity { @@ -42,7 +42,7 @@ public class SingleNoteWidgetConfigurationActivity extends MainActivity { @Override public void onNoteClick(int position, View v) { - final DBNote note = (DBNote) adapter.getItem(position); + final NoteEntity note = (NoteEntity) adapter.getItem(position); final Bundle extras = getIntent().getExtras(); if (extras == null) { diff --git a/app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidgetFactory.java b/app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidgetFactory.java index 550879f6..be5c38c6 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidgetFactory.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidgetFactory.java @@ -20,7 +20,6 @@ import it.niedermann.owncloud.notes.persistence.NotesRoomDatabase; import it.niedermann.owncloud.notes.persistence.entity.NoteEntity; import it.niedermann.owncloud.notes.persistence.entity.WidgetSingleNoteEntity; import it.niedermann.owncloud.notes.preferences.DarkModeSetting; -import it.niedermann.owncloud.notes.shared.model.DBNote; import it.niedermann.owncloud.notes.shared.util.MarkDownUtil; import static it.niedermann.owncloud.notes.shared.util.MarkDownUtil.parseCompat; |