From b27ea8cd02eea455c90941818e479b088e1bf688 Mon Sep 17 00:00:00 2001 From: henrikth93 Date: Sun, 29 Mar 2026 21:07:49 +0200 Subject: [PATCH 1/3] Add index to key animation This commit will add an index variable so we can differentiate between keys that share the same character. --- Keyboards/KeyboardsBase/KeyAnimation.swift | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Keyboards/KeyboardsBase/KeyAnimation.swift b/Keyboards/KeyboardsBase/KeyAnimation.swift index b61f1c87..24f77ce3 100644 --- a/Keyboards/KeyboardsBase/KeyAnimation.swift +++ b/Keyboards/KeyboardsBase/KeyAnimation.swift @@ -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 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 @@ -317,7 +319,7 @@ func getKeyPopPath(key: UIButton, layer: CAShapeLayer, char: String, displayChar keyHoldPopChar.center = CGPoint( x: frame.origin.x + key.frame.width * 0.5, y: labelVertPosition ) - } else if leftKeyChars.contains(char) { + } else if leftKeyChars.contains(char) && idx == 0 { layer.path = leftKeyPopPath( startX: frame.origin.x, startY: frame.origin.y, From 6d201e2247bdf7028dd4b12178f386319d56f9a9 Mon Sep 17 00:00:00 2001 From: henrikth93 Date: Thu, 2 Apr 2026 22:30:42 +0200 Subject: [PATCH 2/3] Remove left, center and rich character check This commit will remove left, center and rich character check --- .../KeyboardsBase/InterfaceVariables.swift | 7 -- Keyboards/KeyboardsBase/KeyAnimation.swift | 66 +++++++++++++++++-- .../English/ENInterfaceVariables.swift | 14 ---- .../French/FR-AZERTYInterfaceVariables.swift | 14 ---- .../French/FR-QWERTYInterfaceVariables.swift | 12 ---- .../German/DEInterfaceVariables.swift | 20 +----- .../Hebrew/HEInterfaceVariables.swift | 12 ---- .../Indonesian/IDInterfaceVariables.swift | 15 ----- .../Italian/ITInterfaceVariables.swift | 14 ---- .../Norwegian/NBInterfaceVariables.swift | 16 +---- .../Portuguese/PTInterfaceVariables.swift | 13 ---- .../Russian/RUInterfaceVariables.swift | 14 ---- .../Spanish/ESInterfaceVariables.swift | 17 ----- .../Swedish/SVInterfaceVariables.swift | 18 ----- 14 files changed, 66 insertions(+), 186 deletions(-) diff --git a/Keyboards/KeyboardsBase/InterfaceVariables.swift b/Keyboards/KeyboardsBase/InterfaceVariables.swift index c3891ea0..fe4a2777 100644 --- a/Keyboards/KeyboardsBase/InterfaceVariables.swift +++ b/Keyboards/KeyboardsBase/InterfaceVariables.swift @@ -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) diff --git a/Keyboards/KeyboardsBase/KeyAnimation.swift b/Keyboards/KeyboardsBase/KeyAnimation.swift index 24f77ce3..f92a0d13 100644 --- a/Keyboards/KeyboardsBase/KeyAnimation.swift +++ b/Keyboards/KeyboardsBase/KeyAnimation.swift @@ -293,8 +293,12 @@ 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 to differentiate between keys that share the same character, for example "§" on Swedish iPad keyboards. - let idx = (key as? KeyboardKey)?.idx + // We use idx and row to differentiate between keys that share the same character, for example "§" on Swedish iPad keyboards. + guard let key = key as? KeyboardKey, + let idx = key.idx, + let row = key.row else { + return + } // 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 @@ -307,7 +311,61 @@ func getKeyPopPath(key: UIButton, layer: CAShapeLayer, char: String, displayChar labelVertPosition = frame.origin.y - key.frame.height / 2 } - if centralKeyChars.contains(char) { + 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.65, y: labelVertPosition + ) + keyHoldPopChar.center = CGPoint( + x: frame.origin.x + key.frame.width * 0.65, y: labelVertPosition + ) + } + } 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.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 + ) + } + + /* if centralKeyChars.contains(char) { layer.path = centerKeyPopPath( startX: frame.origin.x, startY: frame.origin.y, @@ -359,7 +417,7 @@ func getKeyPopPath(key: UIButton, layer: CAShapeLayer, char: String, displayChar x: frame.origin.x + key.frame.width * 0.35, y: labelVertPosition ) } - } + } */ layer.strokeColor = keyShadowColor layer.fillColor = keyColor.cgColor diff --git a/Keyboards/LanguageKeyboards/English/ENInterfaceVariables.swift b/Keyboards/LanguageKeyboards/English/ENInterfaceVariables.swift index 28f5f4fc..01b4ef9f 100644 --- a/Keyboards/LanguageKeyboards/English/ENInterfaceVariables.swift +++ b/Keyboards/LanguageKeyboards/English/ENInterfaceVariables.swift @@ -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() @@ -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 diff --git a/Keyboards/LanguageKeyboards/French/FR-AZERTYInterfaceVariables.swift b/Keyboards/LanguageKeyboards/French/FR-AZERTYInterfaceVariables.swift index 8be89a71..bd7bced2 100644 --- a/Keyboards/LanguageKeyboards/French/FR-AZERTYInterfaceVariables.swift +++ b/Keyboards/LanguageKeyboards/French/FR-AZERTYInterfaceVariables.swift @@ -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() @@ -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 diff --git a/Keyboards/LanguageKeyboards/French/FR-QWERTYInterfaceVariables.swift b/Keyboards/LanguageKeyboards/French/FR-QWERTYInterfaceVariables.swift index 0c8bb79a..841b0655 100644 --- a/Keyboards/LanguageKeyboards/French/FR-QWERTYInterfaceVariables.swift +++ b/Keyboards/LanguageKeyboards/French/FR-QWERTYInterfaceVariables.swift @@ -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 { @@ -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 diff --git a/Keyboards/LanguageKeyboards/German/DEInterfaceVariables.swift b/Keyboards/LanguageKeyboards/German/DEInterfaceVariables.swift index de063eb9..2cd32a16 100644 --- a/Keyboards/LanguageKeyboards/German/DEInterfaceVariables.swift +++ b/Keyboards/LanguageKeyboards/German/DEInterfaceVariables.swift @@ -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 { @@ -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") { @@ -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 diff --git a/Keyboards/LanguageKeyboards/Hebrew/HEInterfaceVariables.swift b/Keyboards/LanguageKeyboards/Hebrew/HEInterfaceVariables.swift index 3e3f6319..f3503e83 100644 --- a/Keyboards/LanguageKeyboards/Hebrew/HEInterfaceVariables.swift +++ b/Keyboards/LanguageKeyboards/Hebrew/HEInterfaceVariables.swift @@ -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 { @@ -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) - } } } diff --git a/Keyboards/LanguageKeyboards/Indonesian/IDInterfaceVariables.swift b/Keyboards/LanguageKeyboards/Indonesian/IDInterfaceVariables.swift index 8acfbe95..fa73cc63 100644 --- a/Keyboards/LanguageKeyboards/Indonesian/IDInterfaceVariables.swift +++ b/Keyboards/LanguageKeyboards/Indonesian/IDInterfaceVariables.swift @@ -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 = [] diff --git a/Keyboards/LanguageKeyboards/Italian/ITInterfaceVariables.swift b/Keyboards/LanguageKeyboards/Italian/ITInterfaceVariables.swift index 8337b9f7..9ace2c12 100644 --- a/Keyboards/LanguageKeyboards/Italian/ITInterfaceVariables.swift +++ b/Keyboards/LanguageKeyboards/Italian/ITInterfaceVariables.swift @@ -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() @@ -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 diff --git a/Keyboards/LanguageKeyboards/Norwegian/NBInterfaceVariables.swift b/Keyboards/LanguageKeyboards/Norwegian/NBInterfaceVariables.swift index 2d7e8a74..0d5416f1 100644 --- a/Keyboards/LanguageKeyboards/Norwegian/NBInterfaceVariables.swift +++ b/Keyboards/LanguageKeyboards/Norwegian/NBInterfaceVariables.swift @@ -176,19 +176,12 @@ func getNBKeys() { symbolKeys = NBKeyboardProvider.genPhoneSymbolKeys(currencyKeys: currencyKeys) allKeys = Array(letterKeys.joined()) + Array(numberKeys.joined()) + Array(symbolKeys.joined()) - - leftKeyChars = ["q", "a", "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 { letterKeys = NBKeyboardProvider.genPadExpandedLetterKeys() symbolKeys = NBKeyboardProvider.genPadExpandedSymbolKeys() - leftKeyChars = ["kr", "`"] - rightKeyChars = ["¨", "—"] + allKeys = Array(letterKeys.joined()) + Array(symbolKeys.joined()) } else { letterKeys = NBKeyboardProvider.genPadLetterKeys() @@ -196,15 +189,10 @@ func getNBKeys() { symbolKeys = NBKeyboardProvider.genPadSymbolKeys(currencyKeys: currencyKeys) letterKeys.removeFirst(1) - leftKeyChars = ["q", "a", "1", "@", "€"] - rightKeyChars = ["delete", "return"] + allKeys = Array(letterKeys.joined()) + Array(numberKeys.joined()) + Array(symbolKeys.joined()) } - - centralKeyChars = allKeys.filter { - !leftKeyChars.contains($0) && !rightKeyChars.contains($0) - } } keysWithAlternates = NBKeyboardConstants.keysWithAlternates diff --git a/Keyboards/LanguageKeyboards/Portuguese/PTInterfaceVariables.swift b/Keyboards/LanguageKeyboards/Portuguese/PTInterfaceVariables.swift index eeee3642..5f3a74cd 100644 --- a/Keyboards/LanguageKeyboards/Portuguese/PTInterfaceVariables.swift +++ b/Keyboards/LanguageKeyboards/Portuguese/PTInterfaceVariables.swift @@ -169,19 +169,12 @@ func getPTKeys() { 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 = PTKeyboardProvider.genPadExpandedLetterKeys() symbolKeys = PTKeyboardProvider.genPadExpandedSymbolKeys() - leftKeyChars = ["~", "`"] - rightKeyChars = ["\\", "~"] allKeys = Array(letterKeys.joined()) + Array(symbolKeys.joined()) } else { letterKeys = PTKeyboardProvider.genPadLetterKeys() @@ -190,15 +183,9 @@ func getPTKeys() { 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 = PTKeyboardConstants.keysWithAlternates diff --git a/Keyboards/LanguageKeyboards/Russian/RUInterfaceVariables.swift b/Keyboards/LanguageKeyboards/Russian/RUInterfaceVariables.swift index 40e17c4c..97d90f8c 100644 --- a/Keyboards/LanguageKeyboards/Russian/RUInterfaceVariables.swift +++ b/Keyboards/LanguageKeyboards/Russian/RUInterfaceVariables.swift @@ -163,20 +163,12 @@ func getRUKeys() { symbolKeys = RUKeyboardProvider.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 { letterKeys = RUKeyboardProvider.genPadExpandedLetterKeys() symbolKeys = RUKeyboardProvider.genPadExpandedSymbolKeys() - leftKeyChars = ["§", "`"] - rightKeyChars = ["+", "₽"] allKeys = Array(letterKeys.joined()) + Array(symbolKeys.joined()) } else { letterKeys = RUKeyboardProvider.genPadLetterKeys() @@ -185,15 +177,9 @@ func getRUKeys() { letterKeys.removeFirst(1) - leftKeyChars = ["й", "ф", "1", "@", "$"] - rightKeyChars = [] allKeys = Array(letterKeys.joined()) + Array(numberKeys.joined()) + Array(symbolKeys.joined()) } - - centralKeyChars = allKeys.filter { - !leftKeyChars.contains($0) && !rightKeyChars.contains($0) - } } keysWithAlternates = RUKeyboardConstants.keysWithAlternates diff --git a/Keyboards/LanguageKeyboards/Spanish/ESInterfaceVariables.swift b/Keyboards/LanguageKeyboards/Spanish/ESInterfaceVariables.swift index 200d9b7b..5d31ae5c 100644 --- a/Keyboards/LanguageKeyboards/Spanish/ESInterfaceVariables.swift +++ b/Keyboards/LanguageKeyboards/Spanish/ESInterfaceVariables.swift @@ -210,15 +210,6 @@ func getESKeys() { allKeys = Array(letterKeys.joined()) + Array(numberKeys.joined()) + Array(symbolKeys.joined()) - leftKeyChars = ["q", "a", "1", "-", "[", "_"] - if userDefaults.bool(forKey: "esAccentCharacters") { - rightKeyChars = ["p", "l", "0", "\"", "=", "·"] - } else { - 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 { @@ -229,8 +220,6 @@ func getESKeys() { } symbolKeys = ESKeyboardProvider.genPadExpandedSymbolKeys() - leftKeyChars = ["|", "`"] - rightKeyChars = ["*", "§"] allKeys = Array(letterKeys.joined()) + Array(symbolKeys.joined()) } else { if userDefaults.bool(forKey: "esAccentCharacters") { @@ -243,15 +232,9 @@ func getESKeys() { 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 = ESKeyboardConstants.keysWithAlternates diff --git a/Keyboards/LanguageKeyboards/Swedish/SVInterfaceVariables.swift b/Keyboards/LanguageKeyboards/Swedish/SVInterfaceVariables.swift index 3943138d..342d1c45 100644 --- a/Keyboards/LanguageKeyboards/Swedish/SVInterfaceVariables.swift +++ b/Keyboards/LanguageKeyboards/Swedish/SVInterfaceVariables.swift @@ -215,16 +215,6 @@ func getSVKeys() { symbolKeys = SVKeyboardProvider.genPhoneSymbolKeys(currencyKeys: currencyKeys) allKeys = Array(letterKeys.joined()) + Array(numberKeys.joined()) + Array(symbolKeys.joined()) - - leftKeyChars = ["q", "a", "1", "-", "[", "_"] - if userDefaults.bool(forKey: "svAccentCharacters") { - 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 { @@ -235,8 +225,6 @@ func getSVKeys() { } symbolKeys = SVKeyboardProvider.genPadExpandedSymbolKeys() - leftKeyChars = ["§", "`"] - rightKeyChars = ["§", "*"] allKeys = Array(letterKeys.joined()) + Array(symbolKeys.joined()) } else { if userDefaults.bool(forKey: "svAccentCharacters") { @@ -249,15 +237,9 @@ func getSVKeys() { 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) - } } keysWithAlternatesLeft = SVKeyboardConstants.keysWithAlternatesLeft From d289fe61a3d2fc9190a1413a4489ef0009e4ee0a Mon Sep 17 00:00:00 2001 From: henrikth93 Date: Fri, 3 Apr 2026 15:50:27 +0200 Subject: [PATCH 3/3] Remove unused variable and commented out code This commit will remove an unused variable (row) and remove some code that was "commented out". --- Keyboards/KeyboardsBase/KeyAnimation.swift | 59 +--------------------- 1 file changed, 1 insertion(+), 58 deletions(-) diff --git a/Keyboards/KeyboardsBase/KeyAnimation.swift b/Keyboards/KeyboardsBase/KeyAnimation.swift index f92a0d13..230507d3 100644 --- a/Keyboards/KeyboardsBase/KeyAnimation.swift +++ b/Keyboards/KeyboardsBase/KeyAnimation.swift @@ -294,11 +294,7 @@ func centerKeyPopPath( /// - 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. - guard let key = key as? KeyboardKey, - let idx = key.idx, - let row = key.row else { - return - } + 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 @@ -365,59 +361,6 @@ func getKeyPopPath(key: UIButton, layer: CAShapeLayer, char: String, displayChar ) } - /* 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) && 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.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 - 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.35, y: labelVertPosition - ) - keyHoldPopChar.center = CGPoint( - x: frame.origin.x + key.frame.width * 0.35, y: labelVertPosition - ) - } - } */ layer.strokeColor = keyShadowColor layer.fillColor = keyColor.cgColor