Skip to content

Commit d7d70f3

Browse files
committed
Update example
1 parent 99f8ea1 commit d7d70f3

File tree

2 files changed

+45
-34
lines changed

2 files changed

+45
-34
lines changed

example/lib/main.dart

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -45,22 +45,24 @@ void main() async {
4545
// Get registration method
4646
final registrationMethod = RegistrationMethod.loadFromEnvironment() ?? RegistrationMethod.env;
4747

48-
// if web, we use the requested registration method for firebase registration only
49-
if(registrationMethod == RegistrationMethod.firebase) {
50-
// Add firebase config here
51-
const options = FirebaseOptions(
52-
apiKey: '',
53-
appId: '',
54-
messagingSenderId: '',
55-
projectId: '',
56-
authDomain: '',
57-
databaseURL: '',
58-
storageBucket: '',
59-
measurementId: '',
60-
);
61-
// For web apps only
62-
await Firebase.initializeApp(options: options);
63-
}
48+
// Add firebase config here
49+
const options = FirebaseOptions(
50+
apiKey: '',
51+
appId: '',
52+
messagingSenderId: '',
53+
projectId: '',
54+
authDomain: '',
55+
databaseURL: '',
56+
storageBucket: '',
57+
measurementId: '',
58+
);
59+
60+
// For web apps only
61+
// ignore: body_might_complete_normally_catch_error
62+
await Firebase.initializeApp(options: options).catchError((error) {
63+
printDebug("Failed to initialise firebase $error");
64+
});
65+
6466
} else {
6567
// For Android, iOS - Firebase will search for google-services.json in android/app directory or GoogleService-Info.plist in ios/Runner directory respectively.
6668
await Firebase.initializeApp();

example/lib/screens/widgets/permissions_block.dart

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import 'dart:async';
22
import 'dart:io';
33

4+
import 'package:firebase_core/firebase_core.dart';
45
import 'package:firebase_messaging/firebase_messaging.dart';
6+
import 'package:flutter/foundation.dart';
57
import 'package:flutter/material.dart';
68
import 'package:twilio_voice/twilio_voice.dart';
79
import 'package:twilio_voice_example/screens/widgets/permission_tile.dart';
@@ -116,12 +118,13 @@ class _PermissionsBlockState extends State<PermissionsBlock> with WidgetsBinding
116118
_stateBluetooth = value;
117119
});
118120
}
121+
119122
//#endregion
120123

121124
@override
122125
void didChangeAppLifecycleState(AppLifecycleState state) {
123126
printDebug("AppLifecycleState: $state");
124-
if(_lastLifecycleState != state && state == AppLifecycleState.resumed) {
127+
if (_lastLifecycleState != state && state == AppLifecycleState.resumed) {
125128
_updatePermissions();
126129
}
127130
_lastLifecycleState = state;
@@ -189,7 +192,9 @@ class _PermissionsBlockState extends State<PermissionsBlock> with WidgetsBinding
189192
_tv.hasMicAccess().then((value) => setMicPermission = value);
190193
_tv.hasReadPhoneStatePermission().then((value) => setReadPhoneStatePermission = value);
191194
_tv.hasReadPhoneNumbersPermission().then((value) => setReadPhoneNumbersPermission = value);
192-
FirebaseMessaging.instance.requestPermission().then((value) => setBackgroundPermission = value.authorizationStatus == AuthorizationStatus.authorized);
195+
if (Firebase.apps.isNotEmpty) {
196+
FirebaseMessaging.instance.requestPermission().then((value) => setBackgroundPermission = value.authorizationStatus == AuthorizationStatus.authorized);
197+
}
193198
_tv.hasCallPhonePermission().then((value) => setCallPhonePermission = value);
194199
_tv.hasRegisteredPhoneAccount().then((value) => setPhoneAccountRegistered = value);
195200
_tv.isPhoneAccountEnabled().then((value) => setIsPhoneAccountEnabled = value);
@@ -266,22 +271,26 @@ class _PermissionsBlockState extends State<PermissionsBlock> with WidgetsBinding
266271
icon: Icons.mic,
267272
title: "Microphone",
268273
granted: _hasMicPermission,
269-
onRequestPermission: () => _tv.requestMicAccess(),
270-
),
271-
272-
PermissionTile(
273-
icon: Icons.notifications,
274-
title: "Notifications",
275-
granted: _hasBackgroundPermissions,
276274
onRequestPermission: () async {
277-
await FirebaseMessaging.instance.requestPermission();
278-
final settings = await FirebaseMessaging.instance.getNotificationSettings();
279-
setBackgroundPermission = settings.authorizationStatus == AuthorizationStatus.authorized;
275+
await _tv.requestMicAccess();
276+
setMicPermission = await _tv.hasMicAccess();
280277
},
281278
),
282279

280+
if (Firebase.apps.isNotEmpty)
281+
PermissionTile(
282+
icon: Icons.notifications,
283+
title: "Notifications",
284+
granted: _hasBackgroundPermissions,
285+
onRequestPermission: () async {
286+
await FirebaseMessaging.instance.requestPermission();
287+
final settings = await FirebaseMessaging.instance.getNotificationSettings();
288+
setBackgroundPermission = settings.authorizationStatus == AuthorizationStatus.authorized;
289+
},
290+
),
291+
283292
// if android
284-
if (Platform.isAndroid)
293+
if (!kIsWeb && Platform.isAndroid)
285294
PermissionTile(
286295
icon: Icons.phone,
287296
title: "Read Phone State",
@@ -293,7 +302,7 @@ class _PermissionsBlockState extends State<PermissionsBlock> with WidgetsBinding
293302
),
294303

295304
// if android
296-
if (Platform.isAndroid)
305+
if (!kIsWeb && Platform.isAndroid)
297306
PermissionTile(
298307
icon: Icons.phone,
299308
title: "Read Phone Numbers",
@@ -305,7 +314,7 @@ class _PermissionsBlockState extends State<PermissionsBlock> with WidgetsBinding
305314
),
306315

307316
// if android
308-
if (Platform.isAndroid)
317+
if (!kIsWeb && Platform.isAndroid)
309318
PermissionTile(
310319
icon: Icons.call_made,
311320
title: "Call Phone",
@@ -317,7 +326,7 @@ class _PermissionsBlockState extends State<PermissionsBlock> with WidgetsBinding
317326
),
318327

319328
// if android
320-
if (Platform.isAndroid)
329+
if (!kIsWeb && Platform.isAndroid)
321330
PermissionTile(
322331
icon: Icons.phonelink_setup,
323332
title: "Phone Account",
@@ -329,7 +338,7 @@ class _PermissionsBlockState extends State<PermissionsBlock> with WidgetsBinding
329338
),
330339

331340
// if android
332-
if (Platform.isAndroid)
341+
if (!kIsWeb && Platform.isAndroid)
333342
ListTile(
334343
enabled: _hasRegisteredPhoneAccount,
335344
dense: true,
@@ -365,4 +374,4 @@ class _PermissionsBlockState extends State<PermissionsBlock> with WidgetsBinding
365374
_subscription.cancel();
366375
super.dispose();
367376
}
368-
}
377+
}

0 commit comments

Comments
 (0)