From 0d75a616203cdc08ecbd31b73addc3fb014e2591 Mon Sep 17 00:00:00 2001 From: Rocka Date: Fri, 9 May 2025 20:57:19 +0800 Subject: [PATCH] switch to ViewOutlineProvider.BACKGROUND --- .../fcitx5/android/input/CandidatesView.kt | 23 +++---------------- app/src/main/res/values/strings.xml | 2 +- 2 files changed, 4 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/org/fcitx/fcitx5/android/input/CandidatesView.kt b/app/src/main/java/org/fcitx/fcitx5/android/input/CandidatesView.kt index 51d9d320..2cd59110 100644 --- a/app/src/main/java/org/fcitx/fcitx5/android/input/CandidatesView.kt +++ b/app/src/main/java/org/fcitx/fcitx5/android/input/CandidatesView.kt @@ -7,9 +7,7 @@ package org.fcitx.fcitx5.android.input import android.annotation.SuppressLint import android.graphics.drawable.GradientDrawable -import android.graphics.Outline import android.os.Build -import android.view.View import android.view.ViewGroup import android.view.ViewOutlineProvider import android.view.ViewTreeObserver.OnGlobalLayoutListener @@ -26,7 +24,6 @@ import org.fcitx.fcitx5.android.data.theme.Theme import org.fcitx.fcitx5.android.input.candidates.floating.PagedCandidatesUi import org.fcitx.fcitx5.android.input.preedit.PreeditUi import splitties.dimensions.dp -import splitties.views.backgroundColor import splitties.views.dsl.constraintlayout.below import splitties.views.dsl.constraintlayout.bottomOfParent import splitties.views.dsl.constraintlayout.centerHorizontally @@ -191,27 +188,13 @@ class CandidatesView( minWidth = dp(windowMinWidth) padding = dp(windowPadding) - val shapeDrawable = GradientDrawable().apply { + background = GradientDrawable().apply { + setColor(theme.backgroundColor) shape = GradientDrawable.RECTANGLE cornerRadius = dp(windowRadius).toFloat() - setColor(theme.backgroundColor) } - background = shapeDrawable clipToOutline = true - outlineProvider = object : ViewOutlineProvider() { - override fun getOutline(view: View, outline: Outline) { - val paddingPx = dp(windowPadding) - val radiusPx = dp(windowRadius) - val effectiveRadius = (radiusPx - paddingPx).toFloat().coerceAtLeast(0f) - outline.setRoundRect( - paddingPx.toInt(), - paddingPx.toInt(), - (view.width - paddingPx).toInt(), - (view.height - paddingPx).toInt(), - effectiveRadius - ) - } - } + outlineProvider = ViewOutlineProvider.BACKGROUND add(preeditUi.root, lParams(wrapContent, wrapContent) { topOfParent() startOfParent() diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e1bb30d7..669434c6 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -270,7 +270,7 @@ Crop Candidates Window Show candidates window - candidates window radius + Candidates window radius Depends on input device Candidates list orientation Automatic