77 // --------------------------------------------------------------------------- |
77 // --------------------------------------------------------------------------- |
78 // Default constructor |
78 // Default constructor |
79 // --------------------------------------------------------------------------- |
79 // --------------------------------------------------------------------------- |
80 // |
80 // |
81 CSapiDataPlugin::CSapiDataPlugin() |
81 CSapiDataPlugin::CSapiDataPlugin() |
82 : iNetworkStatus( EUnknown ), iPluginState( ENone ) |
82 : iNetworkStatus( EUnknown ), iPluginState( EStopped ) |
83 { |
83 { |
84 } |
84 } |
85 |
85 |
86 // --------------------------------------------------------------------------- |
86 // --------------------------------------------------------------------------- |
87 // Symbian 2nd phase constructor can leave |
87 // Symbian 2nd phase constructor can leave |
417 // |
415 // |
418 // ---------------------------------------------------------------------------- |
416 // ---------------------------------------------------------------------------- |
419 // |
417 // |
420 void CSapiDataPlugin::Start( TStartReason aReason ) |
418 void CSapiDataPlugin::Start( TStartReason aReason ) |
421 { |
419 { |
422 if( aReason == ESystemStartup ) |
420 iPluginState = EStarted; |
423 { |
421 |
424 TRAP_IGNORE( PublishL() ); |
422 TRAP_IGNORE( StartL( aReason ) ); |
425 TRAP_IGNORE( iData->SetStartupReasonL( KSystemStartup )); |
423 } |
426 } |
424 |
427 else if( aReason == EPageStartup ) |
425 // ---------------------------------------------------------------------------- |
428 { |
426 // CSapiDataPlugin::StartL |
429 TRAP_IGNORE( iData->SetStartupReasonL( KPageStartup )); |
427 // |
430 } |
428 // ---------------------------------------------------------------------------- |
431 else if( aReason == EPluginStartup ) |
429 // |
432 { |
430 void CSapiDataPlugin::StartL( TStartReason aReason ) |
433 TRAP_IGNORE( PublishL() ); |
431 { |
434 TRAP_IGNORE( iData->SetStartupReasonL( KPluginStartup)); |
432 // Activate the publisher |
435 } |
433 iData->ChangePublisherStatusL( KActive ); |
436 |
434 |
437 // Listen for publisher registration to resend the events |
435 if ( aReason == ESystemStartup ) |
438 TRAP_IGNORE( iData->RegisterPublisherObserverL() ); |
436 { |
|
437 PublishL(); |
|
438 iData->SetStartupReasonL( KSystemStartup ); |
|
439 } |
|
440 else if ( aReason == EPageStartup ) |
|
441 { |
|
442 iData->SetStartupReasonL( KPageStartup ); |
|
443 } |
|
444 else if ( aReason == EPluginStartup ) |
|
445 { |
|
446 PublishL(); |
|
447 iData->SetStartupReasonL( KPluginStartup ); |
|
448 } |
|
449 |
|
450 if ( !iPubObsRegistered ) |
|
451 { |
|
452 // Listen for publisher registration to resend the events |
|
453 iData->RegisterPublisherObserverL() ; |
|
454 |
|
455 // Execute the active trigger |
|
456 iData->TriggerActiveL(); |
|
457 |
|
458 iPubObsRegistered = ETrue; |
|
459 } |
439 } |
460 } |
440 |
461 |
441 // ---------------------------------------------------------------------------- |
462 // ---------------------------------------------------------------------------- |
442 // CSapiDataPlugin::Stop |
463 // CSapiDataPlugin::Stop |
443 // |
464 // |
444 // ---------------------------------------------------------------------------- |
465 // ---------------------------------------------------------------------------- |
445 // |
466 // |
446 void CSapiDataPlugin::Stop( TStopReason aReason ) |
467 void CSapiDataPlugin::Stop( TStopReason aReason ) |
447 { |
468 { |
448 if( aReason == ESystemShutdown ) |
469 TRAP_IGNORE( StopL( aReason ) ); |
449 { |
470 |
450 TRAP_IGNORE( iData->ChangePublisherStatusL( KSystemShutdown )); |
471 iPluginState = EStopped; |
451 } |
472 } |
452 else if( aReason == EPageShutdown ) |
473 |
453 { |
474 // ---------------------------------------------------------------------------- |
454 TRAP_IGNORE( iData->ChangePublisherStatusL( KPageShutdown )); |
475 // CSapiDataPlugin::StopL |
455 } |
476 // |
456 else if( aReason == EPluginShutdown ) |
477 // ---------------------------------------------------------------------------- |
457 { |
478 // |
458 TRAP_IGNORE( iData->ChangePublisherStatusL( KPluginShutdown )); |
479 void CSapiDataPlugin::StopL( TStopReason aReason ) |
|
480 { |
|
481 if ( aReason == ESystemShutdown ) |
|
482 { |
|
483 iData->ChangePublisherStatusL( KSystemShutdown ); |
|
484 } |
|
485 else if ( aReason == EPageShutdown ) |
|
486 { |
|
487 iData->ChangePublisherStatusL( KPageShutdown ); |
|
488 } |
|
489 else if ( aReason == EPluginShutdown ) |
|
490 { |
|
491 iData->ChangePublisherStatusL( KPluginShutdown ); |
459 } |
492 } |
460 |
493 |
461 if ( iData ) |
494 if ( iData ) |
462 { |
495 { |
463 TRAP_IGNORE( iData->ChangePublisherStatusL( KDeActive )); |
496 iData->ChangePublisherStatusL( KDeActive ); |
464 } |
497 } |
465 } |
498 } |
466 |
499 |
467 // ---------------------------------------------------------------------------- |
500 // ---------------------------------------------------------------------------- |
468 // CSapiDataPlugin::Resume |
501 // CSapiDataPlugin::Resume |
469 // |
502 // |
470 // ---------------------------------------------------------------------------- |
503 // ---------------------------------------------------------------------------- |
471 // |
504 // |
472 void CSapiDataPlugin::Resume( TResumeReason aReason ) |
505 void CSapiDataPlugin::Resume( TResumeReason aReason ) |
473 { |
506 { |
474 if ( aReason == EForeground ) |
507 if ( aReason == EForeground && iPluginState != EStopped ) |
475 { |
508 { |
476 iPluginState = EResume; |
509 iPluginState = EResume; |
477 TRAP_IGNORE( iData->ChangePublisherStatusL( KResume )); |
510 TRAP_IGNORE( iData->ChangePublisherStatusL( KResume )); |
478 } |
511 } |
479 } |
512 } |
615 |
648 |
616 iData->SetContentIdL( PublisherInfo().Namespace() ); |
649 iData->SetContentIdL( PublisherInfo().Namespace() ); |
617 |
650 |
618 // Configurations |
651 // Configurations |
619 iData->ConfigureL( configurationItemsArr ); |
652 iData->ConfigureL( configurationItemsArr ); |
620 |
|
621 iPluginState = ESuspend; |
|
622 |
653 |
623 // Listen the publisher content update |
654 // Listen the publisher content update |
624 iData->RegisterContentObserverL(); |
655 iData->RegisterContentObserverL(); |
625 |
|
626 // Activate the publisher |
|
627 iData->ChangePublisherStatusL( KActive ); |
|
628 // Execute the active trigger |
|
629 iData->TriggerActiveL(); |
|
630 |
|
631 } |
656 } |
632 |
657 |
633 contentItemsArr.Reset(); |
658 contentItemsArr.Reset(); |
634 configurationItemsArr.Reset(); |
659 configurationItemsArr.Reset(); |
635 |
660 |