mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-11-09 00:40:11 +01:00
Use application: and launchable-activity: icons as fallback
This commit is contained in:
parent
242de2368a
commit
d6810bfaf7
@ -334,6 +334,7 @@ def scan_apks(apps, apkcache, repodir, knownapks):
|
|||||||
vername_pat = re.compile(".*versionName='([^']*)'.*")
|
vername_pat = re.compile(".*versionName='([^']*)'.*")
|
||||||
label_pat = re.compile(".*label='(.*?)'(\n| [a-z]*?=).*")
|
label_pat = re.compile(".*label='(.*?)'(\n| [a-z]*?=).*")
|
||||||
icon_pat = re.compile(".*application-icon-([0-9]+):'([^']+?)'.*")
|
icon_pat = re.compile(".*application-icon-([0-9]+):'([^']+?)'.*")
|
||||||
|
icon_pat_nodpi = re.compile(".*icon='([^']+?)'.*")
|
||||||
sdkversion_pat = re.compile(".*'([0-9]*)'.*")
|
sdkversion_pat = re.compile(".*'([0-9]*)'.*")
|
||||||
string_pat = re.compile(".*'([^']*)'.*")
|
string_pat = re.compile(".*'([^']*)'.*")
|
||||||
for apkfile in glob.glob(os.path.join(repodir, '*.apk')):
|
for apkfile in glob.glob(os.path.join(repodir, '*.apk')):
|
||||||
@ -379,13 +380,27 @@ def scan_apks(apps, apkcache, repodir, knownapks):
|
|||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
elif line.startswith("application:"):
|
elif line.startswith("application:"):
|
||||||
thisinfo['name'] = re.match(label_pat, line).group(1)
|
thisinfo['name'] = re.match(label_pat, line).group(1)
|
||||||
|
if 'icons_src' not in thisinfo:
|
||||||
|
thisinfo['icons_src'] = {}
|
||||||
|
# Keep path to non-dpi icon in case we need it
|
||||||
|
match = re.match(icon_pat_nodpi, line)
|
||||||
|
if match:
|
||||||
|
thisinfo['icons_src']['-1'] = match.group(1)
|
||||||
|
elif line.startswith("launchable-activity:"):
|
||||||
|
if 'icons_src' not in thisinfo:
|
||||||
|
thisinfo['icons_src'] = {}
|
||||||
|
# Only use launchable-activity as fallback to application
|
||||||
|
elif '-1' not in thisinfo['icons_src']:
|
||||||
|
match = re.match(icon_pat_nodpi, line)
|
||||||
|
if match:
|
||||||
|
thisinfo['icons_src']['-1'] = match.group(1)
|
||||||
elif line.startswith("application-icon-"):
|
elif line.startswith("application-icon-"):
|
||||||
|
if 'icons_src' not in thisinfo:
|
||||||
|
thisinfo['icons_src'] = {}
|
||||||
match = re.match(icon_pat, line)
|
match = re.match(icon_pat, line)
|
||||||
if match:
|
if match:
|
||||||
density = match.group(1)
|
density = match.group(1)
|
||||||
path = match.group(2)
|
path = match.group(2)
|
||||||
if 'icons_src' not in thisinfo:
|
|
||||||
thisinfo['icons_src'] = {}
|
|
||||||
thisinfo['icons_src'][density] = path
|
thisinfo['icons_src'][density] = path
|
||||||
elif line.startswith("sdkVersion:"):
|
elif line.startswith("sdkVersion:"):
|
||||||
thisinfo['sdkversion'] = re.match(sdkversion_pat, line).group(1)
|
thisinfo['sdkversion'] = re.match(sdkversion_pat, line).group(1)
|
||||||
@ -477,8 +492,8 @@ def scan_apks(apps, apkcache, repodir, knownapks):
|
|||||||
|
|
||||||
resize_icon(icondest, density)
|
resize_icon(icondest, density)
|
||||||
|
|
||||||
last_density = None
|
|
||||||
# First try resizing down to not lose quality
|
# First try resizing down to not lose quality
|
||||||
|
last_density = None
|
||||||
for density in densities:
|
for density in densities:
|
||||||
if density not in empty_densities:
|
if density not in empty_densities:
|
||||||
last_density = density
|
last_density = density
|
||||||
@ -500,8 +515,8 @@ def scan_apks(apps, apkcache, repodir, knownapks):
|
|||||||
im.save(iconpath, "PNG")
|
im.save(iconpath, "PNG")
|
||||||
empty_densities.remove(density)
|
empty_densities.remove(density)
|
||||||
|
|
||||||
last_density = None
|
|
||||||
# Then just copy from the highest resolution available
|
# Then just copy from the highest resolution available
|
||||||
|
last_density = None
|
||||||
for density in reversed(densities):
|
for density in reversed(densities):
|
||||||
if density not in empty_densities:
|
if density not in empty_densities:
|
||||||
last_density = density
|
last_density = density
|
||||||
|
Loading…
Reference in New Issue
Block a user