Use NowUIColoring para o tema NowWebTheme e NowChatTheme

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 1 min. de leitura
  • A interface NowUIColoring contém todas as cores usadas por todos os módulos do NowSDK.

    Para cenários em que você usa variáveis de cor semelhantes em vários módulos do SDK, você pode implementar a interface NowUIColoring. Usando essa interface, você pode substituir valores de cor e usar essa implementação para substituir os valores nowUIColoring dentro das classes de tema NowWebTheme e NowChatTheme. Se as variáveis de cor não forem substituídas, a interface NowUIColoring usará as cores padrão.

    O exemplo de código a seguir mostra como substituir cores para uma IU da Web e uma IU de bate-papo.

    // Implement the NowUIColoring and override desired color variables
    val nowUIColoringImpl = object : NowUIColoring {
      override val brand: NowUIAdaptiveColor
        get() = NowUIAdaptiveColor(lightColor = Color.BLACK, darkColor = Color.WHITE)
    
      override val textPrimary: NowUIAdaptiveColor
        get() = NowUIAdaptiveColor(lightColor = Color.BLACK, darkColor = Color.WHITE)
    
      //override the rest of color variables
    
    }
    
    // Override the nowUIColoring for NowWeb value using the NowUIColoring implementation
    lifecycleScope.launch {
      sdkManager.getNowWebService()?.launch(this@MainActivity, URL("https://instance-name.service-now.com"), object : NowWebTheme {
        override val nowUIColoring: NowUIColoring
          get() = nowUIColoringImpl
      })
    }
    
    //Override the nowUIColoring for NowChat value using the NowUIColoring implementation
    lifecycleScope.launch {
      sdkManager.getNowChatService()?.start(this@MainActivity, object : NowChatTheme {
        override val nowUIColoring: NowUIColoring
          get() = nowUIColoringImpl
      })
    }

    Observação sobre manipulação de tema escuro

    Dentro da classe NowUIAdaptiveColor, ao substituir variáveis de cor nas classes de tema, você pode passar dois valores Int Color, um para o tema claro e outro para o tema escuro. O segundo parâmetro, darkColor, é opcional. Se você não passar um valor de cor, os valores de cor padrão serão usados. O tema padrão usado, claro ou escuro, é baseado na configuração do telefone do usuário.

    lifecycleScope.launch {
      sdkManager.getNowWebService()?.launch(this@MainActivity, URL("https://instance-name.service-now.com"), object : NowWebTheme {
        override val brand: NowUIAdaptiveColor
          //Setting lightColor only. For dark theme, default color are used.
          get() = NowUIAdaptiveColor(lightColor = Color.BLACK)
    
        override val primary: NowUIAdaptiveColor
          //Setting both lightColor and darkColor
          get() = NowUIAdaptiveColor(lightColor = Color.BLACK, darkColor = Color.WHITE)
    
        // Override the rest of color variables
      })
    }