+ if(activity)
+ ANativeActivity_finish(activity);
+}
+
+void MainThread::app_created(void *data)
+{
+ reinterpret_cast<MainThread *>(data)->resume_startup();
+}
+
+void MainThread::activity_destroyed(ANativeActivity *activity)
+{
+ reinterpret_cast<MainThread *>(activity->instance)->activity = 0;
+}
+
+void MainThread::native_window_created(ANativeActivity *activity, ANativeWindow *window)
+{
+ reinterpret_cast<MainThread *>(activity->instance)->signal_native_window_created.emit(window);
+}
+
+void MainThread::native_window_resized(ANativeActivity *activity, ANativeWindow *window)
+{
+ reinterpret_cast<MainThread *>(activity->instance)->signal_native_window_resized.emit(window);
+}
+
+void MainThread::native_window_destroyed(ANativeActivity *activity, ANativeWindow *window)
+{
+ reinterpret_cast<MainThread *>(activity->instance)->signal_native_window_destroyed.emit(window);
+}
+
+void MainThread::input_queue_created(ANativeActivity *activity, AInputQueue *queue)
+{
+ reinterpret_cast<MainThread *>(activity->instance)->signal_input_queue_created.emit(queue);
+}
+
+void MainThread::input_queue_destroyed(ANativeActivity *activity, AInputQueue *queue)
+{
+ reinterpret_cast<MainThread *>(activity->instance)->signal_input_queue_destroyed.emit(queue);