email_pub/email_widget_api/tsrc/3rdpartyapitestplugin2/src/mailboxdataimpl.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 19 Feb 2010 22:37:30 +0200
branchRCL_3
changeset 8 e1b6206813b4
permissions -rw-r--r--
Revision: 201003 Kit: 201007

/*
* Copyright (c) 2009 - 2010 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:  3rd party api testplugin mailbox data
*
*/

#include <memaildata.h>
#include <memailmailboxdata.h>
#include <memailmessagedata.h>

#include "emailtrace.h"
#include "mailboxdataimpl.h"
#include "messagedataimpl.h"
#include "t_testpluginconst.hrh"
#include "applaunchdataimpl.h"

// Hardcoded default values

// Path to graphics file with icon/mask numbers (client must provide separate file with brand graphics)
_LIT( KDefaultBrandingIcon, "mif(Z:\\resource\\apps\\google_brand_graphics.mif 16384 16385)" );
_LIT( KDefaultName, "HARDCODED" );           // default mailbox name
const TInt KDefaultMailboxId = 12345;
const TUid KDefaultAppUid  = { 0x200009EE }; // App to be launched from widget
const TUid KDefaultViewUid = { 0x00000001 }; // View to be activated from widget
const TBool KDefaultIsOutboxEmpty( ETrue );
const TBool KDefaultUnseen( EFalse );

// ---------------------------------------------------------
// ---------------------------------------------------------
CMailboxDataImpl* CMailboxDataImpl::NewL()
    {
    FUNC_LOG;
    CMailboxDataImpl* self = new(ELeave) CMailboxDataImpl();
    CleanupStack::PushL( self );
    self->ConstructL();
    CleanupStack::Pop( self );
    return self;
    }

// ---------------------------------------------------------
// ---------------------------------------------------------
CMailboxDataImpl::~CMailboxDataImpl()
    {
    delete iName;

    for ( TInt i = 0; i < iMessages.Count(); i++ )
        {
        delete static_cast<CMessageDataImpl*>(iMessages[i]);
        iMessages.Remove(i);
        }
    iMessages.ResetAndDestroy();
    delete iAppLaunchParams;
    }

// ---------------------------------------------------------
// ---------------------------------------------------------
CMailboxDataImpl::CMailboxDataImpl() :
    iName( NULL ),
    iBrandingIcon( NULL),
    iIsOutboxEmpty( KDefaultIsOutboxEmpty ),
    iUnseen( KDefaultUnseen ),
    iAppLaunchParams( NULL )
    {
    }

// ---------------------------------------------------------
// ---------------------------------------------------------
void CMailboxDataImpl::ConstructL()
    {
    iAppLaunchParams = CAppLaunchDataImpl::NewL( KDefaultAppUid, KDefaultViewUid );
    }

// ---------------------------------------------------------
// ---------------------------------------------------------
TUint CMailboxDataImpl::MailboxId() const
    {
    FUNC_LOG;
    return KDefaultMailboxId;
    }

// ---------------------------------------------------------
// ---------------------------------------------------------
const TDesC& CMailboxDataImpl::Name() const
    {
    FUNC_LOG;
    return KDefaultName;
    }

// ---------------------------------------------------------
// ---------------------------------------------------------
const TDesC& CMailboxDataImpl::BrandingIcon() const
    {
    FUNC_LOG;
    return KDefaultBrandingIcon;
    }

// ---------------------------------------------------------
// ---------------------------------------------------------
TBool CMailboxDataImpl::IsOutboxEmpty() const
    {
    FUNC_LOG;
    return iIsOutboxEmpty;
    }

// ---------------------------------------------------------
// ---------------------------------------------------------
const RPointerArray<EmailInterface::MMessageData>& CMailboxDataImpl::LatestMessagesL() const
    {
    FUNC_LOG;
    return iMessages;
    }

// ---------------------------------------------------------
// ---------------------------------------------------------
TInt CMailboxDataImpl::MessageCount() const
    {
    return iMessages.Count();
    }

// ---------------------------------------------------------
// ---------------------------------------------------------
TBool CMailboxDataImpl::Unseen() const
    {
    FUNC_LOG;
    return iUnseen;
    }

// ---------------------------------------------------------
// ---------------------------------------------------------
EmailInterface::MEmailLaunchParameters& CMailboxDataImpl::LaunchParameters() const
    {
    FUNC_LOG;
    return *( static_cast<EmailInterface::MEmailLaunchParameters*>( iAppLaunchParams ) );
    }