From f000196e74e989ac4ca6387b76c9b938b5c4e61d Mon Sep 17 00:00:00 2001 From: rachytski Date: Tue, 22 Mar 2011 00:54:04 +0200 Subject: [PATCH] [IPHONE] closing model caches on handling EnterBackground. --- iphone/Maps/Classes/MapViewController.h | 1 + iphone/Maps/Classes/MapViewController.mm | 17 +++++++++++++++-- iphone/Maps/Classes/MapsAppDelegate.mm | 5 +++++ map/framework.hpp | 15 +++++++++------ 4 files changed, 30 insertions(+), 8 deletions(-) diff --git a/iphone/Maps/Classes/MapViewController.h b/iphone/Maps/Classes/MapViewController.h index f0158cdbe6..9c36872a52 100644 --- a/iphone/Maps/Classes/MapViewController.h +++ b/iphone/Maps/Classes/MapViewController.h @@ -42,6 +42,7 @@ withConfidenceRadius: (double) confidenceRadius // called when app is terminated by system - (void) OnTerminate; +- (void) OnEnterForeground; - (void) OnEnterBackground; - (void) Invalidate; diff --git a/iphone/Maps/Classes/MapViewController.mm b/iphone/Maps/Classes/MapViewController.mm index ed095def64..0daca3f93c 100644 --- a/iphone/Maps/Classes/MapViewController.mm +++ b/iphone/Maps/Classes/MapViewController.mm @@ -312,7 +312,8 @@ NSInteger compareAddress(UITouch * l, UITouch * r, void * context) - (void) OnTerminate { - [self OnEnterBackground]; + if (m_framework) + m_framework->SaveState(); } - (void) Invalidate @@ -328,7 +329,19 @@ NSInteger compareAddress(UITouch * l, UITouch * r, void * context) { if (m_framework) { // save world rect for next launch - m_framework->SaveState(); + m_framework->SetUpdatesEnabled(false); + m_framework->SaveState(); + m_framework->EnterBackground(); + } +} + +- (void) OnEnterForeground +{ + if (m_framework) + { + m_framework->EnterForeground(); + if (!m_framework->SetUpdatesEnabled(true)) + m_framework->Invalidate(); } } diff --git a/iphone/Maps/Classes/MapsAppDelegate.mm b/iphone/Maps/Classes/MapsAppDelegate.mm index e82f2410c0..1695869bbc 100644 --- a/iphone/Maps/Classes/MapsAppDelegate.mm +++ b/iphone/Maps/Classes/MapsAppDelegate.mm @@ -24,6 +24,11 @@ [mapViewController OnEnterBackground]; } +- (void) applicationWillEnterForeground: (UIApplication *) application +{ + [mapViewController OnEnterForeground]; +} + - (void) applicationDidFinishLaunching: (UIApplication *) application { // Add the tab bar controller's current view as a subview of the window diff --git a/map/framework.hpp b/map/framework.hpp index e8b8257b70..3c8d7fbadd 100644 --- a/map/framework.hpp +++ b/map/framework.hpp @@ -456,38 +456,41 @@ public: void MemoryWarning() { + // clearing caches on memory warning. m_model.ClearCaches(); - m_informationDisplay.memoryWarning(); + LOG(LINFO, ("MemoryWarning")); +/* m_informationDisplay.memoryWarning(); m_renderQueue.memoryWarning(); if (m_windowHandle) m_windowHandle->drawer()->screen()->memoryWarning(); if (m_resourceManager) - m_resourceManager->memoryWarning(); + m_resourceManager->memoryWarning();*/ } void EnterBackground() { + // clearing caches on entering background. m_model.ClearCaches(); - m_renderQueue.enterBackground(); +/* m_renderQueue.enterBackground(); if (m_windowHandle) m_windowHandle->drawer()->screen()->enterBackground(); if (m_resourceManager) - m_resourceManager->enterBackground(); + m_resourceManager->enterBackground();*/ } void EnterForeground() { - if (m_resourceManager) +/* if (m_resourceManager) m_resourceManager->enterForeground(); if (m_windowHandle) m_windowHandle->drawer()->screen()->enterForeground(); - m_renderQueue.enterForeground(); + m_renderQueue.enterForeground();*/ } void CenterViewport()