From 9e921fa3030e92c4268e2170e00fc1f98b1d9f48 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 13 Apr 2018 18:13:33 +0200 Subject: [PATCH] Added missing enums & listeners to proguard file generated by JAVA wrapper --- wrappers/java/genwrapper.py | 25 +++++++++++++++++++++++++ wrappers/java/proguard.mustache | 12 +++++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/wrappers/java/genwrapper.py b/wrappers/java/genwrapper.py index 1f00356e0..a123d2c50 100755 --- a/wrappers/java/genwrapper.py +++ b/wrappers/java/genwrapper.py @@ -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) diff --git a/wrappers/java/proguard.mustache b/wrappers/java/proguard.mustache index 4ba8b9d44..65dd2ed12 100644 --- a/wrappers/java/proguard.mustache +++ b/wrappers/java/proguard.mustache @@ -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.* {*;}