├── gradle.properties
├── fastlane
└── metadata
│ └── android
│ ├── en-GB
│ ├── title.txt
│ ├── changelog
│ │ ├── 129.txt
│ │ ├── 134.txt
│ │ ├── 135.txt
│ │ ├── 137.txt
│ │ ├── 128.txt
│ │ ├── 136.txt
│ │ ├── 126.txt
│ │ ├── 121.txt
│ │ ├── 124.txt
│ │ ├── 127.txt
│ │ ├── 131.txt
│ │ ├── 125.txt
│ │ ├── 123.txt
│ │ ├── 138.txt
│ │ ├── 120.txt
│ │ ├── 132.txt
│ │ ├── 130.txt
│ │ ├── 139.txt
│ │ ├── 140.txt
│ │ ├── 133.txt
│ │ ├── 122.txt
│ │ └── 119.txt
│ ├── short_description.txt
│ ├── images
│ │ ├── icon.png
│ │ ├── featureGraphic.png
│ │ └── phoneScreenshots
│ │ │ ├── p1.png
│ │ │ ├── p2.png
│ │ │ ├── p3.png
│ │ │ ├── p4.png
│ │ │ └── p5.png
│ └── full_description.txt
│ └── tr
│ ├── title.txt
│ ├── short_description.txt
│ └── full_description.txt
├── docs
├── favicon.ico
├── images
│ ├── Icon.png
│ ├── Latex.png
│ ├── Notes.png
│ ├── Notes-find.png
│ ├── Notes-help.png
│ ├── Notes-menu.png
│ ├── Notes-open.png
│ ├── Notes-recent.png
│ ├── Notes-settings.png
│ └── Bob.svg
├── css
│ ├── custom.css
│ └── styles.css
├── tags
│ └── index.xml
├── categories
│ └── index.xml
├── settings
│ └── index.xml
├── introduction
│ └── index.xml
├── 404.html
├── manage
│ └── index.xml
├── sitemap.xml
├── using
│ └── index.xml
└── content
│ └── index.xml
├── ic_launcher.png
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── src
└── main
│ ├── res
│ ├── drawable-hdpi
│ │ └── ic_launcher.png
│ ├── drawable-mdpi
│ │ └── ic_launcher.png
│ ├── drawable-xhdpi
│ │ └── ic_launcher.png
│ ├── drawable-xxhdpi
│ │ └── ic_launcher.png
│ ├── drawable-xxxhdpi
│ │ └── ic_launcher.png
│ ├── values
│ │ ├── integers.xml
│ │ ├── arrays.xml
│ │ ├── attrs.xml
│ │ ├── styles.xml
│ │ └── strings.xml
│ ├── xml
│ │ ├── filepaths.xml
│ │ ├── shortcuts.xml
│ │ └── preferences.xml
│ ├── drawable
│ │ ├── ic_pressed.xml
│ │ ├── ic_released.xml
│ │ ├── ic_button_background.xml
│ │ ├── ic_stop_black_24dp.xml
│ │ ├── ic_stop_white_24dp.xml
│ │ ├── ic_add_white_24dp.xml
│ │ ├── ic_done_white_24dp.xml
│ │ ├── ic_reply_black_24dp.xml
│ │ ├── ic_reply_white_24dp.xml
│ │ ├── ic_folder_black_24dp.xml
│ │ ├── ic_folder_white_24dp.xml
│ │ ├── ic_videocam_black_24dp.xml
│ │ ├── ic_videocam_white_24dp.xml
│ │ ├── ic_list_black_24dp.xml
│ │ ├── ic_list_white_24dp.xml
│ │ ├── ic_image_black_24dp.xml
│ │ ├── ic_image_white_24dp.xml
│ │ ├── ic_folder_open_black_24dp.xml
│ │ ├── ic_folder_open_white_24dp.xml
│ │ ├── ic_sd_storage_black_24dp.xml
│ │ ├── ic_sd_storage_white_24dp.xml
│ │ ├── ic_edit_white_24dp.xml
│ │ ├── ic_save_white_24dp.xml
│ │ ├── ic_info_outline_black_24dp.xml
│ │ ├── ic_info_outline_white_24dp.xml
│ │ ├── ic_print_white_24dp.xml
│ │ ├── ic_volume_up_black_24dp.xml
│ │ ├── ic_volume_up_white_24dp.xml
│ │ ├── ic_cloud_circle_black_24dp.xml
│ │ ├── ic_cloud_circle_white_24dp.xml
│ │ ├── ic_search_white_24dp.xml
│ │ ├── ic_brightness_high_black_24dp.xml
│ │ ├── ic_brightness_high_white_24dp.xml
│ │ ├── ic_share_white_24dp.xml
│ │ └── toast_frame.xml
│ ├── values-ru
│ │ ├── arrays.xml
│ │ └── strings.xml
│ ├── layout
│ │ ├── file.xml
│ │ ├── save_path.xml
│ │ ├── about.xml
│ │ ├── editor.xml
│ │ └── main.xml
│ ├── anim
│ │ ├── fade_in.xml
│ │ ├── fade_out.xml
│ │ ├── flip_out.xml
│ │ ├── flip_in.xml
│ │ ├── decelerate_cubic.xml
│ │ ├── activity_close_exit.xml
│ │ └── activity_open_enter.xml
│ ├── menu
│ │ └── main.xml
│ ├── xml-ru
│ │ └── preferences.xml
│ ├── values-pt-rBR
│ │ └── strings.xml
│ ├── values-de
│ │ └── strings.xml
│ ├── values-tr
│ │ └── strings.xml
│ └── values-fi
│ │ └── strings.xml
│ ├── assets
│ ├── styles.css
│ └── help.md
│ ├── java
│ ├── com
│ │ └── ibm
│ │ │ └── icu
│ │ │ └── text
│ │ │ ├── CharsetRecognizer.java
│ │ │ ├── CharsetRecog_UTF8.java
│ │ │ ├── CharsetRecog_2022.java
│ │ │ ├── CharsetRecog_Unicode.java
│ │ │ └── CharsetMatch.java
│ └── org
│ │ └── billthefarmer
│ │ └── notes
│ │ ├── Shortcut.java
│ │ ├── AboutPreference.java
│ │ ├── Settings.java
│ │ ├── SettingsFragment.java
│ │ └── FileAdapter.java
│ └── AndroidManifest.xml
├── .github
└── workflows
│ ├── build.yml
│ └── release.yml
├── .gitignore
├── gradlew.bat
└── gradlew
/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-GB/title.txt:
--------------------------------------------------------------------------------
1 | Notes
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/tr/title.txt:
--------------------------------------------------------------------------------
1 | Notlar
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-GB/changelog/129.txt:
--------------------------------------------------------------------------------
1 | * Fix set title
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-GB/changelog/134.txt:
--------------------------------------------------------------------------------
1 | * Update shortcut
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-GB/changelog/135.txt:
--------------------------------------------------------------------------------
1 | * Add system theme
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-GB/changelog/137.txt:
--------------------------------------------------------------------------------
1 | * Update add link
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-GB/changelog/128.txt:
--------------------------------------------------------------------------------
1 | * Fix android 13 toasts
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-GB/changelog/136.txt:
--------------------------------------------------------------------------------
1 | * Add edit check boxes
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-GB/changelog/126.txt:
--------------------------------------------------------------------------------
1 | * Add save dialog for backup
2 |
--------------------------------------------------------------------------------
/docs/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/billthefarmer/notes/HEAD/docs/favicon.ico
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-GB/changelog/121.txt:
--------------------------------------------------------------------------------
1 | * Change to Mozilla universal chardet.
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-GB/changelog/124.txt:
--------------------------------------------------------------------------------
1 | * Add default note name setting
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-GB/changelog/127.txt:
--------------------------------------------------------------------------------
1 | * Update save dialog for backup
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-GB/changelog/131.txt:
--------------------------------------------------------------------------------
1 | * Add superscript and subscript
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/tr/short_description.txt:
--------------------------------------------------------------------------------
1 | Markdown formatlamalı not defteri
2 |
--------------------------------------------------------------------------------
/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/billthefarmer/notes/HEAD/ic_launcher.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-GB/changelog/125.txt:
--------------------------------------------------------------------------------
1 | * Add save/restore scroll position
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-GB/short_description.txt:
--------------------------------------------------------------------------------
1 | Notebook with markdown formatting
2 |
--------------------------------------------------------------------------------
/docs/images/Icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/billthefarmer/notes/HEAD/docs/images/Icon.png
--------------------------------------------------------------------------------
/docs/images/Latex.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/billthefarmer/notes/HEAD/docs/images/Latex.png
--------------------------------------------------------------------------------
/docs/images/Notes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/billthefarmer/notes/HEAD/docs/images/Notes.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-GB/changelog/123.txt:
--------------------------------------------------------------------------------
1 | * Update shortcut, template date pattern
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-GB/changelog/138.txt:
--------------------------------------------------------------------------------
1 | * Update icons
2 | * Update recent list
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-GB/changelog/120.txt:
--------------------------------------------------------------------------------
1 | * Add character set detection
2 | * Update share
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-GB/changelog/132.txt:
--------------------------------------------------------------------------------
1 | * Migrate super and subscript to MarkdownView
2 |
--------------------------------------------------------------------------------
/docs/images/Notes-find.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/billthefarmer/notes/HEAD/docs/images/Notes-find.png
--------------------------------------------------------------------------------
/docs/images/Notes-help.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/billthefarmer/notes/HEAD/docs/images/Notes-help.png
--------------------------------------------------------------------------------
/docs/images/Notes-menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/billthefarmer/notes/HEAD/docs/images/Notes-menu.png
--------------------------------------------------------------------------------
/docs/images/Notes-open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/billthefarmer/notes/HEAD/docs/images/Notes-open.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-GB/changelog/130.txt:
--------------------------------------------------------------------------------
1 | * Add underscore and strikethrough, emoji scripts
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-GB/changelog/139.txt:
--------------------------------------------------------------------------------
1 | * Update Turkist translation
2 | * Update mime types
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-GB/changelog/140.txt:
--------------------------------------------------------------------------------
1 | * Update shortcuts
2 | * Add Russian translation
3 |
--------------------------------------------------------------------------------
/docs/images/Notes-recent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/billthefarmer/notes/HEAD/docs/images/Notes-recent.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-GB/changelog/133.txt:
--------------------------------------------------------------------------------
1 | * Update save as dialog
2 | * Remove charset detection
3 |
--------------------------------------------------------------------------------
/docs/images/Notes-settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/billthefarmer/notes/HEAD/docs/images/Notes-settings.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-GB/changelog/122.txt:
--------------------------------------------------------------------------------
1 | * Add template for new note name
2 | * Add widget for new note
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-GB/changelog/119.txt:
--------------------------------------------------------------------------------
1 | * Update file provider URI resolver
2 | * Update about dialog layout
3 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/billthefarmer/notes/HEAD/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/src/main/res/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/billthefarmer/notes/HEAD/src/main/res/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/src/main/res/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/billthefarmer/notes/HEAD/src/main/res/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/src/main/res/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/billthefarmer/notes/HEAD/src/main/res/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/src/main/res/drawable-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/billthefarmer/notes/HEAD/src/main/res/drawable-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/src/main/res/drawable-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/billthefarmer/notes/HEAD/src/main/res/drawable-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-GB/images/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/billthefarmer/notes/HEAD/fastlane/metadata/android/en-GB/images/icon.png
--------------------------------------------------------------------------------
/src/main/res/values/integers.xml:
--------------------------------------------------------------------------------
1 |
2 |
null if the language cannot be determined.
35 | */
36 | public String getLanguage()
37 | {
38 | return null;
39 | }
40 |
41 | /**
42 | * Test the match of this charset with the input text data
43 | * which is obtained via the CharsetDetector object.
44 | *
45 | * @param det The CharsetDetector, which contains the input text
46 | * to be checked for being in this charset.
47 | * @return A CharsetMatch object containing details of match
48 | * with this charset, or null if there was no match.
49 | */
50 | abstract CharsetMatch match(CharsetDetector det);
51 |
52 | }
53 |
--------------------------------------------------------------------------------
/docs/manage/index.xml:
--------------------------------------------------------------------------------
1 |
2 | 24 | * Instances of this class are created only by CharsetDetectors. 25 | *
26 | * Note: this class has a natural ordering that is inconsistent with equals.
27 | * The natural ordering is based on the match confidence value.
28 | *
29 | * @stable ICU 3.4
30 | */
31 | public class CharsetMatch implements Comparable
38 | * CAUTION: if the source of the byte data was an InputStream, a Reader
39 | * can be created for only one matching char set using this method. If more
40 | * than one charset needs to be tried, the caller will need to reset
41 | * the InputStream and create InputStreamReaders itself, based on the charset name.
42 | *
43 | * @return the Reader for the Unicode character data.
44 | *
45 | * @stable ICU 3.4
46 | */
47 | public Reader getReader() {
48 | InputStream inputStream = fInputStream;
49 |
50 | if (inputStream == null) {
51 | inputStream = new ByteArrayInputStream(fRawInput, 0, fRawLength);
52 | }
53 |
54 | try {
55 | inputStream.reset();
56 | return new InputStreamReader(inputStream, getName());
57 | } catch (IOException e) {
58 | return null;
59 | }
60 | }
61 |
62 | /**
63 | * Create a Java String from Unicode character data corresponding
64 | * to the original byte data supplied to the Charset detect operation.
65 | *
66 | * @return a String created from the converted input data.
67 | *
68 | * @stable ICU 3.4
69 | */
70 | public String getString() throws java.io.IOException {
71 | return getString(-1);
72 |
73 | }
74 |
75 | /**
76 | * Create a Java String from Unicode character data corresponding
77 | * to the original byte data supplied to the Charset detect operation.
78 | * The length of the returned string is limited to the specified size;
79 | * the string will be trunctated to this length if necessary. A limit value of
80 | * zero or less is ignored, and treated as no limit.
81 | *
82 | * @param maxLength The maximum length of the String to be created when the
83 | * source of the data is an input stream, or -1 for
84 | * unlimited length.
85 | * @return a String created from the converted input data.
86 | *
87 | * @stable ICU 3.4
88 | */
89 | public String getString(int maxLength) throws java.io.IOException {
90 | String result = null;
91 | if (fInputStream != null) {
92 | StringBuilder sb = new StringBuilder();
93 | char[] buffer = new char[1024];
94 | Reader reader = getReader();
95 | int max = maxLength < 0? Integer.MAX_VALUE : maxLength;
96 | int bytesRead = 0;
97 |
98 | while ((bytesRead = reader.read(buffer, 0, Math.min(max, 1024))) >= 0) {
99 | sb.append(buffer, 0, bytesRead);
100 | max -= bytesRead;
101 | }
102 |
103 | reader.close();
104 |
105 | return sb.toString();
106 | } else {
107 | String name = getName();
108 | /*
109 | * getName() may return a name with a suffix 'rtl' or 'ltr'. This cannot
110 | * be used to open a charset (e.g. IBM424_rtl). The ending '_rtl' or 'ltr'
111 | * should be stripped off before creating the string.
112 | */
113 | int startSuffix = name.indexOf("_rtl") < 0 ? name.indexOf("_ltr") : name.indexOf("_rtl");
114 | if (startSuffix > 0) {
115 | name = name.substring(0, startSuffix);
116 | }
117 | result = new String(fRawInput, name);
118 | }
119 | return result;
120 |
121 | }
122 |
123 | /**
124 | * Get an indication of the confidence in the charset detected.
125 | * Confidence values range from 0-100, with larger numbers indicating
126 | * a better match of the input data to the characteristics of the
127 | * charset.
128 | *
129 | * @return the confidence in the charset match
130 | *
131 | * @stable ICU 3.4
132 | */
133 | public int getConfidence() {
134 | return fConfidence;
135 | }
136 |
137 | /**
138 | * Get the name of the detected charset.
139 | * The name will be one that can be used with other APIs on the
140 | * platform that accept charset names. It is the "Canonical name"
141 | * as defined by the class java.nio.charset.Charset; for
142 | * charsets that are registered with the IANA charset registry,
143 | * this is the MIME-preferred registerd name.
144 | *
145 | * @see java.nio.charset.Charset
146 | * @see java.io.InputStreamReader
147 | *
148 | * @return The name of the charset.
149 | *
150 | * @stable ICU 3.4
151 | */
152 | public String getName() {
153 | return fCharsetName;
154 | }
155 |
156 | /**
157 | * Get the ISO code for the language of the detected charset.
158 | *
159 | * @return The ISO code for the language or null if the language cannot be determined.
160 | *
161 | * @stable ICU 3.4
162 | */
163 | public String getLanguage() {
164 | return fLang;
165 | }
166 |
167 | /**
168 | * Compare to other CharsetMatch objects.
169 | * Comparison is based on the match confidence value, which
170 | * allows CharsetDetector.detectAll() to order its results.
171 | *
172 | * @param other the CharsetMatch object to compare against.
173 | * @return a negative integer, zero, or a positive integer as the
174 | * confidence level of this CharsetMatch
175 | * is less than, equal to, or greater than that of
176 | * the argument.
177 | * @throws ClassCastException if the argument is not a CharsetMatch.
178 | * @stable ICU 4.4
179 | */
180 | @Override
181 | public int compareTo (CharsetMatch other) {
182 | int compareResult = 0;
183 | if (this.fConfidence > other.fConfidence) {
184 | compareResult = 1;
185 | } else if (this.fConfidence < other.fConfidence) {
186 | compareResult = -1;
187 | }
188 | return compareResult;
189 | }
190 |
191 | /*
192 | * Constructor. Implementation internal
193 | */
194 | CharsetMatch(CharsetDetector det, CharsetRecognizer rec, int conf) {
195 | fConfidence = conf;
196 |
197 | // The references to the original application input data must be copied out
198 | // of the charset recognizer to here, in case the application resets the
199 | // recognizer before using this CharsetMatch.
200 | if (det.fInputStream == null) {
201 | // We only want the existing input byte data if it came straight from the user,
202 | // not if is just the head of a stream.
203 | fRawInput = det.fRawInput;
204 | fRawLength = det.fRawLength;
205 | }
206 | fInputStream = det.fInputStream;
207 | fCharsetName = rec.getName();
208 | fLang = rec.getLanguage();
209 | }
210 |
211 | /*
212 | * Constructor. Implementation internal
213 | */
214 | CharsetMatch(CharsetDetector det, CharsetRecognizer rec, int conf, String csName, String lang) {
215 | fConfidence = conf;
216 |
217 | // The references to the original application input data must be copied out
218 | // of the charset recognizer to here, in case the application resets the
219 | // recognizer before using this CharsetMatch.
220 | if (det.fInputStream == null) {
221 | // We only want the existing input byte data if it came straight from the user,
222 | // not if is just the head of a stream.
223 | fRawInput = det.fRawInput;
224 | fRawLength = det.fRawLength;
225 | }
226 | fInputStream = det.fInputStream;
227 | fCharsetName = csName;
228 | fLang = lang;
229 | }
230 |
231 |
232 | //
233 | // Private Data
234 | //
235 | private int fConfidence;
236 | private byte[] fRawInput = null; // Original, untouched input bytes.
237 | // If user gave us a byte array, this is it.
238 | private int fRawLength; // Length of data in fRawInput array.
239 |
240 | private InputStream fInputStream = null; // User's input stream, or null if the user
241 | // gave us a byte array.
242 |
243 | private String fCharsetName; // The name of the charset this CharsetMatch
244 | // represents. Filled in by the recognizer.
245 | private String fLang; // The language, if one was determined by
246 | // the recognizer during the detect operation.
247 | }
248 |
--------------------------------------------------------------------------------
/src/main/assets/help.md:
--------------------------------------------------------------------------------
1 | # Notes
2 | ---
3 |
4 | Android notebook
5 |
6 | * Notes saved in text files
7 | * Use markdown formatting
8 | * Optional new note template
9 | * Optional new note file name template
10 | * Display media
11 | * Display [OpenStreetMap](https://www.openstreetmap.org) maps
12 | * Print notes
13 | * Share notes
14 | * Add date and time
15 | * Add media from media providers
16 | * Receive media from other apps
17 | * Receive geo uris from other apps
18 | * Incremental search of notes
19 | * Dark or light theme for editing
20 | * Shortcut for new notes
21 | * Optional CSS styles
22 | * Optional JavaScript scripts
23 | * Back up notes to a zip file
24 | * Optional edit cursor position control
25 |
26 | ## Toolbar
27 |
28 | The toolbar items which won’t necessarily all appear at once:
29 |
30 | * **New** – Start a new note
31 | * **Save** – Save note
32 | * **Open** – Open an existing note
33 | * **Search** – incremental search of note
34 |
35 | And on the menu:
36 |
37 | * **Find all** – Find all notes containing search text
38 | * **Open recent** – Pop up a list of recent files
39 | * **Clear list** – Clear list of recent files
40 | * **Print** – Print note
41 | * **Share** – Share note
42 | * **Save as** – Save note in another file
43 | * **Add date** – Add the current date and time
44 | * **Add media** – Add media from media providers
45 | * **Edit styles** – show an editor to edit the custom styles
46 | * **Edit script** – show an editor to edit custom javascript
47 | * **Backup** – backup notes to a zip file
48 | * **Settings** – Show the settings
49 |
50 | ## Help
51 | You may put a link `[Help](file:///android_asset/help.md)` to the help
52 | file in the app assets in a note. The file will be loaded and may be
53 | saved using the **Save as** menu entry.
54 |
55 | ## Double tap
56 | In the formatted view a double tap on the screen will switch to the
57 | edit view in approximately the same position in the markdown text. The
58 | accuracy is dependent on the text formatting and media in the note.
59 |
60 | ## Editing
61 | In the formatted view the **Edit** button floating above the page
62 | allows editing notes. The **Accept** button restores the formatted
63 | view. A long touch on the button hides it until the device is rotated
64 | or a long touch on the page.
65 |
66 | See [Markdown](https://daringfireball.net/projects/markdown) for
67 | markdown syntax.
68 |
69 | ## Scrolling
70 | Scrolling the page up will temporarily hide the floating
71 | button. Scrolling down restores it.
72 |
73 | ## Search
74 | You may search notes, the search will update as text is entered into
75 | the search field. Use the search widget or keyboard action button to
76 | find the next match. To find and edit text, search in the markdown
77 | view, and then double tap where you want to edit. This will switch to
78 | the edit view at about the right place.
79 |
80 | ## Find all
81 | You may find all notes that contain the current search text. This menu
82 | item will only appear while the search widget is active. A dialog will
83 | pop up with a list of matching notes. Touch an entry to open that
84 | note. You may repeat this or refine the search text to find the
85 | desired note.
86 |
87 | ## Keyboard shortcuts
88 | When using an external keyboard, some keyboard shortcuts are
89 | implemented:
90 | * Ctrl+D – Done
91 | * Ctrl+E – Edit
92 | * Ctrl+N – New file
93 | * Ctrl+O – Open file
94 | * Ctrl+S – Save file
95 | * Ctrl+Shift+S – Save as
96 |
97 | ## Template
98 | You may use a note template. If a template is set it will be copied to
99 | a new note. A date code – `<