Commit 818bc6a7 authored by Rebecca Hughes's avatar Rebecca Hughes

Merge pull request #30 from mikefowler/master

Add support for device country
parents 033e7370 09cc01de
......@@ -27,9 +27,9 @@ RCT_EXPORT_MODULE()
- (NSString*) deviceId
{
struct utsname systemInfo;
uname(&systemInfo);
return [NSString stringWithCString:systemInfo.machine
encoding:NSUTF8StringEncoding];
}
......@@ -37,9 +37,9 @@ RCT_EXPORT_MODULE()
- (NSString*) deviceName
{
static NSDictionary* deviceNamesByCode = nil;
if (!deviceNamesByCode) {
deviceNamesByCode = @{@"i386" :@"Simulator",
@"x86_64" :@"Simulator",
@"iPod1,1" :@"iPod Touch", // (Original)
......@@ -100,12 +100,12 @@ RCT_EXPORT_MODULE()
@"AppleTV5,3":@"Apple TV", // Apple TV (4th Generation)
};
}
NSString* deviceName = [deviceNamesByCode objectForKey:self.deviceId];
if (!deviceName) {
// Not found on database. At least guess main device type from string contents:
if ([self.deviceId rangeOfString:@"iPod"].location != NSNotFound) {
deviceName = @"iPod Touch";
}
......@@ -132,6 +132,12 @@ RCT_EXPORT_MODULE()
return language;
}
- (NSString*) deviceCountry
{
NSString *country = [[NSLocale currentLocale] objectForKey:NSLocaleCountryCode];
return country;
}
- (NSDictionary *)constantsToExport
{
UIDevice *currentDevice = [UIDevice currentDevice];
......@@ -146,6 +152,7 @@ RCT_EXPORT_MODULE()
@"deviceId": self.deviceId,
@"deviceName": currentDevice.name,
@"deviceLocale": self.deviceLocale,
@"deviceCountry": self.deviceCountry,
@"uniqueId": uniqueId,
@"bundleId": [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleIdentifier"],
@"appVersion": [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"],
......@@ -156,4 +163,3 @@ RCT_EXPORT_MODULE()
}
@end
......@@ -44,6 +44,11 @@ public class RNDeviceModule extends ReactContextBaseJavaModule {
}
}
private String getCurrentCountry() {
Locale current = getReactApplicationContext().getResources().getConfiguration().locale;
return current.getCountry();
}
@Override
public @Nullable Map<String, Object> getConstants() {
HashMap<String, Object> constants = new HashMap<String, Object>();
......@@ -77,6 +82,7 @@ public class RNDeviceModule extends ReactContextBaseJavaModule {
constants.put("model", Build.MODEL);
constants.put("deviceId", Build.BOARD);
constants.put("deviceLocale", this.getCurrentLanguage());
constants.put("deviceCountry", this.getCurrentCountry());
constants.put("uniqueId", Secure.getString(this.reactContext.getContentResolver(), Secure.ANDROID_ID));
constants.put("systemManufacturer", Build.MANUFACTURER);
constants.put("bundleId", packageName);
......
......@@ -43,5 +43,8 @@ module.exports = {
},
getDeviceLocale: function() {
return RNDeviceInfo.deviceLocale;
}
},
getDeviceCountry: function() {
return RNDeviceInfo.deviceCountry;
},
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment