Skip to content

Commit e986cc2

Browse files
committed
Move language files to user module
* Rewrite the files LanguageContext, LanguageProvider, LanguageProviderAppDefined, LanguageProviderDevice in Swift * They live in the User module
1 parent d45a79b commit e986cc2

File tree

8 files changed

+73
-225
lines changed

8 files changed

+73
-225
lines changed

iOS_SDK/OneSignalSDK/OneSignal.xcodeproj/project.pbxproj

Lines changed: 24 additions & 48 deletions
Large diffs are not rendered by default.

iOS_SDK/OneSignalSDK/Source/LanguageProviderAppDefined.m renamed to iOS_SDK/OneSignalSDK/OneSignalUser/Source/Language/LanguageContext.swift

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**
22
* Modified MIT License
33
*
4-
* Copyright 2021 OneSignal
4+
* Copyright 2023 OneSignal
55
*
66
* Permission is hereby granted, free of charge, to any person obtaining a copy
77
* of this software and associated documentation files (the "Software"), to deal
@@ -24,18 +24,24 @@
2424
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2525
* THE SOFTWARE.
2626
*/
27-
#import "LanguageProviderAppDefined.h"
28-
#import "OneSignalHelper.h"
29-
#import "LanguageContext.h"
3027

31-
@implementation LanguageProviderAppDefined
28+
import Foundation
29+
import OneSignalCore
3230

33-
- (void)setLanguage:(NSString *)language {
34-
[OneSignalUserDefaults.initStandard saveStringForKey:OSUD_LANGUAGE withValue:language];
35-
}
31+
public class LanguageContext {
32+
var strategy: LanguageProvider
3633

37-
- (NSString *)language {
38-
return [OneSignalUserDefaults.initStandard getSavedStringForKey:OSUD_LANGUAGE defaultValue:DEFAULT_LANGUAGE];
39-
}
34+
var language: String {
35+
return strategy.language
36+
}
4037

41-
@end
38+
init() {
39+
let languageAppDefined = OneSignalUserDefaults.initShared().getSavedString(forKey: OSUD_LANGUAGE, defaultValue: nil)
40+
41+
if languageAppDefined == nil {
42+
strategy = LanguageProviderDevice()
43+
} else {
44+
strategy = LanguageProviderAppDefined()
45+
}
46+
}
47+
}

iOS_SDK/OneSignalSDK/Source/LanguageProvider.h renamed to iOS_SDK/OneSignalSDK/OneSignalUser/Source/Language/LanguageProvider.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**
22
* Modified MIT License
33
*
4-
* Copyright 2021 OneSignal
4+
* Copyright 2023 OneSignal
55
*
66
* Permission is hereby granted, free of charge, to any person obtaining a copy
77
* of this software and associated documentation files (the "Software"), to deal
@@ -25,8 +25,8 @@
2525
* THE SOFTWARE.
2626
*/
2727

28-
@protocol LanguageProvider <NSObject>
28+
import Foundation
2929

30-
@property (readonly, nonnull)NSString* language;
31-
32-
@end
30+
protocol LanguageProvider {
31+
var language: String { get }
32+
}

iOS_SDK/OneSignalSDK/Source/LanguageProviderDevice.m renamed to iOS_SDK/OneSignalSDK/OneSignalUser/Source/Language/LanguageProviderAppDefined.swift

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**
22
* Modified MIT License
33
*
4-
* Copyright 2021 OneSignal
4+
* Copyright 2023 OneSignal
55
*
66
* Permission is hereby granted, free of charge, to any person obtaining a copy
77
* of this software and associated documentation files (the "Software"), to deal
@@ -25,17 +25,17 @@
2525
* THE SOFTWARE.
2626
*/
2727

28-
#import "LanguageProviderDevice.h"
29-
#import "OneSignalHelper.h"
30-
#import "LanguageContext.h"
28+
import Foundation
29+
import OneSignalCore
3130

32-
@implementation LanguageProviderDevice
31+
class LanguageProviderAppDefined: LanguageProvider {
32+
var language: String {
33+
get {
34+
return OneSignalUserDefaults.initShared().getSavedString(forKey: OSUD_LANGUAGE, defaultValue: DEFAULT_LANGUAGE) ?? DEFAULT_LANGUAGE
35+
}
3336

34-
- (NSString *)language {
35-
let preferredLanguages = [NSLocale preferredLanguages];
36-
if (preferredLanguages && preferredLanguages.count > 0)
37-
return [preferredLanguages objectAtIndex:0];
38-
return DEFAULT_LANGUAGE;
37+
set {
38+
OneSignalUserDefaults.initShared().saveString(forKey: OSUD_LANGUAGE, withValue: newValue)
39+
}
40+
}
3941
}
40-
41-
@end

iOS_SDK/OneSignalSDK/Source/LanguageContext.h renamed to iOS_SDK/OneSignalSDK/OneSignalUser/Source/Language/LanguageProviderDevice.swift

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**
22
* Modified MIT License
33
*
4-
* Copyright 2021 OneSignal
4+
* Copyright 2023 OneSignal
55
*
66
* Permission is hereby granted, free of charge, to any person obtaining a copy
77
* of this software and associated documentation files (the "Software"), to deal
@@ -25,17 +25,18 @@
2525
* THE SOFTWARE.
2626
*/
2727

28-
#import <Foundation/Foundation.h>
29-
#import "LanguageProvider.h"
28+
import Foundation
29+
import OneSignalCore
3030

31-
NS_ASSUME_NONNULL_BEGIN
31+
class LanguageProviderDevice: LanguageProvider {
32+
var language: String {
33+
get {
34+
let preferredLanguages = NSLocale.preferredLanguages
3235

33-
@interface LanguageContext : NSObject
34-
35-
- (void)setStrategy:(NSObject<LanguageProvider>*)strategy;
36-
37-
@property (nonatomic, nonnull)NSString* language;
38-
39-
@end
40-
41-
NS_ASSUME_NONNULL_END
36+
if !preferredLanguages.isEmpty {
37+
return preferredLanguages[0]
38+
}
39+
return DEFAULT_LANGUAGE
40+
}
41+
}
42+
}

iOS_SDK/OneSignalSDK/Source/LanguageContext.m

Lines changed: 0 additions & 57 deletions
This file was deleted.

iOS_SDK/OneSignalSDK/Source/LanguageProviderAppDefined.h

Lines changed: 0 additions & 39 deletions
This file was deleted.

iOS_SDK/OneSignalSDK/Source/LanguageProviderDevice.h

Lines changed: 0 additions & 39 deletions
This file was deleted.

0 commit comments

Comments
 (0)