From 6e025c52f39fd33f07c85ca5a4d35da113ec6bc5 Mon Sep 17 00:00:00 2001 From: Joshua Quick Date: Mon, 9 Nov 2020 22:14:17 -0800 Subject: [PATCH] fix(android): module logDeprecation() linker error Fixes TIMOB-28161 --- .../annotations/generator/KrollJSONGenerator.java | 3 +++ .../annotations/generator/ProxyBindingV8.cpp.fm | 14 ++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/android/kroll-apt/src/main/java/org/appcelerator/kroll/annotations/generator/KrollJSONGenerator.java b/android/kroll-apt/src/main/java/org/appcelerator/kroll/annotations/generator/KrollJSONGenerator.java index 1f10db00af2..0dadb0b7cae 100644 --- a/android/kroll-apt/src/main/java/org/appcelerator/kroll/annotations/generator/KrollJSONGenerator.java +++ b/android/kroll-apt/src/main/java/org/appcelerator/kroll/annotations/generator/KrollJSONGenerator.java @@ -110,6 +110,7 @@ public class KrollJSONGenerator extends AbstractProcessor protected String jarJsonPackageName; protected String jarJsonFileName; protected String jsonFilePath; + protected boolean isTitaniumSdk = true; protected boolean initialized = false; private boolean hasPropertiesChanged = true; @@ -189,6 +190,7 @@ protected void initialize() if ((stringValue != null) && !stringValue.isEmpty()) { this.jsonFilePath = stringValue; } + isTitaniumSdk = (processingEnv.getOptions().get(OPTION_TI_BINDINGS_JSON_FILE_PATH_NAME) == null); // If we're set up to generate a JSON file within a JAR, // then attempt to read our previously generated JSON file if it exists. @@ -327,6 +329,7 @@ public boolean visit(AnnotationMirror annotation, Object arg) proxyProperties.put("superProxyClassName", superTypeName); } + proxyProperties.put("isTitaniumSdk", isTitaniumSdk); proxyProperties.put("isModule", isModule); proxyProperties.put("packageName", packageName); proxyProperties.put("proxyClassName", proxyClassName); diff --git a/android/kroll-apt/src/main/resources/org/appcelerator/kroll/annotations/generator/ProxyBindingV8.cpp.fm b/android/kroll-apt/src/main/resources/org/appcelerator/kroll/annotations/generator/ProxyBindingV8.cpp.fm index cdd8a2fc343..6fffb600243 100644 --- a/android/kroll-apt/src/main/resources/org/appcelerator/kroll/annotations/generator/ProxyBindingV8.cpp.fm +++ b/android/kroll-apt/src/main/resources/org/appcelerator/kroll/annotations/generator/ProxyBindingV8.cpp.fm @@ -278,10 +278,20 @@ void ${className}::${method.apiName}(const FunctionCallbackInfo& args) <#if method.args?size == 0 && name[0..2] == "get" && isDynamic> <#assign propertyName = name[3]?lower_case + name[4..]> - Proxy::logDeprecation(isolate, "Getter method deprecated, please use \"obj.${propertyName};\" or \"obj['${propertyName}'];\" instead."); + const char *deprecationMessage = "Getter method deprecated, please use \"obj.${propertyName};\" or \"obj['${propertyName}'];\" instead."; + <#if isTitaniumSdk> + Proxy::logDeprecation(isolate, deprecationMessage); + <#else> + LOGW(TAG, deprecationMessage); + <#elseif method.args?size == 1 && name[0..2] == "set" && isDynamic> <#assign propertyName = name[3]?lower_case + name[4..]> - Proxy::logDeprecation(isolate, "Setter method deprecated, please use \"obj.${propertyName} = val;\" or \"obj['${propertyName}'] = val;\" instead."); + const char *deprecationMessage = "Setter method deprecated, please use \"obj.${propertyName} = val;\" or \"obj['${propertyName}'] = val;\" instead."; + <#if isTitaniumSdk> + Proxy::logDeprecation(isolate, deprecationMessage); + <#else> + LOGW(TAG, deprecationMessage); + jobject javaProxy = proxy->getJavaObject();