verifyLoginStateAndLoadData function
- required bool currentIsLoggedIn,
Verifies login state and returns appropriate places.
Implementation
Future<VerifyLoginResult> verifyLoginStateAndLoadData({
required bool currentIsLoggedIn,
}) async {
final actuallyLoggedIn = await isUserLoggedIn();
final loginStateChanged = currentIsLoggedIn != actuallyLoggedIn;
if (loginStateChanged) {
authStateNotifier.value = actuallyLoggedIn;
PlacesService.clearCache();
}
final cm = PlacesCacheManager();
final cached = cm.allPlaces;
final cacheState = cm.wasLoggedInWhenCached;
List<Place>? places;
bool needsRefresh = false;
if (cached != null && cacheState == actuallyLoggedIn) {
places = List.from(cached);
} else {
if (cached != null && cacheState != actuallyLoggedIn) {
PlacesService.clearCache();
}
needsRefresh = true;
}
return VerifyLoginResult(
actuallyLoggedIn: actuallyLoggedIn,
loginStateChanged: loginStateChanged,
places: places,
needsRefresh: needsRefresh,
);
}