From 5031e3394e4c09eff07144bc50f89391cdbad1ea Mon Sep 17 00:00:00 2001
From: Adrien Beraud <adrien.beraud@savoirfairelinux.com>
Date: Tue, 25 Mar 2025 14:11:33 -0400
Subject: [PATCH] services: handle onTimeout

Change-Id: I87a3b2162e6f28cda1def80ac1986d2ff11a6ee5
---
 .../app/src/main/java/cx/ring/service/SyncService.kt  | 11 +++++++++++
 .../main/java/cx/ring/services/DataTransferService.kt |  8 ++++++++
 2 files changed, 19 insertions(+)

diff --git a/jami-android/app/src/main/java/cx/ring/service/SyncService.kt b/jami-android/app/src/main/java/cx/ring/service/SyncService.kt
index 88f94e3b2..7191c2ead 100644
--- a/jami-android/app/src/main/java/cx/ring/service/SyncService.kt
+++ b/jami-android/app/src/main/java/cx/ring/service/SyncService.kt
@@ -105,6 +105,17 @@ class SyncService : Service() {
         }
     }
 
+    override fun onTimeout(startId: Int, fgsType: Int) {
+        Log.w(TAG, "onTimeout: startId=$startId, fgsType=$fgsType")
+        try {
+            stopForeground(true)
+            stopSelf()
+        } catch (ignored: IllegalStateException) {
+        }
+        notification = null
+        serviceUsers = 0
+    }
+
     override fun onBind(intent: Intent): IBinder? = null
 
     companion object {
diff --git a/jami-android/app/src/main/java/cx/ring/services/DataTransferService.kt b/jami-android/app/src/main/java/cx/ring/services/DataTransferService.kt
index 524fafe32..b763486e2 100644
--- a/jami-android/app/src/main/java/cx/ring/services/DataTransferService.kt
+++ b/jami-android/app/src/main/java/cx/ring/services/DataTransferService.kt
@@ -109,6 +109,14 @@ class DataTransferService : Service() {
         super.onCreate()
     }
 
+    override fun onTimeout(startId: Int, fgsType: Int) {
+        try {
+            stopForeground(true)
+            stopSelf()
+        } catch (ignored: IllegalStateException) {
+        }
+    }
+
     override fun onDestroy() {
         Log.d(TAG, "OnDestroy(), DataTransferService has been destroyed")
         super.onDestroy()
-- 
GitLab