Skip to content

Commit

Permalink
feat: dart version submitted without quotes, cleanup unused code, fix…
Browse files Browse the repository at this point in the history
… lint errors
  • Loading branch information
kkostov committed Feb 13, 2024
1 parent 6d4b73b commit 7923d05
Show file tree
Hide file tree
Showing 17 changed files with 60 additions and 158 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## 0.0.4

- The initial release of TelemetryDeck SDK for Flutter

## 0.0.3

- The initial release of TelemetryDeck SDK for Flutter
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,7 @@ class TelemetrydecksdkPlugin: FlutterPlugin, MethodCallHandler {
}

override fun onMethodCall(call: MethodCall, result: Result) {
if (call.method == "getPlatformVersion") {
result.success("Android ${android.os.Build.VERSION.RELEASE}")
} else if (call.method == "start") {
if (call.method == "start") {
nativeInitialize(call, result)
} else if (call.method == "stop") {
nativeStop(call, result)
Expand Down

This file was deleted.

25 changes: 0 additions & 25 deletions example/integration_test/plugin_integration_test.dart

This file was deleted.

17 changes: 0 additions & 17 deletions example/ios/RunnerTests/RunnerTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,3 @@ import XCTest
// This demonstrates a simple unit test of the Swift portion of this plugin's implementation.
//
// See https://developer.apple.com/documentation/xctest for more information about using XCTest.

class RunnerTests: XCTestCase {

func testGetPlatformVersion() {
let plugin = TelemetrydecksdkPlugin()

let call = FlutterMethodCall(methodName: "getPlatformVersion", arguments: [])

let resultExpectation = expectation(description: "result block must be called.")
plugin.handle(call) { result in
XCTAssertEqual(result as! String, "iOS " + UIDevice.current.systemVersion)
resultExpectation.fulfill()
}
waitForExpectations(timeout: 1)
}

}
17 changes: 1 addition & 16 deletions example/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ class MyApp extends StatefulWidget {
}

class _MyAppState extends State<MyApp> {
String _platformVersion = 'Unknown';
final _telemetrydecksdkPlugin = Telemetrydecksdk();

@override
Expand All @@ -33,24 +32,10 @@ class _MyAppState extends State<MyApp> {

// Platform messages are asynchronous, so we initialize in an async method.
Future<void> initPlatformState() async {
String platformVersion;
// Platform messages may fail, so we use a try/catch PlatformException.
// We also handle the message potentially returning null.
try {
platformVersion = await _telemetrydecksdkPlugin.getPlatformVersion() ??
'Unknown platform version';
} on PlatformException {
platformVersion = 'Failed to get platform version.';
}

// If the widget was removed from the tree while the asynchronous platform
// message was in flight, we want to discard the reply rather than calling
// setState to update our non-existent appearance.
if (!mounted) return;

setState(() {
_platformVersion = platformVersion;
});
}

@override
Expand All @@ -64,7 +49,7 @@ class _MyAppState extends State<MyApp> {
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Text('Running on: $_platformVersion\n'),
const Text('Hello !'),
const SizedBox(
height:
10), // Adds some space between the text and the button
Expand Down
2 changes: 1 addition & 1 deletion example/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ packages:
path: ".."
relative: true
source: path
version: "1.0.1"
version: "0.0.3"
term_glyph:
dependency: transitive
description:
Expand Down
2 changes: 0 additions & 2 deletions ios/Classes/TelemetrydecksdkPlugin.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@ public class TelemetrydecksdkPlugin: NSObject, FlutterPlugin {

public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
switch call.method {
case "getPlatformVersion":
result("iOS " + UIDevice.current.systemVersion)
case "start":
nativeInitialize(call, result: result)
case "stop":
Expand Down
15 changes: 15 additions & 0 deletions lib/telemetry_provider.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import 'package:telemetrydecksdk/version_reader.dart';
import 'package:telemetrydecksdk/versions.dart';

class TelemetryProvider {
final versionReader = DartVersionReader();

/// Adds Flutter specific payload attributes to outgoing signals before passing them to the native platform API.
/// This method will overwrite the default `telemetryClientVersion`.
Future<Map<String, String>> enrich(Map<String, String>? payload) async {
Map<String, String> result = payload ?? {};
result['telemetryClientVersion'] = "Flutter $telemetryClientVersion";
result['dartVersion'] = versionReader.readVersion();
return result;
}
}
22 changes: 3 additions & 19 deletions lib/telemetrydecksdk.dart
Original file line number Diff line number Diff line change
@@ -1,20 +1,12 @@
import 'dart:async';
import 'dart:io';

import 'package:telemetrydecksdk/versions.dart';
import 'package:telemetrydecksdk/telemetry_provider.dart';
import 'package:telemetrydecksdk/telemetry_manager_configuration.dart';

import 'telemetrydecksdk_platform_interface.dart';

class Telemetrydecksdk {
Future<String?> getPlatformVersion() {
return TelemetrydecksdkPlatform.instance.getPlatformVersion();
}

String getDartVersion() {
final version = Platform.version;
return version;
}
final telemetryProvider = TelemetryProvider();

static Future<void> start(TelemetryManagerConfiguration configuration) async {
await TelemetrydecksdkPlatform.instance.start(configuration);
Expand All @@ -26,7 +18,7 @@ class Telemetrydecksdk {

Future<void> send(String signalType,
{String? clientUser, Map<String, String>? additionalPayload}) async {
var payload = await appendFlutterAttributes(additionalPayload);
var payload = await telemetryProvider.enrich(additionalPayload);
await TelemetrydecksdkPlatform.instance
.send(signalType, clientUser: clientUser, additionalPayload: payload);
}
Expand All @@ -38,12 +30,4 @@ class Telemetrydecksdk {
Future<void> updateDefaultUser(String clientUser) async {
await TelemetrydecksdkPlatform.instance.updateDefaultUser(clientUser);
}

Future<Map<String, String>> appendFlutterAttributes(
Map<String, String>? payload) async {
Map<String, String> result = payload ?? {};
result['telemetryClientVersion'] = "Flutter $telemetryClientVersion";
result['dartVersion'] = getDartVersion();
return result;
}
}
7 changes: 0 additions & 7 deletions lib/telemetrydecksdk_method_channel.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,6 @@ class MethodChannelTelemetrydecksdk extends TelemetrydecksdkPlatform {
@visibleForTesting
final methodChannel = const MethodChannel('telemetrydecksdk');

@override
Future<String?> getPlatformVersion() async {
final version =
await methodChannel.invokeMethod<String>('getPlatformVersion');
return version;
}

@override
Future<void> start(TelemetryManagerConfiguration configuration) async {
await methodChannel.invokeMethod<void>('start', configuration.toMap());
Expand Down
4 changes: 0 additions & 4 deletions lib/telemetrydecksdk_platform_interface.dart
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,6 @@ abstract class TelemetrydecksdkPlatform extends PlatformInterface {
_instance = instance;
}

Future<String?> getPlatformVersion() {
throw UnimplementedError('platformVersion() has not been implemented.');
}

Future<void> start(TelemetryManagerConfiguration configuration) {
throw UnimplementedError('start() has not been implemented.');
}
Expand Down
8 changes: 8 additions & 0 deletions lib/version_reader.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import 'dart:io';

class DartVersionReader {
String readVersion() {
final version = Platform.version;
return version.replaceAll("\"", "'");
}
}
17 changes: 17 additions & 0 deletions test/telemetry_provider_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import 'package:telemetrydecksdk/telemetry_provider.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:telemetrydecksdk/versions.dart';

void main() {
test('appends flutter sdk telemetry attributes', () async {
final sut = TelemetryProvider();

final result = await sut.enrich({});
// assert the keys 'key1' is present in the result
expect(
result,
containsPair(
'telemetryClientVersion', "Flutter $telemetryClientVersion"));
expect(result, containsPair('dartVersion', isNotNull));
});
}
26 changes: 0 additions & 26 deletions test/telemetrydecksdk_method_channel_test.dart
Original file line number Diff line number Diff line change
@@ -1,27 +1 @@
import 'package:flutter/services.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:telemetrydecksdk/telemetrydecksdk_method_channel.dart';

void main() {
TestWidgetsFlutterBinding.ensureInitialized();

MethodChannelTelemetrydecksdk platform = MethodChannelTelemetrydecksdk();
const MethodChannel channel = MethodChannel('telemetrydecksdk');

setUp(() {
TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(
channel,
(MethodCall methodCall) async {
return '42';
},
);
});

tearDown(() {
TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, null);
});

test('getPlatformVersion', () async {
expect(await platform.getPlatformVersion(), '42');
});
}
11 changes: 0 additions & 11 deletions test/telemetrydecksdk_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,6 @@ import 'package:plugin_platform_interface/plugin_platform_interface.dart';
class MockTelemetrydecksdkPlatform
with MockPlatformInterfaceMixin
implements TelemetrydecksdkPlatform {
@override
Future<String?> getPlatformVersion() => Future.value('42');

@override
Future<void> start(TelemetryManagerConfiguration configuration) =>
Future.value();
Expand Down Expand Up @@ -38,14 +35,6 @@ void main() {
expect(initialPlatform, isInstanceOf<MethodChannelTelemetrydecksdk>());
});

test('getPlatformVersion', () async {
Telemetrydecksdk telemetrydecksdkPlugin = Telemetrydecksdk();
MockTelemetrydecksdkPlatform fakePlatform = MockTelemetrydecksdkPlatform();
TelemetrydecksdkPlatform.instance = fakePlatform;

expect(await telemetrydecksdkPlugin.getPlatformVersion(), '42');
});

test('initialize', () async {
MockTelemetrydecksdkPlatform fakePlatform = MockTelemetrydecksdkPlatform();
TelemetrydecksdkPlatform.instance = fakePlatform;
Expand Down
10 changes: 10 additions & 0 deletions test/version_reader_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import 'package:telemetrydecksdk/version_reader.dart';
import 'package:flutter_test/flutter_test.dart';

void main() {
test('returns dart version without double quotes', () async {
final sut = DartVersionReader();

expect(sut.readVersion(), isNot(contains('"')));
});
}

0 comments on commit 7923d05

Please sign in to comment.