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
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
else // if (align > 0.5d)
g = android.view.Gravity.RIGHT;
- view.setGravity(g);
+ view.setGravity(g | android.view.Gravity.CENTER_VERTICAL);
`}
end
redef class CheckBox
redef type NATIVE: Android_widget_CompoundButton
redef var native do return (new Android_widget_CheckBox(app.native_activity)).new_global_ref
+ init do set_callback_on_toggle(native)
redef fun is_checked do return native.is_checked
redef fun is_checked=(value) do native.set_checked(value)
+
+ private fun on_toggle do notify_observers new ToggleEvent(self)
+
+ private fun set_callback_on_toggle(view: NATIVE)
+ import on_toggle in "Java" `{
+ final nit.app.NitObject final_sender_object = self;
+ CheckBox_incr_ref(final_sender_object);
+
+ view.setOnCheckedChangeListener(
+ new android.widget.CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(android.widget.CompoundButton buttonView, boolean isChecked) {
+ CheckBox_on_toggle(final_sender_object);
+ }
+ });
+ `}
end
redef class TextInput
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;
}
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
};
`}
end
+
+redef class Text
+ redef fun open_in_browser
+ do to_java_string.native_open_in_browser(app.native_activity)
+end
+
+redef class JavaString
+ private fun native_open_in_browser(context: NativeContext)
+ in "Java" `{
+ android.content.Intent intent = new android.content.Intent(
+ android.content.Intent.ACTION_VIEW,
+ android.net.Uri.parse(self));
+ context.startActivity(intent);
+ `}
+end