136 else |
135 else |
137 { |
136 { |
138 newViewId = viewID; |
137 newViewId = viewID; |
139 } |
138 } |
140 |
139 |
141 // If err is KErrNone or KErrNotFound, complete client's request with KErrNone. |
140 aMessage.Complete(err); |
142 // The reason is even if client passed an invalid view id to xsp server, |
141 |
143 // the server will launch phonebook namelist view instead. |
142 if(err == KErrNone) |
144 if ( KErrNone == err || KErrNotFound == err ) |
|
145 { |
|
146 aMessage.Complete( KErrNone ); |
|
147 } |
|
148 else |
|
149 { |
|
150 aMessage.Complete( err ); |
|
151 } |
|
152 |
|
153 if( err == KErrNone ) |
|
154 { |
143 { |
155 // Make view id |
144 // Make view id |
156 const TVwsViewId viewId( TUid::Uid( KUid ), TUid::Uid( newViewId ) ); |
145 const TVwsViewId viewId(TUid::Uid(KUid), TUid::Uid(newViewId)); |
157 // Activate the view |
146 // Activate the view |
158 static_cast<CAknViewAppUi*>(CCoeEnv::Static()->AppUi())->ActivateViewL( |
147 static_cast<CAknViewAppUi*>(CCoeEnv::Static()->AppUi())->ActivateViewL( |
159 viewId, CPbk2ViewState::Uid(), *paramBuf); |
148 viewId, CPbk2ViewState::Uid(), *paramBuf); |
160 } |
149 } |
161 else if ( err == KErrNotFound ) |
150 |
162 { |
|
163 // Activate phonebook namelist view if valid view id can't be found |
|
164 const TVwsViewId viewId( TUid::Uid( KUid ), TUid::Uid( EPbk2NamesListViewId ) ); |
|
165 static_cast<CAknViewAppUi*>( CCoeEnv::Static()->AppUi() )->ActivateViewL( |
|
166 viewId, CPbk2ViewState::Uid(), *paramBuf ); |
|
167 } |
|
168 |
|
169 CleanupStack::PopAndDestroy(); // paramBuf; |
151 CleanupStack::PopAndDestroy(); // paramBuf; |
170 } |
152 } |
171 } |
153 } |
172 |
154 |
173 void CxSPViewActivator::ActivateView2AsyncL(const RMessage2 &aMessage) |
155 void CxSPViewActivator::ActivateView2AsyncL(const RMessage2 &aMessage) |