| // Copyright 2013 The Flutter Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #include "flutter/shell/platform/android/surface/android_native_window.h" | |
| namespace flutter { | |
| AndroidNativeWindow::AndroidNativeWindow(Handle window, bool is_fake_window) | |
| : window_(window), is_fake_window_(is_fake_window) {} | |
| AndroidNativeWindow::AndroidNativeWindow(Handle window) | |
| : AndroidNativeWindow(window, /*is_fake_window=*/false) {} | |
| AndroidNativeWindow::~AndroidNativeWindow() { | |
| if (window_ != nullptr) { | |
| #if FML_OS_ANDROID | |
| ANativeWindow_release(window_); | |
| window_ = nullptr; | |
| #endif // FML_OS_ANDROID | |
| } | |
| } | |
| bool AndroidNativeWindow::IsValid() const { | |
| return window_ != nullptr; | |
| } | |
| AndroidNativeWindow::Handle AndroidNativeWindow::handle() const { | |
| return window_; | |
| } | |
| SkISize AndroidNativeWindow::GetSize() const { | |
| #if FML_OS_ANDROID | |
| return window_ == nullptr ? SkISize::Make(0, 0) | |
| : SkISize::Make(ANativeWindow_getWidth(window_), | |
| ANativeWindow_getHeight(window_)); | |
| #else // FML_OS_ANDROID | |
| return SkISize::Make(0, 0); | |
| #endif // FML_OS_ANDROID | |
| } | |
| } // namespace flutter |