From 8a0c0dd281a01a03b3c1f2694df44b944d0c1df1 Mon Sep 17 00:00:00 2001 From: Wei Zhang Date: Thu, 5 Mar 2015 22:31:35 +0000 Subject: [PATCH 1/3] UUID Support --- platform/platform.android.ts | 16 ++++++++++++++-- platform/platform.d.ts | 9 +++++++-- platform/platform.ios.ts | 12 ++++++++++++ 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/platform/platform.android.ts b/platform/platform.android.ts index 686eb2100..816dc167f 100644 --- a/platform/platform.android.ts +++ b/platform/platform.android.ts @@ -16,6 +16,7 @@ export class device implements definition.device { private static _osVersion: string; private static _sdkVersion: string; private static _deviceType: string; + private static _uuid: string; static get os(): string { return platformNames.android; @@ -48,7 +49,7 @@ export class device implements definition.device { static get deviceType(): string { if (!device._deviceType) { var dips = Math.min(screen.mainScreen.widthPixels, screen.mainScreen.heightPixels) / screen.mainScreen.scale; - + // If the device has more than 600 dips it is considered to be a tablet. if (dips >= device.MIN_TABLET_PIXELS) { device._deviceType = enums.DeviceType.Tablet; @@ -60,6 +61,17 @@ export class device implements definition.device { return device._deviceType; } + + static get uuid(): string { + if (!device._uuid) { + device._uuid = android.provider.Settings.Secure.getString( + application.android.context.getContentResolver(), + android.provider.Settings.Secure.ANDROID_ID + ); + } + + return device._uuid; + } } var mainScreenInfo: definition.ScreenMetrics; @@ -80,4 +92,4 @@ export class screen implements definition.screen { } return mainScreenInfo; } -} \ No newline at end of file +} diff --git a/platform/platform.d.ts b/platform/platform.d.ts index 2901f0de2..5339070b6 100644 --- a/platform/platform.d.ts +++ b/platform/platform.d.ts @@ -3,7 +3,7 @@ * Contains all kinds of information about the device, its operating system and software. */ declare module "platform" { - + /* * Enum holding platform names. */ @@ -45,6 +45,11 @@ declare module "platform" { * Available values: "phone", "tablet". */ static deviceType: string; + + /** + * Gets the uuid + */ + static uuid: string; } /** @@ -86,4 +91,4 @@ declare module "platform" { */ static mainScreen: ScreenMetrics; } -} \ No newline at end of file +} diff --git a/platform/platform.ios.ts b/platform/platform.ios.ts index 6a2fffdc5..8ba1282bd 100644 --- a/platform/platform.ios.ts +++ b/platform/platform.ios.ts @@ -55,6 +55,18 @@ export class device implements definition.device { return device._deviceType; } + + static get uuid(): string { + if (!device._uuid) { + /*NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults]; + var UUID_KEY = @"CDVUUID"; + CFUUIDRef uuidRef = CFUUIDCreate(kCFAllocatorDefault); + CFStringRef uuidString = CFUUIDCreateString(kCFAllocatorDefault, uuidRef); + */ + } + + return device._uuid; + } } var mainScreenInfo: definition.ScreenMetrics = null; From 4bb47f3f14d051f5958d425f67af68531eb1a9fa Mon Sep 17 00:00:00 2001 From: Wei Date: Fri, 6 Mar 2015 10:09:43 +0000 Subject: [PATCH 2/3] Get uuid for iOS --- platform/platform.ios.ts | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/platform/platform.ios.ts b/platform/platform.ios.ts index 8ba1282bd..e0fa09d36 100644 --- a/platform/platform.ios.ts +++ b/platform/platform.ios.ts @@ -58,11 +58,8 @@ export class device implements definition.device { static get uuid(): string { if (!device._uuid) { - /*NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults]; - var UUID_KEY = @"CDVUUID"; - CFUUIDRef uuidRef = CFUUIDCreate(kCFAllocatorDefault); - CFStringRef uuidString = CFUUIDCreateString(kCFAllocatorDefault, uuidRef); - */ + var uuidRef = CFUUIDCreate(kCFAllocatorDefault); + device._uuid = CFUUIDCreateString(kCFAllocatorDefault, uuidRef); } return device._uuid; From ed85fdb65bcc8130f3b005389ee325c878a7fa9b Mon Sep 17 00:00:00 2001 From: Erjan Gavalji Date: Mon, 30 Mar 2015 16:52:09 +0300 Subject: [PATCH 3/3] Implement the GUID caching in iOS --- platform/platform.ios.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/platform/platform.ios.ts b/platform/platform.ios.ts index e0fa09d36..da513f25b 100644 --- a/platform/platform.ios.ts +++ b/platform/platform.ios.ts @@ -57,12 +57,18 @@ export class device implements definition.device { } static get uuid(): string { - if (!device._uuid) { + var userDefaults = NSUserDefaults.standardUserDefaults(); + var uuid_key = "TNSUUID"; + var app_uuid = userDefaults.stringForKey(uuid_key); + + if (!app_uuid) { var uuidRef = CFUUIDCreate(kCFAllocatorDefault); - device._uuid = CFUUIDCreateString(kCFAllocatorDefault, uuidRef); + app_uuid = CFUUIDCreateString(kCFAllocatorDefault, uuidRef); + userDefaults.setObjectForKey(app_uuid, uuid_key); + userDefaults.synchronize(); } - return device._uuid; + return app_uuid; } }