diff --git a/app/src/main/java/com/nmc/android/utils/CheckableThemeUtils.kt b/app/src/main/java/com/nmc/android/utils/CheckableThemeUtils.kt
new file mode 100644
index 000000000000..a3b8a1149948
--- /dev/null
+++ b/app/src/main/java/com/nmc/android/utils/CheckableThemeUtils.kt
@@ -0,0 +1,117 @@
+package com.nmc.android.utils
+
+import android.content.res.ColorStateList
+import androidx.appcompat.widget.AppCompatCheckBox
+import androidx.appcompat.widget.SwitchCompat
+import androidx.core.content.res.ResourcesCompat
+import com.owncloud.android.R
+
+object CheckableThemeUtils {
+ @JvmStatic
+ fun tintCheckbox(vararg checkBoxes: AppCompatCheckBox) {
+ for (checkBox in checkBoxes) {
+ val checkEnabled = ResourcesCompat.getColor(
+ checkBox.context.resources,
+ R.color.checkbox_checked_enabled,
+ checkBox.context.theme
+ )
+ val checkDisabled = ResourcesCompat.getColor(
+ checkBox.context.resources,
+ R.color.checkbox_checked_disabled,
+ checkBox.context.theme
+ )
+ val uncheckEnabled = ResourcesCompat.getColor(
+ checkBox.context.resources,
+ R.color.checkbox_unchecked_enabled,
+ checkBox.context.theme
+ )
+ val uncheckDisabled = ResourcesCompat.getColor(
+ checkBox.context.resources,
+ R.color.checkbox_unchecked_disabled,
+ checkBox.context.theme
+ )
+
+ val states = arrayOf(
+ intArrayOf(android.R.attr.state_enabled, android.R.attr.state_checked),
+ intArrayOf(-android.R.attr.state_enabled, android.R.attr.state_checked),
+ intArrayOf(android.R.attr.state_enabled, -android.R.attr.state_checked),
+ intArrayOf(-android.R.attr.state_enabled, -android.R.attr.state_checked)
+ )
+ val colors = intArrayOf(
+ checkEnabled,
+ checkDisabled,
+ uncheckEnabled,
+ uncheckDisabled
+ )
+ checkBox.buttonTintList = ColorStateList(states, colors)
+ }
+ }
+
+ @JvmStatic
+ @JvmOverloads
+ fun tintSwitch(switchView: SwitchCompat, color: Int = 0, colorText: Boolean = false) {
+ if (colorText) {
+ switchView.setTextColor(color)
+ }
+
+ val states = arrayOf(
+ intArrayOf(android.R.attr.state_enabled, android.R.attr.state_checked),
+ intArrayOf(android.R.attr.state_enabled, -android.R.attr.state_checked),
+ intArrayOf(-android.R.attr.state_enabled)
+ )
+
+ val thumbColorCheckedEnabled = ResourcesCompat.getColor(
+ switchView.context.resources,
+ R.color.switch_thumb_checked_enabled,
+ switchView.context.theme
+ )
+ val thumbColorUncheckedEnabled =
+ ResourcesCompat.getColor(
+ switchView.context.resources,
+ R.color.switch_thumb_unchecked_enabled,
+ switchView.context.theme
+ )
+ val thumbColorDisabled =
+ ResourcesCompat.getColor(
+ switchView.context.resources,
+ R.color.switch_thumb_disabled,
+ switchView.context.theme
+ )
+
+ val thumbColors = intArrayOf(
+ thumbColorCheckedEnabled,
+ thumbColorUncheckedEnabled,
+ thumbColorDisabled
+ )
+ val thumbColorStateList = ColorStateList(states, thumbColors)
+
+ val trackColorCheckedEnabled = ResourcesCompat.getColor(
+ switchView.context.resources,
+ R.color.switch_track_checked_enabled,
+ switchView.context.theme
+ )
+ val trackColorUncheckedEnabled =
+ ResourcesCompat.getColor(
+ switchView.context.resources,
+ R.color.switch_track_unchecked_enabled,
+ switchView.context.theme
+ )
+ val trackColorDisabled =
+ ResourcesCompat.getColor(
+ switchView.context.resources,
+ R.color.switch_track_disabled,
+ switchView.context.theme
+ )
+
+ val trackColors = intArrayOf(
+ trackColorCheckedEnabled,
+ trackColorUncheckedEnabled,
+ trackColorDisabled
+ )
+
+ val trackColorStateList = ColorStateList(states, trackColors)
+
+ switchView.thumbTintList = thumbColorStateList
+ switchView.trackTintList = trackColorStateList
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/SyncedFolderPreferencesDialogFragment.kt b/app/src/main/java/com/owncloud/android/ui/dialog/SyncedFolderPreferencesDialogFragment.kt
index 8fd917f7aeed..4e7e4a977ecc 100644
--- a/app/src/main/java/com/owncloud/android/ui/dialog/SyncedFolderPreferencesDialogFragment.kt
+++ b/app/src/main/java/com/owncloud/android/ui/dialog/SyncedFolderPreferencesDialogFragment.kt
@@ -23,6 +23,7 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.nextcloud.client.di.Injectable
import com.nextcloud.client.preferences.SubFolderRule
import com.nextcloud.utils.extensions.getParcelableArgument
+import com.nmc.android.utils.CheckableThemeUtils
import com.owncloud.android.R
import com.owncloud.android.databinding.SyncedFoldersSettingsLayoutBinding
import com.owncloud.android.datamodel.MediaFolderType
@@ -145,9 +146,9 @@ class SyncedFolderPreferencesDialogFragment : DialogFragment(), Injectable {
}
private fun applyUserColor(binding: SyncedFoldersSettingsLayoutBinding) {
- viewThemeUtils?.androidx?.colorSwitchCompat(binding.syncEnabled)
+ CheckableThemeUtils.tintSwitch(binding.syncEnabled)
- viewThemeUtils?.platform?.themeCheckbox(
+ CheckableThemeUtils.tintCheckbox(
binding.settingInstantUploadOnWifiCheckbox,
binding.settingInstantUploadOnChargingCheckbox,
binding.settingInstantUploadExistingCheckbox,
diff --git a/app/src/main/java/com/owncloud/android/ui/fragment/contactsbackup/BackupFragment.kt b/app/src/main/java/com/owncloud/android/ui/fragment/contactsbackup/BackupFragment.kt
index 475593fff575..68186b3d3530 100644
--- a/app/src/main/java/com/owncloud/android/ui/fragment/contactsbackup/BackupFragment.kt
+++ b/app/src/main/java/com/owncloud/android/ui/fragment/contactsbackup/BackupFragment.kt
@@ -44,6 +44,7 @@ import com.owncloud.android.utils.PermissionUtil
import com.owncloud.android.utils.PermissionUtil.checkSelfPermission
import com.owncloud.android.utils.theme.ThemeUtils
import com.owncloud.android.utils.theme.ViewThemeUtils
+import com.nmc.android.utils.CheckableThemeUtils
import third_parties.daveKoeller.AlphanumComparator
import java.util.Calendar
import java.util.GregorianCalendar
@@ -221,9 +222,10 @@ class BackupFragment : FileFragment(), OnDateSetListener, Injectable {
}
private fun applyUserColor() {
- viewThemeUtils.androidx.colorSwitchCompat(binding.contacts)
- viewThemeUtils.androidx.colorSwitchCompat(binding.calendar)
- viewThemeUtils.androidx.colorSwitchCompat(binding.dailyBackup)
+ //NMC Customisation
+ CheckableThemeUtils.tintSwitch(binding.contacts)
+ CheckableThemeUtils.tintSwitch(binding.calendar)
+ CheckableThemeUtils.tintSwitch(binding.dailyBackup)
viewThemeUtils.material.colorMaterialButtonPrimaryFilled(binding.backupNow)
viewThemeUtils.material.colorMaterialButtonPrimaryOutlined(binding.contactsDatepicker)
diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml
index e9c749b86943..76e4e05ca495 100644
--- a/app/src/main/res/values-night/colors.xml
+++ b/app/src/main/res/values-night/colors.xml
@@ -36,4 +36,68 @@
#1E1E1E
@android:color/white
+
+
+ #FFFFFF
+ @color/grey_30
+ @color/grey_30
+ #CCCCCC
+ @color/grey_70
+ @color/grey_80
+ #2D2D2D
+ @color/grey_70
+ @color/grey_70
+
+
+ @color/grey_80
+ @color/grey_0
+
+
+ @color/grey_80
+ @color/grey_0
+
+
+ @color/grey_60
+ @color/grey_0
+ @color/grey_0
+ @color/grey_30
+ #FFFFFF
+ @color/grey_30
+ @color/grey_80
+ #FFFFFF
+
+
+ @color/grey_80
+ @color/grey_30
+ @color/grey_0
+
+
+ @color/grey_80
+ @color/grey_0
+ @color/grey_80
+
+
+ @color/grey_70
+ @color/grey_60
+
+
+ @color/grey_70
+ @color/grey_70
+
+
+ #FFFFFF
+ @color/grey_30
+ @color/grey_0
+ @color/grey_0
+ @color/grey_0
+ @color/grey_0
+ @color/grey_60
+ @color/grey_0
+ #FFFFFF
+
+
+ #121212
+ @color/grey_0
+ @color/grey_80
+ @color/grey_80
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 9a721eb3e385..248aa18d524c 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -76,4 +76,93 @@
@android:color/white
#666666
#A5A5A5
+
+
+ #191919
+ @color/primary
+ #191919
+ #191919
+ @color/grey_30
+ @android:color/white
+ #FFFFFF
+ @color/grey_0
+ #CCCCCC
+ #77c4ff
+ #B3FFFFFF
+ @color/grey_10
+
+
+ #101010
+ #F2F2F2
+ #E5E5E5
+ #B2B2B2
+ #666666
+ #4C4C4C
+ #333333
+
+
+ @color/design_snackbar_background_color
+ @color/white
+
+
+ #FFFFFF
+ #191919
+
+
+ @color/grey_0
+ #191919
+ @color/primary
+ #191919
+ @color/primary
+ @color/grey_30
+ @color/white
+ #191919
+
+
+ #FFFFFF
+ #191919
+ #191919
+
+
+ #FFFFFF
+ #191919
+ #FFFFFF
+
+
+ @color/primary
+ #F399C7
+ #FFFFFF
+ @color/grey_30
+ @color/grey_10
+ @color/grey_0
+
+
+ @color/primary
+ @color/grey_30
+ @color/grey_30
+ #CCCCCC
+
+
+ #191919
+ @color/grey_30
+ #191919
+ #191919
+ #191919
+ #191919
+ @color/grey_30
+ #191919
+ #000000
+ #191919
+ #F6E5EB
+ #C16F81
+ #0D39DF
+ #0099ff
+
+
+ @color/grey_0
+ #191919
+ @color/grey_0
+ @color/grey_30
+ #77b6bb
+ #5077b6bb