125 } |
125 } |
126 |
126 |
127 iWlanArray = aWlanArray; |
127 iWlanArray = aWlanArray; |
128 iFormattedWlanInfo->Reset(); |
128 iFormattedWlanInfo->Reset(); |
129 |
129 |
130 // If Wlan if suppilied && arrays has items |
130 TInt visibleWlans = VisibleWlans( *iWlanArray ); |
131 if ( aWlanInfo && VisibleWlans( *iWlanArray ) ) |
131 if ( aWlanInfo && visibleWlans ) |
132 { |
132 { |
133 iWlanInfo = *aWlanInfo; |
133 iWlanInfo = *aWlanInfo; |
134 TWsfWlanInfo* temp = iWlanArray->Match( aWlanInfo->iSsid, |
134 TWsfWlanInfo* temp = iWlanArray->Match( aWlanInfo->iSsid, |
135 VisibleWlans( *iWlanArray ) ); |
135 visibleWlans ); |
136 if ( temp ) |
136 if ( temp ) |
137 { |
137 { |
138 iIndex = iWlanArray->GetArrayIndex( temp ); |
138 iIndex = iWlanArray->GetArrayIndex( temp ); |
139 } |
139 } |
140 else |
140 else |
176 |
176 |
177 CDesCArrayFlat* CWsfDetailsViewModel::FormatNextWlanInfoL() |
177 CDesCArrayFlat* CWsfDetailsViewModel::FormatNextWlanInfoL() |
178 { |
178 { |
179 LOG_ENTERFN( "CWsfDetailsViewModel::FormatNextWlanInfoL" ); |
179 LOG_ENTERFN( "CWsfDetailsViewModel::FormatNextWlanInfoL" ); |
180 _ASSERTD( iWlanArray ); |
180 _ASSERTD( iWlanArray ); |
181 |
181 |
182 if( iIndex < VisibleWlans( *iWlanArray ) - 1 ) |
182 TInt visibleWlans = VisibleWlans( *iWlanArray ); |
|
183 |
|
184 if( iIndex < visibleWlans - 1 ) |
183 { |
185 { |
184 iFormattedWlanInfo->Reset(); |
186 iFormattedWlanInfo->Reset(); |
185 iIndex++; |
187 iIndex++; |
186 |
188 |
187 if( iIndex >= VisibleWlans( *iWlanArray ) -1 ) |
189 if( iIndex >= visibleWlans - 1 ) |
188 { |
190 { |
189 iIndex = VisibleWlans( *iWlanArray ) -1; |
191 // Set the index to point to the last visible in the array. |
|
192 iIndex = visibleWlans - 1; |
190 } |
193 } |
191 else if ( iWlanInfo.SignalStrength() == ENoSignal ) |
194 else if ( iWlanInfo.SignalStrength() == ENoSignal ) |
192 { |
195 { |
193 iIndex = 0; |
196 iIndex = 0; |
194 } |
197 } |
195 |
198 |
|
199 // (Array bounds check is done in the first if sentence.) |
196 iWlanInfo = *(iWlanArray->At( iIndex ) ); |
200 iWlanInfo = *(iWlanArray->At( iIndex ) ); |
197 FormatAndAppenWlanIapNameL(); |
201 FormatAndAppenWlanIapNameL(); |
198 FormatAndAppenWlanSsidL(); |
202 FormatAndAppenWlanSsidL(); |
199 FormatAndAppenSingnalL(); |
203 FormatAndAppenSingnalL(); |
200 FormatAndAppenModeL(); |
204 FormatAndAppenModeL(); |
215 |
219 |
216 CDesCArrayFlat* CWsfDetailsViewModel::FormatPreviousWlanInfoL() |
220 CDesCArrayFlat* CWsfDetailsViewModel::FormatPreviousWlanInfoL() |
217 { |
221 { |
218 LOG_ENTERFN( "CWsfDetailsViewModel::FormatPreviousWlanInfoL" ); |
222 LOG_ENTERFN( "CWsfDetailsViewModel::FormatPreviousWlanInfoL" ); |
219 _ASSERTD( iWlanArray ); |
223 _ASSERTD( iWlanArray ); |
220 |
224 |
221 |
|
222 if( VisibleWlans( *iWlanArray ) ) |
225 if( VisibleWlans( *iWlanArray ) ) |
223 { |
226 { |
224 iFormattedWlanInfo->Reset(); |
227 iFormattedWlanInfo->Reset(); |
225 iIndex--; |
228 iIndex--; |
226 |
229 |
227 if ( iIndex < 0 || iWlanInfo.SignalStrength() == ENoSignal ) |
230 if ( iIndex < 0 || iWlanInfo.SignalStrength() == ENoSignal ) |
228 { |
231 { |
229 iIndex = 0; |
232 iIndex = 0; |
230 } |
233 } |
231 |
234 |
|
235 // Just in case the iIndex would somehow point out of iWlanArray... |
|
236 if( iIndex >= (TInt)iWlanArray->Count() ) |
|
237 { |
|
238 iIndex = 0; |
|
239 } |
232 iWlanInfo = *(iWlanArray->At( iIndex ) ); |
240 iWlanInfo = *(iWlanArray->At( iIndex ) ); |
233 FormatAndAppenWlanIapNameL(); |
241 FormatAndAppenWlanIapNameL(); |
234 FormatAndAppenWlanSsidL(); |
242 FormatAndAppenWlanSsidL(); |
235 FormatAndAppenSingnalL(); |
243 FormatAndAppenSingnalL(); |
236 FormatAndAppenModeL(); |
244 FormatAndAppenModeL(); |
246 // --------------------------------------------------------------------------- |
254 // --------------------------------------------------------------------------- |
247 // |
255 // |
248 HBufC* CWsfDetailsViewModel::FormatPaneTextLC() |
256 HBufC* CWsfDetailsViewModel::FormatPaneTextLC() |
249 { |
257 { |
250 LOG_ENTERFN( "CWsfDetailsViewModel::FormatPaneTextLC" ); |
258 LOG_ENTERFN( "CWsfDetailsViewModel::FormatPaneTextLC" ); |
|
259 |
251 HBufC* paneText = NULL; |
260 HBufC* paneText = NULL; |
252 |
261 |
253 if ( iWlanInfo.SignalStrength() == ENoSignal ) |
262 if ( iWlanInfo.SignalStrength() == ENoSignal ) |
254 { |
263 { |
255 paneText = KNullDesC().AllocLC(); |
264 paneText = KNullDesC().AllocLC(); |
256 } |
265 } |
257 else |
266 else |
258 { |
267 { |
259 if( VisibleWlans( *iWlanArray ) ) |
268 TInt visibleWlans = VisibleWlans( *iWlanArray ); |
|
269 if( visibleWlans ) |
260 { |
270 { |
261 paneText = HBufC::NewLC( KPaneFormater().Length() + |
271 paneText = HBufC::NewLC( KPaneFormater().Length() + |
262 KNumberLegth + |
272 KNumberLegth + |
263 KNumberLegth ); |
273 KNumberLegth ); |
264 |
274 |
265 TPtr paneTextPrt = paneText->Des(); |
275 TPtr paneTextPrt = paneText->Des(); |
266 |
276 |
267 // Format string ( KListItemFormat = %i/%i ) |
277 // Format string ( KListItemFormat = %i/%i ) |
268 paneTextPrt.Format( KPaneFormater, |
278 paneTextPrt.Format( KPaneFormater, |
269 iIndex + 1, |
279 iIndex + 1, |
270 ( iWlanArray ) ? |
280 visibleWlans ); |
271 VisibleWlans( *iWlanArray ) : 0 ); |
|
272 } |
281 } |
273 else |
282 else |
274 { |
283 { |
275 paneText = KNullDesC().AllocLC(); |
284 paneText = KNullDesC().AllocLC(); |
276 } |
285 } |
302 // |
311 // |
303 TBool CWsfDetailsViewModel::FormatRightScrollButton() |
312 TBool CWsfDetailsViewModel::FormatRightScrollButton() |
304 { |
313 { |
305 LOG_ENTERFN( "CWsfDetailsViewModel::FormatRightScrollButton" ); |
314 LOG_ENTERFN( "CWsfDetailsViewModel::FormatRightScrollButton" ); |
306 TBool rightButton( EFalse ); |
315 TBool rightButton( EFalse ); |
307 TUint count = iWlanArray->Count(); |
316 TInt count = iWlanArray->Count(); |
308 |
317 |
309 if ( iIndex + 1 >= count ) |
318 if ( iIndex + 1 >= count ) |
310 { |
319 { |
311 rightButton = ETrue; |
320 rightButton = ETrue; |
312 } |
321 } |
667 // --------------------------------------------------------------------------- |
676 // --------------------------------------------------------------------------- |
668 // |
677 // |
669 TInt CWsfDetailsViewModel::VisibleWlans( CWsfWlanInfoArray& aArray ) |
678 TInt CWsfDetailsViewModel::VisibleWlans( CWsfWlanInfoArray& aArray ) |
670 { |
679 { |
671 LOG_ENTERFN( "CWsfDetailsViewModel::VisibleWlans" ); |
680 LOG_ENTERFN( "CWsfDetailsViewModel::VisibleWlans" ); |
672 TInt i = 0; |
681 TUint i = 0; |
673 TBool hiddenFound = EFalse; |
|
674 TWsfWlanInfo* wlanInfo; |
682 TWsfWlanInfo* wlanInfo; |
675 LOG_WRITEF( "Number of Wlans: %d", aArray.Count() ); |
683 LOG_WRITEF( "Number of Wlans: %d", aArray.Count() ); |
676 while ( i < aArray.Count() && !hiddenFound ) |
684 // The hidden WLAN should be in the end of the aArray. |
|
685 while ( i < aArray.Count() ) |
677 { |
686 { |
678 wlanInfo = aArray[i]; |
687 wlanInfo = aArray[i]; |
679 if ( wlanInfo->Hidden() && !wlanInfo->Known() ) |
688 if ( wlanInfo->Hidden() && !wlanInfo->Known() ) |
680 { |
689 { |
681 hiddenFound = ETrue; |
690 break; // Hidden was found. Break to exit the while-loop. |
682 } |
691 } |
683 else |
692 ++i; |
684 { |
693 } |
685 ++i; |
694 |
686 } |
695 LOG_WRITEF( "VisibleWlans: %d", i ); |
687 } |
|
688 |
|
689 LOG_WRITEF( "VisibleWlans: %d", aArray.Count() ); |
|
690 return i; |
696 return i; |
691 } |
697 } |
692 |
698 |
693 // END OF FILE |
699 // END OF FILE |
694 |
700 |