Added missing enums & listeners to proguard file generated by JAVA wrapper

This commit is contained in:
Sylvain Berfini 2018-04-13 18:13:33 +02:00
parent 7705ada695
commit 9e921fa303
2 changed files with 36 additions and 1 deletions

View file

@ -654,6 +654,8 @@ class Proguard(object):
def __init__(self, package):
self.package = package
self.classes = []
self.enums = []
self.listeners = []
def add_class(self, javaClass):
obj = {
@ -663,6 +665,27 @@ class Proguard(object):
}
self.classes.append(obj)
for javaEnum in javaClass.enums:
enumObj = {
'package': self.package,
'className': javaClass.className + "$" + javaEnum.className,
}
self.enums.append(enumObj)
def add_enum(self, javaEnum):
obj = {
'package': self.package,
'className': javaEnum.className,
}
self.enums.append(obj)
def add_interface(self, javaInterface):
obj = {
'package': self.package,
'className': javaInterface.className,
}
self.listeners.append(obj)
##########################################################################
class GenWrapper(object):
@ -710,8 +733,10 @@ class GenWrapper(object):
for name, value in self.enums.items():
self.render(value, self.javadir + '/' + value.filename)
self.proguard.add_enum(value)
for name, value in self.interfaces.items():
self.render(value, self.javadir + '/' + value.filename)
self.proguard.add_interface(value)
for name, value in self.classes.items():
self.render(value, self.javadir + '/' + value.filename)
self.jni.add_object(value)

View file

@ -1,12 +1,22 @@
# Don't warn stuff that we are not "proguarding", warnings would make the build fail.
-dontwarn org.linphone.**
# The following intefaces are referenced from JNI
# The following interfaces and classes are referenced from JNI
{{#classes}}
-keep interface {{package}}.{{className}} {*;}
-keep class {{package}}.{{classImplName}} {*;}
{{/classes}}
# The following enums are referenced from JNI
{{#enums}}
-keep class {{package}}.{{className}} {*;}
{{/enums}}
# The following listeners are referenced from JNI
{{#listeners}}
-keep class {{package}}.{{className}} {*;}
{{/listeners}}
# Liblinphone tools
-keep class org.linphone.core.tools.* {*;}