am 179158fa: Switch RS support lib to use LOCAL_SDK_VERSION.
* commit '179158fa990160cf3f309f6a87a039e71ab664e8':
Switch RS support lib to use LOCAL_SDK_VERSION.
diff --git a/v8/renderscript/Android.mk b/v8/renderscript/Android.mk
index d8f3ce5..a288a86 100644
--- a/v8/renderscript/Android.mk
+++ b/v8/renderscript/Android.mk
@@ -22,7 +22,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE := android-support-v8-renderscript
-#LOCAL_SDK_VERSION := 17
+LOCAL_SDK_VERSION := 18
LOCAL_SRC_FILES := $(call all-java-files-under, java/src)
include $(BUILD_STATIC_JAVA_LIBRARY)
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/FieldPacker.java b/v8/renderscript/java/src/android/support/v8/renderscript/FieldPacker.java
index 1e54631..a5b5b41 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/FieldPacker.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/FieldPacker.java
@@ -16,7 +16,6 @@
package android.support.v8.renderscript;
-import android.os.SystemProperties;
import android.support.v8.renderscript.RenderScript;
/**
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/FieldPackerThunker.java b/v8/renderscript/java/src/android/support/v8/renderscript/FieldPackerThunker.java
index fe021e1..b61e482 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/FieldPackerThunker.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/FieldPackerThunker.java
@@ -16,7 +16,6 @@
package android.support.v8.renderscript;
-import android.os.SystemProperties;
import android.support.v8.renderscript.RenderScript;
/**
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/RenderScript.java b/v8/renderscript/java/src/android/support/v8/renderscript/RenderScript.java
index d9ff977..206fc8a 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/RenderScript.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/RenderScript.java
@@ -31,8 +31,6 @@
import android.util.Log;
import android.view.Surface;
-import android.os.SystemProperties;
-
/**
* This class provides access to a RenderScript context, which controls RenderScript
* initialization, resource management, and teardown. An instance of the RenderScript
@@ -95,12 +93,25 @@
*/
static private boolean setupThunk(int sdkVersion, Context ctx) {
if (sThunk == -1) {
+
+ // get the value of the debug.rs.forcecompat property
+ int forcecompat = 0;
+ try {
+ Class<?> sysprop = Class.forName("android.os.SystemProperties");
+ Class[] signature = {String.class, Integer.TYPE};
+ Method getint = sysprop.getDeclaredMethod("getInt", signature);
+ Object[] args = {"debug.rs.forcecompat", new Integer(0)};
+ forcecompat = ((java.lang.Integer)getint.invoke(null, args)).intValue();
+ } catch (Exception e) {
+
+ }
+
// use compat on Jelly Bean MR2 if we're requesting SDK 19+
if (android.os.Build.VERSION.SDK_INT == 18 && sdkVersion >= 19) {
sThunk = 0;
}
else if ((android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR2)
- && (SystemProperties.getInt("debug.rs.forcecompat", 0) == 0)) {
+ && forcecompat == 0) {
sThunk = 1;
} else {
sThunk = 0;
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/RenderScriptThunker.java b/v8/renderscript/java/src/android/support/v8/renderscript/RenderScriptThunker.java
index d4a3a98..bb6bf73 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/RenderScriptThunker.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/RenderScriptThunker.java
@@ -16,6 +16,9 @@
package android.support.v8.renderscript;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
@@ -52,11 +55,17 @@
public static RenderScript create(Context ctx, int sdkVersion) {
try {
RenderScriptThunker rs = new RenderScriptThunker(ctx);
- rs.mN = android.renderscript.RenderScript.create(ctx, sdkVersion);
+ Class<?> javaRS = Class.forName("android.renderscript.RenderScript");
+ Class[] signature = {Context.class, Integer.TYPE};
+ Object[] args = {ctx, new Integer(sdkVersion)};
+ Method create = javaRS.getDeclaredMethod("create", signature);
+ rs.mN = (android.renderscript.RenderScript)create.invoke(null, args);
return rs;
}
catch(android.renderscript.RSRuntimeException e) {
throw ExceptionThunker.convertException(e);
+ } catch (Exception e) {
+ throw new RSRuntimeException("Failure to create platform RenderScript context");
}
}