--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/logsui/AppSrc/CLogsGprsCtAdapter.cpp Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,241 @@
+/*
+* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Adapts data from Shared data GPRS counters to listbox
+*
+*/
+
+
+// INCLUDE FILES
+#include <StringLoader.h>
+#include <AknUtils.h>
+#include <Logs.rsg>
+
+#include "CLogsGprsCtAdapter.h"
+#include "MLogsSharedData.h"
+#include "LogsConsts.h"
+
+// EXTERNAL DATA STRUCTURES
+
+// EXTERNAL FUNCTION PROTOTYPES
+
+// CONSTANTS
+
+// MACROS
+
+// LOCAL CONSTANTS AND MACROS
+
+// MODULE DATA STRUCTURES
+
+// LOCAL FUNCTION PROTOTYPES
+
+
+// ================= MEMBER FUNCTIONS =======================
+
+
+// ----------------------------------------------------------------------------
+// CLogsGprsCtAdapter::NewL
+// ----------------------------------------------------------------------------
+//
+CLogsGprsCtAdapter* CLogsGprsCtAdapter::NewL( MLogsSharedData* aSharedData )
+ {
+ CLogsGprsCtAdapter* self = new( ELeave ) CLogsGprsCtAdapter( aSharedData );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+
+// ----------------------------------------------------------------------------
+// CLogsGprsCtAdapter::CLogsGprsCtAdapter
+// ----------------------------------------------------------------------------
+//
+CLogsGprsCtAdapter::CLogsGprsCtAdapter(
+ MLogsSharedData* aSharedData ) :
+ iSharedData( aSharedData )
+ {
+ }
+
+
+// ----------------------------------------------------------------------------
+// CLogsGprsCtAdapter::ConstructL
+// ----------------------------------------------------------------------------
+//
+void CLogsGprsCtAdapter::ConstructL()
+ {
+ iSentTitle = StringLoader::LoadL( R_LOGS_GRPS_SENT_TEXT );
+ iReceivedTitle = StringLoader::LoadL( R_LOGS_GRPS_RECEIVED_TEXT );
+ iBytes = StringLoader::LoadL( R_LOGS_GRPS_B_TEXT, KNullDesC );
+ iKBytes = StringLoader::LoadL( R_LOGS_GRPS_KB_TEXT, KNullDesC );
+ iMBytes = StringLoader::LoadL( R_LOGS_GRPS_MB_TEXT, KNullDesC );
+ iGBytes = StringLoader::LoadL( R_LOGS_GRPS_GB_TEXT, KNullDesC );
+ }
+
+
+// ----------------------------------------------------------------------------
+// CLogsGprsCtAdapter::~CLogsGprsCtAdapter
+// ----------------------------------------------------------------------------
+//
+CLogsGprsCtAdapter::~CLogsGprsCtAdapter()
+ {
+ delete iSentTitle;
+ delete iReceivedTitle;
+ delete iBytes;
+ delete iKBytes;
+ delete iMBytes;
+ delete iGBytes;
+ }
+
+
+// ----------------------------------------------------------------------------
+// CLogsGprsCtAdapter::MdcaCount
+// ----------------------------------------------------------------------------
+//
+TInt CLogsGprsCtAdapter::MdcaCount () const
+ {
+ return KAmountOfGprsCounters;
+ }
+
+// ----------------------------------------------------------------------------
+// CLogsGprsCtAdapter::MdcaPoint
+// ----------------------------------------------------------------------------
+//
+TPtrC16 CLogsGprsCtAdapter::MdcaPoint( TInt aIndex ) const
+ {
+ // double graphic style "0\tText\tText2\t1
+
+ TDes& des = MUTABLE_CAST( TBuf<KLogsBuff128>&, iBuffer );
+
+ // icon
+ des.Num( aIndex );
+ des.Append( KTab );
+
+ switch( aIndex )
+ {
+ case 0:
+ des.Append( *iSentTitle );
+ des.Append( KTab );
+ ConstructAmountDescriptor( EGprsDirectionSent );
+ break;
+
+ case 1:
+ des.Append( *iReceivedTitle );
+ des.Append( KTab );
+ ConstructAmountDescriptor( EGprsDirectionReceived );
+ break;
+
+ default:
+ break;
+ }
+ return des;
+ }
+
+// ----------------------------------------------------------------------------
+// CLogsGprsCtAdapter::ConstructAmountDescriptor
+// ----------------------------------------------------------------------------
+//
+void CLogsGprsCtAdapter::ConstructAmountDescriptor(
+ TGprsDirectionType aDirection ) const
+ {
+ const TInt64 KBytesInKilobyte = MAKE_TINT64( 0, 1024 ); //const TInt64 KBytesInKilobyte( 1024 );
+ const TInt64 KBytesInMegabyte = MAKE_TINT64( 0, 1048576 ); //const TInt64 KBytesInMegabyte( 1048576 );
+ const TInt64 KBytesInGigabyte = MAKE_TINT64( 0, 1073741824 );//const TInt64 KBytesInGigabyte( 1073741824 );
+ TInt64 bytes = MAKE_TINT64( 0, 0 ); //TInt64 bytes( 0 );
+
+ TDes& des = MUTABLE_CAST( TBuf<KLogsBuff128>&, iBuffer );
+
+ // ask shared data for info
+ switch( aDirection )
+ {
+ case EGprsDirectionSent:
+ bytes = iSharedData->GprsSentCounter();
+ break;
+
+ case EGprsDirectionReceived:
+ bytes = iSharedData->GprsReceivedCounter();
+ break;
+
+ default:
+ break;
+ }
+
+ if( bytes < 0 )
+ {
+ bytes = 0;
+ }
+
+ if( bytes > ( KBytesInGigabyte - 1 ) )
+ {
+ CalcPercentage( bytes, KBytesInGigabyte );
+ des.Append( *iGBytes );
+ }
+ else if( bytes > ( KBytesInMegabyte - 1 ) )
+ {
+ CalcPercentage( bytes, KBytesInMegabyte );
+ des.Append( *iMBytes );
+ }
+ else if( bytes > ( KBytesInKilobyte - 1 ) )
+ {
+ CalcPercentage( bytes, KBytesInKilobyte );
+ des.Append( *iKBytes );
+ }
+ else
+ {
+ TBuf<KLogsBuff128> buf;
+ buf.AppendNum( bytes );
+ AknTextUtils::LanguageSpecificNumberConversion( buf );
+ des.Append( buf );
+ des.Append( *iBytes );
+ }
+
+ }
+
+
+// ----------------------------------------------------------------------------
+// CLogsGprsCtAdapter::CalcPercentage
+// ----------------------------------------------------------------------------
+//
+void CLogsGprsCtAdapter::CalcPercentage(
+ TInt64 aDividend,
+ TInt64 aDivisor ) const
+ {
+ TLocale locale;
+ TInt64 integer = MAKE_TINT64( 0, 0 ); //TInt64 integer( 0 );
+ TInt64 fraction = MAKE_TINT64( 0, 0 ); //TInt64 fraction( 0 );
+ TInt64 percent = MAKE_TINT64( 0, 0 ); //TInt64 percent( 0 );
+ TBuf<KLogsBuff128> buf;
+
+
+
+ integer = aDividend / aDivisor;
+ buf.AppendNum( integer );
+
+ fraction = aDividend % aDivisor;
+
+ buf.Append( locale.DecimalSeparator() );
+ percent = ( fraction * KMaxPercentage ) / aDivisor;
+
+ //buf.AppendNumFixedWidth( percent.Low(), EDecimal, KDigitsAfterDot ); [FIXME: remove this line]
+ buf.AppendNumFixedWidth( I64LOW(percent), EDecimal, KDigitsAfterDot );
+
+ AknTextUtils::LanguageSpecificNumberConversion( buf );
+
+ TDes& des = MUTABLE_CAST( TBuf<KLogsBuff128>&, iBuffer );
+ des.Append( buf );
+
+
+ }
+
+// End of File