Property definitions

android $ NativeIntent :: defaultinit
extern class NativeIntent in "Java" `{ android.content.Intent `}
	super JavaObject

	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 self.filterEquals(other);
	`}
	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 = 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]);

		return nit_array;
	`}
	fun boolean_extra(name: JavaString, def_value: Bool): Bool in "Java" `{
		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 = 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]);

		return nit_array;
	`}
	fun byte_extra(name: JavaString, def_value: Int): Int in "Java" `{
		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 = 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]);

		return nit_array;
	`}
	# 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 (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 = 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]);

		return StringCopyArray_collection(nit_array);
	`}
	fun char_sequence_array_list_extra(name: JavaString): Array[String]
	  import StringCopyArray, StringCopyArray.add, StringCopyArray.collection in "Java" `{
		ArrayList<CharSequence> java_array = self.getCharSequenceArrayListExtra(name);
		NitObject nit_array = new_StringCopyArray();

		if (java_array == null) return nit_array;

		for (CharSequence element: java_array)
			StringCopyArray_add(nit_array, (String) element);

		return StringCopyArray_collection(nit_array);
	`}
	fun char_sequence_extra(name: JavaString): JavaString in "Java" `{
		return (String) self.getCharSequenceExtra(name);
	`}
	fun categories: HashSet[String] import StringCopyHashSet,
	  StringCopyHashSet.add, StringCopyHashSet.collection  in "Java" `{
		Set<String> java_set = self.getCategories();
		NitObject nit_hashset = new_StringCopyHashSet();

		if (java_set == null) return nit_hashset;

		for (String element: java_set)
			StringCopyHashSet_add(nit_hashset, element);

		return StringCopyHashSet_collection(nit_hashset);
	`}
	# Returns the Uri as an encoded String
	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 = 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]);

		return nit_array;
	`}
	fun double_extra(name: JavaString, def_value: Float): Float in "Java" `{
		return self.getDoubleExtra(name, def_value);
	`}
	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 = 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]);

		return nit_array;
	`}
	fun float_extra(name: JavaString, def_value: Float): Float in "Java" `{
		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 = 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]);

		return nit_array;
	`}
	fun int_extra(name: JavaString, def_value: Int): Int in "Java" `{
		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 = 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]);

		return nit_array;
	`}
	fun long_extra(name: JavaString, def_value: Int): Int in "Java" `{
		return (int) self.getLongExtra(name, def_value);
	`}
	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 = 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]);

		return nit_array;
	`}
	fun short_extra(name: JavaString, def_value: Int): Int in "Java" `{
		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 = self.getStringArrayExtra(name);
		NitObject nit_array = new_StringCopyArray();

		for(int i=0; i < java_array.length; ++i)
			StringCopyArray_add(nit_array, java_array[i]);

		return StringCopyArray_collection(nit_array);
	`}
	fun string_array_list_extra(name: JavaString): Array[String]
	  import StringCopyArray, StringCopyArray.add, StringCopyArray.collection in "Java" `{
		ArrayList<String> java_array = self.getStringArrayListExtra(name);
		NitObject nit_array = new_StringCopyArray();

		for (String element: java_array)
			StringCopyArray_add(nit_array, element);

		return StringCopyArray_collection(nit_array);
	`}
	fun string_extra(name: JavaString): JavaString in "Java" `{
		String return_value = self.getStringExtra(name);
		if (return_value == null) return "";

		return return_value;
	`}
	fun get_type: JavaString in "Java" `{ return self.getType(); `}
	fun has_category(category: JavaString): Bool in "Java" `{
		return self.hasCategory(category);
	`}
	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 self.putExtra(name, value);
	`}
	fun add_extra_array_of_double(name: JavaString, value: Array[Float]): NativeIntent
	  import Array[Float].length, Array[Float].[] in "Java" `{
		double[] java_array = new double[(int)Array_of_Float_length(value)];

		for (int i=0; i < java_array.length; ++i)
			java_array[i] = Array_of_Float__index(value, i);

		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 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
	  import Array[Char].length, Array[Char].[] in "Java" `{
		char[] java_array = new char[(int)Array_of_Char_length(value)];

		for (int i=0; i < java_array.length; ++i)
			java_array[i] = (char)Array_of_Char__index(value, i);

		return self.putExtra(name, java_array);
	`}
	fun add_extra_char_sequence(name: JavaString, value: JavaString): NativeIntent
	  in "Java" `{
		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" `{
		CharSequence[] java_array = new CharSequence[(int)Array_of_JavaString_length(value)];

		for (int i=0; i < java_array.length; ++i)
			java_array[i] = Array_of_JavaString__index(value, i);

		return self.putExtra(name, java_array);
	`}
	fun add_extra_bundle(name: JavaString, value: NativeBundle): NativeIntent
	  in "Java" `{
		return self.putExtra(name, value);
	`}
	fun add_extra_int(name: JavaString, value: Int): NativeIntent in "Java" `{
		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" `{
		int[] java_array = new int[(int)Array_of_Int_length(value)];

		for (int i=0; i < java_array.length; ++i)
			java_array[i] = (int)Array_of_Int__index(value, i);

		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" `{
		int length = (int)Array_of_Int_length(value);
		ArrayList<Integer> java_array = new ArrayList<Integer>(length);

		for (int i=0; i < length; ++i)
			java_array.add((int)Array_of_Int__index(value, i));

		return self.putExtra(name, java_array);
	`}
	fun add_extra_byte(name: JavaString, value: Int): NativeIntent in "Java" `{
		return self.putExtra(name, (byte) value);
	`}
	fun add_extra_array_of_byte(name: JavaString, value: Int): NativeIntent in "Java" `{
		return self.putExtra(name, (byte) value);
	`}
	fun add_extra_long(name: JavaString, value: Int): NativeIntent in "Java" `{
		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" `{
		long[] java_array = new long[(int)Array_of_Int_length(value)];

		for (int i=0; i < java_array.length; ++i)
			java_array[i] = Array_of_Int__index(value, i);

		return self.putExtra(name, java_array);
	`}
	fun add_extra_float(name: JavaString, value: Float): NativeIntent in "Java" `{
		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" `{
		float[] java_array = new float[(int)Array_of_Float_length(value)];

		for (int i=0; i < java_array.length; ++i)
			java_array[i] = (float) Array_of_Float__index(value, i);

		return self.putExtra(name, java_array);
	`}
	fun add_extra_string(name: JavaString, value: JavaString): NativeIntent in "Java" `{
		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" `{
		String[] java_array = new String[(int)Array_of_JavaString_length(value)];

		for (int i=0; i < java_array.length; ++i)
			java_array[i] = Array_of_JavaString__index(value, i);

		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" `{
		int length = (int)Array_of_JavaString_length(value);
		ArrayList<String> java_array = new ArrayList<String>(length);

		for (int i=0; i < length; ++i) {
			java_array.add(Array_of_JavaString__index(value, i));
		}

		return self.putExtra(name, java_array);
	`}
	fun add_extra_bool(name: JavaString, value: Bool): NativeIntent in "Java" `{
		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" `{
		boolean[] java_array = new boolean[(int)Array_of_Bool_length(value)];

		for (int i=0; i < java_array.length; ++i)
			java_array[i] = Array_of_Bool__index(value, i);

		return self.putExtra(name, java_array);
	`}
	fun add_extra_short(name: JavaString, value: Int): NativeIntent in "Java" `{
		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" `{
		short[] java_array = new short[(int)Array_of_Int_length(value)];

		for (int i=0; i < java_array.length; ++i)
			java_array[i] = (short) Array_of_Int__index(value, i);

		return self.putExtra(name, java_array);
	`}
	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 self.replaceExtras(src);
	`}
	fun resolve_activity(pm: NativePackageManager): NativeComponentName in "Java" `{
		return self.resolveActivity(pm);
	`}
	fun resolve_type(context: NativeActivity): JavaString in "Java" `{
		return self.resolveType(context);
	`}
	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;
		try {
			java_class = Class.forName(class_name);
		} catch (Exception e) {
			e.getStackTrace();
		}
		return self.setClass(package_context, java_class);
	`}
	fun class_name=(package_context: NativeActivity, class_name: JavaString): NativeIntent
	  in "Java" `{
		return self.setClassName(package_context, class_name);
	`}
	fun set_class_name(package_name: JavaString, class_name: JavaString): NativeIntent
	  in "Java" `{
		return self.setClassName(package_name, class_name);
	`}
	fun data=(data_uri: JavaString): NativeIntent in "Java" `{
		return self.setData(Uri.parse(data_uri));
	`}
	fun data_and_type=(data_uri: JavaString, type_: JavaString): NativeIntent in "Java" `{
		return self.setDataAndType(Uri.parse(data_uri), type_);
	`}
	fun flags=(flags: Int): NativeIntent in "Java" `{ return self.setFlags((int)flags); `}
	fun package_name=(package_name: JavaString): NativeIntent in "Java" `{
		return self.setPackage(package_name);
	`}
	fun source_bounds=(left, top, right, bottom: Int) in "Java" `{
		self.setSourceBounds(new Rect((int)left, (int)top, (int)right, (int)bottom));
	`}
	fun mime_type=(mime_type: JavaString): NativeIntent in "Java" `{
		return self.setType(mime_type);
	`}
	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(self);
		JNIEnv *env = Sys_jni_env(sys);
		return (*env)->NewGlobalRef(env, self);
	`}
end
lib/android/intent/intent_api10.nit:35,1--425,3