phonebookui/Phonebook2/spbcontentprovider/src/spbcontent.cpp
branchRCL_3
changeset 3 04ab22b956c2
parent 0 e686773b3f54
equal deleted inserted replaced
0:e686773b3f54 3:04ab22b956c2
    78 // ----------------------------------------------------------------------------
    78 // ----------------------------------------------------------------------------
    79 //
    79 //
    80 inline CSpbContent::CSpbContent(
    80 inline CSpbContent::CSpbContent(
    81     const CSpbContent::TParameters& aParameters ) :
    81     const CSpbContent::TParameters& aParameters ) :
    82     iParameters(aParameters),
    82     iParameters(aParameters),
    83     iAsyncCallBack( TCallBack( CSpbContent::StartFetchContent, this ), 
    83     iAsyncCallBack( TCallBack( CSpbContent::StartFetchContentL, this ), 
    84         CActive::EPriorityStandard ),
    84         CActive::EPriorityStandard ),
    85     iType( CSpbContentProvider::ETypeNone )
    85     iType( CSpbContentProvider::ETypeNone )
    86     {
    86     {
    87     }
    87     }
    88 
    88 
    89 // ----------------------------------------------------------------------------
    89 // ----------------------------------------------------------------------------
    90 // CSpbContent::RefreshNumber
    90 // CSpbContent::RefreshNumber
    91 // ----------------------------------------------------------------------------
    91 // ----------------------------------------------------------------------------
    92 //
    92 //
    93 void CSpbContent::RefreshNumber()
    93 void CSpbContent::RefreshNumberL()
    94 	{
    94 	{
    95 	// if no status text
    95 	// if no status text
    96 	if( iType != CSpbContentProvider::ETypeSocialStatus && iPhoneNumberParser )
    96 	if( iType != CSpbContentProvider::ETypeSocialStatus && iPhoneNumberParser )
    97 		{
    97 		{
    98 		// re-fetch phonenumber
    98 		// re-fetch phonenumber
    99 		iPhoneNumberParser->FetchPhoneNumber( Link() );
    99 		iPhoneNumberParser->FetchPhoneNumberL( Link() );
   100 		}
   100 		}
   101 	}
   101 	}
   102 
   102 
   103 // ----------------------------------------------------------------------------
   103 // ----------------------------------------------------------------------------
   104 // CSpbContent::StartFetchContent
   104 // CSpbContent::StartFetchContent
   105 // ----------------------------------------------------------------------------
   105 // ----------------------------------------------------------------------------
   106 //
   106 //
   107 TInt CSpbContent::StartFetchContent( TAny* aPtr )
   107 TInt CSpbContent::StartFetchContentL( TAny* aPtr )
   108     {
   108     {
   109     static_cast<CSpbContent*>(aPtr)->DoStartFetchContent();
   109     static_cast<CSpbContent*>(aPtr)->DoStartFetchContentL();
   110     return 0;
   110     return 0;
   111     }
   111     }
   112 
   112 
   113 // ----------------------------------------------------------------------------
   113 // ----------------------------------------------------------------------------
   114 // CSpbContent::PhoneNumberUpdatedL
   114 // CSpbContent::PhoneNumberUpdatedL
   115 // ----------------------------------------------------------------------------
   115 // ----------------------------------------------------------------------------
   116 //
   116 //
   117 void CSpbContent::DoStartFetchContent()
   117 void CSpbContent::DoStartFetchContentL()
   118     {
   118     {
   119     if(iParameters.iStatusProvider)
   119     TBool fetching = EFalse;
   120         {
   120     if( iParameters.iStatusProvider )
   121         iParameters.iStatusProvider->FetchStatusDataL(*this);
   121         {
   122         }
   122         TRAPD( err, iParameters.iStatusProvider->FetchStatusDataL(*this) );
   123     else if(iPhoneNumberParser)
   123         fetching = ( err == KErrNone );
   124         {
   124         }
   125         iPhoneNumberParser->FetchPhoneNumber(Link());
   125     
   126         }
   126     if( !fetching && iPhoneNumberParser)
   127     else
   127         {
       
   128         iPhoneNumberParser->FetchPhoneNumberL(Link());
       
   129         fetching = ETrue;
       
   130         }
       
   131 
       
   132     if( !fetching )
   128         {
   133         {
   129         NotifyObservers( MSpbContentProviderObserver::EContentNotAvailable );
   134         NotifyObservers( MSpbContentProviderObserver::EContentNotAvailable );
   130         }
   135         }
   131     }
   136     }
   132 
   137 
   133 // ----------------------------------------------------------------------------
   138 // ----------------------------------------------------------------------------
   134 // CSpbContent::PhoneNumberUpdatedL
   139 // CSpbContent::PhoneNumberUpdatedL
   135 // ----------------------------------------------------------------------------
   140 // ----------------------------------------------------------------------------
   136 //
   141 //
   137 void CSpbContent::PhoneNumberUpdatedL( const TDesC& aPhoneNumber )
   142 void CSpbContent::PhoneNumberUpdatedL( const TDesC& aPhoneNumber, 
       
   143     CSpbContentProvider::TSpbContentType aType )
   138     {
   144     {
   139     delete iText;
   145     delete iText;
   140     iText = NULL;
   146     iText = NULL;
   141     iType = CSpbContentProvider::ETypeNone;
   147     iType = CSpbContentProvider::ETypeNone;
   142     iReady = EFalse;
   148     iReady = EFalse;
   143     
   149     
   144     if( aPhoneNumber.Length() )
   150     if( aPhoneNumber.Length() )
   145         {
   151         {
   146         iText = aPhoneNumber.AllocL();
   152         iText = aPhoneNumber.AllocL();
   147         iReady = ETrue;
   153         iReady = ETrue;
   148         iType = CSpbContentProvider::ETypePhoneNumber;
   154         iType = aType;
   149         }
   155         }
   150     NotifyObservers(MSpbContentProviderObserver::EContentChanged);
   156     NotifyObservers(MSpbContentProviderObserver::EContentChanged);
   151     }
   157     }
   152     
   158     
   153 // ----------------------------------------------------------------------------
   159 // ----------------------------------------------------------------------------
   159         const TDesC8& aBrandId,
   165         const TDesC8& aBrandId,
   160         const TDesC8& aIconEntry )
   166         const TDesC8& aIconEntry )
   161     {
   167     {
   162     if(!aStatusMessage.Length() && iPhoneNumberParser )
   168     if(!aStatusMessage.Length() && iPhoneNumberParser )
   163         {
   169         {
   164         iPhoneNumberParser->FetchPhoneNumber(Link());
   170         iPhoneNumberParser->FetchPhoneNumberL(Link());
   165         return;
   171         return;
   166         }
   172         }
   167     
   173     
   168     delete iText;
   174     delete iText;
   169     iText = NULL;
   175     iText = NULL;