mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-10-03 17:50:11 +02:00
purge code that modifies the app description, including linkifying
closes #845
This commit is contained in:
parent
15a6e2d3a0
commit
828d6015ef
@ -405,7 +405,7 @@ def make_v0(apps, apks, repodir, repodict, requestsdict, fdroid_signing_key_fing
|
|||||||
addElement('icon', app.icon, doc, apel)
|
addElement('icon', app.icon, doc, apel)
|
||||||
|
|
||||||
addElementCheckLocalized('desc', app, 'Description', doc, apel,
|
addElementCheckLocalized('desc', app, 'Description', doc, apel,
|
||||||
'<p>No description available</p>')
|
'No description available')
|
||||||
|
|
||||||
addElement('license', app.License, doc, apel)
|
addElement('license', app.License, doc, apel)
|
||||||
if app.Categories:
|
if app.Categories:
|
||||||
|
@ -583,7 +583,7 @@ def main():
|
|||||||
config = common.read_config(options)
|
config = common.read_config(options)
|
||||||
|
|
||||||
# Get all apps...
|
# Get all apps...
|
||||||
allapps = metadata.read_metadata(xref=True)
|
allapps = metadata.read_metadata()
|
||||||
apps = common.read_app_args(options.appid, allapps, False)
|
apps = common.read_app_args(options.appid, allapps, False)
|
||||||
|
|
||||||
anywarns = check_for_unsupported_metadata_files()
|
anywarns = check_for_unsupported_metadata_files()
|
||||||
|
@ -21,10 +21,7 @@
|
|||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import glob
|
import glob
|
||||||
import html
|
|
||||||
import logging
|
import logging
|
||||||
import textwrap
|
|
||||||
import io
|
|
||||||
import yaml
|
import yaml
|
||||||
try:
|
try:
|
||||||
from yaml import CSafeLoader as SafeLoader
|
from yaml import CSafeLoader as SafeLoader
|
||||||
@ -467,196 +464,6 @@ def check_metadata(app):
|
|||||||
v.check(app[k], app.id)
|
v.check(app[k], app.id)
|
||||||
|
|
||||||
|
|
||||||
# Formatter for descriptions. Create an instance, and call parseline() with
|
|
||||||
# each line of the description source from the metadata. At the end, call
|
|
||||||
# end() and then text_txt and text_html will contain the result.
|
|
||||||
class DescriptionFormatter:
|
|
||||||
|
|
||||||
stNONE = 0
|
|
||||||
stPARA = 1
|
|
||||||
stUL = 2
|
|
||||||
stOL = 3
|
|
||||||
|
|
||||||
def __init__(self, linkres):
|
|
||||||
self.bold = False
|
|
||||||
self.ital = False
|
|
||||||
self.state = self.stNONE
|
|
||||||
self.laststate = self.stNONE
|
|
||||||
self.text_html = ''
|
|
||||||
self.text_txt = ''
|
|
||||||
self.html = io.StringIO()
|
|
||||||
self.text = io.StringIO()
|
|
||||||
self.para_lines = []
|
|
||||||
self.linkResolver = None
|
|
||||||
self.linkResolver = linkres
|
|
||||||
|
|
||||||
def endcur(self, notstates=None):
|
|
||||||
if notstates and self.state in notstates:
|
|
||||||
return
|
|
||||||
if self.state == self.stPARA:
|
|
||||||
self.endpara()
|
|
||||||
elif self.state == self.stUL:
|
|
||||||
self.endul()
|
|
||||||
elif self.state == self.stOL:
|
|
||||||
self.endol()
|
|
||||||
|
|
||||||
def endpara(self):
|
|
||||||
self.laststate = self.state
|
|
||||||
self.state = self.stNONE
|
|
||||||
whole_para = ' '.join(self.para_lines)
|
|
||||||
self.addtext(whole_para)
|
|
||||||
wrapped = textwrap.fill(whole_para, 80,
|
|
||||||
break_long_words=False,
|
|
||||||
break_on_hyphens=False)
|
|
||||||
self.text.write(wrapped)
|
|
||||||
self.html.write('</p>')
|
|
||||||
del self.para_lines[:]
|
|
||||||
|
|
||||||
def endul(self):
|
|
||||||
self.html.write('</ul>')
|
|
||||||
self.laststate = self.state
|
|
||||||
self.state = self.stNONE
|
|
||||||
|
|
||||||
def endol(self):
|
|
||||||
self.html.write('</ol>')
|
|
||||||
self.laststate = self.state
|
|
||||||
self.state = self.stNONE
|
|
||||||
|
|
||||||
def formatted(self, txt, htmlbody):
|
|
||||||
res = ''
|
|
||||||
if htmlbody:
|
|
||||||
txt = html.escape(txt, quote=False)
|
|
||||||
while True:
|
|
||||||
index = txt.find("''")
|
|
||||||
if index == -1:
|
|
||||||
return res + txt
|
|
||||||
res += txt[:index]
|
|
||||||
txt = txt[index:]
|
|
||||||
if txt.startswith("'''"):
|
|
||||||
if htmlbody:
|
|
||||||
if self.bold:
|
|
||||||
res += '</b>'
|
|
||||||
else:
|
|
||||||
res += '<b>'
|
|
||||||
self.bold = not self.bold
|
|
||||||
txt = txt[3:]
|
|
||||||
else:
|
|
||||||
if htmlbody:
|
|
||||||
if self.ital:
|
|
||||||
res += '</i>'
|
|
||||||
else:
|
|
||||||
res += '<i>'
|
|
||||||
self.ital = not self.ital
|
|
||||||
txt = txt[2:]
|
|
||||||
|
|
||||||
def linkify(self, txt):
|
|
||||||
res_plain = ''
|
|
||||||
res_html = ''
|
|
||||||
while True:
|
|
||||||
index = txt.find("[")
|
|
||||||
if index == -1:
|
|
||||||
return (res_plain + self.formatted(txt, False), res_html + self.formatted(txt, True))
|
|
||||||
res_plain += self.formatted(txt[:index], False)
|
|
||||||
res_html += self.formatted(txt[:index], True)
|
|
||||||
txt = txt[index:]
|
|
||||||
if txt.startswith("[["):
|
|
||||||
index = txt.find("]]")
|
|
||||||
if index == -1:
|
|
||||||
_warn_or_exception(_("Unterminated ]]"))
|
|
||||||
url = txt[2:index]
|
|
||||||
if self.linkResolver:
|
|
||||||
url, urltext = self.linkResolver.resolve_description_link(url)
|
|
||||||
else:
|
|
||||||
urltext = url
|
|
||||||
res_html += '<a href="' + url + '">' + html.escape(urltext, quote=False) + '</a>'
|
|
||||||
res_plain += urltext
|
|
||||||
txt = txt[index + 2:]
|
|
||||||
else:
|
|
||||||
index = txt.find("]")
|
|
||||||
if index == -1:
|
|
||||||
_warn_or_exception(_("Unterminated ]"))
|
|
||||||
url = txt[1:index]
|
|
||||||
index2 = url.find(' ')
|
|
||||||
if index2 == -1:
|
|
||||||
urltxt = url
|
|
||||||
else:
|
|
||||||
urltxt = url[index2 + 1:]
|
|
||||||
url = url[:index2]
|
|
||||||
if url == urltxt:
|
|
||||||
_warn_or_exception(_("URL title is just the URL, use brackets: [URL]"))
|
|
||||||
res_html += '<a href="' + url + '">' + html.escape(urltxt, quote=False) + '</a>'
|
|
||||||
res_plain += urltxt
|
|
||||||
if urltxt != url:
|
|
||||||
res_plain += ' (' + url + ')'
|
|
||||||
txt = txt[index + 1:]
|
|
||||||
|
|
||||||
def addtext(self, txt):
|
|
||||||
p, h = self.linkify(txt)
|
|
||||||
self.html.write(h)
|
|
||||||
|
|
||||||
def parseline(self, line):
|
|
||||||
if not line:
|
|
||||||
self.endcur()
|
|
||||||
elif line.startswith('* '):
|
|
||||||
self.endcur([self.stUL])
|
|
||||||
if self.state != self.stUL:
|
|
||||||
self.html.write('<ul>')
|
|
||||||
self.state = self.stUL
|
|
||||||
if self.laststate != self.stNONE:
|
|
||||||
self.text.write('\n\n')
|
|
||||||
else:
|
|
||||||
self.text.write('\n')
|
|
||||||
self.text.write(line)
|
|
||||||
self.html.write('<li>')
|
|
||||||
self.addtext(line[1:])
|
|
||||||
self.html.write('</li>')
|
|
||||||
elif line.startswith('# '):
|
|
||||||
self.endcur([self.stOL])
|
|
||||||
if self.state != self.stOL:
|
|
||||||
self.html.write('<ol>')
|
|
||||||
self.state = self.stOL
|
|
||||||
if self.laststate != self.stNONE:
|
|
||||||
self.text.write('\n\n')
|
|
||||||
else:
|
|
||||||
self.text.write('\n')
|
|
||||||
self.text.write(line)
|
|
||||||
self.html.write('<li>')
|
|
||||||
self.addtext(line[1:])
|
|
||||||
self.html.write('</li>')
|
|
||||||
else:
|
|
||||||
self.para_lines.append(line)
|
|
||||||
self.endcur([self.stPARA])
|
|
||||||
if self.state == self.stNONE:
|
|
||||||
self.state = self.stPARA
|
|
||||||
if self.laststate != self.stNONE:
|
|
||||||
self.text.write('\n\n')
|
|
||||||
self.html.write('<p>')
|
|
||||||
|
|
||||||
def end(self):
|
|
||||||
self.endcur()
|
|
||||||
self.text_txt = self.text.getvalue()
|
|
||||||
self.text_html = self.html.getvalue()
|
|
||||||
self.text.close()
|
|
||||||
self.html.close()
|
|
||||||
|
|
||||||
|
|
||||||
# Parse multiple lines of description as written in a metadata file, returning
|
|
||||||
# a single string in wiki format. Used for the Maintainer Notes field as well,
|
|
||||||
# because it's the same format.
|
|
||||||
def description_wiki(s):
|
|
||||||
return s
|
|
||||||
|
|
||||||
|
|
||||||
# Parse multiple lines of description as written in a metadata file, returning
|
|
||||||
# a single string in HTML format.
|
|
||||||
def description_html(s, linkres):
|
|
||||||
ps = DescriptionFormatter(linkres)
|
|
||||||
for line in s.splitlines():
|
|
||||||
ps.parseline(line)
|
|
||||||
ps.end()
|
|
||||||
return ps.text_html
|
|
||||||
|
|
||||||
|
|
||||||
def parse_yaml_srclib(metadatapath):
|
def parse_yaml_srclib(metadatapath):
|
||||||
|
|
||||||
thisinfo = {'RepoType': '',
|
thisinfo = {'RepoType': '',
|
||||||
@ -734,7 +541,7 @@ def read_srclibs():
|
|||||||
srclibs[srclibname] = parse_yaml_srclib(metadatapath)
|
srclibs[srclibname] = parse_yaml_srclib(metadatapath)
|
||||||
|
|
||||||
|
|
||||||
def read_metadata(xref=True, check_vcs=[], refresh=True, sort_by_time=False):
|
def read_metadata(check_vcs=[], refresh=True, sort_by_time=False):
|
||||||
"""Return a list of App instances sorted newest first
|
"""Return a list of App instances sorted newest first
|
||||||
|
|
||||||
This reads all of the metadata files in a 'data' repository, then
|
This reads all of the metadata files in a 'data' repository, then
|
||||||
@ -780,16 +587,6 @@ def read_metadata(xref=True, check_vcs=[], refresh=True, sort_by_time=False):
|
|||||||
check_metadata(app)
|
check_metadata(app)
|
||||||
apps[app.id] = app
|
apps[app.id] = app
|
||||||
|
|
||||||
if xref:
|
|
||||||
# Parse all descriptions at load time, just to ensure cross-referencing
|
|
||||||
# errors are caught early rather than when they hit the build server.
|
|
||||||
for appid, app in apps.items():
|
|
||||||
try:
|
|
||||||
description_html(app.Description, DummyDescriptionResolver(apps))
|
|
||||||
except MetaDataException as e:
|
|
||||||
_warn_or_exception(_("Problem with description of {appid}: {error}")
|
|
||||||
.format(appid=appid, error=str(e)))
|
|
||||||
|
|
||||||
return apps
|
return apps
|
||||||
|
|
||||||
|
|
||||||
@ -1179,23 +976,3 @@ def add_metadata_arguments(parser):
|
|||||||
'''add common command line flags related to metadata processing'''
|
'''add common command line flags related to metadata processing'''
|
||||||
parser.add_argument("-W", choices=['error', 'warn', 'ignore'], default='error',
|
parser.add_argument("-W", choices=['error', 'warn', 'ignore'], default='error',
|
||||||
help=_("force metadata errors (default) to be warnings, or to be ignored."))
|
help=_("force metadata errors (default) to be warnings, or to be ignored."))
|
||||||
|
|
||||||
|
|
||||||
class DescriptionResolver:
|
|
||||||
def __init__(self, apps):
|
|
||||||
self.apps = apps
|
|
||||||
|
|
||||||
def resolve_description_link(self, appid):
|
|
||||||
if appid in self.apps:
|
|
||||||
if self.apps[appid].Name:
|
|
||||||
return "fdroid.app:" + appid, self.apps[appid].Name
|
|
||||||
raise MetaDataException(_('Cannot resolve application ID {appid}')
|
|
||||||
.format(appid=appid))
|
|
||||||
|
|
||||||
|
|
||||||
class DummyDescriptionResolver(DescriptionResolver):
|
|
||||||
def resolve_description_link(self, appid):
|
|
||||||
if appid in self.apps:
|
|
||||||
return "fdroid.app:" + appid, "Dummy name - don't know yet"
|
|
||||||
_warn_or_exception(_('Cannot resolve application ID {appid}')
|
|
||||||
.format(appid=appid))
|
|
||||||
|
@ -32,7 +32,7 @@ def main():
|
|||||||
metadata.warnings_action = options.W
|
metadata.warnings_action = options.W
|
||||||
common.read_config(None)
|
common.read_config(None)
|
||||||
|
|
||||||
metadata.read_metadata(xref=True)
|
metadata.read_metadata()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
@ -61,7 +61,7 @@ def main():
|
|||||||
config = common.read_config(options)
|
config = common.read_config(options)
|
||||||
|
|
||||||
# Get all apps...
|
# Get all apps...
|
||||||
allapps = metadata.read_metadata(xref=True)
|
allapps = metadata.read_metadata()
|
||||||
apps = common.read_app_args(options.appid, allapps, False)
|
apps = common.read_app_args(options.appid, allapps, False)
|
||||||
|
|
||||||
for appid, app in apps.items():
|
for appid, app in apps.items():
|
||||||
|
@ -234,11 +234,11 @@ def update_wiki(apps, apks):
|
|||||||
wikidata += " - [https://f-droid.org/repository/browse/?fdid=" + appid + " view in repository]\n\n"
|
wikidata += " - [https://f-droid.org/repository/browse/?fdid=" + appid + " view in repository]\n\n"
|
||||||
|
|
||||||
wikidata += "=Description=\n"
|
wikidata += "=Description=\n"
|
||||||
wikidata += metadata.description_wiki(app.Description) + "\n"
|
wikidata += app.Description + "\n"
|
||||||
|
|
||||||
wikidata += "=Maintainer Notes=\n"
|
wikidata += "=Maintainer Notes=\n"
|
||||||
if app.MaintainerNotes:
|
if app.MaintainerNotes:
|
||||||
wikidata += metadata.description_wiki(app.MaintainerNotes) + "\n"
|
wikidata += app.MaintainerNotes + "\n"
|
||||||
wikidata += "\nMetadata: [https://gitlab.com/fdroid/fdroiddata/blob/master/metadata/{0}.yml current] [https://gitlab.com/fdroid/fdroiddata/commits/master/metadata/{0}.yml history]\n".format(appid)
|
wikidata += "\nMetadata: [https://gitlab.com/fdroid/fdroiddata/blob/master/metadata/{0}.yml current] [https://gitlab.com/fdroid/fdroiddata/commits/master/metadata/{0}.yml history]\n".format(appid)
|
||||||
|
|
||||||
# Get a list of all packages for this application...
|
# Get a list of all packages for this application...
|
||||||
@ -2120,16 +2120,6 @@ def read_names_from_apks(apps, apks):
|
|||||||
app.Name = bestapk['name']
|
app.Name = bestapk['name']
|
||||||
|
|
||||||
|
|
||||||
def render_app_descriptions(apps, all_apps):
|
|
||||||
"""
|
|
||||||
Renders the app html description.
|
|
||||||
For resolving inter-app links it needs the full list of apps, even if they end up in
|
|
||||||
separate repos (i.e. archive or per app repos).
|
|
||||||
"""
|
|
||||||
for app in apps.values():
|
|
||||||
app['Description'] = metadata.description_html(app['Description'], metadata.DescriptionResolver(all_apps))
|
|
||||||
|
|
||||||
|
|
||||||
def get_apps_with_packages(apps, apks):
|
def get_apps_with_packages(apps, apks):
|
||||||
"""Returns a deepcopy of that subset apps that actually has any associated packages. Skips disabled apps."""
|
"""Returns a deepcopy of that subset apps that actually has any associated packages. Skips disabled apps."""
|
||||||
appsWithPackages = collections.OrderedDict()
|
appsWithPackages = collections.OrderedDict()
|
||||||
@ -2157,7 +2147,6 @@ def prepare_apps(apps, apks, repodir):
|
|||||||
"""
|
"""
|
||||||
apps_with_packages = get_apps_with_packages(apps, apks)
|
apps_with_packages = get_apps_with_packages(apps, apks)
|
||||||
apply_info_from_latest_apk(apps_with_packages, apks)
|
apply_info_from_latest_apk(apps_with_packages, apks)
|
||||||
render_app_descriptions(apps_with_packages, apps)
|
|
||||||
insert_funding_yml_donation_links(apps)
|
insert_funding_yml_donation_links(apps)
|
||||||
# This is only currently done for /repo because doing it for the archive
|
# This is only currently done for /repo because doing it for the archive
|
||||||
# will take a lot of time and bloat the archive mirrors and index
|
# will take a lot of time and bloat the archive mirrors and index
|
||||||
|
@ -84,7 +84,7 @@ savedir = os.path.join('metadata', 'dump_' + repo.git.describe())
|
|||||||
if not os.path.isdir(savedir):
|
if not os.path.isdir(savedir):
|
||||||
os.mkdir(savedir)
|
os.mkdir(savedir)
|
||||||
|
|
||||||
apps = fdroidserver.metadata.read_metadata(xref=True)
|
apps = fdroidserver.metadata.read_metadata()
|
||||||
for appid, app in apps.items():
|
for appid, app in apps.items():
|
||||||
savepath = os.path.join(savedir, appid + '.yaml')
|
savepath = os.path.join(savedir, appid + '.yaml')
|
||||||
if hasattr(app, 'attr_to_field'):
|
if hasattr(app, 'attr_to_field'):
|
||||||
|
@ -133,7 +133,7 @@ class MetadataTest(unittest.TestCase):
|
|||||||
fdroidserver.common.config = config
|
fdroidserver.common.config = config
|
||||||
fdroidserver.metadata.warnings_action = None
|
fdroidserver.metadata.warnings_action = None
|
||||||
|
|
||||||
apps = fdroidserver.metadata.read_metadata(xref=True)
|
apps = fdroidserver.metadata.read_metadata()
|
||||||
for appid in ('org.smssecure.smssecure', 'org.adaway',
|
for appid in ('org.smssecure.smssecure', 'org.adaway',
|
||||||
'org.videolan.vlc', 'com.politedroid'):
|
'org.videolan.vlc', 'com.politedroid'):
|
||||||
savepath = os.path.join('metadata', 'dump', appid + '.yaml')
|
savepath = os.path.join('metadata', 'dump', appid + '.yaml')
|
||||||
@ -154,7 +154,7 @@ class MetadataTest(unittest.TestCase):
|
|||||||
fdroidserver.metadata.warnings_action = None
|
fdroidserver.metadata.warnings_action = None
|
||||||
|
|
||||||
# rewrite metadata
|
# rewrite metadata
|
||||||
allapps = fdroidserver.metadata.read_metadata(xref=True)
|
allapps = fdroidserver.metadata.read_metadata()
|
||||||
for appid, app in allapps.items():
|
for appid, app in allapps.items():
|
||||||
if appid == 'fake.ota.update':
|
if appid == 'fake.ota.update':
|
||||||
fdroidserver.metadata.write_metadata(os.path.join(testdir, appid + '.yml'), app)
|
fdroidserver.metadata.write_metadata(os.path.join(testdir, appid + '.yml'), app)
|
||||||
@ -170,7 +170,7 @@ class MetadataTest(unittest.TestCase):
|
|||||||
fdroidserver.common.config = {'accepted_formats': ['yml']}
|
fdroidserver.common.config = {'accepted_formats': ['yml']}
|
||||||
|
|
||||||
# rewrite metadata
|
# rewrite metadata
|
||||||
allapps = fdroidserver.metadata.read_metadata(xref=True)
|
allapps = fdroidserver.metadata.read_metadata()
|
||||||
for appid, app in allapps.items():
|
for appid, app in allapps.items():
|
||||||
if appid == 'org.fdroid.fdroid':
|
if appid == 'org.fdroid.fdroid':
|
||||||
fdroidserver.metadata.write_metadata(os.path.join(testdir, appid + '.yml'), app)
|
fdroidserver.metadata.write_metadata(os.path.join(testdir, appid + '.yml'), app)
|
||||||
@ -185,7 +185,7 @@ class MetadataTest(unittest.TestCase):
|
|||||||
testdir = tempfile.mkdtemp(prefix=inspect.currentframe().f_code.co_name, dir=self.tmpdir)
|
testdir = tempfile.mkdtemp(prefix=inspect.currentframe().f_code.co_name, dir=self.tmpdir)
|
||||||
|
|
||||||
# rewrite metadata
|
# rewrite metadata
|
||||||
allapps = fdroidserver.metadata.read_metadata(xref=True)
|
allapps = fdroidserver.metadata.read_metadata()
|
||||||
for appid, app in allapps.items():
|
for appid, app in allapps.items():
|
||||||
if appid == 'app.with.special.build.params':
|
if appid == 'app.with.special.build.params':
|
||||||
fdroidserver.metadata.write_metadata(os.path.join(testdir, appid + '.yml'), app)
|
fdroidserver.metadata.write_metadata(os.path.join(testdir, appid + '.yml'), app)
|
||||||
@ -258,7 +258,7 @@ class MetadataTest(unittest.TestCase):
|
|||||||
randomlist = [os.path.basename(f)[:-4]] + randomlist
|
randomlist = [os.path.basename(f)[:-4]] + randomlist
|
||||||
i += 1
|
i += 1
|
||||||
os.chdir(testdir)
|
os.chdir(testdir)
|
||||||
allapps = fdroidserver.metadata.read_metadata(xref=True, sort_by_time=True)
|
allapps = fdroidserver.metadata.read_metadata(sort_by_time=True)
|
||||||
allappids = []
|
allappids = []
|
||||||
for appid, app in allapps.items():
|
for appid, app in allapps.items():
|
||||||
allappids.append(appid)
|
allappids.append(appid)
|
||||||
@ -828,13 +828,6 @@ class MetadataTest(unittest.TestCase):
|
|||||||
'Subdir': None,
|
'Subdir': None,
|
||||||
'Prepare': None}})
|
'Prepare': None}})
|
||||||
|
|
||||||
def test_read_xref_metadata(self):
|
|
||||||
os.chdir('xref')
|
|
||||||
fdroidserver.metadata.warnings_action = 'error'
|
|
||||||
apps = fdroidserver.metadata.read_metadata(xref=True)
|
|
||||||
self.assertListEqual(list(apps.keys()),
|
|
||||||
['aarddict.android', 'org.coolreader', 'org.geometerplus.zlibrary.ui.android'])
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
os.chdir(os.path.dirname(__file__))
|
os.chdir(os.path.dirname(__file__))
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
],
|
],
|
||||||
"suggestedVersionName": "0.9",
|
"suggestedVersionName": "0.9",
|
||||||
"suggestedVersionCode": "9",
|
"suggestedVersionCode": "9",
|
||||||
"description": "<p>In order to keep away curious eyes, SMS-bypass filters incoming SMS messages before they reach your inbox. Based on bughunter2.smsfilter.</p><p>Features:</p><ul><li> Discrete fake app \"Battery level\": Long tap on Battery percentage will show SMS.</li><li> Filter incoming SMS specified address: redirect the SMS to SMS-bypass messages list; remove SMS arrival sound or vibration; show a discreet notification icon (battery level); vibrate if checked in settings</li><li> Add contact from contact list</li><li> Export messages to a text file</li></ul>",
|
"description": "In order to keep away curious eyes, SMS-bypass filters incoming SMS messages\nbefore they reach your inbox. Based on bughunter2.smsfilter.\n\nFeatures:\n\n* Discrete fake app \"Battery level\": Long tap on Battery percentage will show SMS.\n* Filter incoming SMS specified address: redirect the SMS to SMS-bypass messages list; remove SMS arrival sound or vibration; show a discreet notification icon (battery level); vibrate if checked in settings\n* Add contact from contact list\n* Export messages to a text file",
|
||||||
"donate": "http://rodolphe.souchaud.free.fr/donate",
|
"donate": "http://rodolphe.souchaud.free.fr/donate",
|
||||||
"flattrID": "cad90e036b975ed129a3ce80a0750466",
|
"flattrID": "cad90e036b975ed129a3ce80a0750466",
|
||||||
"issueTracker": "https://gitlab.com/souch/SMSbypass/issues",
|
"issueTracker": "https://gitlab.com/souch/SMSbypass/issues",
|
||||||
@ -73,7 +73,7 @@
|
|||||||
],
|
],
|
||||||
"suggestedVersionName": "0.2.1",
|
"suggestedVersionName": "0.2.1",
|
||||||
"suggestedVersionCode": "2000",
|
"suggestedVersionCode": "2000",
|
||||||
"description": "<p>F-Droid can make use of system privileges or permissions to install, update and remove applications on its own. The only way to obtain those privileges is to become a system app.</p><p>This is where the Privileged Extension comes in - being a separate app and much smaller, it can be installed as a system app and communicate with the main app via AIDL IPC.</p><p>This has several advantages:</p><ul><li> Reduced disk usage in the system partition</li><li> System updates don't remove F-Droid</li><li> The process of installing into system via root is safer</li></ul><p>This is packaged as an OTA (Over-The-Air) update ZIP file. It must be installed using TWRP or other Android recovery that can flash updates to the system from the /data/data/org.fdroid.fdroid folder on the /data partition. The standalone APK is called F-Droid Privileged Extension.</p>",
|
"description": "F-Droid can make use of system privileges or permissions to\ninstall, update and remove applications on its own. The only way to obtain those\nprivileges is to become a system app.\n\nThis is where the Privileged Extension comes in - being a separate app and much\nsmaller, it can be installed as a system app and communicate with the main app\nvia AIDL IPC.\n\nThis has several advantages:\n\n* Reduced disk usage in the system partition\n* System updates don't remove F-Droid\n* The process of installing into system via root is safer\n\nThis is packaged as an OTA (Over-The-Air) update ZIP file. It must be installed\nusing TWRP or other Android recovery that can flash updates to the system from\nthe /data/data/org.fdroid.fdroid folder on the /data partition. The standalone\nAPK is called F-Droid Privileged Extension.",
|
||||||
"donate": "https://f-droid.org/about",
|
"donate": "https://f-droid.org/about",
|
||||||
"issueTracker": "https://gitlab.com/fdroid/privileged-extension/issues",
|
"issueTracker": "https://gitlab.com/fdroid/privileged-extension/issues",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
@ -162,7 +162,7 @@
|
|||||||
],
|
],
|
||||||
"suggestedVersionName": "1.5",
|
"suggestedVersionName": "1.5",
|
||||||
"suggestedVersionCode": "6",
|
"suggestedVersionCode": "6",
|
||||||
"description": "<p>Activates silent mode during calendar events.</p>",
|
"description": "Activates silent mode during calendar events.",
|
||||||
"issueTracker": "https://github.com/miguelvps/PoliteDroid/issues",
|
"issueTracker": "https://github.com/miguelvps/PoliteDroid/issues",
|
||||||
"license": "GPL-3.0-only",
|
"license": "GPL-3.0-only",
|
||||||
"name": "Polite Droid",
|
"name": "Polite Droid",
|
||||||
@ -183,7 +183,7 @@
|
|||||||
"2.0"
|
"2.0"
|
||||||
],
|
],
|
||||||
"suggestedVersionCode": "2147483647",
|
"suggestedVersionCode": "2147483647",
|
||||||
"description": "<p>It\u2019s Urzip \u662f\u4e00\u4e2a\u83b7\u5f97\u5df2\u5b89\u88c5 APK \u76f8\u5173\u4fe1\u606f\u7684\u5b9e\u7528\u5de5\u5177\u3002\u5b83\u4ece\u60a8\u7684\u8bbe\u5907\u4e0a\u5df2\u5b89\u88c5\u7684\u6240\u6709\u5e94\u7528\u5f00\u59cb\uff0c\u4e00\u952e\u89e6\u6478\u5373\u53ef\u663e\u793a APK \u7684\u6307\u7eb9\uff0c\u5e76\u4e14\u63d0\u4f9b\u5230\u8fbe virustotal.com \u548c androidobservatory.org \u7684\u5feb\u6377\u94fe\u63a5\uff0c\u8ba9\u60a8\u65b9\u4fbf\u5730\u4e86\u89e3\u7279\u5b9a APK \u7684\u6863\u6848\u3002\u5b83\u8fd8\u53ef\u4ee5\u8ba9\u60a8\u5bfc\u51fa\u7b7e\u540d\u8bc1\u4e66\u548c\u751f\u6210 ApkSignaturePin Pin \u6587\u4ef6\u4f9b TrustedIntents \u5e93\u4f7f\u7528\u3002</p><p>\u2605 Urzip \u652f\u6301\u4e0b\u5217\u8bed\u8a00\uff1a Deutsch, English, espa\u00f1ol, suomi, \u65e5\u672c\u8a9e, \ud55c\uad6d\uc5b4, Norsk, portugu\u00eas (Portugal), \u0420\u0443\u0441\u0441\u043a\u0438\u0439, Sloven\u0161\u010dina, T\u00fcrk\u00e7e \u6ca1\u770b\u5230\u60a8\u7684\u8bed\u8a00\uff1f\u5e2e\u5fd9\u7ffb\u8bd1\u672c\u5e94\u7528\u5427\uff1a https://www.transifex.com/projects/p/urzip</p><p>\u2605 \u81f4\u7528\u6237\uff1a\u6211\u4eec\u8fd8\u7f3a\u5c11\u4f60\u559c\u6b22\u7684\u529f\u80fd\uff1f\u53d1\u73b0\u4e86\u4e00\u4e2a bug\uff1f\u8bf7\u544a\u8bc9\u6211\u4eec\uff01\u6211\u4eec\u4e50\u4e8e\u542c\u53d6\u60a8\u7684\u610f\u89c1\u3002\u8bf7\u53d1\u9001\u7535\u5b50\u90ae\u4ef6\u81f3: support@guardianproject.info \u6216\u8005\u52a0\u5165\u6211\u4eec\u7684\u804a\u5929\u5ba4 https://guardianproject.info/contact</p>",
|
"description": "It\u2019s Urzip \u662f\u4e00\u4e2a\u83b7\u5f97\u5df2\u5b89\u88c5 APK \u76f8\u5173\u4fe1\u606f\u7684\u5b9e\u7528\u5de5\u5177\u3002\u5b83\u4ece\u60a8\u7684\u8bbe\u5907\u4e0a\u5df2\u5b89\u88c5\u7684\u6240\u6709\u5e94\u7528\u5f00\u59cb\uff0c\u4e00\u952e\u89e6\u6478\u5373\u53ef\u663e\u793a APK \u7684\u6307\u7eb9\uff0c\u5e76\u4e14\u63d0\u4f9b\u5230\u8fbe virustotal.com \u548c androidobservatory.org \u7684\u5feb\u6377\u94fe\u63a5\uff0c\u8ba9\u60a8\u65b9\u4fbf\u5730\u4e86\u89e3\u7279\u5b9a APK \u7684\u6863\u6848\u3002\u5b83\u8fd8\u53ef\u4ee5\u8ba9\u60a8\u5bfc\u51fa\u7b7e\u540d\u8bc1\u4e66\u548c\u751f\u6210 ApkSignaturePin Pin \u6587\u4ef6\u4f9b TrustedIntents \u5e93\u4f7f\u7528\u3002\n\n\u2605 Urzip \u652f\u6301\u4e0b\u5217\u8bed\u8a00\uff1a Deutsch, English, espa\u00f1ol, suomi, \u65e5\u672c\u8a9e, \ud55c\uad6d\uc5b4, Norsk, portugu\u00eas (Portugal), \u0420\u0443\u0441\u0441\u043a\u0438\u0439, Sloven\u0161\u010dina, T\u00fcrk\u00e7e\n\u6ca1\u770b\u5230\u60a8\u7684\u8bed\u8a00\uff1f\u5e2e\u5fd9\u7ffb\u8bd1\u672c\u5e94\u7528\u5427\uff1a\nhttps://www.transifex.com/projects/p/urzip\n\n\u2605 \u81f4\u7528\u6237\uff1a\u6211\u4eec\u8fd8\u7f3a\u5c11\u4f60\u559c\u6b22\u7684\u529f\u80fd\uff1f\u53d1\u73b0\u4e86\u4e00\u4e2a bug\uff1f\u8bf7\u544a\u8bc9\u6211\u4eec\uff01\u6211\u4eec\u4e50\u4e8e\u542c\u53d6\u60a8\u7684\u610f\u89c1\u3002\u8bf7\u53d1\u9001\u7535\u5b50\u90ae\u4ef6\u81f3: support@guardianproject.info \u6216\u8005\u52a0\u5165\u6211\u4eec\u7684\u804a\u5929\u5ba4 https://guardianproject.info/contact\n",
|
||||||
"issueTracker": "https://dev.guardianproject.info/projects/urzip/issues",
|
"issueTracker": "https://dev.guardianproject.info/projects/urzip/issues",
|
||||||
"liberapayID": "9999999",
|
"liberapayID": "9999999",
|
||||||
"license": "GPL-3.0-only",
|
"license": "GPL-3.0-only",
|
||||||
|
@ -15,7 +15,15 @@
|
|||||||
<name>Battery level</name>
|
<name>Battery level</name>
|
||||||
<summary>Filter SMS and show them in a fake app</summary>
|
<summary>Filter SMS and show them in a fake app</summary>
|
||||||
<icon>souch.smsbypass.9.png</icon>
|
<icon>souch.smsbypass.9.png</icon>
|
||||||
<desc><p>In order to keep away curious eyes, SMS-bypass filters incoming SMS messages before they reach your inbox. Based on bughunter2.smsfilter.</p><p>Features:</p><ul><li> Discrete fake app "Battery level": Long tap on Battery percentage will show SMS.</li><li> Filter incoming SMS specified address: redirect the SMS to SMS-bypass messages list; remove SMS arrival sound or vibration; show a discreet notification icon (battery level); vibrate if checked in settings</li><li> Add contact from contact list</li><li> Export messages to a text file</li></ul></desc>
|
<desc>In order to keep away curious eyes, SMS-bypass filters incoming SMS messages
|
||||||
|
before they reach your inbox. Based on bughunter2.smsfilter.
|
||||||
|
|
||||||
|
Features:
|
||||||
|
|
||||||
|
* Discrete fake app "Battery level": Long tap on Battery percentage will show SMS.
|
||||||
|
* Filter incoming SMS specified address: redirect the SMS to SMS-bypass messages list; remove SMS arrival sound or vibration; show a discreet notification icon (battery level); vibrate if checked in settings
|
||||||
|
* Add contact from contact list
|
||||||
|
* Export messages to a text file</desc>
|
||||||
<license>GPL-3.0-only</license>
|
<license>GPL-3.0-only</license>
|
||||||
<categories>Phone & SMS</categories>
|
<categories>Phone & SMS</categories>
|
||||||
<category>Phone & SMS</category>
|
<category>Phone & SMS</category>
|
||||||
@ -46,7 +54,7 @@
|
|||||||
<name>Caffeine Tile</name>
|
<name>Caffeine Tile</name>
|
||||||
<summary>Test app for extracting icons when an XML one is default</summary>
|
<summary>Test app for extracting icons when an XML one is default</summary>
|
||||||
<icon>info.zwanenburg.caffeinetile.4.xml</icon>
|
<icon>info.zwanenburg.caffeinetile.4.xml</icon>
|
||||||
<desc><p>No description available</p></desc>
|
<desc>No description available</desc>
|
||||||
<license>Unknown</license>
|
<license>Unknown</license>
|
||||||
<categories>Development</categories>
|
<categories>Development</categories>
|
||||||
<category>Development</category>
|
<category>Development</category>
|
||||||
@ -75,7 +83,7 @@
|
|||||||
<name>Duplicate Permisssions</name>
|
<name>Duplicate Permisssions</name>
|
||||||
<summary>Test app for all possible <uses-permissions></summary>
|
<summary>Test app for all possible <uses-permissions></summary>
|
||||||
<icon>duplicate.permisssions.9999999.png</icon>
|
<icon>duplicate.permisssions.9999999.png</icon>
|
||||||
<desc><p>No description available</p></desc>
|
<desc>No description available</desc>
|
||||||
<license>Unknown</license>
|
<license>Unknown</license>
|
||||||
<categories>tests</categories>
|
<categories>tests</categories>
|
||||||
<category>tests</category>
|
<category>tests</category>
|
||||||
@ -105,7 +113,24 @@
|
|||||||
<lastupdated>2016-03-10</lastupdated>
|
<lastupdated>2016-03-10</lastupdated>
|
||||||
<name>fake.ota.update_1234</name>
|
<name>fake.ota.update_1234</name>
|
||||||
<summary>Tests whether OTA ZIP files are being include</summary>
|
<summary>Tests whether OTA ZIP files are being include</summary>
|
||||||
<desc><p>F-Droid can make use of system privileges or permissions to install, update and remove applications on its own. The only way to obtain those privileges is to become a system app.</p><p>This is where the Privileged Extension comes in - being a separate app and much smaller, it can be installed as a system app and communicate with the main app via AIDL IPC.</p><p>This has several advantages:</p><ul><li> Reduced disk usage in the system partition</li><li> System updates don't remove F-Droid</li><li> The process of installing into system via root is safer</li></ul><p>This is packaged as an OTA (Over-The-Air) update ZIP file. It must be installed using TWRP or other Android recovery that can flash updates to the system from the /data/data/org.fdroid.fdroid folder on the /data partition. The standalone APK is called F-Droid Privileged Extension.</p></desc>
|
<desc>F-Droid can make use of system privileges or permissions to
|
||||||
|
install, update and remove applications on its own. The only way to obtain those
|
||||||
|
privileges is to become a system app.
|
||||||
|
|
||||||
|
This is where the Privileged Extension comes in - being a separate app and much
|
||||||
|
smaller, it can be installed as a system app and communicate with the main app
|
||||||
|
via AIDL IPC.
|
||||||
|
|
||||||
|
This has several advantages:
|
||||||
|
|
||||||
|
* Reduced disk usage in the system partition
|
||||||
|
* System updates don't remove F-Droid
|
||||||
|
* The process of installing into system via root is safer
|
||||||
|
|
||||||
|
This is packaged as an OTA (Over-The-Air) update ZIP file. It must be installed
|
||||||
|
using TWRP or other Android recovery that can flash updates to the system from
|
||||||
|
the /data/data/org.fdroid.fdroid folder on the /data partition. The standalone
|
||||||
|
APK is called F-Droid Privileged Extension.</desc>
|
||||||
<license>Apache-2.0</license>
|
<license>Apache-2.0</license>
|
||||||
<categories>System</categories>
|
<categories>System</categories>
|
||||||
<category>System</category>
|
<category>System</category>
|
||||||
@ -131,7 +156,7 @@
|
|||||||
<name>No minSdkVersion or targetSdkVersion</name>
|
<name>No minSdkVersion or targetSdkVersion</name>
|
||||||
<summary>An APK without any <uses-sdk> block in AndroidManifest.xml</summary>
|
<summary>An APK without any <uses-sdk> block in AndroidManifest.xml</summary>
|
||||||
<icon>no.min.target.sdk.987.png</icon>
|
<icon>no.min.target.sdk.987.png</icon>
|
||||||
<desc><p>No description available</p></desc>
|
<desc>No description available</desc>
|
||||||
<license>Unknown</license>
|
<license>Unknown</license>
|
||||||
<categories>Development</categories>
|
<categories>Development</categories>
|
||||||
<category>Development</category>
|
<category>Development</category>
|
||||||
@ -159,7 +184,7 @@
|
|||||||
<name>OBB Main Old Version</name>
|
<name>OBB Main Old Version</name>
|
||||||
<summary></summary>
|
<summary></summary>
|
||||||
<icon>obb.main.oldversion.1444412523.png</icon>
|
<icon>obb.main.oldversion.1444412523.png</icon>
|
||||||
<desc><p>No description available</p></desc>
|
<desc>No description available</desc>
|
||||||
<license>GPL-3.0-only</license>
|
<license>GPL-3.0-only</license>
|
||||||
<categories>Development</categories>
|
<categories>Development</categories>
|
||||||
<category>Development</category>
|
<category>Development</category>
|
||||||
@ -194,7 +219,7 @@
|
|||||||
<name>OBB Main Two Versions</name>
|
<name>OBB Main Two Versions</name>
|
||||||
<summary></summary>
|
<summary></summary>
|
||||||
<icon>obb.main.twoversions.1101617.png</icon>
|
<icon>obb.main.twoversions.1101617.png</icon>
|
||||||
<desc><p>No description available</p></desc>
|
<desc>No description available</desc>
|
||||||
<license>GPL-3.0-only</license>
|
<license>GPL-3.0-only</license>
|
||||||
<categories>Development</categories>
|
<categories>Development</categories>
|
||||||
<category>Development</category>
|
<category>Development</category>
|
||||||
@ -252,7 +277,7 @@
|
|||||||
<name>OBB Main/Patch Current</name>
|
<name>OBB Main/Patch Current</name>
|
||||||
<summary></summary>
|
<summary></summary>
|
||||||
<icon>obb.mainpatch.current.1619.png</icon>
|
<icon>obb.mainpatch.current.1619.png</icon>
|
||||||
<desc><p>No description available</p></desc>
|
<desc>No description available</desc>
|
||||||
<license>GPL-3.0-only</license>
|
<license>GPL-3.0-only</license>
|
||||||
<categories>Development</categories>
|
<categories>Development</categories>
|
||||||
<category>Development</category>
|
<category>Development</category>
|
||||||
@ -285,7 +310,7 @@
|
|||||||
<name>Polite Droid</name>
|
<name>Polite Droid</name>
|
||||||
<summary>Calendar tool</summary>
|
<summary>Calendar tool</summary>
|
||||||
<icon>com.politedroid.6.png</icon>
|
<icon>com.politedroid.6.png</icon>
|
||||||
<desc><p>Activates silent mode during calendar events.</p></desc>
|
<desc>Activates silent mode during calendar events.</desc>
|
||||||
<license>GPL-3.0-only</license>
|
<license>GPL-3.0-only</license>
|
||||||
<categories>Time</categories>
|
<categories>Time</categories>
|
||||||
<category>Time</category>
|
<category>Time</category>
|
||||||
@ -349,7 +374,14 @@
|
|||||||
<name>urzip-πÇÇπÇÇ现代汉语通用字-български-عربي1234</name>
|
<name>urzip-πÇÇπÇÇ现代汉语通用字-български-عربي1234</name>
|
||||||
<summary>一个实用工具,获取已安装在您的设备上的应用的有关信息</summary>
|
<summary>一个实用工具,获取已安装在您的设备上的应用的有关信息</summary>
|
||||||
<icon>info.guardianproject.urzip.100.png</icon>
|
<icon>info.guardianproject.urzip.100.png</icon>
|
||||||
<desc><p>It’s Urzip 是一个获得已安装 APK 相关信息的实用工具。它从您的设备上已安装的所有应用开始,一键触摸即可显示 APK 的指纹,并且提供到达 virustotal.com 和 androidobservatory.org 的快捷链接,让您方便地了解特定 APK 的档案。它还可以让您导出签名证书和生成 ApkSignaturePin Pin 文件供 TrustedIntents 库使用。</p><p>★ Urzip 支持下列语言: Deutsch, English, español, suomi, 日本語, 한국어, Norsk, português (Portugal), Русский, Slovenščina, Türkçe 没看到您的语言?帮忙翻译本应用吧: https://www.transifex.com/projects/p/urzip</p><p>★ 致用户:我们还缺少你喜欢的功能?发现了一个 bug?请告诉我们!我们乐于听取您的意见。请发送电子邮件至: support@guardianproject.info 或者加入我们的聊天室 https://guardianproject.info/contact</p></desc>
|
<desc>It’s Urzip 是一个获得已安装 APK 相关信息的实用工具。它从您的设备上已安装的所有应用开始,一键触摸即可显示 APK 的指纹,并且提供到达 virustotal.com 和 androidobservatory.org 的快捷链接,让您方便地了解特定 APK 的档案。它还可以让您导出签名证书和生成 ApkSignaturePin Pin 文件供 TrustedIntents 库使用。
|
||||||
|
|
||||||
|
★ Urzip 支持下列语言: Deutsch, English, español, suomi, 日本語, 한국어, Norsk, português (Portugal), Русский, Slovenščina, Türkçe
|
||||||
|
没看到您的语言?帮忙翻译本应用吧:
|
||||||
|
https://www.transifex.com/projects/p/urzip
|
||||||
|
|
||||||
|
★ 致用户:我们还缺少你喜欢的功能?发现了一个 bug?请告诉我们!我们乐于听取您的意见。请发送电子邮件至: support@guardianproject.info 或者加入我们的聊天室 https://guardianproject.info/contact
|
||||||
|
</desc>
|
||||||
<license>GPL-3.0-only</license>
|
<license>GPL-3.0-only</license>
|
||||||
<categories>Development,GuardianProject,1,2.0</categories>
|
<categories>Development,GuardianProject,1,2.0</categories>
|
||||||
<category>Development</category>
|
<category>Development</category>
|
||||||
|
@ -205,7 +205,7 @@ class UpdateTest(unittest.TestCase):
|
|||||||
fdroidserver.update.options = fdroidserver.common.options
|
fdroidserver.update.options = fdroidserver.common.options
|
||||||
os.chdir(tmptestsdir)
|
os.chdir(tmptestsdir)
|
||||||
|
|
||||||
apps = fdroidserver.metadata.read_metadata(xref=True)
|
apps = fdroidserver.metadata.read_metadata()
|
||||||
fdroidserver.update.copy_triple_t_store_metadata(apps)
|
fdroidserver.update.copy_triple_t_store_metadata(apps)
|
||||||
|
|
||||||
# TODO ideally, this would compare the whole dict like in metadata.TestCase's test_read_metadata()
|
# TODO ideally, this would compare the whole dict like in metadata.TestCase's test_read_metadata()
|
||||||
@ -236,7 +236,7 @@ class UpdateTest(unittest.TestCase):
|
|||||||
fdroidserver.update.config = config
|
fdroidserver.update.config = config
|
||||||
fdroidserver.update.options = fdroidserver.common.options
|
fdroidserver.update.options = fdroidserver.common.options
|
||||||
|
|
||||||
apps = fdroidserver.metadata.read_metadata(xref=True)
|
apps = fdroidserver.metadata.read_metadata()
|
||||||
self.assertTrue(packageName in apps)
|
self.assertTrue(packageName in apps)
|
||||||
fdroidserver.update.copy_triple_t_store_metadata(apps)
|
fdroidserver.update.copy_triple_t_store_metadata(apps)
|
||||||
correctlocales = ['de-DE', 'en-US', 'fr-FR', 'kn-IN']
|
correctlocales = ['de-DE', 'en-US', 'fr-FR', 'kn-IN']
|
||||||
@ -382,7 +382,7 @@ class UpdateTest(unittest.TestCase):
|
|||||||
fdroidserver.update.options.rename_apks = False
|
fdroidserver.update.options.rename_apks = False
|
||||||
fdroidserver.update.options.allow_disabled_algorithms = False
|
fdroidserver.update.options.allow_disabled_algorithms = False
|
||||||
|
|
||||||
apps = fdroidserver.metadata.read_metadata(xref=True)
|
apps = fdroidserver.metadata.read_metadata()
|
||||||
knownapks = fdroidserver.common.KnownApks()
|
knownapks = fdroidserver.common.KnownApks()
|
||||||
apks, cachechanged = fdroidserver.update.process_apks({}, 'repo', knownapks, False)
|
apks, cachechanged = fdroidserver.update.process_apks({}, 'repo', knownapks, False)
|
||||||
self.assertEqual(len(apks), 17)
|
self.assertEqual(len(apks), 17)
|
||||||
@ -439,7 +439,7 @@ class UpdateTest(unittest.TestCase):
|
|||||||
fdroidserver.update.options.rename_apks = False
|
fdroidserver.update.options.rename_apks = False
|
||||||
fdroidserver.update.options.allow_disabled_algorithms = False
|
fdroidserver.update.options.allow_disabled_algorithms = False
|
||||||
|
|
||||||
fdroidserver.metadata.read_metadata(xref=True)
|
fdroidserver.metadata.read_metadata()
|
||||||
knownapks = fdroidserver.common.KnownApks()
|
knownapks = fdroidserver.common.KnownApks()
|
||||||
apkcache = fdroidserver.update.get_cache()
|
apkcache = fdroidserver.update.get_cache()
|
||||||
self.assertEqual(2, len(apkcache))
|
self.assertEqual(2, len(apkcache))
|
||||||
@ -817,7 +817,7 @@ class UpdateTest(unittest.TestCase):
|
|||||||
fdroidserver.update.options.rename_apks = False
|
fdroidserver.update.options.rename_apks = False
|
||||||
fdroidserver.update.options.allow_disabled_algorithms = False
|
fdroidserver.update.options.allow_disabled_algorithms = False
|
||||||
|
|
||||||
apps = fdroidserver.metadata.read_metadata(xref=True)
|
apps = fdroidserver.metadata.read_metadata()
|
||||||
knownapks = fdroidserver.common.KnownApks()
|
knownapks = fdroidserver.common.KnownApks()
|
||||||
apks, cachechanged = fdroidserver.update.process_apks({}, 'repo', knownapks, False)
|
apks, cachechanged = fdroidserver.update.process_apks({}, 'repo', knownapks, False)
|
||||||
fdroidserver.update.translate_per_build_anti_features(apps, apks)
|
fdroidserver.update.translate_per_build_anti_features(apps, apks)
|
||||||
@ -860,16 +860,16 @@ class UpdateTest(unittest.TestCase):
|
|||||||
testfile = 'metadata/info.guardianproject.urzip.yml'
|
testfile = 'metadata/info.guardianproject.urzip.yml'
|
||||||
# create empty 0 byte .yml file, run read_metadata, it should work
|
# create empty 0 byte .yml file, run read_metadata, it should work
|
||||||
open(testfile, 'a').close()
|
open(testfile, 'a').close()
|
||||||
apps = fdroidserver.metadata.read_metadata(xref=True)
|
apps = fdroidserver.metadata.read_metadata()
|
||||||
self.assertEqual(1, len(apps))
|
self.assertEqual(1, len(apps))
|
||||||
os.remove(testfile)
|
os.remove(testfile)
|
||||||
|
|
||||||
# test using internal template
|
# test using internal template
|
||||||
apps = fdroidserver.metadata.read_metadata(xref=True)
|
apps = fdroidserver.metadata.read_metadata()
|
||||||
self.assertEqual(0, len(apps))
|
self.assertEqual(0, len(apps))
|
||||||
fdroidserver.update.create_metadata_from_template(apk)
|
fdroidserver.update.create_metadata_from_template(apk)
|
||||||
self.assertTrue(os.path.exists(testfile))
|
self.assertTrue(os.path.exists(testfile))
|
||||||
apps = fdroidserver.metadata.read_metadata(xref=True)
|
apps = fdroidserver.metadata.read_metadata()
|
||||||
self.assertEqual(1, len(apps))
|
self.assertEqual(1, len(apps))
|
||||||
for app in apps.values():
|
for app in apps.values():
|
||||||
self.assertEqual('urzip', app['Name'])
|
self.assertEqual('urzip', app['Name'])
|
||||||
@ -882,7 +882,7 @@ class UpdateTest(unittest.TestCase):
|
|||||||
shutil.copy(os.path.join(localmodule, 'examples', 'template.yml'), tmptestsdir)
|
shutil.copy(os.path.join(localmodule, 'examples', 'template.yml'), tmptestsdir)
|
||||||
fdroidserver.update.create_metadata_from_template(apk)
|
fdroidserver.update.create_metadata_from_template(apk)
|
||||||
self.assertTrue(os.path.exists(testfile))
|
self.assertTrue(os.path.exists(testfile))
|
||||||
apps = fdroidserver.metadata.read_metadata(xref=True)
|
apps = fdroidserver.metadata.read_metadata()
|
||||||
self.assertEqual(1, len(apps))
|
self.assertEqual(1, len(apps))
|
||||||
for app in apps.values():
|
for app in apps.values():
|
||||||
self.assertEqual('urzip', app['Name'])
|
self.assertEqual('urzip', app['Name'])
|
||||||
|
@ -1,104 +0,0 @@
|
|||||||
Categories:
|
|
||||||
- Reading
|
|
||||||
License: GPL-3.0-only
|
|
||||||
WebSite: http://aarddict.org
|
|
||||||
SourceCode: https://github.com/aarddict/android
|
|
||||||
IssueTracker: https://github.com/aarddict/android/issues
|
|
||||||
Donate: http://aarddict.org/android
|
|
||||||
FlattrID: '80944'
|
|
||||||
|
|
||||||
AutoName: Aard
|
|
||||||
Description: |-
|
|
||||||
'''Note:''' This app is no longer maintained.
|
|
||||||
|
|
||||||
* looks up words fast even with huge dictionaries like English Wikipedia
|
|
||||||
* looks up words in multiple dictionaries in multiple languages without switching
|
|
||||||
* works great as an offline Wikipedia reader
|
|
||||||
* uses same the efficient, highly compressed dictionary data storage format as the desktop version
|
|
||||||
* it can integrate with both [[org.geometerplus.zlibrary.ui.android]] and [[org.coolreader]]
|
|
||||||
|
|
||||||
Ready-made dictionaries can be found on the website, or you can roll your own
|
|
||||||
with the tools on the website.
|
|
||||||
|
|
||||||
RepoType: git
|
|
||||||
Repo: https://github.com/aarddict/android.git
|
|
||||||
|
|
||||||
Builds:
|
|
||||||
- versionName: 1.3.1
|
|
||||||
versionCode: 10
|
|
||||||
commit: 1.3.1
|
|
||||||
prebuild: mv lib libs
|
|
||||||
|
|
||||||
- versionName: 1.4.0
|
|
||||||
versionCode: 12
|
|
||||||
commit: 7df930161256324e31b2c720281629f58446b6d6
|
|
||||||
prebuild: mv lib libs
|
|
||||||
|
|
||||||
- versionName: 1.4.1
|
|
||||||
versionCode: 13
|
|
||||||
commit: b81c9c8c52de5f65b550e3c608a610962582e5cd
|
|
||||||
prebuild: mv lib libs
|
|
||||||
|
|
||||||
- versionName: 1.6.1
|
|
||||||
versionCode: 16
|
|
||||||
commit: 1.6.1
|
|
||||||
target: android-17
|
|
||||||
|
|
||||||
- versionName: 1.6.2
|
|
||||||
versionCode: 17
|
|
||||||
commit: 1.6.2
|
|
||||||
target: android-17
|
|
||||||
|
|
||||||
- versionName: 1.6.3
|
|
||||||
versionCode: 18
|
|
||||||
commit: 1.6.3
|
|
||||||
target: android-17
|
|
||||||
|
|
||||||
- versionName: 1.6.4
|
|
||||||
versionCode: 19
|
|
||||||
commit: 1.6.4
|
|
||||||
target: android-17
|
|
||||||
|
|
||||||
- versionName: 1.6.5
|
|
||||||
versionCode: 20
|
|
||||||
commit: 1.6.5
|
|
||||||
target: android-17
|
|
||||||
|
|
||||||
- versionName: 1.6.6
|
|
||||||
versionCode: 21
|
|
||||||
commit: 1.6.6
|
|
||||||
target: android-17
|
|
||||||
|
|
||||||
- versionName: 1.6.7
|
|
||||||
versionCode: 22
|
|
||||||
commit: 1.6.7
|
|
||||||
target: android-17
|
|
||||||
|
|
||||||
- versionName: 1.6.8
|
|
||||||
versionCode: 23
|
|
||||||
commit: 1.6.8
|
|
||||||
target: android-17
|
|
||||||
|
|
||||||
- versionName: 1.6.9
|
|
||||||
versionCode: 24
|
|
||||||
commit: 1.6.9
|
|
||||||
target: android-17
|
|
||||||
|
|
||||||
- versionName: 1.6.10
|
|
||||||
versionCode: 25
|
|
||||||
commit: 1.6.10
|
|
||||||
target: android-17
|
|
||||||
|
|
||||||
- versionName: 1.6.11
|
|
||||||
versionCode: 26
|
|
||||||
commit: 1.6.11
|
|
||||||
target: android-17
|
|
||||||
|
|
||||||
MaintainerNotes: |-
|
|
||||||
Github site points to https://github.com/itkach/aard2-android (itkach.aard2) as successor.
|
|
||||||
We cannot point to this app as all its builds are disabled (as of 2018-10-16).
|
|
||||||
|
|
||||||
AutoUpdateMode: Version %v
|
|
||||||
UpdateCheckMode: Tags
|
|
||||||
CurrentVersion: 1.6.11
|
|
||||||
CurrentVersionCode: 26
|
|
@ -1,551 +0,0 @@
|
|||||||
Categories:
|
|
||||||
- Reading
|
|
||||||
License: GPL-2.0-only
|
|
||||||
AuthorName: Vadim Lopatin
|
|
||||||
AuthorEmail: coolreader.org@gmail.com
|
|
||||||
WebSite: https://sourceforge.net/projects/crengine/
|
|
||||||
SourceCode: https://github.com/buggins/coolreader
|
|
||||||
IssueTracker: https://github.com/buggins/coolreader/issues
|
|
||||||
Donate: https://sourceforge.net/p/crengine/donate
|
|
||||||
|
|
||||||
AutoName: Cool Reader
|
|
||||||
Description: |-
|
|
||||||
An e-book reader. Supported formats: FB2, TXT, RTF, TCR, HTML, EPUB, CHM. Browse
|
|
||||||
free books online and add your own OPDS shares.
|
|
||||||
|
|
||||||
The default dictionary app is non-free. However, you can choose
|
|
||||||
[[aarddict.android]] as a dictionary from the Dictionary section of the
|
|
||||||
Settings.
|
|
||||||
|
|
||||||
RepoType: git
|
|
||||||
Repo: https://github.com/buggins/coolreader
|
|
||||||
|
|
||||||
Builds:
|
|
||||||
- versionName: 3.0.39-35
|
|
||||||
versionCode: 60
|
|
||||||
commit: 68ad007ac1272ef322fd61cb6591618723422380
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.40-1
|
|
||||||
versionCode: 64
|
|
||||||
commit: cr3.0.40-1
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.40-6
|
|
||||||
versionCode: 69
|
|
||||||
commit: cr3.0.40-6
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.41-3
|
|
||||||
versionCode: 75
|
|
||||||
commit: cr3.0.41-3
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.41-9
|
|
||||||
versionCode: 81
|
|
||||||
commit: cr3.0.41-9
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.42-6
|
|
||||||
versionCode: 86
|
|
||||||
commit: cr3.0.42-6
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.43-4
|
|
||||||
versionCode: 94
|
|
||||||
commit: cr3.0.43-4
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.43-6
|
|
||||||
versionCode: 96
|
|
||||||
commit: cr3.0.43-6
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.44-03
|
|
||||||
versionCode: 103
|
|
||||||
commit: cr3.0.44-3
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.44-09
|
|
||||||
versionCode: 109
|
|
||||||
commit: cr3.0.44-9
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.45-04
|
|
||||||
versionCode: 114
|
|
||||||
disable: tag points to wrong version
|
|
||||||
commit: unknown - see disabled
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.45-09
|
|
||||||
versionCode: 119
|
|
||||||
disable: tag points to wrong version
|
|
||||||
commit: unknown - see disabled
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.45-11
|
|
||||||
versionCode: 121
|
|
||||||
commit: 6c42a9b65090da9640ccb6ee317bb32de24201fb
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.45-14
|
|
||||||
versionCode: 124
|
|
||||||
commit: cr3.0.45-14
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.46-1
|
|
||||||
versionCode: 131
|
|
||||||
commit: cr3.0.46-1
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.46-5
|
|
||||||
versionCode: 135
|
|
||||||
commit: cr3.0.46-5
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.46-11
|
|
||||||
versionCode: 141
|
|
||||||
commit: cr3.0.46-11
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.48-5
|
|
||||||
versionCode: 155
|
|
||||||
commit: cr3.0.48-5
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.49-2
|
|
||||||
versionCode: 162
|
|
||||||
commit: cr3.0.49-2
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.49-5
|
|
||||||
versionCode: 165
|
|
||||||
commit: cr3.0.49-5
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.49-9
|
|
||||||
versionCode: 169
|
|
||||||
commit: cr3.0.49-9
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.49-16
|
|
||||||
versionCode: 176
|
|
||||||
commit: cr3.0.49-16
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.51-7
|
|
||||||
versionCode: 197
|
|
||||||
commit: cr3.0.51-7
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.52-1
|
|
||||||
versionCode: 241
|
|
||||||
commit: cr3.0.52-1
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.52-4
|
|
||||||
versionCode: 244
|
|
||||||
commit: cr3.0.52-4
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.53-3
|
|
||||||
versionCode: 247
|
|
||||||
commit: cr3.0.53-3
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.53-10
|
|
||||||
versionCode: 255
|
|
||||||
commit: cr3.0.53-10
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.53-14
|
|
||||||
versionCode: 259
|
|
||||||
commit: cr3.0.53-14
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.53-18
|
|
||||||
versionCode: 263
|
|
||||||
commit: c555ecd66d18b218fb255733c8b33a0825992f76
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.53-19
|
|
||||||
versionCode: 264
|
|
||||||
commit: cr3.0.53-19
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.54-5
|
|
||||||
versionCode: 275
|
|
||||||
commit: cr3.0.54-5
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.54-9
|
|
||||||
versionCode: 279
|
|
||||||
commit: cr3.0.54-9
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.54-33
|
|
||||||
versionCode: 303
|
|
||||||
commit: cr3.0.54-33
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.54-38
|
|
||||||
versionCode: 308
|
|
||||||
commit: cr3.0.54-38
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.54-47
|
|
||||||
versionCode: 447
|
|
||||||
commit: cr3.0.54-47
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.55-5
|
|
||||||
versionCode: 505
|
|
||||||
commit: cr3.0.55-5
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.55-9
|
|
||||||
versionCode: 509
|
|
||||||
commit: cr3.0.55-9
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.55-14
|
|
||||||
versionCode: 514
|
|
||||||
commit: cr3.0.55-14
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.55-30
|
|
||||||
versionCode: 530
|
|
||||||
commit: cr3.0.55-30
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/ant.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.55-32
|
|
||||||
versionCode: 532
|
|
||||||
commit: cr3.0.55-32
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/ant.properties
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.56-5
|
|
||||||
versionCode: 565
|
|
||||||
disable: builds ok but crashes at cr3.0.56-5
|
|
||||||
commit: cr3.0.56-5
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/ant.properties
|
|
||||||
target: android-14
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.57-15
|
|
||||||
versionCode: 625
|
|
||||||
disable: builds ok but crashes at cr3.0.57-15
|
|
||||||
commit: cr3.0.57-15
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/ant.properties
|
|
||||||
target: android-14
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.0.57-16
|
|
||||||
versionCode: 626
|
|
||||||
disable: builds ok but crashes at 2f3d5fb86df316d
|
|
||||||
commit: 2f3d5fb86df316d
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/ant.properties
|
|
||||||
target: android-14
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.1.2-27
|
|
||||||
versionCode: 847
|
|
||||||
commit: cr3-3.1.2-27
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/ant.properties
|
|
||||||
target: android-16
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.1.2-38
|
|
||||||
versionCode: 858
|
|
||||||
disable: ndk build errors
|
|
||||||
commit: cr3-3.1.2-38
|
|
||||||
subdir: android
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.1.2-39
|
|
||||||
versionCode: 859
|
|
||||||
commit: cr3-3.1.2-39-market
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
target: android-19
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.1.2-48
|
|
||||||
versionCode: 868
|
|
||||||
commit: cr3.1.2-48
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
target: android-19
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.1.2-50
|
|
||||||
versionCode: 870
|
|
||||||
commit: cr3.1.2-50
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
target: android-19
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.1.2-51
|
|
||||||
versionCode: 871
|
|
||||||
commit: cr3-3.1.2-51
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
target: android-19
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.1.2-55
|
|
||||||
versionCode: 875
|
|
||||||
commit: cr3-3.1.2-55
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
target: android-19
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.1.2-68
|
|
||||||
versionCode: 888
|
|
||||||
commit: cr3.1.2-68
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
target: android-22
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.1.2-72
|
|
||||||
versionCode: 892
|
|
||||||
commit: cr3.1.2-71
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
prebuild: sed -i -e 's/^APP_ABI\s*:=.*/APP_ABI := all/' jni/Application.mk
|
|
||||||
target: android-22
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.1.2-87
|
|
||||||
versionCode: 907
|
|
||||||
commit: 1e07d15d4644c690
|
|
||||||
subdir: android
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
prebuild: sed -i -e 's/^APP_ABI\s*:=.*/APP_ABI := all/' jni/Application.mk
|
|
||||||
target: android-22
|
|
||||||
scanignore:
|
|
||||||
- cr3wx
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 3.2.9-1
|
|
||||||
versionCode: 2091
|
|
||||||
commit: bf48e5b7a5e89e5fc8b1f971573b5046e6b27bd3
|
|
||||||
subdir: android
|
|
||||||
gradle:
|
|
||||||
- yes
|
|
||||||
output: app/build/outputs/apk/release/app-universal-release-unsigned.apk
|
|
||||||
rm:
|
|
||||||
- android/build.properties
|
|
||||||
prebuild: sed -i -e 's/^APP_ABI\s*:=.*/APP_ABI := all/' jni/Application.mk
|
|
||||||
scanignore:
|
|
||||||
- cr3wx
|
|
||||||
ndk: r16b
|
|
||||||
|
|
||||||
- versionName: 3.2.38-1
|
|
||||||
versionCode: 32380
|
|
||||||
commit: cr3.2.38
|
|
||||||
subdir: android/app
|
|
||||||
gradle:
|
|
||||||
- yes
|
|
||||||
rm:
|
|
||||||
- cr3wx/src/resources/crrcconv.exe
|
|
||||||
prebuild:
|
|
||||||
- sed -i -e 's/\r//' ../gradle/wrapper/gradle-wrapper.properties
|
|
||||||
- sed -i -e 's/enable true/enable false/' build.gradle
|
|
||||||
ndk: r21
|
|
||||||
|
|
||||||
AutoUpdateMode: None
|
|
||||||
UpdateCheckMode: Tags
|
|
||||||
CurrentVersion: 3.2.39-1
|
|
||||||
CurrentVersionCode: 32390
|
|
@ -1,556 +0,0 @@
|
|||||||
AntiFeatures:
|
|
||||||
- NonFreeAdd
|
|
||||||
- UpstreamNonFree
|
|
||||||
Categories:
|
|
||||||
- Reading
|
|
||||||
License: GPL-2.0-or-later
|
|
||||||
AuthorName: Nikolay Pultsin
|
|
||||||
AuthorEmail: geometer@fbreader.org
|
|
||||||
AuthorWebSite: https://fbreader.org/
|
|
||||||
WebSite: https://fbreader.org/FBReaderJ
|
|
||||||
SourceCode: https://github.com/geometer/FBReaderJ
|
|
||||||
IssueTracker: https://github.com/geometer/FBReaderJ/issues
|
|
||||||
Changelog: https://raw.githubusercontent.com/geometer/FBReaderJ/HEAD/ChangeLog
|
|
||||||
Donate: https://fbreader.org/donation/make.php
|
|
||||||
|
|
||||||
AutoName: FBReader
|
|
||||||
Description: |-
|
|
||||||
'''N.B'''There are three different apks to cover the different versions of
|
|
||||||
Android. Donut covers 1.5-1.6; Froyo covers 2.0-2.3 and Honeycomb covers 3.0+.
|
|
||||||
x86 and MIPS are supported natively in all apks.
|
|
||||||
|
|
||||||
An e-book reader. Features include the ability to stock up on books from online
|
|
||||||
OPDS libraries like Project Gutenberg straight from the app. F-Droid.org has two
|
|
||||||
other addon apps that provide text-to-speech functionality and one to support
|
|
||||||
''local'' OPDS shares.
|
|
||||||
|
|
||||||
Anti-features: Addons. While there are some addons for this app that are free,
|
|
||||||
the dictionaries that are suggested are not. However, it does support
|
|
||||||
[[aarddict.android]], as long as that is installed beforehand '''and''' you
|
|
||||||
choose it via the Dictionary section of the settings.
|
|
||||||
|
|
||||||
RepoType: git
|
|
||||||
Repo: https://github.com/geometer/FBReaderJ.git
|
|
||||||
|
|
||||||
Builds:
|
|
||||||
- versionName: 0.99.11
|
|
||||||
versionCode: 9911
|
|
||||||
commit: 0.99.11
|
|
||||||
antcommands:
|
|
||||||
- package
|
|
||||||
|
|
||||||
- versionName: 0.99.12
|
|
||||||
versionCode: 9912
|
|
||||||
commit: 0.99.12
|
|
||||||
antcommands:
|
|
||||||
- package
|
|
||||||
|
|
||||||
- versionName: 0.99.15
|
|
||||||
versionCode: 9915
|
|
||||||
commit: 0.99.15
|
|
||||||
antcommands:
|
|
||||||
- package
|
|
||||||
|
|
||||||
- versionName: 0.99.18
|
|
||||||
versionCode: 9918
|
|
||||||
commit: 0.99.18
|
|
||||||
antcommands:
|
|
||||||
- package
|
|
||||||
|
|
||||||
- versionName: 1.0.9
|
|
||||||
versionCode: 10011
|
|
||||||
commit: 1.0.9
|
|
||||||
antcommands:
|
|
||||||
- package
|
|
||||||
|
|
||||||
- versionName: 1.0.11
|
|
||||||
versionCode: 10013
|
|
||||||
commit: 1.0.11
|
|
||||||
antcommands:
|
|
||||||
- package
|
|
||||||
|
|
||||||
- versionName: 1.0.12
|
|
||||||
versionCode: 10014
|
|
||||||
commit: fd349108eff9caa9152a
|
|
||||||
antcommands:
|
|
||||||
- package
|
|
||||||
|
|
||||||
- versionName: 1.1.0
|
|
||||||
versionCode: 10100
|
|
||||||
commit: 5eb993e1fac2898d2361
|
|
||||||
antcommands:
|
|
||||||
- package
|
|
||||||
|
|
||||||
- versionName: 1.1.1
|
|
||||||
versionCode: 10101
|
|
||||||
commit: 1.1.1
|
|
||||||
antcommands:
|
|
||||||
- package
|
|
||||||
|
|
||||||
- versionName: 1.1.2
|
|
||||||
versionCode: 10102
|
|
||||||
commit: 1.1.2
|
|
||||||
antcommands:
|
|
||||||
- package
|
|
||||||
|
|
||||||
- versionName: 1.1.8
|
|
||||||
versionCode: 101081
|
|
||||||
commit: 1.1.8
|
|
||||||
antcommands:
|
|
||||||
- package
|
|
||||||
|
|
||||||
- versionName: 1.1.9
|
|
||||||
versionCode: 101091
|
|
||||||
commit: 1.1.9
|
|
||||||
antcommands:
|
|
||||||
- package
|
|
||||||
|
|
||||||
- versionName: 1.1.10
|
|
||||||
versionCode: 101101
|
|
||||||
commit: 13ee5d79431815dd694e
|
|
||||||
antcommands:
|
|
||||||
- package
|
|
||||||
|
|
||||||
- versionName: 1.2.2
|
|
||||||
versionCode: 102021
|
|
||||||
commit: e63c553aeb032da828b270a735f0171d8d22c54c
|
|
||||||
prebuild:
|
|
||||||
- mkdir res/drawable
|
|
||||||
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
|
||||||
target: android-10
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 1.2.3
|
|
||||||
versionCode: 102031
|
|
||||||
commit: 46d83bb4351c2f6ec51e0d9aa6202c86c1297e7f
|
|
||||||
prebuild:
|
|
||||||
- mkdir res/drawable
|
|
||||||
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
|
||||||
target: android-10
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 1.2.4
|
|
||||||
versionCode: 102041
|
|
||||||
commit: 6426bcf131d4
|
|
||||||
prebuild:
|
|
||||||
- mkdir res/drawable
|
|
||||||
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
|
||||||
target: android-10
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 1.2.6
|
|
||||||
versionCode: 102061
|
|
||||||
commit: 1.2.6
|
|
||||||
prebuild:
|
|
||||||
- mkdir res/drawable
|
|
||||||
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
|
||||||
target: android-10
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 1.3.3
|
|
||||||
versionCode: 103031
|
|
||||||
commit: 1.3.3
|
|
||||||
prebuild:
|
|
||||||
- mkdir res/drawable
|
|
||||||
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
|
||||||
target: android-10
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 1.3.6
|
|
||||||
versionCode: 103061
|
|
||||||
commit: a16e3eb7ff731edea99248f8a7c1633148a26236
|
|
||||||
prebuild:
|
|
||||||
- mkdir res/drawable
|
|
||||||
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
|
||||||
target: android-10
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 1.5.5
|
|
||||||
versionCode: 105051
|
|
||||||
commit: 1.5.5
|
|
||||||
prebuild:
|
|
||||||
- mkdir res/drawable
|
|
||||||
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
|
||||||
target: android-10
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 1.6.1
|
|
||||||
versionCode: 106011
|
|
||||||
commit: 1.6.1
|
|
||||||
prebuild:
|
|
||||||
- mkdir res/drawable
|
|
||||||
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 1.6.4-Donut
|
|
||||||
versionCode: 106040
|
|
||||||
commit: af881fe37
|
|
||||||
forceversion: true
|
|
||||||
prebuild:
|
|
||||||
- mkdir res/drawable
|
|
||||||
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 1.6.4-Froyo
|
|
||||||
versionCode: 106041
|
|
||||||
commit: 696ed7704
|
|
||||||
forceversion: true
|
|
||||||
prebuild:
|
|
||||||
- mkdir res/drawable
|
|
||||||
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 1.6.4
|
|
||||||
versionCode: 106042
|
|
||||||
commit: b3b4667ccb
|
|
||||||
prebuild:
|
|
||||||
- mkdir res/drawable
|
|
||||||
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 1.7.2-Donut
|
|
||||||
versionCode: 107019
|
|
||||||
commit: a4a5e506b
|
|
||||||
forceversion: true
|
|
||||||
forcevercode: true
|
|
||||||
prebuild:
|
|
||||||
- mkdir res/drawable
|
|
||||||
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 1.7.2-Froyo
|
|
||||||
versionCode: 107020
|
|
||||||
commit: 33ffc7e5b
|
|
||||||
forceversion: true
|
|
||||||
forcevercode: true
|
|
||||||
prebuild:
|
|
||||||
- mkdir res/drawable
|
|
||||||
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 1.7.2-Honeycomb
|
|
||||||
versionCode: 107021
|
|
||||||
commit: 0520159677
|
|
||||||
forceversion: true
|
|
||||||
prebuild:
|
|
||||||
- mkdir res/drawable
|
|
||||||
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 1.7.3-Donut
|
|
||||||
versionCode: 107040
|
|
||||||
commit: 2c6253dd
|
|
||||||
forceversion: true
|
|
||||||
prebuild:
|
|
||||||
- mkdir res/drawable
|
|
||||||
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 1.7.3-Froyo
|
|
||||||
versionCode: 107041
|
|
||||||
commit: 934bf7f5
|
|
||||||
forceversion: true
|
|
||||||
prebuild:
|
|
||||||
- mkdir res/drawable
|
|
||||||
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 1.7.3-Honeycomb
|
|
||||||
versionCode: 107042
|
|
||||||
commit: c4a3c7a9a
|
|
||||||
forceversion: true
|
|
||||||
prebuild:
|
|
||||||
- mkdir res/drawable
|
|
||||||
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 1.7.8-Donut
|
|
||||||
versionCode: 107080
|
|
||||||
commit: c1470c9be1
|
|
||||||
forceversion: true
|
|
||||||
prebuild:
|
|
||||||
- mkdir res/drawable
|
|
||||||
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 1.7.8-Froyo
|
|
||||||
versionCode: 107084
|
|
||||||
commit: 1.7.8
|
|
||||||
forceversion: true
|
|
||||||
prebuild:
|
|
||||||
- mkdir res/drawable
|
|
||||||
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 1.7.8-Honeycomb
|
|
||||||
versionCode: 107085
|
|
||||||
commit: 1.7.8-ics
|
|
||||||
forceversion: true
|
|
||||||
prebuild:
|
|
||||||
- mkdir res/drawable
|
|
||||||
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 1.8.2-Donut
|
|
||||||
versionCode: 108020
|
|
||||||
commit: 9bec0ff445e66a
|
|
||||||
forceversion: true
|
|
||||||
prebuild:
|
|
||||||
- mkdir res/drawable
|
|
||||||
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
|
||||||
androidupdate:
|
|
||||||
- third-party/AmbilWarna
|
|
||||||
- .
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 1.8.2-Froyo
|
|
||||||
versionCode: 108021
|
|
||||||
commit: 0f02d4e9232227
|
|
||||||
forceversion: true
|
|
||||||
prebuild:
|
|
||||||
- mkdir res/drawable
|
|
||||||
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
|
||||||
androidupdate:
|
|
||||||
- third-party/AmbilWarna
|
|
||||||
- .
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 1.8.2-Honeycomb+
|
|
||||||
versionCode: 108022
|
|
||||||
commit: 1112df415d
|
|
||||||
forceversion: true
|
|
||||||
prebuild:
|
|
||||||
- mkdir res/drawable
|
|
||||||
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
|
||||||
androidupdate:
|
|
||||||
- third-party/AmbilWarna
|
|
||||||
- .
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 2.0.6-gb
|
|
||||||
versionCode: 2000610
|
|
||||||
disable: missing res with android-9
|
|
||||||
commit: 2.0.6
|
|
||||||
patch:
|
|
||||||
- fbreader-2.0.6.patch
|
|
||||||
srclibs:
|
|
||||||
- PDFParseLib@36d7479ce85638eb4f0ff9c875ec77680177da5d
|
|
||||||
- ApacheHttpClient@4.2.5
|
|
||||||
- NanoHttpd@Release-2.0.5
|
|
||||||
- JsonSimple@tag_release_1_1_1
|
|
||||||
forceversion: true
|
|
||||||
rm:
|
|
||||||
- libs/*jar
|
|
||||||
- obsolete/lib/*.jar
|
|
||||||
prebuild:
|
|
||||||
- echo -e "sdk.dir=$$SDK$$\nndk.dir=$$NDK$$\n" >> local.properties
|
|
||||||
- cp local.properties third-party/AmbilWarna/
|
|
||||||
- cp local.properties third-party/android-filechooser/code/
|
|
||||||
- cp local.properties third-party/drag-sort-listview/library/
|
|
||||||
- pushd $$ApacheHttpClient$$/httpmime/
|
|
||||||
- $$MVN3$$ package
|
|
||||||
- popd
|
|
||||||
- cp $$ApacheHttpClient$$/httpmime/target/httpmime-4.2.5.jar libs/
|
|
||||||
- pushd $$NanoHttpd$$
|
|
||||||
- $$MVN3$$ package
|
|
||||||
- popd
|
|
||||||
- cp $$NanoHttpd$$/core/target/nanohttpd-2.0.5.jar libs/
|
|
||||||
- cp -fR $$JsonSimple$$/src/main/java/org src/
|
|
||||||
- cp -fR $$PDFParseLib$$/pdfparse-lib/src/main/java/org src/
|
|
||||||
- rm -fR src/com/paragon
|
|
||||||
androidupdate:
|
|
||||||
- third-party/AmbilWarna
|
|
||||||
- third-party/android-filechooser/code
|
|
||||||
- third-party/drag-sort-listview/library
|
|
||||||
- .
|
|
||||||
target: android-14
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 2.0.6-ics
|
|
||||||
versionCode: 2000620
|
|
||||||
commit: b1dd70ff149560889e7548762046da4933e51e94
|
|
||||||
patch:
|
|
||||||
- fbreader-2.0.6.patch
|
|
||||||
srclibs:
|
|
||||||
- FBReaderJ@2.0.6
|
|
||||||
- PDFParseLib@36d7479ce85638eb4f0ff9c875ec77680177da5d
|
|
||||||
- ApacheHttpClient@4.2.5
|
|
||||||
- NanoHttpd@Release-2.0.5
|
|
||||||
- JsonSimple@tag_release_1_1_1
|
|
||||||
forceversion: true
|
|
||||||
rm:
|
|
||||||
- libs/*jar
|
|
||||||
- obsolete/lib/*.jar
|
|
||||||
prebuild:
|
|
||||||
- echo -e "sdk.dir=$$SDK$$\nndk.dir=$$NDK$$\n" >> local.properties
|
|
||||||
- cp local.properties third-party/AmbilWarna/
|
|
||||||
- cp local.properties third-party/android-filechooser/code/
|
|
||||||
- cp local.properties third-party/drag-sort-listview/library/
|
|
||||||
- pushd $$ApacheHttpClient$$/httpmime/
|
|
||||||
- $$MVN3$$ package
|
|
||||||
- popd
|
|
||||||
- cp $$ApacheHttpClient$$/httpmime/target/httpmime-4.2.5.jar libs/
|
|
||||||
- pushd $$NanoHttpd$$
|
|
||||||
- $$MVN3$$ package
|
|
||||||
- popd
|
|
||||||
- cp $$NanoHttpd$$/core/target/nanohttpd-2.0.5.jar libs/
|
|
||||||
- cp -fR $$JsonSimple$$/src/main/java/org src/
|
|
||||||
- cp -fR $$PDFParseLib$$/pdfparse-lib/src/main/java/org src/
|
|
||||||
- rm -fR src/com/paragon
|
|
||||||
- sed -i -e '/com.google.android.gms.version/d' -e '/google_play_services/d' AndroidManifest.xml
|
|
||||||
- sed -i -e '/google.services.lib.dir/d' project.properties
|
|
||||||
- rm -fR src/org/geometerplus/android/fbreader/network/auth
|
|
||||||
- cp -fR $$FBReaderJ$$/src/org/geometerplus/android/fbreader/network/auth src/org/geometerplus/android/fbreader/network/
|
|
||||||
androidupdate:
|
|
||||||
- third-party/AmbilWarna
|
|
||||||
- third-party/android-filechooser/code
|
|
||||||
- third-party/drag-sort-listview/library
|
|
||||||
- .
|
|
||||||
target: android-14
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 2.1-ics
|
|
||||||
versionCode: 2010020
|
|
||||||
commit: 33139e2b04ae36388956a57373ba74e8cc0ef23c
|
|
||||||
patch:
|
|
||||||
- fbreader-2.0.6.patch
|
|
||||||
srclibs:
|
|
||||||
- FBReaderJ@2.1
|
|
||||||
- PDFParseLib@36d7479ce85638eb4f0ff9c875ec77680177da5d
|
|
||||||
- ApacheHttpClient@4.2.5
|
|
||||||
- NanoHttpd@Release-2.0.5
|
|
||||||
- JsonSimple@tag_release_1_1_1
|
|
||||||
forceversion: true
|
|
||||||
rm:
|
|
||||||
- libs/*jar
|
|
||||||
- obsolete/lib/*.jar
|
|
||||||
prebuild:
|
|
||||||
- echo -e "sdk.dir=$$SDK$$\nndk.dir=$$NDK$$\n" >> local.properties
|
|
||||||
- cp local.properties third-party/AmbilWarna/
|
|
||||||
- cp local.properties third-party/android-filechooser/code/
|
|
||||||
- cp local.properties third-party/drag-sort-listview/library/
|
|
||||||
- pushd $$ApacheHttpClient$$/httpmime/
|
|
||||||
- $$MVN3$$ package
|
|
||||||
- popd
|
|
||||||
- cp $$ApacheHttpClient$$/httpmime/target/httpmime-4.2.5.jar libs/
|
|
||||||
- pushd $$NanoHttpd$$
|
|
||||||
- $$MVN3$$ package
|
|
||||||
- popd
|
|
||||||
- cp $$NanoHttpd$$/core/target/nanohttpd-2.0.5.jar libs/
|
|
||||||
- cp -fR $$JsonSimple$$/src/main/java/org src/
|
|
||||||
- cp -fR $$PDFParseLib$$/pdfparse-lib/src/main/java/org src/
|
|
||||||
- rm -fR src/com/paragon
|
|
||||||
- sed -i -e '/com.google.android.gms.version/d' -e '/google_play_services/d' AndroidManifest.xml
|
|
||||||
- sed -i -e '/google.services.lib.dir/d' project.properties
|
|
||||||
- rm -fR src/org/geometerplus/android/fbreader/network/auth
|
|
||||||
- cp -fR $$FBReaderJ$$/src/org/geometerplus/android/fbreader/network/auth src/org/geometerplus/android/fbreader/network/
|
|
||||||
androidupdate:
|
|
||||||
- third-party/AmbilWarna
|
|
||||||
- third-party/android-filechooser/code
|
|
||||||
- third-party/drag-sort-listview/library
|
|
||||||
- .
|
|
||||||
target: android-14
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
- versionName: 2.5.9-ics
|
|
||||||
versionCode: 2050920
|
|
||||||
commit: 43e14feedf10ad53ec68bf42b1644f488889381c
|
|
||||||
srclibs:
|
|
||||||
- FBReaderJ@2.5.9
|
|
||||||
- PDFParseLib@36d7479ce85638eb4f0ff9c875ec77680177da5d
|
|
||||||
- ApacheHttpClient@4.2.5
|
|
||||||
- NanoHttpd@Release-2.0.5
|
|
||||||
- JsonSimple@tag_release_1_1_1
|
|
||||||
forceversion: true
|
|
||||||
rm:
|
|
||||||
- libs/*jar
|
|
||||||
- obsolete/lib/*.jar
|
|
||||||
- src/org/geometerplus/android/fbreader/dict/OpenDictionary.java
|
|
||||||
- src/org/geometerplus/android/fbreader/dict/Lingvo.java
|
|
||||||
extlibs:
|
|
||||||
- android/android-support-v4.jar
|
|
||||||
prebuild:
|
|
||||||
- echo -e "sdk.dir=$$SDK$$\nndk.dir=$$NDK$$\n" >> local.properties
|
|
||||||
- cp local.properties third-party/AmbilWarna/
|
|
||||||
- cp local.properties third-party/android-filechooser/code/
|
|
||||||
- cp local.properties third-party/drag-sort-listview/library/
|
|
||||||
- echo 'APP_PLATFORM := android-11' >> jni/Application.mk
|
|
||||||
- pushd $$ApacheHttpClient$$/httpmime/
|
|
||||||
- $$MVN3$$ package -Dmaven.javadoc.skip=true
|
|
||||||
- popd
|
|
||||||
- cp $$ApacheHttpClient$$/httpmime/target/httpmime-4.2.5.jar libs/
|
|
||||||
- pushd $$NanoHttpd$$
|
|
||||||
- $$MVN3$$ package
|
|
||||||
- popd
|
|
||||||
- cp $$NanoHttpd$$/core/target/nanohttpd-2.0.5.jar libs/
|
|
||||||
- cp -fR $$JsonSimple$$/src/main/java/org src/
|
|
||||||
- cp -fR $$PDFParseLib$$/pdfparse-lib/src/main/java/org src/
|
|
||||||
- rm -fR src/com/paragon
|
|
||||||
- sed -i -e '/com.google.android.gms.version/d' -e '/google_play_services/d' AndroidManifest.xml
|
|
||||||
- sed -i -e '/google.services.lib.dir/d' project.properties
|
|
||||||
- mkdir third-party/drag-sort-listview/library/libs
|
|
||||||
- cp libs/android-support-v4.jar third-party/drag-sort-listview/library/libs/&&
|
|
||||||
sed -i -e '/Lingvo/d' src/org/geometerplus/android/fbreader/dict/DictionaryUtil.java
|
|
||||||
- rm -fR src/org/geometerplus/android/fbreader/network/auth
|
|
||||||
- cp -fR $$FBReaderJ$$/src/org/geometerplus/android/fbreader/network/auth src/org/geometerplus/android/fbreader/network/
|
|
||||||
- sed -i -e '/^\s*OpenDictionary.collect/d' src/org/geometerplus/android/fbreader/dict/DictionaryUtil.java
|
|
||||||
androidupdate:
|
|
||||||
- third-party/AmbilWarna
|
|
||||||
- third-party/android-filechooser/code
|
|
||||||
- third-party/drag-sort-listview/library
|
|
||||||
- .
|
|
||||||
target: android-21
|
|
||||||
buildjni:
|
|
||||||
- yes
|
|
||||||
|
|
||||||
MaintainerNotes: |-
|
|
||||||
* LingvoIntegration and OpenDictionary APIs are non-free. Remove jars and patch
|
|
||||||
depending code. Currently done with rm and sed in prebuilds.
|
|
||||||
* %v tags are currently targeting gingerbread, but have ressource conflicts
|
|
||||||
with target=android-9; they build with target=android-14
|
|
||||||
* %v-ics tags are actually based on the yotaphone branch, so we have to
|
|
||||||
use raw commits for the ice-cream-sandwich branch (look for "Merge
|
|
||||||
branch 'master' into ice-cream-sandwich" after a commit with "version
|
|
||||||
=> ...")
|
|
||||||
* ics branch uses google play, so we have to sed AM.xml and ant files.
|
|
||||||
/fbreader/network/ depends on Google Play Services, so these are
|
|
||||||
removed and replaced with the master branch which does not depend on
|
|
||||||
these.
|
|
||||||
* UCM is set to master branch, we don't care for target or device specific
|
|
||||||
releases.
|
|
||||||
|
|
||||||
TODO:
|
|
||||||
* make gingerbread/master available for android-9!
|
|
||||||
|
|
||||||
ArchivePolicy: 6 versions
|
|
||||||
AutoUpdateMode: None
|
|
||||||
UpdateCheckMode: Tags ^[0-9.]*$
|
|
||||||
VercodeOperation: '%c + 10'
|
|
||||||
CurrentVersion: 2.5.9
|
|
||||||
CurrentVersionCode: 2050920
|
|
Loading…
Reference in New Issue
Block a user