From 184391599b3b2946a485fc31e3b6896d2ab6f303 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Sat, 28 May 2022 01:48:39 +0530 Subject: Fix ClipboardService crash (#1928) * Fix clipboard service crash on API 31 * all: use ints directly for SDK version checks I much prefer it this way --- .../msfjarvis/aps/util/services/ClipboardService.kt | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'app/src/main/java/dev/msfjarvis/aps/util/services/ClipboardService.kt') diff --git a/app/src/main/java/dev/msfjarvis/aps/util/services/ClipboardService.kt b/app/src/main/java/dev/msfjarvis/aps/util/services/ClipboardService.kt index 580cd4b5..34c3a989 100644 --- a/app/src/main/java/dev/msfjarvis/aps/util/services/ClipboardService.kt +++ b/app/src/main/java/dev/msfjarvis/aps/util/services/ClipboardService.kt @@ -112,8 +112,17 @@ class ClipboardService : Service() { val clearTimeMs = clearTime * 1000L val clearIntent = Intent(this, ClipboardService::class.java).apply { action = ACTION_CLEAR } val pendingIntent = - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - PendingIntent.getForegroundService(this, 0, clearIntent, PendingIntent.FLAG_UPDATE_CURRENT) + if (Build.VERSION.SDK_INT >= 26) { + PendingIntent.getForegroundService( + this, + 0, + clearIntent, + if (Build.VERSION.SDK_INT >= 31) { + PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_MUTABLE + } else { + PendingIntent.FLAG_UPDATE_CURRENT + } + ) } else { PendingIntent.getService( this, @@ -127,7 +136,7 @@ class ClipboardService : Service() { ) } val notification = - if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) { + if (Build.VERSION.SDK_INT <= 23) { createNotificationApi23(pendingIntent) } else { createNotificationApi24(pendingIntent, clearTimeMs) @@ -148,7 +157,7 @@ class ClipboardService : Service() { .build() } - @RequiresApi(Build.VERSION_CODES.N) + @RequiresApi(24) private fun createNotificationApi24( pendingIntent: PendingIntent, clearTimeMs: Long @@ -167,7 +176,7 @@ class ClipboardService : Service() { } private fun createNotificationChannel() { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + if (Build.VERSION.SDK_INT >= 26) { val serviceChannel = NotificationChannel( CHANNEL_ID, -- cgit v1.2.3