Property definitions

android $ NativeAssetFileDescriptor :: defaultinit
# Android AssetFileDescriptor, can be retrieve by AssetManager and used to load a sound in a SoundPool
extern class NativeAssetFileDescriptor in "Java" `{ android.content.res.AssetFileDescriptor `}
	super JavaObject

	fun close in "Java" `{
		try {
			self.close();
		}catch(IOException e){
			e.printStackTrace();
		}
	`}
	fun create_input_stream: NativeFileInputStream in "Java" `{
		try {
			return self.createInputStream();
		}catch(IOException e){
			Log.e("Error creating input_stream", e.getMessage());
			e.printStackTrace();
			return null;
		}
	`}
	fun create_output_stream: NativeFileOutputStream in "Java" `{
		try {
			return self.createOutputStream();
		}catch(IOException e){
			Log.e("Error creating output stream", e.getMessage());
			e.printStackTrace();
			return null;
		}
	`}
	fun describe_contents: Int in "Java" `{ return (int)self.describeContents(); `}
	fun declared_length: Int in "Java" `{ return (int)self.getDeclaredLength(); `}
	# fun extras: Bundle in "Java" `{ return self.getExtras(); `}

	fun file_descriptor: NativeFileDescriptor in "Java" `{
		FileDescriptor fd =  self.getFileDescriptor();
		if (fd == null) {
			Log.e("AssetFileDesciptorError", "Can't retrieve the FileDescriptor of this AssetFileDescriptor");
		}
		return fd;
	`}

	fun length: Int in "Java" `{ return (int)self.getLength(); `}
	fun start_offset: Int in "Java" `{ return (int)self.getStartOffset(); `}
	redef fun to_s import JavaString.to_s in "Java" `{ return JavaString_to_s(self.toString()); `}

	# HACK for bug #845
	redef fun new_global_ref import sys, Sys.jni_env `{
		Sys sys = NativeAssetFileDescriptor_sys(self);
		JNIEnv *env = Sys_jni_env(sys);
		return (*env)->NewGlobalRef(env, self);
	`}
end
lib/android/assets_and_resources.nit:346,1--397,3