Loading app/build.gradle +4 −2 Original line number Diff line number Diff line Loading @@ -26,8 +26,10 @@ android { dependencies { implementation project(':cert4android') implementation 'com.yydcdut:rxmarkdown:0.1.1-beta' implementation 'io.reactivex:rxandroid:1.2.0' implementation 'io.reactivex:rxjava:1.1.5' implementation 'com.yydcdut:markdown-processor:0.1.3' implementation 'com.yydcdut:rxmarkdown-wrapper:0.1.3' implementation 'com.jakewharton:butterknife:8.8.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1' Loading app/src/main/java/it/niedermann/owncloud/notes/android/activity/NotesListViewActivity.java +9 −0 Original line number Diff line number Diff line Loading @@ -2,11 +2,14 @@ package it.niedermann.owncloud.notes.android.activity; import android.app.SearchManager; import android.content.Intent; import android.content.SharedPreferences; import android.content.res.Configuration; import android.graphics.Canvas; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; import android.preference.PreferenceManager; import android.support.annotation.Nullable; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; Loading Loading @@ -331,10 +334,12 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap } private void setupNavigationMenu() { final NavigationAdapter.NavigationItem itemTrashbin = new NavigationAdapter.NavigationItem("trashbin", getString(R.string.action_trashbin), null, R.drawable.ic_delete_grey600_24dp); final NavigationAdapter.NavigationItem itemSettings = new NavigationAdapter.NavigationItem("settings", getString(R.string.action_settings), null, R.drawable.ic_settings_grey600_24dp); final NavigationAdapter.NavigationItem itemAbout = new NavigationAdapter.NavigationItem("about", getString(R.string.simple_about), null, R.drawable.ic_info_outline_grey600_24dp); ArrayList<NavigationAdapter.NavigationItem> itemsMenu = new ArrayList<>(); itemsMenu.add(itemTrashbin); itemsMenu.add(itemSettings); itemsMenu.add(itemAbout); Loading @@ -347,6 +352,10 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap } else if (item == itemAbout) { Intent aboutIntent = new Intent(getApplicationContext(), AboutActivity.class); startActivityForResult(aboutIntent, about); } else if (item == itemTrashbin) { SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); String url = preferences.getString(SettingsActivity.SETTINGS_URL, SettingsActivity.DEFAULT_SETTINGS); startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url + "index.php/apps/files/?dir=/&view=trashbin"))); } } Loading app/src/main/java/it/niedermann/owncloud/notes/android/fragment/NoteEditFragment.java +2 −2 Original line number Diff line number Diff line Loading @@ -14,9 +14,9 @@ import android.view.ViewGroup; import android.view.WindowManager; import android.widget.TextView; import com.yydcdut.markdown.syntax.edit.EditFactory; import com.yydcdut.rxmarkdown.RxMDEditText; import com.yydcdut.rxmarkdown.RxMarkdown; import com.yydcdut.rxmarkdown.syntax.edit.EditFactory; import butterknife.BindView; import butterknife.ButterKnife; Loading Loading @@ -91,7 +91,7 @@ public class NoteEditFragment extends BaseNoteFragment { editContent.setEnabled(true); RxMarkdown.live(editContent) .config(MarkDownUtil.getMarkDownConfiguration(getActivity().getApplicationContext())) .config(MarkDownUtil.getMarkDownConfiguration(getActivity().getApplicationContext()).build()) .factory(EditFactory.create()) .intoObservable() .subscribe(new Subscriber<CharSequence>() { Loading app/src/main/java/it/niedermann/owncloud/notes/android/fragment/NotePreviewFragment.java +19 −15 Original line number Diff line number Diff line Loading @@ -12,9 +12,11 @@ import android.view.ViewGroup; import android.widget.TextView; import android.widget.Toast; import com.yydcdut.markdown.callback.OnTodoClickCallback; import com.yydcdut.markdown.syntax.text.TextFactory; import com.yydcdut.rxmarkdown.RxMDConfiguration; import com.yydcdut.rxmarkdown.RxMDTextView; import com.yydcdut.rxmarkdown.RxMarkdown; import com.yydcdut.rxmarkdown.syntax.text.TextFactory; import butterknife.BindView; import butterknife.ButterKnife; Loading Loading @@ -64,22 +66,24 @@ public class NotePreviewFragment extends BaseNoteFragment { ButterKnife.bind(this, getView()); String content = note.getContent(); /* * The following replaceAll adds links ()[] to all URLs that are not in an existing link. * This regular expression consists of three parts: * 1. (?<![(]) * negative look-behind: no opening bracket "(" directly before the URL * This prevents replacement in target part of Markdown link: [](URL) * 2. (https?://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]) * URL pattern: matches all addresses beginning with http:// or https:// * 3. (?![^\\[]*\\]) * negative look-ahead: no closing bracket "]" after the URL (otherwise there have to be an opening bracket "[" before) * This prevents replacement in label part of Markdown link: [...URL...]() */ content = content.replaceAll("(?<![(])(https?://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|])(?![^\\[]*\\])", "[$1]($1)"); RxMarkdown.with(content, getActivity()) .config(MarkDownUtil.getMarkDownConfiguration(getActivity().getApplicationContext())) .config( MarkDownUtil.getMarkDownConfiguration(getActivity().getApplicationContext()) /*.setOnTodoClickCallback(new OnTodoClickCallback() { @Override public CharSequence onTodoClicked(View view, String line, int lineNumber) { String[] lines = TextUtils.split(note.getContent(), "\\r?\\n"); if(lines.length >= lineNumber) { lines[lineNumber] = line; } noteContent.setText(TextUtils.join("\n", lines), TextView.BufferType.SPANNABLE); saveNote(null); return line; } } )*/.build() ) .factory(TextFactory.create()) .intoObservable() .subscribeOn(Schedulers.computation()) Loading app/src/main/java/it/niedermann/owncloud/notes/util/MarkDownUtil.java +3 −3 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ import android.content.Context; import android.support.v4.content.res.ResourcesCompat; import com.yydcdut.rxmarkdown.RxMDConfiguration; import com.yydcdut.rxmarkdown.RxMDConfiguration.Builder; import it.niedermann.owncloud.notes.R; Loading @@ -19,7 +20,7 @@ public class MarkDownUtil { * @param context Context * @return RxMDConfiguration */ public static RxMDConfiguration getMarkDownConfiguration(Context context) { public static Builder getMarkDownConfiguration(Context context) { return new RxMDConfiguration.Builder(context) .setUnOrderListColor(ResourcesCompat.getColor(context.getResources(), R.color.fg_default, null)) .setHeader2RelativeSize(1.35f) Loading @@ -28,7 +29,6 @@ public class MarkDownUtil { .setHeader5RelativeSize(1.1f) .setHeader6RelativeSize(1.05f) .setHorizontalRulesHeight(2) .setLinkColor(ResourcesCompat.getColor(context.getResources(), R.color.primary, null)) .build(); .setLinkFontColor(ResourcesCompat.getColor(context.getResources(), R.color.primary, null)); } } Loading
app/build.gradle +4 −2 Original line number Diff line number Diff line Loading @@ -26,8 +26,10 @@ android { dependencies { implementation project(':cert4android') implementation 'com.yydcdut:rxmarkdown:0.1.1-beta' implementation 'io.reactivex:rxandroid:1.2.0' implementation 'io.reactivex:rxjava:1.1.5' implementation 'com.yydcdut:markdown-processor:0.1.3' implementation 'com.yydcdut:rxmarkdown-wrapper:0.1.3' implementation 'com.jakewharton:butterknife:8.8.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1' Loading
app/src/main/java/it/niedermann/owncloud/notes/android/activity/NotesListViewActivity.java +9 −0 Original line number Diff line number Diff line Loading @@ -2,11 +2,14 @@ package it.niedermann.owncloud.notes.android.activity; import android.app.SearchManager; import android.content.Intent; import android.content.SharedPreferences; import android.content.res.Configuration; import android.graphics.Canvas; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; import android.preference.PreferenceManager; import android.support.annotation.Nullable; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; Loading Loading @@ -331,10 +334,12 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap } private void setupNavigationMenu() { final NavigationAdapter.NavigationItem itemTrashbin = new NavigationAdapter.NavigationItem("trashbin", getString(R.string.action_trashbin), null, R.drawable.ic_delete_grey600_24dp); final NavigationAdapter.NavigationItem itemSettings = new NavigationAdapter.NavigationItem("settings", getString(R.string.action_settings), null, R.drawable.ic_settings_grey600_24dp); final NavigationAdapter.NavigationItem itemAbout = new NavigationAdapter.NavigationItem("about", getString(R.string.simple_about), null, R.drawable.ic_info_outline_grey600_24dp); ArrayList<NavigationAdapter.NavigationItem> itemsMenu = new ArrayList<>(); itemsMenu.add(itemTrashbin); itemsMenu.add(itemSettings); itemsMenu.add(itemAbout); Loading @@ -347,6 +352,10 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap } else if (item == itemAbout) { Intent aboutIntent = new Intent(getApplicationContext(), AboutActivity.class); startActivityForResult(aboutIntent, about); } else if (item == itemTrashbin) { SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); String url = preferences.getString(SettingsActivity.SETTINGS_URL, SettingsActivity.DEFAULT_SETTINGS); startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url + "index.php/apps/files/?dir=/&view=trashbin"))); } } Loading
app/src/main/java/it/niedermann/owncloud/notes/android/fragment/NoteEditFragment.java +2 −2 Original line number Diff line number Diff line Loading @@ -14,9 +14,9 @@ import android.view.ViewGroup; import android.view.WindowManager; import android.widget.TextView; import com.yydcdut.markdown.syntax.edit.EditFactory; import com.yydcdut.rxmarkdown.RxMDEditText; import com.yydcdut.rxmarkdown.RxMarkdown; import com.yydcdut.rxmarkdown.syntax.edit.EditFactory; import butterknife.BindView; import butterknife.ButterKnife; Loading Loading @@ -91,7 +91,7 @@ public class NoteEditFragment extends BaseNoteFragment { editContent.setEnabled(true); RxMarkdown.live(editContent) .config(MarkDownUtil.getMarkDownConfiguration(getActivity().getApplicationContext())) .config(MarkDownUtil.getMarkDownConfiguration(getActivity().getApplicationContext()).build()) .factory(EditFactory.create()) .intoObservable() .subscribe(new Subscriber<CharSequence>() { Loading
app/src/main/java/it/niedermann/owncloud/notes/android/fragment/NotePreviewFragment.java +19 −15 Original line number Diff line number Diff line Loading @@ -12,9 +12,11 @@ import android.view.ViewGroup; import android.widget.TextView; import android.widget.Toast; import com.yydcdut.markdown.callback.OnTodoClickCallback; import com.yydcdut.markdown.syntax.text.TextFactory; import com.yydcdut.rxmarkdown.RxMDConfiguration; import com.yydcdut.rxmarkdown.RxMDTextView; import com.yydcdut.rxmarkdown.RxMarkdown; import com.yydcdut.rxmarkdown.syntax.text.TextFactory; import butterknife.BindView; import butterknife.ButterKnife; Loading Loading @@ -64,22 +66,24 @@ public class NotePreviewFragment extends BaseNoteFragment { ButterKnife.bind(this, getView()); String content = note.getContent(); /* * The following replaceAll adds links ()[] to all URLs that are not in an existing link. * This regular expression consists of three parts: * 1. (?<![(]) * negative look-behind: no opening bracket "(" directly before the URL * This prevents replacement in target part of Markdown link: [](URL) * 2. (https?://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]) * URL pattern: matches all addresses beginning with http:// or https:// * 3. (?![^\\[]*\\]) * negative look-ahead: no closing bracket "]" after the URL (otherwise there have to be an opening bracket "[" before) * This prevents replacement in label part of Markdown link: [...URL...]() */ content = content.replaceAll("(?<![(])(https?://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|])(?![^\\[]*\\])", "[$1]($1)"); RxMarkdown.with(content, getActivity()) .config(MarkDownUtil.getMarkDownConfiguration(getActivity().getApplicationContext())) .config( MarkDownUtil.getMarkDownConfiguration(getActivity().getApplicationContext()) /*.setOnTodoClickCallback(new OnTodoClickCallback() { @Override public CharSequence onTodoClicked(View view, String line, int lineNumber) { String[] lines = TextUtils.split(note.getContent(), "\\r?\\n"); if(lines.length >= lineNumber) { lines[lineNumber] = line; } noteContent.setText(TextUtils.join("\n", lines), TextView.BufferType.SPANNABLE); saveNote(null); return line; } } )*/.build() ) .factory(TextFactory.create()) .intoObservable() .subscribeOn(Schedulers.computation()) Loading
app/src/main/java/it/niedermann/owncloud/notes/util/MarkDownUtil.java +3 −3 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ import android.content.Context; import android.support.v4.content.res.ResourcesCompat; import com.yydcdut.rxmarkdown.RxMDConfiguration; import com.yydcdut.rxmarkdown.RxMDConfiguration.Builder; import it.niedermann.owncloud.notes.R; Loading @@ -19,7 +20,7 @@ public class MarkDownUtil { * @param context Context * @return RxMDConfiguration */ public static RxMDConfiguration getMarkDownConfiguration(Context context) { public static Builder getMarkDownConfiguration(Context context) { return new RxMDConfiguration.Builder(context) .setUnOrderListColor(ResourcesCompat.getColor(context.getResources(), R.color.fg_default, null)) .setHeader2RelativeSize(1.35f) Loading @@ -28,7 +29,6 @@ public class MarkDownUtil { .setHeader5RelativeSize(1.1f) .setHeader6RelativeSize(1.05f) .setHorizontalRulesHeight(2) .setLinkColor(ResourcesCompat.getColor(context.getResources(), R.color.primary, null)) .build(); .setLinkFontColor(ResourcesCompat.getColor(context.getResources(), R.color.primary, null)); } }