|
1 | 1 | import 'dart:async'; |
2 | 2 |
|
3 | 3 | import 'package:flutter/foundation.dart'; |
| 4 | +import 'package:flutter_it/flutter_it.dart'; |
4 | 5 | import 'package:logging/logging.dart'; |
5 | 6 | import 'package:school_data_hub_flutter/common/services/notification_service.dart'; |
6 | 7 | import 'package:shorebird_code_push/shorebird_code_push.dart'; |
7 | | -import 'package:flutter_it/flutter_it.dart'; |
8 | 8 |
|
9 | 9 | /// Update status with additional context |
10 | 10 | enum UpdateManagerStatus { |
@@ -78,19 +78,7 @@ class ShorebirdUpdateManager extends ChangeNotifier { |
78 | 78 | _startAutoCheck(); |
79 | 79 | } |
80 | 80 |
|
81 | | - final updateAvailable = await checkForUpdates(); |
82 | | - if (updateAvailable) { |
83 | | - di<NotificationService>().showSnackBar( |
84 | | - NotificationType.info, |
85 | | - 'Ein Update wird heruntergeladen...', |
86 | | - ); |
87 | | - _setStatus(UpdateManagerStatus.updateAvailable); |
88 | | - await _updater.update(track: _currentTrack); |
89 | | - |
90 | | - di<NotificationService>().showInformationDialog( |
91 | | - 'Ein Update ist verfügbar. Bitte installieren Sie es, um die neueste Version der App zu verwenden.', |
92 | | - ); |
93 | | - } |
| 81 | + await checkForUpdates(); |
94 | 82 |
|
95 | 83 | _log.info('ShorebirdUpdateManager initialized successfully'); |
96 | 84 | } catch (error, stackTrace) { |
@@ -142,17 +130,13 @@ class ShorebirdUpdateManager extends ChangeNotifier { |
142 | 130 | 'Ein Update wird heruntergeladen...', |
143 | 131 | ); |
144 | 132 | await _updater.update(track: _currentTrack); |
145 | | - di<NotificationService>().showInformationDialog( |
146 | | - 'Ein Update wurde installiert. Bitte starten Sie die App neu, um die neueste Version der App zu verwenden.', |
147 | | - ); |
| 133 | + _showRestartRequiredDialog(); |
148 | 134 | _setStatus(UpdateManagerStatus.restartRequired); |
149 | 135 | return true; |
150 | 136 |
|
151 | 137 | case UpdateStatus.restartRequired: |
152 | 138 | _log.info('Restart required to apply update'); |
153 | | - di<NotificationService>().showInformationDialog( |
154 | | - 'Ein Update wurde installiert. Bitte starten Sie die App neu, um die neueste Version der App zu verwenden.', |
155 | | - ); |
| 139 | + _showRestartRequiredDialog(); |
156 | 140 | _setStatus(UpdateManagerStatus.restartRequired); |
157 | 141 | return false; |
158 | 142 |
|
@@ -322,4 +306,10 @@ class ShorebirdUpdateManager extends ChangeNotifier { |
322 | 306 | _autoCheckTimer?.cancel(); |
323 | 307 | _autoCheckTimer = null; |
324 | 308 | } |
| 309 | + |
| 310 | + void _showRestartRequiredDialog() { |
| 311 | + di<NotificationService>().showInformationDialog( |
| 312 | + 'Ein Update wurde installiert. Bitte starten Sie die App neu, um die neueste Version der App zu verwenden.', |
| 313 | + ); |
| 314 | + } |
325 | 315 | } |
0 commit comments