97 // CLocationManagerServer::CLocationManagerServer() |
98 // CLocationManagerServer::CLocationManagerServer() |
98 // C++ constructor. |
99 // C++ constructor. |
99 // -------------------------------------------------------------------------- |
100 // -------------------------------------------------------------------------- |
100 // |
101 // |
101 CLocationManagerServer::CLocationManagerServer() |
102 CLocationManagerServer::CLocationManagerServer() |
102 : CPolicyServer( CActive::EPriorityStandard, |
103 : CPolicyServer( KLocManagerSessionPriority, |
103 KLocationManagerPolicy, |
104 KLocationManagerPolicy, |
104 ESharableSessions ), |
105 ESharableSessions ), |
105 iASW(NULL), |
106 iASW(NULL), |
106 iTimer( NULL ), |
107 iTimer( NULL ), |
107 iSessionReady( EFalse ), |
108 iSessionReady( EFalse ), |
147 |
144 |
148 iASW = new (ELeave) CActiveSchedulerWait(); |
145 iASW = new (ELeave) CActiveSchedulerWait(); |
149 |
146 |
150 iNwRegistrationStatusHandler = CNwRegistrationStatusHandler::NewL(iPhone); |
147 iNwRegistrationStatusHandler = CNwRegistrationStatusHandler::NewL(iPhone); |
151 |
148 |
152 iMdeSession = CMdESession::NewL( *this ); |
|
153 iLocationRecord = CLocationRecord::NewL(*this, iPhone); |
149 iLocationRecord = CLocationRecord::NewL(*this, iPhone); |
154 iTrackLog = CTrackLog::NewL(); |
150 iTrackLog = CTrackLog::NewL(); |
155 |
151 iMdeSession = CMdESession::NewL( *this ); |
156 iASW->Start(); |
152 |
|
153 iLocationRecord->SetObserver( this ); |
|
154 |
|
155 iLocationRecord->SetAddObserver( iTrackLog ); |
|
156 |
|
157 iTrackLog->AddGpxObserver( this ); |
|
158 |
|
159 CRepository* repository = CRepository::NewLC( KRepositoryUid ); |
|
160 TInt err = repository->Get( KLocationTrailShutdownTimer, iLocManStopDelay ); |
|
161 |
|
162 LOG1("iLocManStopDelay:%d", iLocManStopDelay); |
|
163 |
|
164 if ( err != KErrNone ) |
|
165 { |
|
166 LOG1("iLocManStopDelay err:%d", err); |
|
167 iLocManStopDelay = KLocationTrailShutdownDelay; |
|
168 } |
|
169 |
|
170 err = repository->Get( KLocationTrailRemapShutdownTimer, iLocManStopRemapDelay ); |
|
171 CleanupStack::PopAndDestroy( repository ); |
|
172 |
|
173 LOG1("iLocManStopRemapDelay:%d", iLocManStopRemapDelay); |
|
174 |
|
175 if ( err != KErrNone ) |
|
176 { |
|
177 LOG1("iLocManStopRemapDelay err:%d", err); |
|
178 iLocManStopRemapDelay = KLocationTrailRemapShutdownDelay; |
|
179 } |
|
180 |
|
181 if( !iSessionReady ) |
|
182 { |
|
183 iASW->Start(); |
|
184 } |
|
185 |
157 delete iASW; |
186 delete iASW; |
158 iASW = NULL; |
187 iASW = NULL; |
159 if(iSessionReady) |
188 |
|
189 if( iSessionReady ) |
160 { |
190 { |
161 LOG("Session is ready to give service"); |
191 LOG("Session is ready to give service"); |
162 |
|
163 iLocationRecord->SetObserver( this ); |
|
164 |
|
165 iLocationRecord->SetAddObserver( iTrackLog ); |
|
166 |
|
167 iTrackLog->AddGpxObserver( this ); |
|
168 |
|
169 CRepository* repository = CRepository::NewLC( KRepositoryUid ); |
|
170 TInt err = repository->Get( KLocationTrailShutdownTimer, iLocManStopDelay ); |
|
171 |
|
172 LOG1("iLocManStopDelay:%d", iLocManStopDelay); |
|
173 |
|
174 if ( err != KErrNone ) |
|
175 { |
|
176 LOG1("iLocManStopDelay err:%d", err); |
|
177 iLocManStopDelay = KLocationTrailShutdownDelay; |
|
178 } |
|
179 |
|
180 err = repository->Get( KLocationTrailRemapShutdownTimer, iLocManStopRemapDelay ); |
|
181 CleanupStack::PopAndDestroy( repository ); |
|
182 |
|
183 LOG1("iLocManStopRemapDelay:%d", iLocManStopRemapDelay); |
|
184 |
|
185 if ( err != KErrNone ) |
|
186 { |
|
187 LOG1("iLocManStopRemapDelay err:%d", err); |
|
188 iLocManStopRemapDelay = KLocationTrailRemapShutdownDelay; |
|
189 } |
|
190 |
|
191 //Create the instance of the geotagging timer object |
192 //Create the instance of the geotagging timer object |
192 // Create timer, if n/w or reverse geo code based feature flag is enabled |
193 // Create timer, if n/w or reverse geo code based feature flag is enabled |
193 #if defined(LOC_REVERSEGEOCODE) || defined(LOC_GEOTAGGING_CELLID) |
194 #if defined(LOC_REVERSEGEOCODE) || defined(LOC_GEOTAGGING_CELLID) |
194 iGeoTagTimer = CLocationGeoTagTimerAO::NewL(*iMdeSession, *this); |
195 iGeoTagTimer = CLocationGeoTagTimerAO::NewL(*iMdeSession, *this); |
195 //Schedule a task for geotagging every day at 3.00 AM |
196 //Schedule a task for geotagging every day at 3.00 AM |