Commit Graph

47 Commits

Author SHA1 Message Date
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
Julian Winkler
72a8b3a047 add more stubs 2023-11-12 12:16:23 +01:00
Mis012
0b0cfed345 misc: fix stuff up to make SDL example work again
it still behaves weirdly, should probably find some
other example since I don't trust my own code.
2023-10-29 22:48:02 +01:00
Julian Winkler
9025142bdd AssetManager: speed up XML inflation using HashMap caching
This makes XML inflation around 10 times faster. Inflating a layout XML
with one TextView and one ImageView now takes 4 ms instead of 40 ms
2023-10-29 15:28:06 +01:00
Mis012
43306bf174 api-impl/android/content/res/AssetManager: fix infinite loop with suspicious self-referencing arsc entries 2023-10-09 20:11:36 +02:00
Mis012
1b33acb658 api-impl/android/content: implement metadata bundle in PackageInfo 2023-10-08 22:33:14 +02:00
Julian Winkler
97f8c2ed0f Add some missing APIs.
android.widget.Filter and android.webkit.MimeTypeMap are copied from
AOSP. Other new classes are only stub implementations.
2023-09-01 16:05:26 +02:00