9 * Initial Contributors: |
9 * Initial Contributors: |
10 * Nokia Corporation - initial contribution. |
10 * Nokia Corporation - initial contribution. |
11 * |
11 * |
12 * Contributors: |
12 * Contributors: |
13 * |
13 * |
14 * Description: Calendar state machine |
14 * Description: Calendar state machine |
15 * |
15 * |
16 */ |
16 */ |
17 |
|
18 |
17 |
19 |
18 |
20 // includes |
19 // includes |
21 #include "calendarui_debug.h" // Debug macros |
20 #include "calendarui_debug.h" // Debug macros |
22 #include "calenstate.h" // Calendar States |
21 #include "calenstate.h" // Calendar States |
47 { |
46 { |
48 TRACE_ENTRY_POINT; |
47 TRACE_ENTRY_POINT; |
49 |
48 |
50 TCalenCommand command; |
49 TCalenCommand command; |
51 MCalenCommandHandler* handler( NULL ); |
50 MCalenCommandHandler* handler( NULL ); |
52 iCallBackPackage = new( ELeave ) CCalenCallbackPackage( this, command, handler ); |
51 iCallBackPackage = new( ELeave ) CalenCallbackPackage( this, command, handler ); |
53 |
52 |
54 TRACE_EXIT_POINT; |
53 TRACE_EXIT_POINT; |
55 } |
54 } |
56 |
55 |
57 // ---------------------------------------------------------------------------- |
56 // ---------------------------------------------------------------------------- |
80 iCallBackPackage->SetCommandHandler(this, aCommand, aCommandHandler); |
79 iCallBackPackage->SetCommandHandler(this, aCommand, aCommandHandler); |
81 |
80 |
82 if( !iCmdCallback ) |
81 if( !iCmdCallback ) |
83 { |
82 { |
84 TCallBack callback( CommandCallback, iCallBackPackage ); |
83 TCallBack callback( CommandCallback, iCallBackPackage ); |
85 iCmdCallback = CCalenAsyncCallBack::NewL( callback, CActive::EPriorityHigh , iController ); |
84 iCmdCallback = CalenAsyncCallBack::NewL( callback, CActive::EPriorityHigh , iController ); |
86 } |
85 } |
87 |
86 |
88 TCallBack callback( CommandCallback, iCallBackPackage ); |
87 TCallBack callback( CommandCallback, iCallBackPackage ); |
89 |
88 |
90 iCmdCallback->Cancel(); |
89 iCmdCallback->Cancel(); |
103 TInt CCalenState::CommandCallback( TAny* aCommandStruct ) |
102 TInt CCalenState::CommandCallback( TAny* aCommandStruct ) |
104 { |
103 { |
105 TRACE_ENTRY_POINT; |
104 TRACE_ENTRY_POINT; |
106 TBool continueCommand(EFalse); |
105 TBool continueCommand(EFalse); |
107 |
106 |
108 CCalenCallbackPackage* package = static_cast<CCalenCallbackPackage*>( aCommandStruct ); |
107 CalenCallbackPackage* package = static_cast<CalenCallbackPackage*>( aCommandStruct ); |
109 continueCommand = package->HandleCallBack(); |
108 continueCommand = package->HandleCallBack(); |
110 |
109 |
111 TRACE_EXIT_POINT; |
110 TRACE_EXIT_POINT; |
112 return continueCommand; |
111 return continueCommand; |
113 } |
112 } |
126 switch( aNotification ) |
125 switch( aNotification ) |
127 { |
126 { |
128 case ECalenNotifyAppBackgrounded: |
127 case ECalenNotifyAppBackgrounded: |
129 { |
128 { |
130 CCalenStateMachine::TCalenStateIndex cachedState = aStateMachine.GetCurrentState(); |
129 CCalenStateMachine::TCalenStateIndex cachedState = aStateMachine.GetCurrentState(); |
131 if(cachedState != CCalenStateMachine::ECalenMapState) // Never send calendar to background state in MapState as maps will |
130 aStateMachine.SetCurrentState(CCalenStateMachine::ECalenBackgroundState); |
132 // launched in cahin mode not in stand alone mode |
131 aStateMachine.SetCurrentPreviousState(cachedState); |
133 { |
132 iOutstandingNotifications.InsertL(aNotification); |
134 aStateMachine.SetCurrentState(CCalenStateMachine::ECalenBackgroundState); |
133 aStateMachine.ActivateCurrentStateL(); |
135 aStateMachine.SetCurrentPreviousState(cachedState); |
134 |
136 iOutstandingNotifications.InsertL(aNotification); |
|
137 aStateMachine.ActivateCurrentStateL(); |
|
138 } |
|
139 } |
135 } |
140 break; |
136 break; |
141 default: |
137 default: |
142 iController.Notifier().BroadcastApprovedNotification( aNotification ); |
138 iController.Notifier().BroadcastApprovedNotification( aNotification ); |
143 break; |
139 break; |
183 TRACE_ENTRY_POINT; |
179 TRACE_ENTRY_POINT; |
184 TRACE_EXIT_POINT; |
180 TRACE_EXIT_POINT; |
185 } |
181 } |
186 |
182 |
187 // ---------------------------------------------------------------------------- |
183 // ---------------------------------------------------------------------------- |
188 // CCalenState::CCalenCallbackPackage::CCalenCallbackPackage |
184 // CCalenState::CalenCallbackPackage::CalenCallbackPackage |
189 // C++ constructor |
185 // C++ constructor |
190 // ---------------------------------------------------------------------------- |
186 // ---------------------------------------------------------------------------- |
191 CCalenState::CCalenCallbackPackage::CCalenCallbackPackage( CCalenState* aSelf, |
187 CCalenState::CalenCallbackPackage::CalenCallbackPackage( CCalenState* aSelf, |
192 TCalenCommand aCommand, MCalenCommandHandler* aCommandHandler) |
188 TCalenCommand aCommand, MCalenCommandHandler* aCommandHandler) |
193 : iSelf( aSelf ), iCommand( aCommand ), iCommandHandler( aCommandHandler ) |
189 : iSelf( aSelf ), iCommand( aCommand ), iCommandHandler( aCommandHandler ) |
194 { |
190 { |
195 TRACE_ENTRY_POINT; |
191 TRACE_ENTRY_POINT; |
196 TRACE_EXIT_POINT; |
192 TRACE_EXIT_POINT; |
197 } |
193 } |
198 |
194 |
199 // ---------------------------------------------------------------------------- |
195 // ---------------------------------------------------------------------------- |
200 // CCalenState::CCalenCallbackPackage::HandleCallBack |
196 // CCalenState::CalenCallbackPackage::HandleCallBack |
201 // Handles a callback |
197 // Handles a callback |
202 // ---------------------------------------------------------------------------- |
198 // ---------------------------------------------------------------------------- |
203 TBool CCalenState::CCalenCallbackPackage::HandleCallBack() |
199 TBool CCalenState::CalenCallbackPackage::HandleCallBack() |
204 { |
200 { |
205 TRACE_ENTRY_POINT; |
201 TRACE_ENTRY_POINT; |
206 TBool continueCommand(EFalse); |
202 TBool continueCommand(EFalse); |
207 |
203 |
208 iSelf->CommandExecuting(); |
204 iSelf->CommandExecuting(); |
211 TRACE_EXIT_POINT; |
207 TRACE_EXIT_POINT; |
212 return continueCommand; |
208 return continueCommand; |
213 } |
209 } |
214 |
210 |
215 // ---------------------------------------------------------------------------- |
211 // ---------------------------------------------------------------------------- |
216 // CCalenState::CCalenCallbackPackage::SetCommandHandler |
212 // CCalenState::CalenCallbackPackage::SetCommandHandler |
217 // Sets the command handler and command |
213 // Sets the command handler and command |
218 // ---------------------------------------------------------------------------- |
214 // ---------------------------------------------------------------------------- |
219 void CCalenState::CCalenCallbackPackage::SetCommandHandler(CCalenState* aSelf, |
215 void CCalenState::CalenCallbackPackage::SetCommandHandler(CCalenState* aSelf, |
220 TCalenCommand aCommand, MCalenCommandHandler* aCommandHandler) |
216 TCalenCommand aCommand, MCalenCommandHandler* aCommandHandler) |
221 { |
217 { |
222 TRACE_ENTRY_POINT; |
218 TRACE_ENTRY_POINT; |
223 |
219 |
224 iSelf = aSelf; |
220 iSelf = aSelf; |