From f6ffee9ce5e80ae849bb2d55d9b4dbbcc1dcc532 Mon Sep 17 00:00:00 2001 From: Egor Date: Sun, 18 Feb 2018 00:23:05 -0800 Subject: Improved device orientation/resize handling on Android --- Common/NativeApp/include/Android/AndroidAppBase.h | 24 ++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'Common/NativeApp/include/Android/AndroidAppBase.h') diff --git a/Common/NativeApp/include/Android/AndroidAppBase.h b/Common/NativeApp/include/Android/AndroidAppBase.h index b291f0a..eeedf75 100644 --- a/Common/NativeApp/include/Android/AndroidAppBase.h +++ b/Common/NativeApp/include/Android/AndroidAppBase.h @@ -44,9 +44,25 @@ public: virtual void TermDisplay() = 0; static int32_t HandleInput( android_app* app, AInputEvent* event ); static void HandleCmd( struct android_app* app, int32_t cmd ); - + bool CheckWindowSizeChanged() + { + auto new_window_width_ = ANativeWindow_getWidth(app_->window); + auto new_window_height_ = ANativeWindow_getHeight(app_->window); + if(new_window_width_ != window_width_ || new_window_height_ != window_height_) + { + window_width_ = new_window_width_; + window_height_ = new_window_height_; + return true; + } + else + return false; + } protected: - virtual void Initialize(ANativeWindow* window) = 0; + virtual void Initialize(ANativeWindow* window) + { + CheckWindowSizeChanged(); + } + virtual int Resume(ANativeWindow* window) = 0; virtual int32_t HandleInput(AInputEvent* event ){return 0;} @@ -79,7 +95,9 @@ private: android_app* app_ = nullptr; bool initialized_resources_ = false; bool has_focus_ = false; - + int32_t window_width_ = 0; + int32_t window_height_ = 0; + ASensorManager* sensor_manager_ = nullptr; const ASensor* accelerometer_sensor_ = nullptr; ASensorEventQueue* sensor_event_queue_ = nullptr; -- cgit v1.2.3