mpcjanssen / simpletask-android

GNU General Public License v3.0
549 stars 128 forks source link

11.0.0 could not load todo.txt #1177

Closed ivysrono closed 1 year ago

ivysrono commented 2 years ago

10.9.3 is ok.

engelhro commented 2 years ago

Even worse: I get a Saving of todo file failed message every few seconds ☹️. The timestamp of the respective file remains the same, even after modifications via SimpleTask, so apparently changes are indeed not saved…

Can't use SimpleTask right now until a fixed version 11.0.1 is available.

mpcjanssen commented 2 years ago

@ivysrono which storage backend is this? Dropbox/Nextcloud or cloudless? Could you attach the logging? If simpletask says saving failed, there should be something in the logs.

EdJoJob commented 2 years ago

I had the same issue on Cloudless. I "fixed" it by changing the "Files and Media" permission from "Allow access to media only to "Allow Management of all files"

mpcjanssen commented 2 years ago

If this is indeed the cloudless version, that permission is indeed required.

engelhro commented 2 years ago

Yes, I am using the cloudless version as well.

@mpcjanssen: the log contained really a lot of information, but I couldn't easily and immediately spot something that related to the problem. Drown in the messages 😉. Anyway, the issue is "fixed" now, so no need to dive deeper.

@EdJoJob: ah, thanks! 👏 That solved my problem as well. I'm just wondering why the previous version worked with the more restrictive permission setting.

mpcjanssen commented 2 years ago

@engelhro did you recently update your android version on the phone? That could explain.

ivysrono commented 2 years ago

I had the same issue on Cloudless. I "fixed" it by changing the "Files and Media" permission from "Allow access to media only to "Allow Management of all files"

+1

ivysrono commented 2 years ago

@engelhro did you recently update your android version on the phone? That could explain.

Android12

engelhro commented 2 years ago

@engelhro did you recently update your android version on the phone? That could explain.

No, still using the same OxygenOS 11.0.x (OnePlus smartphone), which is Android 11, as the months before. No recent update here.

The only change was yesterday's update to SimpleTask 11 (via the F-Droid store). No problems or "Save failed" messages before.

EdJoJob commented 2 years ago

I did deny the permission and force a re-request for the permission, which I believe asked for permission for a specific folder, where now I think it is only requesting and getting permission for the default media folders

aleksfadini commented 2 years ago

Had the same issue - couldn't save to Todo file. Solved by extending permissions. Thank you for opening this ussue

dessalines commented 2 years ago

Same here, this version is broken on several android devices.

Edit:

@ivysrono that fix did it, thank you so much!

mpcjanssen commented 2 years ago

Strange thing is that Simpletask should already request the permission to have full storage access. I'll check again if this is properly implemented.

mpcjanssen commented 2 years ago

Ah, per https://ourcodeworld.com/articles/read/1559/how-does-manage-external-storage-permission-work-in-android just adding the permission to the manifest is not enough. You also need to explicity request it. I will release a fixed version soon.

shulist commented 2 years ago

@EdJoJob can you elaborate on how you changed permissions?

changing the "Files and Media" permission

I am using a Samsung A20. Android 11, ST cloudless 10.9.3. (Downgraded from 11 as it stopped working in early June.) I have looked everywhere and cannot find that.

Update: NM i found it in settings|privacy|permission manager|files and media|simpletask.

It was already set for full access but still will not save or open any file.

EdJoJob commented 2 years ago

IIRC @shulist I removed the permission entirely, then restarted simpletask

shulist commented 2 years ago

@EdJoJob you were lucky. I also did that but still no file access. For some reason even after a reinstall and the File and Media access question for ST 11 & 10 (latest) will not access SD card. It seems stuck on /storage/emulated/0/Android/data/nl.mpcjanssen.simpletask/files and will not allow the selection of the SD card. Its becoming a PITA as I use the app rather heavily on a day to day basis.

Does anyone else have another option for a solution?

aleksfadini commented 2 years ago

The problem is the SD card. You should move simpletask files to internal storage, because android doesn't allow apps to access the SD card the way the access internal storage.

shulist commented 2 years ago

@aleksfadini That's somewhat confusing. I've been using Syncthing to sync a folder to my SDcard for about two years now under Android 11. During that time prior versions of SimpleTask worked flawlessly with no access issues. So why in June did something change? Also why can other apps such as Syncthing, FX, Podcast Addict, Readera etc. use an SD card pretty much without issue also? What makes Simpletask so different that it cannot use an SD card?

To put your theory to a test I attempted to move a todo.txt file to /storage/emulated/0/Android/data/nl.mpcjanssen.simpletask/files. It appears you cannot access that location except when connected to a PC. That is inconvenient when only a mobile is present. Also files in this folder cannot be accessed by other apps such as Syncthing.

Further I am somewhat limited with space on my main storage area (32GB). The added SD card (256GB) is a means to recover some of that space.

mpcjanssen commented 2 years ago

I have no idea why Simpletask is different, but if you give Simpletask "Full file access" permissions and media access, it should be able to access any file which is visible on the file system. (So also on an external SD card)

aleksfadini commented 2 years ago

This is going off topic, but to answer your question, with Android 12 all apps aren't be able to access the SD card in that way (so syncthing on termux won't be able to do it for example - I use syncthing too, but the workaround on Android 12 is to use syncthing in termux and use internal storage). They can still access the SD card but through a very convoluted process that doesn't allow changes on the fly. Even in internal storage, apps cannot see their respective folders in Android 12, neither can a user unless the device is rooted.

So to make the long story short, it's Google fault, because (for almost no reason) it has limited access to SD cards and simpletask is gradually implementing the changes Google forces in the OS.

shulist commented 2 years ago

access any file which is visible on the file system. (So also on an external SD card) @mpcjanssen I wish that were true but alas it is not. After providing full access ST does not see an SD Card from the "Open task file" option. I've installed every version which is claimed to work but no version (going back to ST 10.5.4) actually works. Perhaps I have a weird version of Android 11 (last update was ~ 2022-02-09 +/-) at any rate no version now sees the SD card.

While I recognize that the fault lies with Google, I'm at a loss as to how to move forward.

mpcjanssen commented 2 years ago

@shulist I guess giving access requires the weird dance in giving access in the google provide file selector. No idea how to implement that though.

aleksfadini commented 2 years ago

I can offer my pseudo-workaround, which involves abandoning the SD card, installing syncthing on termux, pointing to a folder on the internal storage, then giving full access to simpletask in Android 12. The todo.txt lives in the folder in the internal storage synced by syncthing under termux. Everything works as it should. Alas, the hoops one has to jump thanks to Google.

It's not exaclty a workaround, but rather a way of coping with Google tyranny, and still use my beloved simpletask :)

shulist commented 2 years ago

OK I've managed to sort out my issues and will document them here should someone be in a similar situation. I am using a Samsung A20 running Android 11 with 32GB main memory and a 256GB SD card. All Simpletask files were originally in a folder on the SD card managed by Syncthing v1.20.2. What I did was:

  1. Within Syncthing I "Removed" the synced folder using the Syncthing web GUI,
  2. With my A20 plugged into a PC I moved the original synced folder from the SD card to the main storage in the location /storage/emulated/0/data/Box. "/data/Box" are my own defined folders. Yours may be different,
  3. I then disconnected the PC,
  4. I then reactivated the synced folder from my main server and when in the A20's Syncthing GUI accepted the invitation and pointed the new synced folder to the one I created above /storage/emulated/0/data/Box,
  5. Allowed Syncthing to "re-sync",
  6. Installed Simpletask 10.5.3 Cloudless and opened my primary ToDo.txt file in the new location,
  7. After that Bob's your uncle.

I do not know if this will work under future versions of Android, your mileage may vary, but it is working for me now. It will not work with Simpletask 11.

@aleksfadini wow that was a scary suggestion. I really could not do that as I am running up against the wall of my 32GB main storage limit. Android 11 already consumes so much real estate (19 GB - talk about bloatware) I'd be afraid of moving to 12. I rather doubt 12 will even be available for this device. Regardless I may have to root this device and move to a smaller image ultimately. @mpcjanssen kudos to you for shoehorning Simpletask into a package less that 5 MB. Not many apps can even come close. My A20 thanks you.