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-12-21 16:23:04 +0300
committerStefan Niedermann <info@niedermann.it>2020-12-21 16:23:04 +0300
commitb0fc752ac086863b539605edd22eb1b7f0b8242e (patch)
treed03ebea3d77f6eec83431bc58ee123a4676e851f
parent17df854adf30ec1c77a89f0e2032f5b99c19870f (diff)
Remove app side list auto continuation & version bump to 2.18.1v2.18.1
-rw-r--r--app/build.gradle4
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/edit/NoteEditFragment.java13
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/edit/NotesTextWatcher.java100
3 files changed, 13 insertions, 104 deletions
diff --git a/app/build.gradle b/app/build.gradle
index 3b091270..5b830c5d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -13,8 +13,8 @@ android {
applicationId "it.niedermann.owncloud.notes"
minSdkVersion 19
targetSdkVersion 29
- versionCode 2018000
- versionName "2.18.0"
+ versionCode 2018001
+ versionName "2.18.1"
multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/edit/NoteEditFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/edit/NoteEditFragment.java
index 4018bbe6..db657b7f 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/edit/NoteEditFragment.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/edit/NoteEditFragment.java
@@ -122,10 +122,19 @@ public class NoteEditFragment extends SearchableBaseNoteFragment {
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
- textWatcher = new NotesTextWatcher(binding.editContent) {
+ textWatcher = new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+ // Nothing to do here...
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ // Nothing to do here...
+ }
+
@Override
public void afterTextChanged(final Editable s) {
- super.afterTextChanged(s);
unsavedEdit = true;
if (!saveActive) {
handler.removeCallbacks(runAutoSave);
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/edit/NotesTextWatcher.java b/app/src/main/java/it/niedermann/owncloud/notes/edit/NotesTextWatcher.java
deleted file mode 100644
index f9ced1ae..00000000
--- a/app/src/main/java/it/niedermann/owncloud/notes/edit/NotesTextWatcher.java
+++ /dev/null
@@ -1,100 +0,0 @@
-package it.niedermann.owncloud.notes.edit;
-
-import android.text.Editable;
-import android.text.TextWatcher;
-import android.util.Log;
-import android.widget.EditText;
-
-import androidx.annotation.NonNull;
-
-import it.niedermann.owncloud.notes.shared.util.MarkDownUtil;
-
-import static it.niedermann.owncloud.notes.shared.util.MarkDownUtil.CHECKBOX_UNCHECKED_MINUS_TRAILING_SPACE;
-import static it.niedermann.owncloud.notes.shared.util.MarkDownUtil.CHECKBOX_UNCHECKED_STAR_TRAILING_SPACE;
-
-/**
- * Implements auto-continuation for checked-lists
- */
-public abstract class NotesTextWatcher implements TextWatcher {
-
- private static final String TAG = NotesTextWatcher.class.getSimpleName();
-
- private static final String codeBlock = "```";
-
- private static final int lengthCheckbox = 6;
-
- private boolean resetSelection = false;
- private boolean afterTextChangedHandeled = false;
- private int resetSelectionTo = -1;
-
- private final EditText editText;
-
- protected NotesTextWatcher(EditText editText) {
- this.editText = editText;
- }
-
- @Override
- public void beforeTextChanged(CharSequence s, int start, int count, int after) {
- // Nothing to do here...
- }
-
- @Override
- public void onTextChanged(CharSequence s, int start, int before, int count) {
- // https://github.com/stefan-niedermann/nextcloud-notes/issues/608
- if (count == 1 && s.charAt(start) == '\n') { // 'Enter' was pressed
- autoContinueCheckboxListsOnEnter(s, start, count);
- }
- // https://github.com/stefan-niedermann/nextcloud-notes/issues/558
- if (s.toString().contains(codeBlock)) {
- preventCursorJumpToTopWithinCodeBlock(s, start, count);
- }
- }
-
- @Override
- public void afterTextChanged(Editable s) {
- if (resetSelection && !afterTextChangedHandeled) {
- Log.v(TAG, "Resetting selection to " + resetSelectionTo);
- afterTextChangedHandeled = true;
- setNewText(new StringBuilder(s), resetSelectionTo);
- afterTextChangedHandeled = false;
- resetSelection = false;
- resetSelectionTo = -1;
- }
- }
-
- private void autoContinueCheckboxListsOnEnter(@NonNull CharSequence s, int start, int count) {
- // Find start of line
- int startOfLine = MarkDownUtil.getStartOfLine(s, start);
- String line = s.subSequence(startOfLine, start).toString();
-
- if (line.equals(CHECKBOX_UNCHECKED_MINUS_TRAILING_SPACE) || line.equals(CHECKBOX_UNCHECKED_STAR_TRAILING_SPACE)) {
- editText.setSelection(startOfLine + 1);
- setNewText(new StringBuilder(s).replace(startOfLine, startOfLine + lengthCheckbox + 1, "\n"), startOfLine + 1);
- } else if (MarkDownUtil.lineStartsWithCheckbox(line, false)) {
- setNewText(new StringBuilder(s).insert(start + count, CHECKBOX_UNCHECKED_MINUS_TRAILING_SPACE), start + lengthCheckbox + 1);
- } else if (MarkDownUtil.lineStartsWithCheckbox(line, true)) {
- setNewText(new StringBuilder(s).insert(start + count, CHECKBOX_UNCHECKED_STAR_TRAILING_SPACE), start + lengthCheckbox + 1);
- }
- }
-
- private void preventCursorJumpToTopWithinCodeBlock(@NonNull CharSequence s, int start, int count) {
- // Find start of line
- int startOfLine = MarkDownUtil.getStartOfLine(s, start);
- String line = s.subSequence(startOfLine, start).toString();
- // "start" is the direct sibling of the codeBlock
- if (line.startsWith(codeBlock) && start - startOfLine == codeBlock.length() && !resetSelection) {
- resetSelectionTo = editText.getSelectionEnd();
- resetSelection = true;
- Log.v(TAG, "Entered a character directly behind a codeBlock - prepare selection reset to " + resetSelectionTo);
- } else if (s.subSequence(startOfLine, start + count).toString().startsWith(codeBlock) && !resetSelection) {
- resetSelectionTo = editText.getSelectionEnd();
- resetSelection = true;
- Log.v(TAG, "One completed a ``-codeBlock with the third `-character - prepare selection reset to " + resetSelectionTo);
- }
- }
-
- private void setNewText(@NonNull StringBuilder newText, int selection) {
- editText.setText(newText);
- editText.setSelection(selection);
- }
-}