Use NowUIColoring para o tema NowWebTheme e NowChatTheme

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. 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, é possível implementar a interface NowUIColoring. Usando esta 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 tema claro e outro para 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
      })
    }