diff --git a/packages/battery_plus/CHANGELOG.md b/packages/battery_plus/CHANGELOG.md index 36ad44b22e..fc16cd21f2 100644 --- a/packages/battery_plus/CHANGELOG.md +++ b/packages/battery_plus/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.9.0 + +- Add Linux support (`battery_plus_linux`) +- Add macOS support (`battery_plus_macos`) +- Add Windows support (`battery_plus_windows`) +- Rename method channel to avoid conflicts + ## 0.8.0 - Transfer to plus-plugins monorepo diff --git a/packages/battery_plus/android/build.gradle b/packages/battery_plus/android/build.gradle index ff485fbc6b..9c5a441c43 100644 --- a/packages/battery_plus/android/build.gradle +++ b/packages/battery_plus/android/build.gradle @@ -1,4 +1,4 @@ -group 'io.flutter.plugins.battery' +group 'dev.fluttercommunity.plus.battery' version '1.0-SNAPSHOT' buildscript { diff --git a/packages/battery_plus/android/src/main/AndroidManifest.xml b/packages/battery_plus/android/src/main/AndroidManifest.xml index 480b04644e..729dddeadf 100644 --- a/packages/battery_plus/android/src/main/AndroidManifest.xml +++ b/packages/battery_plus/android/src/main/AndroidManifest.xml @@ -1,3 +1,3 @@ + package="dev.fluttercommunity.plus.battery"> diff --git a/packages/battery_plus/android/src/main/java/io/flutter/plugins/battery/BatteryPlugin.java b/packages/battery_plus/android/src/main/java/dev/fluttercommunity/plus/battery/BatteryPlusPlugin.java similarity index 91% rename from packages/battery_plus/android/src/main/java/io/flutter/plugins/battery/BatteryPlugin.java rename to packages/battery_plus/android/src/main/java/dev/fluttercommunity/plus/battery/BatteryPlusPlugin.java index c17cfc1331..bf1740e665 100644 --- a/packages/battery_plus/android/src/main/java/io/flutter/plugins/battery/BatteryPlugin.java +++ b/packages/battery_plus/android/src/main/java/dev/fluttercommunity/plus/battery/BatteryPlusPlugin.java @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -package io.flutter.plugins.battery; +package dev.fluttercommunity.plus.battery; import android.content.BroadcastReceiver; import android.content.Context; @@ -23,8 +23,8 @@ import io.flutter.plugin.common.MethodChannel.Result; import io.flutter.plugin.common.PluginRegistry; -/** BatteryPlugin */ -public class BatteryPlugin implements MethodCallHandler, StreamHandler, FlutterPlugin { +/** BatteryPlusPlugin */ +public class BatteryPlusPlugin implements MethodCallHandler, StreamHandler, FlutterPlugin { private Context applicationContext; private BroadcastReceiver chargingStateChangeReceiver; @@ -33,7 +33,7 @@ public class BatteryPlugin implements MethodCallHandler, StreamHandler, FlutterP /** Plugin registration. */ public static void registerWith(PluginRegistry.Registrar registrar) { - final BatteryPlugin instance = new BatteryPlugin(); + final BatteryPlusPlugin instance = new BatteryPlusPlugin(); instance.onAttachedToEngine(registrar.context(), registrar.messenger()); } @@ -44,8 +44,8 @@ public void onAttachedToEngine(FlutterPluginBinding binding) { private void onAttachedToEngine(Context applicationContext, BinaryMessenger messenger) { this.applicationContext = applicationContext; - methodChannel = new MethodChannel(messenger, "plugins.flutter.io/battery"); - eventChannel = new EventChannel(messenger, "plugins.flutter.io/charging"); + methodChannel = new MethodChannel(messenger, "dev.fluttercommunity.plus/battery"); + eventChannel = new EventChannel(messenger, "dev.fluttercommunity.plus/charging"); eventChannel.setStreamHandler(this); methodChannel.setMethodCallHandler(this); } diff --git a/packages/battery_plus/ios/Classes/FLTBatteryPlugin.h b/packages/battery_plus/ios/Classes/FLTBatteryPlusPlugin.h similarity index 77% rename from packages/battery_plus/ios/Classes/FLTBatteryPlugin.h rename to packages/battery_plus/ios/Classes/FLTBatteryPlusPlugin.h index 9743ca5012..000f7b41fb 100644 --- a/packages/battery_plus/ios/Classes/FLTBatteryPlugin.h +++ b/packages/battery_plus/ios/Classes/FLTBatteryPlusPlugin.h @@ -4,5 +4,5 @@ #import -@interface FLTBatteryPlugin : NSObject +@interface FLTBatteryPlusPlugin : NSObject @end diff --git a/packages/battery_plus/ios/Classes/FLTBatteryPlugin.m b/packages/battery_plus/ios/Classes/FLTBatteryPlusPlugin.m similarity index 88% rename from packages/battery_plus/ios/Classes/FLTBatteryPlugin.m rename to packages/battery_plus/ios/Classes/FLTBatteryPlusPlugin.m index f1e82a64eb..7cf2fff631 100644 --- a/packages/battery_plus/ios/Classes/FLTBatteryPlugin.m +++ b/packages/battery_plus/ios/Classes/FLTBatteryPlusPlugin.m @@ -2,25 +2,25 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "FLTBatteryPlugin.h" +#import "FLTBatteryPlusPlugin.h" -@interface FLTBatteryPlugin () +@interface FLTBatteryPlusPlugin () @end -@implementation FLTBatteryPlugin { +@implementation FLTBatteryPlusPlugin { FlutterEventSink _eventSink; } + (void)registerWithRegistrar:(NSObject*)registrar { - FLTBatteryPlugin* instance = [[FLTBatteryPlugin alloc] init]; + FLTBatteryPlusPlugin* instance = [[FLTBatteryPlusPlugin alloc] init]; FlutterMethodChannel* channel = - [FlutterMethodChannel methodChannelWithName:@"plugins.flutter.io/battery" + [FlutterMethodChannel methodChannelWithName:@"dev.fluttercommunity.plus/battery" binaryMessenger:[registrar messenger]]; [registrar addMethodCallDelegate:instance channel:channel]; FlutterEventChannel* chargingChannel = - [FlutterEventChannel eventChannelWithName:@"plugins.flutter.io/charging" + [FlutterEventChannel eventChannelWithName:@"dev.fluttercommunity.plus/charging" binaryMessenger:[registrar messenger]]; [chargingChannel setStreamHandler:instance]; } diff --git a/packages/battery_plus/lib/battery_plus.dart b/packages/battery_plus/lib/battery_plus.dart index 5fdd8e8ec2..4109da6e92 100644 --- a/packages/battery_plus/lib/battery_plus.dart +++ b/packages/battery_plus/lib/battery_plus.dart @@ -44,7 +44,7 @@ class Battery { // with a non-default instance. if (!kIsWeb && BatteryPlatform.instance is MethodChannelBattery) { if (Platform.isLinux) { - BatteryPlatform.instance = BatteryLinux(); + BatteryPlatform.instance = BatteryPlusLinux(); } } _manualDartRegistrationNeeded = false; diff --git a/packages/battery_plus/pubspec.yaml b/packages/battery_plus/pubspec.yaml index be75dbe14d..af2531eb2a 100644 --- a/packages/battery_plus/pubspec.yaml +++ b/packages/battery_plus/pubspec.yaml @@ -1,6 +1,6 @@ name: battery_plus description: Flutter plugin for accessing information about the battery state(full, charging, discharging). -version: 0.8.0 +version: 0.9.0 homepage: https://plus.fluttercommunity.dev/ repository: https://github.com/fluttercommunity/plus_plugins/tree/main/packages/ @@ -8,10 +8,10 @@ flutter: plugin: platforms: android: - package: io.flutter.plugins.battery - pluginClass: BatteryPlugin + package: dev.fluttercommunity.plus.battery + pluginClass: BatteryPlusPlugin ios: - pluginClass: FLTBatteryPlugin + pluginClass: FLTBatteryPlusPlugin linux: default_package: battery_plus_linux macos: @@ -25,10 +25,10 @@ dependencies: flutter: sdk: flutter meta: ^1.0.5 - battery_plus_platform_interface: ^0.1.0 + battery_plus_platform_interface: ^0.2.0 battery_plus_linux: ^0.1.0 battery_plus_macos: ^0.1.0 - battery_plus_web: ^0.1.0 + battery_plus_web: ^0.2.0 battery_plus_windows: ^0.1.0 dev_dependencies: diff --git a/packages/battery_plus_linux/lib/battery_plus_linux.dart b/packages/battery_plus_linux/lib/battery_plus_linux.dart index 1bc47fe890..f9578090df 100644 --- a/packages/battery_plus_linux/lib/battery_plus_linux.dart +++ b/packages/battery_plus_linux/lib/battery_plus_linux.dart @@ -1,4 +1,8 @@ /// The Linux implementation of `battery_plus`. library battery_plus_linux; -export 'src/battery_linux.dart'; +// battery_plus_linux depends on dbus which uses FFI internally; export a stub +// for platforms that don't support FFI (e.g., web) to avoid having transitive +// dependencies break web compilation. +export 'src/battery_plus_linux_stub.dart' + if (dart.library.ffi) 'src/battery_plus_linux_real.dart'; diff --git a/packages/battery_plus_linux/lib/src/battery_linux.dart b/packages/battery_plus_linux/lib/src/battery_plus_linux_real.dart similarity index 97% rename from packages/battery_plus_linux/lib/src/battery_linux.dart rename to packages/battery_plus_linux/lib/src/battery_plus_linux_real.dart index 44733ce0f1..80752b2f43 100644 --- a/packages/battery_plus_linux/lib/src/battery_linux.dart +++ b/packages/battery_plus_linux/lib/src/battery_plus_linux_real.dart @@ -24,7 +24,7 @@ extension _ToBatteryState on UPowerBatteryState { typedef UPowerDeviceFactory = UPowerDevice Function(); /// The Linux implementation of BatteryPlatform. -class BatteryLinux extends BatteryPlatform { +class BatteryPlusLinux extends BatteryPlatform { /// Returns the current battery level in percent. @override Future get batteryLevel { diff --git a/packages/battery_plus_linux/lib/src/battery_plus_linux_stub.dart b/packages/battery_plus_linux/lib/src/battery_plus_linux_stub.dart new file mode 100644 index 0000000000..40c49c50cb --- /dev/null +++ b/packages/battery_plus_linux/lib/src/battery_plus_linux_stub.dart @@ -0,0 +1,15 @@ +import 'package:battery_plus_platform_interface/battery_plus_platform_interface.dart'; + +/// A stub implementation to satisfy compilation of multi-platform packages that +/// depend on battery_plus_linux. This should never actually be created. +/// +/// Notably, because battery_plus needs to manually register battery_plus_linux, +/// anything with a transitive dependency on battery_plus will also depend on +/// battery_plus_linux, not just at the pubspec level but the code level. +class BatteryPlusLinux extends BatteryPlatform { + /// Errors on attempted instantiation of the stub. It exists only to satisfy + /// compile-time dependencies, and should never actually be created. + BatteryPlusLinux() { + assert(false); + } +} diff --git a/packages/battery_plus_linux/pubspec.yaml b/packages/battery_plus_linux/pubspec.yaml index 2cd258db19..a3f13bf778 100644 --- a/packages/battery_plus_linux/pubspec.yaml +++ b/packages/battery_plus_linux/pubspec.yaml @@ -6,10 +6,10 @@ version: 0.1.0 environment: sdk: ">=2.7.0 <3.0.0" - flutter: ">=1.17.0 <2.0.0" + flutter: ">=1.20.0" dependencies: - battery_plus_platform_interface: ^0.1.0 + battery_plus_platform_interface: ^0.2.0 dbus: ^0.1.0 flutter: sdk: flutter diff --git a/packages/battery_plus_linux/test/battery_plus_linux_test.dart b/packages/battery_plus_linux/test/battery_plus_linux_test.dart index 3a2221588d..517d4f7743 100644 --- a/packages/battery_plus_linux/test/battery_plus_linux_test.dart +++ b/packages/battery_plus_linux/test/battery_plus_linux_test.dart @@ -1,4 +1,4 @@ -import 'package:battery_plus_linux/src/battery_linux.dart'; +import 'package:battery_plus_linux/src/battery_plus_linux_real.dart'; import 'package:battery_plus_linux/src/upower_device.dart'; import 'package:battery_plus_platform_interface/battery_plus_platform_interface.dart'; import 'package:flutter_test/flutter_test.dart'; @@ -8,7 +8,7 @@ class MockDevice extends Mock implements UPowerDevice {} void main() { test('battery level', () async { - final battery = BatteryLinux(); + final battery = BatteryPlusLinux(); battery.createDevice = () { final device = MockDevice(); when(device.getPercentage()).thenAnswer((_) => Future.value(56.78)); @@ -18,7 +18,7 @@ void main() { }); test('battery state changes', () { - final battery = BatteryLinux(); + final battery = BatteryPlusLinux(); battery.createDevice = () { final device = MockDevice(); when(device.getState()).thenAnswer((_) { diff --git a/packages/battery_plus_macos/macos/Classes/BatteryPlusMacosPlugin.swift b/packages/battery_plus_macos/macos/Classes/BatteryPlusMacosPlugin.swift index 078314a21e..eb408761fc 100644 --- a/packages/battery_plus_macos/macos/Classes/BatteryPlusMacosPlugin.swift +++ b/packages/battery_plus_macos/macos/Classes/BatteryPlusMacosPlugin.swift @@ -4,9 +4,9 @@ import IOKit.ps public class BatteryPlusMacosPlugin: NSObject, FlutterPlugin { public static func register(with registrar: FlutterPluginRegistrar) { - let channel = FlutterMethodChannel(name: "plugins.flutter.io/battery", binaryMessenger: registrar.messenger) + let channel = FlutterMethodChannel(name: "dev.fluttercommunity.plus/battery", binaryMessenger: registrar.messenger) - let eventChannel = FlutterEventChannel(name: "plugins.flutter.io/charging", binaryMessenger: registrar.messenger) + let eventChannel = FlutterEventChannel(name: "dev.fluttercommunity.plus/charging", binaryMessenger: registrar.messenger) let instance = BatteryPlusMacosPlugin() registrar.addMethodCallDelegate(instance, channel: channel) diff --git a/packages/battery_plus_macos/pubspec.yaml b/packages/battery_plus_macos/pubspec.yaml index c230b9abc4..6b1e49f4d2 100644 --- a/packages/battery_plus_macos/pubspec.yaml +++ b/packages/battery_plus_macos/pubspec.yaml @@ -6,10 +6,10 @@ version: 0.1.0 environment: sdk: '>=2.6.0 <3.0.0' - flutter: '>=1.12.13+hotfix.4' + flutter: '>=1.20.0' dependencies: - battery_plus_platform_interface: ^0.1.0 + battery_plus_platform_interface: ^0.2.0 flutter: sdk: flutter diff --git a/packages/battery_plus_platform_interface/CHANGELOG.md b/packages/battery_plus_platform_interface/CHANGELOG.md index cf3fa1cb11..d0073a99a2 100644 --- a/packages/battery_plus_platform_interface/CHANGELOG.md +++ b/packages/battery_plus_platform_interface/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.0 + +- Rename method channel to avoid conflicts + ## 0.1.0 - Transfer to plus-plugins monorepo diff --git a/packages/battery_plus_platform_interface/lib/src/method_channel_battery_plus.dart b/packages/battery_plus_platform_interface/lib/src/method_channel_battery_plus.dart index 902e0ebb32..395fce06de 100644 --- a/packages/battery_plus_platform_interface/lib/src/method_channel_battery_plus.dart +++ b/packages/battery_plus_platform_interface/lib/src/method_channel_battery_plus.dart @@ -15,11 +15,13 @@ import 'utils.dart'; class MethodChannelBattery extends BatteryPlatform { /// The method channel used to interact with the native platform. @visibleForTesting - MethodChannel methodChannel = MethodChannel('plugins.flutter.io/battery'); + MethodChannel methodChannel = + MethodChannel('dev.fluttercommunity.plus/battery'); /// The event channel used to receive BatteryState changes from the native platform. @visibleForTesting - EventChannel eventChannel = EventChannel('plugins.flutter.io/charging'); + EventChannel eventChannel = + EventChannel('dev.fluttercommunity.plus/charging'); Stream _onBatteryStateChanged; diff --git a/packages/battery_plus_platform_interface/pubspec.yaml b/packages/battery_plus_platform_interface/pubspec.yaml index b9d1276821..cf4f229505 100644 --- a/packages/battery_plus_platform_interface/pubspec.yaml +++ b/packages/battery_plus_platform_interface/pubspec.yaml @@ -1,6 +1,6 @@ name: battery_plus_platform_interface description: A common platform interface for the battery_plus plugin. -version: 0.1.0 +version: 0.2.0 homepage: https://plus.fluttercommunity.dev/ repository: https://github.com/fluttercommunity/plus_plugins/tree/main/packages/ diff --git a/packages/battery_plus_web/CHANGELOG.md b/packages/battery_plus_web/CHANGELOG.md index 15e458a8d4..df0ad03484 100644 --- a/packages/battery_plus_web/CHANGELOG.md +++ b/packages/battery_plus_web/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.0 + +- Rename method channel to avoid conflicts + ## 0.1.0 - Transfer to plus-plugins monorepo diff --git a/packages/battery_plus_web/lib/battery_plus_web.dart b/packages/battery_plus_web/lib/battery_plus_web.dart index b07830bae1..48aaea16aa 100644 --- a/packages/battery_plus_web/lib/battery_plus_web.dart +++ b/packages/battery_plus_web/lib/battery_plus_web.dart @@ -6,9 +6,10 @@ import 'package:battery_plus_platform_interface/battery_plus_platform_interface. import 'package:flutter_web_plugins/flutter_web_plugins.dart'; /// The web implementation of the BatteryPlatform of the Battery plugin. -class BatteryPlugin extends BatteryPlatform { - /// Constructs a BatteryPlugin. - BatteryPlugin(html.Navigator navigator) : _getBattery = navigator.getBattery; +class BatteryPlusPlugin extends BatteryPlatform { + /// Constructs a BatteryPlusPlugin. + BatteryPlusPlugin(html.Navigator navigator) + : _getBattery = navigator.getBattery; /// A check to determine if this version of the plugin can be used. bool get isSupported => html.window.navigator.getBattery != null; @@ -18,7 +19,7 @@ class BatteryPlugin extends BatteryPlatform { /// Factory method that initializes the Battery plugin platform with an instance /// of the plugin for the web. static void registerWith(Registrar registrar) { - BatteryPlatform.instance = BatteryPlugin(html.window.navigator); + BatteryPlatform.instance = BatteryPlusPlugin(html.window.navigator); } /// Checks the connection status of the device. diff --git a/packages/battery_plus_web/pubspec.yaml b/packages/battery_plus_web/pubspec.yaml index 9eaccaf5f9..e7fb5b815e 100644 --- a/packages/battery_plus_web/pubspec.yaml +++ b/packages/battery_plus_web/pubspec.yaml @@ -1,6 +1,6 @@ name: battery_plus_web description: An implementation for the web platform of the Flutter `battery_plus` plugin. -version: 0.1.0 +version: 0.2.0 homepage: https://plus.fluttercommunity.dev/ repository: https://github.com/fluttercommunity/plus_plugins/tree/main/packages/ @@ -8,11 +8,11 @@ flutter: plugin: platforms: web: - pluginClass: BatteryPlugin + pluginClass: BatteryPlusPlugin fileName: battery_plus_web.dart dependencies: - battery_plus_platform_interface: ^0.1.0 + battery_plus_platform_interface: ^0.2.0 flutter_web_plugins: sdk: flutter flutter: diff --git a/packages/battery_plus_windows/pubspec.yaml b/packages/battery_plus_windows/pubspec.yaml index 0c6129f0dc..8cbb295c5d 100644 --- a/packages/battery_plus_windows/pubspec.yaml +++ b/packages/battery_plus_windows/pubspec.yaml @@ -9,7 +9,7 @@ environment: flutter: ">=1.20.0 <2.0.0" dependencies: - battery_plus_platform_interface: ^0.1.0 + battery_plus_platform_interface: ^0.2.0 flutter: sdk: flutter diff --git a/packages/battery_plus_windows/windows/battery_plus_windows_plugin.cpp b/packages/battery_plus_windows/windows/battery_plus_windows_plugin.cpp index d94aa08329..7931b11335 100644 --- a/packages/battery_plus_windows/windows/battery_plus_windows_plugin.cpp +++ b/packages/battery_plus_windows/windows/battery_plus_windows_plugin.cpp @@ -64,7 +64,7 @@ void BatteryPlusWindowsPlugin::RegisterWithRegistrar( BatteryPlusWindowsPlugin::BatteryPlusWindowsPlugin( flutter::PluginRegistrarWindows *registrar) { auto methodChannel = std::make_unique( - registrar->messenger(), "plugins.flutter.io/battery", + registrar->messenger(), "dev.fluttercommunity.plus/battery", &flutter::StandardMethodCodec::GetInstance()); methodChannel->SetMethodCallHandler( @@ -73,7 +73,7 @@ BatteryPlusWindowsPlugin::BatteryPlusWindowsPlugin( }); auto eventChannel = std::make_unique( - registrar->messenger(), "plugins.flutter.io/charging", + registrar->messenger(), "dev.fluttercommunity.plus/charging", &flutter::StandardMethodCodec::GetInstance()); eventChannel->SetStreamHandler(