Skip to content

Commit dd0f598

Browse files
committed
Merged all changes from current parse-community#434
1 parent 372f5a9 commit dd0f598

19 files changed

+1401
-2080
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
## 1.0.28
2+
3+
14
## 1.0.27
25
User login / signUp / loginAnonymous delete SessionId stored in device before calling server
36

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
This is a Dart package that allows communication with a Parse Server, (https://parseplatform.org) either hosted on your own server or another, like (http://Back4App.com).
66

77
This project is based on the [Parse SDK for Flutter](https://github.com/parse-community/Parse-SDK-Flutter) (version 1.0.27) and tries to provide a way of accessing the Parse Server in a Dart project,
8-
while keeping the as similar to the original repository as possible.
8+
while keeping the as similar to the original repository as possible.
99

1010
This project is absolutely work in progress. Please let us know if you think anything needs changing/adding, and more than ever, please do join in on this project. (Even if it is just to improve our documentation)
1111

lib/parse_server_sdk_dart.dart

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,15 @@ import 'dart:typed_data';
99
import 'package:http/http.dart';
1010
import 'package:http/io_client.dart';
1111
import 'package:meta/meta.dart';
12+
import 'package:parse_server_sdk/src/network/parse_websocket.dart'
13+
as parse_web_socket;
1214
import 'package:path/path.dart' as path;
1315
import 'package:sembast/sembast.dart';
1416
import 'package:sembast/sembast_io.dart';
1517
import 'package:uuid/uuid.dart';
18+
import 'package:web_socket_channel/web_socket_channel.dart';
1619
import 'package:xxtea/xxtea.dart';
1720

18-
export 'src/network/parse_live_query.dart'
19-
if (dart.library.js) 'src/network/parse_live_query_web.dart';
20-
export 'src/utils/parse_live_list.dart';
21-
2221
part 'package:parse_server_sdk/src/data/core_store.dart';
2322
part 'package:parse_server_sdk/src/data/parse_subclass_handler.dart';
2423
part 'package:parse_server_sdk/src/objects/response/parse_error_response.dart';
@@ -27,12 +26,13 @@ part 'package:parse_server_sdk/src/objects/response/parse_response_builder.dart'
2726
part 'package:parse_server_sdk/src/objects/response/parse_response_utils.dart';
2827
part 'package:parse_server_sdk/src/objects/response/parse_success_no_results.dart';
2928
part 'package:parse_server_sdk/src/storage/core_store_sem_impl.dart';
30-
part 'package:parse_server_sdk/src/storage/core_store_sp_impl.dart';
3129
part 'package:parse_server_sdk/src/storage/xxtea_codec.dart';
3230
part 'src/base/parse_constants.dart';
3331
part 'src/data/parse_core_data.dart';
3432
part 'src/enums/parse_enum_api_rq.dart';
33+
part 'src/network/parse_connectivity.dart';
3534
part 'src/network/parse_http_client.dart';
35+
part 'src/network/parse_live_query.dart';
3636
part 'src/network/parse_query.dart';
3737
part 'src/objects/parse_acl.dart';
3838
part 'src/objects/parse_base.dart';
@@ -58,6 +58,7 @@ part 'src/utils/parse_file_extensions.dart';
5858
part 'src/utils/parse_logger.dart';
5959
part 'src/utils/parse_login_helpers.dart';
6060
part 'src/utils/parse_utils.dart';
61+
part 'src/utils/parse_live_list.dart';
6162

6263
class Parse {
6364
ParseCoreData data;
@@ -69,17 +70,20 @@ class Parse {
6970
///
7071
/// ```
7172
/// Parse().initialize(
72-
// "PARSE_APP_ID",
73-
// "https://parse.myaddress.com/parse/,
74-
// masterKey: "asd23rjh234r234r234r",
75-
// debug: true,
76-
// liveQuery: true);
77-
// ```
73+
/// "PARSE_APP_ID",
74+
/// "https://parse.myaddress.com/parse/,
75+
/// masterKey: "asd23rjh234r234r234r",
76+
/// debug: true,
77+
/// liveQuery: true);
78+
/// ```
7879
Future<Parse> initialize(
7980
String appId,
8081
String serverUrl, {
8182
bool debug = false,
82-
String appName = '',
83+
String appName,
84+
String appVersion,
85+
String appPackageName,
86+
String locale,
8387
String liveQueryUrl,
8488
String clientKey,
8589
String masterKey,
@@ -91,6 +95,9 @@ class Parse {
9195
ParseUserConstructor parseUserConstructor,
9296
ParseFileConstructor parseFileConstructor,
9397
List<int> liveListRetryIntervals,
98+
ParseConnectivityProvider connectivityProvider,
99+
String fileDirectory,
100+
Stream<void> appResumedStream,
94101
}) async {
95102
final String url = removeTrailingSlash(serverUrl);
96103

@@ -99,6 +106,9 @@ class Parse {
99106
url,
100107
debug: debug,
101108
appName: appName,
109+
appVersion: appVersion,
110+
appPackageName: appPackageName,
111+
locale: locale,
102112
liveQueryUrl: liveQueryUrl,
103113
masterKey: masterKey,
104114
clientKey: clientKey,
@@ -110,6 +120,9 @@ class Parse {
110120
parseUserConstructor: parseUserConstructor,
111121
parseFileConstructor: parseFileConstructor,
112122
liveListRetryIntervals: liveListRetryIntervals,
123+
connectivityProvider: connectivityProvider,
124+
fileDirectory: fileDirectory,
125+
appResumedStream: appResumedStream,
113126
);
114127

115128
_hasBeenInitialized = true;

lib/src/base/parse_constants.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
part of dart_parse_sdk;
22

33
// Library
4-
const String keySdkVersion = '1.0.27';
4+
const String keySdkVersion = '1.0.28';
55
const String keyLibraryName = 'Flutter Parse SDK';
66

77
// End Points

lib/src/data/parse_core_data.dart

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ class ParseCoreData {
1919
String serverUrl, {
2020
bool debug,
2121
String appName,
22+
String appVersion,
23+
String appPackageName,
24+
String locale,
2225
String liveQueryUrl,
2326
String masterKey,
2427
String clientKey,
@@ -30,18 +33,32 @@ class ParseCoreData {
3033
ParseUserConstructor parseUserConstructor,
3134
ParseFileConstructor parseFileConstructor,
3235
List<int> liveListRetryIntervals,
36+
ParseConnectivityProvider connectivityProvider,
37+
String fileDirectory,
38+
Stream<void> appResumedStream,
3339
}) async {
3440
_instance = ParseCoreData._init(appId, serverUrl);
3541

36-
_instance.storage ??=
37-
store ?? await CoreStoreSembastImp.getInstance(password: masterKey);
42+
assert(_instance.storage != null || store != null,
43+
'There is no CoreStore set.');
44+
45+
_instance.storage ??= store;
3846

3947
if (debug != null) {
4048
_instance.debug = debug;
4149
}
4250
if (appName != null) {
4351
_instance.appName = appName;
4452
}
53+
if (appVersion != null) {
54+
_instance.appVersion = appVersion;
55+
}
56+
if (appPackageName != null) {
57+
_instance.appPackageName = appPackageName;
58+
}
59+
if (locale != null) {
60+
_instance.locale = locale;
61+
}
4562
if (liveQueryUrl != null) {
4663
_instance.liveQueryURL = liveQueryUrl;
4764
}
@@ -73,10 +90,25 @@ class ParseCoreData {
7390
parseUserConstructor: parseUserConstructor,
7491
parseFileConstructor: parseFileConstructor,
7592
);
93+
94+
if (connectivityProvider != null) {
95+
_instance.connectivityProvider = connectivityProvider;
96+
}
97+
98+
if (fileDirectory != null) {
99+
_instance.fileDirectory = fileDirectory;
100+
}
101+
102+
if(appResumedStream!= null){
103+
_instance.appResumedStream = appResumedStream;
104+
}
76105
}
77106

78107
String appName;
108+
String appVersion;
109+
String appPackageName;
79110
String applicationId;
111+
String locale;
80112
String serverUrl;
81113
String liveQueryURL;
82114
String masterKey;
@@ -88,6 +120,9 @@ class ParseCoreData {
88120
CoreStore storage;
89121
ParseSubClassHandler _subClassHandler;
90122
List<int> liveListRetryIntervals;
123+
ParseConnectivityProvider connectivityProvider;
124+
String fileDirectory;
125+
Stream<void> appResumedStream;
91126

92127
void registerSubClass(
93128
String className, ParseObjectConstructor objectConstructor) {
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
part of dart_parse_sdk;
2+
3+
/// Connection status check result.
4+
enum ParseConnectivityResult {
5+
/// WiFi: Device connected via Wi-Fi
6+
wifi,
7+
8+
/// Mobile: Device connected to cellular network
9+
mobile,
10+
11+
/// None: Device not connected to any network
12+
none
13+
}
14+
15+
abstract class ParseConnectivityProvider {
16+
Future<ParseConnectivityResult> checkConnectivity();
17+
Stream<ParseConnectivityResult> get connectivityStream;
18+
}

0 commit comments

Comments
 (0)