miuixPlatformDynamicColors function

Future<MiuixColors> miuixPlatformDynamicColors({
  1. required bool dark,
})

平台动态取色。对应 Kotlin expect fun platformDynamicColors(dark)

Android(及支持的平台):通过 DynamicColorPlugin.getAccentColor 读系统壁纸/主题 种子色,非空则用 miuixColorsFromSeed(TonalSpot + Spec2021,与原版壁纸路径一致)。 其他平台或读取失败:回退 miuixMonetSystemColors(固定种子 0xFF6750A4), 对应原版 skiko 的 = monetSystemColors(dark)

注意:与 Compose 同步的 @Composable 不同,平台通道是异步,故本函数返回 Future。UI 层(MiuixThemeController)在结果就绪前用 miuixMonetSystemColors 占位,避免闪烁。

Implementation

Future<MiuixColors> miuixPlatformDynamicColors({required bool dark}) async {
  try {
    final Color? seed = await DynamicColorPlugin.getAccentColor();
    if (seed != null) {
      return miuixColorsFromSeed(
        seed: seed,
        colorSpec: MiuixThemeColorSpec.spec2021,
        paletteStyle: MiuixThemePaletteStyle.tonalSpot,
        dark: dark,
      );
    }
  } catch (_) {
    // 平台不支持 / 通道异常:走下方固定种子回退。
  }
  return miuixMonetSystemColors(dark: dark);
}