Skip to content

Commit 987dee4

Browse files
committed
wip: Copy note actions to overflow menu on each note action
Signed-off-by: Álvaro Brey <[email protected]>
1 parent 4e096b4 commit 987dee4

15 files changed

+89
-22
lines changed

app/src/main/java/it/niedermann/owncloud/notes/AppendToNoteActivity.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,10 @@ public void onNoteClick(int position, View v) {
5858
}
5959
finish();
6060
}
61+
62+
@Override
63+
public void onNoteActionsClick(int position, View v) {
64+
// TODO
65+
Toast.makeText(v.getContext(), "Not implemented yet", Toast.LENGTH_SHORT).show();
66+
}
6167
}

app/src/main/java/it/niedermann/owncloud/notes/main/MainActivity.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import android.text.TextUtils;
2222
import android.util.Log;
2323
import android.view.View;
24+
import android.widget.Toast;
2425

2526
import androidx.annotation.ColorInt;
2627
import androidx.annotation.NonNull;
@@ -771,6 +772,12 @@ public void onNoteFavoriteClick(int position, View view) {
771772
toggleLiveData.observe(this, (next) -> toggleLiveData.removeObservers(this));
772773
}
773774

775+
@Override
776+
public void onNoteActionsClick(int position, View v) {
777+
// TODO
778+
Toast.makeText(v.getContext(), "Not implemented yet", Toast.LENGTH_SHORT).show();
779+
}
780+
774781
@Override
775782
public void onBackPressed() {
776783
if (activityBinding.searchToolbar.getVisibility() == VISIBLE) {

app/src/main/java/it/niedermann/owncloud/notes/main/items/NoteViewHolder.java

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,10 @@
22

33
import static android.view.View.INVISIBLE;
44
import static android.view.View.VISIBLE;
5-
65
import static com.nextcloud.android.common.ui.util.PlatformThemeUtil.isDarkMode;
76

87
import android.content.Context;
9-
import android.text.SpannableString;
108
import android.text.TextUtils;
11-
import android.text.style.BackgroundColorSpan;
12-
import android.text.style.ForegroundColorSpan;
139
import android.view.View;
1410
import android.widget.ImageView;
1511
import android.widget.TextView;
@@ -19,17 +15,12 @@
1915
import androidx.annotation.NonNull;
2016
import androidx.annotation.Nullable;
2117
import androidx.appcompat.widget.AppCompatImageView;
22-
import androidx.core.content.ContextCompat;
23-
import androidx.core.graphics.drawable.DrawableCompat;
2418
import androidx.recyclerview.selection.ItemDetailsLookup;
2519
import androidx.recyclerview.widget.RecyclerView;
2620

21+
import com.google.android.material.button.MaterialButton;
2722
import com.google.android.material.chip.Chip;
2823
import com.nextcloud.android.common.ui.theme.utils.ColorRole;
29-
import com.nextcloud.android.common.ui.util.PlatformThemeUtil;
30-
31-
import java.util.regex.Matcher;
32-
import java.util.regex.Pattern;
3324

3425
import it.niedermann.owncloud.notes.R;
3526
import it.niedermann.owncloud.notes.branding.BrandingUtil;
@@ -98,6 +89,13 @@ protected void bindSearchableContent(@NonNull Context context, @NonNull TextView
9889
}
9990
}
10091

92+
protected void bindActions(@NonNull MaterialButton actionsButton, int color) {
93+
final BrandingUtil util = BrandingUtil.of(color, actionsButton.getContext());
94+
util.material.colorMaterialButtonText(actionsButton);
95+
util.material.colorMaterialTextButton(actionsButton);
96+
actionsButton.setOnClickListener(view -> noteClickListener.onNoteActionsClick(getLayoutPosition(), view));
97+
}
98+
10199
public abstract void showSwipe(boolean left);
102100

103101
@Nullable
@@ -116,4 +114,4 @@ public Long getSelectionKey() {
116114
}
117115
};
118116
}
119-
}
117+
}

app/src/main/java/it/niedermann/owncloud/notes/main/items/grid/NoteViewGridHolder.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,11 @@ public void bind(boolean isSelected, @NonNull Note note, boolean showCategory, @
4949
bindSearchableContent(context, binding.noteTitle, searchQuery, note.getTitle(), color);
5050
bindSearchableContent(context, binding.noteExcerpt, searchQuery, note.getExcerpt().replace(EXCERPT_LINE_SEPARATOR, "\n"), color);
5151
binding.noteExcerpt.setVisibility(TextUtils.isEmpty(note.getExcerpt()) ? GONE : VISIBLE);
52+
bindActions(binding.noteActions, color);
5253
}
5354

5455
@Nullable
5556
public View getNoteSwipeable() {
5657
return null;
5758
}
58-
}
59+
}

app/src/main/java/it/niedermann/owncloud/notes/main/items/grid/NoteViewGridHolderOnlyTitle.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,11 @@ public void bind(boolean isSelected, @NonNull Note note, boolean showCategory, i
3838
bindStatus(binding.noteStatus, note.getStatus(), color);
3939
bindFavorite(binding.noteFavorite, note.getFavorite());
4040
bindSearchableContent(context, binding.noteTitle, searchQuery, note.getTitle(), color);
41+
bindActions(binding.noteActions, color);
4142
}
4243

4344
@Nullable
4445
public View getNoteSwipeable() {
4546
return null;
4647
}
47-
}
48+
}

app/src/main/java/it/niedermann/owncloud/notes/main/items/list/NoteViewHolderWithExcerpt.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package it.niedermann.owncloud.notes.main.items.list;
22

3-
import android.content.Context;
43
import android.view.View;
54

65
import androidx.annotation.ColorInt;
@@ -39,10 +38,11 @@ public void bind(boolean isSelected, @NonNull Note note, boolean showCategory, @
3938

4039
bindSearchableContent(context, binding.noteTitle, searchQuery, note.getTitle(), color);
4140
bindSearchableContent(context, binding.noteExcerpt, searchQuery, note.getExcerpt(), color);
41+
bindActions(binding.noteActions, color);
4242
}
4343

4444
@NonNull
4545
public View getNoteSwipeable() {
4646
return binding.noteSwipeable;
4747
}
48-
}
48+
}

app/src/main/java/it/niedermann/owncloud/notes/main/items/list/NoteViewHolderWithoutExcerpt.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,11 @@ public void bind(boolean isSelected, @NonNull Note note, boolean showCategory, i
3636
bindStatus(binding.noteStatus, note.getStatus(), color);
3737
bindFavorite(binding.noteFavorite, note.getFavorite());
3838
bindSearchableContent(context, binding.noteTitle, searchQuery, note.getTitle(), color);
39+
bindActions(binding.noteActions, color);
3940
}
4041

4142
@NonNull
4243
public View getNoteSwipeable() {
4344
return binding.noteSwipeable;
4445
}
45-
}
46+
}

app/src/main/java/it/niedermann/owncloud/notes/shared/model/NoteClickListener.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,6 @@ public interface NoteClickListener {
66
void onNoteClick(int position, View v);
77

88
void onNoteFavoriteClick(int position, View v);
9-
}
9+
10+
void onNoteActionsClick(int position, View v);
11+
}

app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidgetConfigurationActivity.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,6 @@
99
import android.view.View;
1010
import android.widget.Toast;
1111

12-
import androidx.appcompat.widget.Toolbar;
13-
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
14-
1512
import it.niedermann.owncloud.notes.NotesApplication;
1613
import it.niedermann.owncloud.notes.R;
1714
import it.niedermann.owncloud.notes.exception.ExceptionHandler;
@@ -73,4 +70,10 @@ public void onNoteClick(int position, View v) {
7370
}
7471
});
7572
}
73+
74+
@Override
75+
public void onNoteActionsClick(int position, View v) {
76+
// TODO
77+
Toast.makeText(v.getContext(), "Not implemented yet", Toast.LENGTH_SHORT).show();
78+
}
7679
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
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>

0 commit comments

Comments
 (0)