Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix v2.8.1 saving issues #1473

Merged
merged 19 commits into from
Oct 29, 2021
Merged
Show file tree
Hide file tree
Changes from 18 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@
import net.gsantner.markor.model.Document;
import net.gsantner.markor.util.ActivityUtils;
import net.gsantner.markor.util.AppSettings;
import net.gsantner.markor.util.DocumentIO;
import net.gsantner.markor.util.PermissionChecker;
import net.gsantner.opoc.activity.GsFragmentBase;
import net.gsantner.opoc.util.Callback;
Expand Down Expand Up @@ -73,13 +72,13 @@ public static void launch(Activity activity, File path, Boolean isFolder, Boolea
intent = new Intent(activity, DocumentActivity.class);
}
if (path != null) {
intent.putExtra(DocumentIO.EXTRA_PATH, path);
intent.putExtra(Document.EXTRA_PATH, path);
}
if (lineNumber != null && lineNumber >= 0) {
intent.putExtra(DocumentIO.EXTRA_FILE_LINE_NUMBER, lineNumber);
intent.putExtra(Document.EXTRA_FILE_LINE_NUMBER, lineNumber);
}
if (isFolder != null) {
intent.putExtra(DocumentIO.EXTRA_PATH_IS_FOLDER, isFolder);
intent.putExtra(Document.EXTRA_PATH_IS_FOLDER, isFolder);
}
if (doPreview != null) {
intent.putExtra(DocumentActivity.EXTRA_DO_PREVIEW, doPreview);
Expand Down Expand Up @@ -186,8 +185,8 @@ private void handleLaunchingIntent(Intent intent) {
String intentAction = intent.getAction();
Uri intentData = intent.getData();

File file = (File) intent.getSerializableExtra(DocumentIO.EXTRA_PATH);
boolean fileIsFolder = intent.getBooleanExtra(DocumentIO.EXTRA_PATH_IS_FOLDER, false);
File file = (File) intent.getSerializableExtra(Document.EXTRA_PATH);
boolean fileIsFolder = intent.getBooleanExtra(Document.EXTRA_PATH_IS_FOLDER, false);

boolean intentIsView = Intent.ACTION_VIEW.equals(intentAction);
boolean intentIsSend = Intent.ACTION_SEND.equals(intentAction);
Expand All @@ -204,7 +203,7 @@ private void handleLaunchingIntent(Intent intent) {
}

if (!intentIsSend && file != null) {
final int paramLineNumber = intent.getIntExtra(DocumentIO.EXTRA_FILE_LINE_NUMBER, (intentData != null ? StringUtils.tryParseInt(intentData.getQueryParameter("line"), -1) : -1));
final int paramLineNumber = intent.getIntExtra(Document.EXTRA_FILE_LINE_NUMBER, (intentData != null ? StringUtils.tryParseInt(intentData.getQueryParameter("line"), -1) : -1));
final boolean paramPreview = (paramLineNumber < 0) && (intent.getBooleanExtra(EXTRA_DO_PREVIEW, false)
|| (file.exists() && file.isFile() && _appSettings.getDocumentPreviewState(file.getPath()))
|| file.getName().startsWith("index."));
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@
import net.gsantner.markor.ui.hleditor.HighlightingEditor;
import net.gsantner.markor.util.AppSettings;
import net.gsantner.markor.util.ContextUtils;
import net.gsantner.markor.util.DocumentIO;
import net.gsantner.markor.util.PermissionChecker;
import net.gsantner.markor.util.ShareUtil;
import net.gsantner.opoc.activity.GsFragmentBase;
Expand All @@ -59,8 +58,8 @@ public static DocumentShareIntoFragment newInstance(Intent intent) {

final String sharedText = formatLink(intent.getStringExtra(Intent.EXTRA_SUBJECT), intent.getStringExtra(Intent.EXTRA_TEXT));

Object intentFile = intent.getSerializableExtra(DocumentIO.EXTRA_PATH);
if (intentFile != null && intent.getBooleanExtra(DocumentIO.EXTRA_PATH_IS_FOLDER, false)) {
Object intentFile = intent.getSerializableExtra(Document.EXTRA_PATH);
if (intentFile != null && intent.getBooleanExtra(Document.EXTRA_PATH_IS_FOLDER, false)) {
f.workingDir = (File) intentFile;
}

Expand Down Expand Up @@ -203,12 +202,14 @@ public void setText(String text) {

private void appendToExistingDocument(final File file, final String separator, final boolean showEditor) {
Bundle args = new Bundle();
args.putSerializable(DocumentIO.EXTRA_PATH, file);
args.putBoolean(DocumentIO.EXTRA_PATH_IS_FOLDER, false);
Document document = DocumentIO.loadDocument(getContext(), args, null);
String trimmedContent = document.getContent().trim();
args.putSerializable(Document.EXTRA_PATH, file);
args.putBoolean(Document.EXTRA_PATH_IS_FOLDER, false);
final Context context = getContext();
final Document document = Document.fromArguments(context, args);
String trimmedContent = document.loadContent(context).trim();
String currentContent = TextUtils.isEmpty(trimmedContent) ? "" : (trimmedContent + "\n");
DocumentIO.saveDocument(document, currentContent + separator + _sharedText, new ShareUtil(getContext()), getContext());
document.saveContent(context, currentContent + separator + _sharedText);

if (showEditor) {
showInDocumentActivity(document);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@

import net.gsantner.markor.R;
import net.gsantner.markor.activity.DocumentActivity;
import net.gsantner.markor.model.Document;
import net.gsantner.markor.util.AppSettings;
import net.gsantner.markor.util.DocumentIO;
import net.gsantner.opoc.util.ActivityUtils;
import net.gsantner.opoc.util.FileUtils;
import net.gsantner.opoc.util.PermissionChecker;
Expand All @@ -26,8 +26,8 @@ public class OpenEditorActivity extends AppCompatActivity {
protected void openEditorForFile(File file) {
Intent openIntent = new Intent(getApplicationContext(), DocumentActivity.class)
.setAction(Intent.ACTION_CALL_BUTTON)
.putExtra(DocumentIO.EXTRA_PATH, file)
.putExtra(DocumentIO.EXTRA_PATH_IS_FOLDER, false);
.putExtra(Document.EXTRA_PATH, file)
.putExtra(Document.EXTRA_PATH_IS_FOLDER, false);
openActivityAndClose(openIntent, file);
}

Expand All @@ -43,8 +43,8 @@ protected void openActivityAndClose(final Intent openIntent, File file) {
if (!file.exists() && !file.isDirectory()) {
FileUtils.writeFile(file, "");
}
openIntent.putExtra(DocumentIO.EXTRA_PATH, openIntent.hasExtra(DocumentIO.EXTRA_PATH) ? openIntent.getSerializableExtra(DocumentIO.EXTRA_PATH) : file);
openIntent.putExtra(DocumentIO.EXTRA_PATH_IS_FOLDER, openIntent.hasExtra(DocumentIO.EXTRA_PATH_IS_FOLDER) ? openIntent.getSerializableExtra(DocumentIO.EXTRA_PATH_IS_FOLDER) : file.isDirectory());
openIntent.putExtra(Document.EXTRA_PATH, openIntent.hasExtra(Document.EXTRA_PATH) ? openIntent.getSerializableExtra(Document.EXTRA_PATH) : file);
openIntent.putExtra(Document.EXTRA_PATH_IS_FOLDER, openIntent.hasExtra(Document.EXTRA_PATH_IS_FOLDER) ? openIntent.getSerializableExtra(Document.EXTRA_PATH_IS_FOLDER) : file.isDirectory());
ActivityUtils au = new ActivityUtils(this);
au.animateToActivity(openIntent, true, 1);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import android.support.annotation.Nullable;

import net.gsantner.markor.activity.DocumentRelayActivity;
import net.gsantner.markor.util.DocumentIO;
import net.gsantner.markor.model.Document;

public class OpenShareIntoActivity extends OpenEditorActivity {

Expand All @@ -24,7 +24,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {

Intent openShare = new Intent(this, DocumentRelayActivity.class)
.setAction(Intent.ACTION_SEND)
.putExtra(DocumentIO.EXTRA_PATH_IS_FOLDER, true)
.putExtra(Document.EXTRA_PATH_IS_FOLDER, true)
.putExtra(Intent.EXTRA_TEXT, "");
openActivityAndClose(openShare, null);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,11 +74,11 @@ public abstract class TextConverter {
* @param webView The WebView content to be shown in
* @return Copy of converted html
*/
public String convertMarkupShowInWebView(Document document, WebView webView, boolean isExportInLightMode, File file) {
public String convertMarkupShowInWebView(Document document, String content, WebView webView, boolean isExportInLightMode) {
Context context = webView.getContext();
String html;
try {
html = convertMarkup(document.getContent(), context, isExportInLightMode, file);
html = convertMarkup(content, context, isExportInLightMode, document.getFile());
} catch (Exception e) {
html = "Please report at project issue tracker: " + e.toString();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import android.app.DatePickerDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.StringRes;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.FragmentActivity;
Expand All @@ -28,8 +29,6 @@
import net.gsantner.markor.ui.SearchOrCustomTextDialogCreator;
import net.gsantner.markor.ui.hleditor.TextActions;
import net.gsantner.markor.util.AppSettings;
import net.gsantner.markor.util.DocumentIO;
import net.gsantner.markor.util.ShareUtil;
import net.gsantner.opoc.util.FileUtils;
import net.gsantner.opoc.util.StringUtils;

Expand Down Expand Up @@ -171,7 +170,8 @@ public void onClick(View view) {
}
case R.string.tmaid_todotxt_archive_done_tasks: {
SearchOrCustomTextDialogCreator.showSttArchiveDialog(_activity, (callbackPayload) -> {
// Don't do parse tasks in this case, performance wise
callbackPayload = Document.normalizeFilename(callbackPayload);

final ArrayList<TodoTxtTask> keep = new ArrayList<>();
final ArrayList<TodoTxtTask> move = new ArrayList<>();
final TodoTxtTask[] allTasks = TodoTxtTask.getAllTasks(_hlEditor.getText());
Expand All @@ -191,25 +191,22 @@ public void onClick(View view) {
keep.add(task);
}
}
if (!move.isEmpty()) {
File todoFile = _document.getFile();
if (todoFile != null && (todoFile.getParentFile().exists() || todoFile.getParentFile().mkdirs())) {
File doneFile = new File(todoFile.getParentFile(), callbackPayload);
String doneFileContents = "";
if (doneFile.exists() && doneFile.canRead()) {
doneFileContents = FileUtils.readTextFileFast(doneFile).trim() + "\n";
}
doneFileContents += TodoTxtTask.tasksToString(move) + "\n";

// Write to do done file
if (DocumentIO.saveDocument(new Document(doneFile), doneFileContents, new ShareUtil(_activity), getContext())) {
final String tasksString = TodoTxtTask.tasksToString(keep);
_hlEditor.setText(tasksString);
_hlEditor.setSelection(
StringUtils.getIndexFromLineOffset(tasksString, selStart),
StringUtils.getIndexFromLineOffset(tasksString, selEnd)
);
}
if (!move.isEmpty() && _document.testCreateParent()) {
File doneFile = new File(_document.getFile().getParentFile(), callbackPayload);
String doneFileContents = "";
if (doneFile.exists() && doneFile.canRead()) {
doneFileContents = FileUtils.readTextFileFast(doneFile).trim() + "\n";
}
doneFileContents += TodoTxtTask.tasksToString(move) + "\n";

// Write to done file
if (new Document(doneFile).saveContent(getContext(), doneFileContents)) {
final String tasksString = TodoTxtTask.tasksToString(keep);
_hlEditor.setText(tasksString);
_hlEditor.setSelection(
StringUtils.getIndexFromLineOffset(tasksString, selStart),
StringUtils.getIndexFromLineOffset(tasksString, selEnd)
);
}
}
new AppSettings(_activity).setLastTodoUsedArchiveFilename(callbackPayload);
Expand Down Expand Up @@ -455,6 +452,7 @@ public DateFragment setCalendar(Calendar calendar) {
return this;
}

@NonNull
@Override
public DatePickerDialog onCreateDialog(Bundle savedInstanceState) {
super.onCreateDialog(savedInstanceState);
Expand All @@ -472,8 +470,4 @@ public DatePickerDialog onCreateDialog(Bundle savedInstanceState) {
return dialog;
}
}

private void doBasicHighlights(final Spannable spannable) {
TodoTxtHighlighter.basicTodoTxtHighlights(spannable, true, new TodoTxtHighlighterColors(), _appSettings.isDarkThemeEnabled(), null);
}
}
Loading