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 // ---------------------------------------------------------------------------- |