Unverified Commit 960d6698 authored by James D. Lin's avatar James D. Lin Committed by GitHub

Make platform_channels_swift use more idiomatic Swift (#21712)

Make platform_channels_swift use more idiomatic Swift

* Remove semicolons.
* `if (condition)` => `if condition`.
* `Class.init(...)` => `Class(...)`.
* Remove `break` statements from `switch` cases.
* Remove some unnecessary uses of `self`.
parent a2dbc20b
...@@ -7,86 +7,82 @@ import Flutter ...@@ -7,86 +7,82 @@ import Flutter
@UIApplicationMain @UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate, FlutterStreamHandler { @objc class AppDelegate: FlutterAppDelegate, FlutterStreamHandler {
private var eventSink: FlutterEventSink?; private var eventSink: FlutterEventSink?
override func application( override func application(
_ application: UIApplication, _ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
GeneratedPluginRegistrant.register(with: self); GeneratedPluginRegistrant.register(with: self)
let controller : FlutterViewController = window?.rootViewController as! FlutterViewController; let controller: FlutterViewController = window?.rootViewController as! FlutterViewController
let batteryChannel = FlutterMethodChannel.init(name: "samples.flutter.io/battery", let batteryChannel = FlutterMethodChannel(name: "samples.flutter.io/battery",
binaryMessenger: controller); binaryMessenger: controller)
batteryChannel.setMethodCallHandler({ batteryChannel.setMethodCallHandler({
(call: FlutterMethodCall, result: FlutterResult) -> Void in (call: FlutterMethodCall, result: FlutterResult) -> Void in
if ("getBatteryLevel" == call.method) { if "getBatteryLevel" == call.method {
self.receiveBatteryLevel(result: result); self.receiveBatteryLevel(result: result)
} else { } else {
result(FlutterMethodNotImplemented); result(FlutterMethodNotImplemented)
} }
}); })
let chargingChannel = FlutterEventChannel.init(name: "samples.flutter.io/charging", let chargingChannel = FlutterEventChannel(name: "samples.flutter.io/charging",
binaryMessenger: controller); binaryMessenger: controller)
chargingChannel.setStreamHandler(self); chargingChannel.setStreamHandler(self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions); return super.application(application, didFinishLaunchingWithOptions: launchOptions)
} }
private func receiveBatteryLevel(result: FlutterResult) { private func receiveBatteryLevel(result: FlutterResult) {
let device = UIDevice.current; let device = UIDevice.current
device.isBatteryMonitoringEnabled = true; device.isBatteryMonitoringEnabled = true
if (device.batteryState == UIDeviceBatteryState.unknown) { if device.batteryState == UIDeviceBatteryState.unknown {
result(FlutterError.init(code: "UNAVAILABLE", result(FlutterError(code: "UNAVAILABLE",
message: "Battery info unavailable", message: "Battery info unavailable",
details: nil)); details: nil))
} else { } else {
result(Int(device.batteryLevel * 100)); result(Int(device.batteryLevel * 100))
} }
} }
public func onListen(withArguments arguments: Any?, public func onListen(withArguments arguments: Any?,
eventSink: @escaping FlutterEventSink) -> FlutterError? { eventSink: @escaping FlutterEventSink) -> FlutterError? {
self.eventSink = eventSink; self.eventSink = eventSink
UIDevice.current.isBatteryMonitoringEnabled = true; UIDevice.current.isBatteryMonitoringEnabled = true
self.sendBatteryStateEvent(); sendBatteryStateEvent()
NotificationCenter.default.addObserver( NotificationCenter.default.addObserver(
self, self,
selector: #selector(onBatteryStateDidChange), selector: #selector(onBatteryStateDidChange),
name: NSNotification.Name.UIDeviceBatteryStateDidChange, name: NSNotification.Name.UIDeviceBatteryStateDidChange,
object: nil) object: nil)
return nil; return nil
} }
@objc private func onBatteryStateDidChange(notification: NSNotification) { @objc private func onBatteryStateDidChange(notification: NSNotification) {
self.sendBatteryStateEvent(); sendBatteryStateEvent()
} }
private func sendBatteryStateEvent() { private func sendBatteryStateEvent() {
if (eventSink == nil) { if eventSink == nil {
return; return
} }
let state = UIDevice.current.batteryState; let state = UIDevice.current.batteryState
switch state { switch state {
case UIDeviceBatteryState.full: case UIDeviceBatteryState.full:
eventSink!("charging"); eventSink!("charging")
break;
case UIDeviceBatteryState.charging: case UIDeviceBatteryState.charging:
eventSink!("charging"); eventSink!("charging")
break;
case UIDeviceBatteryState.unplugged: case UIDeviceBatteryState.unplugged:
eventSink!("discharging"); eventSink!("discharging")
break;
default: default:
eventSink!(FlutterError.init(code: "UNAVAILABLE", eventSink!(FlutterError(code: "UNAVAILABLE",
message: "Charging status unavailable", message: "Charging status unavailable",
details: nil)); details: nil))
break;
} }
} }
public func onCancel(withArguments arguments: Any?) -> FlutterError? { public func onCancel(withArguments arguments: Any?) -> FlutterError? {
NotificationCenter.default.removeObserver(self); NotificationCenter.default.removeObserver(self)
eventSink = nil; eventSink = nil
return nil; return nil
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment