From 4d00d57e0a6025722078d2f4343059a1531a2782 Mon Sep 17 00:00:00 2001 From: krmanik <12841290+krmanik@users.noreply.github.com> Date: Sat, 4 Jun 2022 03:38:47 +0800 Subject: [PATCH 1/2] use mdbook for docs --- .github/workflows/build.sh | 8 + .github/workflows/gh-pages.yml | 34 ++++ .gitignore | 19 +- .nojekyll | 0 book.toml | 27 +++ css/kbd.css | 26 +++ src/SUMMARY.md | 54 +++++ src/adding-notes.md | 36 ++++ src/advanced-features/advanced-statistics.md | 29 +++ src/advanced-features/custom-fonts.md | 15 ++ .../customizing-card-layout.md | 6 + src/advanced-features/intro.md | 10 + src/advanced-features/mathjax.md | 14 ++ src/advanced-features/reminders.md | 7 + src/advanced-features/reverse-cards.md | 11 + src/advanced-features/set-language-hint.md | 5 + src/advanced-features/type-in-answer.md | 25 +++ src/anki-desktop.md | 79 ++++++++ src/backups.md | 8 + src/beta-testing.md | 13 ++ src/browser.md | 54 +++++ src/contributing.md | 17 ++ src/deck-overview.md | 33 +++ src/deck-picker.md | 127 ++++++++++++ src/drawer.md | 28 +++ src/editing-notes.md | 28 +++ src/exporting.md | 34 ++++ src/filtered-deck.md | 13 ++ src/gestures.md | 188 ++++++++++++++++++ src/getting-started.md | 6 + src/help.md | 34 ++++ src/img/1-decks.png | Bin 0 -> 17133 bytes src/img/2-navigation_drawer.png | Bin 0 -> 10516 bytes src/img/3-deck_overview.png | Bin 0 -> 11973 bytes src/img/4-reviewer.png | Bin 0 -> 20578 bytes src/img/5-adding.png | Bin 0 -> 11427 bytes src/img/6-browser.png | Bin 0 -> 23275 bytes src/img/AnkiDesktop.png | Bin 0 -> 14763 bytes src/img/DebugInfo-ru.png | Bin 0 -> 104337 bytes src/img/DebugInfo.png | Bin 0 -> 21692 bytes src/img/ReverseNoteType.png | Bin 0 -> 10639 bytes src/importing/importing-anki-databases.md | 14 ++ src/importing/importing-anki-files.md | 22 ++ src/intro.md | 9 + src/keyboard-shortcuts.md | 66 ++++++ src/note-formatting-toolbar.md | 7 + src/reviewer.md | 55 +++++ src/rtl.md | 15 ++ src/settings.md | 126 ++++++++++++ 49 files changed, 1293 insertions(+), 9 deletions(-) create mode 100644 .github/workflows/build.sh create mode 100644 .github/workflows/gh-pages.yml create mode 100644 .nojekyll create mode 100644 book.toml create mode 100644 css/kbd.css create mode 100644 src/SUMMARY.md create mode 100644 src/adding-notes.md create mode 100644 src/advanced-features/advanced-statistics.md create mode 100644 src/advanced-features/custom-fonts.md create mode 100644 src/advanced-features/customizing-card-layout.md create mode 100644 src/advanced-features/intro.md create mode 100644 src/advanced-features/mathjax.md create mode 100644 src/advanced-features/reminders.md create mode 100644 src/advanced-features/reverse-cards.md create mode 100644 src/advanced-features/set-language-hint.md create mode 100644 src/advanced-features/type-in-answer.md create mode 100644 src/anki-desktop.md create mode 100644 src/backups.md create mode 100644 src/beta-testing.md create mode 100644 src/browser.md create mode 100644 src/contributing.md create mode 100644 src/deck-overview.md create mode 100644 src/deck-picker.md create mode 100644 src/drawer.md create mode 100644 src/editing-notes.md create mode 100644 src/exporting.md create mode 100644 src/filtered-deck.md create mode 100644 src/gestures.md create mode 100644 src/getting-started.md create mode 100644 src/help.md create mode 100644 src/img/1-decks.png create mode 100644 src/img/2-navigation_drawer.png create mode 100644 src/img/3-deck_overview.png create mode 100644 src/img/4-reviewer.png create mode 100644 src/img/5-adding.png create mode 100644 src/img/6-browser.png create mode 100644 src/img/AnkiDesktop.png create mode 100644 src/img/DebugInfo-ru.png create mode 100644 src/img/DebugInfo.png create mode 100644 src/img/ReverseNoteType.png create mode 100644 src/importing/importing-anki-databases.md create mode 100644 src/importing/importing-anki-files.md create mode 100644 src/intro.md create mode 100644 src/keyboard-shortcuts.md create mode 100644 src/note-formatting-toolbar.md create mode 100644 src/reviewer.md create mode 100644 src/rtl.md create mode 100644 src/settings.md diff --git a/.github/workflows/build.sh b/.github/workflows/build.sh new file mode 100644 index 0000000..115996c --- /dev/null +++ b/.github/workflows/build.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +(cd && git clone https://github.com/ankitects/mdbook-binaries.git) +export PATH="$HOME/mdbook-binaries:$PATH" +if [ "$CHECK" = "" ]; then + rm $HOME/mdbook-binaries/mdbook-linkcheck +fi +mdbook build diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml new file mode 100644 index 0000000..77c0bc2 --- /dev/null +++ b/.github/workflows/gh-pages.yml @@ -0,0 +1,34 @@ +env: + cname: docs.ankidroid.org + +name: github pages + +on: + push: + branches: + - main + - test + +jobs: + deploy: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + + - name: Build + run: .github/workflows/build.sh + + - name: Deploy + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./book/html + cname: ${{ env.cname }} + + check: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + + - name: Build + run: CHECK=1 .github/workflows/build.sh diff --git a/.gitignore b/.gitignore index 889bfea..d8b4ed6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,10 @@ -tools/id_rsa -*.html -*~ - -# KDE directory preferences -.directory - -# Linux trash folder which might appear on any partition or disk -.Trash-* +tools/id_rsa +*.html +*~ + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* +book \ No newline at end of file diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/book.toml b/book.toml new file mode 100644 index 0000000..bfe1dbd --- /dev/null +++ b/book.toml @@ -0,0 +1,27 @@ +[book] +authors = ["AnkiDroid Open Source Team"] +language = "en" +multilingual = false +src = "src" +title = "AnkiDroid Manual" + +[build] +create-missing = true + +[output.html] +git-repository-url = "https://github.com/ankidroid/ankidroiddocs/" +cname = "docs.ankidroid.org" +additional-css = ["css/kbd.css"] + +[preprocessor.toc] +command = "mdbook-toc" +renderer = ["html"] + +[output.linkcheck] +optional = true +warning-policy = "warn" +follow-web-links = true + +[output.html.fold] +enable = true +level = 0 \ No newline at end of file diff --git a/css/kbd.css b/css/kbd.css new file mode 100644 index 0000000..d4393c0 --- /dev/null +++ b/css/kbd.css @@ -0,0 +1,26 @@ +.ayu, +.coal, +.navy { + --kbd-bg: var(--table-header-bg); + --kbd-border: var(--bg); +} + +.light { + --kbd-bg: var(--theme-hover); + --kbd-border: var(--table-header-bg); +} + +.rust { + --kbd-bg: var(--table-header-bg); + --kbd-border: var(--theme-hover); +} + +kbd { + margin: 0.1em 0.1em; + padding: 0.1em 0.6em; + font-family: sans-serif; + border-radius: 4px; + display: inline-block; + border: 1px var(--kbd-border) solid; + background-color: var(--kbd-bg); +} \ No newline at end of file diff --git a/src/SUMMARY.md b/src/SUMMARY.md new file mode 100644 index 0000000..adfc664 --- /dev/null +++ b/src/SUMMARY.md @@ -0,0 +1,54 @@ +# Summary + +[Introduction](intro.md) +- [Getting started](getting-started.md) + +- [The Deck List](deck-picker.md) + +- [Navigation Drawer](drawer.md) + +- [Deck Overview Screen](deck-overview.md) + +- [Study Screen](reviewer.md) + +- [Add Note Screen](adding-notes.md) + +- [Edit Note Screen](editing-notes.md) + +- [Finding/Searching/Browsing](browser.md) + +- [Filtered Decks](filtered-deck.md) + +- [Importing Anki Files](importing/importing-anki-files.md) + - [Importing Anki Databases (.anki2)](importing/importing-anki-databases.md) + +- [Exporting Anki Files](exporting.md) + +- [Automatic Backups](backups.md) + +- [Preferences](settings.md) + +- [Gestures](gestures.md) + +- [Note Formatting Toolbar](note-formatting-toolbar.md) + +- [Keyboard Shortcuts](keyboard-shortcuts.md) + +- [Using Right-To-Left Languages with AnkiDroid](rtl.md) + +- [Using Anki Desktop with AnkiDroid](anki-desktop.md) + +- [Advanced Features](advanced-features/intro.md) + - [MathJax Support](advanced-features/mathjax.md) + - [Reverse Cards](advanced-features/reverse-cards.md) + - [Custom Fonts](advanced-features/custom-fonts.md) + - [Custom Card Layout](advanced-features/customizing-card-layout.md) + - [Type in the answer feature](advanced-features/type-in-answer.md) + - [Advanced Statistics](advanced-features/advanced-statistics.md) + - [Reminders](advanced-features/reminders.md) + - [Automatic Language Selection](advanced-features/set-language-hint.md) + + +- [Help & Supports](help.md) +- [Beta testing](beta-testing.md) +- [Contributing to AnkiDroid](contributing.md) \ No newline at end of file diff --git a/src/adding-notes.md b/src/adding-notes.md new file mode 100644 index 0000000..38fedd7 --- /dev/null +++ b/src/adding-notes.md @@ -0,0 +1,36 @@ +# Add Note Screen + + + +*_Note:_* _This section onwards assumes you understand what [notes, fields, card templates, and note types](https://docs.ankiweb.net/getting-started.html#notes--fields) are_ + +To add a new note, tap the **+** button at the bottom of the deck list and choose **Add**. + +![adding.png](img/5-adding.png) + +The following controls are available in the add note screen: + +### Type +Allows you to select the type of note you'd like to add. +For most purposes the **Basic** note type is sufficient, but for example if you would like an extra card generated which is the reverse of the main card (i.e. shows the **Back** field on the front of the card), you could chose the **Basic (and reversed card)** note type. + +### Deck +Allows you to change the deck the generated card/cards will be added to. + +### Fields +Below the deck selector are the fields for the note (for example the **Basic** note type has two fields **Front** and **Back**). When you tap on a field, a keyboard will come up, allowing you to type in information. + +### Media Buttons +Next to each field is an attach icon, which allows you to add media to your note (this feature is currently in the experimental phase). +Add image lets you add images either via your device's camera (if it has one), or from your photo library. +Record audio allows you to record your voice and place it into a field. The advanced editor lets you automatically search for translations or pronunciation audio files online. + +### Tags +Brings up a dialog which lets you add / remove tags from the note. + +### Cards +Shows the names of the cards which will be generated for the selected note type. Tapping on this button will bring up a dialog which lets you preview the source code for the card template of the selected note type. From here you can edit, preview, add, and delete card templates. See the [cards and templates section](https://docs.ankiweb.net/templates/intro.html) of the Anki Desktop manual for more information about card templates. + +Long press in a text entry field to add a cloze deletion around the selected text, or an empty cloze deletion if there is no selected text. + +When you've finished typing in the content of a note, tap the tick icon in the app bar at the top to add it to your collection. Alternatively, if you want to go back to what you were doing without saving, you can tap the app icon, or use the hardware back button. diff --git a/src/advanced-features/advanced-statistics.md b/src/advanced-features/advanced-statistics.md new file mode 100644 index 0000000..9db1ef7 --- /dev/null +++ b/src/advanced-features/advanced-statistics.md @@ -0,0 +1,29 @@ +# Advanced Statistics + +If Advanced Statistics are enabled, it changes the **Forecast** graph so that it shows the estimated number of reviews that will be due on a given day in the future taking into account future reviews, learning new cards and failing cards. The bars and the left axis show the number of cards due on each day if you study all cards each day, while the line and the right axis show the number of unseen (shown as **learn**), young and mature cards your deck or collection will consist of if you study all cards each day. The forecast graph does count reviews that are currently overdue. It assumes that the overdue cards will be reviewed according to the **maximum reviews/day** deck option. + +Advanced Statistics can be enabled in `Settings -> Advanced -> Advanced Statistics` (in plugin section). + +The outcome of future reviewing, learning or failing cards affects reviews after that future review. To take this into account, the probability of each outcome is computed from the review log. Then the outcome is randomly chosen, such that an outcome which is more likely according to the review log is more likely to be chosen than an outcome which is less likely according to the review log. The settings all affect how the effect of the outcome of future reviews on subsequent reviews is taken into account. + +### Compute first n days, simulate remainder +If this setting is set to a number greater than 0, instead of randomly choosing an outcome, each possible outcome is taken into account in the simulation, together with its probability. The probability is taken into account for the graph and for future reviews in which it results, which also affect the graph. +One review has a couple of possible outcomes (say 4), which all result in a review. That review also has a couple of possible outcomes and so on. If many reviews are simulated this way, many reviews (4 x 4 x 4 x ... ) have to be taken into account which increases the time it takes to compose the graph. +Therefore, for reviews later than n days from now are simulated by randomly choosing an outcome. + +In summary, higher n gives a more accurate graph, but it takes more time to compose the graph. + +### Precision of computation + +Reviews which occur with a probability smaller than 100% minus the configured precision of the computation are simulated by randomly choosing an outcome rather than taking into account each possible outcome. This setting is only applicable if the first n days are computed. +If Advanced Statistics are disabled, the **Forecast** graph shows the estimated number of reviews that will be due on a given day in the future if you do not review cards, learn no new cards and fail no cards. + +In summary, higher precision gives a more accurate graph, but it takes more time to compose the graph. + +### Number of iterations of the simulation +Composes the graph several times and then displays the average of these graphs. +Each time the graph is composed, another outcome might be randomly chosen. If we average many outcomes which are randomly chosen taking into account the probabilities from the review log, the average outcome will likely be close to the average of the probabilities from the review log. +If we average many graphs, the average graph will likely be close to the graph which is generated by taking into account all possible outcomes. +If the number of graphs which are averaged is not too high, it will be faster than taking into account all possible outcomes. + +In summary, a higher number of iterations gives a more accurate graph, but it takes more time to compose the graph. diff --git a/src/advanced-features/custom-fonts.md b/src/advanced-features/custom-fonts.md new file mode 100644 index 0000000..b7f5d27 --- /dev/null +++ b/src/advanced-features/custom-fonts.md @@ -0,0 +1,15 @@ +# Custom Fonts + +AnkiDroid allows you to use non-system fonts on your cards. To set them up properly, it is strongly recommended to use the official method that is used by Anki Desktop. Please see [the corresponding section in the desktop manual](https://docs.ankiweb.net/templates/styling.html#installing-fonts) for more information. + +Alternatively, you can create a new subfolder **fonts** in the main AnkiDroid directory (i.e. the folder which contains the **backups** subfolder, specified under `Settings > Advanced > AnkiDroid directory)`, copy a compatible font file (i.e. .ttf) there, and then set this as the default font under `Settings > Fonts > Default font`. + +**Note:** this method will change the default font for **all** of your cards, whereas the official method can be more specific. Also, if you sync with AnkiWeb, using this method will lead to cards being displayed differently on different devices. + +Only fonts in the ttf format are officially supported in Anki/AnkiDroid; the [Google Noto](https://fonts.google.com/noto) font set is highly recommended for all languages, and some other free fonts can be found [here](https://github.com/ankidroid/Anki-Android/wiki/Freely-distributable-fonts). + +Please note that AnkiDroid has to load the entire font into memory in order to use it, and fonts for Asian languages can be quite large. If you have an older device and notice AnkiDroid crashing frequently after installing a font, you may have exceeded your device's memory limits. For Google Noto, it's not recommended to use the combined CJK font, rather get the individual languages [separately from here](https://github.com/googlei18n/noto-cjk). + +>**Note 1**: If you have **Fetch media on sync** disabled, you may need to manually copy the font file from Anki Desktop to your AnkiDroid/collection.media folder. + +>**Note 2**: If you can't get your font to work after following the steps in here and the Anki Desktop manual, please refer to the FAQ for detailed steps on how to debug font issues. diff --git a/src/advanced-features/customizing-card-layout.md b/src/advanced-features/customizing-card-layout.md new file mode 100644 index 0000000..ade787d --- /dev/null +++ b/src/advanced-features/customizing-card-layout.md @@ -0,0 +1,6 @@ +# Custom Card Layout +The layout of flashcards is completely customizable, although this is an advanced topic with a fairly steep learning curve, and you will probably find it a lot more convenient to do the customization with [Anki Desktop](../anki-desktop.md). + +The [card templates section](https://docs.ankiweb.net/templates/intro.html) of the Anki Desktop manual has detailed instructions on how to edit note types, and most of the actions discussed there are also available from AnkiDroid by tapping **cards** at the bottom of the note editor, or choosing the **manage note types** option in the deck picker. Since detailed information on customizing card layouts is available in the Anki desktop manual, it will not be repeated here. + +There is an [advanced formatting page](https://github.com/ankidroid/Anki-Android/wiki/Advanced-formatting) on the AnkiDroid wiki with various hints on how you can get the most out of your card formatting, and we encourage you to read it, and edit it freely if you have any tips that you'd like to share with the community. diff --git a/src/advanced-features/intro.md b/src/advanced-features/intro.md new file mode 100644 index 0000000..82e4224 --- /dev/null +++ b/src/advanced-features/intro.md @@ -0,0 +1,10 @@ +# Advanced Features + +- [MathJax Support](mathjax.md) +- [Reverse Cards](reverse-cards.md) +- [Custom Fonts](custom-fonts.md) +- [Custom Card Layout](customizing-card-layout.md) +- [Type in the answer feature](type-in-answer.md) +- [Advanced Statistics](advanced-statistics.md) +- [Reminders](reminders.md) +- [Automatic Language Selection](set-language-hint.md) \ No newline at end of file diff --git a/src/advanced-features/mathjax.md b/src/advanced-features/mathjax.md new file mode 100644 index 0000000..d4aa2b4 --- /dev/null +++ b/src/advanced-features/mathjax.md @@ -0,0 +1,14 @@ +# MathJax Support +Mathjax is a modern typesetting library for math and chemistry. AnkiDroid supports Mathjax cards out of the box. Mathjax is configured to expect TeX formatting, with `\(` and `\)` delimiting inline equations and `\[` and `\]` for display equations. + +To try it out, enter the following into a field: + +``` +\(\sqrt{x}\) +``` + +and preview the card. + +For more details, see [Mathjax Support](https://docs.ankiweb.net/math.html#mathjax) in the Anki Manual. + +[Previous workarounds](https://www.reddit.com/r/Anki/comments/ar7lxd/how_to_load_mathjax_color_extension_on_anki/egm6u5j) are no longer necessary as of AnkiDroid 2.9. diff --git a/src/advanced-features/reminders.md b/src/advanced-features/reminders.md new file mode 100644 index 0000000..2345611 --- /dev/null +++ b/src/advanced-features/reminders.md @@ -0,0 +1,7 @@ +# Reminders +AnkiDroid can remind you to devote some time to reviewing cards every day at a specific time via Android's notification framework. +You can configure reminders for each options group independently. +To configure a notification go to Deck options > Reminders, then tick the checkbox and select the time you want to be notified at. +To stop receiving notifications go to Deck options > Reminders and unmark the checkbox. + +Notifications only work for top level decks. Please let us know if you want us to add notifications for subdecks too. diff --git a/src/advanced-features/reverse-cards.md b/src/advanced-features/reverse-cards.md new file mode 100644 index 0000000..c02f876 --- /dev/null +++ b/src/advanced-features/reverse-cards.md @@ -0,0 +1,11 @@ +# Reverse Cards + +The Anki system has [built-in note types which allow you to review cards in both directions](https://docs.ankiweb.net/getting-started.html#note-types). +When [creating new material](../adding-notes.md) in AnkiDroid, you should choose one of these note types, such as **Basic (and reversed card)**, which will automatically generate a reverse card for you. + +![ReverseNoteType](../img/ReverseNoteType.png) + +If you used the wrong note type when adding your material, you can change the note type via the [edit note screen](../editing-notes.md), or you can change the note type for multiple cards at once using the browser in Anki Desktop. +To do this, follow the instructions in the [syncing with Anki Desktop section](../anki-desktop.md), then in Anki Desktop open the browser, select the cards you want to change, then choose **Change note type** from the menu. + +Alternatively, if your cards are using a custom card layout which doesn't include a reverse card, you can edit the note type to include a reverse card by following the instructions in the [reverse cards section](https://docs.ankiweb.net/templates/generation.html#reverse-cards) of the Anki Desktop user manual. While less convenient than using Anki Desktop, it is possible to edit the note type from directly within AnkiDroid as well; see the [custom card layout section](../advanced-features/customizing-card-layout.md) for more on this. diff --git a/src/advanced-features/set-language-hint.md b/src/advanced-features/set-language-hint.md new file mode 100644 index 0000000..a9709a5 --- /dev/null +++ b/src/advanced-features/set-language-hint.md @@ -0,0 +1,5 @@ +# Automatic Language Selection +AnkiDroid has an in Automatic Language Selection feature in the Note Editor starting with AnkiDroid 2.13. This feature allows you to define a default language to be used in your keyboard for a field in a note type. + + +For example, if you have Russian and English note fields, and your keyboard supports the setImeHintLocales Android API, the keyboard layout will switch to Russian in the first field and back to English in the second automatically when the fields get focus. [Checkout video reference for demonstration](https://www.youtube.com/watch?v=JrxDjTrRhBE) diff --git a/src/advanced-features/type-in-answer.md b/src/advanced-features/type-in-answer.md new file mode 100644 index 0000000..21854da --- /dev/null +++ b/src/advanced-features/type-in-answer.md @@ -0,0 +1,25 @@ +# Type in the answer feature + +AnkiDroid allows you to type in the correct answer and then compare it to the right answer. You have to set this up with Anki desktop, as described in the [Anki Desktop manual](https://docs.ankiweb.net/templates/fields.html#checking-your-answer). + +Anki desktop replaces the **{{type:NN}}** field on the front of a card with an input box in the card. On AnkiDroid it is replaced with a **......** prompt instead, and a text input box is shown at the bottom. The comparison between typed text and the correct text is shown on the answer side in place of the **{{type:NN}}** field there, like on Anki desktop. + +The text input box and the soft keyboard can be hidden by ticking **Disable typing in answer** in the preferences. + +Even with typing disabled, the correct answer is shown on the answer side. This is done on purpose; otherwise the correct answer might not be shown at all. + +To hide the comparison (e.g. because the correct answer is shown anyway), the HTML id **typeans** can be used. +Add following to the [card styling](https://docs.ankiweb.net/templates/styling.html#card-styling) using Anki Desktop. +```css +.mobile #typeans { + display: none; +} +``` + +The type answer prompt and the comparison have more classes that can be used to change the way they are displayed. Some of these are the same as on Anki Desktop, some are specific to AnkiDroid. + +The comparison uses three classes, typeGood, typeBad and typeMissed to add green, red and gray background to the typing comparison. These three classes are used on Anki desktop as well. + +The **......** prompt has the class **typePrompt**. + +When typing is set to off in the preferences, the class **typeOff** is added to the prompt on the question side, and to the div element containing the comparison on the answer side. This class can be used to show the type prompt or to hide the typing comparison in this case. diff --git a/src/anki-desktop.md b/src/anki-desktop.md new file mode 100644 index 0000000..551fac7 --- /dev/null +++ b/src/anki-desktop.md @@ -0,0 +1,79 @@ +# Using Anki Desktop with AnkiDroid + + + +Anki has a free cloud synchronization service called AnkiWeb that makes it easy to keep your card decks in sync between mobile devices and your computer. If you cannot use sync for some reason, it's also possible to use USB, though this method is more laborious. + +Note that AnkiDroid is not affiliated with Anki Desktop or AnkiWeb. AnkiDroid is based on Anki Desktop but it is developed by an entirely separate community of volunteers. + +![AnkiDesktop.png](img/AnkiDesktop.png) + +## Via Cloud Sync +Before you can use AnkiWeb, you'll first need to create an account by visiting [https://ankiweb.net](https://ankiweb.net) and clicking the **Sign Up** button. If you have used AnkiWeb in the past, you can skip this step. After signing up, see the corresponding instructions below, depending on whether you are trying to get your existing decks into AnkiDroid or out of AnkiDroid. + +### Sync existing decks into a new AnkiDroid install +In this scenario you have some existing Anki decks that you want to copy into a new install of AnkiDroid by syncing with AnkiWeb. Open the Anki client with your existing decks (usually this would be Anki desktop, but it could also mean a version of AnkiDroid you have been using on another device), and click the synchronization button (which has two arrows in a circle) at the top right of the deck list. + +If you have never used AnkiWeb before you will need to enter your credentials if prompted, and then press the **Upload to AnkiWeb** button to confirm overwriting the empty collection on AnkiWeb with your existing decks in Anki. Anki will upload all your cards, images and audio to AnkiWeb. If you have a lot of media, this may take some time. + +Once the synchronization has completed, open AnkiDroid in the device that you are trying to copy the existing decks into, and tap the **Sync** button in the app bar at the top of the main [deck list](deck-picker.md). +After entering your AnkiWeb credentials, AnkiDroid will download all your cards and media, and remember your login information for next time. + +Note that if you have any existing material in AnkiDroid before attempting to sync, you may be shown a message asking you to choose to either download from AnkiWeb, or upload to AnkiWeb. If you are happy to lose the cards in AnkiDroid then simply choose **Download**. If you need to merge the existing cards with AnkiDroid then you should see the [resolving conflicts](anki-desktop.md#dealing-with-merge-conflicts-on-ankiweb) section before continuing. + +After the first synchronization has completed, you can click the sync button again any time you wish to synchronize your changes to the cloud. Only changes made since the previous sync will be sent, so subsequent syncs are a lot faster. + +If you add some new cards on the desktop computer and want to sync them to AnkiDroid, you'd repeat the same basic process: sync on desktop (or close the program, as it syncs automatically on close by default), and then tap the sync button on AnkiDroid. + +### Sync from AnkiDroid to Computer +The process of syncing from AnkiDroid to computer is essentially the same as syncing from computer to AnkiDroid, but in reverse. + +From the [deck list](deck-picker.md), tap the sync button in the top right (it has two arrows in a circle). If it's your first time using AnkiWeb, you may need to enter your login credentials, and then press the "upload" button to upload your AnkiDroid collection to AnkiWeb. + +Once the synchronization has completed, open Anki Desktop on your computer and press the sync button there (with two arrows in a circle), and Anki will download your collection. + +# Dealing with merge conflicts on AnkiWeb +Although it should not happen often, occasionally you may end up in the position where your cards on AnkiDroid can not be automatically merged with the cards on AnkiWeb. In this case it's necessary to choose to either upload to or download from AnkiWeb, which would overwrite any changes on the other side. + +If you have new cards on both sides which you want to keep, before syncing you can [export a deck package](exporting.md) for each deck containing new cards from AnkiDroid, then when you do the sync choose **download** to download from AnkiWeb. After the synchronization has completed, you can import the decks you previously exported from AnkiDroid, as per the [importing section](importing/importing-anki-files.md). + +## Via USB + +If you don't have regular internet access, it's still possible to copy decks back and forth to your device, by using USB. + +The USB method works by importing or exporting all your decks at once. This means that unlike syncing via AnkiWeb, you can't make changes from two locations at once and then merge them. Instead, if you wish to add cards on the desktop, you need to make sure you export the latest version of your collection from your mobile device first, or you'll end up losing any reviews done on the mobile device. + +Thus the workflow you would typically use is to export your collection from your mobile device and import it into the desktop, make modifications on the desktop, and then export your collection and import it back into your mobile device. + +AnkiDroid can't directly import text files. If you wish to do that, you'll need to do that with the desktop program, and then import your collection into AnkiDroid. + +### Copy all decks from Anki Desktop to AnkiDroid via USB + +On your computer: + 1. Open the desktop program. + 2. Choose File>Export from the menu. + 3. Click the **Export...** button. Make sure to leave **all decks** selected, as it's not possible to import individual decks into AnkiDroid. **Include scheduling information** must also remain checked. + 4. Anki will automatically create a collection.apkg on your desktop. If the file is named something else, please see the previous step again. + 5. Connect your Android device to your computer via the USB cable. + 6. Open the file explorer on your computer and view the contents of your Android device. + 7. Locate the AnkiDroid folder. + 8. Drag the collection.apkg file from your desktop into this AnkiDroid folder. + +Then in AnkiDroid: + 1. From the main decks screen, tap **Import file** from the menu + 2. Tap on **Collection** and then confirm + +Once complete, the decks on your device will have been replaced with the decks from your desktop. See the section on +[importing apkg files](importing/importing-anki-files.md) for more help with importing. + +### Copy all decks from AnkiDroid to Anki Desktop via USB + +The process to copy your decks from AnkiDroid to Anki Desktop is essentially the same as above, but in reverse. + 1. Start with your device disconnected from USB + 2. Choose **Export collection** from the main menu in the Deck Screen + 3. Ensure **Include scheduling information** remains checked and press **OK** + 4. Connect device to computer using USB + 5. Copy the **collection.apkg** from the path specified in the message to the desktop on your computer + 6. Double click on the file to import into Anki Desktop + +See the [exporting section](exporting.md) below for more detailed information on exporting from AnkiDroid. diff --git a/src/backups.md b/src/backups.md new file mode 100644 index 0000000..c63f5a7 --- /dev/null +++ b/src/backups.md @@ -0,0 +1,8 @@ +# Automatic Backups + +AnkiDroid will automatically create backups of your collection for you. The backups include all your cards and statistics, but do not include sounds or images. + +The backup is taken in the background when you first start the app. A backup will only happen if more than 5 hours has elapsed since the last time a backup was created. +By default, AnkiDroid will store the last 8 backups; this number can be changed in the main settings. + +You can restore a backup by choosing the *restore from backup* option from the main menu of the [decks screen](deck-picker.md). diff --git a/src/beta-testing.md b/src/beta-testing.md new file mode 100644 index 0000000..ea7af83 --- /dev/null +++ b/src/beta-testing.md @@ -0,0 +1,13 @@ +# Beta testing +If you want to try out the latest features in AnkiDroid, you can sign up for the beta testing program as follows: + + 1. Visit the [Google Play Beta page](https://play.google.com/apps/testing/com.ichi2.anki) + 2. Click **Become a beta tester** + +After following these steps, the latest beta version will automatically be installed by Google Play in the same way as ordinary updates. + +If you are more adventurous, you can also become an alpha tester, by joining the [alpha testers group](https://groups.google.com/g/ankidroidalphatesters) in addition to performing the above steps for beta testing. + +Please submit any bugs you find in these development versions to the AnkiDroid issue tracker, as per the link:help.html[main help page]. + +If you wish to leave the testing program at any time, simply visit the [Google Play Beta page](https://play.google.com/apps/testing/com.ichi2.anki) and click **Leave the test**. diff --git a/src/browser.md b/src/browser.md new file mode 100644 index 0000000..83caa56 --- /dev/null +++ b/src/browser.md @@ -0,0 +1,54 @@ +# Finding/Searching/Browsing + + + +You can search for or browse cards by tapping the **Card browser** button from the [navigation drawer](drawer.md). + +![img/6-browser.png](img/6-browser.png) + +The browser screen starts by displaying all the cards in the currently selected deck. You can search for cards in the selected deck by tapping the magnifying glass icon in the top. You can change the selected deck (or change to all decks) by choosing the deck from the dropdown list on the top left. + +By default, the first column in the browser gives the text which will be shown on the question (i.e. front side) of the flashcard, and the second column shows the text from the answer (i.e. the back side) of the flashcard. + +The first column can also be configured to show the [sort field](https://docs.ankiweb.net/editing.html#customizing-fields) for a more compact display. The second column can be configured to show many different parameters by tapping the drop down menu in the column heading. + +Note that the content of the columns is dynamically calculated as your scroll through the list of the cards. + +From the search results, you can tap on a card to edit it (see the [edit note section](editing-notes.md) above), or long-tapping on it will show a menu allowing you to perform the following actions: + +#### Mark / unmark note +Add / remove the **marked** tag from the note. Cards with a marked note are highlighted in purple. + +#### Flag card +Change or remove the color coded **flag** on the card. Cards with a flag are highlighted in the flags color. + +#### Suspend / unsuspend card +Suspended cards are highlighted in yellow, and are not shown during review. + +#### Delete note +Delete the note of the currently selected card, and all cards belonging to that note. This action cannot be undone without [restoring from backup](backups.md). + +#### Preview +Render the currently selected card so that you can see what it looks like in the reviewer. + +#### Select multiple cards +Long-tapping on a single card will select the single card. While that card is selected, if you long-tap on another card on your screen, then all of the cards between the first selected card and the last card will be selected. This allows for actions to be performed on multiple cards at once. + +## Searching +AnkiDroid supports all the search strings that the desktop version of Anki does, allowing you to perform quite complex searches. Some examples: + +#### tag:marked +show cards that with the tag **marked** + +#### is:due +show only cards that are waiting for review + +#### front:rabbit +show only cards where the front field is exactly **rabbit** + +#### flag:1 +show only cards marked with a red flag + +For a full list of the possibilities, please see the section in the [desktop manual](https://docs.ankiweb.net/searching.html). + +Alternatively, some more commonly used filters (marked, suspended, and tagged cards) can be quickly applied without manually typing them by choosing them from the overflow menu. You can also save and recall common search queries from the menu. diff --git a/src/contributing.md b/src/contributing.md new file mode 100644 index 0000000..df8ea6e --- /dev/null +++ b/src/contributing.md @@ -0,0 +1,17 @@ +# Contributing to AnkiDroid + + + +AnkiDroid is an open source project, and its development relies on contributions from volunteers. Here are some of the ways you can contribute to the AnkiDroid project: + +### Get involved +Rate the app, join the [AnkiDroid forum](https://groups.google.com/g/anki-android) and answer questions for other users, submit bug reports, become a [beta tester](beta-testing.md), etc. More detailed information on ways you can contribute as a non-developer can be found on the [Wiki](https://github.com/ankidroid/Anki-Android/wiki/Contributing). + +### Translate +Translations of AnkiDroid and this user manual are all contributed by users, and are greatly appreciated. +See the translating wiki page for detailed instructions on how to contribute translations. + +### Develop +The source code for AnkiDroid is available on our main [Github page](https://github.com/ankidroid/Anki-Android), and bug fixes as well as new features are very welcome. +Before investing a lot of time on working on a new feature, you may like to ask on the forum first if it's likely to be merged into the main project, as not all features will be accepted. +If you are just getting started with Android programming, feel free to ask on the forum for some tips and/or tasks which are suitable for beginners. diff --git a/src/deck-overview.md b/src/deck-overview.md new file mode 100644 index 0000000..be7cb72 --- /dev/null +++ b/src/deck-overview.md @@ -0,0 +1,33 @@ +# Deck Overview Screen + + + +![deck_overview.png](img/3-deck_overview.png) + +From the deck list, if you tap the counts area you will be taken to the deck overview screen. On tablets it is always shown in the area to the right of the deck list. + +On this screen you can view a summary of the deck, build custom study sessions, rebuild / empty filtered decks, and change deck options. When visible, pressing the study button will take you to the study screen for that deck. + +## App bar +The icons that are shown in the app bar depend on whether your deck is an ordinary deck or a filtered deck. + +### Ordinary decks + +#### Custom Study +Tapping the wrench icon allows you to create a custom session, for example to do extra reviews outside your normal schedule, or study only certain cards inside a deck. See the [filtered deck section](filtered-deck.md) for more information on this. + +### Filtered decks + +#### Empty deck +Tapping the cross icon will empty all of the cards in the current filtered deck (i.e. return them to their original deck). + +#### Rebuild deck +Tapping the rebuild icon will rebuild the current filtered deck according to the settings specified in filtered deck options. + +### Overflow menu + +#### Deck Options +Allows you to configure some options related to the current deck, such as the number of new cards and reviews to introduce each day. Please see the [desktop documentation](https://docs.ankiweb.net/deck-options.html) for more information about these study options. + +#### Unbury +This option is only visble when the selected deck has cards that have been manually or automatically buried. diff --git a/src/deck-picker.md b/src/deck-picker.md new file mode 100644 index 0000000..93545e8 --- /dev/null +++ b/src/deck-picker.md @@ -0,0 +1,127 @@ +# The Deck List + + + +*_Note:_* _This section onwards assumes you understand what [decks and cards](https://docs.ankiweb.net/getting-started.html#key-concepts) are_ + +The deck list is the screen you see when you start AnkiDroid. It displays a list of the decks which contain all of your flashcards, and allows you to perform various actions: + +![decks.png](img/1-decks.png) + +## Add button +The big blue + button in the bottom right corner is used to add new material to AnkiDroid. Pressing it expands to give the following three options, which are also described in the [tutorial video](https://www.youtube.com/watch?v=F2K1gOSdIZA). + +### Add +Choose this option if you want to create your own flashcards (notes) with AnkiDroid. "Notes" and "cards" have specific meanings in Anki, which are [explained in the main Anki manual](https://docs.ankiweb.net/getting-started.html#key-concepts). Please see the tutorial video for a quick introduction to adding notes, or refer to the [adding notes](adding-notes.md#add-note-screen) section below for more detailed information. + +### Get shared decks +To download a deck of cards from the internet that another user has contributed: + 1. Ensure you're connected to the internet. + 2. Tap + and then **Get shared decks**. AnkiWeb will open. + 3. Select a category, or type in a search. + 4. Tap **Info** on a deck you'd like to study. + 5. Scroll down and tap **Download**. + 6. You browser will download the file and display a `download complete` notification. + Tap this button. + 7. AnkiDroid will appear, and show a confirmation dialog. Tap the **Add** button. + 8. When the import completes, your deck should be ready to study. + +### Create deck +To create a new empty deck: + 1. Tap the **+** button and choose `Create deck` + 2. Choose a name for the deck, for example `New Japanese` + 3. Add cards to it following the `Add` instructions above + +## App Bar +At the top of each screen in AnkiDroid is the App Bar, with buttons for performing various actions. +The following actions are available from the app bar in the deck list: + +### Navigation menu button +Tapping the icon on the far left will show the [left navigation menu](drawer.md#navigation-drawer) for quickly navigating between the main parts of the app. + +### Sync button +The circular button with arrows on the right is for synchronizing your cards with the cloud, as described in the [adding decks from cloud](anki-desktop.md#using-anki-desktop-with-ankidroid) section. + +### Overflow menu button +On the far right is the overflow menu which contains less commonly used actions. These actions are described further below. + +**Hint:** long tapping on a button in the app bar anywhere in the app will display a textual hint describing what the button does! + +## Studying a Deck +To study the cards in a deck, simply tap on the deck name (or the "STUDY" button on a 10" tablet), and AnkiDroid will switch to study mode. + +Note that the currently selected deck is highlighted with a grey background, and if you have any [filtered decks](filtered-deck.md#filtered-decks) they will be highlighted using a blue font. Filtered decks are discussed elsewhere in the manual. + +## Other Deck Actions +Long tapping on a deck will show a list of other actions available to perform on that deck: + +### Rename deck +Use this option to rename a deck + +### Deck options +Tapping on deck options allows you to configure various deck specific study options. +Please see the [desktop documentation](https://docs.ankiweb.net/deck-options.html) for more information about these study options. + +### Custom study +Allows you to choose from some convenient presets for studying outside of your normal schedule, for example increasing the study limit for the day. See the section on [filtered decks](filtered-deck.md#filtered-decks) for more detailed information. + +### Delete deck +Use this option to delete a deck (note: this action is not reversible, although you can [restore from a backup](backups.md#automatic-backups) + +### Export deck +This option can be used to share a deck with other users. See the [exporting decks](exporting.md#exporting-anki-files) section for more information. + +### Unbury +This option is only visble when the selected deck has cards that have been manually or automatically buried. + +### Rebuild / Empty +If the selected deck is a [filtered decks](filtered-deck.md#filtered-decks) then you also have the option to rebuild or empty the cards in it. + + +#### Clickable areas on the decks +Each deck in the list has three clickable areas: + +### Deck expander +If you are using [subdecks](https://docs.ankiweb.net/getting-started.html#decks), then a deck expander button may appear on the far left of the deck, which can be used to show / hide the subdecks. A ▶ icon means the deck has hidden subdecks which can be shown, a ▼ icon means the deck has visible subdecks that can be hidden, and no icon means that the deck has no subdecks. + +**Note:** subdecks can be created by using the naming convention `PARENT::CHILD`. + +### Deck name +This is the main clickable area, which will take you to the study screen if there are cards available to review. + +### Count buttons +The count buttons on the far right of each deck act as a separate clickable area that takes you to the deck overview instead of the study screen. This can be useful if you want to quickly view the number of cards available in the deck. + +## Advanced Actions +Some additional actions are located in the overflow menu for less common tasks, which are summarized below: + +### Undo +After reviewing the last card in a study session, you can undo it from here. + +### Check database +This can automatically fix a lot of problems with your database, and will also purge any unused tags. If you experience any problems with your collection, this is the first action you should try. + +>**NOTE:** Under some circumstances, check database will move cards to a deck named _!Recovered Cards_. If this occurs, please move the cards to an appropriate deck via the [card browser](browser.md#findingsearchingbrowsing), and delete _!Recovered Cards_ when it is empty. + +### Check media +Try to run this if you experience any issues with media syncing. + +### Empty cards +Remove any empty cards from your collection. See the [desktop documentation](https://docs.ankiweb.net/templates/generation.html#card-generation--deletion) for more. + +### Restore from backup +Allows you to restore from one of AnkiDroid's [automatic backups](backups.md#automatic-backups) + +### Manage note types +Allows you to add, edit, and delete note types. See the [customizing card layout](advanced-features/customizing-card-layout.md) section for more help with this advanced feature.Keyboard Shortcuts + +### Import +Import a .apkg anki file containing a deck. See the [importing](importing/importing-anki-files.md) section for more. + +### Export collection +Export entire collection as a collection.apkg file. See the [exporting](exporting.md) section for more. + +## Deck Counts +Next to each deck, three numbers are displayed. The left, blue number, corresponds to how many new cards you have to learn today. Anki will introduce 20 new cards a day by default, and you can customize this number if you'd like. The red number in the middle is for the cards due to be studied today which are currently in the learning phase, and the green number is the cards which are due for review (i.e. cards which have already graduated from the learning phase). On a deck you've never studied before, these numbers will both be zero. + +As explained above, tapping on the counts will take you to the deck overview screen. diff --git a/src/drawer.md b/src/drawer.md new file mode 100644 index 0000000..b56d2ce --- /dev/null +++ b/src/drawer.md @@ -0,0 +1,28 @@ +# Navigation Drawer + +![navigation_drawer.png](img/2-navigation_drawer.png) + +The navigation drawer can be opened from most places in the application by pressing the left menu icon, +or alternatively swiping outwards from anywhere on the far left side of the screen. It is used +for quickly navigating between different parts of the application. You can switch to the following screens: + +### Decks +Takes you to the top level of the app where the list of cards are shown ([more info here](deck-picker.md)) + +### Card Browser +Shows a list of all your cards ([more info here](browser.md)) + +### Statistics +Helps you track your study progress ([more info in Anki manual](https://docs.ankiweb.net/stats.html#statistics) and [here](advanced-features/advanced-statistics.md)) + +### Night mode +This switches the app to a dark theme which many users find is less straining on the eyes, particularly when reviewing in the dark. See the wiki for instructions on how to customize the card background and font color used in night mode. + +### Settings +Allows you to customize the app ([more info here](settings.md)) + +### Help +Opens this web page + +### Send feedback +Get support from the AnkiDroid team diff --git a/src/editing-notes.md b/src/editing-notes.md new file mode 100644 index 0000000..e53f6c7 --- /dev/null +++ b/src/editing-notes.md @@ -0,0 +1,28 @@ +# Edit Note Screen +The edit note screen can be opened by choosing edit while reviewing, or by opening a card in the browser. The edit screen is similar to the add new note screen mentioned above, with some key differences: + + + * Changing the deck operates on the selected card (which is underlined in the **Cards** box). + If a note type is chosen which has more than one card, only the currently selected card will be moved to the new deck. + + * Changing the **Type** dropdown selector changes to the note type edit mode. In this mode, editing the content of the note (i.e. deck, fields, etc) is disabled, + and if a custom note type with more than two fields is being used, additional buttons will appear which let you control the mapping of the fields to the new note type. + +If a note type is selected which has less cards than the original note type, only the first n cards will be kept. For example changing from **Basic (and reversed card)** to **Basic** + will lead to only the first card being kept. To warn you of this, the text in the **Cards** box will appear red, and a confirmation dialog will be shown before the note is saved. + +>Hint: to change the type for multiple notes in one go, or to customize the mapping between cards, use the **Change note type** option in the browser on Anki Desktop. + +There are also several advanced options available in the main menu: + +### Add note +Create a new empty note + +### Copy card +Copy the current note to a new editable note + +### Reset progress +Move the card to the end of the new card queue. The current state of the card is cleared, but not its revision history. + +### Reschedule +Allows you to reschedule as a review card on a given date. This is useful if you have imported already-learnt material, and you want to start it off with higher initial intervals. diff --git a/src/exporting.md b/src/exporting.md new file mode 100644 index 0000000..661fb8c --- /dev/null +++ b/src/exporting.md @@ -0,0 +1,34 @@ +# Exporting Anki Files + +AnkiDroid can export your flashcards in the .apkg Anki file format so that you can import them into Anki Desktop, or share them with other people. +As in Anki Desktop, you can either export a [collection package or deck package](https://docs.ankiweb.net/exporting.html#packaged-decks), depending on what you are trying to achieve. + +There are two export options available: **include scheduling information** and **include media**. Generally the default options are sufficient, if you choose not to include scheduling information, Anki will assume that you are sharing the deck with other people, and will remove marked and leech tags so that they will have a clean copy of it. + +## Exporting collection package +When exporting for use in Anki Desktop, you generally want to [export your entire collection](https://docs.ankiweb.net/exporting.html#collection-colpkg), including all your review history etc. + +From the main menu in the decks screen: + + 1. Tap the **Export** item in the menu. + 2. Tap **OK** using default options + 3. Tap **OK** again to email the exported collection.apkg file to yourself, or alternatively you can manually copy to your computer using USB + +To import the file on your computer: + + 1. Save the file **collection.apkg** to your desktop + 2. Double-click on the file to start Anki. + 3. Confirm you wish to replace, so that the deck from your mobile device + overwrites the old data on your desktop. + 4. After importing, you can delete the apkg file on your desktop if you wish. + +## Exporting deck package +If you want to share a deck in AnkiDroid with another user, you can export a deck package. + +From the main menu in the decks screen: + + 1. Long tap on the deck you wish to export + 2. Tap **Export** + 3. Tap **OK** using the default options + 4. Tap **OK** again to email the exported apkg to another user + \ No newline at end of file diff --git a/src/filtered-deck.md b/src/filtered-deck.md new file mode 100644 index 0000000..1289b33 --- /dev/null +++ b/src/filtered-deck.md @@ -0,0 +1,13 @@ +# Filtered Decks + +Anki is designed to optimize the learning process, so that you study the minimum amount necessary to remember the majority of your cards. Once the congratulations screen is reached, further study becomes a case of diminishing returns: the amount of extra time spent going over the same cards again is generally not worth the moderate increase in retention you'll see. + +That said, if you have a test looming, or simply want to pass some time, it's possible to keep reviewing even after you are shown the congratulations message. + +A **filtered deck** is a temporary deck that contains cards based on various criteria, such as **forgotten today**, `is tagged 'hard'`, and so on. After studying cards in a filtered deck, or when the filtered deck is deleted, the cards are automatically returned to their original deck. + +The easiest way to create a filtered deck is by long clicking on a deck and choosing the **custom study** option. + +Advanced users can create a filtered deck manually, by choosing **Create filtered deck** from the overflow menu in the deck list screen. + +For further information on filtered decks, please see the [desktop documentation](https://docs.ankiweb.net/filtered-decks.html#filtered-decks--cramming). diff --git a/src/gestures.md b/src/gestures.md new file mode 100644 index 0000000..37b7e8b --- /dev/null +++ b/src/gestures.md @@ -0,0 +1,188 @@ +# Gestures + + + +AnkiDroid allows you to customize the interface, so that actions you perform +frequently can be accomplished quickly by using tap and swipe gestures. + +### Actions +The following gestures can be used: + + * Swipe up + * Swipe down + * Swipe left + * Swipe right + * Double touch + * Touch top + * Touch bottom + * Touch left + * Tough right + +The following actions are available for each gesture: + +#### No action +Don't do anything. Useful if you want to disable certain swipes, tap zones and so on. + +#### Answer button 1 +When the answer screen is shown, choose the red +button, indicating you wish to review the card again soon. This is useful when +you forgot a card or wish to review it more frequently. +When the question is shown, this action (and all other answer actions below) will simply show the answer. + +#### Answer button 2 +When the answer screen is shown, choose the second button from the left, +generally indicating you found the card hard to remember. + +#### Answer button 3 +When the answer screen is shown, choose the third button from the left. + +#### Answer button 4 +When the answer screen is shown, choose the fourth button from the left (when applicable). + +#### Answer recommended (green) +When the answer screen is shown, choose the green button. +This is the button you should end up using the most. + +#### Answer better than recommended +When the answer screen is shown, choose the button on the +right, indicating you found the card too easy to remember and would like a +much longer delay. + +#### Undo +Undoes the last action. + +#### Edit card +Edits the current card. + +#### Mark +Adds a tag called **Marked** the current note, so it can be easily found in a search. + +#### Lookup expression +When the lookup feature is enabled (in advanced settings), lookup an expression +in the selected dictionary. Note: the expression needs to be copied to the clipboard before this action will work. + +#### Bury card +Hides the current card from review. + +#### Suspend card +Prevent current card from being shown during review until you unsuspend it via the card browser. + +#### Delete note +Deletes the currently shown note and all of its cards. + +#### Play media +Replay any audio on the card. + +#### Abort learning +Stop reviewing and go back to the deck overview page. + +#### Bury note +Bury the current note (i.e. hide it until the next day). + +#### Suspend note +Suspend the current note (i.e. hide it until you unsuspend it). + +#### Toggle Red Flag +Enables the red flag, unless the flag is already red, in which case the flag is disabled. + +#### Toggle Orange Flag +Enables the orange flag, unless the flag is already orange, in which case the flag is disabled. + +#### Toggle Green Flag +Enables the green flag, unless the flag is already green, in which case the flag is disabled. + +#### Toggle Blue Flag +Enables the blue flag, unless the flag is already blue, in which case the flag is disabled. + +#### Remove Flag +Removes the flag from the card. + +## Advanced +Some less common features for advanced users are shown here + +#### Collection path +Change the location where AnkiDroid's data is stored (not recommended) + +#### Force full sync +Tap this item to force a full upload or download on the next sync (for example, because you accidentally deleted a deck on one side and want to restore the deck rather than having its deletion synchronized). + +#### Advanced Statistics +Take into account the effect of future reviews in the **Forecast** graph. More info [here](advanced-features/advanced-statistics.md). + +### Workarounds + +#### Type answer into the card + +If you have set up your cards to ask you to type in the answer (as explained in [this section of the desktop manual](https://docs.ankiweb.net/templates/intro.html)), AnkiDroid will display a keyboard on such cards and allow you to check your answer. + +In order to improve user experience when working with the whiteboard and gestures, we use a typing box separate from the card, which is inconsistent with the way the feature works on Anki Desktop. + +For full consistency with Anki Desktop, you can enable this option which allows you to save screen area, and choose an appropriate font (e.g. Japanese vs Chinese) for the input box. + +#### Input Workaround +Some older devices couldn't gain focus into the text input box for typed-answer fields, so this was added (Hidden for API > 14). + +#### Longclick Workaround +Some older devices couldn't detect longclick for initiating selecting/copying of text, so this was added (Hidden for API > 10). + +#### Fix for Hebrew Vowels +Some older devices couldn't render Hebrew text, so this feature was added which allows the user to download and install a Hebrew font which is known to work (Hidden for API > 15). + +#### Text to Speech +Enable this option to have Android read out all the text on your flashcards using the default text to speech engine. Google's built-in TTS engine should work; 3rd party TTS engines may or may not. +AnkiDroid will ask you to select the language for the front and back of your cards once for each deck on the first time you review a card in that deck. +To change the language or disable TTS for a given deck after making your initial choice, you'll need to use the **reset languages** option described below and reconfigure for each deck. + +Alternatively, if you want only fragments of cards to be read aloud, or if you want to set the TTS language for multiple decks at once, you can insert `` tags into [card templates](advanced-features/customizing-card-layout.md). For example, with the following template for the back of the card + +```html +{{FrontSide}} + +
+ +{{EnglishTranslation}} +

+{{Example}} +``` + +only the `EnglishTranslation` field will be read aloud in a British English voice; the `Example` field, lying outside the `` tag, won't be read aloud. Every `` tag needs to have the following two attributes: + + * **`service`**: should be set to **`android`**, otherwise the contents of the **``** tag won't be read aloud; + * **`voice`**: used to select the TTS language; should be a [two- or three- letter language code](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes), optionally followed by an underscore and a [two-letter country or region code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). A frequently updated list of languages supported by the Google TTS engine can be found on its [Wikipedia page](https://en.wikipedia.org/wiki/Google_Text-to-Speech). + +To make both AnkiDroid and the [AwesomeTTS](https://ankiatts.appspot.com) plugin to the desktop application use a TTS engine to read aloud certain card fragments, put the `` tag inside the `` tag recognised by AwesomeTTS, or vice versa. An example: + +```html + + + {{EnglishTranslation}} + + +``` + +AnkiDroid automatically ignores `` tags selecting an unknown TTS service. In contrast, AwesomeTTS may display a warning message on encountering the `` tag; to suppress it, uncheck the two _Show errors_ checkboxes on the _Playback_ tab of the _AwesomeTTS: Configuration_ dialog in the desktop application. + +_This feature may be removed in the future in favor of a separately downloadable plugin._ + +#### Lookup Dictionary +Dictionary to use to lookup words copied to the clipboard in the reviewer. After setting up a dictionary, do the following to perform the lookup: + + * Longclick on the text you want to copy in the reviewer + * After selecting the word you want to copy, press the **copy** icon in the app bar at the top of the screen + * Tap once anywhere on the flashcard + * A magnifying glass icon should appear, which performs the lookup when clicked + +Alternatively, the lookup action can be performed via a gesture. + +_This feature will likely be removed in the future in favor of a plugin_ + +#### Reset Languages +Useful for resetting the TTS language + +#### eReader (up/down buttons) +Support for eReader hardware buttons (see [issue 1625](https://github.com/ankidroid/Anki-Android/issues/1625)) + +_This feature will likely be removed in the future in favor of a plugin_ + +#### eReader Double Scrolling +Double the scrolling distance when using the eReader hardware buttons diff --git a/src/getting-started.md b/src/getting-started.md new file mode 100644 index 0000000..e45933e --- /dev/null +++ b/src/getting-started.md @@ -0,0 +1,6 @@ +# Getting started +To start using AnkiDroid, we need to add some cards to study. From the main screen, tapping the big blue plus button will allow you to either add a new **note** (i.e. create new flashcards), download shared decks (decks that other people have created and shared online), or create new empty decks. + +Please watch this 5 minute [tutorial video](https://www.youtube.com/watch?v=F2K1gOSdIZA), which gives an introduction to adding, downloading, and studying cards in AnkiDroid. More detailed information can be found in the sections below. + +If you are an existing user of Anki Desktop wishing to import your decks from the computer, you might like to skip straight to the [using AnkiDroid with Anki Desktop](anki-desktop.md#using-anki-desktop-with-ankidroid) section. diff --git a/src/help.md b/src/help.md new file mode 100644 index 0000000..a2374ff --- /dev/null +++ b/src/help.md @@ -0,0 +1,34 @@ +# Help & Support + +## Before Asking + +Before asking for help, please try searching through the [AnkiDroid Manual](intro.md), the list of [Frequently Asked Questions](https://github.com/ankidroid/Anki-Android/wiki/FAQ), and also the main [Anki Manual](https://docs.ankiweb.net) for general help with the Anki system and features, and any issues not limited to Android. + +## Support +If you were unable to find what you needed in the documentation above, please visit the relevant site below: + +### Non-Android-Specific Issues +AnkiDroid (the Android version of Anki) is created and managed independently from other Anki versions. For the PC / Web / iOS versions, and general Anki issues that are not limited to Android, please visit the main [Anki support site](https://forums.ankiweb.net). + +### AnkiDroid Questions +For questions and help concerning AnkiDroid, please visit the [user forum](https://groups.google.com/g/anki-android), or you can send your questions to the forum's [public email address](mailto:public-forum@ankidroid.org) if you don't want to register on the forum. + +### Bug Reports and Feature Requests +For bug reports and feature requests, please search through the current list of open issues on the [AnkiDroid issue tracker](https://github.com/ankidroid/Anki-Android/issues), and if there are no existing issues, create a new issue including as much information as possible. +For bug reports, please also include the output of **debug info** by following the steps below: + +1. Open the navigation drawer by tapping the button on the top left of the screen +2. Tap **settings** +3. Tap **advanced** +4. Tap **about AnkiDroid** at the bottom +5. Tap the **copy debug info** button at the bottom (which copies **debug info** to the clipboard) +6. If filling out the bug report on your mobile device, paste the contents of the clipboard directly to the issue. Alternatively, you can paste the contents of the clipboard into a new email, send it to yourself, then copy and paste that into the bug report from your computer. + +![DebugInfo.png](img/DebugInfo.png) + +**Note:** if you are unable to open the app at all, so cannot even access **settings** then please follow [these instructions](https://github.com/ankidroid/Anki-Android/wiki/Unopenable-collections). + +This **debug info** is important as it allows us to match your report with our internal crash report data. + +### Contributing to AnkiDroid +AnkiDroid is an open source project, and anyone is welcome to contribute (including non-developers)! For help with contributing to AnkiDroid, please first check the [contribution wiki page](https://github.com/ankidroid/Anki-Android/wiki/Contributing), and ask any further questions in the [main forum](https://groups.google.com/g/anki-android). diff --git a/src/img/1-decks.png b/src/img/1-decks.png new file mode 100644 index 0000000000000000000000000000000000000000..2fb62d42d4a85fd15ebf5101bea9dec5fae4e7d5 GIT binary patch literal 17133 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 Kt_b$V?|%XA*AQ6% literal 0 HcmV?d00001 diff --git a/src/img/3-deck_overview.png b/src/img/3-deck_overview.png new file mode 100644 index 0000000000000000000000000000000000000000..6e2098c2fbeee579770da9e3111f8d70c6ab8c5c GIT binary patch literal 11973 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 z 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 D3k}QC literal 0 HcmV?d00001 diff --git a/src/img/5-adding.png b/src/img/5-adding.png new file mode 100644 index 0000000000000000000000000000000000000000..284e75b4356ec35e41bba7edc63bf7b007935bcc GIT binary patch literal 11427 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 literal 0 HcmV?d00001 diff --git a/src/img/6-browser.png b/src/img/6-browser.png new file mode 100644 index 0000000000000000000000000000000000000000..a2a050bfd0fdc4b79633f628ddf3674c1d746f28 GIT binary patch literal 23275 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 W6)T62Q*ep(C2b7@^;bx{$o~U%IdJ#@ literal 0 HcmV?d00001 diff --git a/src/img/AnkiDesktop.png b/src/img/AnkiDesktop.png new file mode 100644 index 0000000000000000000000000000000000000000..de0b1b87ea5e2ee6d19547f1257ec8a6eb1e86ea GIT binary patch literal 14763 zcmeI3cT`kgmhVA~AXx+?gXAnpvIIf01r#|)k(`PQf|5aU5&0kjWAsEc8g0nqs#{%Gjcys1i1e%5h^1S* ztrvXv#V)p|DjHrPik!LlC$8yeq3#oWw3%U+`i!WT*r=BS1o&VP>-Qn~OWH@$(nLd^ z86mH-=6x@AWV%8L895A_3dc$4=;)eHJ2=xlH@|QSef!D~R_~=Wp+uV*dESES>##dp z7ssdqadj2FzC6;wmY5(HhHSGMp7pBuosUi$`dwX~9bsT#Oxc`#`z*y|LM-%Zl4OFN zHj^Y!5`8qs5P6u?d_G=MY}i~3ZkudI!WS182L}gtcX#c5k5YBuQs2C{bQe6&H}Zzk zMQ0`^AjdyJin+*TaU_OwnOdGQ{N%(J(XjCRj>{-UrWTg8GS zRJER;z~TCh?)dlkL`8khkFChXczE6_y&G%3>}xhs4U+h#jf++0@MPMzr03%5!AQ$x-B>_)?Z6nVztMBGbdAo^YsTy2tIs!^1w# z=96jb@6rcJ&6o5R;Hs*sWQg%0Jdo2{0++}8Al%S(`~Vy4u<;ikQa1L<@^; z!3U)G0)I#?Pg!Pk9Al!UwuJ)@SYzB4SPxzMv6e%;owOUMU@&agXHaC|xfn{kKN))@ z-|Wys(p4}8<8LQx5r}sTGvO)MdMMaW*R>T&RVAMF!1ZBXxR2GyB-t~;!Sw6!Kl z5|5hzoJ>jsjaCaG@|O8#1Pkh$%T-o}PmwvvpfV36urv?S$Bnw^rloj_x zo~?7YwU%){9;PQ_mHsg6c3ELr6DBefOT()pT&twsBakG)<(-ba%(zD zJ6a!db8{0%%sPK>*DEY8#@T9FxLgy^EY_Q9_7m5L|5+FusD;QUsO$}&WYML&NHhB` zzQmW!ap^-bqEgZOlT$x%?+rn6S3Osd2c(2Tn=Q&itN-dkhQscA(a_F9RQ$Afz{z^L zH^H5{^(4Eco{8=f#-bKoGTA>_7#;rYnk<>1~= z>B#wf3|L35fplHXZCx@$j8QzC-US1b~BRNMzR7zTkvbCQ_v$Sj- zF2U?-WZ^!K;G6Yr^v^fm%&Y8D!Es`O8dT(l#XIZ086CU6QZE*?eU0fjBnc*x<>`VW zxQA$Mm(iB-Xv~i%ip>q@iizGsEi-&HkZC_gRm39)#82Ofp8^bw2%G`<;frwd)5PU@ zfEn0D>BW}Rx5$(YHZ)x5?Zv!-rJ<=g^il9=z}}b86as;m+;o{}lPrwNCumG}G@zMW z-;{CflBJ5A=$T=3iJGFK-&o#uZm{&VqqM})A`tX3QAa5w-!uY(R^ z?t7kB@JW0*Ke(n};PZtz6|t%5>GQK8KT1&G0L%+v5|k5s#?HZE&;Z#XZa%$LKR!Or z$IlNDeorNCpsO3c1Z)O*xw*iux*v7I=0j`5ks{kDc9Ka&x zXao!{*_P(b;aMZ)!+`X?=4)Sjd(QHWEyHV}HS_%%zl)l?Ej9C=TQJ1D)JNmZY*>~S zZfFQgI(z}O<(^ZaHsUKzd{9S)MhI}YN?uz1pfKv!C&*CmRp9}fG*aM=bo`A77Fv09 z86x}~w5+fY)iMherm0UBFW&MZ)8LL)jLMc+Q%SV?XBWO3%Q`HkV z<6L0Ea#mNvu$MSTcvYDxwIfLu#iB&H&|2KRF!|Y!Ar^d}l|{S%t>pv^bt;;b>FuqA zKG$NNwSXN;FdS|t4>o`DbImIQk{T(KaCU2=q~Ust>G>7mJ||kv;x3&|*EDYWCQ(cuXwaK)fA7iFtMr&1eK7> zD`VruWz;+2EpT3(fg}RJ+`9AX>pg*u-`spP>+j#X6V9g?z-vShXv|%k-ud}V^#)+K zXVgjn$HZrEk|Y8n_eAH{*Pu=vpX{3T+QY-c!C`-?BRo)2LLtW(uxOLVP_erblGyj} zQ)dHVgWW=t4`O%j;NYN!qML1}k^vZy{dF`slC77Lnezn&*YD_Ef=%AYnLwRGoYc334F5WXCx4<@>mWkDk;g`!qWoY@_ZK28^R*&(i#;AqmGB}x|R3r z1jFojoD?&kYTZM&dl}*BYVD>(8P>*9#(-9>?K!f0+JbQxc=T!=KEGsY+}hmQ@v(f3 z2_GEIv$U|tc870{7Y{0LP~B;>Q&LY^2vO~D5AEYDVbUflOddHi8s>M<^b=b&F{=sF z^Z*5Z6q=gg=jP^K>t1!r|1>{5>>v2~L77N@hA`t5JP`8YxsA4Z9j#gqPWemMx%@Da z;8(U~=*OFVi5L1TM8(<9Zn2@oFh9{eT&b_;sKZkPXd4;FcyxBz-5v5^W_mhzE+r{9 z-n=I_PcpN&ht||$#ambOHM*8ab!}4qMv-><{Ft> zzP7ccc=V|L2MIYjIRym;6%~TT0eN{gKX0%j%0marAuE;-WpNnk1xGNM3Of{fpjm2F zruz#}4rfR@h;3(R{`8ui8M~(rEZVs}S{m+pU`zXJGGDDlV4KidO40d{%Iz=74-cl! z3knV{Ba!yC+LJ`*tgOCI0k-2_0Ockm**#Ym2*xW028L+) zJmoYX+vo=JG#o0i*>B$*E>91#u(5$er%n&YT59JJZrc-JM<9&>-Fm@#HhfdDL`Fsi znBW1at@_I@gB{{1zy(8N@>>Hq98r_FKXS7~gh4*EtrYd2jH@erdwcuv@X15Bd#!Is z5}R)agv6HlT_b_Csefo_t1koZe#md%zK}<4LZ65Y+|fs=*d_?xp>r3ef6e*r^0s8Z zS@CM-)o-56$ovBkNqhk&QyKZ6cdq~(N)atJwJdRqbkzCaH&;#7@neRN_4QK0IP7d} z-XEEMPa{_mnD*h9;$j0G9UX1$GbRuTUYm)7s8R|r=*ruUM+_2=xI$Y?N%U0IP~`X@ zMN#ep88AOx^Mz>KxMX43ITU)%Jx86X6wIrwtzAbrk~+l6!9iPkb432pcRqe0Aprr# zxrsN%tklqGW&-i|d^~q0z)qL$ppO1b)ww!X{n`4ggyZQTuh4L)x0v72+CU&v5~rau zSlt7()UIKpGvzgzq0B5plyHx;rf~w1xHdwmG2_JfUxFrq7;GdHF<5Cfqkka*_VIFL zS=;8j6H~1bkcHQ=KX12wm9AUQxT8Lu?iG_SDdLfvm&eG+XlZF_9^m$mDH9gKA{@)* z8asqjB2}6vCG?>o8+HPcmgwBtvCbPlnZ+7e0TQS^QVzY^mrM`lUE%PPCLX>(&-IN_ z9v&XmMo;)_P0PIFsJF(fe9)I;J<$#(ecM(LuD5cK6e4G05Sz?+9?^T2m9d`c>d??o zZdr~bsax>(?{V1f=Y*^pBWDFSO6)78STbp|Snzlmczhb+dbNI^Om=C*%o|7a(Ck8_ z6Z#WG>WYgMIBu%(r}`|f^mvPjKY2piQC(ea<+hf?Y_46t@#SlNc{9yw|EIRD>qxrp}OO0cOsYGB+T6+h_rl*B?dEX^a-^amu5Bx+$c@aJJLweiW zmz<=h#N>})Yj#K{=%o!PQFCn>{H(p$c^oI267c}Gt8>p4QWLWD;}$V9F3Su*YHj`q z93@Zy9Mv~60dTzgUjdGY?0WzCkHvSQ~CL|;_7r@EjKaOz!?-+4- zUHDA8=c@^J95r^bw6WIx;yh+TU>@Gl3d!arzgNmQz`|Ckfjg2Bt zpSm9`bx3~xlrw?~ynzg!>K*mx+qZAysrvZ%)YvaH0V>ex>FErPSt3LSH6X#;e}V&g zXy;}Dn`H-^OY_1R*i_%p18jkctHY zL^{0~P~fw$UK-)NFnHN{KaTs${H2Ih=(drQDbvg=bB;Q=40ge@3|=Yq)l2-wjmJ>4 z&c|H-k|f4(0jlNcDr?K3^ykqV=-e!iq2($2(!Cqn87<^}NV1`1XF<^&SW1LipP6gk zNqC`b)JyUVNca{U{75QUwa)LjBa^N)MPue6ID~QN`1p8bWd+zXT)QI41kNumfOM6I zkB^?{nGyW>_$M$t9ds!yhB-h>YJ7f+{H;=nzhCD#+(_2(X71Q7At|`&L^+H_A5CMt zxui-dh}YwEf6*%lNU(r(*iGLD2HR6q`aJJ(e%#+5@u0*2Ha$MYe6?)!y(pALSnx&| zx@rUqqqv!2*-r<=_kNhajGj*<{wvL?=b%*y3)?va^u|AlPq1Bo$0wN>t>Q;9ViqdG z=ChGs=bxEIdd}XhERdD~Q>Q|7)M18(RXHGfXL^<5f~{DrmiPgSg{K}*GKQieB3_gg z71>Uwd05G7C)#)d%en2uUDygTsjSM=yvI9H6fFBmza!*xw|&73L`L1*`9r(uTd*!% zi8Yj^a9a`3C#9sMwC=V3`0?ZC&!4BKwVM8bj)FKjdA*lH8p<-~0G3zxPow5&2yf1- zc~jYJWp`WY6TYUQ>CI`r$Pm*RmvnZ4n zWuqtqPJULW#>gJTy0J>15C?WvKxD&u9z*d|(l<6XdU|@MrnFOj%+)$(H8)@Pr|_t$ zsi~sh)KF20qQuK`%7n5&!~$Qm9xY2JiOJ@_FeHrxJ#*Bep>6hgCBMwL1*R;K)25m3OnZBKGF?*N=KxPx**gz|RND`^{B}PcPioH7 z5S5vOR>LBQYC`-r+k5QluFOh2K2756(dv*9ze$zLlwXri*V6>VfdJ;zfhNa8GqDUR zQqmX`UEP^V;iHlGa<-{sbq#evcE-#IJDn%E$I~NRZumt5-PFFiqK*V$t*I0pUEScI zpi+W&EiEm>!@~y$jwLtNhcfndcE;yR*zG&C5_)bP0ari=^C`BwC53%q4_tYWr!a7u(PvAMn)zJ zrSTY5z+kYty1Ir2-G)vDd-a~eaEa&Y5|5#|m&JN@0dj=7$`m_0XWo=Fa0?E`3aDw< zdtS7NZTrGHNIxV{)Uezc_s-WBI)sTkpvfD_nRI~EheV&PVu#%FVp8oOU$F#JBd-MNg zs4`1D|7L$=WjOj9Zv~@X$79JpWUzCo01?(|`h5$5Fvc*dyjq^IyrWxd*g-n=ciNVh1c0AIN%f?(b zK@(RNW7;C4J7~})!UOz?X6I|&c7^6RP-qxle0ROAv(m@{BLQb5QabBnkf?j&J#XJ~HJe#(jnP1h7_wc!aZ9hsrYu7V; zu>6L>GCv9ga*B5>oEs$z9_jRIt~t~lPBqg-EjFvLnzi-Tw{LhF0bEa?J{1xY5)<16 z{{V`@03D{iEMzj}1@saKz(&n09FZ7wH^O#I#PgE05dzzKj^7tJ+`3{iVMLU&0xgkQ z&!`MLNX-YFL70nwGLzbiL1j{^nXgmpK1)fHJtPHd9amLW^78YWY`P4-88|sPSzBA% z-L>0!6a`u}QOEarO#oK&1&UNH+4t1)-k+R!i$z6y@+8G+kC&Ntl|F9weA&aILdJ1wa`H2lG$Gf`?ie~o<&RIjPaUMB+76bxqWF1v`S@0y1PigNtVMoj5C9;l zi&kU_xnPe-Nl7UwJ1r|g5)@ulh9W2-QzjD=tG=BZ<(IJx$xQTvWZoDkWBYFgZbo*N?87` zVDR#_`W!8-{0BhweOmAjYX_J@?)yecN|DH94@uyRnSKPp-$M|dc_qR49@c}3V`qtj#Vgr()SQ?P4J>jp+X-j7O@bC}_ zdOO02u>u1U<=cRKtNn$#4_?5#M9Ie^!Fx#1v&8Snkf% zt9U1Y+O%R87|X3n_Qm31OKwrUkb&%@wO8KN$2z|{7{_(sl>FKI8Oh>M&$ ze&?p4v^q`cthl^lt-Q&yPjSm`{cqawnDv(B8G`yXA}5k|JPiLZ3QMb*yz2E^H~E zbA9{U85iZM(mP&{{U7Lw?zxF;7K)#um9A*Izbq~qv)zs{oNjpel`M-LBWP|K@U=A7 zC(zQL)<7Z0#-@F2<0E?N&d$!jz`)$x+%z90O1Yo|@vXY8_7W+6;Bwu3Wk0ljboYyZ zvtSCCLKt#iL9*};0J-1Q7^iFGm0WXZ=)LTbF91Tx1)Y}KLxB>50531OxbNjFDJdXG z=SXUs21xqvO0$_d`iQ(QFZyUfOiT^4Bs!NS6 z0>7$KK*_eEqN1;_PivO`E{2H~^3h#Dwbs|4^T)Wew!ZEvO!G_so#Q}BF9ENut+}sS zOxPuWgPZqyyMU|y`=V)%%s9}Ol#Qx-Rs3ga{!+N#-oc$18~YiR!gv!nqo~9g3eXkJ z#k)Xn6BZU06(c5a_%Heqw4fj}ZdvuV z=hMPMw{T6Bh@^pwYeTCDW@fyeOChrGh&&FY^8U z(ch^9tpPhTHGA_gVKFgeHAYHK+JrhO2z(j1Egf(2A}%2zL6`=1cDb}fdqaV`DBEA( zG%L&5*?Ghk8z{el#VoeoJ2IP&Yn`GfXvx29BSZy;Pp0YA{|2CT9kGS3o9I%=Dgz>dR5v zzEEydtTqP3YF3Ddf{UPindpk2j^!$lplZ7J9CkudXHiar8)Fy(l0>XCB`T6CM z*c!GT>NM#hqobp7adE)So}>`4oBg@BC+@t~KQ}py64&=x-nuG ztWS_Tn7b?MJXO`zIM~?6^mpIB zeVdh)1#G|uw+1uB7iMM(V3rn-p)PIUFQ8Rrqp!$ZK^B9IXLQ9J*c5He?%nZ7C(NS=R{}w-nOE9Y*zN*{%Qn_J%4MTHnFx<35X|CI%vc%lH ze6T5`BD@L_;PS~Saur(msNi%s`3ep{XK|}wSx0`!8CUQ0>=}ugY_xPx>v#?p%V_pE zT9b_LOXA$i&v!EDdF7AeKUl8mo;t!MenXp|_$yid~s{R}Hma#3H?(0)%?O)cLoT}+gRhpwYQvjpM_ zk-vUQ!mm`pa)gSXb-XMBBlO_TjUaN7=Vr4RX?wo1#0&&78 z)>}=QL?M4z0pyH=MTfmmQ};++y#0y2zxu9Qw9;Nh*HlTRSqNKzrhxFPnQjJN9{6Iu z6QdroBK4y|nU{pnx6XID>cVV!Kd#Q9?2&&=P=ySuzE~xd*O~IuCln-&^^>-DomP6t9NkooOq_m>Vc%(wd)TppU$F(mf(5N2-ltaTBgJaj9fY80&eok=FXm` ze_rSpng2vqj2Q-fQ9r|3&T-XZgSCM+aw3Lh88s5Cd;ExUYHJvpQ9`M8;8C}dow%Q? zeyIJ3wv?GRypjgk8P0Rn{izIJAck1K-^*Djz$~;E!2RP2KvWGXO9mRvLLhJcRc{1g z{_}d{f4}kWPj+hk>5qY9|GmjTOKn3`zy?dXOfI(m@YwejgjQyp;VYdTv(K1<_s<+% z<}|u2nD^59K8-=TE6}?wqZEYNSz*MFAwp?lIJj%0crQnbE$Ct zORQXw%2g(VAL@g>3XN4NS45v~azhE$VV@~4z(nAM0uHgO`P7%Qdx~weo4efp>Ba4p|`V-CCJtR<*$pp|-EJz1aqBN=~vU%z6w1=hXq5$-e5 zc=$|^tK8o26*)yWM=i`Tt!daQjtd%_$C+}$HnVTzgd@S>2+<9ZLt3wggZzhrkUOy(!o!W{{FQaIJ7(a17~?>KKlMbS>u z=C(>rv90lHW&f$NnsMGXmcXkxZYY1`RX^FDzsT|0DCbTsrkHT(daqfVXpSw<0?G9Z z;r52Qi=t&Bor>`v+Lwq*wV)*W4FRY^!On zgW9d-5+c!F->%C&iTpe@qIm_=j}oU?Lbd#nqoE<;Jr5d)FE$djkM@GUD`37SZ5sWG z-+@!#CX!UG(B$+DM9u3o_H=$&$8ma4#<7nij{jB`i{l_&VVFw!m2&MCyJZqMq35SC z^+hA5=L=C0)lYe%rCoExzQz%br9)f9B58NiTes|H?{|aN%KRN|9FrbA8m*ONCndW0 zv6RcBzT%`@K2aPD8dwx|Z%DoIqY?R5?b(AGW# zJOGfcOr*!fp=(cV@W`IsXnoEq)UDE5`&tULxw(b=OZ)nSwHp8R)^fSyfhQSA)zcbX zcu!fOE^Ds;+&)ZIUmsRk`Oa!x_DcX(r}^>{oIf-Bc;W_RJ}uEnwjl)`ooOWbzWL`d zjXaSaKZk)moxJC-(`?kcRi4q)t@&X)iw%~P%l-Dk!ou09`$-1w z$HT-N8=ZL%A7TF&Btulgyi9xuaqZbXn3#K}cDOn7YHmacM!aYGX-r?k=+cw`B$&H3X}wwL!exXJ zDI@ZiDXcIXLa=wd#ynjXqHC%qtuH-YbC$mjp%M!}tXa<=Ms}vgh_Qd#O?< zw`(Y#LiVhuA)h9*fG+Uy^zst-Y;v9LUEIMg5^4J$e_2fG4r0 zhLFxt)gQZXQ|(6K-$8~$(OFSeoE1@%{IYQ^17h`3A`o7un@J+OfDxP64V0ctVLad1 zpdgqsOm3UrCvx0Y#xzBG~+c<r+&F;%CM zwAVE8ABNMTCYJSnw?%EHh>U0MglCdHqiQ9L?V<5UQP}~p`Iqyj2K3)#r%eW6hqYU_ z(%M@S?e&(pdbVbCY^4hPZC6?K6di&H^6{{OeqlbD_tx&I{Ohbo3RwX#e{r$9Hj;WB zmxaOse>vM?D4=dhw7}O8;-)@p7xtcHkc)20zG-J^d5(sR=AbamXbkxNPs|S|q5Wd` zjFQjYto`y>9HwgB0WSdz?Y^JcP&%D;#@u&Zk%qZg1CZfEd{LWPKS#DyFZF|T{ndG^ zgBwea<{5sTg(U^2LHf2abog!xy-}~EY+A_tWrvAO^83t5mLoY)Cel3~1mU`Po7qu? z4Wm|lAV`#`S47t|kywn^o0B9voL|;g=wr=opVjx}PRYauxba|r9CN`cf?^RVV?HFd zXR^(cybLUM2X`bJ4sXQK!=rYQZ(Ga_o$Jb3AuwskPB-bS4}|F|!s)0m-W!{I!T{Or3zXzpqKo zu)>U@<`#Cl!t$?)uphjKuwywZ(`I5?&QYWA?TX^LKJX-?!({Q5AMu{M{+n(#4WS0sjWQyO)gs literal 0 HcmV?d00001 diff --git a/src/img/DebugInfo-ru.png b/src/img/DebugInfo-ru.png new file mode 100644 index 0000000000000000000000000000000000000000..25c909ad4b413acf528c434f21923685c6c2dd7a GIT binary patch literal 104337 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�k2$j6 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�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%0AB?Io6$lVw5q(d% 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 W8Xiqq13c=Hfx*+&&t;ucLK6V=UKPjy literal 0 HcmV?d00001 diff --git a/src/img/DebugInfo.png b/src/img/DebugInfo.png new file mode 100644 index 0000000000000000000000000000000000000000..16f492b4f87dc10c69635588ee74194defbcce77 GIT binary patch literal 21692 zcmbrlWmHvR*ELKdEs_!b0 z`;2#dKi=`hpTijEZ1!GP?6u~ab6$}uN-{W@WS9sD2spCuB-Oy*V*~_5$P=W0-$YrV zARuUj%1VlBcx4~tU}O_YrGA-pp0!+bzv5=;<#@xwf?ZRC%N2vg(!*4RUbXto3+Bb~ z5{BdwImlQ_F-RR11q*Wd_?ot#8WsYhef<)%-~Tng+XRK;^5XSl#fv_a=Lxe@{Dgl4 z{)X;W4fnt4^!iJ)w-K!-M*cTPp6$CLljbU&(?IcC1zc#_Dw6=rkZE}G?p`EOt^xsk zGb$fwbT#qyfFba4+C#MJ>aSZg9t-qgzEUh5ooLX9>ET2OW+=!W%=HxSX7zX}X-6#j z>6!qYIpKdUd{;(Jnj|x|!A~P!j0Axb7fcp&j=)v>ofWY0M1QR$TC*Vcpx#P~bxM z*~5Psu)lV%9kT=tkh-C!KIlDQX!mysItz65$olRCX?HUUF?k~`5z0G9c2L&&R_H?4 z`8CS6{?Z~{-uT4yL;!CKQcTp zJSyNN7;0*6br|Hqc=?Ja0(qn*B9U9FkUzVVTYxr;c6z}DRdCxPTy8#0EI&7pdnLjl z(nj7Rk88{m(w;1@#h9pB5M#n_tx#BN!|7+_+Rjz~4*8IQyl7t`LmF~MaX7}q*Cqu9P zds!<-m>JJq;#UzVsSZ3mf+<-S~4EfBHCm)<-1Rdf;c57+k#%AFq0QCr@X1oi$u zAD7Xsn{x&q?x3l6t=lHVd9oI_KWc`huW828N^@ZuW_`a2*SW3qf3&U5W+_<&ei36X z<2Vq1E;3QW{;$EwAJQJbCru zi89gBoc?}+Y#+XkruoFj-pUEm$MOW0j(9xXL67ocKO{p*o+K@b0lBd_j>`d4-^)9n zrRR-b{BV)x(t_v(CX&WT(VQ@5G`cAxs_fewr4~wtB;h8en^nq{9a;MZ@#pG0a7XR#wOh#euw~w0flrC`OGs=y2m*gBAmhE(xszBCL%ME4|%#>xfkA+sfST4D| z7cI!keO#&9t!QVF+JE}`c{}Txifx}ukUT2S;CVz6{sYA3mrOGN2Ef=CV%=3wuhUBS>?s)0J$cLoTn`)WS##=2~t-xQ7Mo z2=2KtXn#(e%n%5iPNk|R1S@iKv`fs5AXcj_1rcXj{=$|+WyBH08)XXcLi_v~%Tyx{ z3(iust_;~4GZnLV0)KgBImt1_y5jw@WeRigOfn;ndXcDes9sq@~z(I@}~kD`krh%SH|lve&2q$ z?Pa71z?zbkVg6W7A{*_mJ*#5QFy-VQ?s#lTercxVAnRE!302&wOd+{h6}5MCSi7YA zX*#Yz3f0H`(sCx?n6ts;k0n}kl!`;$zm7L%#RP-P{t{S7n9r&4*^|CtO`A4lAj9yeR?ror+Oy<3MpDl`#U_4>*WEOr?N^h_6_&)c52>682|A>hS}3#L-`AW|vEJsw&-ZNgjfw4r3Hmr1 zWDJ1&K9Gck4V^vS{=r^=yqK+!tYs+Ly1NTC2>QX*EjgR^Otq~gFu;R|2!+S?z4N3C zQRO81nW1Wu`QKLEf(M3#frok5lDNUs&h1{zeR~16c(M_+?wFNn-$YjwJAvQF6B?W7 z2pybP&TqojD{4nYI<6fiQI`FF*=#SU2fvsnqM2BnmLbh)Kl+MoIWlSE;PVE4@)fC_ zkC_3y!Bky-^PJ-n960da5R6YOy!gn>bYHFa37zl$2FuJ(i@#ZE-dY<$6U}t#Kj^ z9(uysj(`OJ{7AZxb_r(Y`oJ3u+o%X_nF^Rzz)2sR;rXn!H6E9wE4Qv8v7vfTBMY7m zWoN69ddB39O(F%HiRi5K{pnWZ)w|&neilWH$7@Q;0RdZkLgDT*Vf*p;N!`o>X7fE8 zwsJRTA%@oVM0S7z{y(Pj|63(cW1LuCh)jysrhqH0%Kbn1h{D|VJ!~!2C|A2&4(z&~ z8c1Sz-+s_sS=)Kje$>fa&`zr?a;~v4m|{JWX?cIKQ<_)eHDl;$I8O9UHu4=Cgx#>M zQA5LOG&`fzPa-JXe86?JFY>O{Vjxj%t4JY(i+{lhnZ`1(CLaczCsb zOLOj@pg8RT)a{Fdc`VzJOx_{&PHKq6Jag?=E|YITeSMNgez25eHbbA2^#Sj;LS3O)|{WFfT;)DC{<}CPhV-XD zuVuj{dL4$`;eBe=`qlhrT(&}PnKvcW@$ye79-Gc**z3&Svd(fZ;iRO+1sCC@Rs73- z+=2DOiSLQv6D5jCv`3w{H53WOxi58E92db>sMl~)%t&2>fkK=?`scOLqo&PzM879M4Sn0e|8+_ z?rc!F5+zx&y3~(&s#>miRA}*xJ5Dt_=k56(!}S(ZgL;<@IdH3T)I3hu)PSQZ zX{{ML8FPU~5XYLYH+q}>Y<;`OK_a&~qTY_iV)%6M;d~3bOik-1nY+beo4X6fW`w6G z-2dim#kE?mX>tH;IwB$XuVpQpsfrX5Za5LMR-dp`{K@rU`%&C@_>VUU*ZBeWH=@x7 zDaWz=ORtIi4gB|ia|#qF#4Waa`fee!R;o=WTaRXsGj9jQiPa$})|%_VmvaQ&=PCw1 zQA>Ov{TPD}6<6`66O%+ojBWkue|rI*arZYqFqu|9jV)zZ5jKA5q7;Ek+3YZXG1K*M zK4(|EF-EVL*-r`&)*`-^XYc4sGhV33MxIf|rjS&~i zR14J(>kJJ(qHd#8`F&bqHSYZC!$ysiHe(#vp@SqVD_e(rAVq~VsBS@M`vh(|n2gx> zLd56lE;S^;(_(+o`6ne|lU|dpvhZINOe6mdWI+J|Z#Yc63hTK>htIjs^+uXIO!q{q zLc?aVO!eA9nt>$h&7~@XGaWAU|McOFHg`!Vu*~JM{_eWG_+`era=^__sh{>re**28 z@Tme=wF-^$dgypT!D}N#sr#1@-cx7qnp%!%?GT@Df%%b?P-icG%eh9IG%h&EEG^3c z?Y6O(OTM*F<$1l1O$I!`>wr2?8U(pDGUfY@=#UnTzYX%;V3s+*Qp>J`&Y;(M5Ol@2utT8Bbze9uQe z5UZS>f$In_Dkxzn(8C&|f}s|JKFG4`n8>C!JshOBfSuwr$FF~XfFyW&1eU>Vs>yBV zS1PN%nX{4aLDRu}i*{-T(#>9Nm*aGm?)NC7>&qebE)9}IR^5A$243qo+uz@u8-q(@ zVz93a)JM|i@VhP_r++8bX@-P~<@q~U_tJJEtooi&I z>w~Q8854zImJdnbiL7VU_PM60fva{(vK(nn=bG&B$oUjH7%4PJ)z|4(+Yj5KU9XP6 zlNguPy7*H)S147=@#)3kR|%4#^4D0hW-~y~Sa^ znTNM2OT^bB8#$H@QBpvy#z5fO=_jS*K#F4zVTXNQb z<3Hl;H>>;^R|vaH9qq}8P(RNPQmrbSMN4JHYy6H2ui0PTNLD;mduQ0@wo|b5(U*(KT{Eb@8PVprZ?O)?wO3Y6Y1Hhn$bcap5;gX421Ca{l*A!fot#_h!bA z1-F{~2Mew0OO;=Af-f*wH=Yxfh{sEPzu}AGVbik)`Qt9*)2DA3TA z#F z3(>=&i|v6F_A_tLa49l}PuCbSGf)Y*NXD5w4&W~ra1?zK*iwm^sQ7)gL&u!(_%G=sjNV=F6^re?nt_N#Bg;#t_ zM|bJ-8^qUmmzNG1T0fptS1xy5Klehpr6z{`jHfbYf&kRCwSm^?)A3GZqMvB{_%ho6 zo|!U#-<|z1_yw;mVIH$)#jDyDcpoOz$IU@wo%!Wc{~t_)Lpa+27vznlKR+RoS5UC1 zYZiOFb8SVXFZ7Gn!$Bk)k|g|$Sqwv_H2Tk@=S4t)ZV>!w>wek%Seq}=*vEPtn4?!l6qT9zDMUS z$a<`pbp#yV`MMA5Y*9>(-Hn|l-AJ4Xp+Og;rZNv_ob*kYiqb?qSUUs++XAke{rJ*Y zJjbQjFCshBnBkZ*FDGV}SzgFV^`1fe-oRrd=01&0CUkpm4nIG?uy_hzIU>2e(XK|K zdxOF-6vE{g`~a$Km2zLvc?2F6TOe0=xp7Y_i|*xzC}jE6=KNKh?(3P$gi?hJnn0r$ zM4B-#VIA;)(_h)ryyWJL)ktzbvN|es)VFK$(fn5=-CVopdv?L%`t4L>2!}T)4$SeV zUl)Qd3dE|MaQP?>ewV4zwkh5R{CHadYPV*k*7pyT{Eigz#BA#d?CJUJU3ZE2Z?*Ur z-6nn&%Ukj?YCd5sQdWRr#&|}~0FXBPpfE3gJxmy1J{uLFqO(y;YYD^`0 zp#gx_*H~T@G|Acad7$S=pq1Gb;v@+)T?%}>f9rR^Q#-}TH(=MkQJB*kvNC%WO=S83aX?`Y$_=>vRHgP9?^QF#S$8Np-77o@ z9vM%6G}_CeNPxjBtWyYx>~i&695sVUQ?7PXv$H7(gW06>v%wmrjD5#ztUZ)MX>6jC zSdS09TQh#V(PlJ)zhFkiZ&>VkuaOQ>&fr3&&~LJ(qjvoYExg>HZLpiE(FAy9re-mN z+gccB+jGf#3+xmHMMcf(@}N`~kZ%2Ueif??cKY8Md2ghk<5Ii{xO)?oItFUl?Zy22 zjrDoQc16+Ng^tT5{c1hllNI9*M^JClpoX)vvkJ7lwv%5TZuZ2k{vaE(PS+X-PAKwo za<#kd(4Z2VegW_9RIz+o=V99($aa;3*$D}pPJbYywc540AJi@id@4apvtV}or~BDu zCX+(0aE2@Cu^OYrkC^A{KeX3=#1a^dv`>UX6`AC*-qEVZ{D>tNJ00d0g^eVF!Igp~ z1Hi0pC7fKZ*`Bc?85`_%`CN^>rGy}>3c(6GJW4@HSIruO=N5D*5gCsF?RtTt?({*J zj`U-)1?VWwSaO!Y$Z2KbP!e9&g91C6BUBkc=+$gL`&LM2Ua@N&V8_KGSppMStA%Jw zv+EZWB*kgF>8cD~yHw0hMP4X=$>)huETZnh0Xe&Fm3=a zq?9WxTPt?bPg^JxFCATF)R9?|{FJqV{ImCuI7;Tfok3%mJm)ArXup;^e8<0FKXX@7 zQ+vj$^f>PAFxQyDW0PnkK5Fr)-&)fO6Ip-wm5NcFnN-PJCaGp@geXvjqvJ(y-c(n1-Ft#_}5rG zTizbwUrs*evC!!X@Slt27INEuiD;<+V|*s_8e;^NYWhw@QG$82j2HD`zhUf6FcbXf zEHecKKNAZp$u;hUNR$-6MgLQFG9hJq?S{q4*ei%9JcjU@(r4A`tt}=Gn2qysL35*f z7$(uHE50d+NIwR9$Jw(WA5~Zc4te;+>N6?|QJCt=nCNX)=?EyAqM5k>dRUd4a4JnLi+9+-%n1N`a==sx3BLw&`hOHRRO^i?? z0~P7}Z7Yly3}Fe19Iu7%#i>=7wx6{+ft{gZ*3s^$$5EmCzTbLcokJc8j*Xz%#AP|C z^5Xt24@Jc!cMuxaZ?%i1YysCV3&YC|h$9GJKzq2(LocyO5M@dyjzNIC#ZjFfLuya4 zv(zE9XyL$rFAe1%24 z6;Z@$n6x;*_?jccZmObK31a;YU7lZsz+VLoF_z2ga?!ID1$6-3SPDvCMPK4&k4D9* z1tTCJxV=0Il+h?lTfonx@;esC49dh$(jbyHbKv}w5x6y$m$$cg&i4VMcwPa#7~2q9 zX!iZ>L;Bi5V59@kp!o za`KT}5pv6Y<|6OTv@D$&xfJ%`=N@-iCH=&88oPmB7W z=~Sqn6;0YhUA|#|T1a*5%?rvEhiwXeP;6e+4ts{S|b~RHDjvZBnV$ z^m`5iPe=IEskC4W3hD52bp~lvMP$fLxSiQd2+1CUQc23WtzPht>1;j+GMt~QXdS2$ z!)q3AX;t2ZQ#{on&phGo_$BxI6(|VD0472^+Lyu&eu0Af10&<}(g~tNDoQ@Sj+N@O z5+O^8!pGOxPKBO8T+&O-|5$H?>twn8g}fu_n7-g zzO$?sEZwdCEY6(LR7j3f2Yb9+;V&tM*-;+p_Z6u;UQW<+>?!ur~k-XH%gInsqpG+#JK67Ij4skx$S-vUX!k%2}5p7!czC+YkapN`YjIG8Dh+{ z8Wbl*0Vj!l12e}*Z%q2~?B7S?9db@`@+3$caw$wZU3|={%G8q)Sh`gW-m1w9KD3pD zeeC?oq9V>#jXFVbA;D}*AB#@Hmngusi3bAo1W{{Pe0y>&NW!doz zRgjze6qJo8m-Sywz9YHC)P#Z&rchl}xlkjEurZzJQm{lLK|7vLu{*6mT;pz3t5JfL zWMw1AomY_v+rzcS+7!oR69DeeDpSb^q16kS0Ah1PMs$i;6!!cO)ODi3_{qsh&^cG; zOo(K;(ry82PcNH%8EgT813-RJi27YQv@C|_aC_|QxO9SA3(5}wstWAi+J8kq>>GeC z7*MBr0kvinT2WD6as$eE216LM(lMWwS^B7@(S25W!T=peO?ADaKLC1mhC(vr{V3*| zH{K^jB<{UrToxZ~r59O~$PGdNUHkO}bC}oWm!w~Xu zPcGWmwK$;)&B|$jF*hdZ%-oxJ$HW5eylyWJ!2ilIv8^d0-rrv?55c153A(t(`rMSA1rXdi z`U|h1#BX#mk{yUVTE1`J_JHEdtX1{9)zuoa8PI*4+eszT$EqCP!M$whnL19~Okl6(UuIqljP-jb>#4naG<`|Xm;9?KJK%Uzb zD1TK8Ib8v`YO5FY+2^JX?v5YGEjJ7DzvCmprdSkyPH3KF#Ld>3M@+RRGJRAQJn17) z?teJff}Pt*%~T{7GN$nNOqQ#Ex0FH&V_*x$)*i)2M~ln;7)1nqnG_0uX-bcFA3Beq zzG$K1Rn$pYwFX4-5*qHTc#$? z@C52!$ZI!!WmWN#Jah2ZlLqTCE6hYQ6_R~s_x!1;X&=$hJHXNO#jH!Onj!v7PQn~b z=agWZ36>^^CjMk6fQ#lc`z3mx%rE#I8`<1hwnhOmj>yR|8w!+N?iF$F5`l}*L@U1B zq@;AxfWAl_a`jhcPN!C_VHtPt8Zt76QadPG!(8fbLaXCoWb{E_5x|HPg(Q0CBgZ}u zy|!Zw{Z9z$x;{RFyBXN352oh**KIikG8O{9*Z+K^fH;zV%p(KbVanfIgXe9ibH+F3G423Iw%)nAsQi%5{Ao7_uhC@)8{G#G zWg5nQg9@-Z=JdbUkXx1Tor%)hIrx^Xok(8A_#{Gyp7NWCh#>H%&eRTO(OBFmdF49JFTPL6wkV z#6Gk57lLjdG36w7M#>hrfS~BPR#0=Uk*( zD4ke}MCR9;@U`Sy2+=}*#u%V+3Yp3 zVh_xck@qrh7*LbVqS=!17)4?E&;7-`j{ndME+ZP+gKF_4NtE0E?c2Bb8%IHGe9jOd zXEg=2m#|*SLphaaOMVAugBx^)QPIkns^`Rg1SKz%9D;+UDG%L9nrTvK*Q6=)L`3c= z2)2vxwz3V{`h}A;1FuguKx^?T(8|K%v%RMHH#RlZQGf3gc}nQwiqc~fP2e-acGa}1 z59YUd2OhBZ%Is&Vkr-~9b%nY=391<`kCq>=xAM})+^qkJ8jP}>^0`q(0Y3*S`&i*6 zNjc9oRXx8<82)}s0sp#9Yh9HL((SM9cF&`Wn5!`H00$ZdF{4j!T;~$%Xw^IQ*=4wJ z_r>0PIg0c?qS~HVgMUVRep@L1V-(TfcBi11He$V~m@@GFkI1mosuU>^^=P1T+0KE* zB2w%=`v8*+ht=dr4#Hz81@`*Kr`}hfnqWvJi0j&(w#`a=GW#Jr9SPL^`%7 z7<^(WUU;u3fEB}lTX{yfRW_*!!mZ@>Ld|MGW8+sQdQ;31+$=b&TgbHARb7UQ>kK(9 zs4Id(+jaqc7>QOf#qU+zaB*t}PLB#LvI2isIpKS~%)9=wFp|w-KqxQ2?zkr{Thqx+HHN>|Y7iz?#!O@!>iS1Ja7lf|_ILNwM(RaFf zED7JOo|bA$A?Zm69eVOTqaVCI?(fIrN9d@%UAy&lmtF2q@5Dr(i@xaia7<9=lM#kM zX%6W-&g&fc7=LrEbtKRrB7(Dhd_fp2MMS3=go{yNbD(8cObDM&<6e{G{pRl#-n2pkNa0R_!p?z5 zFKp&pm|%5VRq-VL5MMra?zuM4qow57^3>JqlSmNJ8+b1M-|^B)h5xL|NbA^KuEGtx z@FcmE;w%TnpAc5PNI6-(0!XD_WK3$gE-$wq61{N^vt4XwSCgW}m`vp6TSYE~zBidD zX;f(JAo;*}ayso~=HeVs6~w!$4Fp4aQvC^6HQC5uIfPN4`x(y`(b->vEEvhm z$OH2q_cz-7gj?ej&HXybDx1`Muq@$h>7}`eOmOv~?-il>U z&tbPRP*Y31N^llxLXB%{dN`X*i?>FeTi|=MkQZm=ci6hsAMt+b$hyQ%KW61v^4G6l z&?HnW;_bTR;RiLy1QO2-fOQ&FjIfP4fX@NJ)z3{qJuf>7|(KKuCDnG{gz{QTFE$;g#$ zpi^AagB6>Y%bT-g<)6V6f-&={Tupzks8fijHSj;gL~7*y_m~cS;EymaB4>tA`}sli zTX5nip;duAZlA!yL&h?=ODC^sq;rU%gqTAwu%WYLqEEJ!#qJwTd&8}U(o-}?h&unR zx9ML*hsB8*vJ57Re*-J&)vgisL`9q<8&-;c9x*T~5F^3W{p#G|tkS1HGae7R*WBHT zG}6b)$1^)9Y47e3%}Md1nMI*e3@~2wFXpvibX2w)h0-`TGboug*C#{l0uF%2>x}!X zrPY!z(d^wU&BP)KtM2MVAa>@ z$^ydJS+zMk1(N(|EX2p<1$u&lC=jS z?Ed_r-aP+u-8?1@9jaTd0p;+&`xu6>{r7!*29p_8ephHRd#~?HRoV)6m*;wI<#--` zJsq8#)cACMz*YftkHv|v-mcyV_JWV{9|t}K*>xJ~R=02Hbr5!eE*#hyoJ>LYXwk`a z8GA0(6g^(8%quFzN<}mmHBsd7Gv>KE5cabi+hj!!E(#72Zl>!Rjes}Dzr+4Q@qik0`%hU9 zt})6IS^pib�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 literal 0 HcmV?d00001 diff --git a/src/img/ReverseNoteType.png b/src/img/ReverseNoteType.png new file mode 100644 index 0000000000000000000000000000000000000000..318e722332429c44aae68dd4a6d2d83fbed38656 GIT binary patch literal 10639 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 +* Place the `.anki2` file in the newly created folder +* Rename the file to `collection.anki2` +* (If applicable) Temporarily log out of your AnkiWeb account: `Settings - AnkiDroid - AnkiWeb account` +* Open `Settings - Advanced - AnkiDroid Directory` and set the AnkiDroid Directory to the newly created folder. diff --git a/src/importing/importing-anki-files.md b/src/importing/importing-anki-files.md new file mode 100644 index 0000000..eeb9a4d --- /dev/null +++ b/src/importing/importing-anki-files.md @@ -0,0 +1,22 @@ +# Importing Anki Files + +You can import Anki files (with .apkg file format) directly into AnkiDroid. Other file formats cannot be imported directly into AnkiDroid, however flashcards from most other applications can be imported into Anki Desktop on your computer, which can then be [added into AnkiDroid in the usual way](../anki-desktop.md). +See the [importing section of the Anki Desktop manual](https://docs.ankiweb.net/importing.html) for help on importing into Anki Desktop. + +As in Anki Desktop, AnkiDroid distinguishes between [the two types of .apkg files](https://docs.ankiweb.net/exporting.html) (**collection package** and **deck package**) based on the filename. Collection packages have the name **collection.colpkg**, and when imported will completely _replace all contents_ in AnkiDroid. Any apkg file which is **_not_** named something that ends in **.colpkg** will be treated as a deck package, which will be _merged with any existing content_ when imported into to AnkiDroid. + +You can import .apkg Anki collection files into AnkiDroid either by opening them using the standard Android system, or by manually importing them from within AnkiDroid: + +## Open the file using Android +Apkg files are automatically associated with AnkiDroid, so for example if you open a .apkg email attachment which you sent to yourself, then AnkiDroid will automatically open the file and confirm if you want to import it. Simply click OK and the apkg file will be imported. + +## Import the file manually in AnkiDroid +You can also manually import .apkg files as follows: + + * Connect your device to your computer using USB + * Copy the .apkg from your computer to the AnkiDroid folder on your device + * Open AnkiDroid on your device + * From the main menu in the deck list, choose *Import* + * Choose the apkg file you just copied to your device when prompted + * Tap OK + \ No newline at end of file diff --git a/src/intro.md b/src/intro.md new file mode 100644 index 0000000..585c33b --- /dev/null +++ b/src/intro.md @@ -0,0 +1,9 @@ +# Introduction + +Thank you for using AnkiDroid, the Android client for the popular [Anki](http://ankisrs.net) spaced repetition system. + +Anki is spaced repetition technique which is simple but highly effective. It helps you memorize things by automatically repeating them across increasing intervals based on your responses with no need for you to keep track of what to study or when to study it. You create notes (or download shared decks) with content you need to memorize, and the scheduler will make sure you see the content when you need to. + +AnkiDroid is intended to be used in conjunction with Anki on your computer. While it is possible to function without it, some tasks are either only possible with, or a lot more efficient with Anki Desktop. Furthermore, it is **strongly recommended** to at least read [`Key Concepts`](https://docs.ankiweb.net/getting-started.html#key-concepts) section of the main Anki manual to understand the terminology used here. + +If this manual doesn't contain what you are looking for, please check the [AnkiDroid Wiki](https://github.com/ankidroid/Anki-Android/wiki) for a list of changes, instructions for submitting bug reports and feature requests, a list of frequently asked questions, and much more. diff --git a/src/keyboard-shortcuts.md b/src/keyboard-shortcuts.md new file mode 100644 index 0000000..0174e74 --- /dev/null +++ b/src/keyboard-shortcuts.md @@ -0,0 +1,66 @@ +# Keyboard Shortcuts + +## Home Screen + +|Shortcut|Purpose| +|-----|-----| +|A|Add Note| +|B|Card Browser| +|Y|Sync| + +## Reviewer + +|Shortcut|Purpose| +|-----|-----| +|1,2,3,4|Press the nth answer button| +|Gamepad Y|Flip Card/Press the first answer button| +|Gamepad X|Flip Card/Press the second answer button| +|Gamepad B|Flip Card/Press the third answer button| +|Gamepad A|Flip Card/Press the fourth answer button| +|Space,Enter|Flip Card/Answer Good| +|e|Edit Note| +|*|Mark Note| +|-|Bury Card| +|=|Bury Note| +|@|Suspend Card| +|!|Suspend Note| +|r,F5|Replay Media| +|z|Undo + +## Note Editor + +|Shortcut |Purpose +|-----|-----| +|Ctrl+Enter|Save Note| +|D|Select Deck| +|L|Card Template Editor| +|N|Select Note Type| +|T|Edit Tags| +|Ctrl+P|Preview Note| +|Ctrl+B|Bold| +|Ctrl+I|Italic| +|Ctrl+U|Underline| +|Ctrl+R|Insert Horizontal Rule| +|Ctrl+H|Insert Title| +|Ctrl+F|Change Font Size| +|Ctrl+M|Insert MathJax Equation| +|Ctrl+Shift+C|Insert New Cloze Deletion| +|Ctrl+Alt+Shift+C|Insert Cloze Deletion using existing number| +|Ctrl+1..0|Insert User-Defined HTML| + +## Card Browser + +|Shortcut |Purpose| +|-----|-----| +|Ctrl+A|Select All| +|Ctrl+E|Edit Note| +|Ctrl+D|Change Deck| +|Ctrl+K|Mark Note| +|Ctrl+Alt+R|Reschedule| + + +## Card Template Editor + +|Shortcut |Purpose| +|-----|-----| +|Ctrl+P|Preview Changed| diff --git a/src/note-formatting-toolbar.md b/src/note-formatting-toolbar.md new file mode 100644 index 0000000..69643c6 --- /dev/null +++ b/src/note-formatting-toolbar.md @@ -0,0 +1,7 @@ +# Note Formatting Toolbar + +The note formatting toolbar contains basic text formatting buttons (Bold, Italic, Underline, Horizontal Line, Insert Title, Change Font Size, [Insert MathJax](advanced-features/mathjax.md) and Insert Cloze Deletion). + +It also allows the addition of user-defined toolbar buttons using HTML. HTML is a powerful language allowing nearly endless customization of your cards. [Our wiki](https://github.com/ankidroid/Anki-Android/wiki/Note-Editor-Toolbar-HTML-Samples) contains common code samples to get you started. + +A user-defined toolbar button can be removed by long pressing the button and selecting **Delete**. diff --git a/src/reviewer.md b/src/reviewer.md new file mode 100644 index 0000000..f634e0d --- /dev/null +++ b/src/reviewer.md @@ -0,0 +1,55 @@ +# Study Screen + +Tapping on the deck name from the deck list, or the study button from the deck overview screen will take you to the study screen where you do your study. + +![reviewer.png](img/4-reviewer.png) + +## Basics +If you have not used Anki on a computer before, you may like to have a look at the first [intro video](https://docs.ankiweb.net/getting-started.html#videos) before reading on, as it explains the basic review process. + +On the top left of the screen you'll see three numbers. From the left, these correspond to new cards, learning cards, and cards to review. These are explained in more detail in the intro videos for the desktop program, so please [check them out](https://docs.ankiweb.net/getting-started.html#videos) if you haven't already. + +When you've looked at a card's question and remembered the answer, or decided you don't know it, tap the **show answer** button. When you do, the bottom area will change to display 2-4 answer buttons, depending on how you've answered the card previously. The buttons will display the time a card will next be shown, so 10m means **10 minutes** and **5d** means **5 days**. You can tap directly on these buttons to choose a particular answer. + +To make reviewing faster, you can configure gestures (for example taps and swipes) to answer cards without using the buttons. See the [preferences section](settings.md) for more information on configuring gestures. + +## App Bar +The App Bar at the top of the study screen has several buttons for performing various common actions. The number of buttons which are shown is determined automatically by Android based on the size and resolution of your screen. If there is not enough space to show the button for a given action, then the action will be available from the menu instead. If you are unsure what a button does, you can long-tap on it to see the name of the action. The following action are available: + +#### Undo +Undo the answer you chose for the last card you studied (button always shown). + +#### Mark Card +Adds a **marked** tag to the current note, so it can be easily found in the browser. +This is useful when you want to take some action on the note at a later date, such as looking up a word when you get home. Marked cards also show a small star in the upper-right-hand corner during reviews. + +#### Flag Card +Adds a color coded **flag** (red, orange, green, or blue) +This can be used as a general purpose indicator to differentiate your cards. Flags are represented by a number from 1-4, corresponding to the previously listed colors. + +#### Edit Card +Open the edit note screen, where you can change the content displayed on the flashcard (see the [editing notes section](editing-notes.md) for more help) + +#### Hide / Delete +Give options to bury, suspend, or delete the current note or card + +- **Bury card / Bury note:** Hides a card or all of the note’s cards from review until the next day. (If you want to unbury cards before then, you can choose “unbury” from the long-press menu in the [deck list](deck-picker.md), or from the [deck overview screen](deck-overview.md).) This is useful if you cannot answer the card at the moment or you want to come back to it another time. Burying can also happen automatically for cards of the same note. If cards were in learning when they are buried, they are moved back to the new card queue or review queue prior to being buried. +- **Suspend card / Suspend note:** Hides a card or all of the note’s cards from review until they are manually unsuspended (by long-tapping a card in the [card browser](browser.md)). This is useful if you want to avoid reviewing the note for some time, but don’t want to delete it. If cards were in learning when they are suspended, they are moved back to the new card queue or review queue prior to being suspended. +- **Delete note:** Deletes the note and all of its cards. + +#### Replay Audio +If the card has audio on the front or back, it will be played again. + +#### Enable / Disable Whiteboard +This action enables or disables the whiteboard feature for the current deck. The whiteboard feature allows you to draw on the screen, which is particularly useful for practicing drawing characters from languages such as Japanese. When the whiteboard has been enabled for the current deck, two new actions will become available for clearing and hiding the whiteboard. Disabling the whiteboard will hide these actions as well as the whiteboard itself. + +#### Deck options +Open the deck specific study options. See the [desktop documentation](https://docs.ankiweb.net/deck-options.html) for more information about these study options. + +#### Check Pronunciation +This action enables or disables the temporary audio recorder toolbar at the top of the card. This feature allows you to record your voice and replay it. It is used primarily to check your pronunciation. This toolbar is composed of three buttons: play, stop playing and record microphone audio. This tool can be used while viewing either the question or the answer. + +## Reaching the end of the study session +When you've finished the cards that are due to be studied today, you'll be taken back to the decks list and shown a congratulations message. From here you can select a different deck, or if you've finished studying for the day, you can simply tap the home button in order to close AnkiDroid (and you can also do this in the middle of reviews if you wish). + +If you wish to keep studying the same deck further, tap on the deck again which will give you several options for continued study. Please see the [filtered deck](filtered-deck.md) section for more on custom study. diff --git a/src/rtl.md b/src/rtl.md new file mode 100644 index 0000000..84402a2 --- /dev/null +++ b/src/rtl.md @@ -0,0 +1,15 @@ +# Using Right-To-Left Languages with AnkiDroid + +Anki and AnkiDroid have full support for RTL languages such as Arabic, Hebrew, and Persian. + +## Editing Fields as RTL +Fields can be marked as RTL (currently possible only from Anki Desktop) for RTL editing. When a field is marked as RTL, then the text is right-aligned in editing fields and punctuation is correctly displayed at the end (left) of sentences. Text that contains blocks of LTR characters will be properly displayed as well, with the beginning of the sentence appearing to the right of the LTR block and the end of the sentence being displayed to the left of the LTR block. + +Directionality is especially important for editing and creating RTL cloze deletions as the cloze format includes both neutral and LTR markup characters. Therefore it is recommended to use a separate note type for LTR cloze deletions and RTL cloze deletions. + +## Displaying Fields as RTL during study +To display a field as RTL, with proper right-alignment and directionality (punctuation at left of sentences, proper flow around LTR blocks), the field should be wrapped in a div or span element with the RTL directionality specified: + +```html +
+``` \ No newline at end of file diff --git a/src/settings.md b/src/settings.md new file mode 100644 index 0000000..83689d2 --- /dev/null +++ b/src/settings.md @@ -0,0 +1,126 @@ +# Preferences + + + +The preferences screen can be accessed by opening the navigation drawer, and choosing **Settings**. It allows you to customize various application settings and how AnkiDroid appears. + +The Preferences screen is divided up into different sections, which are covered below. + +## AnkiDroid +These are the general settings which affect the whole app: + +#### AnkiWeb account +Change the account used for syncing with the cloud. For more information on syncing, please see [this section](anki-desktop.md). + +#### Fetch media on sync +By default, AnkiDroid will sync sounds and images as well as your cards and review history. +If you disable this option, sounds and images will not be downloaded from or uploaded to the sync server by AnkiDroid. + +#### Automatic synchronization +Enable this option if you want AnkiDroid to sync every time you open and close the app. There is a limit of once every ten minutes for this behavior. Once a sync begins you can cancel it by pressing your device's back button, however it can take some time for the cancellation to take effect. + +Users that want more fine-grained control over when sync occurred might like to use a 3rd party app like Tasker to automate synchronization. See the
API documentation for more information on this. + +#### Deck for new cards +The default of **Use current deck** means that Anki saves the last-used note type for each deck and selects it again then next time you choose the deck (and, in addition, will start with the current deck selected when choosing Add from anywhere). The other option, **Decide by note type,** saves the last-used deck for each note type (and opens the add window to the last-used note type when you choose Add). This may be more convenient if you always use a single note type for each deck. + +#### Language +Change the language. Note: AnkiDroid translations are contributed by volunteers. If you find missing or incorrect translations, feel free to contribute to the translation project. More details can be found on the AnkiDroid Wiki. + +#### Error reporting mode +Control whether or not AnkiDroid asks your permission before sending error reports to our error reporting system when AnkiDroid crashes. You can also disable the reporting feature entirely if you wish. + +## Notifications +This subsection allows you configure when and how AnkiDroid shows alerts in the Android notification bar. + +#### Notify when +**Never notify** will disable all notifications from AnkiDroid. **Pending messages available** will only show important status updates like when a sync completed. **More than n cards due** will show a notification when you have more than n cards due (requires the widget to be enabled). + +#### Vibrate +Checking this will make your device vibrate when showing a notification + +#### Blink light +Checking this will make your device light blink when an unread notification exists (if your device has a notification LED) + + +## Reviewing + +The reviewing screen allows you to customize how AnkiDroid behaves when you're +reviewing cards. Note that only the reviewing settings which are applied to **all decks** are shown here. There are more settings related to reviewing which are **deck specific**. These deck specific settings are located in **Deck options**. + +#### New card position +Controls when new cards are shown: either mixed with, after, or before all reviews. + +#### Start of next day +Controls when AnkiDroid should start showing the next day's cards. +The default setting of 4AM ensures that if you're studying around midnight, you won't have two days worth of cards shown to you in one session. If you stay up very late or wake up very early, you may want to adjust this to a time you're usually sleeping. + +#### Learn ahead limit +The Learn ahead limit tells AnkiDroid how to behave when there is nothing left to study in the current deck but cards in learning. The default setting of 20 minutes tells AnkiDroid that cards should be shown early if they are due to be shown in less than 20 minutes and there's nothing else to do. If you set this to 0, Anki will always wait the full period, showing the congratulations screen until the remaining cards are ready to be reviewed. + +#### Timebox limit +Timeboxing is a technique to help you focus by dividing a longer activity (such as a 30 minute study session) into smaller blocks. If you set the timebox time limit to a non-zero number of minutes, AnkiDroid will periodically show a message saying you how many cards you've managed to study during the prescribed time limit. + +## Display +This subsection relates to the way cards are displayed during reviewing + +#### Keep screen on +Ignore the automatic screen timeout setting in Android to always keep the screen on. + +#### Fullscreen mode +Switches to an immersive fullscreen mode so that you can use more of the screen. You can choose between **Hide the system bars** which will hide the system status bar, action bar, and bottom navigation buttons. Alternatively you can choose **Hide the system bars and answer buttons**, which will hide everything except for the actual card content itself. You can temporarily exit fullscreen mode by swiping inwards (i.e. down or up) from the system bars. + +_Note that immersive fullscreen mode is only supported on Android 4.4+_ + +#### Center align +By default AnkiDroid tries to show cards exactly as they are shown on Anki Desktop, however if you prefer your cards to be center aligned vertically in AnkiDroid then you can enable this feature. + +#### Show button time +By default, the answer buttons will display the time a card will next be shown. If you disable this option, the times will not appear, and only labels like **Again**, **Good** and **Easy** will be shown. + +#### Card zoom +Here you can increase the zoom level of the card content (excluding images). You can use this option if you want to increase the font size for all cards. + +#### Image zoom +Here you can increase the zoom level of any images embedded in your cards. + +#### Answer button size +If you find it difficult to press the answer button, you can use this setting to make it bigger. + +#### Show remaining +Disabling this allows you to hide the card count in the top left of the screen. + +## Whiteboard +This subsection controls the whiteboard in the reviewer. +Note: the whiteboard must be enabled in each deck individually from the menu in the study screen. + +#### Stroke width +Control the stroke width of the whiteboard. Reducing the stroke width may allow you to draw with more detail. + +#### Black strokes +Use black strokes instead of color, which may reduce memory usage. Note: this setting doesn't apply when night mode is enabled. + +## Automatic display answer +The automatic display answer feature allows you to have the answer shown automatically after some timeout period. You can also have the next question shown automatically; in this case the card is assumed to be failed (i.e. the again button is automatically chosen) + +#### Time to show answer +Time to wait until answer is automatically shown + +#### Time to show next question +Time to wait until next question is automatically shown. + +## Fonts +In this screen you can change the font used by AnkiDroid, and some scaling options related to fonts. +See the [custom fonts](advanced-features/custom-fonts.md) section for more information about using custom fonts. + +#### Default font +Choose the default font used by the AnkiDroid reviewer. You can add fonts to this list by copying them to the **fonts** folder. + +#### Default font applicability +The default setting is to only use the default font when no font has been specified in the card styling via Anki Desktop, however you can also force the default font to be applied, ignoring any font specification in the card styling. + +#### Browser and editor font +The font to be used by the browser and editor + +#### Card browser font scaling +Lets you change the font size used in the card browser. From d1f10234724cb8f9e9768a6ae08f94403062f7ba Mon Sep 17 00:00:00 2001 From: krmanik <12841290+krmanik@users.noreply.github.com> Date: Sat, 4 Jun 2022 04:26:29 +0800 Subject: [PATCH 2/2] add changelog --- src/SUMMARY.md | 10 +- src/changelog/intro.md | 9 + src/changelog/v0.1-to-1.1.3.md | 5 + src/changelog/v2.0-to-2.5.md | 204 ++++++++++++++++++++++ src/changelog/v2.11.0-to-2.12.0.md | 79 +++++++++ src/changelog/v2.13.0-to-2.13.5.md | 84 +++++++++ src/changelog/v2.14.0-to-2.14.6.md | 91 ++++++++++ src/changelog/v2.15.0-to-2.15.6.md | 83 +++++++++ src/changelog/v2.6-to-2.10.md | 264 +++++++++++++++++++++++++++++ 9 files changed, 828 insertions(+), 1 deletion(-) create mode 100644 src/changelog/intro.md create mode 100644 src/changelog/v0.1-to-1.1.3.md create mode 100644 src/changelog/v2.0-to-2.5.md create mode 100644 src/changelog/v2.11.0-to-2.12.0.md create mode 100644 src/changelog/v2.13.0-to-2.13.5.md create mode 100644 src/changelog/v2.14.0-to-2.14.6.md create mode 100644 src/changelog/v2.15.0-to-2.15.6.md create mode 100644 src/changelog/v2.6-to-2.10.md diff --git a/src/SUMMARY.md b/src/SUMMARY.md index adfc664..d55e40e 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -51,4 +51,12 @@ - [Help & Supports](help.md) - [Beta testing](beta-testing.md) -- [Contributing to AnkiDroid](contributing.md) \ No newline at end of file +- [Contributing to AnkiDroid](contributing.md) +- [Changelog](changelog/intro.md) + - [Version 2.15](changelog/v2.15.0-to-2.15.6.md) + - [Version 2.14](changelog/v2.14.0-to-2.14.6.md) + - [Version 2.13](changelog/v2.13.0-to-2.13.5.md) + - [Version 2.11 to 2.12](changelog/v2.11.0-to-2.12.0.md) + - [Version 2.6 to 2.10](changelog/v2.6-to-2.10.md) + - [Version 2.0 to 2.5](changelog/v2.0-to-2.5.md) + - [Version 0.1 to 1.1.3](changelog/v0.1-to-1.1.3.md) \ No newline at end of file diff --git a/src/changelog/intro.md b/src/changelog/intro.md new file mode 100644 index 0000000..9f6404e --- /dev/null +++ b/src/changelog/intro.md @@ -0,0 +1,9 @@ +# AnkiDroid Changelog + +- [Version 2.15](v2.15.0-to-2.15.6.md) +- [Version 2.14](v2.14.0-to-2.14.6.md) +- [Version 2.13](v2.13.0-to-2.13.5.md) +- [Version 2.11 to 2.12](v2.11.0-to-2.12.0.md) +- [Version 2.6 to 2.10](v2.6-to-2.10.md) +- [Version 2.0 to 2.5](v2.0-to-2.5.md) +- [Version 0.1 to 1.1.3](v0.1-to-1.1.3.md) \ No newline at end of file diff --git a/src/changelog/v0.1-to-1.1.3.md b/src/changelog/v0.1-to-1.1.3.md new file mode 100644 index 0000000..653f93b --- /dev/null +++ b/src/changelog/v0.1-to-1.1.3.md @@ -0,0 +1,5 @@ +## Version 0.1 to 1.1.3 +AnkiDroid has continuously evolved collectively as an open source project, with the first version released to the Google Market on [June 28 2009](http://nicolas-raoul.blogspot.jp/2009/06/just-published-ankidroid-on-market.html). + +Version 1.1.3 was the last 1.x version (released on 26th June 2012), before the incompatible AnkiDroid v2.0 was released, +essentially rewritten from scratch to be compatible with the new Anki Desktop v2.0. diff --git a/src/changelog/v2.0-to-2.5.md b/src/changelog/v2.0-to-2.5.md new file mode 100644 index 0000000..ee9d05a --- /dev/null +++ b/src/changelog/v2.0-to-2.5.md @@ -0,0 +1,204 @@ +## Version 2.5.4 (2015-12-14) +* Fix background color in overflow menu of deck picker + +## Version 2.5.3 (2015-12-14) +* Fix floating action button (blue +) interfering with deck list on Android 2.3 +* Fix opening apkg files from Gmail +* Fix automatic playback of consecutive videos +* Add a new launch screen +* Improve behaviour surrounding the deck overview screen +* Multiple media files can now be added to one field in the note editor +* Don't include unused media files on export +* Undo behaviour is now consistent with the desktop client (can no longer undo note edits) +* Enhancements to sync canceling +* Minor performance enhancements, crash fixes, and UI tweaks + +## Version 2.5.2 (2015-12-04) +* Fix start-up crashes on Samsung devices running Android 4.2 +* Fix crash for new users on Android 6.0 +* Reverted to old typing method. The new method is now an option which is off by default. +* You can now click on the numbers in the right-most part of the deck list to open the deck overview screen +* Various fixes to transition animations and progress bars +* Add option to remove empty cards (previously only possible on desktop) +* Remove: Google Translate filter. In practice, this feature had no effect and is not required +* Remove: Google image search for multimedia card. The image search API has been discontinued by Google and no longer works + +## Version 2.5.1 (2015-12-01) +* Fix crash when loading deck list (could not open collection bug) +* Fix visible progress bar showing when answering card + +## Version 2.5 (2015-11-30) +* Redesign of user interface to use material design +* Add new dark theme +* Simplify the study process by bypassing deck overview screen +* Add ability to add, edit, delete note types +* Add setting to enable auto-sync and a Tasker intent to trigger sync +* Replace "instant add" feature with new API for 3rd party apps to add cards directly to AnkiDroid +* "Type in the answer" input box now built into the card html itself +* Make fullscreen-mode immersive and added setting to hide answer buttons when using gestures +* Add css class for customizing card background color when night mode is enabled +* Allow changing media volume from the deck picker +* Add ability to save and view common searches in the card browser +* Browser now shows full question and answer in the results by default +* Only show tags relevant to that deck when doing custom study by tag +* Fix some bugs in the widget +* Remove "simple interface" +* Remove support for Android version 2.1 and 2.2 (minimum is now 2.3.3) +* Add support for Android 6 Marshmallow +* Disable write-ahead-logging in sqlite database +* Many other bug fixes and small improvements + +## Version 2.4.4 (2015-10-20) +* Fix playback of sound files with apostrophes in file name +* Fix new card siblings not being buried for the same day +* Fix media on cards when using the Hebrew Fix option +* Fix crashes related to "Relative overdueness" and make this sort order available on AnkiDroid +* When mixing new and review cards, make their rotation more consistent with desktop + +## Version 2.4.3 (2015-04-21) +* Fix "unknown field" bug +* Fix crash showing welcome screen on Android 2.3 +* Fix crash caused by widget +* Fix rare crash in browser +* Fix a couple of sync issues +* Fix crash starting AnkiDroid on a small number of devices +* Update translations + +## Version 2.4.2 (2015-03-18) +* Fix some bugs with cloze templates +* Fix a translation error + +## Version 2.4.1 (2015-03-15) +* Fix some bugs with filtered decks +* Improve importing of shared decks +* Open settings if AnkiDroid dir inaccesible +* Fix a bug with zooming +* Fix a bug where old card was still shown in reviewer after changing deck +* Fix some issues with cloze deletion +* Fix various crashes +* Update translations + +## Version 2.4 (2015-01-28) + * Move "preview" feature to browser + * Add ability to change note type of existing flashcards + * Add ability to view and delete card templates + * Fix TTS for most devices + * Support playback of videos (see supported formats [here](http://developer.android.com/guide/appendix/media-formats.html)) + * Improve rendering of second column in browser + * Improve detection of swipe gestures + * Increase number of languages in Glosbe translator + * Add support for Chromebooks + * New crash report system + * Bug fixes + +## Version 2.3.2 (2014-11-06) + * Bug fixes: Sync, TTS, Remote images, Advanced editor, Export + * Note: This is the last version of AnkiDroid supported by AnkiWeb. Previous versions will not sync. + +## Version 2.3 (2014-10-27) + * Add new user manual + * Make statistics identical to Anki Desktop + * Fixes to media sync + * Fix bug where images were not showing + * Change layout of note editor + * Add new disable whiteboard option to reviewer and update icons + * Add full support for APKG export and import + * Add feature to email exported APKG + * Increase default number of backups and use APKG + * Make preview card accessible from card browser + * Make shared decks download with Android browser + * Add reset and reschedule feature in note editor + * Add a new notification system and icon + * Replace tutorial deck with new welcome screen + * Disable opening navigation drawer from reviewer when swipe is used + * Improve audio recording quality + * Support sticky fields when enabled in Anki Desktop + * Many other bug fixes + +## Version 2.2.3 (2014-08-04) + * New media sync protocol + * Fix 2 bugs for opening links and resuming the app + +## Version 2.2 (2014-07-21) + * Redesign layout + * Add pictures and sounds to flashcards (experimental) + * Make second column in card browser configurable + * Make images on flashcards zoomable + * Improve preview feature and access via action bar + * Simplify menus and settings + * Make slow searches in card browser cancellable + * Improve adding/removing tags + * Fix "type in the answer" and cloze deletion features + * Fix whiteboard feature + * Restore backups from within the app + * Make volume duck on any background music when sounds played + * Make playing of sounds consistent with Desktop version + * Remove animations feature due to being buggy + * Improve speed of showing cards + * Remove duplicate check dialog when adding new flashcards + * Remove swap button when adding or editing flashcards + * Remove kanji info feature (will become optional plugin in the future) + * Make minimum Android version 2.1 + * Fix lots of bugs + +## Version 2.1.3 (2014-04-05) + * Create new notes in correct deck + * TTS fixes + +## Version 2.1 (2014-03-27) + * Lots of Bug Fixes + * New custom study option with improved tag selection + * New preview card feature in note editor (experimental) + * New override font preference in addition to default font + * New "Kanji Info" feature (enabled in preferences->reviewing->Kanji Info) + * Improve Aedict integration + * Support for Samsung Multi-Window + * Fix Some TTS Issues + * Updated Translations + * Remove unused media check when deleting decks + * Significantly increase speed for reducing filtered decks + * Remove upgrade wizard + +## Version 2.0.4 (2014-02-03) + * Fix issue with typing answers + * Default font now overrides card font + * Fixed audio playback image being covered by text on Android 2.3 + * Fixed reviewer crash when language set to Romanian + * Translation fixes + +## Version 2.0.2 (2013-12-15) + * Fixed lots of crashes + * Tablet UI fixes + * Fixed new card ordering issues + * Card appearance now matches desktop Anki. (Centering cards is off by default but can be re-enabled) + * Option groups can now be changed in AnkiDroid + * Clear error message when using a bad template + * Fixed timeboxing notifications + * Properly scale images + * Better custom font handling + * More settings (next day starts at, timeboxing value, etc.) + * Changing AnkiDroid interface language now works. + * Fixed import/shared deck download issues ("not a valid apkg file") + * Fixed invisible text on Motorola devices + * Focus on answer when revealed + * Filtered decks are now blue in deck list + * Removed unused circle button in note editor + +## Version 2.0.1 (2013-02-06) + * Upgrade wizard + * Fix importing apkgs + * Fix media syncing + +## Version 2.0 (2013-01-03) + * complete revision + * libanki2.0 scheduling + * new learning mode + * new layout + * merge syncing possible now + * better statistics + * decks are now saved in a single collection + * options are shareable now + * tablet layout + * tons of performance improvements + * card import function + * collection can be saved on internal memory diff --git a/src/changelog/v2.11.0-to-2.12.0.md b/src/changelog/v2.11.0-to-2.12.0.md new file mode 100644 index 0000000..bcdac35 --- /dev/null +++ b/src/changelog/v2.11.0-to-2.12.0.md @@ -0,0 +1,79 @@ +## Version 2.12.1 (2020-07-21) +* Fix bug previewing edited notes after changing field count +* Fix crash previewing edited notes from dynamic decks +* Fix crash restarting app after a crash +* [Full Changelog here](https://github.com/ankidroid/Anki-Android/milestone/28?closed=1) + +## Version 2.12.0 (2020-07-18) +* Add Crop image feature +* Add Preview in note editor +* Add edit tags in reviewer +* Add volume buttons as gestures +* Add whiteboard pen color +* Add microphone tool bar in reviewer +* Add javascript API (check the Wiki!) +* Improve: app is 3MB smaller +* Fix: show whole tag in tags dialog +* Fix copy note copies tags too +* Fix data corruption canceling template edits +* performance and bug fixes everywhere! + +11 volunteers made hundreds of individual changes this release + +[Full Changelog here](https://github.com/ankidroid/Anki-Android/milestone/18?closed=1) + +## Version 2.11.3 (2020-06-17) +* Fix out-of-memory errors when importing very large decks +* Fix incorrect out-of-space message on import in Android 4 +* Fix crash if card viewer closed quickly after view +* Fix unzip fail on .apkg files >2GB +* Fix crash on edit note in browser multi-select + +## Version 2.11.2 (2020-06-10) +* Add santali language +* Fix Hebrew, Indonesian, Tagalog languages +* Improve error reporting around apkg import failures +* [Full Changelog here](https://github.com/ankidroid/Anki-Android/milestone/24?closed=1) + +## Version 2.11.1 (2020-06-08) +* Fix crash in Card Browser multi-select mode +* Fix Custom Steps interval dialog space entry issue +* Fix flags don't export with deck +* Fix AnkiDroid API doesn't handle null model id (Anki Compatibility workaround) +* Fix translation crash in sync dialog in Azerbaijani +* [Full Changelog here](https://github.com/ankidroid/Anki-Android/milestone/23?closed=1) + +## Version 2.11.0 (2020-06-05) +* Android minimum supported version is now 4.1 / Jelly Bean / API16 (AnkiWeb Compatibility) +* Change sibling burying should default to off (Anki Compatibility) +* Change learn cards do not go in filtered decks in v1 sched (Anki Compatibility) +* Add Browser Appearance screen, to edit Card Browser render format (Anki Compatibility) +* Add guidance in Note Editor if no cards will be generated despite full fields +* Add all translations from our crowdin.com translation site +* Add ability to decrease daily limit in custom study (Anki Compatibility) +* Add ability to block gesture handling when tapping hints in Reviewer +* Add create subdeck option in deck list long-press context menu +* Add edit note action in Card Browser multi-select mode +* Add ability to turn off 'Card Browser' system text context menu item +* Add nightMode CSS selector for card HTML (Anki Compatibility) +* Add ability to change just the case of a deck name +* Add page-up/page-down gestures +* Improve gesture handling in full-screen / immersive mode +* Improve handling of cloze deletion in TTS mode +* Improve Card Browser search from Android text selection menu +* Improve Card Browser with default hide of media filenames +* Improve Reviewer auto-advance by waiting for TTS to finish +* Improve transparent SVG display in night mode with white background +* Improve anki package import handling +* Improve AnkiWeb login form enter button handling +* Improve hardware back button handling in restore from backup +* Improve Reviewer display of un-rendered LaTeX +* Improve TTS / auto-answer combination, wait for TTS before advance +* Workaround Firefox open downloaded deck bug +* Workaround crash on Samsung devices with >500 deck reminders +* Fix card template editor mistakenly allowing add template on cloze type +* Fix language change preference +* Fix ability to unbury a deck in deck list +* Fix app bar item flicker during review +* Fix V2 scheduler learning card count after undo +* [Full Changelog here](https://github.com/ankidroid/Anki-Android/milestone/13?closed=1) diff --git a/src/changelog/v2.13.0-to-2.13.5.md b/src/changelog/v2.13.0-to-2.13.5.md new file mode 100644 index 0000000..198f061 --- /dev/null +++ b/src/changelog/v2.13.0-to-2.13.5.md @@ -0,0 +1,84 @@ +## Version 2.13.5 (2020-10-03) +* Fix performance for fast (<1s) answers in review +* Add links to new Arabic help/manual translation +* Add back button handling to changelog display +* Add rate button to changelog +* Add warning message to handle future db upgrades +* Sync all translations from our volunteer translators (thanks everyone!) + +## Version 2.13.4 (2020-09-29) +* Fix crash showing TagsDialog +* Fix crash in gesture detection +* Improve import interrupted error message +* Fix scheduler counts after undo +* Fix Card Browser preview after sort +* Fix button display if answer animation incomplete +* Sync all translations + +## Version 2.13.3 (2020-09-23) +* Fix double-clicking answer buttons skipping cards +* Change missing media warning to twice-per-session not twice-per-deck +* Change answer button fade on open +* Updated all translations from volunteer crowdin.com site up to 20200923 + +## Version 2.13.2 (2020-09-19) +* Fix Crash rare on Card Browser exit +* Fix Crash Android 4.4 +* Fix Open Deck failures / improve related messaging +* Fix messaging for Xioami cloze workaround +* Move "set field language" after share on Note Editor context menu + +## Version 2.13.1 (2020-09-17) +* Add cloze via clipboard paste workaround on MIUI/Xiaomi devices +* Fix Navigation drawer respects safe display / disable animations preference +* Fix Reviewer buttons respect safe display / disable animations preference +* Fix Deck Picker bottom bar opacity +* Fix Error message about missing content on cards +* Fix crash selecting deck that disappears during sync + +## Version 2.13.0 (2020-09-15) +* Field tag (such as "{{Front}}") appearing in a note's field will be shown as-is in cards. +* Add Sync icon badge when changes are pending sync (can be disabled in options) +* Add Edit Note from card Preview while in Card Browser +* Add "Anki Card" to system context menu (like "Card Browser") - disabled by default +* Add Set keyboard language for specific fields in the note editor (example: one field Japanese, other field Portuguese for input). +* Add Keep keyboard open after adding a note +* Add Card properties available in JavaScript API +* Add JavaScript API versioning for scripts (basis for future plugins) +* Add Auto-Login when selecting saved user account +* Add Allow import of collection.anki21 files when under SchedV1 +* Add New screen for first-time users +* Add Button animations when answering cards +* Add Note Editor: Add shortcuts Ctrl+(Alt)+Shift+C to add a cloze. +* Fix Some cards in learning were not shown at the right time (Only if you undo/bury/suspend/reset/reschedule and the next card goes to learning mode) +* Fix Selected deck has translucent background if a deck picker background is set +* Fix Improved preview screens +* Fix Better accessibility in Deck Browser for partially sighted users +* Fix Improve visibility of "Add/Remove Option Group" +* Fix Improved messages for sync rate limiting error +* Fix Improved messages for reducing study limits +* Fix Improved messaging when collection is missing media +* Fix Improve feedback when accessing Debug Info +* Fix Add additional warnings to reschedule dialog +* Fix Whiteboard pen color can be disabled by pressing icon again +* Fix Ensure all menu items in the reviewer can be customized by "App Bar Buttons" setting +* Fix Scheduler discrepancy handling early interval on filtered decks +* Fix Exports work when cards are missing media +* Fix Crash due to logging. +* Fix Toasts used to show one more card than the number of card actually reviewed during the time box +* Fix Handle newlines properly in Note Editor Preview +* Fix Improve AnkiDroid opening animation +* Fix Show correct answer button when answering via Keyboard +* Fix "New Cards Added" Statistic +* Fix Crash when inserting a cloze when selecting text from right-to-left via keyboard +* Fix "Show Password" icon revealing saved password +* Fix Card browser still contains card after the app goes into background +* Fix Daily unbury occurs during sync if necessary +* Fix On big screen, buttons moved during loading +* Translators If some text change because of minor changes (typos) you won't have to translate it again +* Performance improvements (specifically: initial loading of large collection (lot of decks, note type, card type, fields, long templates...), card browser, deck picker startup, next card view, undo, cancelling tasks such as computing a list of card in browser) +* Dev: Massive dev workflow improvements and automated checks for our translations. +* Dev: Implement backend for CSV Importer +* Dev: Improve crash reporting on app startup +* Dev: Massive improvement in testing, especially around scheduler / card queue behavior +* [Full Changelog here](https://github.com/ankidroid/Anki-Android/milestone/27?closed=1) diff --git a/src/changelog/v2.14.0-to-2.14.6.md b/src/changelog/v2.14.0-to-2.14.6.md new file mode 100644 index 0000000..9d25556 --- /dev/null +++ b/src/changelog/v2.14.0-to-2.14.6.md @@ -0,0 +1,91 @@ +## Version 2.14.6 (20210309) +* Reviewer: fix "my card is blank now with 2.14.5! help!" 😱 +* Reviewer: fix Android 8/8.1 review buttons disappear (finally?) + +## Version 2.14.5 (20210307) +* We really appreciate the [donations](https://opencollective.com/ankidroid), they paid for these fixes 🤝 +* NoteEditor: Android 11 users can crop! +* NoteEditor: Canceling crop twice won't delete your image +* DeckList: parent limits altered to match Desktop +* DeckList: current deck saved as correct type +* SchedulerV2: allow very small delays +* KNOWN ISSUE: [Android 8/8.1 answer buttons disappear](https://github.com/ankidroid/Anki-Android/issues/7369). Use gestures as workaround. +* Anyone with Android 8/8.1 that reproduces this and knows how to develop Android layouts? We'd love the help! + +## Version 2.14.4 (20210307) +* Re-released immediately as 2.14.5 after release script issue 🤷😅 + +## Version 2.14.3 (20210109) +* [The AnKing](https://www.youtube.com/c/TheAnKing) has graced us with a [new intro video](https://youtu.be/iuBU_OM9oAM)! 🤓 +* Still happily overwhelmed by the [donations](https://opencollective.com/ankidroid) 💪 +* Reviewer: Fix mark note keyboard shortcut +* NoteEditor: Fix to remove padding if removing formatting toolbar +* Previewer: Fix to show same card after edit +* Scheduler: Fix v1 scheduler completes deck when only learn cards due + +## Version 2.14.2 (20201202) +* Wow! We are humbled by the [donations](https://opencollective.com/ankidroid) 🤯 +* The resources are already going to contributors to improve the app! Thank you ❤️ +* Note Editor: Fix image crop not working first time +* Note Editor: Paste image at cursor not end +* Note Editor: Fix Ctrl+C opens preview +* Note Editor: Add menubar toggle to disable editing toolbar +* Home Screen: Fix Vivo device shortcut creation (again) +* Reviewer: Fix numeric keypad not working +* Note Editor: Fix cloze cards going to wrong deck +* Navigation Menu: Fix safe display app hang +* Preferences: Fix gestures menu translation / ordering issue +* Translations: thanks [translators!](https://crowdin.com/project/ankidroid/activity_stream) - you can help too! +* [Full Changelog here](https://github.com/ankidroid/Anki-Android/milestone/39?closed=1) + +## Version 2.14.1 (2020-11-23) +* Always free, always open source, but you may [donate if you like 😊](https://opencollective.com/ankidroid) +* Move sync button to right of action bar (vs search) +* Fix duplicate note detection +* Fix add deck shortcut on Vivo devices +* Fix non-translatable 'Card Info' strings +* Fix suspended card handling in filtered decks +* Sync translations from volunteers on our crowdin.com site (thank you!) +* Fix crash on mismatched WebView ABIs +* Fix crash invalid filename handling while pasting image +* Fix crash selecting cards in card browser +* Fix crash Android 8 in card browser +* Fix crash in undo labeling +* Fix crash reset password when system browser not exported +* [Full Changelog here](https://github.com/ankidroid/Anki-Android/milestone/38?closed=1) + +## Version 2.14.0 (2020-11-18) +* Enabled Donations - we ❤️ you, [now you can ❤️ us 😊](https://opencollective.com/ankidroid) +* New Screen: Card Info (from Card Browser or as a Reviewer App Bar Button) +* New Screen: Help - easy access to manual, many community pages/manuals, donation page, translations +* Home screen: Add deck shortcut +* Deck Options: SchedV2: Support setting "Hard Factor" +* Card Browser: Add deck filtering +* Card Browser: Filter By Flag +* Card Browser: Adding cards defaults to selected deck +* Card Browser: Many more keyboard shortcuts +* Card Browser: Display the number of cards deleted when deleting a note +* Card Browser: Better handling of deck searches containing wildcards +* Reviewer: Basic Android TV Support +* Reviewer: New Gesture: Abort Learning & Sync +* Reviewer: Support AnkiMobile 9-area gesture touch layout +* Reviewer: Improve "Empty Card" UX +* Reviewer: Keyboard shortcuts for flags (Ctrl+1...4) +* Note Editor: Editor Toolbar (& keyboard shortcuts) - hugely requested feature! +* Note Editor Toolbar: Apply Custom Commands (& keyboard shortcuts) +* Note Editor: Paste to Insert Image +* Note Editor: Made fields full-width +* Note Editor: Change Font Size for fields +* Note Editor: Expand/Collapse Fields +* Note Editor: Clear Field button +* Note Editor: Ctrl+Shift+[Num] to switch fields +* Note Editor: Improved image addition / naming +* Note Editor: Add preference to convert newline to HTML (or not) +* OS Integration: Default to "Anki Card" in system context menu vs "Card Browser" +* Libanki: Add FileUpload API +* Translations: Tagged screenshots on crowdin.com to help our translators +* Stability: Fix rare crashes (down to ~50/day total w/1.8million installs!) +* Performance: massive number of speedups +* Dev: Massively sped up AnkiDroid builds and improved code readability +* Totals: 345 code changes and hundreds of translations, made by volunteers, in 2 months +* [Full Changelog here](https://github.com/ankidroid/Anki-Android/milestone/30?closed=1) diff --git a/src/changelog/v2.15.0-to-2.15.6.md b/src/changelog/v2.15.0-to-2.15.6.md new file mode 100644 index 0000000..30f4c3e --- /dev/null +++ b/src/changelog/v2.15.0-to-2.15.6.md @@ -0,0 +1,83 @@ +## Version 2.15.6 (20210714) +* One more crash fix, no crashes shall be left unfixed! If we can help it. + +## Version 2.15.5 (20210713) +* [🤜🤛 Thank you! Your support makes the fixes happen!](https://opencollective.com/ankidroid) +* Full-screen navigation drawer drag is a preference, default off +* Floating Action Button ('+') labels are clickable again +* Fixed crash on first run post-install on tablets +* Fixed odd weekly breakdown stats chart behavior +* Fixed crash creating new deck from deck chooser +* [Updated translations](https://crowdin.com/project/ankidroid) (thank you translators!) +* [Full Changelog here](https://github.com/ankidroid/Anki-Android/milestone/47?closed=1) +* We are deep into development for v2.16 + Google Summer of Code, lots of new stuff coming +* Happy reviewing! + +## Version 2.15.4 (20210602) +* Saw one crash show up for 2.15.3: if you touched the 3 numbers + instead of the deck name on the deck list on phones, it would crash +* Temporarily revert full screen navigation drawer option to fix + +## Version 2.15.3 (20210602) +* [❤️ Thank you so much for the donations! We appreciate it ❤️](https://opencollective.com/ankidroid) +* Another batch of fixes stabilizing all the work done for AnkiDroid 2.15 +* Fix "Search All Decks" in Card Browser not searching +* Make new full screen navigation drawer open optional, default off +* Preserve edited search in card browser if navigation drawer opens +* Fix crash editing Tags dialog when switching back from another app +* Fix incorrect cloze help link +* Increase touchable area of undo icon +* Fix legacy / handebar template parsing +* Fix icon sizes for notifications and search +* Fix audio files incorrectly importing when attached +* Fix deck options "steps" showing up with lots of decimal places +* Update translations, add Kannada language +* Fix F-Droid app store publishing +* Correct navigation away from and back to Changelog +* Fix template parsing for "{{FrontSide}}" +* Fix stats tab view layout in RTL context +* Fix preview of cloze cards from note editor +* [Full changelog here](https://github.com/ankidroid/Anki-Android/milestone/45?closed=1) + + +## Version 2.15.2 (20210526) +* [❤️ Your donations here give us the time to work on the app, thank you! ❤️](https://opencollective.com/ankidroid) +* 🔥 Hot fixes for 2.15.0 issues (See below for 2.15.0 notes 👇 it was a huge release!) +* 2.15 should have no regressions now we think 🤞 +* That means we'll slow down the releases and these popups now, sorry + thank you +* Fix another API issue breaking card add from external apps +* Fix conditional template issue that caused blank cards for some +* Fix auto-advance ignoring "no advance" setting if card had audio +* Gracefully handle corrupt collections with invalid current decks selected +* Publish to Amazon App Store again (go get AnkiDroid on your Fire devices!) +* [Issue tracker milestone here](https://github.com/ankidroid/Anki-Android/milestone/44?closed=1) + + +## Version 2.15.1 (20210525) +* [❤️ Your donations funded this rapid set of fixes, enjoy! ❤️](https://opencollective.com/ankidroid) +* 🔥 Hot fixes for 2.15.0 issues (See below for 2.15.0 notes 👇 it was a huge release!) +* Do not auto-update users to scheduler v2. Yet. +* Fix crash on undo after deck delete +* Try harder to successfully paste images +* Reviewer performance fix - only load mathjax if needed +* Fixed compatibility issue for 2.15 collections on 2.14 +* Fixed API issue breaking card add from external apps +* Fresh language translations. See a bad translation? [You can fix it easily!](https://crowdin.com/project/ankidroid) +* [Detailed issue log](https://github.com/ankidroid/Anki-Android/milestone/43?closed=1) + +## Version 2.15.0 (20210524) +* [❤️ Your donations funded these features, enjoy! ❤️](https://opencollective.com/ankidroid) +* Thanks to [Google Summer of Code](https://github.com/ankidroid/Anki-Android/wiki/Google-Summer-of-Code-2021) students for a HUGE effort! +* Way too many changes to describe, but here are the highlights: +* New timezone code supported for sync with AnkiDesktop! +* Performance, stability improvements everywhere +* General UI improvements (accessibility, dark mode, design, more) +* Many new keyboard shortcuts and gesture actions +* Languages: Added Odia, Malayalam; big RTL support improvements! +* Reviewer: Javascript API: many new methods +* Improved account login, sync conflict, card template UI +* Tags and Decks dialogs have search! +* Whiteboard: erase, pen colors, stroke width +* NoteEditor: Mathjax 3, capitalize sentences setting +* Huge quality improvements all over codebase, helps future developers +* [🚧 Full 638 item changelog here! 🚧](https://github.com/ankidroid/Anki-Android/milestone/37?closed=1) diff --git a/src/changelog/v2.6-to-2.10.md b/src/changelog/v2.6-to-2.10.md new file mode 100644 index 0000000..8c666d7 --- /dev/null +++ b/src/changelog/v2.6-to-2.10.md @@ -0,0 +1,264 @@ +## Version 2.10.4 (2020-05-31) +* Workaround expired AnkiWeb SSL Root certificate +* [Full Changelog here](https://github.com/ankidroid/Anki-Android/milestone/22?closed=1) + +## Version 2.10.3 (2020-05-29) +* Fix crash on no permissions on Card Browser system text menu entry +* Fix crash in widget if external storage unmounts +* Fix crash on device reboot if no permissions +* Fix crash if deck picker background image too large +* Fix crash in tags dialog +* Fix bad data generated for null objects (Anki compatability) +* [Full Changelog here](https://github.com/ankidroid/Anki-Android/milestone/21?closed=1) + +## Version 2.10.2 (2020-05-14) +* Fix type answer cards not rendering correctly +* Fix type answer card template creation on non-English new installs +* Fix frequent full sync caused by incorrect learning card counts +* Fix crash importing into fresh install with no storage permission + +## Version 2.10.1 (2020-05-13) +* Updated all translations from crowdin translators +* Fix crash note editor on rapid back button +* Fix crash from incorrect Thai translation + +## Version 2.10 (2020-05-12) +* Add welcome dialog explaining need for storage permission +* Add support for Flags on cards (including flagging by gesture) +* Add ability to set background image in Deck Picker +* Add localization of standard templates created in fresh install +* Add support for card javascript to reload current card programmatically +* Add support for restricted learning / classroom devices +* Add preference to disable "Extended Text UI" full-screen editor +* Add CSS style capability to heavy checkmark and down arrow in card +* Add display of current interval on reschedule dialog +* Add support for card javascript to answer cards programmatically +* Add ability to toggle sticky field in field editor +* Improve deck list newline, style, script tag handling in deck descriptions +* Improve whiteboard on/off state handling, especially between day/night mode +* Improve multi-selection options in CardBrowser +* Improve performance (systematic optimization process, lots of improvements!) +* Improve handling of erroneous notes (missing fields, improper clozes) +* Improve user messaging on network connection failures +* Improve counting of suspended/buried cards in advanced statistics +* Improve v2 scheduler compatibility with Anki ecosystem +* Improve handling / detection of full sync need +* Improve Anki compatibility by allowing more field/model/deck name characters +* Improve deck list estimated review times with human scale times +* Fix text scaling bug in card browser +* Fix crash in export while using v2 scheduler +* Fix Custom Tabs crash with non-default system web browser +* Fix issues with import of packages with long Unicode names +* Fix incorrect intervals on lapsed filtered v2 scheduler cards +* Fix multimedia editor save/cancel behavior +* Fix incorrect button/gesture availability while existing task is still active +* Fix type answer crash on invalid characters +* Fix cloze references not being recognized in all fields +* Fix invalid ability to change deck to a filtered deck +* Fix crashes on adding invalid images, audios, and videos +* Fix CardBrowser crash after deleting card +* Fix crash and help user if no browser detected +* Fix Reviewer crash if card not available +* Fix crash / improve import of pasted decks +* Fix clicking hint field blocks key input in Reviewer +* Fix Previewer forgetting which card to show on device rotation +* Fix Mathjax/cloze interactions +* Fix vertical alignment of touch area in full-screen review +* Fix handling of ':::' in deck names +* Fix incorrect display of HTML comments in card browser + +## Version 2.9.7 (2020-04-30) +* Fix crash / workaround deck options timer config regression in AnkiDesktop + +## Version 2.9.6 (2020-04-03) +* Fix multimedia crashes (permissions handling, image add, preview) +* Fix UI and crashes in database check (user dialog + exception handling) +* Fix Windows 10 image compatibility issue with image paths +* Fix AnkiDesktop sync compatibility issue if more than 1000 cards due +* Fix crash in card browser render +* Fix parsing of image tags in card browser +* Fix crash in StudyOptionsFragment +* Fix issue with deck options group changing on export +* Fix issue with exports containing unexpected media +* Fix issue with dynamic decks (crash fix, export fix) +* Fix high frequency issue "AnkiDroid directory is inaccessible" +* Fix high frequency WebView (card viewer) crash +* Add columns to card browser (due, ease, changed, created, edited) +* Fix card scheduler not respecting maximum intervals +* Fix card browser spins forever on images or empty strings + +## Version 2.9.5 (2020-03-15) +* Fix crash rendering card list while updating card browser search +* Fix case-sensitivity issue with pronunciation words not being found +* Fix crash caused by auto-sync on startup showing dialog too soon +* Fix crash on preview of TTS cards showing language selectiond dialog too slowly +* Fix crash on import if collection not found +* Fix Anki ecosystem deck configuration issue for Anki Desktop users <= 2.16 +* Fix crash if user attempts to open camera or gallery and no app is available +* Fix crash building deck reminders while deck is synchronizing +* Fix crash related to audio recording stop +* Show helpful messages if import fails because device is out of space +* Fix crash when taking pictures on devices with Lollipop and older + +## Version 2.9.4 (2020-02-18) +* Fix crash when fetching pronunciations in note editor +* Fix issue with pronunciation words not being found +* Fix crash on startup for users with auto-sync on startup +* Fix crash on deck import when app is in background +* Fix crash for users of Google Chrome Canary +* Fix crash when adding certain audio clips +* Fix crash related to fetching Sound metadata +* Fix issue where audio plays twice + +## Version 2.9.3 (2020-02-09) +* Fix issues with connection timeouts and new encryption library +* Fix incorrect handling of decks with ':::' in their name + +## Version 2.9.2 (2020-02-03) +* Add support for new AnkiWeb encryption changes +* Fix some bugs using filtered decks +* Fix crash on app startup with uninitialized collection +* Fix some issues with new cloze deletion menu +* Fix issue with Mathjax + cloze deletion +* Fix incorrect intervals bug with new scheduler +* Add various patches from Anki Desktop + +## Version 2.9.1 (2019-10-16) +* Fix crash reviewing on Android 5 - 7 +* Fix crash on Hungarian translation + +## Version 2.9 (2019-10-14) +* Change to new adaptive icon +* Add multi-select in the card browser (delete, change deck, reschedule) +* Add support for new Anki 2.1 scheduler +* Add support for Mathjax +* Add ability to add local audio files to notes +* Add ability to specify filename and folder on export and import +* Add ability to insert cloze in Note Editor +* Add ability to reposition cards +* Add ability to use due reminders for specific decks +* Add support for gamepad input when reviewing +* Add support for common keyboard shortcuts from Anki Desktop +* Add ability to search in Card Browser for text from system context menu +* Add ability to recognize tts HTML elements in questions and answers +* Add ability to display LaTeX rendered to SVG (vs PNG) from Anki Desktop +* Add confirmation check for full sync trigger in preferences +* Fix excessive pull-to-sync false positives. Disable when not at top of page. +* Fix some issues with focus in Note Editor +* Fix media sync errors related to file creation issues +* Fix crash related to use of camera without permission or no camera hardware +* Fix crash related to Card Browser allowing preview with no cards selected +* Fix crash in Reviewer when collection inaccessible +* Fix crash related to TTS when TTS not initialized +* Fix crash related to sdcard mount/unmount on inaccessible collection +* Fix crash related to audio button being visible after loading pronunciation media +* Fix crash when attempting to import invalid zip files +* Fix crash related to switching from split-window mode to single-window mode +* Fix crash related to missing preferences in Preference editor +* Fix crash on deck selection after deleting a deck and immediately closing app +* Fix crash in Reviewer when non-standard browser installed +* Fix type-answer field showing unexpectedly after undo in Reviewer +* Fix incorrect display of some characters when using type-answer +* Fix error related to media in subfolders not showing in Reviewer +* Fix some issues with generated flashcard html and CSS selectors +* Fix some Glosbe and Beolingus regressions +* Fix issue where new deck was created when note type was renamed +* Fix add note button disappearing from Card Browser when returning from search +* Fix some statistics display issues +* Fix incorrect display of some preferences +* Fix invisible notification bar in NoteEditor +* Fix newline characters not working in cloze deletions +* Increase max card count display from 1000 to 99999 +* Improve display handling of very long review intervals (> 68 years) +* Improve next/back buttons when using Previewer on multiple cards +* Improve handling of selected deck between statistics, card browser and deck picker +* Improve Card Browser search by restoring when returning from other activities +* Improve card focus handling when moving between Note Editor and Card Template Editor +* Improve labeling of deck-group vs deck-specific options +* Improve formatting of HTTP error codes during sync +* Improve handling of multi-touch events while whiteboard displayed +* Improve permission dialog descriptions +* Improve handling of "preview new cards" setting when creating custom study deck +* Improve Navigation Drawer performance on older devices +* Improve database check dialog with addition progress updates during check +* Use different notification channels for study reminders and general notifications +* Drop support for Android < Ice Cream Sandwich MR1 (API15, Android 4.0.3) +* Add support for more features on Chromebook (import, export, restore backup, camera) +* Add API support for card/note bury and suspend +* Add API to open Reviewer on specific decks from other apps +* Add support for HTML/Javascript debugging +* Add link to third party apps which support AnkiDroid API in advanced preferences +* Fix issue with custom sync server certificates +* Perform basic DB integrity check on app upgrade +* Introduce optional analytics reporting + +## Version 2.8.4 (2018-04-27) +* Fix error syncing due to too many card templates + +## Version 2.8.3 (2017-11-10) +* Fix crash adding a picture from camera +* Fix add note icon disappearing in browser after search +* Fix translations from Glosbe +* Fix crash long-tapping when no deck is selected +* Fix crash entering advanced settings on some devices +* Fix incorrect graph display in statistics +* Fix deck not changing properly in statistics +* Fix rounding error in statistics weekly breakdown +* Fix spurious new deck created on model rename +* Improve error message on exception during media sync +* Improve animation when transitioning between screens +* Use a round icon on devices that support it + +## Version 2.8.2 (2017-02-28) +* Fix bugs showing confirmation dialogs in various places +* Fix uncommon crash showing dialog after sync + +## Version 2.8.1 (2017-02-06) +* Allow sending exported apkg to arbitrary app (e.g. Google Drive) +* Allow AnkiWeb to display a warning on sync completion +* Fix potential full-sync after sync cancellation +* Fix media sync sometimes scanning all files again +* Fix removing $ character when importing media files +* Improve automatic card answer timing when audio is played +* Improve rendering of some statistics +* Fix some crashes in the Russian, Vietnamese, and Chinese translations +* Fix crash sending exported apkg by email. NB: Export path can no longer be modified. + +## Version 2.7 (2016-10-16) +* Add pull-to-sync feature +* Add option to place answer buttons at the top +* Add widget to directly access "Add note" screen +* Fix issue with importing whole collections and restoring backups +* Fix deck import failing after the first successful one +* Fix cards in learning queue not being randomized +* Fix crash with fullscreen mode and hidden answer buttons +* Fix rare crash when opening deck options +* Improve support with TalkBack + +## Version 2.6.1 (2016-07-08) +* Add card cycling in previewer (similar to desktop client) +* Add option to hide 'minutes left' in reviewer +* Fix language from app setting not always being used +* Fix not being able to play back new sound recording +* Fix potential crash on Android 2.3 (Gingerbread) +* Improved use of horizontal space when resizing large images +* Minor adjustment to black theme colors + +## Version 2.6 (2016-06-14) +* Add two new themes (black, plain), selectable in preferences +* Make reviewer app bar icons customizable +* Split "hide / delete" menu in reviewer into "bury", "suspend", "delete note" +* Reviewer undo button now removes last stroke when whiteboard in use +* Add menu entry to change TTS language from reviewer +* Add more of the statistics available on the desktop client +* Add "advanced statistics" plugin (must be enabled in advanced settings) +* Add setting to configure custom sync server (advanced) +* Fix card templates created in AnkiDroid incorrectly using bold style +* Fix many importing issues (behavior now consistent with the desktop client) +* Fix long-tapping card in browser not always working +* Update sound playback button image +* Reduce size of whiteboard and gesture area for better interoperability with full screen +* Improve error messages with inaccessible collections +* Allow auto-play of HTML media elements (for templates that enable it) +* Significant updates to the content provider and API (for developers; see documentation) +* Many small bug fixes, improvements, theme adjustments, translation updates