mirror of
https://github.com/godotengine/godot.git
synced 2024-12-09 10:09:20 +08:00
iOS: simplify OS value retrieval
This commit is contained in:
parent
241e709462
commit
f9989a1a58
@ -44,7 +44,6 @@
|
||||
|
||||
@interface GodotViewRenderer ()
|
||||
|
||||
@property(assign, nonatomic) BOOL hasFinishedLocaleSetup;
|
||||
@property(assign, nonatomic) BOOL hasFinishedProjectDataSetup;
|
||||
@property(assign, nonatomic) BOOL hasStartedMain;
|
||||
@property(assign, nonatomic) BOOL hasFinishedSetup;
|
||||
@ -58,9 +57,8 @@
|
||||
return NO;
|
||||
}
|
||||
|
||||
if (!self.hasFinishedLocaleSetup) {
|
||||
[self setupLocaleAndUUID];
|
||||
return YES;
|
||||
if (!OS::get_singleton()) {
|
||||
exit(0);
|
||||
}
|
||||
|
||||
if (!self.hasFinishedProjectDataSetup) {
|
||||
@ -79,33 +77,6 @@
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (void)setupLocaleAndUUID {
|
||||
self.hasFinishedLocaleSetup = YES;
|
||||
|
||||
if (!OS::get_singleton()) {
|
||||
exit(0);
|
||||
}
|
||||
|
||||
NSString *locale_code = [[NSLocale currentLocale] localeIdentifier];
|
||||
OSIPhone::get_singleton()->set_locale(String::utf8([locale_code UTF8String]));
|
||||
|
||||
NSString *uuid;
|
||||
if ([[UIDevice currentDevice] respondsToSelector:@selector(identifierForVendor)]) {
|
||||
uuid = [UIDevice currentDevice].identifierForVendor.UUIDString;
|
||||
} else {
|
||||
// before iOS 6, so just generate an identifier and store it
|
||||
uuid = [[NSUserDefaults standardUserDefaults] objectForKey:@"identiferForVendor"];
|
||||
if (!uuid) {
|
||||
CFUUIDRef cfuuid = CFUUIDCreate(NULL);
|
||||
uuid = [(NSString *)CFUUIDCreateString(NULL, cfuuid) autorelease];
|
||||
CFRelease(cfuuid);
|
||||
[[NSUserDefaults standardUserDefaults] setObject:uuid forKey:@"identifierForVendor"];
|
||||
}
|
||||
}
|
||||
|
||||
OSIPhone::get_singleton()->set_unique_id(String::utf8([uuid UTF8String]));
|
||||
}
|
||||
|
||||
- (void)setupProjectData {
|
||||
self.hasFinishedProjectDataSetup = YES;
|
||||
|
||||
|
@ -84,8 +84,6 @@ private:
|
||||
virtual void finalize() override;
|
||||
|
||||
String user_data_dir;
|
||||
String unique_id;
|
||||
String locale_code;
|
||||
|
||||
bool is_focused = false;
|
||||
|
||||
@ -118,10 +116,8 @@ public:
|
||||
void set_user_data_dir(String p_dir);
|
||||
virtual String get_user_data_dir() const override;
|
||||
|
||||
void set_locale(String p_locale);
|
||||
virtual String get_locale() const override;
|
||||
|
||||
void set_unique_id(String p_id);
|
||||
virtual String get_unique_id() const override;
|
||||
|
||||
virtual void vibrate_handheld(int p_duration_ms = 500) override;
|
||||
|
@ -305,20 +305,20 @@ String OSIPhone::get_user_data_dir() const {
|
||||
return user_data_dir;
|
||||
}
|
||||
|
||||
void OSIPhone::set_locale(String p_locale) {
|
||||
locale_code = p_locale;
|
||||
}
|
||||
|
||||
String OSIPhone::get_locale() const {
|
||||
return locale_code;
|
||||
}
|
||||
NSString *preferedLanguage = [NSLocale preferredLanguages].firstObject;
|
||||
|
||||
void OSIPhone::set_unique_id(String p_id) {
|
||||
unique_id = p_id;
|
||||
if (preferedLanguage) {
|
||||
return String::utf8([preferedLanguage UTF8String]).replace("-", "_");
|
||||
}
|
||||
|
||||
NSString *localeIdentifier = [[NSLocale currentLocale] localeIdentifier];
|
||||
return String::utf8([localeIdentifier UTF8String]).replace("-", "_");
|
||||
}
|
||||
|
||||
String OSIPhone::get_unique_id() const {
|
||||
return unique_id;
|
||||
NSString *uuid = [UIDevice currentDevice].identifierForVendor.UUIDString;
|
||||
return String::utf8([uuid UTF8String]);
|
||||
}
|
||||
|
||||
void OSIPhone::vibrate_handheld(int p_duration_ms) {
|
||||
|
Loading…
Reference in New Issue
Block a user