package com.tns.tests; import java.io.InputStream; import android.content.Context; import android.content.res.AssetFileDescriptor; import android.content.res.AssetManager; public class StringConversionTest { public final String s; public StringConversionTest() throws Exception { this.s = readString(); } public String getString() { return this.s; } public String getString(int notUsed) { return this.s; } public String getString(byte notUsed) { return this.s; } public int getLength() { return this.s.length(); } public boolean equalsString(String other) throws Exception { byte[] thisBytes = this.s.getBytes("UTF-8"); byte[] otherBytes = other.getBytes("UTF-8"); boolean isEqualsString = thisBytes.length == otherBytes.length; int i = 0; if (isEqualsString) { for (; i < thisBytes.length; i++) { isEqualsString = thisBytes[i] == otherBytes[i]; if (!isEqualsString) { break; } } } return isEqualsString; } public String[] getStringArr() { return new String[10]; } public boolean equalsLength(String other) { int thisLength = this.s.length(); int otherLength = other.length(); return thisLength == otherLength; } public void triggerCallback() { this.callback(this.s); } public void callback(String str) { } private String readString() throws Exception { String str = null; Context context = com.tns.NativeScriptApplication.getInstance(); InputStream inputStream = null; try { String assetName = "app/tests/image.jpg"; int fileLength = 0; AssetFileDescriptor fd = null; try { fd = context.getAssets().openFd(assetName); fileLength = (int)fd.getLength(); } finally { if (fd != null) { fd.close(); } } inputStream = context.getAssets().open(assetName, AssetManager.ACCESS_STREAMING); byte[] data = new byte[fileLength]; inputStream.read(data); str = android.util.Base64.encodeToString(data, android.util.Base64.DEFAULT); // This is not correct - the raw image data is NOT UTF-8 string // TODO: Discuss //str = new String(data, "UTF-8"); } finally { if (inputStream != null) { inputStream.close(); } } return str; } }