summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/plugin/src/com/android/systemui/plugins/WeatherData.kt9
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceController.kt11
2 files changed, 17 insertions, 3 deletions
diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/WeatherData.kt b/packages/SystemUI/plugin/src/com/android/systemui/plugins/WeatherData.kt
index a4b1ceeebfa3..f83fa33caa04 100644
--- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/WeatherData.kt
+++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/WeatherData.kt
@@ -2,14 +2,18 @@ package com.android.systemui.plugins
import android.os.Bundle
import android.util.Log
+import android.view.View
import androidx.annotation.VisibleForTesting
+typealias WeatherTouchAction = (View) -> Unit
+
class WeatherData
constructor(
val description: String,
val state: WeatherStateIcon,
val useCelsius: Boolean,
val temperature: Int,
+ val touchAction: WeatherTouchAction? = null,
) {
companion object {
const val DEBUG = true
@@ -20,7 +24,7 @@ constructor(
@VisibleForTesting const val TEMPERATURE_KEY = "temperature"
private const val INVALID_WEATHER_ICON_STATE = -1
- fun fromBundle(extras: Bundle): WeatherData? {
+ fun fromBundle(extras: Bundle, touchAction: WeatherTouchAction? = null): WeatherData? {
val description = extras.getString(DESCRIPTION_KEY)
val state =
WeatherStateIcon.fromInt(extras.getInt(STATE_KEY, INVALID_WEATHER_ICON_STATE))
@@ -41,7 +45,8 @@ constructor(
description = description,
state = state,
useCelsius = extras.getBoolean(USE_CELSIUS_KEY),
- temperature = temperature
+ temperature = temperature,
+ touchAction = touchAction
)
if (DEBUG) {
Log.i(TAG, "Weather data parsed $result from $extras")
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceController.kt
index cf3903860e94..877846336562 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceController.kt
@@ -176,7 +176,16 @@ constructor(
now.isBefore(Instant.ofEpochMilli(t.expiryTimeMillis))
}
if (weatherTarget != null) {
- val weatherData = WeatherData.fromBundle(weatherTarget.baseAction.extras)
+ val clickIntent = weatherTarget.headerAction?.intent
+ val weatherData = WeatherData.fromBundle(weatherTarget.baseAction.extras, { v ->
+ if (!falsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) {
+ activityStarter.startActivity(
+ clickIntent,
+ true, /* dismissShade */
+ null,
+ false)
+ }
+ })
if (weatherData != null) {
keyguardUpdateMonitor.sendWeatherData(weatherData)
}