Skip to content

Commit

Permalink
Convert a lot of transactions from sync to async wherever possible #269
Browse files Browse the repository at this point in the history
  • Loading branch information
MrCsabaToth committed Jul 23, 2023
1 parent bf769b6 commit d3a2104
Show file tree
Hide file tree
Showing 26 changed files with 169 additions and 152 deletions.
16 changes: 8 additions & 8 deletions lib/import/csv_importer.dart
Original file line number Diff line number Diff line change
Expand Up @@ -567,8 +567,8 @@ class CSVImporter with PowerSpeedMixin {
);

final extendTuning = prefService.get<bool>(extendTuningTag) ?? extendTuningDefault;
database.writeTxnSync(() {
database.activitys.putSync(activity);
await database.writeTxn(() async {
await database.activitys.put(activity);
});

final numRow = _lines.length - _linePointer;
Expand Down Expand Up @@ -599,8 +599,8 @@ class CSVImporter with PowerSpeedMixin {
heartRate: int.tryParse(values[2]),
sport: activity.sport,
);
database.writeTxnSync(() {
database.records.putSync(record);
await database.writeTxn(() async {
await database.records.put(record);
});

_linePointer++;
Expand Down Expand Up @@ -723,8 +723,8 @@ class CSVImporter with PowerSpeedMixin {
SchwinnACPerformancePlus.extraCalorieFactor;
}
energy += dEnergy;
database.writeTxnSync(() {
database.records.putSync(record);
await database.writeTxn(() async {
await database.records.put(record);
});

timeStamp = timeStamp.add(recordDuration);
Expand Down Expand Up @@ -753,8 +753,8 @@ class CSVImporter with PowerSpeedMixin {
activity.calories = energy.round();
}

database.writeTxnSync(() {
database.activitys.putSync(activity);
await database.writeTxn(() async {
await database.activitys.put(activity);
});

return activity;
Expand Down
18 changes: 9 additions & 9 deletions lib/persistence/isar/db_utils.dart
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,10 @@ class DbUtils {
return database.workoutSummarys.countSync() > 0;
}

bool hasRecords(Id activityId) {
Future<bool> hasRecords(Id activityId) async {
return activityId != Isar.minId &&
activityId != Isar.autoIncrement &&
database.records.where().filter().activityIdEqualTo(activityId).countSync() > 0;
await database.records.where().filter().activityIdEqualTo(activityId).count() > 0;
}

Future<List<Record>> getRecords(Id activityId) async {
Expand Down Expand Up @@ -61,8 +61,8 @@ class DbUtils {
// Speed already should have powerFactor effect
double dD = (record.speed ?? 0.0) * DeviceDescriptor.kmh2ms * dT;
record.distance = record.distance! + dD;
database.writeTxnSync(() {
database.records.putSync(record);
await database.writeTxn(() async {
await database.records.put(record);
});
}
}
Expand All @@ -71,9 +71,9 @@ class DbUtils {
}

if ((previousRecord.distance ?? 0.0) > eps && (activity.distance < eps || force)) {
database.writeTxnSync(() {
activity.distance = previousRecord.distance!;
database.activitys.putSync(activity);
activity.distance = previousRecord.distance!;
await database.writeTxn(() async {
await database.activitys.put(activity);
});
}

Expand Down Expand Up @@ -186,8 +186,8 @@ class DbUtils {
}

if (updated > 0) {
database.writeTxnSync(() {
database.activitys.putSync(activity);
await database.writeTxn(() async {
await database.activitys.put(activity);
});
}

Expand Down
10 changes: 5 additions & 5 deletions lib/ui/activities.dart
Original file line number Diff line number Diff line change
Expand Up @@ -285,9 +285,9 @@ class ActivitiesScreenState extends State<ActivitiesScreen> with WidgetsBindingO
enableDrag: false,
);
if (sportPick != null) {
_database.writeTxnSync(() {
await _database.writeTxn(() async {
activity.sport = sportPick;
_database.activitys.putSync(activity);
await _database.activitys.put(activity);
});

setState(() {
Expand All @@ -311,9 +311,9 @@ class ActivitiesScreenState extends State<ActivitiesScreen> with WidgetsBindingO
confirm: TextButton(
child: const Text("Yes"),
onPressed: () async {
_database.writeTxnSync(() {
_database.records.filter().activityIdEqualTo(activity.id).deleteAllSync();
_database.activitys.deleteSync(activity.id);
await _database.writeTxn(() async {
await _database.records.filter().activityIdEqualTo(activity.id).deleteAll();
await _database.activitys.delete(activity.id);
setState(() {
_editCount++;
});
Expand Down
6 changes: 3 additions & 3 deletions lib/ui/calorie_tunes.dart
Original file line number Diff line number Diff line change
Expand Up @@ -88,9 +88,9 @@ class CalorieTunesScreenState extends State<CalorieTunesScreen> with WidgetsBind
middleText: 'Are you sure to delete this Tune?',
confirm: TextButton(
child: const Text("Yes"),
onPressed: () {
_database.writeTxnSync(() {
_database.calorieTunes.deleteSync(calorieTune.id);
onPressed: () async {
await _database.writeTxn(() async {
await _database.calorieTunes.delete(calorieTune.id);
setState(() {
_editCount++;
});
Expand Down
14 changes: 7 additions & 7 deletions lib/ui/device_usages.dart
Original file line number Diff line number Diff line change
Expand Up @@ -78,10 +78,10 @@ class DeviceUsagesScreenState extends State<DeviceUsagesScreen> with WidgetsBind
enableDrag: false,
);
if (sportPick != null) {
_database.writeTxnSync(() {
deviceUsage.sport = sportPick;
deviceUsage.time = DateTime.now();
_database.deviceUsages.putSync(deviceUsage);
deviceUsage.sport = sportPick;
deviceUsage.time = DateTime.now();
await _database.writeTxn(() async {
await _database.deviceUsages.put(deviceUsage);
setState(() {
_editCount++;
});
Expand All @@ -99,9 +99,9 @@ class DeviceUsagesScreenState extends State<DeviceUsagesScreen> with WidgetsBind
middleText: 'Are you sure to delete this Usage?',
confirm: TextButton(
child: const Text("Yes"),
onPressed: () {
_database.writeTxnSync(() {
_database.deviceUsages.deleteSync(deviceUsage.id);
onPressed: () async {
await _database.writeTxn(() async {
await _database.deviceUsages.delete(deviceUsage.id);
setState(() {
_editCount++;
});
Expand Down
26 changes: 13 additions & 13 deletions lib/ui/find_devices.dart
Original file line number Diff line number Diff line change
Expand Up @@ -633,8 +633,8 @@ class FindDevicesState extends State<FindDevicesScreen> {
manufacturer: advertisementDigest.manufacturer,
time: DateTime.now(),
);
database.writeTxnSync(() {
database.deviceUsages.putSync(deviceUsage!);
await database.writeTxn(() async {
await database.deviceUsages.put(deviceUsage!);
});
}
}
Expand Down Expand Up @@ -678,10 +678,10 @@ class FindDevicesState extends State<FindDevicesScreen> {

descriptor.sport = sportPick;
if (deviceUsage != null) {
database.writeTxnSync(() {
deviceUsage!.sport = sportPick;
deviceUsage.time = DateTime.now();
database.deviceUsages.putSync(deviceUsage);
deviceUsage.sport = sportPick;
deviceUsage.time = DateTime.now();
await database.writeTxn(() async {
await database.deviceUsages.put(deviceUsage!);
});
} else {
deviceUsage = DeviceUsage(
Expand All @@ -691,14 +691,14 @@ class FindDevicesState extends State<FindDevicesScreen> {
manufacturer: advertisementDigest.manufacturer,
time: DateTime.now(),
);
database.writeTxnSync(() {
database.deviceUsages.putSync(deviceUsage!);
await database.writeTxn(() async {
await database.deviceUsages.put(deviceUsage!);
});
}
} else {
descriptor.sport = deviceUsage.sport;
database.writeTxnSync(() {
database.deviceUsages.putSync(deviceUsage!);
await database.writeTxn(() async {
await database.deviceUsages.put(deviceUsage!);
});
}
}
Expand Down Expand Up @@ -761,9 +761,9 @@ class FindDevicesState extends State<FindDevicesScreen> {
if (success && navigate) {
if (deviceUsage != null) {
deviceUsage.manufacturerName = fitnessEquipment.manufacturerName;
database.writeTxnSync(() {
deviceUsage!.time = DateTime.now();
database.deviceUsages.putSync(deviceUsage);
deviceUsage.time = DateTime.now();
await database.writeTxn(() async {
await database.deviceUsages.put(deviceUsage!);
});
}

Expand Down
4 changes: 2 additions & 2 deletions lib/ui/import_form.dart
Original file line number Diff line number Diff line change
Expand Up @@ -183,8 +183,8 @@ class ImportFormState extends State<ImportForm> {
final workoutSummary = activity
.getWorkoutSummary(deviceDescriptor.manufacturerNamePart);
final database = Get.find<Isar>();
database.writeTxnSync(() {
database.workoutSummarys.putSync(workoutSummary);
await database.writeTxn(() async {
await database.workoutSummarys.put(workoutSummary);
});
}
} else {
Expand Down
6 changes: 3 additions & 3 deletions lib/ui/leaderboards/device_leaderboard.dart
Original file line number Diff line number Diff line change
Expand Up @@ -80,9 +80,9 @@ class DeviceLeaderboardScreenState extends State<DeviceLeaderboardScreen>
middleText: 'Are you sure to delete this entry?',
confirm: TextButton(
child: const Text("Yes"),
onPressed: () {
_database.writeTxnSync(() {
_database.workoutSummarys.deleteSync(workoutSummary.id);
onPressed: () async {
await _database.writeTxn(() async {
await _database.workoutSummarys.delete(workoutSummary.id);
setState(() {
_editCount++;
});
Expand Down
6 changes: 3 additions & 3 deletions lib/ui/leaderboards/sport_leaderboard.dart
Original file line number Diff line number Diff line change
Expand Up @@ -79,9 +79,9 @@ class SportLeaderboardScreenState extends State<SportLeaderboardScreen>
middleText: 'Are you sure to delete this entry?',
confirm: TextButton(
child: const Text("Yes"),
onPressed: () {
_database.writeTxnSync(() {
_database.workoutSummarys.deleteSync(workoutSummary.id);
onPressed: () async {
await _database.writeTxn(() async {
await _database.workoutSummarys.delete(workoutSummary.id);
setState(() {
_editCount++;
});
Expand Down
22 changes: 11 additions & 11 deletions lib/ui/parts/calorie_factor_tune.dart
Original file line number Diff line number Diff line change
Expand Up @@ -72,19 +72,19 @@ class CalorieFactorTuneBottomSheetState extends State<CalorieFactorTuneBottomShe
.sortByTimeDesc()
.findFirst();
if (calorieTune != null) {
database.writeTxnSync(() {
calorieTune.calorieFactor = calorieFactor;
database.calorieTunes.putSync(calorieTune);
calorieTune.calorieFactor = calorieFactor;
await database.writeTxn(() async {
await database.calorieTunes.put(calorieTune);
});
} else {
database.writeTxnSync(() {
final calorieTune = CalorieTune(
mac: widget.deviceId,
calorieFactor: calorieFactor,
hrBased: widget.hrBased,
time: DateTime.now(),
);
database.calorieTunes.putSync(calorieTune);
final calorieTune = CalorieTune(
mac: widget.deviceId,
calorieFactor: calorieFactor,
hrBased: widget.hrBased,
time: DateTime.now(),
);
await database.writeTxn(() async {
await database.calorieTunes.put(calorieTune);
});
}

Expand Down
22 changes: 11 additions & 11 deletions lib/ui/parts/calorie_override.dart
Original file line number Diff line number Diff line change
Expand Up @@ -85,19 +85,19 @@ class CalorieOverrideBottomSheetState extends State<CalorieOverrideBottomSheet>
.sortByTimeDesc()
.findFirst();
if (calorieTune != null) {
database.writeTxnSync(() {
calorieTune.calorieFactor = calorieFactor;
database.calorieTunes.putSync(calorieTune);
calorieTune.calorieFactor = calorieFactor;
await database.writeTxn(() async {
await database.calorieTunes.put(calorieTune);
});
} else {
database.writeTxnSync(() {
final calorieTune = CalorieTune(
mac: widget.deviceId,
calorieFactor: calorieFactor,
hrBased: widget.hrBased,
time: DateTime.now(),
);
database.calorieTunes.putSync(calorieTune);
final calorieTune = CalorieTune(
mac: widget.deviceId,
calorieFactor: calorieFactor,
hrBased: widget.hrBased,
time: DateTime.now(),
);
await database.writeTxn(() async {
await database.calorieTunes.put(calorieTune);
});
}
Get.back(result: calorieFactor);
Expand Down

0 comments on commit d3a2104

Please sign in to comment.