Utiliser NowUIColoring pour le thème NowWebTheme et NowChatTheme
L’interface NowUIColoring contient toutes les couleurs utilisées par tous les modules NowSDK.
Pour les scénarios où 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ème 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: Int
get() = Color.BLUE
override val textPrimary: Int
get() = Color.WHITE
//override the rest of color variables
}
// Override the nowUIColoring for NowWeb value using the NowUIColoring implementation
lifecycleScope.launch {
sdkManager.getNowWebService()?.launch(activity, 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(activity, object : NowChatTheme {
override val nowUIColoring: NowUIColoring
get() = nowUIColoringImpl
})
}
Prise en charge du thème foncé
Pour prendre en charge un thème sombre dans Now Chat, vous pouvez soit fournir votre propre implémentation de thème sombre de NowChatTheme et l’utiliser dans les fonctions NowChatService.start() et NowChatService.updateTheme(). Vous pouvez également utiliser une classe NowChatThemeDark qui implémente l’interface NowChatTheme avec des couleurs de thème foncé par défaut. Vous pouvez également utiliser cette classe comme base pour votre implémentation personnalisée de thème sombre.
val chatService = serviceManager.getNowChatService()
val chatThemeLight = object : NowChatTheme {
override val backgroundPrimary: Int
get() = Color.WHITE
override val textPrimary: Int
get() = Color.BLACK
// Override remaining theme colors
}
//create dark theme using the NowChatThemeDark class
val chatThemeDark = object : NowChatThemeDark(){
override val backgroundPrimary: Int
get() = Color.BLACK
override val textPrimary: Int
get() = Color.WHITE
// Override remaining theme colors
}
//start NowChat with light theme
chatService?.start(activity, chatThemeLight)
//update NowChat theme to dark theme
chatService?.updateTheme(chatThemeDark)