X-Git-Url: http://nitlanguage.org diff --git a/lib/android/intent/intent_api10.nit b/lib/android/intent/intent_api10.nit index 005b475..1c05f89 100644 --- a/lib/android/intent/intent_api10.nit +++ b/lib/android/intent/intent_api10.nit @@ -18,10 +18,10 @@ # `android.content.Intent` for the android platform module intent_api10 -import native_app_glue +import dalvik import android::bundle import serialization -private import json_serialization +private import json in "Java" `{ import android.content.Intent; @@ -29,21 +29,24 @@ in "Java" `{ import android.graphics.Rect; import java.util.Set; import java.util.ArrayList; + import nit.app.NitObject; `} extern class NativeIntent in "Java" `{ android.content.Intent `} super JavaObject - fun add_category(category: JavaString) in "Java" `{ recv.addCategory(category); `} - fun add_flags(flags: Int) in "Java" `{ recv.addFlags((int)flags); `} + new in "Java" `{ return new Intent(); `} + + fun add_category(category: JavaString) in "Java" `{ self.addCategory(category); `} + fun add_flags(flags: Int) in "Java" `{ self.addFlags((int)flags); `} fun filter_equals(other: NativeIntent): Bool in "Java" `{ - return recv.filterEquals(other); + return self.filterEquals(other); `} - fun action: JavaString in "Java" `{ return recv.getAction(); `} + fun action: JavaString in "Java" `{ return self.getAction(); `} fun boolean_array_extra(name: JavaString): Array[Bool] import Array[Bool], Array[Bool].push in "Java" `{ - boolean[] java_array = recv.getBooleanArrayExtra(name); - int nit_array = new_Array_of_Bool(); + boolean[] java_array = self.getBooleanArrayExtra(name); + NitObject nit_array = new_Array_of_Bool(); for(int i=0; i < java_array.length; ++i) Array_of_Bool_push(nit_array, java_array[i]); @@ -51,12 +54,12 @@ extern class NativeIntent in "Java" `{ android.content.Intent `} return nit_array; `} fun boolean_extra(name: JavaString, def_value: Bool): Bool in "Java" `{ - return recv.getBooleanExtra(name, def_value); + return self.getBooleanExtra(name, def_value); `} fun byte_array_extra(name: JavaString): Array[Int] import Array[Int], Array[Int].add in "Java" `{ - byte[] java_array = recv.getByteArrayExtra(name); - int nit_array = new_Array_of_Int(); + byte[] java_array = self.getByteArrayExtra(name); + NitObject nit_array = new_Array_of_Int(); for (int i=0; i < java_array.length; ++i) Array_of_Int_add(nit_array, java_array[i]); @@ -64,13 +67,13 @@ extern class NativeIntent in "Java" `{ android.content.Intent `} return nit_array; `} fun byte_extra(name: JavaString, def_value: Int): Int in "Java" `{ - return (int) recv.getByteExtra(name, (byte) def_value); + return (int) self.getByteExtra(name, (byte) def_value); `} # FIXME: Java's `char` are encoded on 16-bits whereas Nit's are on 8-bits. fun char_array_extra(name: JavaString): Array[Char] import Array[Char], Array[Char].add in "Java" `{ - char[] java_array = recv.getCharArrayExtra(name); - int nit_array = new_Array_of_Char(); + char[] java_array = self.getCharArrayExtra(name); + NitObject nit_array = new_Array_of_Char(); for (int i = 0; i < java_array.length; ++i) Array_of_Char_add(nit_array, java_array[i]); @@ -79,12 +82,12 @@ extern class NativeIntent in "Java" `{ android.content.Intent `} `} # FIXME: Java's `char` are encoded on 16-bits whereas Nit's are on 8-bits. fun char_extra(name: JavaString, def_value: Char): Char in "Java" `{ - return recv.getCharExtra(name, def_value); + return (int)self.getCharExtra(name, (char)def_value); `} fun char_sequence_array_extra(name: JavaString): Array[String] import StringCopyArray, StringCopyArray.add, StringCopyArray.collection in "Java" `{ - CharSequence[] java_array = recv.getCharSequenceArrayExtra(name); - int nit_array = new_StringCopyArray(); + CharSequence[] java_array = self.getCharSequenceArrayExtra(name); + NitObject nit_array = new_StringCopyArray(); for (int i = 0; i < java_array.length; ++i) StringCopyArray_add(nit_array, (String) java_array[i]); @@ -93,8 +96,8 @@ extern class NativeIntent in "Java" `{ android.content.Intent `} `} fun char_sequence_array_list_extra(name: JavaString): Array[String] import StringCopyArray, StringCopyArray.add, StringCopyArray.collection in "Java" `{ - ArrayList java_array = recv.getCharSequenceArrayListExtra(name); - int nit_array = new_StringCopyArray(); + ArrayList java_array = self.getCharSequenceArrayListExtra(name); + NitObject nit_array = new_StringCopyArray(); if (java_array == null) return nit_array; @@ -104,12 +107,12 @@ extern class NativeIntent in "Java" `{ android.content.Intent `} return StringCopyArray_collection(nit_array); `} fun char_sequence_extra(name: JavaString): JavaString in "Java" `{ - return (String) recv.getCharSequenceExtra(name); + return (String) self.getCharSequenceExtra(name); `} fun categories: HashSet[String] import StringCopyHashSet, StringCopyHashSet.add, StringCopyHashSet.collection in "Java" `{ - Set java_set = recv.getCategories(); - int nit_hashset = new_StringCopyHashSet(); + Set java_set = self.getCategories(); + NitObject nit_hashset = new_StringCopyHashSet(); if (java_set == null) return nit_hashset; @@ -119,11 +122,11 @@ extern class NativeIntent in "Java" `{ android.content.Intent `} return StringCopyHashSet_collection(nit_hashset); `} # Returns the Uri as an encoded String - fun data: JavaString in "Java" `{ return recv.getDataString(); `} + fun data: JavaString in "Java" `{ return self.getDataString(); `} fun double_array_extra(name: JavaString): Array[Float] import Array[Float], Array[Float].push in "Java" `{ - double[] java_array = recv.getDoubleArrayExtra(name); - int nit_array = new_Array_of_Float(); + double[] java_array = self.getDoubleArrayExtra(name); + NitObject nit_array = new_Array_of_Float(); for(int i=0; i < java_array.length; ++i) Array_of_Float_push(nit_array, java_array[i]); @@ -131,13 +134,13 @@ extern class NativeIntent in "Java" `{ android.content.Intent `} return nit_array; `} fun double_extra(name: JavaString, def_value: Float): Float in "Java" `{ - return recv.getDoubleExtra(name, def_value); + return self.getDoubleExtra(name, def_value); `} - fun flags: Int in "Java" `{ return recv.getFlags(); `} + fun flags: Int in "Java" `{ return self.getFlags(); `} fun float_array_extra(name: JavaString): Array[Float] import Array[Float], Array[Float].push in "Java" `{ - float[] java_array = recv.getFloatArrayExtra(name); - int nit_array = new_Array_of_Float(); + float[] java_array = self.getFloatArrayExtra(name); + NitObject nit_array = new_Array_of_Float(); for(int i=0; i < java_array.length; ++i) Array_of_Float_push(nit_array, java_array[i]); @@ -145,12 +148,12 @@ extern class NativeIntent in "Java" `{ android.content.Intent `} return nit_array; `} fun float_extra(name: JavaString, def_value: Float): Float in "Java" `{ - return recv.getFloatExtra(name, (float) def_value); + return self.getFloatExtra(name, (float) def_value); `} fun int_array_extra(name: JavaString): Array[Int] import Array[Int], Array[Int].push in "Java" `{ - int[] java_array = recv.getIntArrayExtra(name); - int nit_array = new_Array_of_Int(); + int[] java_array = self.getIntArrayExtra(name); + NitObject nit_array = new_Array_of_Int(); for(int i=0; i < java_array.length; ++i) Array_of_Int_push(nit_array, java_array[i]); @@ -158,12 +161,12 @@ extern class NativeIntent in "Java" `{ android.content.Intent `} return nit_array; `} fun int_extra(name: JavaString, def_value: Int): Int in "Java" `{ - return recv.getIntExtra(name, (int)def_value); + return self.getIntExtra(name, (int)def_value); `} fun long_array_extra(name: JavaString): Array[Int] import Array[Int], Array[Int].push in "Java" `{ - long[] java_array = recv.getLongArrayExtra(name); - int nit_array = new_Array_of_Int(); + long[] java_array = self.getLongArrayExtra(name); + NitObject nit_array = new_Array_of_Int(); for(int i=0; i < java_array.length; ++i) Array_of_Int_push(nit_array, (int) java_array[i]); @@ -171,14 +174,14 @@ extern class NativeIntent in "Java" `{ android.content.Intent `} return nit_array; `} fun long_extra(name: JavaString, def_value: Int): Int in "Java" `{ - return (int) recv.getLongExtra(name, def_value); + return (int) self.getLongExtra(name, def_value); `} - fun get_package: JavaString in "Java" `{ return recv.getPackage(); `} - fun scheme: JavaString in "Java" `{ return recv.getScheme(); `} + fun get_package: JavaString in "Java" `{ return self.getPackage(); `} + fun scheme: JavaString in "Java" `{ return self.getScheme(); `} fun short_array_extra(name: JavaString): Array[Int] import Array[Int], Array[Int].push in "Java" `{ - short[] java_array = recv.getShortArrayExtra(name); - int nit_array = new_Array_of_Int(); + short[] java_array = self.getShortArrayExtra(name); + NitObject nit_array = new_Array_of_Int(); for(int i=0; i < java_array.length; ++i) Array_of_Int_push(nit_array, (int) java_array[i]); @@ -186,12 +189,12 @@ extern class NativeIntent in "Java" `{ android.content.Intent `} return nit_array; `} fun short_extra(name: JavaString, def_value: Int): Int in "Java" `{ - return recv.getShortExtra(name, (short) def_value); + return self.getShortExtra(name, (short) def_value); `} fun string_array_extra(name: JavaString): Array[String] import StringCopyArray, StringCopyArray.add, StringCopyArray.collection in "Java" `{ - String[] java_array = recv.getStringArrayExtra(name); - int nit_array = new_StringCopyArray(); + String[] java_array = self.getStringArrayExtra(name); + NitObject nit_array = new_StringCopyArray(); for(int i=0; i < java_array.length; ++i) StringCopyArray_add(nit_array, java_array[i]); @@ -200,8 +203,8 @@ extern class NativeIntent in "Java" `{ android.content.Intent `} `} fun string_array_list_extra(name: JavaString): Array[String] import StringCopyArray, StringCopyArray.add, StringCopyArray.collection in "Java" `{ - ArrayList java_array = recv.getStringArrayListExtra(name); - int nit_array = new_StringCopyArray(); + ArrayList java_array = self.getStringArrayListExtra(name); + NitObject nit_array = new_StringCopyArray(); for (String element: java_array) StringCopyArray_add(nit_array, element); @@ -209,19 +212,19 @@ extern class NativeIntent in "Java" `{ android.content.Intent `} return StringCopyArray_collection(nit_array); `} fun string_extra(name: JavaString): JavaString in "Java" `{ - String return_value = recv.getStringExtra(name); + String return_value = self.getStringExtra(name); if (return_value == null) return ""; return return_value; `} - fun get_type: JavaString in "Java" `{ return recv.getType(); `} + fun get_type: JavaString in "Java" `{ return self.getType(); `} fun has_category(category: JavaString): Bool in "Java" `{ - return recv.hasCategory(category); + return self.hasCategory(category); `} - fun has_extra(extra: JavaString): Bool in "Java" `{ return recv.hasExtra(extra); `} - fun has_file_descriptors: Bool in "Java" `{ return recv.hasFileDescriptors(); `} + fun has_extra(extra: JavaString): Bool in "Java" `{ return self.hasExtra(extra); `} + fun has_file_descriptors: Bool in "Java" `{ return self.hasFileDescriptors(); `} fun add_extra_double(name: JavaString, value: Float): NativeIntent in "Java" `{ - return recv.putExtra(name, value); + return self.putExtra(name, value); `} fun add_extra_array_of_double(name: JavaString, value: Array[Float]): NativeIntent import Array[Float].length, Array[Float].[] in "Java" `{ @@ -230,11 +233,11 @@ extern class NativeIntent in "Java" `{ android.content.Intent `} for (int i=0; i < java_array.length; ++i) java_array[i] = Array_of_Float__index(value, i); - return recv.putExtra(name, java_array); + return self.putExtra(name, java_array); `} # FIXME: Java's `char` are encoded on 16-bits whereas Nit's are on 8-bits. fun add_extra_char(name: JavaString, value: Char): NativeIntent in "Java" `{ - return recv.putExtra(name, value); + return self.putExtra(name, value); `} # FIXME: Java's `char` are encoded on 16-bits whereas Nit's are on 8-bits. fun add_extra_array_of_char(name: JavaString, value: Array[Char]): NativeIntent @@ -242,13 +245,13 @@ extern class NativeIntent in "Java" `{ android.content.Intent `} 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); - return recv.putExtra(name, java_array); + return self.putExtra(name, java_array); `} fun add_extra_char_sequence(name: JavaString, value: JavaString): NativeIntent in "Java" `{ - return recv.putExtra(name, value); + return self.putExtra(name, value); `} fun add_extra_array_of_char_sequence(name: JavaString, value: Array[JavaString]): NativeIntent import Array[JavaString].length, Array[JavaString].[] in "Java" `{ @@ -257,14 +260,14 @@ extern class NativeIntent in "Java" `{ android.content.Intent `} for (int i=0; i < java_array.length; ++i) java_array[i] = Array_of_JavaString__index(value, i); - return recv.putExtra(name, java_array); + return self.putExtra(name, java_array); `} fun add_extra_bundle(name: JavaString, value: NativeBundle): NativeIntent in "Java" `{ - return recv.putExtra(name, value); + return self.putExtra(name, value); `} fun add_extra_int(name: JavaString, value: Int): NativeIntent in "Java" `{ - return recv.putExtra(name, value); + return self.putExtra(name, value); `} fun add_extra_array_of_int(name: JavaString, value: Array[Int]): NativeIntent import Array[Int].length, Array[Int].[] in "Java" `{ @@ -273,7 +276,7 @@ extern class NativeIntent in "Java" `{ android.content.Intent `} for (int i=0; i < java_array.length; ++i) java_array[i] = (int)Array_of_Int__index(value, i); - return recv.putExtra(name, java_array); + return self.putExtra(name, java_array); `} fun add_extra_array_list_of_int(name: JavaString, value: Array[Int]): NativeIntent import Array[Int].length, Array[Int].[] in "Java" `{ @@ -283,16 +286,16 @@ extern class NativeIntent in "Java" `{ android.content.Intent `} for (int i=0; i < length; ++i) java_array.add((int)Array_of_Int__index(value, i)); - return recv.putExtra(name, java_array); + return self.putExtra(name, java_array); `} fun add_extra_byte(name: JavaString, value: Int): NativeIntent in "Java" `{ - return recv.putExtra(name, (byte) value); + return self.putExtra(name, (byte) value); `} fun add_extra_array_of_byte(name: JavaString, value: Int): NativeIntent in "Java" `{ - return recv.putExtra(name, (byte) value); + return self.putExtra(name, (byte) value); `} fun add_extra_long(name: JavaString, value: Int): NativeIntent in "Java" `{ - return recv.putExtra(name, value); + return self.putExtra(name, value); `} fun add_extra_array_of_long(name: JavaString, value: Array[Int]): NativeIntent import Array[Int].length, Array[Int].[] in "Java" `{ @@ -301,10 +304,10 @@ extern class NativeIntent in "Java" `{ android.content.Intent `} for (int i=0; i < java_array.length; ++i) java_array[i] = Array_of_Int__index(value, i); - return recv.putExtra(name, java_array); + return self.putExtra(name, java_array); `} fun add_extra_float(name: JavaString, value: Float): NativeIntent in "Java" `{ - return recv.putExtra(name, value); + return self.putExtra(name, value); `} fun add_extra_array_of_float(name: JavaString, value: Array[Float]): NativeIntent import Array[Float].length, Array[Float].[] in "Java" `{ @@ -313,10 +316,10 @@ extern class NativeIntent in "Java" `{ android.content.Intent `} for (int i=0; i < java_array.length; ++i) java_array[i] = (float) Array_of_Float__index(value, i); - return recv.putExtra(name, java_array); + return self.putExtra(name, java_array); `} fun add_extra_string(name: JavaString, value: JavaString): NativeIntent in "Java" `{ - return recv.putExtra(name, value); + return self.putExtra(name, value); `} fun add_extra_array_of_string(name: JavaString, value: Array[JavaString]): NativeIntent import Array[JavaString].length, Array[JavaString].[] in "Java" `{ @@ -325,7 +328,7 @@ extern class NativeIntent in "Java" `{ android.content.Intent `} for (int i=0; i < java_array.length; ++i) java_array[i] = Array_of_JavaString__index(value, i); - return recv.putExtra(name, java_array); + return self.putExtra(name, java_array); `} fun add_extra_array_list_of_string(name: JavaString, value: Array[JavaString]): NativeIntent import Array[JavaString].length, Array[JavaString].[] in "Java" `{ @@ -336,10 +339,10 @@ extern class NativeIntent in "Java" `{ android.content.Intent `} java_array.add(Array_of_JavaString__index(value, i)); } - return recv.putExtra(name, java_array); + return self.putExtra(name, java_array); `} fun add_extra_bool(name: JavaString, value: Bool): NativeIntent in "Java" `{ - return recv.putExtra(name, value); + return self.putExtra(name, value); `} fun add_extra_array_of_bool(name: JavaString, value: Array[Bool]): NativeIntent import Array[Bool].length, Array[Bool].[] in "Java" `{ @@ -348,10 +351,10 @@ extern class NativeIntent in "Java" `{ android.content.Intent `} for (int i=0; i < java_array.length; ++i) java_array[i] = Array_of_Bool__index(value, i); - return recv.putExtra(name, java_array); + return self.putExtra(name, java_array); `} fun add_extra_short(name: JavaString, value: Int): NativeIntent in "Java" `{ - return recv.putExtra(name, value); + return self.putExtra(name, value); `} fun add_extra_array_of_short(name: JavaString, value: Array[Int]): NativeIntent import Array[Int].length, Array[Int].[] in "Java" `{ @@ -360,22 +363,22 @@ extern class NativeIntent in "Java" `{ android.content.Intent `} for (int i=0; i < java_array.length; ++i) java_array[i] = (short) Array_of_Int__index(value, i); - return recv.putExtra(name, java_array); + return self.putExtra(name, java_array); `} - fun copy_extras(src: NativeIntent): NativeIntent in "Java" `{ return recv.putExtras(src); `} - fun add_extras(src: NativeBundle): NativeIntent in "Java" `{ return recv.putExtras(src); `} - fun remove_category(category: JavaString) in "Java" `{ recv.removeCategory(category); `} - fun remove_extra(name: JavaString) in "Java" `{ recv.removeExtra(name); `} + fun copy_extras(src: NativeIntent): NativeIntent in "Java" `{ return self.putExtras(src); `} + fun add_extras(src: NativeBundle): NativeIntent in "Java" `{ return self.putExtras(src); `} + fun remove_category(category: JavaString) in "Java" `{ self.removeCategory(category); `} + fun remove_extra(name: JavaString) in "Java" `{ self.removeExtra(name); `} fun replace_extras(src: NativeIntent): NativeIntent in "Java" `{ - return recv.replaceExtras(src); + return self.replaceExtras(src); `} fun resolve_activity(pm: NativePackageManager): NativeComponentName in "Java" `{ - return recv.resolveActivity(pm); + return self.resolveActivity(pm); `} fun resolve_type(context: NativeActivity): JavaString in "Java" `{ - return recv.resolveType(context); + return self.resolveType(context); `} - fun action=(action: JavaString): NativeIntent in "Java" `{ return recv.setAction(action); `} + fun action=(action: JavaString): NativeIntent in "Java" `{ return self.setAction(action); `} fun class_=(package_context: NativeActivity, class_name: JavaString): NativeIntent in "Java" `{ Class java_class = null; @@ -384,40 +387,40 @@ extern class NativeIntent in "Java" `{ android.content.Intent `} } catch (Exception e) { e.getStackTrace(); } - return recv.setClass(package_context, java_class); + return self.setClass(package_context, java_class); `} fun class_name=(package_context: NativeActivity, class_name: JavaString): NativeIntent in "Java" `{ - return recv.setClassName(package_context, class_name); + return self.setClassName(package_context, class_name); `} fun set_class_name(package_name: JavaString, class_name: JavaString): NativeIntent in "Java" `{ - return recv.setClassName(package_name, class_name); + return self.setClassName(package_name, class_name); `} fun data=(data_uri: JavaString): NativeIntent in "Java" `{ - return recv.setData(Uri.parse(data_uri)); + return self.setData(Uri.parse(data_uri)); `} fun data_and_type=(data_uri: JavaString, type_: JavaString): NativeIntent in "Java" `{ - return recv.setDataAndType(Uri.parse(data_uri), type_); + return self.setDataAndType(Uri.parse(data_uri), type_); `} - fun flags=(flags: Int): NativeIntent in "Java" `{ return recv.setFlags((int)flags); `} + fun flags=(flags: Int): NativeIntent in "Java" `{ return self.setFlags((int)flags); `} fun package_name=(package_name: JavaString): NativeIntent in "Java" `{ - return recv.setPackage(package_name); + return self.setPackage(package_name); `} fun source_bounds=(left, top, right, bottom: Int) in "Java" `{ - recv.setSourceBounds(new Rect((int)left, (int)top, (int)right, (int)bottom)); + self.setSourceBounds(new Rect((int)left, (int)top, (int)right, (int)bottom)); `} fun mime_type=(mime_type: JavaString): NativeIntent in "Java" `{ - return recv.setType(mime_type); + return self.setType(mime_type); `} - fun to_native_s: JavaString in "Java" `{ return recv.toString(); `} - fun to_uri(flags: Int): JavaString in "Java" `{ return recv.toUri((int)flags); `} + fun to_native_s: JavaString in "Java" `{ return self.toString(); `} + fun to_uri(flags: Int): JavaString in "Java" `{ return self.toUri((int)flags); `} # HACK for bug #845 redef fun new_global_ref import sys, Sys.jni_env `{ - Sys sys = NativeIntent_sys(recv); + Sys sys = NativeIntent_sys(self); JNIEnv *env = Sys_jni_env(sys); - return (*env)->NewGlobalRef(env, recv); + return (*env)->NewGlobalRef(env, self); `} end @@ -626,23 +629,7 @@ end # Services allowing to launch an activity and start/stop services class Intent - protected var intent: NativeIntent - protected var context: NativeActivity - - init (app: App) - do - self.context = app.native_activity - setup - end - - private fun set_vars(intent: NativeIntent) do - self.intent = intent.new_global_ref - end - - private fun setup import context, intent, set_vars in "Java" `{ - Intent intent = new Intent(); - Intent_set_vars(recv, intent); - `} + protected var intent: NativeIntent = (new NativeIntent).new_global_ref is lazy # The general action to be performed # @@ -1285,7 +1272,7 @@ class Intent # Returns `self` allowing fluent programming fun []=(name: String, value: nullable Serializable): Intent do - var serialized_string = new StringOStream + var serialized_string = new StringWriter var serializer = new JsonSerializer(serialized_string) serializer.serialize(value) @@ -1311,14 +1298,6 @@ class Intent sys.jni_env.pop_local_frame return self end - # Execute the intent and launch the appropriate application - fun launch_activity do context.start_activity(intent) - - # Start a service that will be running until the `stop_service` call - fun start_service do context.start_service(intent) - - # Stop service - fun stop_service do context.stop_service(intent) # Deletes intent global reference fun destroy do self.intent.delete_global_ref @@ -1327,18 +1306,18 @@ class Intent redef fun to_s do return intent.to_native_s.to_s end -redef extern class NativeActivity - fun start_activity(intent: NativeIntent) in "Java" `{ recv.startActivity(intent); `} - fun start_service(intent: NativeIntent) in "Java" `{ recv.startService(intent); `} - fun stop_service(intent: NativeIntent) in "Java" `{ recv.stopService(intent); `} +redef extern class NativeContext + private fun start_activity(intent: NativeIntent) in "Java" `{ self.startActivity(intent); `} + private fun start_service(intent: NativeIntent) in "Java" `{ self.startService(intent); `} + private fun stop_service(intent: NativeIntent) in "Java" `{ self.stopService(intent); `} end # Allows user to get values with enum-like syntax : `intent_action.main` -protected fun intent_action: Action do return once new Action +fun intent_action: Action do return once new Action # Allows user to get values with enum-like syntax : `intent_category.home` -protected fun intent_category: Category do return once new Category +fun intent_category: Category do return once new Category # Allows user to get values with enum-like syntax : `intent_flag.activity_brought_to_front` -protected fun intent_flag: Flag do return once new Flag +fun intent_flag: Flag do return once new Flag private class StringCopyArray var collection = new Array[String] @@ -1349,3 +1328,15 @@ private class StringCopyHashSet var collection = new HashSet[String] fun add(element: JavaString) do collection.add element.to_s end + +redef class App + + # Execute the intent and launch the appropriate application + fun start_activity(intent: Intent) do native_context.start_activity(intent.intent) + + # Start a service that will be running until the `stop_service` call + fun start_service(intent: Intent) do native_context.start_service(intent.intent) + + # Stop service + fun stop_service(intent: Intent) do native_context.stop_service(intent.intent) +end