extension ArticleCollectionViewCell: Themeable { open func apply(theme: Theme) { let selected = isBatchEditing ? theme.colors.batchSelectionBackground : theme.colors.midBackground setBackgroundColors(theme.colors.paperBackground, selected: selected) imageView.backgroundColor = theme.colors.midBackground titleLabel.textColor = theme.colors.primaryText descriptionLabel.textColor = theme.colors.secondaryText extractLabel?.textColor = theme.colors.primaryText imageView.alpha = theme.imageOpacity statusView.backgroundColor = theme.colors.warning alertButton.tintColor = alertType == .downloading ? theme.colors.warning : theme.colors.error alertButton.setTitleColor(alertButton.tintColor, for: .normal) actionsView.apply(theme: theme) batchEditSelectView?.apply(theme: theme) updateSelectedOrHighlighted() } } extension ArticleRightAlignedImageCollectionViewCell { open override func apply(theme: Theme) { super.apply(theme: theme) bottomSeparator.backgroundColor = theme.colors.baseBackground topSeparator.backgroundColor = theme.colors.baseBackground } } extension ArticleFullWidthImageCollectionViewCell { open override func apply(theme: Theme) { super.apply(theme: theme) saveButton.setTitleColor(theme.colors.link, for: .normal) } }