connectionmonitoring/connectionmonitorui/src/CsdConnectionInfo.cpp
branchRCL_3
changeset 58 83ca720e2b9a
child 69 cf1b3ddbe9a1
equal deleted inserted replaced
57:05bc53fe583b 58:83ca720e2b9a
       
     1 /*
       
     2 * Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Represents a connection
       
    15 *
       
    16 *
       
    17 */
       
    18 
       
    19 
       
    20 // INCLUDE FILES
       
    21 //#include <nifvar.h>
       
    22 #include <StringLoader.h>
       
    23 #include <ConnectionMonitorUi.rsg>
       
    24 #include <ConnectionMonitorUi.mbg>
       
    25 #include <AknUtils.h>
       
    26 
       
    27 #include "ConnectionMonitorUiLogger.h"
       
    28 #include "CsdConnectionInfo.h"
       
    29 #include "ActiveWrapper.h"
       
    30 
       
    31 // CONSTANTS
       
    32 
       
    33 LOCAL_D const TUint KDetailsArrayGranularityInternal = 9;
       
    34 LOCAL_D const TUint KDetailsArrayGranularityExternal = 4;
       
    35 
       
    36 // ================= MEMBER FUNCTIONS =======================
       
    37 // ---------------------------------------------------------
       
    38 // CCsdConnectionInfo::NewL
       
    39 // ---------------------------------------------------------
       
    40 //
       
    41 CCsdConnectionInfo* CCsdConnectionInfo::NewL( TInt aConnectionId,
       
    42                               RConnectionMonitor* const aConnectionMonitor,
       
    43                               TConnMonBearerType aConnectionBearerType,
       
    44                               CActiveWrapper* aActiveWrapper )
       
    45     {
       
    46     CMUILOGGER_WRITE( "NewL, CCsdsConnectionInfo - start " );
       
    47 
       
    48     CCsdConnectionInfo* self = new ( ELeave ) CCsdConnectionInfo(
       
    49                                                     aConnectionId,
       
    50                                                     aConnectionMonitor,
       
    51                                                     aConnectionBearerType,
       
    52                                                     aActiveWrapper );
       
    53     CMUILOGGER_WRITE( "NewL, CCsdsConnectionInfo - created " );
       
    54     CleanupStack::PushL( self );
       
    55     self->ConstructL();
       
    56     CleanupStack::Pop( self );
       
    57     CMUILOGGER_WRITE( "NewL, CCsdsConnectionInfo - end " );
       
    58     return self;
       
    59     }
       
    60 
       
    61 
       
    62 // ---------------------------------------------------------
       
    63 // CCsdConnectionInfo::~CCsdConnectionInfo
       
    64 // ---------------------------------------------------------
       
    65 //
       
    66 CCsdConnectionInfo::~CCsdConnectionInfo()
       
    67     {
       
    68     }
       
    69 
       
    70 
       
    71 // ---------------------------------------------------------
       
    72 // CCsdConnectionInfo::CCsdConnectionInfo
       
    73 // ---------------------------------------------------------
       
    74 //
       
    75 CCsdConnectionInfo::CCsdConnectionInfo(  TInt aConnectionId,
       
    76                              RConnectionMonitor* const aConnectionMonitor,
       
    77                              TConnMonBearerType aConnectionBearerType,
       
    78                              CActiveWrapper* aActiveWrapper ) :
       
    79     CConnectionInfoBase( aConnectionId,
       
    80                          aConnectionMonitor,
       
    81                          aConnectionBearerType,
       
    82                          aActiveWrapper )
       
    83         {
       
    84         CMUILOGGER_WRITE( "CCsdConnectionInfo constuctor" );
       
    85         }
       
    86 
       
    87 
       
    88 // ---------------------------------------------------------
       
    89 // CCsdConnectionInfo::ConstructL
       
    90 // ---------------------------------------------------------
       
    91 //
       
    92 void CCsdConnectionInfo::ConstructL()
       
    93     {
       
    94     CMUILOGGER_WRITE( "CCsdConnectionInfo::ConstructL() start" );
       
    95     
       
    96     iActiveWrapper->StartGetStringAttribute( iConnectionId,
       
    97                                              iConnectionMonitor,
       
    98                                              KTelNumber,
       
    99                                              iDialupNumber );
       
   100     TInt err( iActiveWrapper->iStatus.Int() );
       
   101     CMUILOGGER_WRITE_F( "CCsdConnectionInfo::ConstructL() status: %d",
       
   102                         err );
       
   103     if ( err != KErrNone )
       
   104         {
       
   105         User::Leave( err );
       
   106         }
       
   107         
       
   108     CConnectionInfoBase::ConstructL();
       
   109     CMUILOGGER_WRITE( "CCsdConnectionInfo::ConstructL() end" );
       
   110     }
       
   111 
       
   112 
       
   113 // ---------------------------------------------------------
       
   114 // CCsdConnectionInfo::DeepCopyL
       
   115 // ---------------------------------------------------------
       
   116 //        
       
   117 CConnectionInfoBase* CCsdConnectionInfo::DeepCopyL()
       
   118 	{
       
   119 	CCsdConnectionInfo* temp = new ( ELeave ) CCsdConnectionInfo(
       
   120                                                     iConnectionId,
       
   121                                                     iConnectionMonitor,
       
   122                                                     iConnectionBearerType,
       
   123                                                     iActiveWrapper );
       
   124                               							
       
   125 	temp->iConnectionName = iConnectionName;
       
   126 	temp->iConnectionStatus = iConnectionStatus;
       
   127 	temp->iUploaded = iUploaded;
       
   128 	temp->iDownloaded = iDownloaded;
       
   129 	temp->iStartTime = iStartTime;
       
   130 	temp->iDuration = iDuration;
       
   131 	temp->iLastSpeedUpdate = iLastSpeedUpdate;
       
   132 	temp->iUpSpeed = iUpSpeed;
       
   133 	temp->iDownSpeed = iDownSpeed;
       
   134 	temp->iListBoxItemText = iListBoxItemText;
       
   135 	
       
   136 	temp->iDialupNumber = iDialupNumber;
       
   137 		
       
   138 	if ( iDetailsArray )
       
   139 		{
       
   140 		CleanupStack::PushL( temp );		
       
   141 		temp->ToArrayDetailsL();
       
   142 		CleanupStack::Pop( temp );			
       
   143 		}
       
   144 		
       
   145 	return temp;	
       
   146 	}
       
   147 
       
   148 
       
   149 // ---------------------------------------------------------
       
   150 // CCsdConnectionInfo::GetIconId
       
   151 // ---------------------------------------------------------
       
   152 //
       
   153 TUint CCsdConnectionInfo::GetIconId() const
       
   154     {
       
   155     TUint iconId = ECsd;
       
   156     if ( ( iConnectionBearerType == EBearerHSCSD ) || 
       
   157          ( iConnectionBearerType == EBearerExternalHSCSD ) )
       
   158         {
       
   159         iconId = EHscsd;
       
   160         }
       
   161     return iconId;
       
   162     }
       
   163 
       
   164 // ---------------------------------------------------------
       
   165 // CCsdConnectionInfo::RefreshDetailsL
       
   166 // ---------------------------------------------------------
       
   167 //
       
   168 void CCsdConnectionInfo::RefreshDetailsL()
       
   169     {
       
   170     CMUILOGGER_WRITE( "CCsdConnectionInfo::RefreshDetailsL start" );
       
   171     
       
   172     CMUILOGGER_WRITE_F( "before iConnectionBearerType: %d", 
       
   173                         ( TInt )iConnectionBearerType );
       
   174     
       
   175     TConnMonBearerType bearerType;
       
   176     
       
   177     iActiveWrapper->StartGetIntAttribute( iConnectionId,
       
   178                                           iConnectionMonitor,
       
   179                                           KBearer,
       
   180                                           ( TInt& )bearerType );
       
   181         
       
   182     if ( !iActiveWrapper->iStatus.Int() )
       
   183         {
       
   184         iConnectionBearerType = bearerType;
       
   185         }
       
   186     
       
   187     CMUILOGGER_WRITE_F( "status.Int(): %d", iActiveWrapper->iStatus.Int() );
       
   188     CMUILOGGER_WRITE_F( "bearerType: %d", ( TInt )bearerType );    
       
   189     CMUILOGGER_WRITE_F( "after iConnectionBearerType: %d", ( TInt )iConnectionBearerType );
       
   190     
       
   191     if ( iConnectionBearerType < EBearerExternalCSD )
       
   192         {
       
   193         RefreshTransferSpeedsL();
       
   194         }
       
   195     RefreshDuration();
       
   196     CMUILOGGER_WRITE( "CCsdConnectionInfo::RefreshDetailsL end" );
       
   197     }
       
   198 
       
   199 // ---------------------------------------------------------
       
   200 // CCsdConnectionInfo::ToStringDialupNumberLC
       
   201 // ---------------------------------------------------------
       
   202 //
       
   203 HBufC* CCsdConnectionInfo::ToStringDialupNumberLC() const
       
   204     {
       
   205     HBufC* dialupNumber = iDialupNumber.AllocLC();
       
   206     TPtr temp( dialupNumber->Des() );
       
   207     AknTextUtils::DisplayTextLanguageSpecificNumberConversion( temp );
       
   208     
       
   209     return dialupNumber;
       
   210     }
       
   211 
       
   212 
       
   213 // ---------------------------------------------------------
       
   214 // CCsdConnectionInfo::RefreshConnectionListBoxItemTextL
       
   215 // ---------------------------------------------------------
       
   216 //
       
   217 void CCsdConnectionInfo::RefreshConnectionListBoxItemTextL()
       
   218     {
       
   219     CMUILOGGER_WRITE(
       
   220         "CCsdConnectionInfo::RefreshConnectionListBoxItemTextL start" );
       
   221 
       
   222     TUint  iconId;
       
   223     HBufC* secondRow = NULL;
       
   224 
       
   225     iconId = GetIconId();
       
   226 
       
   227     if ( iConnectionStatus == EConnectionCreated )
       
   228         {
       
   229         secondRow =  ToStringDurationLC();
       
   230         }
       
   231     else    // if connection has not created yet gives back the status of its.
       
   232         {
       
   233         secondRow = ToStringStatusLC( EFalse );
       
   234         }
       
   235 
       
   236     iListBoxItemText.Format( KConnectonListItemTextFormat, iconId,
       
   237                              &iConnectionName, secondRow );
       
   238     CleanupStack::PopAndDestroy( secondRow );
       
   239     CMUILOGGER_WRITE(
       
   240         "CCsdConnectionInfo::RefreshConnectionListBoxItemTextL end" );
       
   241     }
       
   242 
       
   243 
       
   244 // ---------------------------------------------------------
       
   245 // CCsdConnectionInfo::RefreshDetailsArrayL
       
   246 // ---------------------------------------------------------
       
   247 //
       
   248 void CCsdConnectionInfo::RefreshDetailsArrayL()
       
   249     {
       
   250     CMUILOGGER_WRITE( "CCsdConnectionInfo::RefreshDetailsArrayL start" );
       
   251     if ( iDetailsArray )
       
   252         {
       
   253         TBool internal = iConnectionBearerType < EBearerExternalCSD ;
       
   254         HBufC* temp = NULL;
       
   255 
       
   256         if ( internal )
       
   257             {
       
   258             temp = ToStringStatusLC();
       
   259             ToDetailsListBoxItemTextWithReplaceL( R_QTN_CMON_HEADING_STATUS,
       
   260                                                   temp, 2 );
       
   261                                                   
       
   262             ToDetailsListBoxItemTextWithReplaceL
       
   263                 ( 
       
   264                 R_QTN_CMON_HEADING_DATA_TOTAL,
       
   265                 ToStringTotalTransmittedDataLC(), 
       
   266                 3   
       
   267                 );                                                  
       
   268 
       
   269             ToDetailsListBoxItemTextWithReplaceL
       
   270                 (
       
   271                 R_QTN_CMON_HEADING_DATA_RECEIVED,
       
   272                 ToStringReceivedDataLC(),
       
   273                 4
       
   274                 );
       
   275 
       
   276             ToDetailsListBoxItemTextWithReplaceL
       
   277                 (
       
   278                 R_QTN_CMON_HEADING_DATA_SENT,
       
   279                 ToStringSentDataLC(),
       
   280                 5
       
   281                 );
       
   282 
       
   283             ToDetailsListBoxItemTextWithReplaceL( R_QTN_CMON_HEADING_DURATION,
       
   284                                                   ToStringDurationLC(), 6 );
       
   285 
       
   286             ToDetailsListBoxItemTextWithReplaceL
       
   287                 (
       
   288                 R_QTN_CMON_HEADING_SPEED,
       
   289                 ToStringTransferSpeedDownLC(),
       
   290                 7
       
   291                 );
       
   292 
       
   293             ToDetailsListBoxItemTextWithReplaceL
       
   294                 (
       
   295                 0, 
       
   296                 ToStringTransferSpeedUpLC(),
       
   297                 8
       
   298                 );
       
   299 
       
   300             CleanupStack::PopAndDestroy( 7, temp );   // ToString...LC()
       
   301 
       
   302             TInt sharing = RefreshAppNamesL();
       
   303 
       
   304             if ( sharing >= 1 )
       
   305                 {
       
   306                 if ( iDetailsArray->Count() > 10 )
       
   307                     {
       
   308                     iDetailsArray->Delete( 10, 
       
   309                                            iDetailsArray->Count() - 10 );
       
   310                     iDetailsArray->Compress();
       
   311                     }
       
   312                 
       
   313                 for ( TInt i = 0; i < sharing; i++ )
       
   314                     {
       
   315                     if ( i == 0 )
       
   316                         {
       
   317                         ToDetailsListBoxItemTextWithAppendL( 
       
   318                                         R_QTN_CMON_HEADING_SHARING_INFO,
       
   319                                         ToStringAppNameLC( i ) );
       
   320                         }
       
   321                     else
       
   322                         {
       
   323                         ToDetailsListBoxItemTextWithAppendL( 0, 
       
   324                                                     ToStringAppNameLC( i ) );
       
   325                         }
       
   326                     }
       
   327                 CleanupStack::PopAndDestroy( sharing ); 
       
   328                                                     // ToStringAppNameLC()
       
   329                 }
       
   330             else
       
   331                 {
       
   332                 if ( iDetailsArray->Count() > 10 )
       
   333                     {
       
   334                     iDetailsArray->Delete( 10, iDetailsArray->Count() - 10 );
       
   335                     iDetailsArray->Compress();
       
   336                     }
       
   337                 }
       
   338             }
       
   339         else
       
   340             {
       
   341             ToDetailsListBoxItemTextWithReplaceL( R_QTN_CMON_HEADING_DURATION,
       
   342                                                   ToStringDurationLC(), 2 );
       
   343             CleanupStack::PopAndDestroy( 1 );   // ToStringDurationLC()
       
   344             }
       
   345         }
       
   346     CMUILOGGER_WRITE( "CCsdConnectionInfo::RefreshDetailsArrayL end" );
       
   347     }
       
   348 
       
   349 
       
   350 // ---------------------------------------------------------
       
   351 // CCsdConnectionInfo::ToArrayDetailsL
       
   352 // ---------------------------------------------------------
       
   353 //
       
   354 void CCsdConnectionInfo::ToArrayDetailsL()
       
   355     {
       
   356     CMUILOGGER_ENTERFN("CCsdConnectionInfo::ToArrayDetailsL");
       
   357     TBool internal = iConnectionBearerType < EBearerExternalCSD ;
       
   358     TUint granularity = KDetailsArrayGranularityExternal;
       
   359     HBufC* temp = NULL;
       
   360 
       
   361     if ( internal )
       
   362         {
       
   363         granularity = KDetailsArrayGranularityInternal;
       
   364         }
       
   365     delete iDetailsArray;
       
   366     iDetailsArray = NULL;
       
   367     iDetailsArray = new ( ELeave ) CDesCArrayFlat( granularity );
       
   368 
       
   369     temp = iConnectionName.AllocLC();
       
   370     ToDetailsListBoxItemTextWithAppendL( R_QTN_CMON_HEADING_CONN_NAME,
       
   371                                          temp );
       
   372 
       
   373     ToDetailsListBoxItemTextWithAppendL( R_QTN_CMON_HEADING_BEARER,
       
   374                                          ToStringBearerLC() );
       
   375     CleanupStack::PopAndDestroy( 2, temp );   // ToString...LC()
       
   376 
       
   377 
       
   378     if ( internal )
       
   379         {
       
   380         temp = ToStringStatusLC();
       
   381         ToDetailsListBoxItemTextWithAppendL( R_QTN_CMON_HEADING_STATUS,
       
   382                                              temp );
       
   383 
       
   384         ToDetailsListBoxItemTextWithAppendL( R_QTN_CMON_HEADING_DATA_TOTAL,
       
   385                                              ToStringTotalTransmittedDataLC() );
       
   386                                              
       
   387         ToDetailsListBoxItemTextWithAppendL( R_QTN_CMON_HEADING_DATA_RECEIVED,
       
   388                                              ToStringReceivedDataLC() );
       
   389 
       
   390         ToDetailsListBoxItemTextWithAppendL( R_QTN_CMON_HEADING_DATA_SENT,
       
   391                                              ToStringSentDataLC() );
       
   392         CleanupStack::PopAndDestroy( 4, temp );   // ToString...LC()
       
   393         }
       
   394 
       
   395     ToDetailsListBoxItemTextWithAppendL( R_QTN_CMON_HEADING_DURATION,
       
   396                                          ToStringDurationLC() );
       
   397     CleanupStack::PopAndDestroy( 1 );   // ToStringDurationLC()
       
   398 
       
   399     if ( internal )
       
   400         {
       
   401         temp = ToStringTransferSpeedDownLC();
       
   402 
       
   403         ToDetailsListBoxItemTextWithAppendL( R_QTN_CMON_HEADING_SPEED,
       
   404                                              temp );
       
   405 
       
   406         ToDetailsListBoxItemTextWithAppendL( 0, 
       
   407                                              ToStringTransferSpeedUpLC() );
       
   408         CleanupStack::PopAndDestroy( 2, temp );   // ToString...LC()
       
   409         }
       
   410 
       
   411     ToDetailsListBoxItemTextWithAppendL( R_QTN_CMON_HEADING_CSD_NUMBER,
       
   412                                          ToStringDialupNumberLC() );
       
   413     CleanupStack::PopAndDestroy( 1 );   // ToStringDialupNumberLC()
       
   414 
       
   415     if ( internal )
       
   416         {
       
   417         TInt sharing = RefreshAppNamesL();
       
   418         
       
   419         if ( sharing >= 1 )
       
   420             {
       
   421             for ( TInt i = 0; i < sharing; i++ )
       
   422                 {
       
   423                 if ( i == 0 )
       
   424                     {
       
   425                     ToDetailsListBoxItemTextWithAppendL( 
       
   426                                     R_QTN_CMON_HEADING_SHARING_INFO,
       
   427                                     ToStringAppNameLC( i ) );
       
   428                     }
       
   429                 else
       
   430                     {
       
   431                     ToDetailsListBoxItemTextWithAppendL( 0, 
       
   432                                                 ToStringAppNameLC( i ) );
       
   433                     }
       
   434                 }
       
   435             CleanupStack::PopAndDestroy( sharing ); 
       
   436                                                     // ToStringAppNameLC()
       
   437             }
       
   438         }
       
   439     CMUILOGGER_LEAVEFN("CCsdConnectionInfo::ToArrayDetailsL");
       
   440     }
       
   441 
       
   442 
       
   443 
       
   444 // End of File