Merge: CI: macOS jobs for Gitlab CI
[nit.git] / lib / android / assets_and_resources.nit
index 8bbc7da..2ca56d4 100644 (file)
@@ -52,7 +52,7 @@ private extern class NativeAssetManager in "Java" `{ android.content.res.AssetMa
 
        # Get the locales that this assets manager contains data for
        fun get_locales: Array[JavaString] import Array[JavaString], Array[JavaString].add in "Java" `{
-               int arr = new_Array_of_JavaString();
+               nit.app.NitObject arr = new_Array_of_JavaString();
                for (String s : self.getLocales()) {
                        Array_of_JavaString_add(arr, s);
                }
@@ -61,7 +61,7 @@ private extern class NativeAssetManager in "Java" `{ android.content.res.AssetMa
 
        # String Array of all the assets at the given path
        fun list(path: JavaString): Array[JavaString] import Array[JavaString], Array[JavaString].add  in "Java" `{
-               int arr = new_Array_of_JavaString();
+               nit.app.NitObject arr = new_Array_of_JavaString();
                try {
                        for (String s : self.list(path)) {
                                Array_of_JavaString_add(arr, s);
@@ -121,7 +121,7 @@ end
 class AssetManager
 
        # Native asset manager
-       private var native_assets_manager: NativeAssetManager = app.native_activity.assets.new_global_ref is lazy
+       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
@@ -138,7 +138,7 @@ class AssetManager
 
        # 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(1)
+               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
@@ -150,16 +150,15 @@ class AssetManager
 
        # Open an asset using ACCESS_STREAMING mode, returning a NativeInputStream
        private fun open(file_name: String): NativeInputStream do
-               sys.jni_env.push_local_frame(1)
+               sys.jni_env.push_local_frame(2)
                var return_value =  native_assets_manager.open(file_name.to_java_string)
-               sys.jni_env.pop_local_frame
-               return return_value
+               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(1)
+               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
@@ -328,6 +327,10 @@ private extern class NativeBitmap in "Java" `{ android.graphics.Bitmap `}
                return self.hasAlpha();
        `}
 
+       fun recycle in "Java" `{
+               self.recycle();
+       `}
+
        # HACK for bug #845
        redef fun new_global_ref import sys, Sys.jni_env `{
                Sys sys = NativeBitmap_sys(self);
@@ -373,7 +376,7 @@ extern class NativeAssetFileDescriptor in "Java" `{ android.content.res.AssetFil
        fun declared_length: Int in "Java" `{ return (int)self.getDeclaredLength(); `}
        # fun extras: Bundle in "Java" `{ return self.getExtras(); `}
 
-       fun  file_descriptor: NativeFileDescriptor in "Java" `{
+       fun file_descriptor: NativeFileDescriptor in "Java" `{
                FileDescriptor fd =  self.getFileDescriptor();
                if (fd == null) {
                        Log.e("AssetFileDesciptorError", "Can't retrieve the FileDescriptor of this AssetFileDescriptor");
@@ -401,8 +404,8 @@ end
 redef class App
        # Resource Manager used to manage resources placed in the `res` folder of the app
        var resource_manager: ResourcesManager is lazy do
-               var res = native_activity.resources
-               var pkg = native_activity.package_name
+               var res = native_context.resources
+               var pkg = native_context.package_name
                return new ResourcesManager.native(res, pkg.to_s)
        end
 
@@ -410,7 +413,7 @@ redef class App
        var asset_manager: AssetManager is lazy do return new AssetManager
 end
 
-redef extern class NativeActivity
+redef extern class NativeContext
 
        # Get the native AssetsManager of the application, used to initialize the nit's AssetManager
        private fun assets: NativeAssetManager in "Java" `{