summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdolfo Santiago <epoch@adol.pw>2023-11-22 06:08:17 +0100
committerAdolfo Santiago <epoch@adol.pw>2023-11-22 06:09:59 +0100
commit51ff9669e74273648fb4ba6ee4ccb54f8140f473 (patch)
tree2ed2388a9c5257fbf9b40cd787a73b7e52ec8189
parent4b50136fac8aa5c8d91c75e986ed6f5a0004315a (diff)
Fix sending toot service
-rw-r--r--husky/app/src/main/AndroidManifest.xml6
-rw-r--r--husky/app/src/main/java/com/keylesspalace/tusky/service/SendTootService.kt24
2 files changed, 24 insertions, 6 deletions
diff --git a/husky/app/src/main/AndroidManifest.xml b/husky/app/src/main/AndroidManifest.xml
index 5a4597b..786bd9e 100644
--- a/husky/app/src/main/AndroidManifest.xml
+++ b/husky/app/src/main/AndroidManifest.xml
@@ -3,6 +3,8 @@
xmlns:tools="http://schemas.android.com/tools"
package="com.keylesspalace.tusky">
+ <uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
+
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
@@ -223,7 +225,9 @@
</intent-filter>
</service>
- <service android:name=".service.SendTootService" />
+ <service
+ android:name=".service.SendTootService"
+ android:foregroundServiceType="dataSync" />
<service android:name=".service.StreamingService" />
diff --git a/husky/app/src/main/java/com/keylesspalace/tusky/service/SendTootService.kt b/husky/app/src/main/java/com/keylesspalace/tusky/service/SendTootService.kt
index 97e06df..cd188d8 100644
--- a/husky/app/src/main/java/com/keylesspalace/tusky/service/SendTootService.kt
+++ b/husky/app/src/main/java/com/keylesspalace/tusky/service/SendTootService.kt
@@ -28,7 +28,10 @@ import android.content.ClipData
import android.content.ClipDescription
import android.content.Context
import android.content.Intent
+import android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC
import android.os.Build
+import android.os.Build.VERSION
+import android.os.Build.VERSION_CODES
import android.os.IBinder
import android.os.Parcelable
import androidx.core.app.NotificationCompat
@@ -51,16 +54,16 @@ import com.keylesspalace.tusky.entity.NewStatus
import com.keylesspalace.tusky.entity.Status
import com.keylesspalace.tusky.network.MastodonApi
import com.keylesspalace.tusky.util.SaveTootHelper
+import java.util.Timer
+import java.util.TimerTask
+import java.util.concurrent.ConcurrentHashMap
+import java.util.concurrent.TimeUnit
import kotlinx.android.parcel.Parcelize
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
-import java.util.Timer
-import java.util.TimerTask
-import java.util.concurrent.ConcurrentHashMap
-import java.util.concurrent.TimeUnit
class SendTootService : Service(), KoinComponent {
@@ -117,7 +120,18 @@ class SendTootService : Service(), KoinComponent {
if (tootsToSend.size == 0 || Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
ServiceCompat.stopForeground(this, ServiceCompat.STOP_FOREGROUND_DETACH)
- startForeground(sendingNotificationId, builder.build())
+ if (VERSION.SDK_INT >= VERSION_CODES.Q) {
+ startForeground(
+ sendingNotificationId,
+ builder.build(),
+ FOREGROUND_SERVICE_TYPE_DATA_SYNC
+ )
+ } else {
+ startForeground(
+ sendingNotificationId,
+ builder.build()
+ )
+ }
} else {
notificationManager.notify(sendingNotificationId, builder.build())
}