Property definitions

android $ AssetManager :: defaultinit
# Assets manager using a `NativeAssetManager` to manage android assets
class AssetManager

	# Native asset manager
	private var native_assets_manager: NativeAssetManager = app.native_context.assets.new_global_ref is lazy

	# Close this asset manager
	fun close do native_assets_manager.close

	# Get the locales that this assets manager contains data for
	fun locales: Array[String] do
		var java_array = native_assets_manager.get_locales
		var nit_array = new Array[String]
		for s in java_array do
			nit_array.add(s.to_s)
		end
		return nit_array
	end

	# Return a string array of all the assets at the given path
	fun list(path: String): Array[String] do
		sys.jni_env.push_local_frame(8)
		var java_array = native_assets_manager.list(path.to_java_string)
		var nit_array = new Array[String]
		for s in java_array do
			nit_array.add(s.to_s)
		end
		sys.jni_env.pop_local_frame
		return nit_array
	end

	# Open an asset using ACCESS_STREAMING mode, returning a NativeInputStream
	private fun open(file_name: String): NativeInputStream do
		sys.jni_env.push_local_frame(2)
		var return_value =  native_assets_manager.open(file_name.to_java_string)
		return return_value.pop_from_local_frame
	end

	# Open an asset using it's name and returning a NativeAssetFileDescriptor
	# `file_name` is
	private fun open_fd(file_name: String): NativeAssetFileDescriptor do
		sys.jni_env.push_local_frame(2)
		var return_value = native_assets_manager.open_fd(file_name.to_java_string).new_global_ref
		sys.jni_env.pop_local_frame
		return return_value
	end

	# Open a file that is not an asset returning a NativeAssetFileDescriptor
	private fun open_non_asset_fd(file_name: String): NativeAssetFileDescriptor do
		var return_value =  native_assets_manager.open_non_asset_fd(file_name.to_java_string)
		return return_value
	end

	# Return a bitmap from the assets
	private fun bitmap(name: String): NativeBitmap do
		sys.jni_env.push_local_frame 2
		var return_value = new NativeBitmap.from_stream(native_assets_manager.open(name.to_java_string))
		return return_value.pop_from_local_frame
	end

	# Deallocate the global reference allocated by AssetManager
	fun destroy do self.native_assets_manager.delete_global_ref
end
lib/android/assets_and_resources.nit:120,1--182,3