mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-11-09 08:50:11 +01:00
update: find PNG when recommended icon is an XML file
APKs can now use XML files for vector graphics like the app icon. `aapt` returns the XML file by default, and perhaps also androguard. This checks if the icon is an XML file, and if so, it tries to find a PNG in the APK with the same name and density to use instead closes #322 This should also ultimately make the XML file available as an icon source as well fdroidclient#1091
This commit is contained in:
parent
c14cbeb0a5
commit
10a607ede3
@ -1386,6 +1386,13 @@ def extract_apk_icons(icon_filename, apk, apkzip, repo_dir):
|
|||||||
icon_dest = os.path.join(icon_dir, icon_filename)
|
icon_dest = os.path.join(icon_dir, icon_filename)
|
||||||
|
|
||||||
# Extract the icon files per density
|
# Extract the icon files per density
|
||||||
|
if icon_src.endswith('.xml'):
|
||||||
|
png = os.path.basename(icon_src)[:-4] + '.png'
|
||||||
|
for f in apkzip.namelist():
|
||||||
|
if f.endswith(png):
|
||||||
|
m = re.match(r'res/drawable-(x*[hlm]dpi).*/', f)
|
||||||
|
if m and screen_resolutions[m.group(1)] == density:
|
||||||
|
icon_src = f
|
||||||
try:
|
try:
|
||||||
with open(icon_dest, 'wb') as f:
|
with open(icon_dest, 'wb') as f:
|
||||||
f.write(get_icon_bytes(apkzip, icon_src))
|
f.write(get_icon_bytes(apkzip, icon_src))
|
||||||
|
Loading…
Reference in New Issue
Block a user