--- a/satui/satapp/SATUISrc/csatuiiconhandler.cpp Thu Aug 19 10:28:14 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,245 +0,0 @@
-/*
-* Copyright (c) 2006-2008 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: Implementation of CSatUiIconHandler class.
-*
-*/
-
-
-#include <fbs.h>
-#include <rsatservice.h>
-#include <tsaticoninfo.h>
-
-#include "csatuiiconhandler.h"
-#include "tflogger.h"
-
-// ============================ MEMBER FUNCTIONS =============================
-
-// ---------------------------------------------------------------------------
-// First part of Two-phased constructor.
-// ---------------------------------------------------------------------------
-//
-CSatUiIconHandler* CSatUiIconHandler::NewL()
- {
- TFLOGSTRING( "CSatUiIconHandler::NewL enter" )
- CSatUiIconHandler* self = new ( ELeave ) CSatUiIconHandler;
- TFLOGSTRING( "CSatUiIconHandler::NewL exit" )
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-CSatUiIconHandler::~CSatUiIconHandler()
- {
- TFLOGSTRING( "CSatUiIconHandler::~CSatUiIconHandler enter" )
- // Close RSatService interface
- iSatService.Close();
- TFLOGSTRING( "CSatUiIconHandler::~CSatUiIconHandler exit" )
- }
-
-// ---------------------------------------------------------------------------
-// Fetches first icon information, then the handle to the icon and at last
-// does the duplication of the icon bitmap. Object is set to wait the
-// completion of the request.
-// ---------------------------------------------------------------------------
-//
-CFbsBitmap* CSatUiIconHandler::FetchIconL( const RSatSession& aSatSession,
- const TUint8 aIconId,
- const TInt aOptWidth,
- const TInt aOptHeight,
- TBool& aIconSupport )
- {
- TFLOGSTRING( "CSatUiIconHandler::FetchIconL enter" )
- TFLOGSTRING3( "CSatUiIconHandler::FetchIconL aOptWidth=%d aOptHeight=%d",
- aOptWidth, aOptHeight )
-
- iSatService.OpenL( aSatSession );
- CleanupClosePushL( iSatService );
-
- RIconEf iconEf;
- CleanupClosePushL( iconEf );
- // Order of superiority list
- RArray<TInt> selectedIcons;
- CleanupClosePushL( selectedIcons );
- CFbsBitmap* iconBitmap = NULL;
-
- // Getting the information of the icon
- TRAPD( err, iSatService.GetIconInfoL( aIconId, iconEf ); );
-
- if ( KErrNone == err )
- {
- TFLOGSTRING( "CSatUiIconHandler::FetchIconL no error" )
- // Sorting into order of superiority
- SortIconsL( iconEf, selectedIcons, aOptWidth, aOptHeight );
-
- // Reset iconCount by approved icons
- const TInt iconCount = selectedIcons.Count() <= iconEf.Count() ?
- selectedIcons.Count() :
- iconEf.Count();
- TBool fetchSuccess( EFalse );
-
- TFLOGSTRING2( "CSatUiIconHandler::FetchIconL iconCount: %d", iconCount )
- // If there were icons to be fetched
- if ( 0 < iconCount )
- {
- // start going through approved icons list from the
- // first and biggest icon
- TInt counter( 0 );
- for ( counter = 0; ( counter < iconCount ) && !fetchSuccess;
- counter++ )
- {
- TInt selectedIconCounter = selectedIcons.operator[]( counter );
- TFLOGSTRING2( "CSatUiIconHandler::\
- FetchIconL selectedIconCounter: %d", selectedIconCounter )
- TRAPD( err,
- iconBitmap = iSatService.GetIconL( iconEf.operator[](
- selectedIconCounter ) ) );
- if ( KErrNone == err )
- {
- fetchSuccess = ETrue;
- TFLOGSTRING( "CSatUiIconHandler::FetchIconL fetchSuccess!" )
- }
- else
- {
- delete iconBitmap;
- }
- }
- }
- }
-
- TFLOGSTRING2( "CSatUiIconHandler::FetchIconL icon info error=%d", err )
- if ( KErrNotSupported == err )
- {
- TFLOGSTRING( "CSatUiIconHandler::FetchIconL icons not supported" )
- aIconSupport = EFalse;
- }
-
- // selectedIcons, iconEf and iSatService not deleted but closed
- CleanupStack::PopAndDestroy( 3, &iSatService );
-
- TFLOGSTRING( "CSatUiIconHandler::FetchIconL exit" )
- // Icon was not found, icons are not supported or an error was received.
- return iconBitmap;
- }
-
-// ---------------------------------------------------------------------------
-// C++ default constructor cannot contain any code that might leave.
-// ---------------------------------------------------------------------------
-//
-CSatUiIconHandler::CSatUiIconHandler()
- {
- TFLOGSTRING( "CSatUiIconHandler::CSatUiIconHandler enter - exit" )
- }
-
-// ---------------------------------------------------------------------------
-// Sorts icons into order of superiority
-// ---------------------------------------------------------------------------
-//
-void CSatUiIconHandler::SortIconsL( const RIconEf& aIconEf,
- RArray<TInt>& aSelectedIcons, const TInt aOptWidth,
- const TInt aOptHeight ) const
- {
- TFLOGSTRING( "CSatUiIconHandler::SortIcons enter" )
-
- const TInt iconCount = aIconEf.Count();
- TFLOGSTRING2( "CSatUiIconHandler::SortIcons iconCount=%d", iconCount )
- TInt counter( 0 );
- // Search icon from available iconarray
- for ( counter = 0; counter < iconCount; counter++ )
- {
- TFLOGSTRING3( "CSatUiIconHandler::SortIcons Icon Width=%d Height=%d",
- aIconEf.operator[]( counter ).IconSize().iWidth,
- aIconEf.operator[]( counter ).IconSize().iHeight )
-
- const TInt selectedCount( aSelectedIcons.Count() );
- TBool replacement( EFalse );
-
- // Count the difference of the icon versus layout
- TInt newWidthDifference(
- aOptWidth - aIconEf.operator[]( counter ).IconSize().iWidth );
- TInt newHeightDifference(
- aOptHeight - aIconEf.operator[]( counter ).IconSize().iHeight );
-
- // Make the difference absolute value
- if ( newWidthDifference < 0 )
- {
- newWidthDifference = -newWidthDifference;
- }
-
- if ( newHeightDifference < 0 )
- {
- newHeightDifference = -newHeightDifference;
- }
- TInt listCounter( 0 );
- // Going through the list of icons of suitable size
- for ( listCounter = 0; ( listCounter < selectedCount ) &&
- !replacement; listCounter++ )
- {
-
- // Count the difference of the icon versus layout
- TInt oldWidthDifference( aOptWidth - aIconEf.operator[](
- aSelectedIcons.operator[]( listCounter ) ).IconSize().iWidth );
- TInt oldHeightDifference( aOptHeight - aIconEf.operator[](
- aSelectedIcons.operator[]( listCounter ) ).IconSize().iHeight );
-
- // Make the difference absolute value
- if ( oldWidthDifference < 0 )
- {
- oldWidthDifference = -oldWidthDifference;
- }
-
- if ( oldHeightDifference < 0 )
- {
- oldHeightDifference = -oldHeightDifference;
- }
-
- // New icon is better either by being closer to the layout or by
- // being same size and color instead of black and white
- if ( ( ( newWidthDifference < oldWidthDifference ) &&
- ( newHeightDifference <= oldHeightDifference ) ) ||
- ( ( newWidthDifference <= oldWidthDifference ) &&
- ( newHeightDifference < oldHeightDifference ) ) ||
- ( ( newWidthDifference == oldWidthDifference ) &&
- ( newHeightDifference == oldHeightDifference ) &&
- ( TSatIconInfo::EBasic == aIconEf.operator[]( aSelectedIcons.
- operator[]( listCounter ) ).CodingScheme() ) &&
- ( TSatIconInfo::EColor == aIconEf.operator[]( counter ).
- CodingScheme() ) ) )
- {
- TFLOGSTRING2( "CSatUiIconHandler::SortIcons \
- newWidthDifference: %d", newWidthDifference )
- TFLOGSTRING2( "CSatUiIconHandler::SortIcons \
- oldHeightDifference: %d", oldHeightDifference )
- // Insert new icon to correct place
- aSelectedIcons.InsertL( counter, listCounter );
- replacement = ETrue;
- }
- }
-
- TFLOGSTRING2( "CSatUiIconHandler::SortIcons listCounter: %d", \
- listCounter )
- // Either first item or was not better than any in the list
- // New icon is added to the end of the array
- if ( !replacement )
- {
- aSelectedIcons.AppendL( counter );
- }
- }
-
- TFLOGSTRING2( "CSatUiIconHandler::SortIcons counter: %d", \
- counter )
- TFLOGSTRING( "CSatUiIconHandler::SortIcons exit" )
- }
-