diff --git a/examples/platform_channel/linux/my_application.cc b/examples/platform_channel/linux/my_application.cc index 9abcb1bbb4..a0bcb384df 100644 --- a/examples/platform_channel/linux/my_application.cc +++ b/examples/platform_channel/linux/my_application.cc @@ -42,8 +42,7 @@ static void update_charging_state(MyApplication* self) { const gchar* charge_event = "discharging"; for (guint i = 0; i < self->battery_devices->len; i++) { - UpDevice* device = - static_cast(g_ptr_array_index(self->battery_devices, i)); + UpDevice* device = UP_DEVICE(g_ptr_array_index(self->battery_devices, i)); guint state; g_object_get(device, "state", &state, nullptr); @@ -97,8 +96,7 @@ static void up_device_removed_cb(MyApplication* self, UpDevice* device) { static FlMethodResponse* get_battery_level(MyApplication* self) { // Find the first available battery and use that. for (guint i = 0; i < self->battery_devices->len; i++) { - UpDevice* device = - static_cast(g_ptr_array_index(self->battery_devices, i)); + UpDevice* device = UP_DEVICE(g_ptr_array_index(self->battery_devices, i)); double percentage; g_object_get(device, "percentage", &percentage, nullptr); @@ -225,8 +223,7 @@ static void my_application_activate(GApplication* application) { g_autoptr(GPtrArray) devices = up_client_get_devices(self->up_client); #endif for (guint i = 0; i < devices->len; i++) { - g_autoptr(UpDevice) device = - static_cast(g_ptr_array_index(devices, i)); + UpDevice* device = UP_DEVICE(g_ptr_array_index(devices, i)); up_device_added_cb(self, device); } @@ -268,8 +265,7 @@ static void my_application_dispose(GObject* object) { MyApplication* self = MY_APPLICATION(object); for (guint i = 0; i < self->battery_devices->len; i++) { - UpDevice* device = - static_cast(g_ptr_array_index(self->battery_devices, i)); + UpDevice* device = UP_DEVICE(g_ptr_array_index(self->battery_devices, i)); g_signal_handlers_disconnect_matched(device, G_SIGNAL_MATCH_DATA, 0, 0, nullptr, nullptr, self); } @@ -278,7 +274,7 @@ static void my_application_dispose(GObject* object) { g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev); g_clear_object(&self->up_client); - g_clear_object(&self->battery_devices); + g_clear_pointer(&self->battery_devices, g_ptr_array_unref); g_clear_object(&self->battery_channel); g_clear_object(&self->charging_channel); g_clear_pointer(&self->last_charge_event, g_free); diff --git a/examples/platform_channel/test/platform_channel_test.dart b/examples/platform_channel/test/platform_channel_test.dart new file mode 100644 index 0000000000..3d2590b19a --- /dev/null +++ b/examples/platform_channel/test/platform_channel_test.dart @@ -0,0 +1,15 @@ +// Copyright 2014 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:flutter_test/flutter_test.dart'; +import 'package:platform_channel/main.dart' as platform_channel; + +void main() { + testWidgets('Platform channel smoke test', (WidgetTester tester) async { + platform_channel.main(); // builds the app and schedules a frame but doesn't trigger one + await tester.pump(); // triggers a frame + + expect(find.textContaining('Battery level: '), findsOneWidget); + }); +}