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

Commit b7c747aa authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Merge cherrypicks of ['googleplex-android-review.googlesource.com/32742863',...

Merge cherrypicks of ['googleplex-android-review.googlesource.com/32742863', 'googleplex-android-review.googlesource.com/32747879'] into 25Q2-release.

Change-Id: Iec4b6aad886b7371007d9a58601a38e712ed5fd2
parents a3d56716 b5e56531
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -114,7 +114,4 @@
    <!-- By default ActivityOptions#makeScaleUpAnimation is only used between activities. This
     config enables OEMs to support its usage across tasks.-->
    <bool name="config_enableCrossTaskScaleUpAnimation">true</bool>

    <!-- The amount of friction applied to scrolls and flings. -->
    <item name="config_scrollFriction" format="float" type="dimen">0.023</item>
</resources>
+23 −5
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import android.view.View
import android.view.ViewOutlineProvider
import android.widget.RemoteViews
import android.widget.RemoteViews.RemoteResponse
import androidx.core.view.doOnLayout
import com.android.systemui.animation.LaunchableView
import com.android.systemui.animation.LaunchableViewDelegate

@@ -37,10 +38,7 @@ class CommunalAppWidgetHostView(
    private val interactionHandler: RemoteViews.InteractionHandler,
) : AppWidgetHostView(context, interactionHandler), LaunchableView {
    private val launchableViewDelegate =
        LaunchableViewDelegate(
            this,
            superSetVisibility = { super.setVisibility(it) },
        )
        LaunchableViewDelegate(this, superSetVisibility = { super.setVisibility(it) })

    // Mutable corner radius.
    var enforcedCornerRadius: Float
@@ -48,6 +46,9 @@ class CommunalAppWidgetHostView(
    // Mutable `Rect`. The size will be mutated when the widget is reapplied.
    var enforcedRectangle: Rect

    private var pendingUpdate: Boolean = false
    private var pendingRemoteViews: RemoteViews? = null

    init {
        enforcedCornerRadius = RoundedCornerEnforcement.computeEnforcedRadius(context)
        enforcedRectangle = Rect()
@@ -75,6 +76,23 @@ class CommunalAppWidgetHostView(
            }
        }

    override fun updateAppWidget(remoteViews: RemoteViews?) {
        // Workaround for Jetpack Compose bug which fails to render the widget if we add the
        // RemoteViews before this parent view has been laid out. Therefore we wait for layout
        // before calling the super.updateAppWidget() to actually render the widget.
        // See b/387938328
        pendingRemoteViews = remoteViews

        if (!pendingUpdate) {
            pendingUpdate = true
            doOnLayout {
                super.updateAppWidget(pendingRemoteViews)
                pendingRemoteViews = null
                pendingUpdate = false
            }
        }
    }

    private fun enforceRoundedCorners() {
        if (enforcedCornerRadius <= 0) {
            resetRoundedCorners()
@@ -116,7 +134,7 @@ class CommunalAppWidgetHostView(
            launcherApps.getMainActivityLaunchIntent(
                activityInfo.componentName,
                null,
                activityInfo.user
                activityInfo.user,
            )
        if (intent != null) {
            interactionHandler.onInteraction(view, intent, RemoteResponse.fromPendingIntent(intent))