X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fandroid%2Fmainthread.cpp;h=b816bf638c4543957b3a0a7814c2010ff0f561ec;hb=122846f0881673770d88eff7d925ecf25c01b62e;hp=473379bd71ce373c4e8e8829d4a00ece43ff3c57;hpb=fa82e97ed56597f2d968abdf4ebf688de4f9b618;p=libs%2Fcore.git diff --git a/source/core/android/mainthread.cpp b/source/core/android/mainthread.cpp index 473379b..b816bf6 100644 --- a/source/core/android/mainthread.cpp +++ b/source/core/android/mainthread.cpp @@ -1,4 +1,6 @@ #include +#include +#include #include #include #include @@ -13,8 +15,7 @@ namespace Android { MainThread::MainThread(ANativeActivity *a): asset_manager(a->assetManager), - int_data_path(a->internalDataPath), - starting_up(true) + int_data_path(a->internalDataPath) { attach_to_activity(a); startup_mutex.lock(); @@ -31,6 +32,8 @@ void MainThread::attach_to_activity(ANativeActivity *a) activity->callbacks->onInputQueueCreated = &input_queue_created; activity->callbacks->onInputQueueDestroyed = &input_queue_destroyed; activity->instance = this; + + set_window_flags(AWINDOW_FLAG_FULLSCREEN, 0); } void MainThread::wait_for_app_created() @@ -47,6 +50,19 @@ void MainThread::resume_startup() } } +JavaVM *MainThread::get_java_vm() const +{ + if(!activity) + return 0; + + return activity->vm; +} + +void MainThread::set_window_flags(unsigned set, unsigned clear) +{ + ANativeActivity_setWindowFlags(activity, set, clear); +} + void MainThread::main() { /* I have no idea how dependable this is, but it seems to be the only way @@ -58,7 +74,12 @@ void MainThread::main() Msp::Application::run(1, argv, this, &app_created); free(appname); if(activity) + { + activity->callbacks->onDestroy = &end_process; ANativeActivity_finish(activity); + } + else + end_process(0); } void MainThread::app_created(void *data) @@ -96,5 +117,10 @@ void MainThread::input_queue_destroyed(ANativeActivity *activity, AInputQueue *q reinterpret_cast(activity->instance)->signal_input_queue_destroyed.emit(queue); } +void MainThread::end_process(ANativeActivity *) +{ + exit(0); +} + } // namespace Android } // namespace Msp