Skip to content

Commit 0bf6c66

Browse files
committed
Handle firebase exceptions
1 parent cc5a3b7 commit 0bf6c66

File tree

5 files changed

+60
-36
lines changed

5 files changed

+60
-36
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
- Use "Ӿ" currency symbol
2+
- Add Bengali language
3+
- Android 12 compatibility
4+
- General fixes & improvements

lib/appstate_container.dart

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -687,9 +687,16 @@ class StateContainerState extends State<StateContainer> {
687687
wallet.address != null &&
688688
Address(wallet.address).isValid()) {
689689
String uuid = await sl.get<SharedPrefsUtil>().getUuid();
690-
String fcmToken = await FirebaseMessaging.instance.getToken();
691-
bool notificationsEnabled =
692-
await sl.get<SharedPrefsUtil>().getNotificationsOn();
690+
String fcmToken;
691+
bool notificationsEnabled;
692+
try {
693+
fcmToken = await FirebaseMessaging.instance.getToken();
694+
notificationsEnabled =
695+
await sl.get<SharedPrefsUtil>().getNotificationsOn();
696+
} catch (e) {
697+
fcmToken = null;
698+
notificationsEnabled = false;
699+
}
693700
sl.get<AccountService>().clearQueue();
694701
sl.get<AccountService>().queueRequest(SubscribeRequest(
695702
account: wallet.address,
@@ -788,9 +795,16 @@ class StateContainerState extends State<StateContainer> {
788795
wallet.address != null &&
789796
Address(wallet.address).isValid()) {
790797
String uuid = await sl.get<SharedPrefsUtil>().getUuid();
791-
String fcmToken = await FirebaseMessaging.instance.getToken();
792-
bool notificationsEnabled =
793-
await sl.get<SharedPrefsUtil>().getNotificationsOn();
798+
String fcmToken;
799+
bool notificationsEnabled;
800+
try {
801+
fcmToken = await FirebaseMessaging.instance.getToken();
802+
notificationsEnabled =
803+
await sl.get<SharedPrefsUtil>().getNotificationsOn();
804+
} catch (e) {
805+
fcmToken = null;
806+
notificationsEnabled = false;
807+
}
794808
sl.get<AccountService>().removeSubscribeHistoryPendingFromQueue();
795809
sl.get<AccountService>().queueRequest(SubscribeRequest(
796810
account: wallet.address,

lib/ui/home_page.dart

Lines changed: 28 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -153,32 +153,36 @@ class _AppHomePageState extends State<AppHomePage>
153153
}
154154

155155
void getNotificationPermissions() async {
156-
NotificationSettings settings = await _firebaseMessaging.requestPermission(
157-
sound: true, badge: true, alert: true);
158-
if (settings.alert == AppleNotificationSetting.enabled ||
159-
settings.badge == AppleNotificationSetting.enabled ||
160-
settings.sound == AppleNotificationSetting.enabled ||
161-
settings.authorizationStatus == AuthorizationStatus.authorized) {
162-
sl.get<SharedPrefsUtil>().getNotificationsSet().then((beenSet) {
163-
if (!beenSet) {
164-
sl.get<SharedPrefsUtil>().setNotificationsOn(true);
165-
}
166-
});
167-
_firebaseMessaging.getToken().then((String token) {
168-
if (token != null) {
169-
EventTaxiImpl.singleton().fire(FcmUpdateEvent(token: token));
170-
}
171-
});
172-
} else {
173-
sl.get<SharedPrefsUtil>().setNotificationsOn(false).then((_) {
156+
try {
157+
NotificationSettings settings = await _firebaseMessaging
158+
.requestPermission(sound: true, badge: true, alert: true);
159+
if (settings.alert == AppleNotificationSetting.enabled ||
160+
settings.badge == AppleNotificationSetting.enabled ||
161+
settings.sound == AppleNotificationSetting.enabled ||
162+
settings.authorizationStatus == AuthorizationStatus.authorized) {
163+
sl.get<SharedPrefsUtil>().getNotificationsSet().then((beenSet) {
164+
if (!beenSet) {
165+
sl.get<SharedPrefsUtil>().setNotificationsOn(true);
166+
}
167+
});
174168
_firebaseMessaging.getToken().then((String token) {
175-
EventTaxiImpl.singleton().fire(FcmUpdateEvent(token: token));
169+
if (token != null) {
170+
EventTaxiImpl.singleton().fire(FcmUpdateEvent(token: token));
171+
}
176172
});
177-
});
178-
}
179-
String token = await _firebaseMessaging.getToken();
180-
if (token != null) {
181-
EventTaxiImpl.singleton().fire(FcmUpdateEvent(token: token));
173+
} else {
174+
sl.get<SharedPrefsUtil>().setNotificationsOn(false).then((_) {
175+
_firebaseMessaging.getToken().then((String token) {
176+
EventTaxiImpl.singleton().fire(FcmUpdateEvent(token: token));
177+
});
178+
});
179+
}
180+
String token = await _firebaseMessaging.getToken();
181+
if (token != null) {
182+
EventTaxiImpl.singleton().fire(FcmUpdateEvent(token: token));
183+
}
184+
} catch (e) {
185+
sl.get<SharedPrefsUtil>().setNotificationsOn(false);
182186
}
183187
}
184188

lib/ui/settings/settings_drawer.dart

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1651,10 +1651,12 @@ class _SettingsSheetState extends State<SettingsSheet>
16511651
sl
16521652
.get<SharedPrefsUtil>()
16531653
.setNotificationsOn(false)
1654-
.then((_) {
1655-
FirebaseMessaging.instance
1656-
.getToken()
1657-
.then((fcmToken) {
1654+
.then((_) async {
1655+
try {
1656+
String fcmToken =
1657+
await FirebaseMessaging.instance.getToken();
1658+
EventTaxiImpl.singleton()
1659+
.fire(FcmUpdateEvent(token: fcmToken));
16581660
EventTaxiImpl.singleton()
16591661
.fire(FcmUpdateEvent(token: fcmToken));
16601662
// Delete all data
@@ -1668,7 +1670,7 @@ class _SettingsSheetState extends State<SettingsSheet>
16681670
'/', (Route<dynamic> route) => false);
16691671
});
16701672
});
1671-
});
1673+
} catch (e) {}
16721674
});
16731675
});
16741676
});

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ description: Natrium - Fast, Robust & Secure NANO Wallet.
66
# followed by an optional build number separated by a +.
77
# Both the version and the builder number may be overridden in flutter
88
# build by specifying --build-name and --build-number, respectively.
9-
version: 2.4.4+82
9+
version: 2.4.5+83
1010

1111
environment:
1212
sdk: ">=2.11.99 <3.0.0"

0 commit comments

Comments
 (0)