84 // --------------------------------------------------------- |
84 // --------------------------------------------------------- |
85 // |
85 // |
86 void CWmPlugin::ConstructL() |
86 void CWmPlugin::ConstructL() |
87 { |
87 { |
88 iWmMainContainer = NULL; |
88 iWmMainContainer = NULL; |
89 |
89 iPostponedCommand = ENone; |
|
90 |
90 // store static view app ui |
91 // store static view app ui |
91 CEikonEnv* eikonEnv = CEikonEnv::Static(); |
92 CEikonEnv* eikonEnv = CEikonEnv::Static(); |
92 if ( !eikonEnv ) User::Leave( KErrUnknown ); |
93 if ( !eikonEnv ) User::Leave( KErrUnknown ); |
93 iViewAppUi = (CAknViewAppUi*)eikonEnv->EikAppUi(); |
94 iViewAppUi = (CAknViewAppUi*)eikonEnv->EikAppUi(); |
94 if ( !iViewAppUi ) User::Leave( KErrUnknown ); |
95 if ( !iViewAppUi ) User::Leave( KErrUnknown ); |
162 { |
163 { |
163 TVwsViewId activeViewId(KNullUid,KNullUid); |
164 TVwsViewId activeViewId(KNullUid,KNullUid); |
164 if ( iViewAppUi->GetActiveViewId( activeViewId ) == KErrNone && |
165 if ( iViewAppUi->GetActiveViewId( activeViewId ) == KErrNone && |
165 activeViewId.iViewUid == TUid::Uid( EWmMainContainerViewId ) ) |
166 activeViewId.iViewUid == TUid::Uid( EWmMainContainerViewId ) ) |
166 { |
167 { |
167 if ( iPreviousViewUid.iViewUid == KNullUid ) |
168 if ( iPreviousViewUid.iViewUid == KNullUid && |
|
169 iViewAppUi->GetDefaultViewId( iPreviousViewUid ) != KErrNone ) |
168 { |
170 { |
169 iPreviousViewUid.iAppUid = iViewAppUi->Application()->AppDllUid(); |
171 iPreviousViewUid.iAppUid = iViewAppUi->Application()->AppDllUid(); |
170 iPreviousViewUid.iViewUid = TUid::Uid( 1 ); |
172 iPreviousViewUid.iViewUid = TUid::Uid( 1 ); |
171 } |
173 } |
172 return ETrue; |
174 return ETrue; |
173 } |
175 } |
174 |
176 |
175 return( iPreviousViewUid.iViewUid != KNullUid ); |
177 return( iPreviousViewUid.iViewUid != KNullUid ); |
176 } |
178 } |
182 void CWmPlugin::CloseView() |
184 void CWmPlugin::CloseView() |
183 { |
185 { |
184 if ( IsActive() ) |
186 if ( IsActive() ) |
185 { |
187 { |
186 iWmMainContainer->SetClosingDown( ETrue ); |
188 iWmMainContainer->SetClosingDown( ETrue ); |
187 TRAP_IGNORE( |
189 TRAPD( err, |
188 iEffectManager->BeginFullscreenEffectL( |
190 iEffectManager->BeginFullscreenEffectL( |
189 KAppExitEffectStyle ); |
191 KAppExitEffectStyle ); |
190 iViewAppUi->ActivateLocalViewL( |
192 iViewAppUi->ActivateLocalViewL( |
191 iPreviousViewUid.iViewUid ); |
193 iPreviousViewUid.iViewUid ); |
192 ); |
194 ); |
|
195 if ( KErrNone != err ) |
|
196 { |
|
197 iWmMainContainer->SetClosingDown( EFalse ); |
|
198 } |
193 } |
199 } |
194 } |
200 } |
195 |
201 |
196 // --------------------------------------------------------- |
202 // --------------------------------------------------------- |
197 // CWmPlugin::MainViewActivated |
203 // CWmPlugin::MainViewActivated |
198 // --------------------------------------------------------- |
204 // --------------------------------------------------------- |
199 // |
205 // |
200 void CWmPlugin::MainViewActivated( |
206 void CWmPlugin::MainViewActivated( |
201 const TVwsViewId& aViewId, |
207 const TVwsViewId& /*aViewId*/, |
202 CWmMainContainer* aWmMainContainer ) |
208 CWmMainContainer* aWmMainContainer ) |
203 { |
209 { |
204 iPreviousViewUid = aViewId; |
210 // previous view for Wm is always default view. |
205 // verify if we have correct viewid to activate. |
211 if ( iViewAppUi->GetDefaultViewId( iPreviousViewUid ) != KErrNone ) |
206 if ( iPreviousViewUid.iViewUid == KNullUid ) |
|
207 { |
212 { |
208 // use default if we got wrong viewid as previous view |
213 // use default if we got wrong viewid as previous view |
209 iPreviousViewUid.iAppUid = iViewAppUi->Application()->AppDllUid(); |
214 iPreviousViewUid.iAppUid = iViewAppUi->Application()->AppDllUid(); |
210 iPreviousViewUid.iViewUid = TUid::Uid( 1 ); |
215 iPreviousViewUid.iViewUid = TUid::Uid( 1 ); |
211 } |
216 } |
232 if ( iEffectManager ) |
237 if ( iEffectManager ) |
233 { |
238 { |
234 iEffectManager->UiRendered(); |
239 iEffectManager->UiRendered(); |
235 } |
240 } |
236 |
241 |
237 TRAP_IGNORE( ExecuteCommandL(); ); |
242 TRAPD( err, ExecuteCommandL(); ); |
|
243 if ( KErrNone != err ) |
|
244 { |
|
245 delete iPostponedContent; |
|
246 iPostponedContent = NULL; |
|
247 iPostponedCommand = ENone; |
|
248 } |
238 } |
249 } |
239 |
250 |
240 // --------------------------------------------------------- |
251 // --------------------------------------------------------- |
241 // CWmPlugin::ForwardNumericKeysToPhone |
252 // CWmPlugin::ForwardNumericKeysToPhone |
242 // --------------------------------------------------------- |
253 // --------------------------------------------------------- |