Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 0 additions & 7 deletions Keyboards/KeyboardsBase/InterfaceVariables.swift
Original file line number Diff line number Diff line change
Expand Up @@ -246,13 +246,6 @@ func setKeyboardLayout() {
pluralPromptAndColorPlaceholder
]
}

// Variables that define which keys are positioned on the very left, right or in the center of the keyboard.
// The purpose of these is to define which key pop up functions should be ran.
var centralKeyChars = [String]()
var leftKeyChars = [String]()
var rightKeyChars = [String]()

// Variables for call out positioning.
var horizStart = CGFloat(0)
var vertStart = CGFloat(0)
Expand Down
91 changes: 47 additions & 44 deletions Keyboards/KeyboardsBase/KeyAnimation.swift
Original file line number Diff line number Diff line change
Expand Up @@ -293,6 +293,8 @@ func centerKeyPopPath(
/// - char: the character of the key.
/// - displayChar: the character to display on the pop up.
func getKeyPopPath(key: UIButton, layer: CAShapeLayer, char: String, displayChar: String) {
// We use idx and row to differentiate between keys that share the same character, for example "§" on Swedish iPad keyboards.
let idx = (key as? KeyboardKey)?.idx
// Get the frame in respect to the superview.
if let frame = key.superview?.convert(key.frame, to: nil) {
var labelVertPosition = frame.origin.y - key.frame.height / 1.75
Expand All @@ -305,59 +307,60 @@ func getKeyPopPath(key: UIButton, layer: CAShapeLayer, char: String, displayChar
labelVertPosition = frame.origin.y - key.frame.height / 2
}

if centralKeyChars.contains(char) {
layer.path =
centerKeyPopPath(
startX: frame.origin.x, startY: frame.origin.y,
keyWidth: key.frame.width, keyHeight: key.frame.height, char: char
).cgPath
keyPopChar.center = CGPoint(
x: frame.origin.x + key.frame.width * 0.5, y: labelVertPosition
)
keyHoldPopChar.center = CGPoint(
x: frame.origin.x + key.frame.width * 0.5, y: labelVertPosition
)
} else if leftKeyChars.contains(char) {
layer.path =
leftKeyPopPath(
startX: frame.origin.x, startY: frame.origin.y,
keyWidth: key.frame.width, keyHeight: key.frame.height, char: char
).cgPath
if idx == 0 {
layer.path =
leftKeyPopPath(
startX: frame.origin.x, startY: frame.origin.y,
keyWidth: key.frame.width, keyHeight: key.frame.height, char: char
).cgPath
keyPopChar.center = CGPoint(
x: frame.origin.x + key.frame.width * 0.85, y: labelVertPosition
)
keyHoldPopChar.center = CGPoint(
x: frame.origin.x + key.frame.width * 0.85, y: labelVertPosition
)
if DeviceType.isPad || (DeviceType.isPhone && isLandscapeView) {
keyPopChar.center = CGPoint(
x: frame.origin.x + key.frame.width * 0.85, y: labelVertPosition
x: frame.origin.x + key.frame.width * 0.65, y: labelVertPosition
)
keyHoldPopChar.center = CGPoint(
x: frame.origin.x + key.frame.width * 0.85, y: labelVertPosition
x: frame.origin.x + key.frame.width * 0.65, y: labelVertPosition
)
if DeviceType.isPad || (DeviceType.isPhone && isLandscapeView) {
keyPopChar.center = CGPoint(
x: frame.origin.x + key.frame.width * 0.65, y: labelVertPosition
)
keyHoldPopChar.center = CGPoint(
x: frame.origin.x + key.frame.width * 0.65, y: labelVertPosition
)
}
} else if rightKeyChars.contains(char) {
layer.path =
rightKeyPopPath(
startX: frame.origin.x, startY: frame.origin.y,
keyWidth: key.frame.width, keyHeight: key.frame.height, char: char
).cgPath
}
} else if idx == 13 {
layer.path =
rightKeyPopPath(
startX: frame.origin.x, startY: frame.origin.y,
keyWidth: key.frame.width, keyHeight: key.frame.height, char: char
).cgPath
keyPopChar.center = CGPoint(
x: frame.origin.x + key.frame.width * 0.15, y: labelVertPosition
)
keyHoldPopChar.center = CGPoint(
x: frame.origin.x + key.frame.width * 0.15, y: labelVertPosition
)
if DeviceType.isPad || (DeviceType.isPhone && isLandscapeView) {
keyPopChar.center = CGPoint(
x: frame.origin.x + key.frame.width * 0.15, y: labelVertPosition
x: frame.origin.x + key.frame.width * 0.35, y: labelVertPosition
)
keyHoldPopChar.center = CGPoint(
x: frame.origin.x + key.frame.width * 0.15, y: labelVertPosition
x: frame.origin.x + key.frame.width * 0.35, y: labelVertPosition
)
if DeviceType.isPad || (DeviceType.isPhone && isLandscapeView) {
keyPopChar.center = CGPoint(
x: frame.origin.x + key.frame.width * 0.35, y: labelVertPosition
)
keyHoldPopChar.center = CGPoint(
x: frame.origin.x + key.frame.width * 0.35, y: labelVertPosition
)
}
}
} else {
layer.path =
centerKeyPopPath(
startX: frame.origin.x, startY: frame.origin.y,
keyWidth: key.frame.width, keyHeight: key.frame.height, char: char
).cgPath
keyPopChar.center = CGPoint(
x: frame.origin.x + key.frame.width * 0.5, y: labelVertPosition
)
keyHoldPopChar.center = CGPoint(
x: frame.origin.x + key.frame.width * 0.5, y: labelVertPosition
)
}


layer.strokeColor = keyShadowColor
layer.fillColor = keyColor.cgColor
Expand Down
14 changes: 0 additions & 14 deletions Keyboards/LanguageKeyboards/English/ENInterfaceVariables.swift
Original file line number Diff line number Diff line change
Expand Up @@ -171,20 +171,12 @@ func getENKeys() {
symbolKeys = ENKeyboardProvider.genPhoneSymbolKeys(currencyKeys: currencyKeys)
allKeys =
Array(letterKeys.joined()) + Array(numberKeys.joined()) + Array(symbolKeys.joined())

leftKeyChars = ["q", "1", "-", "[", "_"]
rightKeyChars = ["p", "0", "\"", "=", "·"]
centralKeyChars = allKeys.filter {
!leftKeyChars.contains($0) && !rightKeyChars.contains($0)
}
} else {
// Use the expanded keys layout if the iPad is wide enough and has no home button.
if usingExpandedKeyboard {
letterKeys = ENKeyboardProvider.genPadExpandedLetterKeys()
symbolKeys = ENKeyboardProvider.genPadExpandedSymbolKeys()

leftKeyChars = ["~", "`"]
rightKeyChars = ["\\", "°"]
allKeys = Array(letterKeys.joined()) + Array(symbolKeys.joined())
} else {
letterKeys = ENKeyboardProvider.genPadLetterKeys()
Expand All @@ -193,15 +185,9 @@ func getENKeys() {

letterKeys.removeFirst(1)

leftKeyChars = ["q", "1"]
rightKeyChars = []
allKeys =
Array(letterKeys.joined()) + Array(numberKeys.joined()) + Array(symbolKeys.joined())
}

centralKeyChars = allKeys.filter {
!leftKeyChars.contains($0) && !rightKeyChars.contains($0)
}
}

keysWithAlternates = ENKeyboardConstants.keysWithAlternates
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -169,20 +169,12 @@ func getFRKeys() {
symbolKeys = FRKeyboardProvider.genPhoneSymbolKeys(currencyKeys: currencyKeys)
allKeys =
Array(letterKeys.joined()) + Array(numberKeys.joined()) + Array(symbolKeys.joined())

leftKeyChars = ["a", "q", "1", "-", "[", "_"]
rightKeyChars = ["p", "m", "0", "\"", "=", "·"]
centralKeyChars = allKeys.filter {
!leftKeyChars.contains($0) && !rightKeyChars.contains($0)
}
} else {
// Use the expanded keys layout if the iPad is wide enough and has no home button.
if usingExpandedKeyboard {
letterKeys = FRKeyboardProvider.genPadExpandedLetterKeys()
symbolKeys = FRKeyboardProvider.genPadExpandedSymbolKeys()

leftKeyChars = ["@", "`"]
rightKeyChars = ["*"]
allKeys = Array(letterKeys.joined()) + Array(symbolKeys.joined())
} else {
letterKeys = FRKeyboardProvider.genPadLetterKeys()
Expand All @@ -191,15 +183,9 @@ func getFRKeys() {

letterKeys.removeFirst(1)

leftKeyChars = ["q", "a", "1", "@", "~"]
rightKeyChars = []
allKeys =
Array(letterKeys.joined()) + Array(numberKeys.joined()) + Array(symbolKeys.joined())
}

centralKeyChars = allKeys.filter {
!leftKeyChars.contains($0) && !rightKeyChars.contains($0)
}
}

keysWithAlternates = FRKeyboardConstants.keysWithAlternates
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,12 +99,6 @@ func getFRQWERTYKeys() {
symbolKeys = FRQWERTYKeyboardConstants.symbolKeysPhone
allKeys =
Array(letterKeys.joined()) + Array(numberKeys.joined()) + Array(symbolKeys.joined())

leftKeyChars = ["a", "q", "1", "-", "[", "_"]
rightKeyChars = ["p", "m", "0", "\"", "=", "·"]
centralKeyChars = allKeys.filter {
!leftKeyChars.contains($0) && !rightKeyChars.contains($0)
}
} else {
// Use the expanded keys layout if the iPad is wide enough and has no home button.
if usingExpandedKeyboard {
Expand All @@ -122,12 +116,6 @@ func getFRQWERTYKeys() {
allKeys =
Array(letterKeys.joined()) + Array(numberKeys.joined()) + Array(symbolKeys.joined())
}

leftKeyChars = ["q", "a", "1", "@", "~"]
rightKeyChars = []
centralKeyChars = allKeys.filter {
!leftKeyChars.contains($0) && !rightKeyChars.contains($0)
}
}

keysWithAlternates = FRQWERTYKeyboardConstants.keysWithAlternates
Expand Down
20 changes: 2 additions & 18 deletions Keyboards/LanguageKeyboards/German/DEInterfaceVariables.swift
Original file line number Diff line number Diff line change
Expand Up @@ -213,16 +213,6 @@ func getDEKeys() {
symbolKeys = DEKeyboardProvider.genPhoneSymbolKeys(currencyKeys: currencyKeys)
allKeys =
Array(letterKeys.joined()) + Array(numberKeys.joined()) + Array(symbolKeys.joined())

leftKeyChars = ["q", "a", "1", "-", "[", "_"]
if userDefaults.bool(forKey: "deAccentCharacters") {
rightKeyChars = ["p", "l", "0", "\"", "=", "·"]
} else {
rightKeyChars = ["ü", "ä", "0", "\"", "=", "·"]
}
centralKeyChars = allKeys.filter {
!leftKeyChars.contains($0) && !rightKeyChars.contains($0)
}
} else {
// Use the expanded keys layout if the iPad is wide enough and has no home button.
if usingExpandedKeyboard {
Expand All @@ -232,8 +222,7 @@ func getDEKeys() {
letterKeys = DEKeyboardProvider.genPadExpandedLetterKeys()
}
symbolKeys = DEKeyboardProvider.genPadExpandedSymbolKeys()
leftKeyChars = ["^", "`"]
rightKeyChars = ["*"]

allKeys = Array(letterKeys.joined()) + Array(symbolKeys.joined())
} else {
if userDefaults.bool(forKey: "deAccentCharacters") {
Expand All @@ -245,15 +234,10 @@ func getDEKeys() {
symbolKeys = DEKeyboardProvider.genPadSymbolKeys(currencyKeys: currencyKeys)

letterKeys.removeFirst(1)
leftKeyChars = ["q", "a", "1", "\"", "$"]
rightKeyChars = []

allKeys =
Array(letterKeys.joined()) + Array(numberKeys.joined()) + Array(symbolKeys.joined())
}

centralKeyChars = allKeys.filter {
!leftKeyChars.contains($0) && !rightKeyChars.contains($0)
}
}

keysWithAlternates = DEKeyboardConstants.keysWithAlternates
Expand Down
12 changes: 0 additions & 12 deletions Keyboards/LanguageKeyboards/Hebrew/HEInterfaceVariables.swift
Original file line number Diff line number Diff line change
Expand Up @@ -156,12 +156,6 @@ func getHEKeys() {
symbolKeys = HEKeyboardProvider.genPhoneSymbolKeys(currencyKeys: currencyKeys)
allKeys =
Array(letterKeys.joined()) + Array(numberKeys.joined()) + Array(symbolKeys.joined())

leftKeyChars = ["ק", "1", "-", "[", "_"]
rightKeyChars = ["פ", "0", "\"", "=", "·"]
centralKeyChars = allKeys.filter {
!leftKeyChars.contains($0) && !rightKeyChars.contains($0)
}
} else {
// Use the expanded keys layout if the iPad is wide enough and has no home button.
if usingExpandedKeyboard {
Expand All @@ -179,12 +173,6 @@ func getHEKeys() {
allKeys =
Array(letterKeys.joined()) + Array(numberKeys.joined()) + Array(symbolKeys.joined())
}

leftKeyChars = ["1", "ק"]
rightKeyChars = []
centralKeyChars = allKeys.filter {
!leftKeyChars.contains($0) && !rightKeyChars.contains($0)
}
}
}

Expand Down
15 changes: 0 additions & 15 deletions Keyboards/LanguageKeyboards/Indonesian/IDInterfaceVariables.swift
Original file line number Diff line number Diff line change
Expand Up @@ -155,37 +155,22 @@ func getIDKeys() {
symbolKeys = IDKeyboardProvider.genPhoneSymbolKeys(currencyKeys: currencyKeys)
allKeys =
Array(letterKeys.joined()) + Array(numberKeys.joined()) + Array(symbolKeys.joined())

leftKeyChars = ["q", "1", "-", "[", "_"]
rightKeyChars = ["p", "0", "\"", "=", "·"]
centralKeyChars = allKeys.filter {
!leftKeyChars.contains($0) && !rightKeyChars.contains($0)
}
} else {
// Use the expanded keys layout if the iPad is wide enough and has no home button.
if usingExpandedKeyboard {
letterKeys = IDKeyboardProvider.genPadExpandedLetterKeys()
symbolKeys = IDKeyboardProvider.genPadExpandedSymbolKeys()

leftKeyChars = ["~", "`"]
rightKeyChars = ["\\", "°"]
allKeys = Array(letterKeys.joined()) + Array(symbolKeys.joined())
} else {
letterKeys = IDKeyboardProvider.genPadLetterKeys()
numberKeys = IDKeyboardProvider.genPadNumberKeys(currencyKey: currencyKey)
symbolKeys = IDKeyboardProvider.genPadSymbolKeys(currencyKeys: currencyKeys)

letterKeys.removeFirst(1)

leftKeyChars = ["q", "1"]
rightKeyChars = []
allKeys =
Array(letterKeys.joined()) + Array(numberKeys.joined()) + Array(symbolKeys.joined())
}

centralKeyChars = allKeys.filter {
!leftKeyChars.contains($0) && !rightKeyChars.contains($0)
}
}

keysWithAlternates = []
Expand Down
14 changes: 0 additions & 14 deletions Keyboards/LanguageKeyboards/Italian/ITInterfaceVariables.swift
Original file line number Diff line number Diff line change
Expand Up @@ -169,20 +169,12 @@ func getITKeys() {
symbolKeys = ITKeyboardProvider.genPhoneSymbolKeys(currencyKeys: currencyKeys)
allKeys =
Array(letterKeys.joined()) + Array(numberKeys.joined()) + Array(symbolKeys.joined())

leftKeyChars = ["q", "1", "-", "[", "_"]
rightKeyChars = ["p", "0", "\"", "=", "·"]
centralKeyChars = allKeys.filter {
!leftKeyChars.contains($0) && !rightKeyChars.contains($0)
}
} else {
// Use the expanded keys layout if the iPad is wide enough and has no home button.
if usingExpandedKeyboard {
letterKeys = ITKeyboardProvider.genPadExpandedLetterKeys()
symbolKeys = ITKeyboardProvider.genPadExpandedSymbolKeys()

leftKeyChars = ["\\", "`"]
rightKeyChars = ["*", "§"]
allKeys = Array(letterKeys.joined()) + Array(symbolKeys.joined())
} else {
letterKeys = ITKeyboardProvider.genPadLetterKeys()
Expand All @@ -191,15 +183,9 @@ func getITKeys() {

letterKeys.removeFirst(1)

leftKeyChars = ["q", "1"]
rightKeyChars = []
allKeys =
Array(letterKeys.joined()) + Array(numberKeys.joined()) + Array(symbolKeys.joined())
}

centralKeyChars = allKeys.filter {
!leftKeyChars.contains($0) && !rightKeyChars.contains($0)
}
}

keysWithAlternates = ITKeyboardConstants.keysWithAlternates
Expand Down
Loading
Loading