1
0
mirror of https://gitlab.com/fdroid/fdroidserver.git synced 2024-11-09 00:40:11 +01:00

update: do not crash on android-26+ XML icon

For example:
res/drawable-v26/icon.xml

Here's the full range of possibilities, we have a lot of work to do:

$ for f in */*.apk; do unzip -l $f |grep -F icon.| grep -Eo 'res/drawable[^/]*'; done | sort -u
res/drawable
res/drawable-anydpi-v21
res/drawable-anydpi-v26
res/drawable-hdpi
res/drawable-hdpi-v11
res/drawable-hdpi-v12
res/drawable-hdpi-v4
res/drawable-hdpi-v5
res/drawable-hdpi-v6
res/drawable-hdpi-v9
res/drawable-large
res/drawable-large-hdpi-v11
res/drawable-large-hdpi-v4
res/drawable-large-ldpi-v4
res/drawable-large-mdpi
res/drawable-large-mdpi-v11
res/drawable-large-v4
res/drawable-large-xhdpi-v11
res/drawable-large-xhdpi-v4
res/drawable-large-xxhdpi-v11
res/drawable-large-xxhdpi-v4
res/drawable-ldpi
res/drawable-ldpi-v11
res/drawable-ldpi-v4
res/drawable-ldpi-v5
res/drawable-ldpi-v6
res/drawable-ldpi-v9
res/drawable-ldrtl-v17
res/drawable-mdpi
res/drawable-mdpi-v11
res/drawable-mdpi-v12
res/drawable-mdpi-v4
res/drawable-mdpi-v5
res/drawable-mdpi-v6
res/drawable-mdpi-v9
res/drawable-nodpi
res/drawable-nodpi-v4
res/drawable-tvdpi-v4
res/drawable-v11
res/drawable-v14
res/drawable-v21
res/drawable-xhdpi
res/drawable-xhdpi-v11
res/drawable-xhdpi-v12
res/drawable-xhdpi-v4
res/drawable-xhdpi-v9
res/drawable-xlarge-hdpi
res/drawable-xlarge-hdpi-v4
res/drawable-xlarge-mdpi
res/drawable-xlarge-mdpi-v4
res/drawable-xlarge-v4
res/drawable-xlarge-xhdpi-v4
res/drawable-xxhdpi
res/drawable-xxhdpi-v11
res/drawable-xxhdpi-v21
res/drawable-xxhdpi-v4
res/drawable-xxhdpi-v9
res/drawable-xxxhdpi
res/drawable-xxxhdpi-v11
res/drawable-xxxhdpi-v4
This commit is contained in:
Hans-Christoph Steiner 2018-03-13 12:13:23 +01:00
parent e89478e529
commit 3b09e5ee08

View File

@ -60,6 +60,7 @@ APK_PERMISSION_PAT = \
APK_FEATURE_PAT = re.compile(".*name='([^']*)'.*") APK_FEATURE_PAT = re.compile(".*name='([^']*)'.*")
screen_densities = ['65534', '640', '480', '320', '240', '160', '120'] screen_densities = ['65534', '640', '480', '320', '240', '160', '120']
# resolutions must end with 'dpi'
screen_resolutions = { screen_resolutions = {
"xxxhdpi": '640', "xxxhdpi": '640',
"xxhdpi": '480', "xxhdpi": '480',
@ -67,7 +68,7 @@ screen_resolutions = {
"hdpi": '240', "hdpi": '240',
"mdpi": '160', "mdpi": '160',
"ldpi": '120', "ldpi": '120',
"undefined": '-1', "undefineddpi": '-1',
"anydpi": '65534', "anydpi": '65534',
"nodpi": '65535' "nodpi": '65535'
} }
@ -1090,7 +1091,7 @@ def _get_apk_icons_src(apkfile, icon_name):
m = density_re.match(filename) m = density_re.match(filename)
if m: if m:
folder = m.group(1).split('-') folder = m.group(1).split('-')
if len(folder) > 1: if len(folder) > 1 and folder[1].endswith('dpi'):
density = screen_resolutions[folder[1]] density = screen_resolutions[folder[1]]
else: else:
density = '160' density = '160'