--- a/uiservicetab/vimpstdetailsviewplugin/src/cvimpstdetailsviewbrandhandler.cpp Thu Aug 19 09:41:53 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,476 +0,0 @@
-/*
-* Copyright (c) 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 detailsview contact brand data
- *
-*/
-
-
-// INCLUDE FILES
-#include "cvimpstdetailsviewbrandhandler.h"
-
-#include "vimpstdetailsview.hrh"
-#include "vimpstui.h"
-#include "conversations.h"
-#include "tvimpstconsts.h"
-#include <vimpstui.mbg>
-#include <conversations.mbg>
-// branding server
-#include <cbsfactory.h>
-#include <mbsaccess.h>
-#include <mbselement.h>
-// system includes
-#include <AknIconUtils.h>
-// settings
-#include <spsettings.h>
-#include <spentry.h>
-#include <spproperty.h>
-
-#include <cch.h>
-
-
-#include "uiservicetabtracer.h"
-
-_LIT8(KAppIdForBrand,"xsp");
-_LIT8(KDefaultBrandIdForBrand,"xsp");
-
-// ================= MEMBER FUNCTIONS =======================
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewBrandHandler::CVIMPSTDetailsViewBrandHandler()
-// ---------------------------------------------------------------------------
-// Two-phased constructor.
-CVIMPSTDetailsViewBrandHandler* CVIMPSTDetailsViewBrandHandler::NewL(TInt aServiceId )
- {
- CVIMPSTDetailsViewBrandHandler* self = new (ELeave) CVIMPSTDetailsViewBrandHandler( aServiceId);
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewBrandHandler::~CVIMPSTDetailsViewBrandHandler()
-// ---------------------------------------------------------------------------
-// Destructor
-CVIMPSTDetailsViewBrandHandler::~CVIMPSTDetailsViewBrandHandler()
- {
- if(iBrandingAccess)
- {
- iBrandingAccess->Close();
- }
- delete iBrandingFactory;
- iBrandingFactory = NULL;
- delete iBrandId;
- delete iSettings;
- delete iServiceStoreUri;
- }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewBrandHandler::CVIMPSTDetailsViewBrandHandler()
-// ---------------------------------------------------------------------------
-// C++ default constructor can NOT contain any code, that
-// might leave.
-//
-CVIMPSTDetailsViewBrandHandler::CVIMPSTDetailsViewBrandHandler(TInt aServiceId) :
- iAppId(KAppIdForBrand),
- iServiceId( aServiceId)
- {
- iBrandingAccess = NULL;
- }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewBrandHandler::ConstructL()
-// ---------------------------------------------------------------------------
-// Symbian OS default constructor can leave.
-void CVIMPSTDetailsViewBrandHandler::ConstructL()
- {
- TRACER_AUTO;
- iBrandId = HBufC8::NewL( KVIMPSTUISPSMaxPropertyLength );
- TPtr8 brandIdPtr( iBrandId->Des() );
-
- TInt version = 1 ; // default
-
- iSettings = CSPSettings::NewL();
-
- // ELangInternationalEnglish is selected as Default Brand Language Id.
- iLanguageId = ELangInternationalEnglish;
-
- GetBrandInfoL(iLanguageId, version, brandIdPtr);
-
- iBrandingFactory = CBSFactory::NewL( KDefaultBrandIdForBrand, iAppId );
-
-
- //Get the default MBM path
- Dll::FileName(iDefaultMbmPath); //get the location of the dll
-
- TDriveName drive( TParsePtrC( iDefaultMbmPath ).Drive( ) ); // solve drive
-
- // leave to stack, LC method
- HBufC* resourceFilePath = HBufC::NewLC( KMaxResourcePathLength );
- TPtr ptr( resourceFilePath->Des() );
- ptr.Append( KDefaultIconFile() ); // without drive
- ptr.Insert( 0, drive ); // insert drive
-
- // NearestLanguageFile takes only TFileName
- iDefaultMbmPath.Zero();
- iDefaultMbmPath.Append( *resourceFilePath );
-
- CleanupStack::PopAndDestroy();//resourceFilePath
-
- // Leaves if no brand for service, therefore trap
- PrepareBrandingAccess();
-
- }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewBrandHandler::PrepareBrandingAccess()
-// ---------------------------------------------------------------------------
-//
-TInt CVIMPSTDetailsViewBrandHandler::PrepareBrandingAccess()
- {
-
- TRAPD(err, iBrandingAccess = iBrandingFactory->CreateAccessL( *iBrandId, iLanguageId ));
-
- return err;
- }
-
-
-// ---------------------------------------------------------
-// CVIMPSTDetailsViewBrandHandler::LoadIconsLC
-// Loads necessary icons
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-CAknIconArray* CVIMPSTDetailsViewBrandHandler::LoadIconsLC( )
- {
- //Fetching bitmaps from the server.
- if( !iBrandingAccess )
- {
- if( KErrNone != PrepareBrandingAccess() )
- //brand was not found so load the default data
- {
- return LoadDefaultIconsLC(iDefaultMbmPath);
- }
- }
- //brand data is available
- return LoadBrandIconsLC();
- }
-
-// ---------------------------------------------------------
-// CVIMPSTDetailsViewBrandHandler::LoadBitMapL
-// Loads necessary icons
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CVIMPSTDetailsViewBrandHandler::LoadBitMapLC(CFbsBitmap*& aBitmap,
- CFbsBitmap*& aMask,
- TInt aBitmapId,
- TInt aMaskId )
- {
- if( !iBrandingAccess )
- {
- if( KErrNone != PrepareBrandingAccess() )
- //brand was not found so load the default data
- {
- AknIconUtils::CreateIconLC( aBitmap,aMask, iDefaultMbmPath, aBitmapId, aMaskId );
- return;
- }
- }
- //brand data is available
- CGulIcon* icon = NULL;
- icon = LoadBrandBitmapL( KEMbmConversationsQgnpropservicedefaultavatar );
- aBitmap = icon->Bitmap();
- aMask = icon->Mask();
- // this is remove the memory leak
- icon->SetBitmapsOwnedExternally( ETrue );
- delete icon ;
- CleanupStack::PushL( aBitmap );
- CleanupStack::PushL( aMask );
- }
-
-// ---------------------------------------------------------
-// CVIMPSTDetailsViewBrandHandler::LoadBrandIconsLC
-// Loads necessary icons
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-CAknIconArray* CVIMPSTDetailsViewBrandHandler::LoadBrandIconsLC( )
- {
- // array granularity is 12, because 12 icons are added to array
- CAknIconArray* icons = new( ELeave )CAknIconArray( 12);
- CleanupStack::PushL( icons );
-
- icons->AppendL( LoadBrandBitmapL(KEMbmConversationsQgnpropimfriendoff) );//0
-
- icons->AppendL( LoadBrandBitmapL(KEMbmConversationsQgnpropimfriendon) );//1
-
- icons->AppendL( LoadBrandBitmapL(KEMbmConversationsQgnpropimfriendaway ) );//2
-
- icons->AppendL( LoadBrandBitmapL(KEMbmConversationsQgnpropimfriendbusy ) );//3
-
- icons->AppendL( LoadBrandBitmapL(KEMbmConversationsQgnpropimfriendinvisible ) );//4
-
- icons->AppendL( LoadBrandBitmapL(KEMbmConversationsQgnpropimimsg ) );//5
-
- icons->AppendL( LoadBrandBitmapL(KEMbmConversationsQgnpropimimsgnew ) );//6
-
- icons->AppendL( LoadBrandBitmapL(KEMbmConversationsQgnpropservicedefaultavatar ) );//7
-
- icons->AppendL( LoadBrandBitmapL(KEMbmConversationsQgnpropservicefriendrequestreceived ) );//8
-
- icons->AppendL( LoadBrandBitmapL(KEMbmConversationsQgnpropservicefriendrequestsent ) );//9
-
- icons->AppendL( LoadBrandBitmapL(KEMbmConversationsQgnpropserviceofffriendrequestreceived ) );//10
-
- icons->AppendL( LoadBrandBitmapL(KEMbmConversationsQgnpropserviceofffriendrequestsent ) );//11
-
- icons->AppendL( LoadBrandBitmapL(KEMbmConversationsQgnpropimuserblocked ) );//12
-
- icons->AppendL( LoadBrandBitmapL(KEMbmConversationsQgnpropimfriendonmobile ) );//13
-
- icons->AppendL( LoadBrandBitmapL(KEMbmConversationsQgnpropimusercallforward ) );//14
-
- return icons;
- }
-
-// -----------------------------------------------------------------------------
-// CVIMPSTDetailsViewBrandHandler::LoadBrandBitmapL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CGulIcon* CVIMPSTDetailsViewBrandHandler::LoadBrandBitmapL( const TDesC8& aId )
- {
-
- CFbsBitmap* bitmap = NULL;
- CFbsBitmap* mask = NULL;
-
- //Fetching bitmaps from the server.
- if(!iBrandingAccess)
- {
- PrepareBrandingAccess();
- }
- iBrandingAccess->GetBitmapL( aId, bitmap, mask );
- CleanupStack::PushL( bitmap );
- CleanupStack::PushL( mask );
- // bitmap, mask ownership passed to gulIcon
- CGulIcon* icon = CGulIcon::NewL(bitmap, mask);
- icon->SetBitmapsOwnedExternally( EFalse );
- CleanupStack::Pop(2); // bitmap, mask
- return icon;
- }
-
-
-// ---------------------------------------------------------
-// CVIMPSTDetailsViewBrandHandler::LoadDefaultIconsLC
-// Loads necessary icons
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-CAknIconArray* CVIMPSTDetailsViewBrandHandler::LoadDefaultIconsLC( const TDesC& aMbmFile)
- {
- // array granularity is 5
- CAknIconArray* icons = new( ELeave )CAknIconArray( 5);
- CleanupStack::PushL( icons );
-
- icons->AppendL( LoadDefaultBitmapL( // 0
- EMbmVimpstuiQgn_prop_im_friend_off,
- EMbmVimpstuiQgn_prop_im_friend_off_mask,
- aMbmFile ) );
- icons->AppendL( LoadDefaultBitmapL( // 1
- EMbmVimpstuiQgn_prop_im_friend_on,
- EMbmVimpstuiQgn_prop_im_friend_on_mask,
- aMbmFile ) );
-
- icons->AppendL( LoadDefaultBitmapL( // 2
- EMbmVimpstuiQgn_prop_im_friend_away,
- EMbmVimpstuiQgn_prop_im_friend_away_mask,
- aMbmFile ) );
- icons->AppendL( LoadDefaultBitmapL( // 3
- EMbmVimpstuiQgn_prop_im_friend_busy,
- EMbmVimpstuiQgn_prop_im_friend_busy_mask,
- aMbmFile ) );
- icons->AppendL( LoadDefaultBitmapL( // 4
- EMbmVimpstuiQgn_prop_im_friend_invisible,
- EMbmVimpstuiQgn_prop_im_friend_invisible_mask,
- aMbmFile ) );
- icons->AppendL( LoadDefaultBitmapL( // 5
- EMbmVimpstuiQgn_prop_im_imsg,
- EMbmVimpstuiQgn_prop_im_imsg_mask,
- aMbmFile ) );
- icons->AppendL( LoadDefaultBitmapL( // 6
- EMbmVimpstuiQgn_prop_im_imsg_new,
- EMbmVimpstuiQgn_prop_im_imsg_new_mask,
- aMbmFile ) );
- icons->AppendL( LoadDefaultBitmapL( // 7
- EMbmVimpstuiQgn_prop_service_default_avatar,
- EMbmVimpstuiQgn_prop_service_default_avatar_mask,
- aMbmFile ) );
- icons->AppendL( LoadDefaultBitmapL( // 8
- EMbmVimpstuiQgn_prop_service_friend_request_received,
- EMbmVimpstuiQgn_prop_service_friend_request_received_mask,
- aMbmFile ) );
- icons->AppendL( LoadDefaultBitmapL( // 9
- EMbmVimpstuiQgn_prop_service_friend_request_sent,
- EMbmVimpstuiQgn_prop_service_friend_request_sent_mask,
- aMbmFile ) );
- icons->AppendL( LoadDefaultBitmapL( // 10
- EMbmVimpstuiQgn_prop_service_off_friend_request_received,
- EMbmVimpstuiQgn_prop_service_off_friend_request_received_mask,
- aMbmFile ) );
- icons->AppendL( LoadDefaultBitmapL( // 11
- EMbmVimpstuiQgn_prop_service_off_friend_request_sent,
- EMbmVimpstuiQgn_prop_service_off_friend_request_sent_mask,
- aMbmFile ) );
- icons->AppendL( LoadDefaultBitmapL( // 12
- EMbmVimpstuiQgn_servtab_avatar_blocked,
- EMbmVimpstuiQgn_servtab_avatar_blocked_mask,
- aMbmFile ) ); //12
-
- icons->AppendL( LoadDefaultBitmapL( // 13
- EMbmVimpstuiQgn_prop_im_friend_on_mobile,
- EMbmVimpstuiQgn_prop_im_friend_on_mobile_mask,
- aMbmFile ) );
-
- return icons;
- }
-
-// -----------------------------------------------------------------------------
-// CVIMPSTDetailsViewBrandHandler::LoadDefaultBitmapL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CGulIcon* CVIMPSTDetailsViewBrandHandler::LoadDefaultBitmapL( TInt aBitmapId, TInt aMaskId,
- const TDesC& aFullPath )
- {
- CFbsBitmap* bitmap = NULL;
- CFbsBitmap* mask = NULL;
- AknIconUtils::CreateIconLC( bitmap,mask, aFullPath,aBitmapId,aMaskId );
- // bitmap, mask ownership passed to gulIcon
- CGulIcon* gulIcon = CGulIcon::NewL( bitmap, mask );
- CleanupStack::Pop( 2 ); // bitmap, mask
- return gulIcon;
- }
-
- // ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewBrandHandler::PropertyBrandVersionL()
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTDetailsViewBrandHandler::PropertyReadBrandL( TUint32 aServiceId ,TInt &aBrand, TServicePropertyName aPropertyName )
- {
- TRACER_AUTO;
- CSPProperty* property = CSPProperty::NewLC();
- iSettings->FindPropertyL( aServiceId,
- aPropertyName,
- *property );
- if ( property )
- {
- property->GetValue( aBrand );
- }
- CleanupStack::PopAndDestroy( property );
-
- }
-
-// ---------------------------------------------------------
-// CVIMPSTDetailsViewBrandHandler::GetBrandInfo
-//
-// ---------------------------------------------------------
-TInt CVIMPSTDetailsViewBrandHandler::GetBrandInfoL(TLanguage& aBrandLanguage,
- TInt &aBrandVersion, TDes8& aBrandId)
-
- {
-
- CSPProperty* property = CSPProperty::NewLC();
- iSettings->FindPropertyL( iServiceId,
- EPropertyBrandId,
- *property );
- if ( property )
- {
- HBufC* brandId = HBufC::NewLC( KVIMPSTUISPSMaxPropertyLength );
- TPtr brandIdPtr( brandId->Des() );
- property->GetValue( brandIdPtr );
- aBrandId.Copy(brandIdPtr);
- CleanupStack::PopAndDestroy( brandId );
- }
- CleanupStack::PopAndDestroy( property );
-
- TInt language = ELangInternationalEnglish;
- PropertyReadBrandL( iServiceId, language , EPropertyBrandLanguage );
- aBrandLanguage = ( TLanguage) language;
-
- PropertyReadBrandL( iServiceId, aBrandVersion , EPropertyBrandVersion) ;
-
- return KErrNone;
- }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewBrandHandler::GetServiceNameL()
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTDetailsViewBrandHandler::GetServiceNameL( TDes& aServiceName )
- {
- TRACER_AUTO;
- CSPEntry* entry = CSPEntry::NewLC();
- TRAPD( err, iSettings->FindEntryL( iServiceId, *entry ) );
- if ( !err )
- {
- aServiceName = entry->GetServiceName();
- }
- CleanupStack::PopAndDestroy( entry );
- }
-
- // ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewBrandHandler::ServiceStoreUriL()
-// ---------------------------------------------------------------------------
-//
-const TDesC& CVIMPSTDetailsViewBrandHandler::ServiceStoreUriL()
- {
- TRACER_AUTO;
- if( !iServiceStoreUri )
- {
- iServiceStoreUri = HBufC::NewL( KVIMPST_MAX_LENGTH );
- TPtr serviceStorePtr( iServiceStoreUri->Des() );
-
- CSPProperty* property = CSPProperty::NewLC();
- iSettings->FindPropertyL( iServiceId,
- EPropertyContactStoreId,
- *property );
-
- property->GetValue( serviceStorePtr );
- CleanupStack::PopAndDestroy( property );
- }
- return *iServiceStoreUri;
- }
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewBrandHandler::ServiceSupportedL( )
-// ---------------------------------------------------------------------------
-//
-TBool CVIMPSTDetailsViewBrandHandler::ServiceSupportedL( )
- {
- TRACER_AUTO;
- TBool ret = EFalse;
- CCch* cchClient = CCch::NewLC();
- if (cchClient)
- {
- CCchService* service = cchClient->GetService( iServiceId );
- TCchServiceStatus status;
- status.SetState(ECCHUninitialized);
- TInt err = service->GetStatus( TCCHSubserviceType(ECCHPresenceSub), status );
- if (KErrNone == err)
- {
- ret = ETrue;
- }
- CleanupStack::PopAndDestroy(); // cchClient
- }
- return ret;
- }
-// End of File