Loading app/src/main/java/it/niedermann/owncloud/notes/edit/BaseNoteFragment.java +23 −17 Original line number Diff line number Diff line Loading @@ -30,28 +30,28 @@ import com.nextcloud.android.sso.helper.SingleAccountHelper; import com.nextcloud.android.sso.model.SingleSignOnAccount; import it.niedermann.owncloud.notes.R; import it.niedermann.owncloud.notes.edit.category.CategoryDialogFragment; import it.niedermann.owncloud.notes.edit.title.EditTitleDialogFragment; import it.niedermann.owncloud.notes.accountpicker.AccountPickerDialogFragment; import it.niedermann.owncloud.notes.branding.BrandedFragment; import it.niedermann.owncloud.notes.edit.category.CategoryDialogFragment; import it.niedermann.owncloud.notes.edit.category.CategoryDialogFragment.CategoryDialogListener; import it.niedermann.owncloud.notes.edit.title.EditTitleDialogFragment; import it.niedermann.owncloud.notes.edit.title.EditTitleDialogFragment.EditTitleListener; import it.niedermann.owncloud.notes.branding.BrandedFragment; import it.niedermann.owncloud.notes.persistence.NotesDatabase; import it.niedermann.owncloud.notes.shared.model.ApiVersion; import it.niedermann.owncloud.notes.shared.model.CloudNote; import it.niedermann.owncloud.notes.shared.model.DBNote; import it.niedermann.owncloud.notes.shared.model.DBStatus; import it.niedermann.owncloud.notes.shared.model.ISyncCallback; import it.niedermann.owncloud.notes.shared.model.LocalAccount; import it.niedermann.owncloud.notes.persistence.NotesDatabase; import it.niedermann.owncloud.notes.shared.util.ColorUtil; import it.niedermann.owncloud.notes.shared.util.NoteUtil; import it.niedermann.owncloud.notes.shared.util.ShareUtil; import static androidx.core.content.pm.ShortcutManagerCompat.isRequestPinShortcutSupported; import static it.niedermann.owncloud.notes.edit.EditNoteActivity.ACTION_SHORTCUT; import static it.niedermann.owncloud.notes.NotesApplication.isDarkThemeActive; import static it.niedermann.owncloud.notes.branding.BrandingUtil.tintMenuIcon; import static it.niedermann.owncloud.notes.edit.EditNoteActivity.ACTION_SHORTCUT; import static it.niedermann.owncloud.notes.shared.util.ColorUtil.isColorDark; import static it.niedermann.owncloud.notes.NotesApplication.isDarkThemeActive; public abstract class BaseNoteFragment extends BrandedFragment implements CategoryDialogListener, EditTitleListener { Loading @@ -65,6 +65,7 @@ public abstract class BaseNoteFragment extends BrandedFragment implements Catego private static final String SAVEDKEY_NOTE = "note"; private static final String SAVEDKEY_ORIGINAL_NOTE = "original_note"; private boolean canMoveNoteToAnotherAccounts = false; private LocalAccount localAccount; private SingleSignOnAccount ssoAccount; Loading @@ -79,9 +80,24 @@ public abstract class BaseNoteFragment extends BrandedFragment implements Catego protected boolean isNew = true; @Override public void onAttach(@NonNull Context context) { super.onAttach(context); try { listener = (NoteFragmentListener) context; } catch (ClassCastException e) { throw new ClassCastException(context.getClass() + " must implement " + NoteFragmentListener.class); } db = NotesDatabase.getInstance(context); } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); new Thread(() -> { canMoveNoteToAnotherAccounts = db.getAccountsCount() > 1; requireActivity().invalidateOptionsMenu(); }).start(); try { this.ssoAccount = SingleAccountHelper.getCurrentSingleSignOnAccount(requireActivity().getApplicationContext()); this.localAccount = db.getLocalAccountByAccountName(ssoAccount.name); Loading Loading @@ -147,17 +163,6 @@ public abstract class BaseNoteFragment extends BrandedFragment implements Catego } } @Override public void onAttach(@NonNull Context context) { super.onAttach(context); try { listener = (NoteFragmentListener) context; } catch (ClassCastException e) { throw new ClassCastException(context.getClass() + " must implement " + NoteFragmentListener.class); } db = NotesDatabase.getInstance(context); } @Override public void onResume() { super.onResume(); Loading Loading @@ -191,6 +196,7 @@ public abstract class BaseNoteFragment extends BrandedFragment implements Catego if (isRequestPinShortcutSupported(requireActivity()) && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { menu.add(Menu.NONE, MENU_ID_PIN, 110, R.string.pin_to_homescreen); } menu.findItem(R.id.menu_move).setVisible(canMoveNoteToAnotherAccounts); super.onCreateOptionsMenu(menu, inflater); } Loading app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesDatabase.java +10 −6 Original line number Diff line number Diff line Loading @@ -43,26 +43,26 @@ import java.util.Set; import it.niedermann.owncloud.notes.R; import it.niedermann.owncloud.notes.edit.EditNoteActivity; import it.niedermann.owncloud.notes.main.NavigationAdapter; import it.niedermann.owncloud.notes.shared.model.ApiVersion; import it.niedermann.owncloud.notes.shared.model.Capabilities; import it.niedermann.owncloud.notes.shared.model.Category; import it.niedermann.owncloud.notes.shared.model.CategorySortingMethod; import it.niedermann.owncloud.notes.shared.model.CloudNote; import it.niedermann.owncloud.notes.shared.model.DBNote; import it.niedermann.owncloud.notes.shared.model.DBStatus; import it.niedermann.owncloud.notes.shared.model.ISyncCallback; import it.niedermann.owncloud.notes.shared.model.LocalAccount; import it.niedermann.owncloud.notes.main.NavigationAdapter; import it.niedermann.owncloud.notes.widget.notelist.NoteListsWidgetData; import it.niedermann.owncloud.notes.widget.singlenote.SingleNoteWidgetData; import it.niedermann.owncloud.notes.shared.model.CategorySortingMethod; import it.niedermann.owncloud.notes.shared.util.ColorUtil; import it.niedermann.owncloud.notes.shared.util.NoteUtil; import it.niedermann.owncloud.notes.widget.notelist.NoteListsWidgetData; import it.niedermann.owncloud.notes.widget.singlenote.SingleNoteWidgetData; import static it.niedermann.owncloud.notes.edit.EditNoteActivity.ACTION_SHORTCUT; import static it.niedermann.owncloud.notes.shared.util.NoteUtil.generateNoteExcerpt; import static it.niedermann.owncloud.notes.widget.notelist.NoteListWidget.updateNoteListWidgets; import static it.niedermann.owncloud.notes.widget.singlenote.SingleNoteWidget.updateSingleNoteWidgets; import static it.niedermann.owncloud.notes.widget.notelist.NoteListsWidgetData.MODE_DISPLAY_CATEGORY; import static it.niedermann.owncloud.notes.shared.util.NoteUtil.generateNoteExcerpt; import static it.niedermann.owncloud.notes.widget.singlenote.SingleNoteWidget.updateSingleNoteWidgets; /** * Helps to add, get, update and delete Notes with the option to trigger a Resync with the Server. Loading Loading @@ -726,6 +726,10 @@ public class NotesDatabase extends AbstractNotesDatabase { return DatabaseUtils.queryNumEntries(getReadableDatabase(), table_accounts) > 0; } public long getAccountsCount() { return DatabaseUtils.queryNumEntries(getReadableDatabase(), table_accounts); } /** * @param url URL to the root of the used Nextcloud instance without trailing slash * @param username Username of the account Loading Loading
app/src/main/java/it/niedermann/owncloud/notes/edit/BaseNoteFragment.java +23 −17 Original line number Diff line number Diff line Loading @@ -30,28 +30,28 @@ import com.nextcloud.android.sso.helper.SingleAccountHelper; import com.nextcloud.android.sso.model.SingleSignOnAccount; import it.niedermann.owncloud.notes.R; import it.niedermann.owncloud.notes.edit.category.CategoryDialogFragment; import it.niedermann.owncloud.notes.edit.title.EditTitleDialogFragment; import it.niedermann.owncloud.notes.accountpicker.AccountPickerDialogFragment; import it.niedermann.owncloud.notes.branding.BrandedFragment; import it.niedermann.owncloud.notes.edit.category.CategoryDialogFragment; import it.niedermann.owncloud.notes.edit.category.CategoryDialogFragment.CategoryDialogListener; import it.niedermann.owncloud.notes.edit.title.EditTitleDialogFragment; import it.niedermann.owncloud.notes.edit.title.EditTitleDialogFragment.EditTitleListener; import it.niedermann.owncloud.notes.branding.BrandedFragment; import it.niedermann.owncloud.notes.persistence.NotesDatabase; import it.niedermann.owncloud.notes.shared.model.ApiVersion; import it.niedermann.owncloud.notes.shared.model.CloudNote; import it.niedermann.owncloud.notes.shared.model.DBNote; import it.niedermann.owncloud.notes.shared.model.DBStatus; import it.niedermann.owncloud.notes.shared.model.ISyncCallback; import it.niedermann.owncloud.notes.shared.model.LocalAccount; import it.niedermann.owncloud.notes.persistence.NotesDatabase; import it.niedermann.owncloud.notes.shared.util.ColorUtil; import it.niedermann.owncloud.notes.shared.util.NoteUtil; import it.niedermann.owncloud.notes.shared.util.ShareUtil; import static androidx.core.content.pm.ShortcutManagerCompat.isRequestPinShortcutSupported; import static it.niedermann.owncloud.notes.edit.EditNoteActivity.ACTION_SHORTCUT; import static it.niedermann.owncloud.notes.NotesApplication.isDarkThemeActive; import static it.niedermann.owncloud.notes.branding.BrandingUtil.tintMenuIcon; import static it.niedermann.owncloud.notes.edit.EditNoteActivity.ACTION_SHORTCUT; import static it.niedermann.owncloud.notes.shared.util.ColorUtil.isColorDark; import static it.niedermann.owncloud.notes.NotesApplication.isDarkThemeActive; public abstract class BaseNoteFragment extends BrandedFragment implements CategoryDialogListener, EditTitleListener { Loading @@ -65,6 +65,7 @@ public abstract class BaseNoteFragment extends BrandedFragment implements Catego private static final String SAVEDKEY_NOTE = "note"; private static final String SAVEDKEY_ORIGINAL_NOTE = "original_note"; private boolean canMoveNoteToAnotherAccounts = false; private LocalAccount localAccount; private SingleSignOnAccount ssoAccount; Loading @@ -79,9 +80,24 @@ public abstract class BaseNoteFragment extends BrandedFragment implements Catego protected boolean isNew = true; @Override public void onAttach(@NonNull Context context) { super.onAttach(context); try { listener = (NoteFragmentListener) context; } catch (ClassCastException e) { throw new ClassCastException(context.getClass() + " must implement " + NoteFragmentListener.class); } db = NotesDatabase.getInstance(context); } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); new Thread(() -> { canMoveNoteToAnotherAccounts = db.getAccountsCount() > 1; requireActivity().invalidateOptionsMenu(); }).start(); try { this.ssoAccount = SingleAccountHelper.getCurrentSingleSignOnAccount(requireActivity().getApplicationContext()); this.localAccount = db.getLocalAccountByAccountName(ssoAccount.name); Loading Loading @@ -147,17 +163,6 @@ public abstract class BaseNoteFragment extends BrandedFragment implements Catego } } @Override public void onAttach(@NonNull Context context) { super.onAttach(context); try { listener = (NoteFragmentListener) context; } catch (ClassCastException e) { throw new ClassCastException(context.getClass() + " must implement " + NoteFragmentListener.class); } db = NotesDatabase.getInstance(context); } @Override public void onResume() { super.onResume(); Loading Loading @@ -191,6 +196,7 @@ public abstract class BaseNoteFragment extends BrandedFragment implements Catego if (isRequestPinShortcutSupported(requireActivity()) && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { menu.add(Menu.NONE, MENU_ID_PIN, 110, R.string.pin_to_homescreen); } menu.findItem(R.id.menu_move).setVisible(canMoveNoteToAnotherAccounts); super.onCreateOptionsMenu(menu, inflater); } Loading
app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesDatabase.java +10 −6 Original line number Diff line number Diff line Loading @@ -43,26 +43,26 @@ import java.util.Set; import it.niedermann.owncloud.notes.R; import it.niedermann.owncloud.notes.edit.EditNoteActivity; import it.niedermann.owncloud.notes.main.NavigationAdapter; import it.niedermann.owncloud.notes.shared.model.ApiVersion; import it.niedermann.owncloud.notes.shared.model.Capabilities; import it.niedermann.owncloud.notes.shared.model.Category; import it.niedermann.owncloud.notes.shared.model.CategorySortingMethod; import it.niedermann.owncloud.notes.shared.model.CloudNote; import it.niedermann.owncloud.notes.shared.model.DBNote; import it.niedermann.owncloud.notes.shared.model.DBStatus; import it.niedermann.owncloud.notes.shared.model.ISyncCallback; import it.niedermann.owncloud.notes.shared.model.LocalAccount; import it.niedermann.owncloud.notes.main.NavigationAdapter; import it.niedermann.owncloud.notes.widget.notelist.NoteListsWidgetData; import it.niedermann.owncloud.notes.widget.singlenote.SingleNoteWidgetData; import it.niedermann.owncloud.notes.shared.model.CategorySortingMethod; import it.niedermann.owncloud.notes.shared.util.ColorUtil; import it.niedermann.owncloud.notes.shared.util.NoteUtil; import it.niedermann.owncloud.notes.widget.notelist.NoteListsWidgetData; import it.niedermann.owncloud.notes.widget.singlenote.SingleNoteWidgetData; import static it.niedermann.owncloud.notes.edit.EditNoteActivity.ACTION_SHORTCUT; import static it.niedermann.owncloud.notes.shared.util.NoteUtil.generateNoteExcerpt; import static it.niedermann.owncloud.notes.widget.notelist.NoteListWidget.updateNoteListWidgets; import static it.niedermann.owncloud.notes.widget.singlenote.SingleNoteWidget.updateSingleNoteWidgets; import static it.niedermann.owncloud.notes.widget.notelist.NoteListsWidgetData.MODE_DISPLAY_CATEGORY; import static it.niedermann.owncloud.notes.shared.util.NoteUtil.generateNoteExcerpt; import static it.niedermann.owncloud.notes.widget.singlenote.SingleNoteWidget.updateSingleNoteWidgets; /** * Helps to add, get, update and delete Notes with the option to trigger a Resync with the Server. Loading Loading @@ -726,6 +726,10 @@ public class NotesDatabase extends AbstractNotesDatabase { return DatabaseUtils.queryNumEntries(getReadableDatabase(), table_accounts) > 0; } public long getAccountsCount() { return DatabaseUtils.queryNumEntries(getReadableDatabase(), table_accounts); } /** * @param url URL to the root of the used Nextcloud instance without trailing slash * @param username Username of the account Loading