Skip to content

Commit 8cf66d2

Browse files
authored
TizenViewBase: Remove TizenViewType enum and GetType() (#16)
The embedder does not require a type for the class because -rtti option is enabled. So, remove the type enum and the getter method.
1 parent f57e59a commit 8cf66d2

File tree

6 files changed

+64
-87
lines changed

6 files changed

+64
-87
lines changed

flutter/shell/platform/tizen/channels/platform_channel.cc

Lines changed: 39 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -168,10 +168,10 @@ void PlatformChannel::HandleMethodCall(
168168
}
169169

170170
void PlatformChannel::SystemNavigatorPop() {
171-
if (view_->GetType() == TizenViewType::kWindow) {
172-
ui_app_exit();
171+
if (auto* view = dynamic_cast<TizenView*>(view_)) {
172+
view->SetFocus(false);
173173
} else {
174-
reinterpret_cast<TizenView*>(view_)->SetFocus(false);
174+
ui_app_exit();
175175
}
176176
}
177177

@@ -241,63 +241,57 @@ bool PlatformChannel::ClipboardHasStrings() {
241241
}
242242

243243
void PlatformChannel::RestoreSystemUiOverlays() {
244-
if (view_->GetType() != TizenViewType::kWindow) {
245-
return;
246-
}
247-
244+
if (auto* window = dynamic_cast<TizenWindow*>(view_)) {
248245
#ifdef COMMON_PROFILE
249-
auto& shell = TizenShell::GetInstance();
250-
shell.InitializeSoftkey(view_->GetWindowId());
246+
auto& shell = TizenShell::GetInstance();
247+
shell.InitializeSoftkey(window->GetWindowId());
251248

252-
if (shell.IsSoftkeyShown()) {
253-
shell.ShowSoftkey();
254-
} else {
255-
shell.HideSoftkey();
256-
}
249+
if (shell.IsSoftkeyShown()) {
250+
shell.ShowSoftkey();
251+
} else {
252+
shell.HideSoftkey();
253+
}
257254
#endif
255+
}
258256
}
259257

260258
void PlatformChannel::SetEnabledSystemUiOverlays(
261259
const std::vector<std::string>& overlays) {
262-
if (view_->GetType() != TizenViewType::kWindow) {
263-
return;
264-
}
265-
260+
if (auto* window = dynamic_cast<TizenWindow*>(view_)) {
266261
#ifdef COMMON_PROFILE
267-
auto& shell = TizenShell::GetInstance();
268-
shell.InitializeSoftkey(view_->GetWindowId());
262+
auto& shell = TizenShell::GetInstance();
263+
shell.InitializeSoftkey(window->GetWindowId());
269264

270-
if (std::find(overlays.begin(), overlays.end(), kSystemUiOverlayBottom) !=
271-
overlays.end()) {
272-
shell.ShowSoftkey();
273-
} else {
274-
shell.HideSoftkey();
275-
}
265+
if (std::find(overlays.begin(), overlays.end(), kSystemUiOverlayBottom) !=
266+
overlays.end()) {
267+
shell.ShowSoftkey();
268+
} else {
269+
shell.HideSoftkey();
270+
}
276271
#endif
272+
}
277273
}
278274

279275
void PlatformChannel::SetPreferredOrientations(
280276
const std::vector<std::string>& orientations) {
281-
if (view_->GetType() != TizenViewType::kWindow) {
282-
return;
283-
}
284-
285-
static const std::map<std::string, int> orientation_mapping = {
286-
{kPortraitUp, 0},
287-
{kLandscapeLeft, 90},
288-
{kPortraitDown, 180},
289-
{kLandscapeRight, 270},
290-
};
291-
std::vector<int> rotations;
292-
for (const auto& orientation : orientations) {
293-
rotations.push_back(orientation_mapping.at(orientation));
294-
}
295-
if (rotations.empty()) {
296-
// The empty list causes the application to defer to the operating system
297-
// default.
298-
rotations = {0, 90, 180, 270};
277+
if (auto* window = dynamic_cast<TizenWindow*>(view_)) {
278+
static const std::map<std::string, int> orientation_mapping = {
279+
{kPortraitUp, 0},
280+
{kLandscapeLeft, 90},
281+
{kPortraitDown, 180},
282+
{kLandscapeRight, 270},
283+
};
284+
std::vector<int> rotations;
285+
for (const auto& orientation : orientations) {
286+
rotations.push_back(orientation_mapping.at(orientation));
287+
}
288+
if (rotations.empty()) {
289+
// The empty list causes the application to defer to the operating system
290+
// default.
291+
rotations = {0, 90, 180, 270};
292+
}
293+
window->SetPreferredOrientations(rotations);
299294
}
300-
reinterpret_cast<TizenWindow*>(view_)->SetPreferredOrientations(rotations);
301295
}
302296

303297
} // namespace flutter

flutter/shell/platform/tizen/flutter_tizen.cc

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -280,15 +280,13 @@ void FlutterDesktopViewOnKeyEvent(FlutterDesktopViewRef view,
280280
size_t timestamp,
281281
bool is_down) {
282282
#ifdef NUI_SUPPORT
283-
auto* tizen_view = reinterpret_cast<flutter::TizenViewBase*>(
284-
ViewFromHandle(view)->tizen_view());
285-
286-
if (tizen_view->GetType() == flutter::TizenViewType::kView &&
287-
ViewFromHandle(view)->engine()->renderer()->type() ==
288-
FlutterDesktopRendererType::kEGL) {
289-
reinterpret_cast<flutter::TizenViewNui*>(tizen_view)
290-
->OnKey(device_name, device_class, device_subclass, key, string,
291-
nullptr, modifiers, scan_code, timestamp, is_down);
283+
if (auto* tizen_view = dynamic_cast<flutter::TizenViewNui*>(
284+
ViewFromHandle(view)->tizen_view())) {
285+
if (ViewFromHandle(view)->engine()->renderer()->type() ==
286+
FlutterDesktopRendererType::kEGL) {
287+
tizen_view->OnKey(device_name, device_class, device_subclass, key, string,
288+
nullptr, modifiers, scan_code, timestamp, is_down);
289+
}
292290
}
293291
#else
294292
ViewFromHandle(view)->OnKey(key, string, nullptr, modifiers, scan_code,
@@ -297,18 +295,16 @@ void FlutterDesktopViewOnKeyEvent(FlutterDesktopViewRef view,
297295
}
298296

299297
void FlutterDesktopViewSetFocus(FlutterDesktopViewRef view, bool focused) {
300-
auto* tizen_view = reinterpret_cast<flutter::TizenViewBase*>(
301-
ViewFromHandle(view)->tizen_view());
302-
if (tizen_view->GetType() == flutter::TizenViewType::kView) {
303-
reinterpret_cast<flutter::TizenView*>(tizen_view)->SetFocus(focused);
298+
if (auto* tizen_view = dynamic_cast<flutter::TizenView*>(
299+
ViewFromHandle(view)->tizen_view())) {
300+
tizen_view->SetFocus(focused);
304301
}
305302
}
306303

307304
bool FlutterDesktopViewIsFocused(FlutterDesktopViewRef view) {
308-
auto* tizen_view = reinterpret_cast<flutter::TizenViewBase*>(
309-
ViewFromHandle(view)->tizen_view());
310-
if (tizen_view->GetType() == flutter::TizenViewType::kView) {
311-
return reinterpret_cast<flutter::TizenView*>(tizen_view)->focused();
305+
if (auto* tizen_view = dynamic_cast<flutter::TizenView*>(
306+
ViewFromHandle(view)->tizen_view())) {
307+
return tizen_view->focused();
312308
}
313309
return false;
314310
}

flutter/shell/platform/tizen/flutter_tizen_view.cc

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,7 @@ FlutterTizenView::FlutterTizenView(std::unique_ptr<TizenViewBase> tizen_view)
5050
: tizen_view_(std::move(tizen_view)) {
5151
tizen_view_->SetView(this);
5252

53-
if (tizen_view_->GetType() == TizenViewType::kWindow) {
54-
auto* window = reinterpret_cast<TizenWindow*>(tizen_view_.get());
53+
if (auto* window = dynamic_cast<TizenWindow*>(tizen_view_.get())) {
5554
window->BindKeys(kBindableSystemKeys);
5655
}
5756
}
@@ -73,12 +72,9 @@ void FlutterTizenView::SetEngine(std::unique_ptr<FlutterTizenEngine> engine) {
7372
// Set up window dependent channels.
7473
BinaryMessenger* messenger = internal_plugin_registrar_->messenger();
7574

76-
if (tizen_view_->GetType() == TizenViewType::kWindow) {
77-
auto* window = reinterpret_cast<TizenWindow*>(tizen_view_.get());
78-
window_channel_ = std::make_unique<WindowChannel>(messenger, window);
79-
} else {
80-
window_channel_ = std::make_unique<WindowChannel>(messenger, nullptr);
81-
}
75+
auto* window = dynamic_cast<TizenWindow*>(tizen_view_.get());
76+
window_channel_ = std::make_unique<WindowChannel>(messenger, window);
77+
8278
platform_channel_ =
8379
std::make_unique<PlatformChannel>(messenger, tizen_view_.get());
8480
text_input_channel_ = std::make_unique<TextInputChannel>(
@@ -94,13 +90,13 @@ void FlutterTizenView::CreateRenderSurface(
9490

9591
if (engine_ && engine_->renderer()) {
9692
TizenGeometry geometry = tizen_view_->GetGeometry();
97-
if (tizen_view_->GetType() == TizenViewType::kWindow) {
98-
auto* window = reinterpret_cast<TizenWindow*>(tizen_view_.get());
93+
if (dynamic_cast<TizenWindow*>(tizen_view_.get())) {
94+
auto* window = dynamic_cast<TizenWindow*>(tizen_view_.get());
9995
engine_->renderer()->CreateSurface(window->GetRenderTarget(),
10096
window->GetRenderTargetDisplay(),
10197
geometry.width, geometry.height);
10298
} else {
103-
auto* tizen_view = reinterpret_cast<TizenView*>(tizen_view_.get());
99+
auto* tizen_view = dynamic_cast<TizenView*>(tizen_view_.get());
104100
engine_->renderer()->CreateSurface(tizen_view->GetRenderTarget(), nullptr,
105101
geometry.width, geometry.height);
106102
}
@@ -135,10 +131,10 @@ bool FlutterTizenView::OnMakeResourceCurrent() {
135131
bool FlutterTizenView::OnPresent() {
136132
bool result = engine_->renderer()->OnPresent();
137133
#ifdef NUI_SUPPORT
138-
if (tizen_view_->GetType() == flutter::TizenViewType::kView &&
139-
engine_->renderer()->type() == FlutterDesktopRendererType::kEGL) {
140-
auto* view = reinterpret_cast<TizenViewNui*>(tizen_view_.get());
141-
view->RequestRendering();
134+
if (auto* view = dynamic_cast<TizenViewNui*>(tizen_view_.get())) {
135+
if (engine_->renderer()->type() == FlutterDesktopRendererType::kEGL) {
136+
view->RequestRendering();
137+
}
142138
}
143139
#endif
144140
return result;
@@ -309,8 +305,7 @@ void FlutterTizenView::OnCommit(const std::string& str) {
309305
}
310306

311307
void FlutterTizenView::SendInitialGeometry() {
312-
if (tizen_view_->GetType() == TizenViewType::kWindow) {
313-
auto* window = reinterpret_cast<TizenWindow*>(tizen_view_.get());
308+
if (auto* window = dynamic_cast<TizenWindow*>(tizen_view_.get())) {
314309
OnRotate(window->GetRotation());
315310
} else {
316311
TizenGeometry geometry = tizen_view_->GetGeometry();

flutter/shell/platform/tizen/tizen_view.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@ class TizenView : public TizenViewBase {
1818
TizenView() = default;
1919
virtual ~TizenView() = default;
2020

21-
TizenViewType GetType() override { return TizenViewType::kView; };
22-
2321
bool focused() { return focused_; };
2422

2523
void SetFocus(bool focused) { focused_ = focused; };

flutter/shell/platform/tizen/tizen_view_base.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@ struct TizenGeometry {
1919
int32_t left = 0, top = 0, width = 0, height = 0;
2020
};
2121

22-
enum class TizenViewType { kView, kWindow };
23-
2422
class TizenViewBase {
2523
public:
2624
TizenViewBase() = default;
@@ -51,8 +49,6 @@ class TizenViewBase {
5149

5250
virtual void Show() = 0;
5351

54-
virtual TizenViewType GetType() = 0;
55-
5652
TizenInputMethodContext* input_method_context() {
5753
return input_method_context_.get();
5854
}

flutter/shell/platform/tizen/tizen_window.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@ class TizenWindow : public TizenViewBase {
3030

3131
virtual void BindKeys(const std::vector<std::string>& keys) = 0;
3232

33-
TizenViewType GetType() override { return TizenViewType::kWindow; };
34-
3533
protected:
3634
explicit TizenWindow(TizenGeometry geometry,
3735
bool transparent,

0 commit comments

Comments
 (0)