wlanutilities/wlansniffer/mainapplication/src/wsfdetailsviewmodel.cpp
branchRCL_3
changeset 11 8b0eae1b1d71
parent 8 c2bc3f8c7777
child 12 981afc7d3841
equal deleted inserted replaced
10:dff6ebfd236f 11:8b0eae1b1d71
   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