From 578d99c0cf5ec00b34b3308f212d47e2f36aa754 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Brey?= Date: Wed, 8 Mar 2023 13:14:16 +0100 Subject: wip: Copy note actions to overflow menu on each note action MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Álvaro Brey --- .../owncloud/notes/AppendToNoteActivity.java | 6 ++++++ .../niedermann/owncloud/notes/main/MainActivity.java | 7 +++++++ .../owncloud/notes/main/items/NoteViewHolder.java | 20 +++++++++----------- .../notes/main/items/grid/NoteViewGridHolder.java | 3 ++- .../main/items/grid/NoteViewGridHolderOnlyTitle.java | 3 ++- .../main/items/list/NoteViewHolderWithExcerpt.java | 4 ++-- .../items/list/NoteViewHolderWithoutExcerpt.java | 3 ++- .../notes/shared/model/NoteClickListener.java | 4 +++- .../SingleNoteWidgetConfigurationActivity.java | 9 ++++++--- app/src/main/res/drawable/ic_dots_vertical.xml | 1 + .../res/layout/item_notes_list_note_item_grid.xml | 13 ++++++++++++- .../item_notes_list_note_item_grid_only_title.xml | 13 ++++++++++++- .../item_notes_list_note_item_with_excerpt.xml | 12 ++++++++++++ .../item_notes_list_note_item_without_excerpt.xml | 12 ++++++++++++ app/src/main/res/values/strings.xml | 1 + 15 files changed, 89 insertions(+), 22 deletions(-) create mode 100644 app/src/main/res/drawable/ic_dots_vertical.xml 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 4f0fb280..0f3675ca 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/AppendToNoteActivity.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/AppendToNoteActivity.java @@ -58,4 +58,10 @@ public class AppendToNoteActivity extends MainActivity { } 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 21c9058d..ccef4012 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 @@ -21,6 +21,7 @@ import android.os.Bundle; import android.text.TextUtils; import android.util.Log; import android.view.View; +import android.widget.Toast; import androidx.annotation.ColorInt; import androidx.annotation.NonNull; @@ -763,6 +764,12 @@ public class MainActivity extends LockedActivity implements NoteClickListener, A 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 19759320..ca0686c2 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 @@ -2,14 +2,10 @@ package it.niedermann.owncloud.notes.main.items; import static android.view.View.INVISIBLE; import static android.view.View.VISIBLE; - import static com.nextcloud.android.common.ui.util.PlatformThemeUtil.isDarkMode; import android.content.Context; -import android.text.SpannableString; import android.text.TextUtils; -import android.text.style.BackgroundColorSpan; -import android.text.style.ForegroundColorSpan; import android.view.View; import android.widget.ImageView; import android.widget.TextView; @@ -19,17 +15,12 @@ import androidx.annotation.ColorInt; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.widget.AppCompatImageView; -import androidx.core.content.ContextCompat; -import androidx.core.graphics.drawable.DrawableCompat; 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; -import com.nextcloud.android.common.ui.util.PlatformThemeUtil; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; import it.niedermann.owncloud.notes.R; import it.niedermann.owncloud.notes.branding.BrandingUtil; @@ -99,6 +90,13 @@ public abstract class NoteViewHolder extends RecyclerView.ViewHolder { } } + 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 @@ -117,4 +115,4 @@ public abstract class NoteViewHolder extends RecyclerView.ViewHolder { } }; } -} \ 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 84d705e5..00850dd9 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 @@ -49,10 +49,11 @@ public class NoteViewGridHolder extends NoteViewHolder { 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 e6b6df49..3c4c5a1d 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 @@ -38,10 +38,11 @@ public class NoteViewGridHolderOnlyTitle extends NoteViewHolder { 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 ba6fc1d2..b956d4f4 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 @@ -1,6 +1,5 @@ package it.niedermann.owncloud.notes.main.items.list; -import android.content.Context; import android.view.View; import androidx.annotation.ColorInt; @@ -39,10 +38,11 @@ public class NoteViewHolderWithExcerpt extends NoteViewHolder { 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 84426dba..c7e158ec 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 @@ -36,10 +36,11 @@ public class NoteViewHolderWithoutExcerpt extends NoteViewHolder { 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 e34c005b..577c67c1 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 @@ -6,4 +6,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 eb897def..df244a42 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 @@ -9,9 +9,6 @@ import android.view.Menu; 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; @@ -73,4 +70,10 @@ public class SingleNoteWidgetConfigurationActivity extends MainActivity { } }); } + + @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 00000000..481a28d7 --- /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 ecdea4ca..0139ce63 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 @@ -102,5 +102,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 f60e5292..2a7b1f3a 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 @@ -56,5 +56,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 384a674b..542df48f 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 @@ -116,6 +116,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 f7e42863..874dd48b 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 @@ -88,6 +88,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 c45fa5ba..810408f9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -370,4 +370,5 @@ Switch to plain editing Back Mozilla/5.0 (Android) %1$s-android/%2$s + Note actions -- cgit v1.2.3