Verwenden Sie NowUIColoring, um NowWebTheme und NowChatTheme zu gestalten
Die NowUIColoring- Schnittstelle enthält alle Farben, die von allen NowSDK-Modulen verwendet werden.
Für Szenarien, in denen Sie ähnliche Farbvariablen in mehreren SDK-Modulen verwenden, können Sie die NowUIColoring -Schnittstelle implementieren. Mit dieser Schnittstelle können Sie Farbwerte überschreiben und dann diese Implementierung verwenden, um die nowUIColoring-Werte in den Designklassen NowWebTheme und NowChatThemezu überschreiben. Wenn Farbvariablen nicht überschrieben werden, verwendet die NowUIColoring- Schnittstelle die Standardfarben.
Das folgende Codebeispiel zeigt, wie Farben für eine Web-UI und eine Chat-UI überschrieben werden.
// 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
})
}
Hinweis zur Behandlung von dunklen Designs
Innerhalb der NowUIAdaptiveColor -Klasse können Sie beim Überschreiben von Farbvariablen in den Designklassen zwei Int-Werte Color übergeben, einen für das helle Design und einen für das dunkle Design. Der zweite Parameter, darkColor, ist optional. Wenn Sie keinen Farbwert übergeben, werden die Standardfarbwerte verwendet. Das verwendete Standarddesign (hell oder dunkel) basiert auf den Telefoneinstellungen des Benutzers.
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
})
}