Conversations icon indicating copy to clipboard operation
Conversations copied to clipboard

Option to change path of "Conversations" folder

Open jojosoft opened this issue 3 years ago β€’ 7 comments

When using a MicroSD card as external storage (not in the mode which uses some black magic mounts to merge with internal storage), there currently seems to be no way to have Conversations save received images and similar data files on it. The path seems to always be /sdcard/emulated/0/Conversations, which is just the internal storage.

Almost all apps have some setting for the data folder path, so I would be very happy to have the same in Conversations.

jojosoft avatar Oct 17 '21 18:10 jojosoft

/close as duplicate of https://github.com/iNPUTmice/Conversations/issues/3565 and https://github.com/iNPUTmice/Conversations/issues/1765 and maybe others

licaon-kter avatar Oct 17 '21 20:10 licaon-kter

/pleasedontclosewithoutactualconsideration πŸ˜…

Thank you for pointing out these other issues that despite my search I wasn't able to see.

It seems like many users would benefit from such a feature, doesn't it? No matter at which other comparatively big and well-developed app (which needs to store a larger amount of data) you look, all of them offer the option to select the data path, it's just one setting. For example, I use AntennaPod, Nextcloud, OsmAnd~ and AnkiDroid, and all of those have a setting which deals with this rather annoying part of the Android operating system. It's just standard in Android apps, and I would kindly ask you to think about it again if you really want to have "the very last word" in instant messaging. πŸ˜‰

At the moment, you are getting only the primary storage path using Environment.getExternalStorageDirectory, which by the way has been officially deprecated. (For a good reason in my opinion.) It is standard to at least use Context.getExternalFilesDirs, which returns an array of possible locations, including removable SD cards. Internal storage is often limited, so it is a problem for many users if all of their chat media is stored on internal storage and not the much larger SD card they specially intended for this exact use.

jojosoft avatar Oct 18 '21 03:10 jojosoft

Did you read all the other issues first?

The consideration is that even Google never used this and it's a pain to use in the first place as it's slow to activate and use.

licaon-kter avatar Oct 18 '21 07:10 licaon-kter

Yes, of course, since you linked them. I haven't found any matches myself, but I also just noticed that I overlooked the is:issue is:open which is pre-pasted into the search field. So I was not being displayed issues which were already closed.

To be honest, I experienced these threads as not very helpful. The best answer was in #3565:

Is there a possibility to move that location to the sd card ?

No there is not.

It sounded like the author wanted to just close the issue quickly, so I hoped I could convince them to look into this problem once more or at least just have a discussion on the different possibilities and trade-offs. As I wrote, other apps have all implemented a solution to this. Granted, the way data management works on Android is confusing and not sustainably designed.

On the main topic: Which part of the process is slow to "activate and use"? Performance-wise? Also, do you have a source for the statement about Google themselves not using this more general approach of directory management? From what I was able to perceive, it is widely used, and in later API levels, the currently used solution will probably stop working altogether.

I think it would be totally fine to just leave the path as it is at the moment, what I think is needed is just a way to change it for the users who need it. Chat media data can become huge and increases infinitely, which is why I think limiting it to the primary storage is not future-proof. Some apps even just have one string field where users can edit the path manually. Of course, this solution has quite some room for improvement UX-wise, but it's already enough for users who just really want to change the path.

Another worry might be introducing additional permissions to be able to read and write to the SD card. (In case it's not already contained in a permission that Conversation already has.) I'm not an active Android developer myself, but to the best of my knowledge, permissions can also be requested after installation, once they are actually needed. Users who want to change the data path could then give this permission once they actually change it.

jojosoft avatar Oct 18 '21 08:10 jojosoft

Google devices, Nexus and Pixel, never had SD cards, as they want you to pay them for higher storage devices and "cloud" backup.

licaon-kter avatar Oct 18 '21 08:10 licaon-kter

I see, this is what you had in mind. That's also why I personally wouldn't buy and use that stuff... πŸ˜† (However, advancing a (somewhat) good open-source API and selling a product should be two things.)

jojosoft avatar Oct 18 '21 15:10 jojosoft

I really don't understand why it is possible for so many applications but not for Conversations ?

3615pipou avatar Jan 12 '22 19:01 3615pipou

The current permission model as of Android 11 don’t allow for this anymore. Future versions will use internal storage but not let the user choose.

iNPUTmice avatar Sep 10 '22 10:09 iNPUTmice

...so let's assume that most users already use/want Android 11?

I admit they made things even more complicated, but of course writing to external storage is generally still possible.

jojosoft avatar Nov 17 '22 08:11 jojosoft

@iNPUTmice:

I am willing to pay 20 € for the feature that Conversation lets users choose to store all chat texts, pictures, audio files, and videos to a user configurable storage location, including external memory (microSD card, NanoMemory card, USB stick, ...), e.g. SDCARD:/Conversations.

5 € extra, if Conversation offers to move media from previous locations (including all known legacy locations) to the new location.

Another 5 € extra, if that content is (optionally/user-selectably!) completely encrypted.

The page

https://androidexplained.github.io/android/android11/scoped-storage/2020/09/29/file-saving-android-11.html

explains both the Media API way as well as the Storage Access Framework (SAF) way of accomplishing that, it seems.

Maybe someone with crowdfunding experience could set up a bounty somewhere? (https://gitpay.me/ or whatever platform)

mjk-gh avatar Sep 18 '23 17:09 mjk-gh