--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mobilemessaging/smum/src/SMSICDMA.CPP Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,380 @@
+/*
+* 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: SMSICDMA.CPP*
+*/
+
+
+
+
+// Standard includes
+#include <mtmdef.h> // MTM specific definitions for constants
+#include <eikon.rsg> // Standard resources
+// Messaging includes
+#include <msvuids.h> // Msv UIDs
+// Specific includes
+#include <smum.rsg> // for resource IDs
+#include <muiu.mbg> // bitmaps
+#include <avkon.rsg> // for resource IDs
+#include <StringLoader.h> // StringLoader
+#include "smsicdma.h"
+#include "smsu.hrh" // for KMtmUiFunctionSimDialog
+#include "smsui.pan" // for panics
+#include <aknsutils.h>
+#include <aknsconstants.h> // skinned icon ids
+#include <data_caging_path_literals.hrh>// Path for Bitmap
+
+// LOCAL CONSTANTS AND MACROS
+const TInt KSmsiNumberOfZoomStates = 2; // Nothing to do with zoomstates, picture + mask = 2
+const TUid KUidMsgTypeSMS = {0x1000102C};
+
+_LIT(KBitmapFile, "muiu.MBM");
+
+// MEMBER FUNCTIONS
+
+// Factory constructor function
+CSmsMtmUiDataCDMA* CSmsMtmUiDataCDMA::NewL( CRegisteredMtmDll& aRegisteredDll )
+ {
+ CSmsMtmUiDataCDMA* smsmtmuidata=new ( ELeave ) CSmsMtmUiDataCDMA( aRegisteredDll );
+ CleanupStack::PushL( smsmtmuidata );
+ smsmtmuidata->ConstructL();
+ CleanupStack::Pop();
+ return smsmtmuidata;
+ }
+
+// C++ constructor can NOT contain any code, that
+// might leave.
+CSmsMtmUiDataCDMA::CSmsMtmUiDataCDMA( CRegisteredMtmDll& aRegisteredDll ):
+ CSmsMtmUiData( aRegisteredDll )
+ {
+ }
+
+// Destructor
+CSmsMtmUiDataCDMA::~CSmsMtmUiDataCDMA()
+ {
+ }
+
+// ---------------------------------------------------------
+// CSmsMtmUiData::ContextIcon
+//
+// ---------------------------------------------------------
+const CBaseMtmUiData::CBitmapArray& CSmsMtmUiDataCDMA::ContextIcon(
+ const TMsvEntry& aContext,
+ TInt /*aStateFlags*/ ) const
+ {
+ __ASSERT_DEBUG(aContext.iMtm==KUidMsgTypeSMS, Panic(ESmsiWrongMtm));
+ __ASSERT_DEBUG(aContext.iType.iUid!=KUidMsvFolderEntryValue, Panic(ESmsiFoldersNotSupported));
+ __ASSERT_DEBUG(aContext.iType.iUid!=KUidMsvAttachmentEntryValue, Panic(ESmsiNoIconForAttachment));
+
+
+ // Return the set of icons appropriate to the current context
+ // BIO type messages
+ TInt bmpIndex;
+ if (aContext.iBioType!=0)
+ {
+ bmpIndex = aContext.Unread() ?
+ EMbmMuiuQgn_prop_mce_smart_unread : EMbmMuiuQgn_prop_mce_smart_read;
+ }
+ // Other SMS Messages
+ else
+ {
+ TUint sendingState = aContext.SendingState();
+ switch( sendingState )
+ {
+ case KMsvSendStateFailed:
+
+ if(aContext.Priority() == EMsvHighPriority)
+ {
+ // Message priority is "urgent"
+ bmpIndex = EMbmMuiuQgn_prop_sms_failed_urgent_cdma;
+ }
+ else
+ {
+ // Message priority is "normal"
+ bmpIndex = EMbmMuiuQgn_prop_sms_failed_cdma;
+ }
+
+ break;
+
+ case KMsvSendStateUponRequest: // Mapped to be the same
+ case KMsvSendStateSuspended:
+ if(aContext.Priority() == EMsvHighPriority)
+ {
+ // Message priority is "urgent"
+ bmpIndex = EMbmMuiuQgn_prop_sms_pending_urgent_cdma;
+ }
+ else
+ {
+ // Message priority is "normal"
+ bmpIndex = EMbmMuiuQgn_prop_sms_pending_cdma;
+ }
+ break;
+
+ case KMsvSendStateScheduled: // Mapped to be the same
+ case KMsvSendStateWaiting:
+ if(aContext.Priority() == EMsvHighPriority)
+ {
+ // Message priority is "urgent"
+ bmpIndex = EMbmMuiuQgn_prop_sms_waiting_urgent_cdma;
+ }
+ else
+ {
+ // Message priority is "normal"
+ bmpIndex = EMbmMuiuQgn_prop_sms_waiting_cdma;
+ }
+ break;
+
+ case KMsvSendStateResend:
+ if(aContext.Priority() == EMsvHighPriority)
+ {
+ // Message priority is "urgent"
+ bmpIndex = EMbmMuiuQgn_prop_sms_pending_urgent_cdma;
+ }
+ else
+ {
+ // Message priority is "normal"
+ bmpIndex = EMbmMuiuQgn_prop_sms_pending_cdma;
+ }
+ break;
+
+ case KMsvSendStateSent:
+ if(aContext.Priority() == EMsvHighPriority)
+ {
+ // Message priority is "urgent"
+ bmpIndex = EMbmMuiuQgn_prop_sms_sent_urgent_cdma;
+ }
+ else
+ {
+ // Message priority is "normal"
+ bmpIndex = EMbmMuiuQgn_prop_sms_sent_cdma;
+ }
+ break;
+
+ case KMsvSendStateNotApplicable: // MT
+ // Check message priority to return the correct set of icons
+ if(aContext.Priority() == EMsvHighPriority)
+ {
+ // Message priority is "urgent"
+ bmpIndex = aContext.Unread() ?
+ EMbmMuiuQgn_prop_mce_sms_unread_urgent : EMbmMuiuQgn_prop_mce_sms_read_urgent;
+ }
+ else
+ {
+ // Message priority is "normal"
+ bmpIndex = aContext.Unread() ?
+ EMbmMuiuQgn_prop_mce_sms_unread : EMbmMuiuQgn_prop_mce_sms_read;
+ }
+ break;
+
+ default:
+ {
+ bmpIndex = ( aContext.Priority() == EMsvHighPriority ) ?
+ EMbmMuiuQgn_prop_mce_sms_unread_urgent : EMbmMuiuQgn_prop_mce_sms_unread;
+ break;
+ }
+ }
+ }
+ // Bitmaps are no longer in sequential order, need a switch case to get the correct index
+ TInt i;
+ switch( bmpIndex )
+ {
+ // Add to iIconArrays in this order
+ case EMbmMuiuQgn_prop_mce_sms_read:
+ i=0;
+ break;
+ case EMbmMuiuQgn_prop_mce_sms_unread:
+ i=1;
+ break;
+ case EMbmMuiuQgn_prop_mce_smart_read:
+ i=2;
+ break;
+ case EMbmMuiuQgn_prop_mce_smart_unread:
+ i=3;
+ break;
+ case EMbmMuiuQgn_prop_mce_sms_read_urgent:
+ i=4;
+ break;
+ case EMbmMuiuQgn_prop_mce_sms_unread_urgent:
+ i=5;
+ break;
+ case EMbmMuiuQgn_prop_sms_waiting_cdma:
+ i=6;
+ break;
+ case EMbmMuiuQgn_prop_sms_failed_cdma:
+ i=7;
+ break;
+ case EMbmMuiuQgn_prop_sms_sent_cdma:
+ i=8;
+ break;
+ case EMbmMuiuQgn_prop_sms_pending_cdma:
+ i=9;
+ break;
+ case EMbmMuiuQgn_prop_sms_delivered_cdma:
+ i=10;
+ break;
+ case EMbmMuiuQgn_prop_sms_waiting_urgent_cdma:
+ i=11;
+ break;
+ case EMbmMuiuQgn_prop_sms_failed_urgent_cdma:
+ i=12;
+ break;
+ case EMbmMuiuQgn_prop_sms_sent_urgent_cdma:
+ i=13;
+ break;
+ case EMbmMuiuQgn_prop_sms_pending_urgent_cdma:
+ i=14;
+ break;
+ case EMbmMuiuQgn_prop_sms_delivered_urgent_cdma:
+ i=15;
+ break;
+ default:
+ i=0;
+ break;
+ }
+ return *iIconArrays->At(i);
+ }
+
+// ---------------------------------------------------------
+// CSmsMtmUiDataCDMA::QueryCapability
+//
+// ---------------------------------------------------------
+TInt CSmsMtmUiDataCDMA::QueryCapability( TUid aFunctionId, TInt& aResponse ) const
+ {
+ TInt retVal = CSmsMtmUiData::QueryCapability( aFunctionId, aResponse );
+ switch ( aFunctionId.iUid )
+ {
+ case KUidMtmQueryCanSendMsgValue:
+ case KUidMtmQueryCanReceiveMsgValue:
+ case KUidMtmQueryCanCreateNewMsgValue:
+ aResponse = ETrue;
+ break;
+ default:
+ break;
+ }
+ return retVal;
+ }
+
+// ---------------------------------------------------------
+// CSmsMtmUiData::PopulateArraysL
+//
+// ---------------------------------------------------------
+void CSmsMtmUiDataCDMA::PopulateArraysL()
+ {
+ // Read additional functions
+ ReadFunctionsFromResourceFileL( R_SMSI_FUNCTION_ARRAY_CDMA );
+
+ // Trap the error
+ TRAPD(err,CreateSkinnedBitmapsL( KSmsiNumberOfZoomStates ));
+ if(err != KErrNone)
+ User::Leave(err);
+
+ }
+
+// ---------------------------------------------------------
+// CSmsMtmUiData::CreateSkinnedBitmapsL
+//
+// ---------------------------------------------------------
+
+void CSmsMtmUiDataCDMA::CreateSkinnedBitmapsL( TInt aNumZoomStates )
+ {
+ MAknsSkinInstance* skins = AknsUtils::SkinInstance();
+ TAknsItemID id;
+ CFbsBitmap* bitmap;
+ CFbsBitmap* bitmapMask;
+ TBool found = ETrue;
+
+ CBitmapArray* array;
+
+
+ for( TInt i=EMbmMuiuQgn_prop_mce_sms_read; i<= EMbmMuiuQgn_prop_sms_delivered_urgent_cdma_mask; i++ )
+ {
+ found = ETrue;
+ switch( i )
+ {
+ // Add to iIconArrays in this order
+ case EMbmMuiuQgn_prop_mce_sms_read:
+ id.Set( KAknsIIDQgnPropMceSmsRead );
+ break;
+ case EMbmMuiuQgn_prop_mce_sms_unread:
+ id.Set( KAknsIIDQgnPropMceSmsUnread );
+ break;
+ case EMbmMuiuQgn_prop_mce_smart_read:
+ id.Set( KAknsIIDQgnPropMceSmartRead );
+ break;
+ case EMbmMuiuQgn_prop_mce_smart_unread:
+ id.Set( KAknsIIDQgnPropMceSmartUnread );
+ break;
+ case EMbmMuiuQgn_prop_mce_sms_read_urgent:
+ id.Set( KAknsIIDQgnPropMceSmsReadUrgent );
+ break;
+ case EMbmMuiuQgn_prop_mce_sms_unread_urgent:
+ id.Set( KAknsIIDQgnPropMceSmsUnreadUrgent );
+ break;
+ case EMbmMuiuQgn_prop_sms_waiting_cdma:
+ id.Set( KAknsIIDQgnPropSmsWaitingCdma );
+ break;
+ case EMbmMuiuQgn_prop_sms_failed_cdma:
+ id.Set( KAknsIIDQgnPropSmsFailedCdma );
+ break;
+ case EMbmMuiuQgn_prop_sms_sent_cdma:
+ id.Set( KAknsIIDQgnPropSmsSentCdma );
+ break;
+ case EMbmMuiuQgn_prop_sms_pending_cdma:
+ id.Set( KAknsIIDQgnPropSmsPendingCdma );
+ break;
+ case EMbmMuiuQgn_prop_sms_delivered_cdma:
+ id.Set( KAknsIIDQgnPropSmsDeliveredCdma );
+ break;
+ case EMbmMuiuQgn_prop_sms_waiting_urgent_cdma:
+ id.Set( KAknsIIDQgnPropSmsWaitingUrgentCdma );
+ break;
+ case EMbmMuiuQgn_prop_sms_failed_urgent_cdma:
+ id.Set( KAknsIIDQgnPropSmsFailedUrgentCdma );
+ break;
+ case EMbmMuiuQgn_prop_sms_sent_urgent_cdma:
+ id.Set( KAknsIIDQgnPropSmsSentUrgentCdma );
+ break;
+ case EMbmMuiuQgn_prop_sms_pending_urgent_cdma:
+ id.Set( KAknsIIDQgnPropSmsPendingUrgentCdma );
+ break;
+ case EMbmMuiuQgn_prop_sms_delivered_urgent_cdma:
+ id.Set( KAknsIIDQgnPropSmsDeliveredUrgentCdma );
+ break;
+ default:
+ found = EFalse;
+ break;
+ }
+ if( found )
+ {
+ array = new(ELeave) CArrayPtrFlat<CFbsBitmap>(aNumZoomStates);
+ CleanupStack::PushL( array );
+
+ // Parse appends the correct resource path
+ // /resource/apps or /system/data
+ //
+ TParse tp;
+ tp.Set( KBitmapFile, &KDC_APP_BITMAP_DIR, NULL);
+
+ AknsUtils::CreateIconL( skins, id, bitmap,
+ bitmapMask, tp.FullName(), i, i + 1 );
+
+ array->AppendL(bitmap);
+ array->AppendL(bitmapMask);
+ iIconArrays->AppendL(array);
+
+ CleanupStack::Pop();//array
+ }
+ }
+ }
+
+// End of File