fix: android widget id (#323)

This commit is contained in:
lollipopkit
2024-04-10 08:20:00 +08:00
parent 4d58eafc19
commit 107548aa36
2 changed files with 10 additions and 5 deletions

View File

@@ -5,6 +5,7 @@ import android.appwidget.AppWidgetManager
import android.appwidget.AppWidgetProvider import android.appwidget.AppWidgetProvider
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.os.Build
import android.view.View import android.view.View
import android.widget.RemoteViews import android.widget.RemoteViews
import kotlinx.coroutines.DelicateCoroutinesApi import kotlinx.coroutines.DelicateCoroutinesApi
@@ -37,11 +38,16 @@ class HomeWidget : AppWidgetProvider() {
val ids = intArrayOf(appWidgetId) val ids = intArrayOf(appWidgetId)
intentUpdate.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, ids) 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( val pendingUpdate: PendingIntent = PendingIntent.getBroadcast(
context, context,
appWidgetId, appWidgetId,
intentUpdate, intentUpdate,
PendingIntent.FLAG_UPDATE_CURRENT) flag)
views.setOnClickPendingIntent(R.id.widget_container, pendingUpdate) views.setOnClickPendingIntent(R.id.widget_container, pendingUpdate)
if (url.isNullOrEmpty()) { if (url.isNullOrEmpty()) {
@@ -69,11 +75,11 @@ class HomeWidget : AppWidgetProvider() {
val disk = data.getString("disk") val disk = data.getString("disk")
val net = data.getString("net") val net = data.getString("net")
GlobalScope.launch(Dispatchers.Main) { GlobalScope.launch(Dispatchers.Main) main@ {
// mem or disk is empty -> get status failed // mem or disk is empty -> get status failed
// (cpu | net) isEmpty -> data is not ready // (cpu | net) isEmpty -> data is not ready
if (mem.isEmpty() || disk.isEmpty()) { if (mem.isEmpty() || disk.isEmpty()) {
return@launch return@main
} }
views.setTextViewText(R.id.widget_name, server) 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_disk, disk)
views.setTextViewText(R.id.widget_net, net) views.setTextViewText(R.id.widget_net, net)
// eg: 17:17
val timeStr = android.text.format.DateFormat.format("HH:mm", java.util.Date()).toString() val timeStr = android.text.format.DateFormat.format("HH:mm", java.util.Date()).toString()
views.setTextViewText(R.id.widget_time, timeStr) views.setTextViewText(R.id.widget_time, timeStr)

View File

@@ -19,7 +19,7 @@ pluginManagement {
plugins { plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0" 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 id "org.jetbrains.kotlin.android" version "1.8.10" apply false
} }