logViews method
Implementation
Future<void> logViews(Map<String, dynamic> viewJson) async {
try {
var prefs = await SharedPreferences.getInstance();
String id = viewJson['id'];
int updatedAt = viewJson['updated_at'];
String key = id + updatedAt.toString();
bool? isLoggedAlready = sessionLogMap[key];
if (isLoggedAlready != null && isLoggedAlready) {
return;
}
sessionLogMap[key] = true;
// FirebaseService.logViewFirebase(viewJson);
Map<String, dynamic>? frequency = viewJson['frequency'];
if (frequency == null) {
return;
}
String? encodedMap = prefs.getString(key);
Map<String, dynamic> decodedMap;
if (encodedMap != null) {
decodedMap = json.decode(encodedMap);
int views = decodedMap['views'] ?? 0;
decodedMap['views'] = views + 1;
} else {
decodedMap = {
'views': 1,
};
decodedMap['firstViewedAt'] = DateTime
.now()
.millisecondsSinceEpoch;
}
logMap[key] = decodedMap;
prefs.setString(key, json.encode(decodedMap));
} catch(e) {
// print(e);
}
}