Skip to content

Commit 5d06959

Browse files
committed
nnbd support
1 parent 8d5058c commit 5d06959

8 files changed

+153
-154
lines changed

example/google_jsapi_picker_example.dart

+33-33
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,18 @@ import 'package:tekartik_google_jsapi_picker/picker.dart';
1313
import 'test_config.dart';
1414
import 'test_setup.dart';
1515

16-
GapiAuth2 gapiAuth;
17-
GooglePicker gpicker;
16+
GapiAuth2? gapiAuth;
17+
GooglePicker? gpicker;
1818

1919
Storage storage = window.localStorage;
2020

2121
String storageKeyPref = 'com.tekartik.google_jsapi_picker_example';
2222

23-
String storageGet(String key) {
23+
String? storageGet(String key) {
2424
return storage['$storageKeyPref.$key'];
2525
}
2626

27-
void storageSet(String key, String value) {
27+
void storageSet(String key, String? value) {
2828
var prefKey = '$storageKeyPref.$key';
2929
if (value == null) {
3030
storage.remove(prefKey);
@@ -39,12 +39,12 @@ String appMimeTypesKey = 'mime_types';
3939
String selectFolderEnabledKey = 'select_folder_enabled';
4040
String includeFoldersKey = 'include_folders';
4141

42-
Element pickResult;
43-
String _authToken;
44-
InputElement mimeTypesInput;
42+
Element? pickResult;
43+
String? _authToken;
44+
InputElement? mimeTypesInput;
4545

4646
void _pick() {
47-
final mimeTypesText = mimeTypesInput.value;
47+
final mimeTypesText = mimeTypesInput!.value!;
4848
storageSet(appMimeTypesKey, mimeTypesText);
4949

5050
final builder = PickerBuilder(gpicker);
@@ -59,12 +59,12 @@ void _pick() {
5959
print('includeFolders: $includeFolders');
6060
// use docs view for folder
6161
if (selectFolderEnabled || includeFolders) {
62-
final pickerDocsView = PickerDocsView(gpicker, gpicker.viewId.docs);
62+
final pickerDocsView = PickerDocsView(gpicker!, gpicker!.viewId.docs);
6363
pickerDocsView.selectFolderEnabled = true;
6464
pickerDocsView.includeFolders = true;
6565
pickerView = pickerDocsView;
6666
} else {
67-
pickerView = PickerView(gpicker, gpicker.viewId.docs);
67+
pickerView = PickerView(gpicker!, gpicker!.viewId.docs);
6868
}
6969
final mimeTypes = mimeTypesText.split(',');
7070
if (mimeTypes.isNotEmpty && mimeTypes[0].isNotEmpty) {
@@ -73,27 +73,27 @@ void _pick() {
7373

7474
builder.addView(pickerView);
7575

76-
builder.developerKey = appOptions.developerKey;
76+
builder.developerKey = appOptions!.developerKey;
7777
builder.oauthToken = _authToken;
7878
final uiPicker = builder.build();
7979
uiPicker.pick().then((PickerDataDocuments docs) {
80-
pickResult.innerHtml = docs.toString();
80+
pickResult!.innerHtml = docs.toString();
8181

8282
//pickResult.innerHtml = docs[0].id;
8383
});
8484
}
8585

8686
void pickerMain(String authToken) {
87-
authorizeResult.innerHtml = 'Authorize token $authToken';
87+
authorizeResult!.innerHtml = 'Authorize token $authToken';
8888
print('token: $authToken');
8989
_authToken = authToken;
9090

91-
final pickerForm = querySelector('form.app-picker');
91+
final pickerForm = querySelector('form.app-picker')!;
9292
pickResult = pickerForm.querySelector('.app-result');
9393
pickerForm.classes.remove('hidden');
9494
mimeTypesInput =
95-
pickerForm.querySelector('input#appInputMimeTypes') as InputElement;
96-
final pickButton = pickerForm.querySelector('button.app-pick');
95+
pickerForm.querySelector('input#appInputMimeTypes') as InputElement?;
96+
final pickButton = pickerForm.querySelector('button.app-pick')!;
9797

9898
final selectFolderEnabledInput = pickerForm
9999
.querySelector('#appInputSelectFolderEnabled') as CheckboxInputElement;
@@ -113,17 +113,17 @@ void pickerMain(String authToken) {
113113
storageSet(includeFoldersKey, includeFoldersInput.checked.toString());
114114
});
115115

116-
mimeTypesInput.value = storageGet(appMimeTypesKey);
116+
mimeTypesInput!.value = storageGet(appMimeTypesKey);
117117

118118
pickButton.onClick.listen((Event event) {
119119
event.preventDefault();
120120
_pick();
121121
});
122122
}
123123

124-
Element authorizeResult;
125-
BrowserOAuth2Flow auth2flow;
126-
AppOptions appOptions;
124+
Element? authorizeResult;
125+
BrowserOAuth2Flow? auth2flow;
126+
AppOptions? appOptions;
127127
final _setupLock = Lock();
128128

129129
Future configSetup() async {
@@ -133,7 +133,7 @@ Future configSetup() async {
133133
appOptions = await setup();
134134

135135
void _errorSetup() {
136-
authorizeResult.innerText = '''
136+
authorizeResult!.innerText = '''
137137
ERROR: Missing clientId, clientSecret or developerKey
138138
Create local.config.yaml from sample.local.config.yaml ($appOptions)''';
139139
}
@@ -142,13 +142,13 @@ Create local.config.yaml from sample.local.config.yaml ($appOptions)''';
142142
final clientSecret = appOptions?.clientSecret;
143143
if (clientId?.isNotEmpty != true ||
144144
clientSecret?.isNotEmpty != true ||
145-
appOptions.developerKey?.isNotEmpty != true) {
145+
appOptions!.developerKey?.isNotEmpty != true) {
146146
_errorSetup();
147147
return;
148148
}
149149

150150
var authClientId =
151-
ClientId(appOptions.clientId, appOptions.clientSecret);
151+
ClientId(appOptions!.clientId!, appOptions!.clientSecret);
152152
final scopes = <String>[GooglePicker.scopeDriveAppFile];
153153

154154
auth2flow?.close();
@@ -158,19 +158,19 @@ Create local.config.yaml from sample.local.config.yaml ($appOptions)''';
158158
}
159159
}
160160

161-
Future _authorize({bool auto}) async {
161+
Future _authorize({bool? auto}) async {
162162
auto ??= false;
163163
await configSetup();
164164

165-
var result = await auth2flow.runHybridFlow(immediate: auto);
165+
var result = await auth2flow!.runHybridFlow(immediate: auto);
166166
var oauthToken = result.credentials.accessToken.data;
167167
pickerMain(oauthToken);
168168
}
169169

170170
void authMain() {
171-
final authForm = querySelector('form.app-auth');
171+
final authForm = querySelector('form.app-auth')!;
172172
authForm.classes.remove('hidden');
173-
final authorizeButton = authForm.querySelector('button.app-authorize');
173+
final authorizeButton = authForm.querySelector('button.app-authorize')!;
174174

175175
authorizeResult = authForm.querySelector('.app-result');
176176
final autoAuthCheckbox =
@@ -193,24 +193,24 @@ void authMain() {
193193
}
194194
}
195195

196-
Element loadGapiResult;
196+
Element? loadGapiResult;
197197

198198
Future _loadPicker() async {
199-
loadGapiResult.innerHtml = 'loading Gapi...';
199+
loadGapiResult!.innerHtml = 'loading Gapi...';
200200
try {
201201
final gapi = await loadGapiPlatform();
202-
loadGapiResult.innerHtml = 'loading GooglePicker...';
202+
loadGapiResult!.innerHtml = 'loading GooglePicker...';
203203
gpicker = await loadPicker(gapi);
204-
loadGapiResult.innerHtml = 'GooglePicker loaded';
204+
loadGapiResult!.innerHtml = 'GooglePicker loaded';
205205
} catch (e) {
206-
loadGapiResult.innerHtml = 'load failed $e';
206+
loadGapiResult!.innerHtml = 'load failed $e';
207207
rethrow;
208208
}
209209
authMain();
210210
}
211211

212212
Future main() async {
213-
final loadGapiForm = querySelector('form.app-gapi');
213+
final loadGapiForm = querySelector('form.app-gapi')!;
214214
loadGapiResult = loadGapiForm.querySelector('.app-result');
215215

216216
await await _loadPicker();

example/test_config.dart

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ library test_config;
22

33
class AppOptions {
44
// The developer key needed for the picker API
5-
String developerKey;
5+
String? developerKey;
66
// The Client ID obtained from the Google Cloud Console.
7-
String clientId;
7+
String? clientId;
88
// The Client Secret obtained from the Google Cloud Console.
9-
String clientSecret;
9+
String? clientSecret;
1010

1111
AppOptions.fromMap(Map<String, dynamic> map) {
1212
developerKey = map['developerKey']?.toString();

example/test_setup.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import 'package:yaml/yaml.dart';
55

66
import 'test_config.dart';
77

8-
Future<AppOptions> setup() async {
8+
Future<AppOptions?> setup() async {
99
// Load javascript
1010
var client = BrowserClient();
1111

0 commit comments

Comments
 (0)