Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 194f4ea8 authored by Hawkwood Glazier's avatar Hawkwood Glazier
Browse files

Send Weather SmartspaceAction Intent to Weather Clock

Bug: 288264660
Test: Validated Weather clock launched correct intent
Change-Id: I1c2b800895782577d2a0b1b7b12dca5839640cdd
parent 41ec4ba6
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -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")
+10 −1
Original line number Diff line number Diff line
@@ -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)
            }