22 : channel_(std::make_unique<MethodChannel<EncodableValue>>(
23 binary_messenger,
26 channel_->SetMethodCallHandler(
27 [
this](
const MethodCall<EncodableValue>&
call,
28 std::unique_ptr<MethodResult<EncodableValue>>
result) {
29 const auto&
args = std::get<EncodableMap>(*
call.arguments());
30 if (
call.method_name() == kCreateMethod) {
31 const auto& type_itr =
args.find(EncodableValue(kViewTypeParameter));
32 const auto& id_itr =
args.find(EncodableValue(kIdParameter));
33 if (type_itr ==
args.end()) {
34 result->Error(
"AddPlatformView",
"Parameter viewType is required");
35 return;
36 }
37 if (id_itr ==
args.end()) {
38 result->Error(
"AddPlatformView",
"Parameter id is required");
39 return;
40 }
41 const auto&
type = std::get<std::string>(type_itr->second);
42 const auto& id = std::get<std::int32_t>(id_itr->second);
45 } else {
46 result->Error(
"AddPlatformView",
"Failed to add platform view");
47 }
48 return;
49 }
else if (
call.method_name() == kFocusMethod) {
50 const auto& id_itr =
args.find(EncodableValue(kIdParameter));
51 const auto& direction_itr =
52 args.find(EncodableValue(kDirectionParameter));
53 const auto& focus_itr =
args.find(EncodableValue(kFocusParameter));
54 if (id_itr ==
args.end()) {
55 result->Error(
"FocusPlatformView",
"Parameter id is required");
56 return;
57 }
58 if (direction_itr ==
args.end()) {
59 result->Error(
"FocusPlatformView",
60 "Parameter direction is required");
61 return;
62 }
63 if (focus_itr ==
args.end()) {
64 result->Error(
"FocusPlatformView",
"Parameter focus is required");
65 return;
66 }
67 const auto& id = std::get<std::int32_t>(id_itr->second);
68 const auto& direction = std::get<std::int32_t>(direction_itr->second);
69 const auto& focus = std::get<bool>(focus_itr->second);
73 } else {
74 result->Error(
"FocusPlatformView",
"Failed to focus platform view");
75 }
76 return;
77 }
79 });
80}
static const StandardMethodCodec & GetInstance(const StandardCodecSerializer *serializer=nullptr)
G_BEGIN_DECLS G_MODULE_EXPORT FlValue * args