From eb967fbf7d0d36b807091e8d3e69e37969589bcb Mon Sep 17 00:00:00 2001 From: Andy Scherzinger Date: Thu, 28 Jul 2022 16:37:18 +0200 Subject: [PATCH] harden theming calculations to handle null values Signed-off-by: Andy Scherzinger --- .../com/nextcloud/talk/ui/theme/ServerThemeImpl.kt | 12 ++++++------ .../nextcloud/talk/ui/theme/ServerThemeProvider.kt | 2 +- .../talk/ui/theme/ServerThemeProviderImpl.kt | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/ui/theme/ServerThemeImpl.kt b/app/src/main/java/com/nextcloud/talk/ui/theme/ServerThemeImpl.kt index 6d4c5f47f..0ad068eac 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/theme/ServerThemeImpl.kt +++ b/app/src/main/java/com/nextcloud/talk/ui/theme/ServerThemeImpl.kt @@ -27,7 +27,7 @@ import android.content.Context import com.nextcloud.talk.R import com.nextcloud.talk.models.json.capabilities.ThemingCapability -internal class ServerThemeImpl(context: Context, themingCapability: ThemingCapability) : +internal class ServerThemeImpl(context: Context, themingCapability: ThemingCapability?) : ServerTheme { override val primaryColor: Int @@ -37,12 +37,12 @@ internal class ServerThemeImpl(context: Context, themingCapability: ThemingCapab override val colorText: Int init { - primaryColor = ColorUtil.getPrimaryColor(context, themingCapability.color, R.color.colorPrimary) + primaryColor = ColorUtil.getPrimaryColor(context, themingCapability?.color, R.color.colorPrimary) - colorElement = ColorUtil.getNullsafeColor(themingCapability.colorElement, primaryColor) - colorElementBright = ColorUtil.getNullsafeColor(themingCapability.colorElementBright, primaryColor) - colorElementDark = ColorUtil.getNullsafeColor(themingCapability.colorElementDark, primaryColor) + colorElement = ColorUtil.getNullsafeColor(themingCapability?.colorElement, primaryColor) + colorElementBright = ColorUtil.getNullsafeColor(themingCapability?.colorElementBright, primaryColor) + colorElementDark = ColorUtil.getNullsafeColor(themingCapability?.colorElementDark, primaryColor) - colorText = ColorUtil.getTextColor(context, themingCapability.colorText, primaryColor) + colorText = ColorUtil.getTextColor(context, themingCapability?.colorText, primaryColor) } } diff --git a/app/src/main/java/com/nextcloud/talk/ui/theme/ServerThemeProvider.kt b/app/src/main/java/com/nextcloud/talk/ui/theme/ServerThemeProvider.kt index 1d299ca7b..274616432 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/theme/ServerThemeProvider.kt +++ b/app/src/main/java/com/nextcloud/talk/ui/theme/ServerThemeProvider.kt @@ -26,6 +26,6 @@ import com.nextcloud.talk.models.json.capabilities.Capabilities interface ServerThemeProvider { fun getServerThemeForUser(user: User): ServerTheme - fun getServerThemeForCapabilities(capabilities: Capabilities): ServerTheme + fun getServerThemeForCapabilities(capabilities: Capabilities?): ServerTheme fun getServerThemeForCurrentUser(): ServerTheme } diff --git a/app/src/main/java/com/nextcloud/talk/ui/theme/ServerThemeProviderImpl.kt b/app/src/main/java/com/nextcloud/talk/ui/theme/ServerThemeProviderImpl.kt index 87cdcee6b..7becbda62 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/theme/ServerThemeProviderImpl.kt +++ b/app/src/main/java/com/nextcloud/talk/ui/theme/ServerThemeProviderImpl.kt @@ -55,14 +55,14 @@ internal class ServerThemeProviderImpl @Inject constructor( } override fun getServerThemeForUser(user: User): ServerTheme { - return getServerThemeForCapabilities(user.capabilities!!) + return getServerThemeForCapabilities(user.capabilities) } override fun getServerThemeForCurrentUser(): ServerTheme { return getServerThemeForUser(currentUser) } - override fun getServerThemeForCapabilities(capabilities: Capabilities): ServerTheme { - return ServerThemeImpl(context, capabilities.themingCapability!!) + override fun getServerThemeForCapabilities(capabilities: Capabilities?): ServerTheme { + return ServerThemeImpl(context, capabilities?.themingCapability) } }