Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix #4976: Make Reader Mode respect accessibility settings #5983

Merged
merged 3 commits into from
Feb 14, 2020
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@ extension BrowserViewController: ReaderModeStyleViewControllerDelegate {
if let tab = tabManager[tabIndex] {
if let readerMode = tab.getContentScript(name: "ReaderMode") as? ReaderMode {
if readerMode.state == ReaderModeState.active {
readerMode.style = style
readerMode.style = ReaderModeStyle(theme: style.theme,
fontType: ReaderModeFontType(type: style.fontType.rawValue),
fontSize: style.fontSize)
}
}
}
Expand Down
10 changes: 10 additions & 0 deletions Client/Frontend/Reader/Reader.css
Original file line number Diff line number Diff line change
Expand Up @@ -88,10 +88,20 @@ body {
font-family: sans-serif;
}

.sans-serif-bold {
font-family: sans-serif;
font-weight: bold;
}

.serif {
font-family: serif;
}

.serif-bold {
font-family: serif;
font-weight: bold;
}

.message {
margin-top: 40px;
display: none;
Expand Down
24 changes: 21 additions & 3 deletions Client/Frontend/Reader/ReaderMode.swift
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,25 @@ enum ReaderModeTheme: String {

enum ReaderModeFontType: String {
case serif = "serif"
case serifBold = "serif-bold"
case sansSerif = "sans-serif"
case sansSerifBold = "sans-serif-bold"

init(type: String) {
let fontFamily = ReaderModeFontType(rawValue: type)
let isBoldFontEnabled = UIAccessibility.isBoldTextEnabled

switch fontFamily {
case .serif,
.serifBold:
self = isBoldFontEnabled ? .serifBold : .serif
case .sansSerif,
.sansSerifBold:
self = isBoldFontEnabled ? .sansSerifBold : .sansSerif
case .none:
self = .sansSerif
}
}
}

enum ReaderModeFontSize: Int {
Expand Down Expand Up @@ -128,14 +146,14 @@ struct ReaderModeStyle {
}

let theme = ReaderModeTheme(rawValue: themeRawValue!)
let fontType = ReaderModeFontType(rawValue: fontTypeRawValue!)
let fontType = ReaderModeFontType(type: fontTypeRawValue!)
let fontSize = ReaderModeFontSize(rawValue: fontSizeRawValue!)
if theme == nil || fontType == nil || fontSize == nil {
if theme == nil || fontSize == nil {
return nil
}

self.theme = theme!
self.fontType = fontType!
self.fontType = fontType
self.fontSize = fontSize!
}
}
Expand Down
18 changes: 12 additions & 6 deletions Client/Frontend/Reader/ReaderModeStyleViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -285,11 +285,13 @@ class FontTypeButton: UIButton {
self.fontType = fontType
accessibilityHint = NSLocalizedString("Changes font type.", comment: "Accessibility hint for the font type buttons in reader mode display settings")
switch fontType {
case .sansSerif:
case .sansSerif,
.sansSerifBold:
setTitle(NSLocalizedString("Sans-serif", comment: "Font type setting in the reading view settings"), for: [])
let f = UIFont(name: "FiraSans-Book", size: DynamicFontHelper.defaultHelper.ReaderStandardFontSize)
titleLabel?.font = f
case .serif:
case .serif,
.serifBold:
setTitle(NSLocalizedString("Serif", comment: "Font type setting in the reading view settings"), for: [])
let f = UIFont(name: "Charis SIL", size: DynamicFontHelper.defaultHelper.ReaderStandardFontSize)
titleLabel?.font = f
Expand Down Expand Up @@ -350,9 +352,11 @@ class FontSizeLabel: UILabel {
var fontType: ReaderModeFontType = .sansSerif {
didSet {
switch fontType {
case .sansSerif:
case .sansSerif,
.sansSerifBold:
font = UIFont(name: "FiraSans-Book", size: DynamicFontHelper.defaultHelper.ReaderBigFontSize)
case .serif:
case .serif,
.serifBold:
font = UIFont(name: "Charis SIL", size: DynamicFontHelper.defaultHelper.ReaderBigFontSize)
}
}
Expand Down Expand Up @@ -391,9 +395,11 @@ class ThemeButton: UIButton {
var fontType: ReaderModeFontType = .sansSerif {
didSet {
switch fontType {
case .sansSerif:
case .sansSerif,
.sansSerifBold:
titleLabel?.font = UIFont(name: "FiraSans-Book", size: DynamicFontHelper.defaultHelper.ReaderStandardFontSize)
case .serif:
case .serif,
.serifBold:
titleLabel?.font = UIFont(name: "Charis SIL", size: DynamicFontHelper.defaultHelper.ReaderStandardFontSize)
}
}
Expand Down