Skip to content

Aedict3 new update not adjusted for new AnkiDroid API Enable/Disable feature #599

Description

@schilki

Thank you very much @mvysny for all your help. As recommended I will post our conversation to the forum to discuss.

However I belief that this problem concerns Aedict 3 and not AnkiDroid. I am quite sure that Aedict 3 does not recognize the 2 sides of the new API Ankidroid feature (Untick or tick)
Why:
Now it is only possible to export cards from Aedict to Ankidroid if in Ankidroid's extended options the API is ticked on. If the API is ticked off and you want to send a card from Aedict, an error message occurs "Error: Please upgrade AnkiDroid to 2.5 or higher". Why? Because Aedict does only recognize if the API is ticked on, so the new method of direct sending of cards (eliminating the mid-step of modifying cards before creating card in Anki). However, as I mentioned before in my email, the makers of AnkiDroid on purpose included the function to UNTICK the API, so we can keep editing the cards (as before) when sending from Aedict, before saving them to our desired deck in Anki. This is also evident from this thread #596 where Anki's developer wrote the following: "You can disable the API under advanced settings in AnkiDroid, which should result in Aedict choosing the old method of the sending the data to AnkiDroid. Note however that will disable it for all apps, which is probably fine now, but will likely prevent you from doing some cool stuff in the future."

With Aedict's new update however, Aedict completely adjusted to the direct input - aka API-ticked-on function - (the so called "new method") without regarding AnkiDroids extended option to untick direct input - the so called "old method" in the quotation above. Meaning that if you disable the API in AnkiDroid (meaning that you use the "old method"), Aedict does actually NOT choose the old method of sending the data to AnkiDroid (as the AnkiDroid developers thought), instead the error message "Error: Please upgrade Anki Droid to 2.5 or higher" appears, because Aedict was only updated for the new AnkiDroid API-enabled version, disregarding the disabled version (old method). I hope my explanation is understandable.

I read this post: #596
which is the same problem but not fixed until Aedict recognizes the unticked API function of AnkiDroid.

I am not an expert but almost 100% sure that this is the problem, and needs to be fixed on Aedict's side. I am very sorry, I also don't know anything about programming but I am an avid user of your app Martin, so I thought I could give you this in sight from an "every day user perspective". From what I read from the other post "Dinges666" had actually the same problem but it wasn't clearly identified. Because the update of Aedict yesterday, was only regarding the enabled API feature of Anki, and disregarded the feature in AnkiDroid to actually use the "old input method" aka disabled API. Dinges666 also wrote that his concern was he couldn't change the cards anymore before input into Anki, which he could have easily fixed by himself by just unticking the API in Anki. However, as of today with new Aedict update, this is not possible anymore.
His point was also true that if API is ticked, decks cannot be chosen, that's why the problem needs a fix in Aedict for enabled and disabled API in Anki:

So what I think would fix the problem in Aedict is the following (according to 2 versions of AnkiDroid API ENABLED/DISABLED)

  1. AnkiDroid API ENABLED:
    As already done with the new Aedict update. Include a function that lets the user choose into which deck in Anki the card should be send (alrdy done). Then the full bulk of info from Aedict will be directly send to Anki.

  2. Ankidroid API DISABLED: (In Aedict same as the old version, I used this until yesterday without any problems)
    Same as old version, 3 card formats, choose, send over to Anki --> before saving the card in Anki, it will be possible to modify the card in Anki and choose the deck.

I am very sorry, and I don't to be pushy or anything, but I think it is easier to just provide straight forward feedback, and also hope to contribute to further perfection your app @mvysny . I am also not a programmer, and if this is to hard to program for each case (Ankidroid API Enabled/Disabled), I completely understand. However, I would be happy if you read my post throughly, because I also took a lot of time to figure out the problem and to write this.

Thank you so much
Alexander

For everyone please see the log below, from our private email conversation:
ALEXANDER (First email):
There has been a huge mistake in the last update. Export to Anki: Ask for deck when exporting to Anki was in this update. I think Mr. Martin you created this based on the new Anki update where it directly send the cards (without manually being able to modify the card) to Anki. However, Anki already included a feature in options, which lets you (just as before) modify the cards before sending and also change the decks under "Extended Options, Tick/Untick Ankidroid API for directinput". But now you also did an update that let's you change decks when exporting, which leads to a double clash of the same function. That's why please please put Aedict3 back to the previous version (since we can chose which deck in the Anki app API func, you don't need to change anything abt. Anki export). You also took out the option when exporting "Export" option to modify the cards, furigana, Kanji, English order and to modify the text. This was the single most crucial function for me as I always modify the cards before input. This app is absolutely the best and I recommend it to everyone of my friend. Thank you so much!

MARTIN:
Thank you very much for your kind words. You can disable the dialog in Settings / Export / AnkiDroid Deck Name and set it to e.g. "Aedict 3", to disable the annoying dialog. Please let me know if this works for you.

ALEXANDER:
Thank you very much for your quick reply. I really appreciate that you take into consideration the words of your users. Also your app is without doubt the best Japanese dictionary. Thank you so much.

Regarding the issue:
I tried what you said. So basically the problem is Anki made an update last week, where they included the option "API direct input from third party apps". However, this option can be ticked or unticked, which means
if ticked: direct input from aedict without possibility to modify cards
if unticked: same as before, can modify the card decks and also card content etc.before sending to Anki (Just as before).

Now with the new Aeadict3 update it became impossible to edit the cards before sending and to chose whether kanji, furigana, english etc should be included, in which order etc. Also I think the option of chosing a deck in aedict is not necessary and has no benefit since the option can already be en- or disabled in Anki API direct input function. Also, if in both apps the function is on (Anki API ticked) the error message "update Anki..." Occurs. So I thought you might have overseen the API option in Anki (which disables or enables the direct input feature), and thats why you created this option in Aedict (im not sure though what you intended Sir). The option is under Extended options in Anki "拡張機能"AnkiDroidAPIを有効にする。

So basically I would be very happy if the old function of Export in settings would come back in Aedict3, where i could chose input method (kanji/engl, kanji, furigana/engl etc) and manually change the content of each card, and also chose the deck before sending it to Anki.

I hope you can understand my question Mr. Martin and I would be extremely happy if you can help me. Your app has really changed my study progress so much and cant tell you how thankful I am.

Best regards
Alexander

MARTIN:
Hi Alexander,
thank you for your kind mail, I'm really flattered :) Thanks!
Thanks to you, I now understand what the "API direct input from third
party apps" does. Basically, AnkiDroid provides two APIs: the old one,
which only allows sending one flashcard at a time, and the new one,
which supports mass-send (the direct input mode). The old one will
eventually go away (I think that AnkiDroid's Tim told me that), so I
believe there is no benefit in keeping the support for the old one.
So, I believe that we should look forward and instead of keeping
support for both APIs, let us focus on the new API and let us try to fix
what's broken there.

Now, in the new API every entry is exported three times, in three
different card types: "Kanji > Kana+English", "Kanji+Kana > English",
"English > Japanese". Just open AnkiDroid, Card Browser and you will see
they're there. I do not say this is perfect (I find it unintuitive), but
I was told that this is the way AnkiDroid works. I agree this needs some
mind bending, but it may be worth the time. Please also read here:
#596

Also I have added an entry related to AnkiDroid to FAQ:
http://aedict.eu/faq.html

Please let me know if there are any further issues.
Best regards,
Martin

ALEXANDER:
Thanks Martin for your reply again.
However the point I am trying to make is actually about the impossibilty to manually editing cards before sending them to Anki since the aedict update yesterday.

Normally people use the Aedict as follows I would argue:
Let's say I have 3 decks: one Kanji, JLPT words and one Business words

  1. look up a word, click up right on button and "send as flashcard"
  2. before sending we want to modify the cards by all means, because aedict provides a looot of translations for each word etc, which would means sending content as it is, it is impossible to memorize 20 translations. So I usually cut down the content to one or two key translation words and might add an example sentence.
  3. chose which deck it belongs two and click send.

So I add words anyways one by one after I look up a new word, and after modifying what should be on the card.
I dont see any use in making direct inputs from aedict. This is not a process that asks for optimization (acceleration) I think, however much more important to being able to modify the cards before sending.

The Anki API changed nothing about this input method because it could be enabled or disabled under extended options. So I think the Anki developers made this function for other apps where direct input might be useful and speeds up the process, however they left the option for the old input method for apps like aedict. For Aedict it is not useful because it doesnt let us modify cards anymore, why it was a great feature from Anki to let us untick the API and use it as old.

What changed the possibilty of modifying cards was the latest update from aedict yesterday. Now I dont see any way to modify cards before sending them to anki anymore, which leads me to look up a word on aedict and then manually make a card in Anki in the respective deck for I every word I look up now.

I read the thread you sent me, however I think the guy there didnt know about the untick function in Anki to unable and disable the API and therefore had trouble because he also wanted to manual modify cards and chose the deck.

So as of now if I could still use the Aedict version before the update yesterday, i could still manually modify cards. But now I can not only not modify them, but I can not even input cards as direct input, always an error message will appear "download Anki 2.5".

I hope you understand what I mean. Basically I just think it is crucial to let us send card by card and modify its content by ourselves before sending to Anki, because every person wants different things on his card to remember them easily and not standardized entries. Anki lets us do this (even after the update), but the new aedict update prohibts us from doing this.

MARTIN:
Hi Alexander,
the real difference between old and new API is that in old API, two
strings were transferred, FRONT and BACK, and that's it. You could not
extract any data from that and you couldn't format the entries
differently once exported. In the new API, Aedict sends all the data
separately, and then it sends a predefined set of three card models. You
can add your own cards directly in AnkiDroid, which will show fields in
any format you see fit. For example, the definition of the card which
shows "Kanji" as front, and full info as back:

FRONT:

{{Expression}}

{{GrammarShort}}

BACK:
{{furigana:Furigana}}

{{Meaning}}



Example Sentences

{{Sentence}}




{{GrammarShort}}

{{Grammar}}


{{Tags}}

You can however create your own card, with your own FRONT and BACK
definitions.

So that you can add your own card models to entries already exported and
present in your AnkiDroid. Please, if you have further questions
regarding on how to add custom cards to AnkiDroid, please ask on the
AnkiDroid forums. Because this is really a question on how to add
different card formats to AnkiDroid. You can copy-paste our entire
conversation to the AnkiDroid forum, to provide context for others. I do
not have capacity to answer more questions directly, but I can answer
them at forums:

https://groups.google.com/forum/#!forum/anki-android

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions