checkNewDataToSendData function

dynamic checkNewDataToSendData()

Implementation

checkNewDataToSendData() async {
  SharedPreferences preferences = await SharedPreferences.getInstance();

  final DateTime nowTime = DateTime.now();
  final DateTime stopTime = DateTime.now() + Duration(hours: 24);
  late DateTime endTime;

  String? storedUserData1;
  String? storedUserData2;

  var content1;
  var content2;

  storedUserData1 = preferences.getString("UserData1");
  Map<String, dynamic> userMap1 = jsonDecode(storedUserData1!);
  content1 = DataClass.fromJson(userMap1);

  storedUserData2 = preferences.getString("UserData2");
  if (storedUserData2 == null) {
    content2 = DataClass(numOfTimesOpened: 0, timeSpend: 0, feedback: '');
    await setEndTime(time: stopTime);
  } else {
    Map<String, dynamic> userMap2 = jsonDecode(storedUserData2);
    content2 = DataClass.fromJson(userMap2);
  }

  String? gotTime = preferences.getString("EndTime");
  endTime = DateTime.parse(gotTime.toString());

  if (nowTime.isBefore(endTime)) {
    if (content1.numOfTimesOpened != content2.numOfTimesOpened ||
        content1.timeSpend != content2.timeSpend ||
        content1.feedback != content2.feedback) {
      var response = await http.get(Uri.parse(
          'https://gods-eye-doodlebug.herokuapp.com/ProjectOne/put/${content1.godsEyeID}/${content1.deviceID}/$storedUserData1'));
      await setUserData2(one: content1);
    }
  }
}