Skip to content

Commit b4194bc

Browse files
committed
Add locale extension
1 parent 8d7cf12 commit b4194bc

File tree

4 files changed

+21
-22
lines changed

4 files changed

+21
-22
lines changed

firefox-ios/Client.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1048,6 +1048,7 @@
10481048
8A7C12612E01DB0F00F2D7FA /* SearchBarCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A7C12602E01DB0C00F2D7FA /* SearchBarCell.swift */; };
10491049
8A7D08E32CAAF7C30035999C /* HomepageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A7D08E22CAAF7C30035999C /* HomepageViewController.swift */; };
10501050
8A7D1AC52BA3542600162F4B /* splashScreen.json in Resources */ = {isa = PBXBuildFile; fileRef = 8A7D1AC42BA3542600162F4B /* splashScreen.json */; };
1051+
8A8053B32E6A1BBF00FEDDA4 /* Locale+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A8053B22E6A1BB300FEDDA4 /* Locale+Extension.swift */; };
10511052
8A8158CB2C2C77B000281F72 /* MicrosurveyTelemetry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A8158CA2C2C77B000281F72 /* MicrosurveyTelemetry.swift */; };
10521053
8A827E302C20C7F5008D5E3C /* MicrosurveyMiddlewareTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A827E2E2C20C55E008D5E3C /* MicrosurveyMiddlewareTests.swift */; };
10531054
8A827E322C20C8AE008D5E3C /* MockMicrosurveySurfaceManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A827E312C20C8AE008D5E3C /* MockMicrosurveySurfaceManager.swift */; };
@@ -8748,6 +8749,7 @@
87488749
8A7C12602E01DB0C00F2D7FA /* SearchBarCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchBarCell.swift; sourceTree = "<group>"; };
87498750
8A7D08E22CAAF7C30035999C /* HomepageViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomepageViewController.swift; sourceTree = "<group>"; };
87508751
8A7D1AC42BA3542600162F4B /* splashScreen.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = splashScreen.json; sourceTree = "<group>"; };
8752+
8A8053B22E6A1BB300FEDDA4 /* Locale+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Locale+Extension.swift"; sourceTree = "<group>"; };
87518753
8A8158CA2C2C77B000281F72 /* MicrosurveyTelemetry.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MicrosurveyTelemetry.swift; sourceTree = "<group>"; };
87528754
8A827E2E2C20C55E008D5E3C /* MicrosurveyMiddlewareTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MicrosurveyMiddlewareTests.swift; sourceTree = "<group>"; };
87538755
8A827E312C20C8AE008D5E3C /* MockMicrosurveySurfaceManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockMicrosurveySurfaceManager.swift; sourceTree = "<group>"; };
@@ -11768,6 +11770,7 @@
1176811770
28EADE5C1AFC3A6D007FB2FB /* Extensions */ = {
1176911771
isa = PBXGroup;
1177011772
children = (
11773+
8A8053B22E6A1BB300FEDDA4 /* Locale+Extension.swift */,
1177111774
9609F4C926B57CE800F81493 /* Calendar+Extension.swift */,
1177211775
E1442FBE294782B6003680B0 /* CGRect+Extension.swift */,
1177311776
4393931F29AC6CE900DC5A85 /* EnvironmentValues+Extension.swift */,
@@ -18889,6 +18892,7 @@
1888918892
E6327A641BF6438E008D12E0 /* DebugSettingsBundleOptions.swift in Sources */,
1889018893
EDBD5C1C2DFA248E0050A59A /* HistoryTelemetry.swift in Sources */,
1889118894
F85C7EDD27109241004BDBA4 /* PasswordManagerOnboardingViewController.swift in Sources */,
18895+
8A8053B32E6A1BBF00FEDDA4 /* Locale+Extension.swift in Sources */,
1889218896
612194E32CE507CF001664BB /* WallpaperBackgroundView.swift in Sources */,
1889318897
D8FDEB57220CFE970069A582 /* UIImage+ImageEffects.m in Sources */,
1889418898
0BDDB3462CA6E43A00D501DF /* BookmarksSaver.swift in Sources */,

firefox-ios/Client/Application/RemoteSettings/Application Services/ASSearchEngineProvider.swift

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ final class ASSearchEngineProvider: SearchEngineProvider, Sendable {
115115
possibleLanguageIdentifier: [String],
116116
completion: @escaping ([OpenSearchEngine]) -> Void ) {
117117
let localeCode = localeCode(from: locale)
118-
let region = regionCode(from: locale)
118+
let region = locale.regionCode()
119119
let logger = self.logger
120120
guard let iconPopulator = iconDataFetcher, let selector else {
121121
let logExtra1 = iconDataFetcher == nil ? "nil" : "ok"
@@ -174,14 +174,4 @@ final class ASSearchEngineProvider: SearchEngineProvider, Sendable {
174174
return identifier
175175
}
176176
}
177-
178-
private func regionCode(from locale: Locale) -> String {
179-
let systemRegion: String?
180-
if #available(iOS 17, *) {
181-
systemRegion = (locale as NSLocale).regionCode
182-
} else {
183-
systemRegion = (locale as NSLocale).countryCode
184-
}
185-
return systemRegion ?? locale.identifier.components(separatedBy: "-").last ?? "US"
186-
}
187177
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// This Source Code Form is subject to the terms of the Mozilla Public
2+
// License, v. 2.0. If a copy of the MPL was not distributed with this
3+
// file, You can obtain one at http://mozilla.org/MPL/2.0/
4+
5+
extension Locale {
6+
func regionCode() -> String {
7+
let systemRegion: String?
8+
if #available(iOS 17, *) {
9+
systemRegion = (self as NSLocale).regionCode
10+
} else {
11+
systemRegion = (self as NSLocale).countryCode
12+
}
13+
return systemRegion ?? self.identifier.components(separatedBy: "-").last ?? "US"
14+
}
15+
}

firefox-ios/Client/Telemetry/FxSuggestTelemetry.swift

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class FxSuggestTelemetry {
1818
private let systemRegion: String
1919

2020
init(locale: Locale = Locale.current) {
21-
systemRegion = Self.regionCode(from: locale)
21+
systemRegion = locale.regionCode()
2222
}
2323

2424
func clickEvent(telemetryInfo: RustFirefoxSuggestionTelemetryInfo, position: Int) {
@@ -96,14 +96,4 @@ class FxSuggestTelemetry {
9696
}
9797
GleanMetrics.Pings.shared.fxSuggest.submit()
9898
}
99-
100-
private static func regionCode(from locale: Locale) -> String {
101-
let systemRegion: String?
102-
if #available(iOS 17, *) {
103-
systemRegion = (locale as NSLocale).regionCode
104-
} else {
105-
systemRegion = (locale as NSLocale).countryCode
106-
}
107-
return systemRegion ?? locale.identifier.components(separatedBy: "-").last ?? "US"
108-
}
10999
}

0 commit comments

Comments
 (0)