vauvenal5 / yaga

Nextcloud Yaga - A Nextcloud first gallery app for Android.
https://vauvenal5.github.io/yaga-docs/
GNU General Public License v3.0
138 stars 10 forks source link

Local directory rights management for API 30+ #144

Open vauvenal5 opened 3 years ago

vauvenal5 commented 3 years ago

In future API 30+ we won't be able to get write access to the entire external storage. This effect is already visible when trying to access arbitrary locations on SD cards, see #23. To solve this we will have two options:

For latter we have to wait for https://github.com/miguelpruivo/flutter_file_picker/issues/721 to be fixed.

Also consider how Nextcloud Files app and the Simple Gallery app are going to handle this issue.

Simple Gallery for example, recommends requesting once access for the entire SD card and then continues working with it's native directory selector dialogs.

X-Raph-X commented 2 years ago

Hi guys, First of all, a great thanks to @vauvenal5 this app rocks, really ! I think I have a problem related with this issue. When i use "Delete remotely" feature, nothing is deleted. Do you think it is a right permission problem ? "Delete locally" doesn't work either. I tried to give full access to Yaga but without success signal-2021-12-30-092704_001 How to get it working on my Xiaomi Mi11 Lite (Android 11) ?

I need it to work in order to prove to the world that i've the power to bypass Google Photo... I feel like Thanos searching the last infinity stone !!!!

vauvenal5 commented 2 years ago

So, I spent some time with this issue today and it doesn't look good. As far as I could figure out until now, the only way to retain full access across the entire device is the MANAGE_EXTERNAL_STORAGE permission which is not granted to all apps by Google Play Store. I have to see if Yaga will qualify for it or not.

If not, as far as I can tell, the quickest fix is to temporarily limit Yaga to its App directory and afterwards try to find a solution by using the media store api. Not sure yet how much effort this actually is.