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

Commit 05471614 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Send Weather SmartspaceAction Intent to Weather Clock" into udc-qpr-dev

parents 9a4be2f6 194f4ea8
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)
            }