Utiliser NowUIColoring pour le thème NowWebTheme et NowChatTheme

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 1 minute de lecture
  • L’interface NowUIColoring contient toutes les couleurs utilisées par tous les modules NowSDK.

    Pour les scénarios dans lesquels vous utilisez des variables de couleur similaires dans plusieurs modules SDK, vous pouvez implémenter l’interface NowUIColoring . À l’aide de cette interface, vous pouvez remplacer les valeurs de couleur, puis utiliser cette implémentation pour remplacer les valeurs nowUIColoring dans les classes de thèmes NowWebTheme et NowChatTheme. Si les variables de couleur ne sont pas remplacées, l’interface NowUIColoring utilise les couleurs par défaut.

    L’exemple de code suivant montre comment remplacer les couleurs pour une interface utilisateur Web et une interface utilisateur de messagerie instantanée.

    // 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
      })
    }

    Remarque sur la gestion des thèmes foncés

    Dans la classe NowUIAdaptiveColor , lors du remplacement des variables de couleur dans les classes de thème, vous pouvez transmettre deux valeurs Int Color , l’une pour le thème clair et l’autre pour le thème foncé. Le deuxième paramètre, darkColor, est facultatif. Si vous ne transmettez pas de valeur de couleur, les valeurs de couleur par défaut sont utilisées. Le thème par défaut utilisé, clair ou foncé, est basé sur les paramètres du téléphone de l’utilisateur.

    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
      })
    }