You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by sh...@apache.org on 2012/08/01 04:58:54 UTC

ios commit: [CB-994] CDVLocalStorage core plugin does not fully backup when app setting "Application does not run in background" is YES

Updated Branches:
  refs/heads/master 75bcbce99 -> 2e06754d6


[CB-994] CDVLocalStorage core plugin does not fully backup when app setting "Application does not run in background" is YES


Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/commit/2e06754d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/tree/2e06754d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/diff/2e06754d

Branch: refs/heads/master
Commit: 2e06754d6240f37b38366e8fc3e852205cd8efdc
Parents: 75bcbce
Author: Shazron Abdullah <sh...@apache.org>
Authored: Tue Jul 31 19:58:42 2012 -0700
Committer: Shazron Abdullah <sh...@apache.org>
Committed: Tue Jul 31 19:58:42 2012 -0700

----------------------------------------------------------------------
 CordovaLib/Classes/CDVLocalStorage.m |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/2e06754d/CordovaLib/Classes/CDVLocalStorage.m
----------------------------------------------------------------------
diff --git a/CordovaLib/Classes/CDVLocalStorage.m b/CordovaLib/Classes/CDVLocalStorage.m
index 5dc36da..58686ba 100644
--- a/CordovaLib/Classes/CDVLocalStorage.m
+++ b/CordovaLib/Classes/CDVLocalStorage.m
@@ -316,8 +316,18 @@
 - (void) onResignActive
 {
     UIDevice* device = [UIDevice currentDevice];
+    NSNumber* exitsOnSuspend = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"UIApplicationExitsOnSuspend"];
+
+    BOOL isMultitaskingSupported = [device respondsToSelector:@selector(isMultitaskingSupported)] && [device isMultitaskingSupported];
+    if (exitsOnSuspend == nil) { // if it's missing, it should be NO (i.e. multi-tasking on by default)
+        exitsOnSuspend = [NSNumber numberWithBool:NO];
+    }
     
-    if ([device respondsToSelector:@selector(isMultitaskingSupported)] && [device isMultitaskingSupported]) 
+    if (exitsOnSuspend)
+    {
+        [self backup:nil withDict:nil];
+    } 
+    else if (isMultitaskingSupported) 
     {
         __block UIBackgroundTaskIdentifier backgroundTaskID = UIBackgroundTaskInvalid;