Commit graph

19 commits

Author SHA1 Message Date
Le Philousophe
402f31122c ANDROID: Don't track SAFFSNode using JNI global references anymore
The JNI global references are limited in count and we overflow it for
games with a huge number of files (like Zork Nemesis).
Instead, track all the nodes from Java side using a unique identifier
generated using an atomic counter.
Then, all JNI calls either use a temporary local reference to access
node data or use the unique identifier.
2025-01-26 18:17:05 +01:00
Le Philousophe
e08b8203bc ANDROID: Use a SharedPtr to track SAF tree global references
This makes us use a single global reference per tree instead of
duplicating them on each filesystem node creation.
Thanks to the SharedPtr, the global reference is automatically
deallocated when needed.
This is the first step to avoid global references overflow.
2025-01-26 18:17:05 +01:00
Le Philousophe
3c4df9614a ANDROID: Don't call error too early
When the backend is not yet set up, avoid using error which ends up
using exit without any useful error log.
2025-01-26 18:17:05 +01:00
Le Philousophe
e61dac6c68 BACKENDS: Allow write streams to be created atomically
When creating an atomic write stream, the file is only created once it
is closed.
This can be done using a temporary file.
This commit only adds the API but not the proper implementation.
2024-10-15 22:45:50 +02:00
Le Philousophe
867cbfcd0d ANDROID: Create a dedicated define for Android backend
This allows other backends (SDL, libretro) to be used on Android without
hacks.
2024-09-02 20:53:57 +03:00
Le Philousophe
6c248275c8 ANDROID: Fix assertion fault and missing initializer 2023-04-22 12:28:22 +02:00
antoniou79
42991838c5 ANDROID: Comments on Android storage
And a minor comment fix
2023-03-27 14:12:09 +03:00
Le Philousophe
acccb564cb ANDROID: Don't crash when fetchChildren failed in Java 2023-03-18 12:01:05 +01:00
Eugene Sandulenko
1f49e54599
ANDROID: Avoid including translations.h in a header 2023-03-17 14:42:55 +01:00
Le Philousophe
55c9a7529f ANDROID: Don't keep a _cache variable, it's never checked 2023-03-04 18:16:20 +01:00
Le Philousophe
316a6974ba ANDROID: Slightly optimize and rewrite cacheData 2023-03-04 18:16:20 +01:00
Le Philousophe
4bcd7084db ANDROID: Add missing header for Android filesystem specific 2023-02-28 19:31:59 +01:00
Le Philousophe
075c3f4246 ANDROID: Add remove feature to Android filesystem abstraction 2023-02-28 19:12:11 +02:00
Le Philousophe
625c1d10c8 ANDROID: Allow SAF non-existent node creation from path
This is used by DumpFile.
As in all other implementations, parent node is expected to exist.
2023-02-26 12:20:13 +01:00
Le Philousophe
9d879cb04f ANDROID: Allow to create a /saf node from path
This avoids errors when creating parent directories in DumpFile
This also allows the user to specify /saf path in browser to allow
browsing.
2023-02-26 12:20:13 +01:00
Le Philousophe
a8692ebf13 ANDROID: Make SAF strings translatable and better looking 2023-02-12 17:54:45 +01:00
Le Philousophe
baf42ae7e6 ANDROID: Add a dialog to revoke SAF authorizations
Remove old all-in-one revoke authorizations process
2023-01-20 14:14:03 +01:00
Le Philousophe
a465718c24 ANDROID: Fix comment
For coherence sake
2023-01-20 14:14:03 +01:00
Le Philousophe
ca1dbfc9d6 ANDROID: Add SAF support 2023-01-20 14:14:03 +01:00