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 95ba8a0bd..97c3ddb2a 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/AppendToNoteActivity.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/AppendToNoteActivity.java @@ -65,4 +65,10 @@ public void onNoteClick(int position, View v) { } finish(); } + + @Override + public void onNoteActionsClick(int position, View v) { + // TODO + Toast.makeText(v.getContext(), "Not implemented yet", Toast.LENGTH_SHORT).show(); + } } 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 5374c882c..1b6f2f0a7 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 @@ -27,6 +27,7 @@ import android.text.TextUtils; import android.util.Log; import android.view.View; +import android.widget.Toast; import androidx.annotation.ColorInt; import androidx.annotation.NonNull; @@ -769,6 +770,12 @@ public void onNoteFavoriteClick(int position, View view) { toggleLiveData.observe(this, (next) -> toggleLiveData.removeObservers(this)); } + @Override + public void onNoteActionsClick(int position, View v) { + // TODO + Toast.makeText(v.getContext(), "Not implemented yet", Toast.LENGTH_SHORT).show(); + } + @Override public void onBackPressed() { if (activityBinding.searchToolbar.getVisibility() == VISIBLE) { 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 53a48afbd..90af9ce3f 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 @@ -24,6 +24,7 @@ import androidx.recyclerview.selection.ItemDetailsLookup; import androidx.recyclerview.widget.RecyclerView; +import com.google.android.material.button.MaterialButton; import com.google.android.material.chip.Chip; import com.nextcloud.android.common.ui.theme.utils.ColorRole; @@ -95,6 +96,13 @@ protected void bindSearchableContent(@NonNull Context context, @NonNull TextView } } + protected void bindActions(@NonNull MaterialButton actionsButton, int color) { + final BrandingUtil util = BrandingUtil.of(color, actionsButton.getContext()); + util.material.colorMaterialButtonText(actionsButton); + util.material.colorMaterialTextButton(actionsButton); + actionsButton.setOnClickListener(view -> noteClickListener.onNoteActionsClick(getLayoutPosition(), view)); + } + public abstract void showSwipe(boolean left); @Nullable @@ -113,4 +121,4 @@ public Long getSelectionKey() { } }; } -} \ No newline at end of file +} 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 8e2cb5401..5f0b98700 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 @@ -55,10 +55,11 @@ public void bind(boolean isSelected, @NonNull Note note, boolean showCategory, @ bindSearchableContent(context, binding.noteTitle, searchQuery, note.getTitle(), color); bindSearchableContent(context, binding.noteExcerpt, searchQuery, note.getExcerpt().replace(EXCERPT_LINE_SEPARATOR, "\n"), color); binding.noteExcerpt.setVisibility(TextUtils.isEmpty(note.getExcerpt()) ? GONE : VISIBLE); + bindActions(binding.noteActions, color); } @Nullable public View getNoteSwipeable() { return null; } -} \ No newline at end of file +} 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 b9fe26d59..6031cc86d 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 @@ -44,10 +44,11 @@ public void bind(boolean isSelected, @NonNull Note note, boolean showCategory, i bindStatus(binding.noteStatus, note.getStatus(), color); bindFavorite(binding.noteFavorite, note.getFavorite()); bindSearchableContent(context, binding.noteTitle, searchQuery, note.getTitle(), color); + bindActions(binding.noteActions, color); } @Nullable public View getNoteSwipeable() { return null; } -} \ No newline at end of file +} 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 0951d13f9..0b10b2a6b 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 @@ -44,10 +44,11 @@ public void bind(boolean isSelected, @NonNull Note note, boolean showCategory, @ bindSearchableContent(context, binding.noteTitle, searchQuery, note.getTitle(), color); bindSearchableContent(context, binding.noteExcerpt, searchQuery, note.getExcerpt(), color); + bindActions(binding.noteActions, color); } @NonNull public View getNoteSwipeable() { return binding.noteSwipeable; } -} \ No newline at end of file +} 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 07ad5aaad..dd5979926 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 @@ -42,10 +42,11 @@ public void bind(boolean isSelected, @NonNull Note note, boolean showCategory, i bindStatus(binding.noteStatus, note.getStatus(), color); bindFavorite(binding.noteFavorite, note.getFavorite()); bindSearchableContent(context, binding.noteTitle, searchQuery, note.getTitle(), color); + bindActions(binding.noteActions, color); } @NonNull public View getNoteSwipeable() { return binding.noteSwipeable; } -} \ No newline at end of file +} diff --git a/app/src/main/java/it/niedermann/owncloud/notes/shared/model/NoteClickListener.java b/app/src/main/java/it/niedermann/owncloud/notes/shared/model/NoteClickListener.java index 49c5e7cc8..7a0b9bcec 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/shared/model/NoteClickListener.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/shared/model/NoteClickListener.java @@ -12,4 +12,6 @@ public interface NoteClickListener { void onNoteClick(int position, View v); void onNoteFavoriteClick(int position, View v); -} \ No newline at end of file + + void onNoteActionsClick(int position, View v); +} 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 862d9f7e5..e45a37679 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 @@ -15,9 +15,6 @@ import android.view.View; import android.widget.Toast; -import androidx.appcompat.widget.Toolbar; -import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; - import it.niedermann.owncloud.notes.NotesApplication; import it.niedermann.owncloud.notes.R; import it.niedermann.owncloud.notes.exception.ExceptionHandler; @@ -79,4 +76,10 @@ public void onNoteClick(int position, View v) { } }); } + + @Override + public void onNoteActionsClick(int position, View v) { + // TODO + Toast.makeText(v.getContext(), "Not implemented yet", Toast.LENGTH_SHORT).show(); + } } diff --git a/app/src/main/res/drawable/ic_dots_vertical.xml b/app/src/main/res/drawable/ic_dots_vertical.xml new file mode 100644 index 000000000..481a28d72 --- /dev/null +++ b/app/src/main/res/drawable/ic_dots_vertical.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/res/layout/item_notes_list_note_item_grid.xml b/app/src/main/res/layout/item_notes_list_note_item_grid.xml index 5b842046b..e9adab124 100644 --- a/app/src/main/res/layout/item_notes_list_note_item_grid.xml +++ b/app/src/main/res/layout/item_notes_list_note_item_grid.xml @@ -108,5 +108,16 @@ tools:text="@tools:sample/lorem/random" /> + + - \ No newline at end of file + diff --git a/app/src/main/res/layout/item_notes_list_note_item_grid_only_title.xml b/app/src/main/res/layout/item_notes_list_note_item_grid_only_title.xml index f5be7f268..a2bf1a129 100644 --- a/app/src/main/res/layout/item_notes_list_note_item_grid_only_title.xml +++ b/app/src/main/res/layout/item_notes_list_note_item_grid_only_title.xml @@ -62,5 +62,16 @@ android:textColor="@color/fg_default" tools:maxLength="50" tools:text="@tools:sample/lorem/random" /> + + - \ No newline at end of file + diff --git a/app/src/main/res/layout/item_notes_list_note_item_with_excerpt.xml b/app/src/main/res/layout/item_notes_list_note_item_with_excerpt.xml index 8b23252df..659d74e72 100644 --- a/app/src/main/res/layout/item_notes_list_note_item_with_excerpt.xml +++ b/app/src/main/res/layout/item_notes_list_note_item_with_excerpt.xml @@ -122,6 +122,18 @@ tools:text="@tools:sample/lorem/random" /> + + + diff --git a/app/src/main/res/layout/item_notes_list_note_item_without_excerpt.xml b/app/src/main/res/layout/item_notes_list_note_item_without_excerpt.xml index 7848d554d..b27b096d2 100644 --- a/app/src/main/res/layout/item_notes_list_note_item_without_excerpt.xml +++ b/app/src/main/res/layout/item_notes_list_note_item_without_excerpt.xml @@ -94,6 +94,18 @@ android:textSize="@dimen/secondary_font_size" tools:maxLength="15" tools:text="@tools:sample/lorem/random" /> + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f809095dd..0ba7e42dd 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -376,4 +376,5 @@ Switch to plain editing Back Mozilla/5.0 (Android) %1$s-android/%2$s + Note actions