module bundle
import serialization
-import json::serialization
+import json
import platform
import activities
import android.app.Activity;
import java.util.ArrayList;
import java.util.Set;
+ import nit.app.NitObject;
`}
extern class NativeBundle in "Java" `{ android.os.Bundle `}
fun get(key: JavaString): JavaObject in "Java" `{ return self.get(key); `}
fun remove(key: JavaString) in "Java" `{ self.remove(key); `}
fun put_all(bundle: NativeBundle) in "Java" `{ self.putAll(bundle); `}
- fun key_set: HashSet[JavaString] import HashSet[JavaString],
- HashSet[JavaString].add in "Java" `{
+ fun key_set: HashSet[JavaString] import HashSet[JavaString],
+ HashSet[JavaString].add in "Java" `{
Set<String> java_set = self.keySet();
- int nit_hashset = new_HashSet_of_JavaString();
+ NitObject nit_hashset = new_HashSet_of_JavaString();
for (String element: java_set)
HashSet_of_JavaString_add(nit_hashset, element);
`}
# FIXME: Java's `char` are encoded on 16-bits whereas Nit's are on 8-bits.
fun put_char(key: JavaString, value: Char) in "Java" `{
- self.putChar(key, value);
+ self.putChar(key, (char)value);
`}
fun put_short(key: JavaString, value: Int) in "Java" `{
self.putShort(key, (short) value);
char[] java_array = new char[(int)Array_of_Char_length(value)];
for(int i=0; i < java_array.length; ++i)
- java_array[i] = Array_of_Char__index(value, i);
+ java_array[i] = (char)Array_of_Char__index(value, i);
self.putCharArray(key, java_array);
`}
return self.getByte(key, (byte) def_value);
`}
# FIXME: Java's `char` are encoded on 16-bits whereas Nit's are on 8-bits.
- fun get_char(key: JavaString): Char in "Java" `{ return self.getChar(key); `}
+ fun get_char(key: JavaString): Char in "Java" `{ return (int)self.getChar(key); `}
# FIXME: Java's `char` are encoded on 16-bits whereas Nit's are on 8-bits.
fun get_char_with_def_value(key: JavaString, def_value: Char): Char in "Java" `{
- return self.getChar(key, def_value);
+ return (int)self.getChar(key, (char)def_value);
`}
fun get_short(key: JavaString): Int in "Java" `{ return (short) self.getShort(key); `}
fun get_short_with_def_value(key: JavaString, def_value: Int): Int in "Java" `{
fun get_integer_array_list(key: JavaString): Array[Int]
import Array[Int], Array[Int].add in "Java" `{
ArrayList<Integer> java_array = self.getIntegerArrayList(key);
- int nit_array = new_Array_of_Int();
+ NitObject nit_array = new_Array_of_Int();
if (java_array == null) return nit_array;
fun get_string_array_list(key: JavaString): Array[String]
import StringCopyArray, StringCopyArray.add, StringCopyArray.collection in "Java" `{
ArrayList<String> java_array = self.getStringArrayList(key);
- int nit_array = new_StringCopyArray();
+ NitObject nit_array = new_StringCopyArray();
if (java_array == null) return nit_array;
fun get_char_sequence_array_list(key: JavaString): Array[String]
import StringCopyArray, StringCopyArray.add, StringCopyArray.collection in "Java" `{
ArrayList<CharSequence> java_array = self.getCharSequenceArrayList(key);
- int nit_array = new_StringCopyArray();
+ NitObject nit_array = new_StringCopyArray();
if (java_array == null) return nit_array;
fun get_boolean_array(key: JavaString): Array[Bool]
import Array[Bool], Array[Bool].add in "Java" `{
boolean[] java_array = self.getBooleanArray(key);
- int nit_array = new_Array_of_Bool();
+ NitObject nit_array = new_Array_of_Bool();
if (java_array == null) return nit_array;
fun get_byte_array(key: JavaString): Array[Int]
import Array[Int], Array[Int].add in "Java" `{
byte[] java_array = self.getByteArray(key);
- int nit_array = new_Array_of_Int();
+ NitObject nit_array = new_Array_of_Int();
if (java_array == null) return nit_array;
fun get_short_array(key: JavaString): Array[Int]
import Array[Int], Array[Int].add in "Java" `{
short[] java_array = self.getShortArray(key);
- int nit_array = new_Array_of_Int();
+ NitObject nit_array = new_Array_of_Int();
if (java_array == null) return nit_array;
fun get_char_array(key: JavaString): Array[Char]
import Array[Char], Array[Char].add in "Java" `{
char[] java_array = self.getCharArray(key);
- int nit_array = new_Array_of_Char();
+ NitObject nit_array = new_Array_of_Char();
if (java_array == null) return nit_array;
for(int i=0; i < java_array.length; ++i)
- Array_of_Char_add(nit_array, java_array[i]);
+ Array_of_Char_add(nit_array, (int)java_array[i]);
return nit_array;
`}
fun get_int_array(key: JavaString): Array[Int]
import Array[Int], Array[Int].add in "Java" `{
int[] java_array = self.getIntArray(key);
- int nit_array = new_Array_of_Int();
+ NitObject nit_array = new_Array_of_Int();
if (java_array == null) return nit_array;
fun get_long_array(key: JavaString): Array[Int]
import Array[Int], Array[Int].add in "Java" `{
long[] java_array = self.getLongArray(key);
- int nit_array = new_Array_of_Int();
+ NitObject nit_array = new_Array_of_Int();
if (java_array == null) return nit_array;
fun get_float_array(key: JavaString): Array[Float]
import Array[Float], Array[Float].add in "Java" `{
float[] java_array = self.getFloatArray(key);
- int nit_array = new_Array_of_Float();
+ NitObject nit_array = new_Array_of_Float();
if (java_array == null) return nit_array;
fun get_double_array(key: JavaString): Array[Float]
import Array[Float], Array[Float].add in "Java" `{
double[] java_array = self.getDoubleArray(key);
- int nit_array = new_Array_of_Float();
+ NitObject nit_array = new_Array_of_Float();
if (java_array == null) return nit_array;
fun get_string_array(key: JavaString): Array[String]
import StringCopyArray, StringCopyArray.add, StringCopyArray.collection in "Java" `{
String[] java_array = self.getStringArray(key);
- int nit_array = new_StringCopyArray();
+ NitObject nit_array = new_StringCopyArray();
if (java_array == null) return nit_array;
fun get_char_sequence_array(key: JavaString): Array[String]
import StringCopyArray, StringCopyArray.add, StringCopyArray.collection in "Java" `{
CharSequence[] java_array = self.getCharSequenceArray(key);
- int nit_array = new_StringCopyArray();
+ NitObject nit_array = new_StringCopyArray();
if (java_array == null) return nit_array;
# A class mapping `String` keys to various value types
class Bundle
- private var native_bundle: NativeBundle = new NativeBundle is lazy
+ private var native_bundle: NativeBundle = (new NativeBundle).new_global_ref is lazy
# Get a new `Bundle` wrapping `native_bundle`
init from(native_bundle: NativeBundle) do self.native_bundle = native_bundle
# Returns `null` if none or if it's the wrong value type
fun string(key: String): nullable String
do
- sys.jni_env.push_local_frame(1)
- var return_value = native_bundle.get_string(key.to_java_string).to_s
- sys.jni_env.pop_local_frame
+ sys.jni_env.push_local_frame(2)
- if return_value == "" then return null
+ var jstr = native_bundle.get_string(key.to_java_string)
+ var str = null
+ if not jstr.is_java_null then str = jstr.to_s
- return return_value
+ sys.jni_env.pop_local_frame
+
+ return str
end
# Retrieves the `Bool` value corresponding to the given key