Clear upload locks on timeout
This commit is contained in:
parent
55decd001c
commit
ef808e764e
1 changed files with 12 additions and 7 deletions
|
@ -172,12 +172,7 @@ Future<bool> _isRunningInForeground() async {
|
|||
void _scheduleBGTaskKill(String taskId) async {
|
||||
if (await _isRunningInForeground()) {
|
||||
_logger.info("Found app in FG, committing seppuku.");
|
||||
await UploadLocksDB.instance.releaseLocksAcquiredByOwnerBefore(
|
||||
ProcessType.background.toString(),
|
||||
DateTime.now().microsecondsSinceEpoch);
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
prefs.remove(kLastBGTaskHeartBeatTime);
|
||||
BackgroundFetch.finish(taskId);
|
||||
await _killBGTask(taskId);
|
||||
return;
|
||||
}
|
||||
Future.delayed(kHeartBeatFrequency, () async {
|
||||
|
@ -185,6 +180,15 @@ void _scheduleBGTaskKill(String taskId) async {
|
|||
});
|
||||
}
|
||||
|
||||
Future<void> _killBGTask(String taskId) async {
|
||||
await UploadLocksDB.instance.releaseLocksAcquiredByOwnerBefore(
|
||||
ProcessType.background.toString(),
|
||||
DateTime.now().microsecondsSinceEpoch);
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
prefs.remove(kLastBGTaskHeartBeatTime);
|
||||
BackgroundFetch.finish(taskId);
|
||||
}
|
||||
|
||||
class EnteApp extends StatelessWidget with WidgetsBindingObserver {
|
||||
static const _homeWidget = const HomeWidget();
|
||||
|
||||
|
@ -224,7 +228,8 @@ class EnteApp extends StatelessWidget with WidgetsBindingObserver {
|
|||
), (String taskId) async {
|
||||
await _runInBackground(taskId);
|
||||
}, (taskId) {
|
||||
BackgroundFetch.finish(taskId);
|
||||
_logger.info("BG task timeout");
|
||||
_killBGTask(taskId);
|
||||
}).then((int status) {
|
||||
_logger.info('[BackgroundFetch] configure success: $status');
|
||||
}).catchError((e) {
|
||||
|
|
Loading…
Add table
Reference in a new issue