Skip to content

Commit 05123d4

Browse files
bbrto21swift-kim
authored andcommitted
Use proc table for embedder APIs (flutter-tizen#97)
* Use proc table for embedder APIs * Use the proc table like other platform implementations * Use FlutterEngine as private memeber of FlutterTizenEngine * Only FlutterTizenEngine is dependent on FlutterEngine Signed-off-by: Boram Bae <[email protected]> * Update based on review Signed-off-by: Boram Bae <[email protected]>
1 parent 35d809a commit 05123d4

10 files changed

+182
-106
lines changed

shell/platform/tizen/channels/lifecycle_channel.cc

+6-10
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
#include "lifecycle_channel.h"
66

7+
#include "flutter/shell/platform/tizen/flutter_tizen_engine.h"
78
#include "flutter/shell/platform/tizen/tizen_log.h"
89

910
static constexpr char kChannelName[] = "flutter/lifecycle";
@@ -12,20 +13,15 @@ static constexpr char kResumed[] = "AppLifecycleState.resumed";
1213
static constexpr char kPaused[] = "AppLifecycleState.paused";
1314
static constexpr char kDetached[] = "AppLifecycleState.detached";
1415

15-
LifecycleChannel::LifecycleChannel(FLUTTER_API_SYMBOL(FlutterEngine)
16-
flutter_engine)
17-
: flutter_engine_(flutter_engine) {}
16+
LifecycleChannel::LifecycleChannel(FlutterTizenEngine* engine)
17+
: engine_(engine) {}
1818

1919
LifecycleChannel::~LifecycleChannel() {}
2020

2121
void LifecycleChannel::SendLifecycleMessage(const char message[]) {
22-
FlutterPlatformMessage platformMessage = {};
23-
platformMessage.struct_size = sizeof(FlutterPlatformMessage);
24-
platformMessage.channel = kChannelName;
25-
platformMessage.message = reinterpret_cast<const uint8_t*>(message);
26-
platformMessage.message_size = strlen(message);
27-
platformMessage.response_handle = nullptr;
28-
FlutterEngineSendPlatformMessage(flutter_engine_, &platformMessage);
22+
engine_->SendPlatformMessage(kChannelName,
23+
reinterpret_cast<const uint8_t*>(message),
24+
strlen(message), nullptr, nullptr);
2925
}
3026

3127
void LifecycleChannel::AppIsInactive() {

shell/platform/tizen/channels/lifecycle_channel.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
#ifndef EMBEDDER_LIFECYCLE_CHANNEL_H_
66
#define EMBEDDER_LIFECYCLE_CHANNEL_H_
77

8-
#include "flutter/shell/platform/embedder/embedder.h"
8+
class FlutterTizenEngine;
99

1010
class LifecycleChannel {
1111
public:
12-
explicit LifecycleChannel(FLUTTER_API_SYMBOL(FlutterEngine) flutter_engine);
12+
explicit LifecycleChannel(FlutterTizenEngine* engine);
1313
virtual ~LifecycleChannel();
1414

1515
void AppIsInactive();
@@ -19,7 +19,7 @@ class LifecycleChannel {
1919
void SendLifecycleMessage(const char message[]);
2020

2121
private:
22-
FLUTTER_API_SYMBOL(FlutterEngine) flutter_engine_;
22+
FlutterTizenEngine* engine_{nullptr};
2323
};
2424

2525
#endif // EMBEDDER_LIFECYCLE_CHANNEL_H_

shell/platform/tizen/channels/localization_channel.cc

+8-14
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,17 @@
55
#include "localization_channel.h"
66

77
#include <utils_i18n.h>
8-
98
#include <vector>
109

10+
#include "flutter/shell/platform/tizen/flutter_tizen_engine.h"
1111
#include "flutter/shell/platform/tizen/tizen_log.h"
1212
#include "rapidjson/document.h"
1313
#include "rapidjson/writer.h"
1414

1515
static constexpr char kChannelName[] = "flutter/localization";
1616

17-
LocalizationChannel::LocalizationChannel(FLUTTER_API_SYMBOL(FlutterEngine)
18-
flutter_engine)
19-
: flutter_engine_(flutter_engine) {}
17+
LocalizationChannel::LocalizationChannel(FlutterTizenEngine* engine)
18+
: engine_(engine) {}
2019

2120
LocalizationChannel::~LocalizationChannel() {}
2221

@@ -54,9 +53,8 @@ void LocalizationChannel::SendLocales() {
5453
}
5554

5655
FT_LOGD("Send %zu available locales", flutter_locales.size());
57-
// send locales to engine
58-
FlutterEngineUpdateLocales(
59-
flutter_engine_,
56+
// Send locales to engine
57+
engine_->UpdateLocales(
6058
const_cast<const FlutterLocale**>(flutter_locales.data()),
6159
flutter_locales.size());
6260

@@ -111,13 +109,9 @@ void LocalizationChannel::SendPlatformResolvedLocale() {
111109
return;
112110
}
113111

114-
FlutterPlatformMessage message = {};
115-
message.struct_size = sizeof(FlutterPlatformMessage);
116-
message.channel = kChannelName;
117-
message.message = reinterpret_cast<const uint8_t*>(buffer.GetString());
118-
message.message_size = buffer.GetSize();
119-
message.response_handle = nullptr;
120-
FlutterEngineSendPlatformMessage(flutter_engine_, &message);
112+
engine_->SendPlatformMessage(
113+
kChannelName, reinterpret_cast<const uint8_t*>(buffer.GetString()),
114+
buffer.GetSize(), nullptr, nullptr);
121115

122116
DestroyFlutterLocale(flutter_locale);
123117
}

shell/platform/tizen/channels/localization_channel.h

+4-3
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@
77

88
#include "flutter/shell/platform/embedder/embedder.h"
99

10+
class FlutterTizenEngine;
11+
1012
class LocalizationChannel {
1113
public:
12-
explicit LocalizationChannel(FLUTTER_API_SYMBOL(FlutterEngine)
13-
flutter_engine);
14+
explicit LocalizationChannel(FlutterTizenEngine* engine);
1415
virtual ~LocalizationChannel();
1516

1617
void SendLocales();
@@ -20,7 +21,7 @@ class LocalizationChannel {
2021
FlutterLocale* GetFlutterLocale(const char* locale);
2122
void DestroyFlutterLocale(FlutterLocale* flutter_locale);
2223

23-
FLUTTER_API_SYMBOL(FlutterEngine) flutter_engine_;
24+
FlutterTizenEngine* engine_;
2425
};
2526

2627
#endif // EMBEDDER_LOCALIZATION_CHANNEL_H_

shell/platform/tizen/flutter_tizen.cc

+4-27
Original file line numberDiff line numberDiff line change
@@ -88,38 +88,16 @@ bool FlutterDesktopMessengerSendWithReply(FlutterDesktopMessengerRef messenger,
8888
const size_t message_size,
8989
const FlutterDesktopBinaryReply reply,
9090
void* user_data) {
91-
FlutterPlatformMessageResponseHandle* response_handle = nullptr;
92-
if (reply != nullptr && user_data != nullptr) {
93-
FlutterEngineResult result = FlutterPlatformMessageCreateResponseHandle(
94-
messenger->engine->flutter_engine, reply, user_data, &response_handle);
95-
if (result != kSuccess) {
96-
FT_LOGE("Failed to create response handle");
97-
return false;
98-
}
99-
}
100-
FlutterPlatformMessage platform_message = {
101-
sizeof(FlutterPlatformMessage),
102-
channel,
103-
message,
104-
message_size,
105-
response_handle,
106-
};
107-
FlutterEngineResult message_result = FlutterEngineSendPlatformMessage(
108-
messenger->engine->flutter_engine, &platform_message);
109-
if (response_handle != nullptr) {
110-
FlutterPlatformMessageReleaseResponseHandle(
111-
messenger->engine->flutter_engine, response_handle);
112-
}
113-
return message_result == kSuccess;
91+
return messenger->engine->SendPlatformMessage(channel, message, message_size,
92+
reply, user_data);
11493
}
11594

11695
void FlutterDesktopMessengerSendResponse(
11796
FlutterDesktopMessengerRef messenger,
11897
const FlutterDesktopMessageResponseHandle* handle,
11998
const uint8_t* data,
12099
size_t data_length) {
121-
FlutterEngineSendPlatformMessageResponse(messenger->engine->flutter_engine,
122-
handle, data, data_length);
100+
messenger->engine->SendPlatformMessageResponse(handle, data, data_length);
123101
}
124102

125103
void FlutterDesktopMessengerSetCallback(FlutterDesktopMessengerRef messenger,
@@ -151,8 +129,7 @@ void FlutterDesktopNotifyAppIsDetached(FlutterDesktopEngineRef engine) {
151129
}
152130

153131
void FlutterDesktopNotifyLowMemoryWarning(FlutterDesktopEngineRef engine) {
154-
auto flutter_engine = EngineFromHandle(engine)->flutter_engine;
155-
FlutterEngineNotifyLowMemoryWarning(flutter_engine);
132+
EngineFromHandle(engine)->NotifyLowMemoryWarning();
156133
}
157134

158135
void FlutterRegisterViewFactory(

0 commit comments

Comments
 (0)