Commit Graph

53 Commits

Author SHA1 Message Date
Mis012
2e9099baed AssetManager: use locking 2025-03-07 18:41:21 +01:00
Mis012
f0fcd47c80 replace our implementation of applyStyle with a native function that calls into libandroidfw
also change a few things to work with latest libandroidfw, since we are now using
it's helper functions that need to agree on e.g STYLE_NUM_ENTRIES with the Java
code.
2025-02-27 22:44:55 +01:00
Mis012
d97c3ee048 AssetManager: update to use v2 of libandroidfw C api 2025-02-27 22:44:55 +01:00
Julian Winkler
54aaa42d86 ViewGroup: prevent NotFoundException caused by log message 2025-01-11 22:42:25 +01:00
Mis012
279c95becb borrow relevant parts of AOSP commit dbee9bb342cdfaa5155b1918f90262c05e2464cb
Our SVG-based VectorDrawable implementation still relies on `getDefaultColor`
but exceptions are no longer thrown when parsing VectorDrawable xml files
which use gradients as colors.
2025-01-02 22:25:13 +01:00
Mis012
7d59407138 AssetManager: implement resolveAttrs 2025-01-02 22:18:45 +01:00
Mis012
060ea72f94 AssetManager: use AndroidManifest.xml to identify apks
resources.arsc may be missing in rare cases
2024-12-20 00:12:01 +01:00
Julian Winkler
acdd3c88cc AssetManager: fix resource loading if APK path contains spaces
Spaces will get encoded to %20 by the ClassLoader. We need to decode
them again to get the original path.
2024-11-01 17:49:20 +01:00
Mis012
4fd7e2cbb1 AssetManager: fix up AssetInputStream 2024-06-13 20:37:35 +02:00
Mis012
92bb75d19f AssetManager: fix open and openNonAsset not throwing exception on error 2024-05-27 14:01:43 +02:00
Julian Winkler
71717edc58 AssetManager: fix Asset XML file not found error on 32bit
The xmlBlock variable is now a pointer with the recent changes.
So, we shouldn't compare it with >= 0.

The error went unnoticed, because it was only tested on 64bit until now
2024-05-26 16:20:48 +02:00
Julian Winkler
ff3c103377 SoundPool: explicitly extract soundfile asset
With the recent changes assets are no longer extracted by default
2024-05-26 16:20:48 +02:00
Mis012
4374ac01ad AssetManager: use libandroidfw to read assets straight from the apk file
they can still be put on the filesystem and will be read from there
preferentially, though overriding assets in this way can confuse
some creatively written apps and cause them to crash.
2024-05-26 00:10:16 +02:00
Julian Winkler
778d19f268 remove remaining dependencies on ARSClib 2024-05-23 23:30:03 +02:00
Julian Winkler
cc5d4a3cb3 use libandroidfw for resource XML parsing
androidfw is implemented in native code and has much better performance
than ARSClib
2024-05-12 16:49:14 +00:00
Julian Winkler
ce6b83ad81 AssetManager: load style with parser.getAttribute(null, "style")
This way, we get the type as well and can check for it being an
attribute properly.
2024-04-09 18:19:44 +02:00
Mis012
0352a307b9 AssetManager: applyStyle: use loadResourceBagValue instead of creating a temporary theme 2024-04-08 18:28:18 +02:00
Mis012
0f14370c8b AssetManager: applyStyle: handle "style" value being an attribute, append styles to global theme instead of replacing it 2024-04-07 23:23:31 +02:00
Julian Winkler
005e2299bd automatically enable UI_MODE_NIGHT when gtk-theme-name contains "dark"
gtk-theme-name is only checked once at start up
2024-03-10 12:05:33 +01:00
Julian Winkler
f3292a76f2 AssetManager: special handling for style and array types
These are complex and can't be loaded into a TypedArray
2024-02-10 10:28:48 +01:00
Julian Winkler
7c59ed33bd make AssetManager feature complete with pre androidfw version 2024-02-06 16:41:49 +01:00
Julian Winkler
c1d8956309 AssetManager: use libandroidfw for everything except XML parsing
binary XML parsing still relies on ARSClib for now
2024-02-06 16:41:49 +01:00
Julian Winkler
8d4d0021b3 use libandroidfw also for themes 2024-02-06 16:41:49 +01:00
Julian Winkler
3284518418 AssetManager: use libandroidfw instead of ARSClib for resources.arsc parsing
This reduces startup time and RAM usage. Not yet feature complete with
the ARSClib based implementation, but Gravity Defied runs already
2024-02-06 16:41:48 +01:00
Julian Winkler
493cb8284a fix some Drawable related crashes in NewPipe 2023-12-30 23:38:56 +01:00