Files
phonegap-plugins/iOS/UniqueIdentifier/UniqueIdentifier.m
2012-05-08 11:59:58 -04:00

69 lines
2.6 KiB
Objective-C

//
// UniqueIdentifier.m
// UniqueIdentifierPlugin
//
// Created by Andrew Thorp on 4/13/12
//
//
// THIS SOFTWARE IS PROVIDED BY THE ANDREW THORP "AS IS" AND ANY EXPRESS OR
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
// EVENT SHALL ANDREW TRICE OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
#import "UniqueIdentifier.h"
#define UUID_USER_DEFAULTS_KEY @"UUID"
@implementation UniqueIdentifier
@synthesize callbackID;
NSString* UNIQUE_IDENTIFIER_OK = @"OK";
NSString* UNIQUE_IDENTIFIER_ERROR = @"ERROR";
- (void) generateUUID:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options
{
self.callbackID = [arguments pop];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults stringForKey:UUID_USER_DEFAULTS_KEY] == nil) {
uuid = CFUUIDCreate(NULL);
if (uuid) {
uuidString = (NSString *)CFUUIDCreateString(NULL, uuid);
CFRelease(uuid);
}
[defaults setObject:uuidString forKey:UUID_USER_DEFAULTS_KEY];
[defaults synchronize];
}
NSString *uniqueIdentifier = [defaults stringForKey:UUID_USER_DEFAULTS_KEY];
CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString: uniqueIdentifier];
[self writeJavascript: [pluginResult toSuccessCallbackString:self.callbackID]];
}
- (void) getUUID:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options
{
self.callbackID = [arguments pop];
CDVPluginResult* pluginResult;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults stringForKey:UUID_USER_DEFAULTS_KEY] == nil){
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString: UNIQUE_IDENTIFIER_ERROR];
[self writeJavascript: [pluginResult toErrorCallbackString:self.callbackID]];
} else {
NSString *uniqueIdentifier = [defaults stringForKey:UUID_USER_DEFAULTS_KEY];
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString: uniqueIdentifier];
[self writeJavascript: [pluginResult toSuccessCallbackString:self.callbackID]];
}
}
@end