# AssetManager from Java, used by `AssetManager` to access resources in `assets` app's directory
# This is a low-level class, use `AssetManager` instead
private extern class NativeAssetManager in "Java" `{ android.content.res.AssetManager `}
super JavaObject
# Close this asset manager
fun close in "Java" `{ self.close(); `}
# Get the locales that this assets manager contains data for
fun get_locales: Array[JavaString] import Array[JavaString], Array[JavaString].add in "Java" `{
nit.app.NitObject arr = new_Array_of_JavaString();
for (String s : self.getLocales()) {
Array_of_JavaString_add(arr, s);
}
return arr;
`}
# String Array of all the assets at the given path
fun list(path: JavaString): Array[JavaString] import Array[JavaString], Array[JavaString].add in "Java" `{
nit.app.NitObject arr = new_Array_of_JavaString();
try {
for (String s : self.list(path)) {
Array_of_JavaString_add(arr, s);
}
}catch (IOException e) {
Log.e("Error retrieving the list of assets at 'path' ", e.getMessage());
e.printStackTrace();
}
return arr;
`}
# Open an asset using ACCESS_STREAMING mode
fun open(file_name: JavaString): NativeInputStream in "Java" `{
InputStream stream = null;
try {
stream = self.open(file_name);
}catch (IOException e) {
Log.e("Error while opening " + file_name, e.getMessage());
return null;
}
return stream;
`}
# Open an asset and return it's file descriptor
fun open_fd(file_name: JavaString): NativeAssetFileDescriptor in "Java" `{
AssetFileDescriptor afd = null;
try {
afd = self.openFd(file_name);
}catch(IOException e){
Log.e("Error while opening " + file_name, e.getMessage());
return null;
}
return afd;
`}
# Open a ,non-asset and return it's file descriptor
fun open_non_asset_fd(file_name: JavaString): NativeAssetFileDescriptor in "Java" `{
AssetFileDescriptor afd = null;
try {
afd = self.openNonAssetFd(file_name);
}catch(IOException e){
Log.e("Error while opening " + file_name, e.getMessage());
return null;
}
return afd;
`}
# HACK for bug #845
redef fun new_global_ref import sys, Sys.jni_env `{
Sys sys = NativeAssetManager_sys(self);
JNIEnv *env = Sys_jni_env(sys);
return (*env)->NewGlobalRef(env, self);
`}
end
lib/android/assets_and_resources.nit:45,1--118,3