mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-27 15:26:58 +00:00
Feature: Automatically change at a Glance text color based on wallpaper (#5944)
This commit is contained in:
@@ -1,12 +1,14 @@
|
||||
package app.lawnchair.smartspace
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.Color
|
||||
import android.util.SparseArray
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.viewpager.widget.PagerAdapter
|
||||
import app.lawnchair.smartspace.model.SmartspaceTarget
|
||||
import app.lawnchair.util.isWallpaperDark
|
||||
import com.android.launcher3.R
|
||||
import com.android.launcher3.util.Themes
|
||||
|
||||
@@ -71,7 +73,9 @@ class CardPagerAdapter(context: Context) : PagerAdapter() {
|
||||
val target = smartspaceTargets[viewHolder.position]
|
||||
val card = viewHolder.card
|
||||
card.setSmartspaceTarget(target, smartspaceTargets.size > 1)
|
||||
card.setPrimaryTextColor(currentTextColor)
|
||||
val isDark = isWallpaperDark(card.context)
|
||||
val dynamicColors = if (isDark) Color.WHITE else Color.BLACK
|
||||
card.setPrimaryTextColor(dynamicColors)
|
||||
}
|
||||
|
||||
override fun getCount() = smartspaceTargets.size
|
||||
|
||||
16
lawnchair/src/app/lawnchair/util/WallpaperUtils.kt
Normal file
16
lawnchair/src/app/lawnchair/util/WallpaperUtils.kt
Normal file
@@ -0,0 +1,16 @@
|
||||
package app.lawnchair.util
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.Color
|
||||
import app.lawnchair.wallpaper.WallpaperColorsCompat
|
||||
import app.lawnchair.wallpaper.WallpaperManagerCompat
|
||||
|
||||
fun isWallpaperDark(context: Context): Boolean {
|
||||
val wallpaperManager = WallpaperManagerCompat.INSTANCE.get(context)
|
||||
val colors: WallpaperColorsCompat? = wallpaperManager.wallpaperColors
|
||||
return colors?.primaryColor?.let { argb ->
|
||||
val darkness =
|
||||
1 - (0.299 * Color.red(argb) + 0.587 * Color.green(argb) + 0.114 * Color.blue(argb)) / 255
|
||||
darkness >= 0.5
|
||||
} ?: false
|
||||
}
|
||||
Reference in New Issue
Block a user