Closed crantok closed 2 years ago
Hello! π Thanks for logging this issue. Please remember we are all volunteers here, so some patience may be required before we can get to the issue. Also remember that the fastest way to get resolution on an issue is to propose a change directly, https://github.com/ankidroid/Anki-Android/wiki/Contributing
Hi @crantok , thanks for the detailed feedback! What would you say the actions to fix this would be, and which are the most important issues?
I also appreciate the feedback. What I wonder is, if the download of shared deck finishes and you just clicked open, did our configured file association between apkg and AnkiDroid work, so that it did just import? Because it is supposed to be that if you tap, it just works.
That said! Perhaps there is something we can do in our captive WebView for the shared deck website on AnkiWeb, where when a download finishes, if it's an .apkg we get control and can operate on it more intuitively? I have not scanned the available WebView APIs but that could be a game changer if there was a hook to get control again on apkg load. Or maybe we can catch the click itself and download via our controlled logic vs the standard WebView download logic, allowing similar more intuitive behavior - I think the API for that does exist
That said! Perhaps there is something we can do in our captive WebView for the shared deck website on AnkiWeb, where when a download finishes, if it's an .apkg we get control and can operate on it more intuitively?
They don't support getting the current URL for privacy reasons. https://stackoverflow.com/questions/33343917/how-to-get-url-change-from-customtabsclient
We can get navigation events (page finished etc...)
But we can't query the download events/status from other apps: https://stackoverflow.com/a/17575025
We can potentially poll the downloads folder, but that's a little hacky
I didn't realize CustomTabsClient had a different interface from WebView. Perhaps switching to WebView is an improvement, we haven't had great fun with CustomTabsClient (multiple crash bugs) and if it's going to be finicky perhaps just having one finicky way (WebView) to wrap web content is a system improvement, at the same time it allows us to decisively improve a long-standing source of customer support load / complaints
Hi @crantok , thanks for the detailed feedback! What would you say the actions to fix this would be, and which are the most important issues?
IMHO a seamless import (or one with barely noticeable seams) of a downloaded deck is the most important issue for app users like me. I am not yet considering making a deck. I'm just finding out how useable the app is as a learning device.
I also appreciate the feedback. What I wonder is, if the download of shared deck finishes and you just clicked open, did our configured file association between apkg and AnkiDroid work, so that it did just import? Because it is supposed to be that if you tap, it just works.
Ah! Good point!
You mentioned a few options about trying to interface to the web browser or polling the downloads directory. Will the captive web browser tell you that it has completed a download, even if won't allow you to have any other details about it? At that point, the most recent apkg file in downloads is highly likely to be the desired import target. Alternatively, when the browser closes, any apkg files downloaded since the browser was opened are potential import targets.
Thank you very much for the quick replies to this. I was not expecting that :)
This path is as you say the most important for new users and we receive a lot of justified complaint, so it's a natural area of really high interest for us. I'm glad to hear the "tap .apkg -> import" does work, but I think we still have some prototype tests to do to see if we can take the work in between "I clicked on a share deck to download" and "it's imported and ready" away from the user. Seems like the sort of thing where the user expressed intent and the machine should do the work, having the user need to then find the deck and do something is friction.
Thanks again for the feedback
Had a spike at getting the download done in a WebView + DownloadManager / BroadcastReceiver, it works without leaving the app, but to productionise:
ImportUtils
if we're not in the DeckPicker
- the assumption is that Handler.sendMessage
is handled straight awayI think the best way is to hook into the actual native Download Manager APIs somehow, they do background transport and I think handle the persistent foreground service notification that keeps things alive (and provides nice feedback to users). Not sure if that's possible but it has all the notification / wake lock / efficient transfer stuff all done if it was possible to hook into it somehow. That's just addressing transfer and app focus though
Hello π, this issue has been opened for more than 2 months with no activity on it. If the issue is still here, please keep in mind that we need community support and help to fix it! Just comment something like still searching for solutions and if you found one, please open a pull request! You have 7 days until this gets closed automatically
Hello π, this issue has been opened for more than 2 months with no activity on it. If the issue is still here, please keep in mind that we need community support and help to fix it! Just comment something like still searching for solutions and if you found one, please open a pull request! You have 7 days until this gets closed automatically
Hello π, this issue has been opened for more than 2 months with no activity on it. If the issue is still here, please keep in mind that we need community support and help to fix it! Just comment something like still searching for solutions and if you found one, please open a pull request! You have 7 days until this gets closed automatically
Hello π, this issue has been opened for more than 2 months with no activity on it. If the issue is still here, please keep in mind that we need community support and help to fix it! Just comment something like still searching for solutions and if you found one, please open a pull request! You have 7 days until this gets closed automatically
The other points raised:
@ShridharGoel - pinging in case this brings out any ideas, no action required
Hello π, this issue has been opened for more than 2 months with no activity on it. If the issue is still here, please keep in mind that we need community support and help to fix it! Just comment something like still searching for solutions and if you found one, please open a pull request! You have 7 days until this gets closed automatically
Now #9229 is merged. The majority of complaints are resolved in V2.16
Reproduction Steps
...may take a long...
"Nope."Expected Result
Getting to use an intuitive app with limited functionality and moderate quality content, and recommending it to people.
Actual Result
Getting to use a partially intuitive app which probably has a lot of functionality for me to discover, with high quality content, that I would think twice about recommending to half the people I know because Import.
Debug info
As far as I can tell, both the app and myself are bug free.
Research
Enter an [x] character to confirm the points below:
No, no, no and no. I have ADHD. If I try doing those then I'll either end up on twitter for 3 hours or start a rewrite of the app.