--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/pnpmobileservices/pnpms/PnP/PnpProvisioningAppSrc/PnpServiceActivation.cpp Thu Dec 17 08:40:12 2009 +0200
@@ -0,0 +1,209 @@
+/*
+* 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: Service Activation this feature provided if service
+* to be enabled from PNPMS application
+*
+*/
+
+
+#include <PnpProvUtil.h>
+#include "PnpServiceActivation.h"
+#include <apacmdln.h>
+#include <apgcli.h>
+#include <w32std.h>
+#include <apgtask.h>
+#include <w32std.h>
+#include <StringLoader.h>
+#include <PnpProvisioning.rsg>
+#include <AknGlobalNote.h>
+
+
+const TUint32 KEmailApplicationUID[] = {0x100058C5};
+
+// Browser UID
+const TUid KWAPBrowserUID = { 0x10008d39 };
+
+// POP3 and IMAP4 provisioning settings application ID
+_LIT(KEmailProvAppPOP3ID, "110");
+_LIT(KEmailProvAppIMAP4ID, "143");
+
+// Literal constants
+_LIT( KMessagingAppName, "z:\\sys\\bin\\mce.exe" );
+_LIT( KEmptyDoc, "");
+
+
+// INCLUDE FILES
+
+// -----------------------------------------------------------------------------
+// CPnpServiceActivation::CPnpServiceActivation
+// C++ default constructor can NOT contain any code, that
+// -----------------------------------------------------------------------------
+//
+CPnpServiceActivation::CPnpServiceActivation()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CPnpProvUtil::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CPnpServiceActivation::ConstructL()
+ {
+ //No values to assign
+ }
+
+// -----------------------------------------------------------------------------
+// CPnpProvUtil::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CPnpServiceActivation* CPnpServiceActivation::NewL()
+ {
+ CPnpServiceActivation* self = NewLC();
+ CleanupStack::Pop();
+
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CPnpServiceActivation::NewLC
+// -----------------------------------------------------------------------------
+//
+CPnpServiceActivation* CPnpServiceActivation::NewLC()
+ {
+ CPnpServiceActivation* self = new( ELeave ) CPnpServiceActivation;
+
+ CleanupStack::PushL( self );
+ self->ConstructL();
+
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// Destructor
+// -----------------------------------------------------------------------------
+CPnpServiceActivation::~CPnpServiceActivation()
+ {
+ }
+// -----------------------------------------------------------------------------
+// CPnpServiceActivation::LaunchApplicationL
+// -----------------------------------------------------------------------------
+//
+void CPnpServiceActivation::LaunchApplicationL()
+ {
+
+ // For email service activation Messaging launcher is activated
+ TBool validApp = ValidateAppUidWithProvappIDL();
+
+ if(validApp)
+ {
+
+
+ CApaCommandLine* cmd = CApaCommandLine::NewLC();
+
+ cmd->SetExecutableNameL( KMessagingAppName );
+
+ cmd->SetDocumentNameL( KEmptyDoc );
+ cmd->SetCommandL( EApaCommandOpen );
+ RApaLsSession appArcSession;
+
+ User::LeaveIfError( appArcSession.Connect() );
+ appArcSession.StartApp( *cmd );
+ appArcSession.Close();
+ CleanupStack::PopAndDestroy( cmd );
+ }
+
+ }
+
+
+// -----------------------------------------------------------------------------
+// CPnpServiceActivation::ValidateAppUidWithProvappIDL()
+// -----------------------------------------------------------------------------
+//
+TBool CPnpServiceActivation::ValidateAppUidWithProvappIDL()
+ {
+
+ // Get application ID and Provisioning settings application
+ // ID and validate the application launcher
+ TBool flag (EFalse);
+ RPointerArray<HBufC> appID;
+
+ CPnpProvUtil *provutil = CPnpProvUtil::NewLC();
+
+ TUint32 val = provutil->GetApplicationUidL();
+ if(val == KEmailApplicationUID[0])
+ {
+ provutil->GetProvAdapterAppIdsL(appID);
+
+ for(TInt i=0; i<appID.Count(); i++)
+ {
+ TPtrC ptr(*appID[i]);
+ if(ptr.Compare(KEmailProvAppPOP3ID) ==0||
+ ptr.Compare(KEmailProvAppIMAP4ID) ==0 )
+ flag = ETrue;
+
+ }
+ }
+
+
+ CleanupStack::PopAndDestroy();
+
+ appID.ResetAndDestroy();
+ appID.Close();
+ return flag;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CPnpServiceActivation::KillBrowserL()
+// -----------------------------------------------------------------------------
+//
+void CPnpServiceActivation::KillBrowserL()
+ {
+
+ // Get the correct application data
+ RWsSession ws;
+ User::LeaveIfError(ws.Connect());
+ CleanupClosePushL(ws);
+
+ // Find the task with uid of browser. If task exists then
+ // kill browser
+ TApaTaskList taskList(ws);
+ TApaTask task = taskList.FindApp( KWAPBrowserUID );
+ if(task.Exists())
+ task.EndTask();
+
+ CleanupStack::PopAndDestroy(); // ws, lsSession
+
+
+ }
+
+// -----------------------------------------------------------------------------
+// CPnpServiceActivation::DisplayAppSpecNote()
+// -----------------------------------------------------------------------------
+//
+
+void CPnpServiceActivation::DisplayAppSpecNoteL()
+{
+ HBufC* text = StringLoader::LoadLC(R_TEXT_EMAIL_SERVICE_NOTE);
+
+ CAknGlobalNote* globalNote = CAknGlobalNote::NewL();
+ CleanupStack::PushL( globalNote );
+ globalNote->ShowNoteL( EAknGlobalInformationNote , *text );
+ CleanupStack::PopAndDestroy( 2 );
+}
+
+// End of File
+