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(