Index: samples/android_sample/jni/dart_host.h |
=================================================================== |
--- samples/android_sample/jni/dart_host.h (revision 0) |
+++ samples/android_sample/jni/dart_host.h (revision 0) |
@@ -0,0 +1,58 @@ |
+#ifndef DART_HOST_H |
+#define DART_HOST_H |
+ |
+#include <android_native_app_glue.h> |
+#include "bin/dartutils.h" |
+#include "include/dart_api.h" |
+#include "jni/activity_handler.h" |
+#include "jni/context.h" |
+#include "jni/graphics.h" |
+#include "jni/input_service.h" |
+#include "jni/timer.h" |
+#include "jni/vm_glue.h" |
+ |
+// Currently the life cycle management is very crude. We conservatively |
+// shutdown the main isolate when we lose focus and create a new one when |
+// we resume. This needs to be improved later when we understand this better, |
+// and we need some hooks to tell the Dart script to save/restore state |
+// (and an API that will support that). |
+ |
+class DartHost : public ActivityHandler { |
+ public: |
+ explicit DartHost(Context* context); |
+ virtual ~DartHost(); |
+ |
+ protected: |
+ int32_t OnActivate(); |
+ void OnDeactivate(); |
+ int32_t OnStep(); |
+ |
+ void OnStart(); |
+ void OnResume(); |
+ void OnPause(); |
+ void OnStop(); |
+ void OnDestroy(); |
+ |
+ void OnSaveState(void** data, size_t size); |
+ void OnConfigurationChanged(); |
+ void OnLowMemory(); |
+ void OnCreateWindow(); |
+ void OnDestroyWindow(); |
+ void OnGainedFocus(); |
+ void OnLostFocus(); |
+ |
+ private: |
+ void Clear(); |
+ int32_t Activate(); |
+ void Deactivate(); |
+ |
+ ANativeWindow_Buffer window_buffer_; |
+ InputHandler* input_handler_; |
+ Timer* timer_; |
+ Graphics* graphics_; |
+ VMGlue* vm_glue_; |
+ bool active_; |
+}; |
+ |
+#endif |
+ |