DBAccountInfo.m 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. //
  2. // DBAccountInfo.m
  3. // DropboxSDK
  4. //
  5. // Created by Brian Smith on 5/3/10.
  6. // Copyright 2010 Dropbox, Inc. All rights reserved.
  7. //
  8. #import "DBAccountInfo.h"
  9. @implementation DBAccountInfo
  10. - (id)initWithDictionary:(NSDictionary*)dict {
  11. if ((self = [super init])) {
  12. email = [[dict objectForKey:@"email"] retain];
  13. country = [[dict objectForKey:@"country"] retain];
  14. displayName = [[dict objectForKey:@"display_name"] retain];
  15. if ([dict objectForKey:@"quota_info"]) {
  16. quota = [[DBQuota alloc] initWithDictionary:[dict objectForKey:@"quota_info"]];
  17. }
  18. userId = [[[dict objectForKey:@"uid"] stringValue] retain];
  19. referralLink = [[dict objectForKey:@"referral_link"] retain];
  20. original = [dict retain];
  21. }
  22. return self;
  23. }
  24. - (void)dealloc {
  25. [email release];
  26. [country release];
  27. [displayName release];
  28. [quota release];
  29. [userId release];
  30. [referralLink release];
  31. [original release];
  32. [super dealloc];
  33. }
  34. @synthesize email;
  35. @synthesize country;
  36. @synthesize displayName;
  37. @synthesize quota;
  38. @synthesize userId;
  39. @synthesize referralLink;
  40. #pragma mark NSCoding methods
  41. - (void)encodeWithCoder:(NSCoder*)coder {
  42. [coder encodeObject:original forKey:@"original"];
  43. }
  44. - (id)initWithCoder:(NSCoder*)coder {
  45. if ([coder containsValueForKey:@"original"]) {
  46. return [self initWithDictionary:[coder decodeObjectForKey:@"original"]];
  47. } else {
  48. NSMutableDictionary *mDict = [NSMutableDictionary dictionary];
  49. [mDict setObject:[coder decodeObjectForKey:@"country"] forKey:@"country"];
  50. [mDict setObject:[coder decodeObjectForKey:@"displayName"] forKey:@"display_name"];
  51. DBQuota *tempQuota = [coder decodeObjectForKey:@"quota"];
  52. NSDictionary *quotaDict =
  53. [NSDictionary dictionaryWithObjectsAndKeys:
  54. [NSNumber numberWithLongLong:tempQuota.normalConsumedBytes], @"normal",
  55. [NSNumber numberWithLongLong:tempQuota.sharedConsumedBytes], @"shared",
  56. [NSNumber numberWithLongLong:tempQuota.totalBytes], @"quota", nil];
  57. [mDict setObject:quotaDict forKey:@"quota_info"];
  58. NSNumber *uid = [NSNumber numberWithLongLong:[[coder decodeObjectForKey:@"userId"] longLongValue]];
  59. [mDict setObject:uid forKey:@"uid"];
  60. [mDict setObject:[coder decodeObjectForKey:@"referralLink"] forKey:@"referral_link"];
  61. if ([coder containsValueForKey:@"email"]) {
  62. [mDict setObject:[coder decodeObjectForKey:@"email"] forKey:@"email"];
  63. }
  64. return [self initWithDictionary:mDict];
  65. }
  66. }
  67. @end