181 |
183 |
182 iPluginInfo.ResetAndDestroy(); |
184 iPluginInfo.ResetAndDestroy(); |
183 iActivePlugins.Reset(); |
185 iActivePlugins.Reset(); |
184 iRomBasedPlugins.Reset(); |
186 iRomBasedPlugins.Reset(); |
185 |
187 |
186 //Added resolver for corolla release |
|
187 // Set resolver params |
|
188 TLanguage lang = User::Language(); |
|
189 TBuf8<40> langStr; |
|
190 langStr.Format( _L8("language(%d)"), lang ); |
|
191 |
|
192 TEComResolverParams resolverParams; |
|
193 resolverParams.SetDataType( langStr ); |
|
194 resolverParams.SetGenericMatch( ETrue ); |
|
195 |
|
196 // REComSession::ListImplementationsL( KCalenCustomisationInterfaceUid, resolverParams, iPluginInfo ); |
|
197 REComSession::ListImplementationsL( KCalenCustomisationInterfaceUid, iPluginInfo ); |
188 REComSession::ListImplementationsL( KCalenCustomisationInterfaceUid, iPluginInfo ); |
|
189 |
|
190 LoadPluginsBasedOnVariantL(); |
|
191 |
198 TInt pluginCount = iPluginInfo.Count(); |
192 TInt pluginCount = iPluginInfo.Count(); |
199 |
193 |
200 for ( TInt pluginIndex(0); pluginIndex < pluginCount; ++pluginIndex ) |
194 if(pluginCount) |
201 { |
195 { |
202 TUid pluginUid = iPluginInfo[pluginIndex]->ImplementationUid(); |
196 for ( TInt pluginIndex(0); pluginIndex < pluginCount; ++pluginIndex ) |
203 |
197 { |
204 // If the plugin can not be found or if it is enabled |
198 TUid pluginUid = iPluginInfo[pluginIndex]->ImplementationUid(); |
205 // add it to the list of active plugins |
199 |
206 iActivePlugins.AppendL( pluginUid ); |
200 // If the plugin can not be found or if it is enabled |
207 |
201 // add it to the list of active plugins |
208 // If the plugin is rom-based, store its uid |
202 iActivePlugins.AppendL( pluginUid ); |
209 if ( iPluginInfo[pluginIndex]->RomBased() ) |
203 |
210 { |
204 // If the plugin is rom-based, store its uid |
211 iRomBasedPlugins.AppendL( pluginUid ); |
205 if ( iPluginInfo[pluginIndex]->RomBased() ) |
212 } |
206 { |
213 |
207 iRomBasedPlugins.AppendL( pluginUid ); |
214 } |
208 } |
215 |
209 |
216 TRACE_EXIT_POINT; |
210 } |
217 } |
211 } |
|
212 |
|
213 TRACE_EXIT_POINT; |
|
214 } |
|
215 |
|
216 // ---------------------------------------------------------------------------- |
|
217 // CCalenCustomisationManager::LoadPluginsBasedOnVariantL |
|
218 // Loads the plugin based on the language variant |
|
219 // ---------------------------------------------------------------------------- |
|
220 // |
|
221 void CCalenCustomisationManager::LoadPluginsBasedOnVariantL() |
|
222 { |
|
223 TLanguage languge = User::Language(); |
|
224 RArray<TUid> needsToBeRemoved; |
|
225 |
|
226 switch(languge) |
|
227 { |
|
228 case ELangTaiwanChinese: |
|
229 case ELangPrcChinese: |
|
230 case ELangHongKongChinese: |
|
231 // TODO: Remove the other regional plugins Thai, Vietnamese etc. |
|
232 break; |
|
233 case ELangThai: |
|
234 case ELangEnglish_Thailand: |
|
235 needsToBeRemoved.Append(KCalenChineseImplUid); |
|
236 // TODO: Remove the other regional plugin Vietnamese. |
|
237 break; |
|
238 case ELangVietnamese: |
|
239 needsToBeRemoved.Append(KCalenChineseImplUid); |
|
240 // TODO: Remove the other regional plugin Thai. |
|
241 break; |
|
242 |
|
243 default: |
|
244 needsToBeRemoved.Append(KCalenChineseImplUid); |
|
245 // TODO: Remove the other regional plugins Thai, Vietnamese etc. |
|
246 break; |
|
247 } |
|
248 TInt count = needsToBeRemoved.Count(); |
|
249 if(count) |
|
250 { |
|
251 for(TInt i=0; i< count; i++) |
|
252 { |
|
253 TInt index = iPluginInfo.Find(needsToBeRemoved[i], |
|
254 CCalenCustomisationManager::PluginInfoFinder); |
|
255 if( index != KErrNotFound ) |
|
256 { |
|
257 CImplementationInformation* impl = iPluginInfo[index]; |
|
258 iPluginInfo.Remove(index); |
|
259 delete impl; |
|
260 } |
|
261 } |
|
262 } |
|
263 needsToBeRemoved.Close(); |
|
264 } |
|
265 |
|
266 // ---------------------------------------------------------------------------- |
|
267 // CCalenCustomisationManager::PluginInfoFinder( |
|
268 // Matches an uid in pluginInfo. |
|
269 // ---------------------------------------------------------------------------- |
|
270 // |
|
271 TBool CCalenCustomisationManager::PluginInfoFinder( const TUid* aUid, |
|
272 const CImplementationInformation& aArrayItem ) |
|
273 { |
|
274 return (*aUid == aArrayItem.ImplementationUid() ); |
|
275 } |
218 |
276 |
219 // ---------------------------------------------------------------------------- |
277 // ---------------------------------------------------------------------------- |
220 // CCalenCustomisationManager::SetPluginAvailabilityL |
278 // CCalenCustomisationManager::SetPluginAvailabilityL |
221 // Enables or disables the given plugin. |
279 // Enables or disables the given plugin. |
222 // ---------------------------------------------------------------------------- |
280 // ---------------------------------------------------------------------------- |
441 { |
507 { |
442 TRACE_ENTRY_POINT; |
508 TRACE_ENTRY_POINT; |
443 |
509 |
444 // Get a new services object from global data |
510 // Get a new services object from global data |
445 MCalenServices* services = iServicesFactory.NewServicesL(); |
511 MCalenServices* services = iServicesFactory.NewServicesL(); |
446 |
512 CleanupStack::PushL( services ); |
447 // Creates the plugin and transfers ownership of the services |
513 // Creates the plugin and transfers ownership of the services |
448 // object to the plugin. |
514 // object to the plugin. |
449 CCalenCustomisation* plugin = |
515 CCalenCustomisation* plugin = |
450 CCalenCustomisation::CreateImplementationL( aPluginUid, services ); |
516 CCalenCustomisation::CreateImplementationL( aPluginUid, services ); |
451 |
517 CleanupStack::PushL( plugin ); |
452 CleanupStack::PushL( plugin ); |
|
453 |
518 |
454 // the plugin array takes ownership of the plugin |
519 // the plugin array takes ownership of the plugin |
455 AddPluginL( plugin, aPluginUid ); |
520 AddPluginL( plugin, aPluginUid ); |
|
521 |
|
522 // Cleanup |
456 CleanupStack::Pop( plugin ); |
523 CleanupStack::Pop( plugin ); |
|
524 CleanupStack::Pop( services ); |
457 |
525 |
458 |
526 |
459 TRACE_EXIT_POINT; |
527 TRACE_EXIT_POINT; |
460 } |
528 } |
461 |
529 |