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:
authorStefan Niedermann <info@niedermann.it>2020-10-05 11:15:57 +0300
committerStefan Niedermann <info@niedermann.it>2020-10-05 11:15:57 +0300
commitae6d05243d60b357a840a6b6b7c1322d3fa8fb6d (patch)
tree658aaec6b751fe1d080ce67abf850acf2eec78e3
parent01c46004e7eca4213bd78b93cb2b1f4a4a78fdb0 (diff)
#946 Allow to modify category in multi-select view
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/edit/BaseNoteFragment.java6
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/edit/category/CategoryDialogFragment.java11
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/main/MainActivity.java15
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/main/MultiSelectedActionModeCallback.java9
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/shared/util/text/WwwLinksProcessor.java2
-rw-r--r--app/src/main/res/menu/menu_list_context_multiple.xml19
-rw-r--r--fastlane/metadata/android/en-US/changelogs/2017000.txt3
7 files changed, 48 insertions, 17 deletions
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 1cfce9fb..03625312 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
@@ -328,11 +328,7 @@ public abstract class BaseNoteFragment extends BrandedFragment implements Catego
if (frag != null) {
manager.beginTransaction().remove(frag).commit();
}
- Bundle arguments = new Bundle();
- arguments.putString(CategoryDialogFragment.PARAM_CATEGORY, note.getCategory());
- arguments.putLong(CategoryDialogFragment.PARAM_ACCOUNT_ID, note.getAccountId());
- CategoryDialogFragment categoryFragment = new CategoryDialogFragment();
- categoryFragment.setArguments(arguments);
+ final DialogFragment categoryFragment = CategoryDialogFragment.newInstance(note.getAccountId(), note.getCategory());
categoryFragment.setTargetFragment(this, 0);
categoryFragment.show(manager, fragmentId);
}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/edit/category/CategoryDialogFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/edit/category/CategoryDialogFragment.java
index 881e8478..a5802e10 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/edit/category/CategoryDialogFragment.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/edit/category/CategoryDialogFragment.java
@@ -1,7 +1,6 @@
package it.niedermann.owncloud.notes.edit.category;
import android.app.Dialog;
-import android.app.DialogFragment;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
@@ -13,7 +12,9 @@ import android.view.WindowManager;
import android.widget.EditText;
import androidx.annotation.NonNull;
+import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
import java.util.List;
@@ -166,6 +167,14 @@ public class CategoryDialogFragment extends BrandedDialogFragment {
}
}
+ public static DialogFragment newInstance(long accountId, String category) {
+ final DialogFragment categoryFragment = new CategoryDialogFragment();
+ final Bundle arguments = new Bundle();
+ arguments.putString(CategoryDialogFragment.PARAM_CATEGORY, category);
+ arguments.putLong(CategoryDialogFragment.PARAM_ACCOUNT_ID, accountId);
+ categoryFragment.setArguments(arguments);
+ return categoryFragment;
+ }
private class LoadCategoriesTask extends AsyncTask<String, Void, List<NavigationAdapter.CategoryNavigationItem>> {
String currentSearchString;
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 59f53025..032b56a4 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
@@ -61,6 +61,7 @@ import it.niedermann.owncloud.notes.branding.BrandingUtil;
import it.niedermann.owncloud.notes.databinding.ActivityNotesListViewBinding;
import it.niedermann.owncloud.notes.databinding.DrawerLayoutBinding;
import it.niedermann.owncloud.notes.edit.EditNoteActivity;
+import it.niedermann.owncloud.notes.edit.category.CategoryDialogFragment;
import it.niedermann.owncloud.notes.exception.ExceptionDialogFragment;
import it.niedermann.owncloud.notes.main.NavigationAdapter.CategoryNavigationItem;
import it.niedermann.owncloud.notes.main.NavigationAdapter.NavigationItem;
@@ -95,7 +96,7 @@ import static it.niedermann.owncloud.notes.shared.util.ColorUtil.contrastRatioIs
import static it.niedermann.owncloud.notes.shared.util.SSOUtil.askForNewAccount;
import static java.util.Arrays.asList;
-public class MainActivity extends LockedActivity implements NoteClickListener, ViewProvider, AccountPickerListener, AccountSwitcherListener {
+public class MainActivity extends LockedActivity implements NoteClickListener, ViewProvider, AccountPickerListener, AccountSwitcherListener, CategoryDialogFragment.CategoryDialogListener {
private static final String TAG = MainActivity.class.getSimpleName();
@@ -983,4 +984,16 @@ public class MainActivity extends LockedActivity implements NoteClickListener, V
mActionMode.finish();
refreshLists();
}
+
+ @Override
+ public void onCategoryChosen(String category) {
+ for (Integer i : new ArrayList<>(adapter.getSelected())) {
+ DBNote note = (DBNote) adapter.getItem(i);
+ note.setCategory(category);
+ db.setCategory(ssoAccount, note, category, this::refreshLists);
+ }
+
+ mActionMode.finish();
+ refreshLists();
+ }
}
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 d4bc7e4b..eb32a5c8 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
@@ -28,6 +28,7 @@ import java.util.List;
import it.niedermann.owncloud.notes.R;
import it.niedermann.owncloud.notes.branding.BrandedSnackbar;
import it.niedermann.owncloud.notes.accountpicker.AccountPickerDialogFragment;
+import it.niedermann.owncloud.notes.edit.category.CategoryDialogFragment;
import it.niedermann.owncloud.notes.main.items.ItemAdapter;
import it.niedermann.owncloud.notes.persistence.NoteServerSyncHelper.ViewProvider;
import it.niedermann.owncloud.notes.persistence.NotesDatabase;
@@ -133,7 +134,9 @@ public class MultiSelectedActionModeCallback implements Callback {
}
return true;
case R.id.menu_move:
- AccountPickerDialogFragment.newInstance(currentLocalAccountId).show(fragmentManager, MainActivity.class.getSimpleName());
+ AccountPickerDialogFragment
+ .newInstance(currentLocalAccountId)
+ .show(fragmentManager, MainActivity.class.getSimpleName());
return true;
case R.id.menu_share:
final String subject = (adapter.getSelected().size() == 1)
@@ -152,6 +155,10 @@ public class MultiSelectedActionModeCallback implements Callback {
}
ShareUtil.openShareDialog(context, subject, noteContents.toString());
return true;
+ case R.id.menu_category:
+ CategoryDialogFragment
+ .newInstance(((DBNote) 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/shared/util/text/WwwLinksProcessor.java b/app/src/main/java/it/niedermann/owncloud/notes/shared/util/text/WwwLinksProcessor.java
index 689d7fd8..73cc5832 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/shared/util/text/WwwLinksProcessor.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/shared/util/text/WwwLinksProcessor.java
@@ -1,7 +1,5 @@
package it.niedermann.owncloud.notes.shared.util.text;
-import androidx.annotation.NonNull;
-
import java.util.regex.Pattern;
public class WwwLinksProcessor extends TextProcessor {
diff --git a/app/src/main/res/menu/menu_list_context_multiple.xml b/app/src/main/res/menu/menu_list_context_multiple.xml
index 9e44a799..211c6df3 100644
--- a/app/src/main/res/menu/menu_list_context_multiple.xml
+++ b/app/src/main/res/menu/menu_list_context_multiple.xml
@@ -3,6 +3,13 @@
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
+ android:id="@+id/menu_category"
+ android:icon="@drawable/ic_folder_grey600_24dp"
+ android:orderInCategory="80"
+ android:title="@string/menu_change_category"
+ app:showAsAction="ifRoom" />
+
+ <item
android:id="@+id/menu_share"
android:icon="@drawable/ic_share_white_24dp"
android:orderInCategory="90"
@@ -10,17 +17,17 @@
app:showAsAction="ifRoom" />
<item
- android:id="@+id/menu_delete"
- android:icon="@drawable/ic_delete_grey600_24dp"
+ android:id="@+id/menu_move"
+ android:icon="@drawable/ic_send_grey600_24dp"
android:orderInCategory="100"
- android:title="@string/menu_delete"
+ android:title="@string/simple_move"
app:showAsAction="ifRoom" />
<item
- android:id="@+id/menu_move"
- android:icon="@drawable/ic_send_grey600_24dp"
+ android:id="@+id/menu_delete"
+ android:icon="@drawable/ic_delete_grey600_24dp"
android:orderInCategory="110"
- android:title="@string/simple_move"
+ android:title="@string/menu_delete"
app:showAsAction="ifRoom" />
</menu> \ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/2017000.txt b/fastlane/metadata/android/en-US/changelogs/2017000.txt
index ba3b3339..a2b107d5 100644
--- a/fastlane/metadata/android/en-US/changelogs/2017000.txt
+++ b/fastlane/metadata/android/en-US/changelogs/2017000.txt
@@ -1,2 +1,3 @@
- Selecting a note in the main note list highlights two notes (#920) (@muety)
-- Support www links without protocol in preview mode (#949) (@muety) \ No newline at end of file
+- Support www links without protocol in preview mode (#949) (@muety)
+- Allow to modify category in multi-select view (#946) \ No newline at end of file