Skip to content

Commit e85b864

Browse files
committed
feat(analytics): use amplify_db_common for drift (#2316)
# Conflicts: # packages/amplify/amplify_flutter/example/windows/flutter/generated_plugin_registrant.cc # packages/amplify/amplify_flutter/example/windows/flutter/generated_plugins.cmake # packages/analytics/amplify_analytics_pinpoint/pubspec.yaml # Conflicts: # packages/amplify/amplify_flutter/example/windows/flutter/generated_plugin_registrant.cc # packages/amplify/amplify_flutter/example/windows/flutter/generated_plugins.cmake
1 parent e449620 commit e85b864

File tree

17 files changed

+60
-214
lines changed

17 files changed

+60
-214
lines changed

packages/analytics/amplify_analytics_pinpoint/example/linux/flutter/generated_plugin_registrant.cc

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/analytics/amplify_analytics_pinpoint/example/linux/flutter/generated_plugins.cmake

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/analytics/amplify_analytics_pinpoint/example/macos/Flutter/GeneratedPluginRegistrant.swift

Lines changed: 0 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/analytics/amplify_analytics_pinpoint/example/windows/flutter/generated_plugin_registrant.cc

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/analytics/amplify_analytics_pinpoint/example/windows/flutter/generated_plugins.cmake

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/analytics/amplify_analytics_pinpoint/lib/src/analytics_plugin_impl.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import 'package:amplify_analytics_pinpoint/src/device_context_info_provider/flut
1616
import 'package:amplify_analytics_pinpoint/src/flutter_app_lifecycle_provider.dart';
1717
import 'package:amplify_analytics_pinpoint/src/flutter_path_provider/flutter_path_provider.dart';
1818
import 'package:amplify_analytics_pinpoint_dart/amplify_analytics_pinpoint_dart.dart';
19+
import 'package:amplify_db_common/amplify_db_common.dart' as db_common;
1920
import 'package:amplify_secure_storage/amplify_secure_storage.dart';
2021

2122
/// {@template amplify_analytics_pinpoint.analytics_plugin_impl}
@@ -33,5 +34,6 @@ class AmplifyAnalyticsPinpoint extends AmplifyAnalyticsPinpointDart {
3334
pathProvider: FlutterPathProvider(),
3435
appLifecycleProvider: FlutterAppLifecycleProvider(),
3536
deviceContextInfoProvider: const FlutterDeviceContextInfoProvider(),
37+
dbConnectFunction: db_common.connect,
3638
);
3739
}

packages/analytics/amplify_analytics_pinpoint/pubspec.yaml

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: amplify_analytics_pinpoint
22
description: The Amplify Flutter Analytics category plugin using the AWS Pinpoint provider.
3-
version: 1.0.0-next.0+3
3+
version: 1.0.0-next.0
44
homepage: https://docs.amplify.aws/lib/q/platform/flutter/
55
repository: https://github.com/aws-amplify/amplify-flutter/tree/next/packages/analytics/amplify_analytics_pinpoint
66
issue_tracker: https://github.com/aws-amplify/amplify-flutter/issues
@@ -9,26 +9,28 @@ environment:
99
sdk: ">=2.17.0 <3.0.0"
1010
flutter: ">=3.0.0"
1111

12+
# Helps `pana` since we do not use Flutter plugins for most platforms
13+
platforms:
14+
ios:
15+
android:
16+
macos:
17+
windows:
18+
linux:
19+
web:
20+
1221
dependencies:
13-
amplify_analytics_pinpoint_android: ">=1.0.0-next.0 <1.0.0-next.1"
14-
amplify_analytics_pinpoint_ios: ">=1.0.0-next.0 <1.0.0-next.1"
15-
amplify_core: ">=1.0.0-next.0+2 <1.0.0-next.1"
16-
aws_common: ">=0.2.4 <0.3.0"
22+
amplify_analytics_pinpoint_dart: ^0.1.0
23+
amplify_core: ">=1.0.0-next.0+1 <1.0.0-next.1"
24+
amplify_db_common: ^0.1.0
25+
amplify_secure_storage: ^0.1.0
26+
device_info_plus: ^6.0.0
1727
flutter:
1828
sdk: flutter
1929
meta: ^1.7.0
30+
package_info_plus: ^2.0.0
31+
path_provider: ^2.0.0
2032

2133
dev_dependencies:
2234
amplify_lints: ^2.0.0
23-
amplify_test:
24-
path: ../../amplify_test
2535
flutter_test:
2636
sdk: flutter
27-
28-
flutter:
29-
plugin:
30-
platforms:
31-
# android:
32-
# default_package: amplify_analytics_pinpoint_android
33-
ios:
34-
default_package: amplify_analytics_pinpoint_ios

packages/analytics/amplify_analytics_pinpoint_dart/lib/src/analytics_plugin_impl.dart

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import 'package:amplify_analytics_pinpoint_dart/amplify_analytics_pinpoint_dart.
1818
import 'package:amplify_analytics_pinpoint_dart/src/impl/analytics_client/analytics_client.dart';
1919
import 'package:amplify_analytics_pinpoint_dart/src/sdk/pinpoint.dart';
2020
import 'package:amplify_core/amplify_core.dart';
21+
import 'package:amplify_db_common_dart/amplify_db_common_dart.dart';
2122
import 'package:amplify_secure_storage_dart/amplify_secure_storage_dart.dart';
2223

2324
/// {@template amplify_analytics_pinpoint_dart.amplify_analytics_pinpoint_dart}
@@ -34,10 +35,12 @@ class AmplifyAnalyticsPinpointDart extends AnalyticsPluginInterface {
3435
CachedEventsPathProvider? pathProvider,
3536
AppLifecycleProvider? appLifecycleProvider,
3637
DeviceContextInfoProvider? deviceContextInfoProvider,
38+
required Connect dbConnectFunction,
3739
}) : _keyValueStore = keyValueStore,
3840
_pathProvider = pathProvider,
3941
_appLifecycleProvider = appLifecycleProvider,
40-
_deviceContextInfoProvider = deviceContextInfoProvider;
42+
_deviceContextInfoProvider = deviceContextInfoProvider,
43+
_dbConnectFunction = dbConnectFunction;
4144

4245
AnalyticsClient? __analyticsClient;
4346
AnalyticsClient get _analyticsClient {
@@ -57,6 +60,7 @@ class AmplifyAnalyticsPinpointDart extends AnalyticsPluginInterface {
5760
final CachedEventsPathProvider? _pathProvider;
5861
final AppLifecycleProvider? _appLifecycleProvider;
5962
final DeviceContextInfoProvider? _deviceContextInfoProvider;
63+
final Connect _dbConnectFunction;
6064

6165
@override
6266
Future<void> configure({
@@ -101,12 +105,16 @@ class AmplifyAnalyticsPinpointDart extends AnalyticsPluginInterface {
101105
await _deviceContextInfoProvider?.getDeviceInfoDetails();
102106

103107
final driftStoragePath = await _pathProvider?.getApplicationSupportPath();
108+
final driftQueryExecutor = _dbConnectFunction(
109+
name: 'analytics_cached_events',
110+
path: driftStoragePath,
111+
);
104112

105113
__analyticsClient = await AnalyticsClient.getInstance(
106114
appId: appId,
107115
keyValueStore: keyValueStore,
108116
pinpointClient: pinpointClient,
109-
driftStoragePath: driftStoragePath,
117+
driftQueryExecutor: driftQueryExecutor,
110118
appLifecycleProvider: _appLifecycleProvider,
111119
deviceContextInfo: deviceContextInfo,
112120
);

packages/analytics/amplify_analytics_pinpoint_dart/lib/src/impl/analytics_client/analytics_client.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import 'package:amplify_analytics_pinpoint_dart/src/impl/analytics_client/stoppa
2323
import 'package:amplify_analytics_pinpoint_dart/src/sdk/pinpoint.dart';
2424
import 'package:amplify_core/amplify_core.dart';
2525
import 'package:amplify_secure_storage_dart/amplify_secure_storage_dart.dart';
26+
import 'package:drift/drift.dart';
2627
import 'package:meta/meta.dart';
2728

2829
/// {@template amplify_analytics_pinpoint_dart.analytics_client}
@@ -52,7 +53,7 @@ class AnalyticsClient {
5253
required String appId,
5354
required SecureStorageInterface keyValueStore,
5455
required PinpointClient pinpointClient,
55-
String? driftStoragePath,
56+
required QueryExecutor driftQueryExecutor,
5657
AppLifecycleProvider? appLifecycleProvider,
5758
DeviceContextInfo? deviceContextInfo,
5859
}) async {
@@ -79,7 +80,7 @@ class AnalyticsClient {
7980
fixedEndpointId: fixedEndpointId,
8081
endpointClient: endpointClient,
8182
pinpointClient: pinpointClient,
82-
driftStoragePath: driftStoragePath,
83+
driftQueryExecutor: driftQueryExecutor,
8384
);
8485

8586
// Initialize SessionManager

packages/analytics/amplify_analytics_pinpoint_dart/lib/src/impl/analytics_client/event_client/event_client.dart

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import 'package:amplify_analytics_pinpoint_dart/src/impl/analytics_client/endpoi
1616
import 'package:amplify_analytics_pinpoint_dart/src/impl/analytics_client/event_client/event_storage_adapter.dart';
1717
import 'package:amplify_analytics_pinpoint_dart/src/sdk/pinpoint.dart';
1818
import 'package:amplify_core/amplify_core.dart';
19+
import 'package:drift/drift.dart';
1920
import 'package:meta/meta.dart';
2021
import 'package:smithy/smithy.dart';
2122
import 'package:uuid/uuid.dart';
@@ -51,14 +52,14 @@ class EventClient {
5152
required String fixedEndpointId,
5253
required PinpointClient pinpointClient,
5354
required EndpointClient endpointClient,
54-
String? driftStoragePath,
55+
required QueryExecutor driftQueryExecutor,
5556
}) {
5657
return _instance ??= EventClient(
5758
appId: appId,
5859
fixedEndpointId: fixedEndpointId,
5960
pinpointClient: pinpointClient,
6061
endpointClient: endpointClient,
61-
storageAdapter: EventStorageAdapter.getInstance(driftStoragePath),
62+
storageAdapter: EventStorageAdapter.getInstance(driftQueryExecutor),
6263
);
6364
}
6465

@@ -182,7 +183,7 @@ class EventClient {
182183
}
183184
// Always delete local store of events
184185
// Unless a retryable exception has been received (see above)
185-
finally {
186+
finally {
186187
await _storageAdapter.deleteEvents(eventIdsToDelete.values);
187188
}
188189
}

0 commit comments

Comments
 (0)