Merge: Some more small improvements on gitlab-ci
[nit.git] / lib / android / ui / ui.nit
index 7e14b19..767039b 100644 (file)
@@ -79,6 +79,16 @@ redef class App
                native_activity.show_fragment(root_layout_id, window.native)
                super
        end
+
+       redef fun on_start do window.on_start
+
+       redef fun on_destroy do window.on_destroy
+end
+
+redef class CompositeControl
+       redef fun on_start do for i in items do i.on_start
+
+       redef fun on_destroy do for i in items do i.on_destroy
 end
 
 redef class Activity
@@ -197,7 +207,8 @@ end
 redef class Android_widget_ArrayAdapter
        private new (context: NativeContext, res: Int, sender: ListLayout)
        import ListLayout.create_view in "Java" `{
-               final int final_sender_object = sender;
+               final nit.app.NitObject final_sender_object = sender;
+               ListLayout_incr_ref(sender);
 
                return new android.widget.ArrayAdapter(context, (int)res) {
                                @Override
@@ -265,7 +276,7 @@ redef class CheckBox
 
        private fun set_callback_on_toggle(view: NATIVE)
        import on_toggle in "Java" `{
-               final int final_sender_object = self;
+               final nit.app.NitObject final_sender_object = self;
                CheckBox_incr_ref(final_sender_object);
 
                view.setOnCheckedChangeListener(
@@ -317,15 +328,17 @@ end
 redef class NativeButton
        private new (context: NativeActivity, sender_object: Button)
        import Button.on_click in "Java" `{
-               final int final_sender_object = sender_object;
+               final nit.app.NitObject final_sender_object = sender_object;
                Button_incr_ref(final_sender_object);
 
-               return new android.widget.Button(context){
+               return new android.widget.Button(context) {
                        @Override
                        public boolean onTouchEvent(android.view.MotionEvent event) {
-                               if(event.getAction() == android.view.MotionEvent.ACTION_DOWN) {
+                               if (event.getAction() == android.view.MotionEvent.ACTION_UP) {
                                        Button_on_click(final_sender_object);
                                        return true;
+                               } else if (event.getAction() == android.view.MotionEvent.ACTION_DOWN) {
+                                       return true;
                                }
                                return false;
                        }
@@ -336,7 +349,8 @@ end
 redef class Android_app_Fragment
        private new (nit_window: Window)
        import Window.on_create_fragment in "Java" `{
-               final int final_nit_window = nit_window;
+               final nit.app.NitObject final_nit_window = nit_window;
+               Window_incr_ref(nit_window);
 
                return new android.app.Fragment(){
                        @Override