Skip to content

Commit bfc4d30

Browse files
committed
Implement StringSerializer
1 parent 8523980 commit bfc4d30

File tree

1 file changed

+28
-2
lines changed

1 file changed

+28
-2
lines changed

shell/platform/tizen/channels/lifecycle_channel.cc

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@
44

55
#include "lifecycle_channel.h"
66

7+
#include <variant>
8+
79
#include "flutter/shell/platform/common/client_wrapper/include/flutter/standard_message_codec.h"
8-
#include "flutter/shell/platform/tizen/flutter_tizen_engine.h"
910
#include "flutter/shell/platform/tizen/tizen_log.h"
1011

1112
namespace flutter {
@@ -19,13 +20,38 @@ constexpr char kResumed[] = "AppLifecycleState.resumed";
1920
constexpr char kPaused[] = "AppLifecycleState.paused";
2021
constexpr char kDetached[] = "AppLifecycleState.detached";
2122

23+
// Codec extension for UTF-8 strings.
24+
class StringSerializer : public StandardCodecSerializer {
25+
public:
26+
StringSerializer() = default;
27+
virtual ~StringSerializer() = default;
28+
29+
// Returns the shared serializer instance.
30+
static const StringSerializer& GetInstance() {
31+
static StringSerializer sInstance;
32+
return sInstance;
33+
}
34+
35+
virtual void WriteValue(const EncodableValue& value,
36+
ByteStreamWriter* stream) const override {
37+
if (auto string_value = std::get_if<std::string>(&value)) {
38+
size_t size = string_value->size();
39+
if (size > 0) {
40+
stream->WriteBytes(
41+
reinterpret_cast<const uint8_t*>(string_value->data()), size);
42+
}
43+
}
44+
}
45+
};
46+
2247
} // namespace
2348

2449
LifecycleChannel::LifecycleChannel(BinaryMessenger* messenger)
2550
: channel_(std::make_unique<BasicMessageChannel<EncodableValue>>(
2651
messenger,
2752
kChannelName,
28-
&StandardMessageCodec::GetInstance())) {}
53+
&StandardMessageCodec::GetInstance(
54+
&StringSerializer::GetInstance()))) {}
2955

3056
LifecycleChannel::~LifecycleChannel() {}
3157

0 commit comments

Comments
 (0)