148 TBool requireXimp = EFalse; |
148 TBool requireXimp = EFalse; |
149 TBool presenceSupported = IsSubServiceSupportedInternal(TVIMPSTEnums::EPresence); |
149 TBool presenceSupported = IsSubServiceSupportedInternal(TVIMPSTEnums::EPresence); |
150 TBool imSupported = IsSubServiceSupportedInternal(TVIMPSTEnums::EIM); |
150 TBool imSupported = IsSubServiceSupportedInternal(TVIMPSTEnums::EIM); |
151 |
151 |
152 requireXimp |= presenceSupported; |
152 requireXimp |= presenceSupported; |
153 requireXimp |= imSupported; |
153 requireXimp |= imSupported; |
154 |
154 |
|
155 TPtr serviceIdPtr(iServiceName->Des()); |
|
156 iTableFetcher.GetServiceNameL(aServiceId, serviceIdPtr); |
|
157 |
155 //if either of Presence/IM Subservice supported then we need |
158 //if either of Presence/IM Subservice supported then we need |
156 //to bind to XIMP context. |
159 //to bind to XIMP context. |
157 if ( KErrNotFound != ximpAdapterUid && requireXimp ) |
160 if ( KErrNotFound != ximpAdapterUid && requireXimp ) |
158 { |
161 { |
159 iSessionCntxtObserver = CVIMPSTEngineSessionCntxtObserver::NewL(aServiceId); |
162 TRAPD( err, (iSessionCntxtObserver = CVIMPSTEngineSessionCntxtObserver::NewL(aServiceId))); |
|
163 TRACE( T_LIT("ConstructL() -1st Creating session context observer: %d"), err ); |
|
164 if (KErrNotFound == err) |
|
165 { |
|
166 TRACE( T_LIT("Ximp impl not found. Calling Logout") ); |
|
167 iUnInstall = ETrue; |
|
168 LogoutL(); |
|
169 TRACE( T_LIT("Logout Called on account of uninstall") ); |
|
170 return; |
|
171 } |
160 } |
172 } |
161 |
|
162 TPtr serviceIdPtr( iServiceName->Des() ); |
|
163 iTableFetcher.GetServiceNameL(aServiceId, serviceIdPtr); |
|
164 |
|
165 |
173 |
166 // iterate the service array |
174 // iterate the service array |
167 for ( TInt index = TVIMPSTEnums::EVoip; index < TVIMPSTEnums::ELast ; index++ ) |
175 for ( TInt index = TVIMPSTEnums::EVoip; index < TVIMPSTEnums::ELast ; index++ ) |
168 { |
176 { |
169 //create the subservice |
177 //create the subservice |
232 CVIMPSTEngine::CVIMPSTEngine( TUint32 aServiceId, |
240 CVIMPSTEngine::CVIMPSTEngine( TUint32 aServiceId, |
233 CVIMPSTEngineServiceTableFetcher& aTableFetcher ) : |
241 CVIMPSTEngineServiceTableFetcher& aTableFetcher ) : |
234 iServiceId(aServiceId), |
242 iServiceId(aServiceId), |
235 iTableFetcher(aTableFetcher) |
243 iTableFetcher(aTableFetcher) |
236 { |
244 { |
237 |
245 iUnInstall = EFalse; |
238 } |
246 } |
239 |
247 |
240 // --------------------------------------------------------- |
248 // --------------------------------------------------------- |
241 // CVIMPSTEngine::RetriveContextIfCChEnabledL |
249 // CVIMPSTEngine::RetriveContextIfCChEnabledL |
242 // |
250 // |