Flutter Engine
 
Loading...
Searching...
No Matches
fl_settings_channel.cc
Go to the documentation of this file.
1// Copyright 2013 The Flutter Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
6
9
10static constexpr char kChannelName[] = "flutter/settings";
11static constexpr char kTextScaleFactorKey[] = "textScaleFactor";
12static constexpr char kAlwaysUse24HourFormatKey[] = "alwaysUse24HourFormat";
13static constexpr char kPlatformBrightnessKey[] = "platformBrightness";
14static constexpr char kPlatformBrightnessLight[] = "light";
15static constexpr char kPlatformBrightnessDark[] = "dark";
16
19
20 FlBasicMessageChannel* channel;
21};
22
23G_DEFINE_TYPE(FlSettingsChannel, fl_settings_channel, G_TYPE_OBJECT)
24
25static void fl_settings_channel_dispose(GObject* object) {
26 FlSettingsChannel* self = FL_SETTINGS_CHANNEL(object);
27
28 g_clear_object(&self->channel);
29
30 G_OBJECT_CLASS(fl_settings_channel_parent_class)->dispose(object);
31}
32
33static void fl_settings_channel_class_init(FlSettingsChannelClass* klass) {
34 G_OBJECT_CLASS(klass)->dispose = fl_settings_channel_dispose;
35}
36
37static void fl_settings_channel_init(FlSettingsChannel* self) {}
38
39FlSettingsChannel* fl_settings_channel_new(FlBinaryMessenger* messenger) {
40 FlSettingsChannel* self = FL_SETTINGS_CHANNEL(
41 g_object_new(fl_settings_channel_get_type(), nullptr));
42
43 g_autoptr(FlJsonMessageCodec) codec = fl_json_message_codec_new();
45 FL_MESSAGE_CODEC(codec));
46
47 return self;
48}
49
51 FlSettingsChannel* self,
52 double text_scale_factor,
53 gboolean always_use_24_hour_format,
54 FlSettingsChannelPlatformBrightness platform_brightness) {
55 g_return_if_fail(FL_IS_SETTINGS_CHANNEL(self));
56
59 fl_value_new_float(text_scale_factor));
61 fl_value_new_bool(always_use_24_hour_format));
62 const gchar* platform_brightness_string;
63 switch (platform_brightness) {
65 platform_brightness_string = kPlatformBrightnessLight;
66 break;
68 platform_brightness_string = kPlatformBrightnessDark;
69 break;
70 default:
71 g_assert_not_reached();
72 }
74 fl_value_new_string(platform_brightness_string));
75 fl_basic_message_channel_send(self->channel, message, nullptr, nullptr,
76 nullptr);
77}
G_MODULE_EXPORT FlBasicMessageChannel * fl_basic_message_channel_new(FlBinaryMessenger *messenger, const gchar *name, FlMessageCodec *codec)
G_MODULE_EXPORT void fl_basic_message_channel_send(FlBasicMessageChannel *self, FlValue *message, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
G_DEFINE_TYPE(FlBasicMessageChannelResponseHandle, fl_basic_message_channel_response_handle, G_TYPE_OBJECT) static void fl_basic_message_channel_response_handle_dispose(GObject *object)
g_autoptr(GMutexLocker) locker
G_MODULE_EXPORT FlJsonMessageCodec * fl_json_message_codec_new()
G_BEGIN_DECLS GBytes * message
static void fl_settings_channel_class_init(FlSettingsChannelClass *klass)
static constexpr char kTextScaleFactorKey[]
void fl_settings_channel_send(FlSettingsChannel *self, double text_scale_factor, gboolean always_use_24_hour_format, FlSettingsChannelPlatformBrightness platform_brightness)
static void fl_settings_channel_dispose(GObject *object)
FlSettingsChannel * fl_settings_channel_new(FlBinaryMessenger *messenger)
static void fl_settings_channel_init(FlSettingsChannel *self)
static constexpr char kPlatformBrightnessKey[]
static constexpr char kPlatformBrightnessLight[]
static constexpr char kChannelName[]
static constexpr char kAlwaysUse24HourFormatKey[]
static constexpr char kPlatformBrightnessDark[]
FlSettingsChannelPlatformBrightness
@ FL_SETTINGS_CHANNEL_PLATFORM_BRIGHTNESS_DARK
@ FL_SETTINGS_CHANNEL_PLATFORM_BRIGHTNESS_LIGHT
G_MODULE_EXPORT FlValue * fl_value_new_map()
Definition fl_value.cc:366
G_MODULE_EXPORT void fl_value_set_string_take(FlValue *self, const gchar *key, FlValue *value)
Definition fl_value.cc:650
G_MODULE_EXPORT FlValue * fl_value_new_string(const gchar *value)
Definition fl_value.cc:276
G_MODULE_EXPORT FlValue * fl_value_new_bool(bool value)
Definition fl_value.cc:255
G_MODULE_EXPORT FlValue * fl_value_new_float(double value)
Definition fl_value.cc:269
typedefG_BEGIN_DECLS struct _FlValue FlValue
Definition fl_value.h:42
FlBasicMessageChannel * channel