Skip to content

Commit

Permalink
fix: wait properly for avatar cache to be evicted
Browse files Browse the repository at this point in the history
close #73
  • Loading branch information
daniele-athome committed Aug 14, 2023
1 parent 0c07018 commit c5d6b2a
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 13 deletions.
10 changes: 5 additions & 5 deletions lib/helpers/config.dart
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ class AppConfig extends ChangeNotifier {
// load current aircraft
try {
final aircraftReader = await loadAircraft(_currentAircraftId!);
currentAircraft = aircraftReader.toAircraftData();
await setCurrentAircraft(aircraftReader.toAircraftData());
} catch (e) {
_log.info('Error loading current aircraft, cleaning everything ($e)');
_currentAircraftId = null;
Expand Down Expand Up @@ -147,7 +147,7 @@ class AppConfig extends ChangeNotifier {

AircraftData? get currentAircraft => _currentAircraft;

set currentAircraft(AircraftData? data) {
Future<void> setCurrentAircraft(AircraftData? data) async {
if (data != null) {
_log.fine('Switching aircraft: ${data.callSign}');
} else {
Expand Down Expand Up @@ -192,10 +192,10 @@ class AppConfig extends ChangeNotifier {
notifyListeners();
}

void _clearPictureCache() {
aircraftPicture.evict();
void _clearPictureCache() async {
await aircraftPicture.evict();
for (var name in pilotNames) {
getPilotAvatar(name).evict();
await getPilotAvatar(name).evict();
}
}
}
11 changes: 6 additions & 5 deletions lib/screens/about/about_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@ class _AboutScreenState extends State<AboutScreen> {
final userpass = value[0];
final downloadTask = downloadAircraftData(
_appConfig.currentAircraft!.url!, userpass, _downloadProvider)
.then<AircraftData?>((AircraftData aircraftData) {
_appConfig.currentAircraft = aircraftData;
.then<AircraftData?>((AircraftData aircraftData) async {
await _appConfig.setCurrentAircraft(aircraftData);
_appConfig.updateAircraft(aircraftData);
return aircraftData;
}).catchError((error, StackTrace? stacktrace) {
Expand Down Expand Up @@ -106,9 +106,10 @@ class _AboutScreenState extends State<AboutScreen> {
destructiveOk: true,
okCallback: () {
_appConfig.pilotName = null;
_appConfig.currentAircraft = null;
Navigator.of(context, rootNavigator: true)
.popAndPushNamed('aircraft-data');
_appConfig.setCurrentAircraft(null).whenComplete(() {
Navigator.of(context, rootNavigator: true)
.popAndPushNamed('aircraft-data');
});
},
);
}
Expand Down
4 changes: 2 additions & 2 deletions lib/screens/aircraft_select/aircraft_data_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,8 @@ class _SetAircraftDataScreenState extends State<SetAircraftDataScreen> {

final downloadTask = downloadAircraftData(
_aircraftUrl!, _aircraftPassword, downloadProvider)
.then<AircraftData?>((AircraftData aircraftData) {
appConfig.currentAircraft = aircraftData;
.then<AircraftData?>((AircraftData aircraftData) async {
await appConfig.setCurrentAircraft(aircraftData);
appConfig.addAircraft(aircraftData);
return aircraftData;
}).catchError((error, StackTrace? stacktrace) {
Expand Down
2 changes: 1 addition & 1 deletion screenshots/fake_data.dart
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ class FakeAppConfig extends AppConfig {
);
await reader.open();

currentAircraft = reader.toAircraftData();
await setCurrentAircraft(reader.toAircraftData());
}

}
Expand Down

0 comments on commit c5d6b2a

Please sign in to comment.