--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mobilemessaging/smum/src/simdlgplugininterface.cpp Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,148 @@
+/*
+* Copyright (c) 2002-2009 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:
+* Sim Dialog plugin interface
+*
+*/
+
+
+// INCLUDE FILES
+#include "simdlgplugin.h"
+#include "SMSU.H"
+#include "simdlgplugininterface.h"
+
+// ============================== MEMBER FUNCTIONS ============================
+
+// ----------------------------------------------------------------------------
+// CSimDlgPluginInterface::NewL
+// Two Phase Construction
+// ----------------------------------------------------------------------------
+CSimDlgPluginInterface* CSimDlgPluginInterface::NewL(
+ CSmsMtmUi& aSmsMtmUi,
+ CMsvSession& aSession)
+ {
+ CSimDlgPluginInterface* self = CSimDlgPluginInterface::NewLC(aSmsMtmUi,aSession);
+ CleanupStack::Pop( self );
+
+ return self;
+ }
+
+// ----------------------------------------------------------------------------
+// CSimDlgPluginInterface::NewLC
+// Two Phase Construction
+// ----------------------------------------------------------------------------
+CSimDlgPluginInterface* CSimDlgPluginInterface::NewLC(
+ CSmsMtmUi& aSmsMtmUi,
+ CMsvSession& aSession)
+ {
+ CSimDlgPluginInterface* self = new( ELeave ) CSimDlgPluginInterface();
+ CleanupStack::PushL( self );
+ self->ConstructL(aSmsMtmUi,aSession);
+
+ return self;
+ }
+
+// ----------------------------------------------------------------------------
+// CSimDlgPluginInterface::CSimDlgPluginInterface
+// Constructor
+// ----------------------------------------------------------------------------
+CSimDlgPluginInterface::CSimDlgPluginInterface()
+ {
+ }
+
+// ----------------------------------------------------------------------------
+// CSimDlgPluginInterface::ConstructL
+// 2nd phase constructor
+// ----------------------------------------------------------------------------
+void CSimDlgPluginInterface::ConstructL(
+ CSmsMtmUi& aSmsMtmUi,
+ CMsvSession& aSession)
+ {
+ InstantiatePluginL(aSmsMtmUi,aSession);
+ }
+
+// ----------------------------------------------------------------------------
+// CSimDlgPluginInterface::~CSimDlgPluginInterface
+// Constructor
+// ----------------------------------------------------------------------------
+CSimDlgPluginInterface::~CSimDlgPluginInterface( )
+ {
+ UnloadPlugIn();
+ if(iSimDlgPlugin)
+ {
+ delete iSimDlgPlugin;
+ iSimDlgPlugin = NULL;
+ }
+ }
+
+// ----------------------------------------------------------------------------
+// CSimDlgPluginInterface::InstantiateAllPlugInsL
+// Instantiates all plugins
+// ----------------------------------------------------------------------------
+void CSimDlgPluginInterface::InstantiatePluginL(
+ CSmsMtmUi& aSmsMtmUi,
+ CMsvSession& aSession)
+ {
+ RImplInfoPtrArray infoArray;
+
+ // Get list of all implementations
+ ListAllImplementationsL( infoArray );
+
+ //other sim dialogs available, instantiate other than default
+ for ( TInt iloop=0; iloop<infoArray.Count(); iloop++ )
+ {
+ // Get imp info
+ CImplementationInformation& info( *infoArray[iloop] );
+ // Get imp UID
+ TUid impUid ( info.ImplementationUid() );
+
+ if(infoArray.Count() > 1 &&
+ !(info.DisplayName().Compare(_L("_default_"))))
+ {
+ continue;
+ }
+ else
+ {
+ //instantiate plugin for impUid
+ iSimDlgPlugin = CSimDlgPlugin::NewL(impUid, aSmsMtmUi , aSession);
+ break;
+ }
+ }
+ infoArray.ResetAndDestroy();
+ }
+
+// -----------------------------------------------------------------------------
+// CSimDlgPluginInterface::UnloadPlugIn
+// Unloads plugin
+// -----------------------------------------------------------------------------
+void CSimDlgPluginInterface::UnloadPlugIn()
+ {
+ REComSession::FinalClose();
+ }
+
+// ----------------------------------------------------------------------------
+// CSimDlgPluginInterface::LaunchL
+// Forwards the request to the plugin instance ,
+// Launch the sim dialog
+// ----------------------------------------------------------------------------
+void CSimDlgPluginInterface::LaunchL()
+ {
+ if( iSimDlgPlugin)
+ {
+ //launch default sim dialog
+ iSimDlgPlugin->LaunchL();
+ }
+ }
+
+//EOF