Skip to content

Commit 43d2b31

Browse files
committed
Perbaikan data lokal yang tidak sync ke server
Penyebabnya adalah karena di flow yang lama akan simpan datanya ke lokal jika datanya gagal dikirim ke server. Nah, masalahnya itu di sini dimana, respon gagalnya itu ternyata membutuhkan waktu yang agak lama sehingga state failure-nya terlanjur tertimpa oleh state yang lain. Jadi, solusinya adalah simpan dulu datanya ke lokal dan jika sukses terkirim barulah dihapus datanya di lokal.
1 parent e425ba8 commit 43d2b31

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

lib/feature/presentation/page/home/home_page.dart

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,6 @@ class _HomePageState extends State<HomePage> with TrayListener, WindowListener {
7777
var counterActivity = 0;
7878
DateTime? startTime;
7979
DateTime? finishTime;
80-
Track? trackEntity;
8180
DateTime? infoDateTime;
8281

8382
@override
@@ -329,9 +328,7 @@ class _HomePageState extends State<HomePage> with TrayListener, WindowListener {
329328
BlocListener<TrackingBloc, TrackingState>(
330329
listener: (context, state) {
331330
if (state is FailureTrackingState) {
332-
if (trackEntity != null) {
333-
trackDao.insertTrack(trackEntity!);
334-
}
331+
/* Nothing to do in here */
335332
} else if (state is SuccessCreateTimeTrackingState) {
336333
final files = state.files;
337334
for (final path in files) {
@@ -340,6 +337,8 @@ class _HomePageState extends State<HomePage> with TrayListener, WindowListener {
340337
file.deleteSync();
341338
}
342339
}
340+
final trackEntityId = state.trackEntityId;
341+
trackDao.deleteTrackById(trackEntityId);
343342
} else if (state is SuccessCronTrackingState) {
344343
// TODO: tampilkan info last sync at: 22:09 04 Jul 2023
345344
// TODO: info ini akan ditampilkan dibagian paling bawah sama seperti tampilan hubstaff
@@ -973,7 +972,7 @@ class _HomePageState extends State<HomePage> with TrayListener, WindowListener {
973972

974973
final activity = percentActivity.round();
975974

976-
trackEntity = Track(
975+
final trackEntity = Track(
977976
userId: userId,
978977
taskId: taskId!,
979978
startDate: formattedStartDateTime,
@@ -984,6 +983,7 @@ class _HomePageState extends State<HomePage> with TrayListener, WindowListener {
984983
projectName: selectedProject?.name ?? '',
985984
taskName: selectedTask?.name ?? '',
986985
);
986+
final trackEntityId = await trackDao.insertTrack(trackEntity);
987987

988988
trackingBloc.add(
989989
CreateTimeTrackingEvent(
@@ -996,6 +996,7 @@ class _HomePageState extends State<HomePage> with TrayListener, WindowListener {
996996
duration: durationInSeconds,
997997
files: files.split(','),
998998
),
999+
trackEntityId: trackEntityId,
9991000
),
10001001
);
10011002
}

0 commit comments

Comments
 (0)