Skip to content

Commit f19f8b2

Browse files
harshad1gsantner
andauthored
Keyboard TAB key handling, syntax highlighting performance, filebrowser navigation (PR #2487 closes #2469 #2484)
* Keypress handler * Restored option, fixed duplicate calls to loadFolder on resume * Made some small changes for highlighting performance --------- Co-authored-by: Gregor Santner <[email protected]>
1 parent fb65b28 commit f19f8b2

26 files changed

+159
-138
lines changed

app/src/main/java/net/gsantner/markor/activity/ActionButtonSettingsActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@
3232
import net.gsantner.markor.format.ActionButtonBase.ActionItem.DisplayMode;
3333
import net.gsantner.markor.format.asciidoc.AsciidocActionButtons;
3434
import net.gsantner.markor.format.markdown.MarkdownActionButtons;
35+
import net.gsantner.markor.format.orgmode.OrgmodeActionButtons;
3536
import net.gsantner.markor.format.plaintext.PlaintextActionButtons;
3637
import net.gsantner.markor.format.todotxt.TodoTxtActionButtons;
3738
import net.gsantner.markor.format.wikitext.WikitextActionButtons;
38-
import net.gsantner.markor.format.orgmode.OrgmodeActionButtons;
3939
import net.gsantner.opoc.util.GsCollectionUtils;
4040

4141
import java.util.ArrayList;

app/src/main/java/net/gsantner/markor/activity/DocumentActivity.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@
3838
import net.gsantner.opoc.util.GsFileUtils;
3939

4040
import java.io.File;
41-
import java.util.Stack;
4241

4342
import other.so.AndroidBug5497Workaround;
4443

app/src/main/java/net/gsantner/markor/activity/DocumentEditAndViewFragment.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,10 @@ public boolean onQueryTextChange(String text) {
365365

366366
@Override
367367
public boolean onReceiveKeyPress(int keyCode, KeyEvent event) {
368+
if (_format != null && _format.getActions().onReceiveKeyPress(keyCode, event)) {
369+
return true;
370+
}
371+
368372
if (event.isCtrlPressed()) {
369373
if (event.isShiftPressed() && keyCode == KeyEvent.KEYCODE_Z) {
370374
if (_editTextUndoRedoHelper != null && _editTextUndoRedoHelper.getCanRedo()) {

app/src/main/java/net/gsantner/markor/activity/MainActivity.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -193,10 +193,11 @@ protected void onNewIntent(final Intent intent) {
193193
if (_notebook != null && file != null) {
194194
_viewPager.setCurrentItem(tabIdToPos(R.id.nav_notebook), false);
195195
if (file.isDirectory() || GsFileBrowserListAdapter.isVirtualFolder(file)) {
196-
_notebook.setCurrentFolder(file);
196+
_notebook.getAdapter().setCurrentFolder(file);
197197
} else {
198198
_notebook.getAdapter().showFile(file);
199199
}
200+
_notebook.setReloadRequiredOnResume(false);
200201
}
201202
}
202203

@@ -296,7 +297,7 @@ public void onClickFab(final View view) {
296297
return;
297298
}
298299

299-
if (_notebook.getAdapter().isCurrentFolderVirtual()) {
300+
if (!_notebook.getAdapter().isCurrentFolderWriteable()) {
300301
_notebook.getAdapter().setCurrentFolder(_appSettings.getNotebookDirectory());
301302
return;
302303
}
@@ -307,10 +308,6 @@ public void onClickFab(final View view) {
307308
return;
308309
}
309310

310-
if (!_notebook.getAdapter().isCurrentFolderWriteable()) {
311-
return;
312-
}
313-
314311
NewFileDialog.newInstance(_notebook.getCurrentFolder(), true, this::newItemCallback)
315312
.show(getSupportFragmentManager(), NewFileDialog.FRAGMENT_TAG);
316313
}

app/src/main/java/net/gsantner/markor/format/ActionButtonBase.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1014,4 +1014,12 @@ public void runJumpBottomTopAction(ActionItem.DisplayMode displayMode) {
10141014
}
10151015
}
10161016

1017+
public boolean onReceiveKeyPress(final int keyCode, final KeyEvent event) {
1018+
if (keyCode == KeyEvent.KEYCODE_TAB && _appSettings.isIndentWithTabKey()) {
1019+
runIndentLines(event.isShiftPressed());
1020+
runRenumberOrderedListIfRequired();
1021+
return true;
1022+
}
1023+
return false;
1024+
}
10171025
}

app/src/main/java/net/gsantner/markor/format/TextConverterBase.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -200,9 +200,9 @@ protected String getContentType() {
200200
}
201201

202202
public boolean isFileOutOfThisFormat(final @NonNull File file) {
203-
final String name = file.getName().toLowerCase().replace(JavaPasswordbasedCryption.DEFAULT_ENCRYPTION_EXTENSION, "");
204-
final String ext = name.replaceAll(".*\\.", ".");
205-
return isFileOutOfThisFormat(file, name, ext);
203+
final String name = file.getName().toLowerCase().replace(JavaPasswordbasedCryption.DEFAULT_ENCRYPTION_EXTENSION, "").trim();
204+
final String extWithDot = GsFileUtils.getFilenameExtension(name);
205+
return isFileOutOfThisFormat(file, name, extWithDot);
206206
}
207207

208208
protected abstract boolean isFileOutOfThisFormat(final File file, final String name, final String ext);

app/src/main/java/net/gsantner/markor/format/asciidoc/AsciidocActionButtons.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import net.gsantner.markor.R;
1616
import net.gsantner.markor.format.ActionButtonBase;
1717
import net.gsantner.markor.frontend.MarkorDialogFactory;
18-
import net.gsantner.markor.frontend.textview.TextViewUtils;
1918
import net.gsantner.markor.model.Document;
2019

2120
import java.util.Arrays;

app/src/main/java/net/gsantner/markor/format/todotxt/TodoTxtActionButtons.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -184,17 +184,15 @@ public boolean onActionLongClick(final @StringRes int action) {
184184
}
185185
}
186186
if (areAllSamePriority) {
187-
if(prevPriority != tasks.get(0).getPriority() && prevPriority != '\0') {
187+
if (prevPriority != tasks.get(0).getPriority() && prevPriority != '\0') {
188188
setPriority(prevPriority);
189-
}
190-
else if(nextPriority != tasks.get(tasks.size() - 1).getPriority() && nextPriority != '\0') {
189+
} else if (nextPriority != tasks.get(tasks.size() - 1).getPriority() && nextPriority != '\0') {
191190
setPriority(nextPriority);
192-
}
193-
else {
191+
} else {
194192
setPriority(TodoTxtTask.PRIORITY_NONE);
195193
}
196194
} else {
197-
if(prevPriority != '\0') {
195+
if (prevPriority != '\0') {
198196
setPriority(prevPriority);
199197
} else {
200198
setPriority(tasks.get(0).getPriority());
@@ -236,7 +234,7 @@ public void archiveDoneTasks() {
236234
}
237235

238236
if (!move.isEmpty() && _document.testCreateParent()) {
239-
final File doneFile = new File(_document.file.getParentFile(), doneName);
237+
final File doneFile = new File(_document.file.getParentFile(), doneName);
240238
final StringBuilder doneContents = new StringBuilder();
241239
if (doneFile.exists() && doneFile.canRead()) {
242240
doneContents.append(GsFileUtils.readTextFileFast(doneFile).first.trim()).append("\n");
@@ -250,7 +248,7 @@ public void archiveDoneTasks() {
250248
TextViewUtils.setSelectionFromOffsets(_hlEditor, offsets);
251249
}
252250
}
253-
_appSettings.setLastTodoDoneName(_document.path, doneName);
251+
_appSettings.setLastTodoDoneName(_document.path, doneName);
254252
});
255253
}
256254

app/src/main/java/net/gsantner/markor/format/todotxt/TodoTxtTask.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public static List<TodoTxtTask> getSelectedTasks(final TextView view) {
8383
}
8484

8585
public static List<TodoTxtTask> getAllTasks(final CharSequence text) {
86-
return getTasks(text, new int[] {0, text.length()});
86+
return getTasks(text, new int[]{0, text.length()});
8787
}
8888

8989
public static List<String> getProjects(final List<TodoTxtTask> tasks) {

app/src/main/java/net/gsantner/markor/format/wikitext/WikitextActionButtons.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
import android.content.Context;
1111
import android.os.Build;
12+
import android.view.KeyEvent;
1213

1314
import androidx.annotation.NonNull;
1415
import androidx.annotation.StringRes;
@@ -271,4 +272,19 @@ public boolean runTitleClick() {
271272
protected void renumberOrderedList() {
272273
AutoTextFormatter.renumberOrderedList(_hlEditor.getText(), WikitextReplacePatternGenerator.formatPatterns);
273274
}
275+
276+
@Override
277+
public boolean onReceiveKeyPress(final int keyCode, final KeyEvent event) {
278+
if (keyCode == KeyEvent.KEYCODE_TAB && _appSettings.isIndentWithTabKey()) {
279+
if (event.isShiftPressed()) {
280+
runRegexReplaceAction(WikitextReplacePatternGenerator.deindentOneTab());
281+
} else {
282+
runRegexReplaceAction(WikitextReplacePatternGenerator.indentOneTab());
283+
}
284+
runRenumberOrderedListIfRequired();
285+
return true;
286+
}
287+
288+
return super.onReceiveKeyPress(keyCode, event);
289+
}
274290
}

0 commit comments

Comments
 (0)