From fa266462140e62f2d26f06876b5c46ef12e1b34f Mon Sep 17 00:00:00 2001 From: mbfakourii Date: Thu, 22 Dec 2022 16:45:04 +0330 Subject: [PATCH 1/9] fix ParseInstallation timeZone missing --- packages/dart/lib/parse_server_sdk.dart | 2 + .../lib/src/objects/parse_installation.dart | 38 ++++++++++++++----- packages/dart/pubspec.yaml | 1 + 3 files changed, 32 insertions(+), 9 deletions(-) diff --git a/packages/dart/lib/parse_server_sdk.dart b/packages/dart/lib/parse_server_sdk.dart index 180f27372..35e29c6b9 100644 --- a/packages/dart/lib/parse_server_sdk.dart +++ b/packages/dart/lib/parse_server_sdk.dart @@ -13,6 +13,8 @@ import 'package:path/path.dart' as path; import 'package:sembast/sembast.dart'; import 'package:sembast/sembast_io.dart'; import 'package:sembast_web/sembast_web.dart'; +import 'package:timezone/browser.dart'; +import 'package:timezone/data/latest.dart'; import 'package:uuid/uuid.dart'; import 'package:web_socket_channel/web_socket_channel.dart'; import 'package:xxtea/xxtea.dart'; diff --git a/packages/dart/lib/src/objects/parse_installation.dart b/packages/dart/lib/src/objects/parse_installation.dart index b5e73b6e7..2a64d05f7 100644 --- a/packages/dart/lib/src/objects/parse_installation.dart +++ b/packages/dart/lib/src/objects/parse_installation.dart @@ -7,11 +7,11 @@ class ParseInstallation extends ParseObject { ParseClient? client, bool? autoSendSessionId, }) : super( - keyClassInstallation, - client: client, - autoSendSessionId: autoSendSessionId, - debug: debug, - ); + keyClassInstallation, + client: client, + autoSendSessionId: autoSendSessionId, + debug: debug, + ); ParseInstallation.forQuery() : super(keyClassUser); @@ -85,6 +85,7 @@ class ParseInstallation extends ParseObject { set(keyLocaleIdentifier, ParseCoreData().locale); //Timezone + set(keyTimeZone, _getNameLocalTimeZone()); //App info set(keyAppName, ParseCoreData().appName); @@ -93,6 +94,25 @@ class ParseInstallation extends ParseObject { set(keyParseVersion, keySdkVersion); } + String _getNameLocalTimeZone() { + initializeTimeZones(); + var locations = timeZoneDatabase.locations; + + int milliseconds = DateTime.now().timeZoneOffset.inMilliseconds; + String name = ""; + + locations.forEach((key, value) { + for (var element in value.zones) { + if (element.offset == milliseconds) { + name = value.name; + break; + } + } + }); + + return name; + } + @override Future create({bool allowCustomObjectId = false}) async { final bool isCurrent = await ParseInstallation.isCurrent(this); @@ -101,7 +121,7 @@ class ParseInstallation extends ParseObject { } final ParseResponse parseResponse = - await _create(allowCustomObjectId: allowCustomObjectId); + await _create(allowCustomObjectId: allowCustomObjectId); if (parseResponse.success && isCurrent) { clearUnsavedChanges(); await saveInStorage(keyParseStoreInstallation); @@ -130,11 +150,11 @@ class ParseInstallation extends ParseObject { final CoreStore coreStore = ParseCoreData().getStore(); final String? installationJson = - await coreStore.getString(keyParseStoreInstallation); + await coreStore.getString(keyParseStoreInstallation); if (installationJson != null) { final Map? installationMap = - json.decode(installationJson); + json.decode(installationJson); if (installationMap != null) { return ParseInstallation()..fromJson(installationMap); @@ -232,7 +252,7 @@ class ParseInstallation extends ParseObject { Future> getSubscribedChannels() async { print('getSubscribedChannels'); final ParseResponse apiResponse = - await ParseObject(keyClassInstallation).getObject(objectId!); + await ParseObject(keyClassInstallation).getObject(objectId!); if (apiResponse.success) { final ParseObject installation = apiResponse.result; diff --git a/packages/dart/pubspec.yaml b/packages/dart/pubspec.yaml index e642205d6..08359962f 100644 --- a/packages/dart/pubspec.yaml +++ b/packages/dart/pubspec.yaml @@ -22,6 +22,7 @@ dependencies: meta: ^1.7.0 path: ^1.8.1 mime_type: ^1.0.0 + timezone: ^0.9.0 dev_dependencies: lints: ^1.0.1 From 63cf831b1e0908a3d32be7c348247fe326270f5d Mon Sep 17 00:00:00 2001 From: mbfakourii Date: Thu, 22 Dec 2022 16:48:22 +0330 Subject: [PATCH 2/9] fix code format --- .../lib/src/objects/parse_installation.dart | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/dart/lib/src/objects/parse_installation.dart b/packages/dart/lib/src/objects/parse_installation.dart index 2a64d05f7..8caf7da2e 100644 --- a/packages/dart/lib/src/objects/parse_installation.dart +++ b/packages/dart/lib/src/objects/parse_installation.dart @@ -7,11 +7,11 @@ class ParseInstallation extends ParseObject { ParseClient? client, bool? autoSendSessionId, }) : super( - keyClassInstallation, - client: client, - autoSendSessionId: autoSendSessionId, - debug: debug, - ); + keyClassInstallation, + client: client, + autoSendSessionId: autoSendSessionId, + debug: debug, + ); ParseInstallation.forQuery() : super(keyClassUser); @@ -121,7 +121,7 @@ class ParseInstallation extends ParseObject { } final ParseResponse parseResponse = - await _create(allowCustomObjectId: allowCustomObjectId); + await _create(allowCustomObjectId: allowCustomObjectId); if (parseResponse.success && isCurrent) { clearUnsavedChanges(); await saveInStorage(keyParseStoreInstallation); @@ -150,11 +150,11 @@ class ParseInstallation extends ParseObject { final CoreStore coreStore = ParseCoreData().getStore(); final String? installationJson = - await coreStore.getString(keyParseStoreInstallation); + await coreStore.getString(keyParseStoreInstallation); if (installationJson != null) { final Map? installationMap = - json.decode(installationJson); + json.decode(installationJson); if (installationMap != null) { return ParseInstallation()..fromJson(installationMap); @@ -252,7 +252,7 @@ class ParseInstallation extends ParseObject { Future> getSubscribedChannels() async { print('getSubscribedChannels'); final ParseResponse apiResponse = - await ParseObject(keyClassInstallation).getObject(objectId!); + await ParseObject(keyClassInstallation).getObject(objectId!); if (apiResponse.success) { final ParseObject installation = apiResponse.result; From df23ce43134b5c15ce3193d96e7dfdea0691ec73 Mon Sep 17 00:00:00 2001 From: mbfakourii Date: Thu, 22 Dec 2022 16:59:21 +0330 Subject: [PATCH 3/9] fix to json for use externally --- packages/dart/lib/src/objects/parse_installation.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/dart/lib/src/objects/parse_installation.dart b/packages/dart/lib/src/objects/parse_installation.dart index 8caf7da2e..7dfb3f689 100644 --- a/packages/dart/lib/src/objects/parse_installation.dart +++ b/packages/dart/lib/src/objects/parse_installation.dart @@ -109,7 +109,6 @@ class ParseInstallation extends ParseObject { } } }); - return name; } From 9981101de709fdf7ace4277cbf7c026ce031da82 Mon Sep 17 00:00:00 2001 From: mbfakourii Date: Thu, 22 Dec 2022 17:06:00 +0330 Subject: [PATCH 4/9] fix for tests --- packages/dart/lib/parse_server_sdk.dart | 4 ++-- packages/dart/lib/src/objects/parse_installation.dart | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/dart/lib/parse_server_sdk.dart b/packages/dart/lib/parse_server_sdk.dart index 35e29c6b9..1e03ddcf1 100644 --- a/packages/dart/lib/parse_server_sdk.dart +++ b/packages/dart/lib/parse_server_sdk.dart @@ -13,8 +13,8 @@ import 'package:path/path.dart' as path; import 'package:sembast/sembast.dart'; import 'package:sembast/sembast_io.dart'; import 'package:sembast_web/sembast_web.dart'; -import 'package:timezone/browser.dart'; -import 'package:timezone/data/latest.dart'; +import 'package:timezone/data/latest.dart' as tz; +import 'package:timezone/timezone.dart' as tz; import 'package:uuid/uuid.dart'; import 'package:web_socket_channel/web_socket_channel.dart'; import 'package:xxtea/xxtea.dart'; diff --git a/packages/dart/lib/src/objects/parse_installation.dart b/packages/dart/lib/src/objects/parse_installation.dart index 7dfb3f689..12c891849 100644 --- a/packages/dart/lib/src/objects/parse_installation.dart +++ b/packages/dart/lib/src/objects/parse_installation.dart @@ -95,8 +95,8 @@ class ParseInstallation extends ParseObject { } String _getNameLocalTimeZone() { - initializeTimeZones(); - var locations = timeZoneDatabase.locations; + tz.initializeTimeZones(); + var locations = tz.timeZoneDatabase.locations; int milliseconds = DateTime.now().timeZoneOffset.inMilliseconds; String name = ""; From 97a9f6ffb936e61b3842b60acc561a16e6917877 Mon Sep 17 00:00:00 2001 From: mbfakourii Date: Fri, 13 Jan 2023 10:15:20 +0330 Subject: [PATCH 5/9] add test --- .../dart/test/parse_installation_test.dart | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 packages/dart/test/parse_installation_test.dart diff --git a/packages/dart/test/parse_installation_test.dart b/packages/dart/test/parse_installation_test.dart new file mode 100644 index 000000000..4d6e69b3f --- /dev/null +++ b/packages/dart/test/parse_installation_test.dart @@ -0,0 +1,33 @@ +import 'package:parse_server_sdk/parse_server_sdk.dart'; +import 'package:test/test.dart'; + +void main() { + test('should return true for exist TimeZone.', () async { + // arrange + await Parse().initialize( + 'appId', + 'https://example.com', + debug: true, + // to prevent automatic detection + fileDirectory: 'someDirectory', + // to prevent automatic detection + appName: 'appName', + // to prevent automatic detection + appPackageName: 'somePackageName', + // to prevent automatic detection + appVersion: 'someAppVersion', + ); + + // act + final ParseInstallation installation = + await ParseInstallation.currentInstallation(); + + dynamic actualHasTimeZoneResult = installation.containsKey(keyTimeZone); + dynamic actualRealTimeZoneResult = + installation[keyTimeZone].toString().contains("/"); + + // assert + expect(actualHasTimeZoneResult, true); + expect(actualRealTimeZoneResult, true); + }); +} From 77e377225d08b7a762b41a6f8fdeb98618922759 Mon Sep 17 00:00:00 2001 From: mbfakourii Date: Fri, 13 Jan 2023 10:22:08 +0330 Subject: [PATCH 6/9] fix test --- packages/dart/test/parse_installation_test.dart | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/dart/test/parse_installation_test.dart b/packages/dart/test/parse_installation_test.dart index 4d6e69b3f..a4b637b24 100644 --- a/packages/dart/test/parse_installation_test.dart +++ b/packages/dart/test/parse_installation_test.dart @@ -23,11 +23,8 @@ void main() { await ParseInstallation.currentInstallation(); dynamic actualHasTimeZoneResult = installation.containsKey(keyTimeZone); - dynamic actualRealTimeZoneResult = - installation[keyTimeZone].toString().contains("/"); // assert expect(actualHasTimeZoneResult, true); - expect(actualRealTimeZoneResult, true); }); } From ab009fcc01dd7dc9ac1163e1843ba457df0788d5 Mon Sep 17 00:00:00 2001 From: mbfakourii Date: Sat, 14 Jan 2023 20:57:53 +0330 Subject: [PATCH 7/9] Bump version and add changes in CHANGELOG --- packages/dart/CHANGELOG.md | 6 ++++++ packages/dart/lib/src/base/parse_constants.dart | 2 +- packages/dart/pubspec.yaml | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/dart/CHANGELOG.md b/packages/dart/CHANGELOG.md index 43108dc67..67ca849ad 100644 --- a/packages/dart/CHANGELOG.md +++ b/packages/dart/CHANGELOG.md @@ -1,3 +1,9 @@ +## [3.2.1](https://github.com/parse-community/Parse-SDK-Flutter/compare/dart-3.1.9...dart-3.2.1) (2023-01-14) + +### Bug Fixes + +* Time zone data not set in `ParseInstallation` ([#811](https://github.com/parse-community/Parse-SDK-Flutter/pull/811)) + ## [3.1.9](https://github.com/parse-community/Parse-SDK-Flutter/compare/dart-3.1.8...dart-3.1.9) (2022-12-25) ### Bug Fixes diff --git a/packages/dart/lib/src/base/parse_constants.dart b/packages/dart/lib/src/base/parse_constants.dart index b0d26db62..017f82264 100644 --- a/packages/dart/lib/src/base/parse_constants.dart +++ b/packages/dart/lib/src/base/parse_constants.dart @@ -1,7 +1,7 @@ part of flutter_parse_sdk; // Library -const String keySdkVersion = '3.1.9'; +const String keySdkVersion = '3.2.1'; const String keyLibraryName = 'Flutter Parse SDK'; // End Points diff --git a/packages/dart/pubspec.yaml b/packages/dart/pubspec.yaml index cfd0fe1f0..cb803193b 100644 --- a/packages/dart/pubspec.yaml +++ b/packages/dart/pubspec.yaml @@ -1,6 +1,6 @@ name: parse_server_sdk description: Dart plugin for Parse Server, (https://parseplatform.org), (https://back4app.com) -version: 3.1.9 +version: 3.2.1 homepage: https://github.com/parse-community/Parse-SDK-Flutter environment: From d48de7035ea9746f39a4f42652504da7ff357e83 Mon Sep 17 00:00:00 2001 From: mbfakourii Date: Mon, 16 Jan 2023 10:24:01 +0330 Subject: [PATCH 8/9] fix version --- packages/dart/CHANGELOG.md | 2 +- packages/dart/lib/src/base/parse_constants.dart | 2 +- packages/dart/pubspec.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/dart/CHANGELOG.md b/packages/dart/CHANGELOG.md index 67ca849ad..b9e7cf0d4 100644 --- a/packages/dart/CHANGELOG.md +++ b/packages/dart/CHANGELOG.md @@ -1,4 +1,4 @@ -## [3.2.1](https://github.com/parse-community/Parse-SDK-Flutter/compare/dart-3.1.9...dart-3.2.1) (2023-01-14) +## [3.1.10](https://github.com/parse-community/Parse-SDK-Flutter/compare/dart-3.1.9...dart-3.1.10) (2023-01-16) ### Bug Fixes diff --git a/packages/dart/lib/src/base/parse_constants.dart b/packages/dart/lib/src/base/parse_constants.dart index 017f82264..016d2c150 100644 --- a/packages/dart/lib/src/base/parse_constants.dart +++ b/packages/dart/lib/src/base/parse_constants.dart @@ -1,7 +1,7 @@ part of flutter_parse_sdk; // Library -const String keySdkVersion = '3.2.1'; +const String keySdkVersion = '3.1.10'; const String keyLibraryName = 'Flutter Parse SDK'; // End Points diff --git a/packages/dart/pubspec.yaml b/packages/dart/pubspec.yaml index cb803193b..0fc53fbdc 100644 --- a/packages/dart/pubspec.yaml +++ b/packages/dart/pubspec.yaml @@ -1,6 +1,6 @@ name: parse_server_sdk description: Dart plugin for Parse Server, (https://parseplatform.org), (https://back4app.com) -version: 3.2.1 +version: 3.1.10 homepage: https://github.com/parse-community/Parse-SDK-Flutter environment: From d99c862bd88dbec0acd57dee7b671ac75da8f2d4 Mon Sep 17 00:00:00 2001 From: Manuel <5673677+mtrezza@users.noreply.github.com> Date: Mon, 16 Jan 2023 12:28:05 +0100 Subject: [PATCH 9/9] changelog --- packages/dart/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/dart/CHANGELOG.md b/packages/dart/CHANGELOG.md index b9e7cf0d4..324fd5f08 100644 --- a/packages/dart/CHANGELOG.md +++ b/packages/dart/CHANGELOG.md @@ -2,7 +2,7 @@ ### Bug Fixes -* Time zone data not set in `ParseInstallation` ([#811](https://github.com/parse-community/Parse-SDK-Flutter/pull/811)) +* Time zone data not set in `ParseInstallation` ([#96](https://github.com/parse-community/Parse-SDK-Flutter/issues/96)) ## [3.1.9](https://github.com/parse-community/Parse-SDK-Flutter/compare/dart-3.1.8...dart-3.1.9) (2022-12-25)