make sure we launch startForeground from the main thread

This commit is contained in:
tibbi 2022-05-19 10:30:45 +02:00
parent d77dd0e992
commit 732704c5d4
5 changed files with 17 additions and 5 deletions

View File

@ -63,7 +63,7 @@ android {
} }
dependencies { dependencies {
implementation 'com.github.SimpleMobileTools:Simple-Commons:c8c3073668' implementation 'com.github.SimpleMobileTools:Simple-Commons:0e71682b27'
implementation 'com.facebook.stetho:stetho:1.5.0' implementation 'com.facebook.stetho:stetho:1.5.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.3' implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
implementation 'com.shawnlin:number-picker:2.4.6' implementation 'com.shawnlin:number-picker:2.4.6'

View File

@ -8,6 +8,7 @@
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" /> <uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" />
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" /> <uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission <uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE" android:name="android.permission.ACCESS_NETWORK_STATE"

View File

@ -5,7 +5,9 @@ import android.app.NotificationManager
import android.app.Service import android.app.Service
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.os.Handler
import android.os.IBinder import android.os.IBinder
import android.os.Looper
import androidx.core.app.NotificationCompat import androidx.core.app.NotificationCompat
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import com.simplemobiletools.clock.R import com.simplemobiletools.clock.R
@ -110,7 +112,9 @@ class StopwatchService : Service() {
} }
fun startStopwatchService(context: Context) { fun startStopwatchService(context: Context) {
ContextCompat.startForegroundService(context, Intent(context, StopwatchService::class.java)) Handler(Looper.getMainLooper()).post {
ContextCompat.startForegroundService(context, Intent(context, StopwatchService::class.java))
}
} }
object StopwatchStopService object StopwatchStopService

View File

@ -6,7 +6,9 @@ import android.app.NotificationManager
import android.app.Service import android.app.Service
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.os.Handler
import android.os.IBinder import android.os.IBinder
import android.os.Looper
import androidx.core.app.NotificationCompat import androidx.core.app.NotificationCompat
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import com.simplemobiletools.clock.R import com.simplemobiletools.clock.R
@ -50,7 +52,10 @@ class TimerService : Service() {
firstTimer.label.isNotEmpty() -> getString(R.string.timer_single_notification_label_msg, firstTimer.label) firstTimer.label.isNotEmpty() -> getString(R.string.timer_single_notification_label_msg, firstTimer.label)
else -> resources.getQuantityString(R.plurals.timer_notification_msg, runningTimers.size, runningTimers.size) else -> resources.getQuantityString(R.plurals.timer_notification_msg, runningTimers.size, runningTimers.size)
} }
startForeground(TIMER_RUNNING_NOTIF_ID, notification(formattedDuration, contextText, firstTimer.id!!))
Handler(Looper.getMainLooper()).post {
startForeground(TIMER_RUNNING_NOTIF_ID, notification(formattedDuration, contextText, firstTimer.id!!))
}
} else { } else {
stopService() stopService()
} }
@ -109,7 +114,9 @@ class TimerService : Service() {
} }
fun startTimerService(context: Context) { fun startTimerService(context: Context) {
ContextCompat.startForegroundService(context, Intent(context, TimerService::class.java)) Handler(Looper.getMainLooper()).post {
ContextCompat.startForegroundService(context, Intent(context, TimerService::class.java))
}
} }
object TimerStopService object TimerStopService

View File

@ -1,7 +1,7 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules. // Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript { buildscript {
ext.kotlin_version = '1.6.20' ext.kotlin_version = '1.6.21'
repositories { repositories {
google() google()