fun test_bundle
do
- var bundle = new Bundle(self)
-
+ var bundle = new Bundle
+
bundle["anInt"] = 1
bundle["aFloat"] = 1.1
bundle["aString"] = "A string"
bundle["aBool"] = true
-
+
var int_array = new Array[Int]
var bool_array = new Array[Bool]
assert bundle.string("wrongString") == null
assert bundle.bool("aBool", false)
assert bundle.bool("wrongBool", false) == false
-
+
var int_array_test = bundle.array_of_int("anArrayOfInt")
var bool_array_test = bundle.array_of_bool("anArrayOfBool")
assert bool_array_test[i] == value
value = not value
end
-
+
assert bundle.size == 6
assert bundle.has("aBool")
assert not bundle.is_empty
var deserialized_point_array = bundle.deserialize_array("anArrayOfPoint")
- for i in [0..5] do
+ for i in [0..5] do
var point = new Point(i, i)
assert deserialized_point_array[i].to_s == point.to_s
end
# Android API for various data exchange purposes
module bundle
-import native_app_glue
import serialization
import json_serialization
+import platform
+import activities
+
in "Java" `{
import android.os.Bundle;
import android.app.Activity;
extern class NativeBundle in "Java" `{ android.os.Bundle `}
super JavaObject
+ new in "Java" `{ return new Bundle(); `}
+
fun clone: JavaObject in "Java" `{ return recv.clone(); `}
fun size: Int in "Java" `{ return recv.size(); `}
fun is_empty: Bool in "Java" `{ return recv.isEmpty(); `}
# A class mapping `String` keys to various value types
class Bundle
- private var native_bundle: NativeBundle
- private var context: NativeActivity
-
- init(app: App)
- do
- self.context = app.native_activity
- setup
- end
+ private var native_bundle: NativeBundle = new NativeBundle is lazy
- private fun set_vars(native_bundle: NativeBundle)
- do
- self.native_bundle = native_bundle.new_global_ref
- end
-
- private fun setup import context, set_vars in "Java" `{
- Activity context = (Activity) Bundle_context(recv);
- Bundle bundle = new Bundle();
-
- Bundle_set_vars(recv, bundle);
- `}
+ # Get a new `Bundle` wrapping `native_bundle`
+ init from(native_bundle: NativeBundle) do self.native_bundle = native_bundle
# Returns `true` if the Bundle contains this key
fun has(key: String): Bool