From 107548aa36f5a3e47106344e31602e0dd92ed06a Mon Sep 17 00:00:00 2001 From: lollipopkit Date: Wed, 10 Apr 2024 08:20:00 +0800 Subject: [PATCH] fix: android widget id (#323) --- .../kotlin/tech/lolli/toolbox/widget/HomeWidget.kt | 13 +++++++++---- android/settings.gradle | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/android/app/src/main/kotlin/tech/lolli/toolbox/widget/HomeWidget.kt b/android/app/src/main/kotlin/tech/lolli/toolbox/widget/HomeWidget.kt index 8c2f7298..c88fb530 100644 --- a/android/app/src/main/kotlin/tech/lolli/toolbox/widget/HomeWidget.kt +++ b/android/app/src/main/kotlin/tech/lolli/toolbox/widget/HomeWidget.kt @@ -5,6 +5,7 @@ import android.appwidget.AppWidgetManager import android.appwidget.AppWidgetProvider import android.content.Context import android.content.Intent +import android.os.Build import android.view.View import android.widget.RemoteViews import kotlinx.coroutines.DelicateCoroutinesApi @@ -37,11 +38,16 @@ class HomeWidget : AppWidgetProvider() { val ids = intArrayOf(appWidgetId) intentUpdate.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, ids) + var flag = PendingIntent.FLAG_UPDATE_CURRENT + if (Build.VERSION_CODES.O <= Build.VERSION.SDK_INT) { + flag = PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE + } + val pendingUpdate: PendingIntent = PendingIntent.getBroadcast( context, appWidgetId, intentUpdate, - PendingIntent.FLAG_UPDATE_CURRENT) + flag) views.setOnClickPendingIntent(R.id.widget_container, pendingUpdate) if (url.isNullOrEmpty()) { @@ -69,11 +75,11 @@ class HomeWidget : AppWidgetProvider() { val disk = data.getString("disk") val net = data.getString("net") - GlobalScope.launch(Dispatchers.Main) { + GlobalScope.launch(Dispatchers.Main) main@ { // mem or disk is empty -> get status failed // (cpu | net) isEmpty -> data is not ready if (mem.isEmpty() || disk.isEmpty()) { - return@launch + return@main } views.setTextViewText(R.id.widget_name, server) @@ -82,7 +88,6 @@ class HomeWidget : AppWidgetProvider() { views.setTextViewText(R.id.widget_disk, disk) views.setTextViewText(R.id.widget_net, net) - // eg: 17:17 val timeStr = android.text.format.DateFormat.format("HH:mm", java.util.Date()).toString() views.setTextViewText(R.id.widget_time, timeStr) diff --git a/android/settings.gradle b/android/settings.gradle index 767b939b..168d6605 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -19,7 +19,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.3.0" apply false + id "com.android.application" version "7.4.2" apply false id "org.jetbrains.kotlin.android" version "1.8.10" apply false }