Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-notes.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÁlvaro Brey <alvaro.brey@nextcloud.com>2023-03-08 15:14:16 +0300
committerAndy Scherzinger <info@andy-scherzinger.de>2024-01-21 18:49:31 +0300
commit578d99c0cf5ec00b34b3308f212d47e2f36aa754 (patch)
treea03885a66cd1ed9f0df0a2711379c17d6717d239
parentb0248e605a52cfb06d017e550d3433713b42173f (diff)
wip: Copy note actions to overflow menu on each note actionfeat/actions-menu-redesign
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/AppendToNoteActivity.java6
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/main/MainActivity.java7
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/main/items/NoteViewHolder.java20
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/main/items/grid/NoteViewGridHolder.java3
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/main/items/grid/NoteViewGridHolderOnlyTitle.java3
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/main/items/list/NoteViewHolderWithExcerpt.java4
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/main/items/list/NoteViewHolderWithoutExcerpt.java3
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/shared/model/NoteClickListener.java4
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidgetConfigurationActivity.java9
-rw-r--r--app/src/main/res/drawable/ic_dots_vertical.xml1
-rw-r--r--app/src/main/res/layout/item_notes_list_note_item_grid.xml13
-rw-r--r--app/src/main/res/layout/item_notes_list_note_item_grid_only_title.xml13
-rw-r--r--app/src/main/res/layout/item_notes_list_note_item_with_excerpt.xml12
-rw-r--r--app/src/main/res/layout/item_notes_list_note_item_without_excerpt.xml12
-rw-r--r--app/src/main/res/values/strings.xml1
15 files changed, 89 insertions, 22 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 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;
@@ -764,6 +765,12 @@ public class MainActivity extends LockedActivity implements NoteClickListener, A
}
@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) {
updateToolbars(false);
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 @@
+<!-- drawable/dots_vertical.xml --><vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:width="24dp" android:viewportWidth="24" android:viewportHeight="24"><path android:fillColor="#000000" android:pathData="M12,16A2,2 0 0,1 14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18A2,2 0 0,1 12,16M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8A2,2 0 0,1 10,6A2,2 0 0,1 12,4Z" /></vector> \ 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" />
</FrameLayout>
</LinearLayout>
+
+ <com.google.android.material.button.MaterialButton
+ android:id="@+id/noteActions"
+ style="@style/Widget.Material3.Button.IconButton"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="bottom|end"
+ android:contentDescription="@string/note_actions"
+ app:icon="@drawable/ic_dots_vertical"
+ app:iconTint="?android:textColorPrimary"
+ app:rippleColor="@color/fg_secondary" />
</LinearLayout>
-</com.google.android.material.card.MaterialCardView> \ No newline at end of file
+</com.google.android.material.card.MaterialCardView>
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" />
+
+ <com.google.android.material.button.MaterialButton
+ android:id="@+id/noteActions"
+ style="@style/Widget.Material3.Button.IconButton"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="bottom|end"
+ android:contentDescription="@string/note_actions"
+ app:icon="@drawable/ic_dots_vertical"
+ app:iconTint="?android:textColorPrimary"
+ app:rippleColor="@color/fg_secondary" />
</LinearLayout>
-</com.google.android.material.card.MaterialCardView> \ No newline at end of file
+</com.google.android.material.card.MaterialCardView>
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" />
</LinearLayout>
</LinearLayout>
+
+ <com.google.android.material.button.MaterialButton
+ android:id="@+id/noteActions"
+ style="@style/Widget.Material3.Button.IconButton"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:contentDescription="@string/note_actions"
+ app:icon="@drawable/ic_dots_vertical"
+ app:iconTint="?android:textColorPrimary"
+ app:rippleColor="@color/fg_secondary" />
+
</LinearLayout>
</FrameLayout>
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" />
+
+ <com.google.android.material.button.MaterialButton
+ android:id="@+id/noteActions"
+ style="@style/Widget.Material3.Button.IconButton"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:contentDescription="@string/note_actions"
+ app:icon="@drawable/ic_dots_vertical"
+ app:iconTint="?android:textColorPrimary"
+ app:rippleColor="@color/fg_secondary" />
+
</LinearLayout>
</FrameLayout>
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 @@
<string name="switch_to_plain_editing">Switch to plain editing</string>
<string name="action_back">Back</string>
<string name="user_agent" translatable="false">Mozilla/5.0 (Android) %1$s-android/%2$s</string>
+ <string name="note_actions">Note actions</string>
</resources>