omads/omadsappui/AspPreSyncPlugin/src/AspPreSyncDefaultPlugin.cpp
changeset 0 dab8a81a92de
child 25 8423bb7ba1d2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/omads/omadsappui/AspPreSyncPlugin/src/AspPreSyncDefaultPlugin.cpp	Mon Nov 23 14:46:41 2009 +0200
@@ -0,0 +1,286 @@
+/*
+* Copyright (c) 2007 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:  Implements the default plugin
+*
+*/
+
+
+// INCLUDES
+#include "AspPreSyncDefaultPlugin.h"
+
+#include <ConeResLoader.h> 
+#include <bautils.h>
+#include <eikenv.h>
+#include <AknGlobalNote.h>
+#include <StringLoader.h>
+#include <avkon.rsg>
+#include <avkon.hrh>
+#include <AknGlobalMsgQuery.h>
+#include <rconnmon.h>
+
+
+#include <AknQueryDialog.h>
+#include <AspSyncUtil.rsg>
+#include <StringLoader.h> 
+#include <aspdefines.h> //For enum TRoamingSettings
+#include <centralrepository.h> //For central Repository
+
+// ============================== MEMBER FUNCTIONS ============================
+
+_LIT(KDC_RESOURCE_FILES_DIR,"\\resource\\");
+_LIT(KResourceFile,        "z:AspSyncUtil.rsc");
+
+
+// -------------------------------------------------------------------------------
+// CRoamingCheck::NewL
+//
+// 
+// -------------------------------------------------------------------------------
+//
+CRoamingCheck* CRoamingCheck::NewL()
+    {
+    CRoamingCheck* self = CRoamingCheck::NewLC();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+// -------------------------------------------------------------------------------
+// CRoamingCheck::NewLC
+//
+// 
+// -------------------------------------------------------------------------------
+//
+CRoamingCheck* CRoamingCheck::NewLC()
+    {
+    CRoamingCheck* self = new (ELeave) CRoamingCheck(CEikonEnv::Static());
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    return self;
+    }
+
+// -------------------------------------------------------------------------------
+// CRoamingCheck::CRoamingCheck
+//
+// 
+// -------------------------------------------------------------------------------
+//
+CRoamingCheck::CRoamingCheck(CEikonEnv* aEikEnv) 
+        : iEnv(aEikEnv),iResLoader (*aEikEnv)
+	{
+	}
+
+// -------------------------------------------------------------------------------
+// CRoamingCheck::~CRoamingCheck
+//
+// 
+// -------------------------------------------------------------------------------
+//
+CRoamingCheck::~CRoamingCheck()
+	{    
+    iResLoader.Close();
+	delete iGlobalNote;
+	
+	}
+
+// -------------------------------------------------------------------------------
+// CRoamingCheck::ConstructL
+//
+// 
+// -------------------------------------------------------------------------------
+//
+void CRoamingCheck::ConstructL()
+    {    
+    iGlobalNote = CAknGlobalMsgQuery::NewL();
+    
+    // Resolve resource file path
+    TFileName fileName(0);
+    TParse parse;
+    parse.Set(KResourceFile,&KDC_RESOURCE_FILES_DIR,NULL);
+    fileName.Append( parse.FullName() );
+    // Get language of resource file
+    BaflUtils::NearestLanguageFile(iEnv->FsSession(), fileName );
+    // Open resource file
+    TInt err = iResLoader.Open( fileName );            
+  	}
+    
+// -------------------------------------------------------------------------------
+// CRoamingCheck::ShowGlobalNoteL
+//
+// 
+// -------------------------------------------------------------------------------
+//
+void CRoamingCheck::ShowGlobalNoteL(TInt aSoftKeyId, 
+                  const HBufC* aMessage, TInt& status)
+	{
+    iGlobalNote->CancelMsgQuery();
+	TRequestStatus GlobalNotestatus = KErrNone;
+	iGlobalNote->ShowMsgQueryL( GlobalNotestatus, *aMessage, aSoftKeyId, KNullDesC , KNullDesC ); 
+	User::WaitForRequest(GlobalNotestatus);
+	iGlobalNote->CancelMsgQuery();
+	status=GlobalNotestatus.Int();
+	}
+
+
+// ----------------------------------------------------------------------------
+// CPreSyncDefaultPlugin::NewL
+// Two Phase Construction
+// ----------------------------------------------------------------------------
+CPreSyncDefaultPlugin* CPreSyncDefaultPlugin::NewL()
+{
+	CPreSyncDefaultPlugin* self = new ( ELeave ) CPreSyncDefaultPlugin();
+	CleanupStack::PushL( self );
+	self->ConstructL();
+	CleanupStack::Pop( self );
+
+	return self;
+}
+
+// ----------------------------------------------------------------------------
+// CPreSyncDefaultPlugin::CPreSyncDefaultPlugin
+// Two Phase Construction
+// ----------------------------------------------------------------------------
+CPreSyncDefaultPlugin::CPreSyncDefaultPlugin()
+{		
+}
+
+// ----------------------------------------------------------------------------
+// CPreSyncDefaultPlugin::ConstructL
+// Two Phase Construction
+// ----------------------------------------------------------------------------
+void CPreSyncDefaultPlugin::ConstructL()
+{
+} 
+	
+	
+// ----------------------------------------------------------------------------
+// CPreSyncDefaultPlugin::~CPreSyncDefaultPlugin
+// Destructor
+// ----------------------------------------------------------------------------
+CPreSyncDefaultPlugin::~CPreSyncDefaultPlugin()
+{
+}
+
+
+// -------------------------------------------------------------------------------
+// CPreSyncDefaultPlugin::IsSupported
+//
+// 
+// -------------------------------------------------------------------------------
+//
+TBool CPreSyncDefaultPlugin::IsSupported()
+    {
+    return ETrue;
+    }
+
+// -------------------------------------------------------------------------------
+// CPreSyncDefaultPlugin::CanSyncL
+//
+// 
+// -------------------------------------------------------------------------------
+//
+TBool CPreSyncDefaultPlugin::CanSyncL()
+    {
+    TBool ret = ETrue;
+    TInt value(0);
+    
+    ReadRepositoryL(KNSmlRoamingSettingKey, value);    
+    CRoamingCheck* roamingCheck = CRoamingCheck::NewL();
+    CleanupStack::PushL(roamingCheck);
+    
+	HBufC* hBuf = NULL;
+	CAknQueryDialog* queryDialog = NULL;
+    
+    switch(value)
+        {
+        case ERoamingSettingAlwaysAsk:
+			hBuf = StringLoader::LoadLC(R_ASP_NOTE_NETWORK_CONFIRMATION);
+			queryDialog = new (ELeave) CAknQueryDialog;
+			ret = queryDialog->ExecuteLD(R_ASP_ROAMING_CONFIRMATION_QUERY, hBuf->Des());
+			if(ret)
+				{
+				ret = ETrue;
+				}
+			else
+				{
+				ret = EFalse;
+				}
+			CleanupStack::PopAndDestroy(hBuf);
+            break;
+        case ERoamingSettingAlwaysAllow:
+            break;
+        case ERoamingSettingNeverAllow:
+     		hBuf = StringLoader::LoadLC(R_ASP_NOTE_NETWORK_NOT_ALLOWED);
+			queryDialog = new (ELeave) CAknQueryDialog;
+			ret = queryDialog->ExecuteLD(R_ASP_INFORMATION_QUERY, hBuf->Des());
+			CleanupStack::PopAndDestroy(hBuf);
+
+            ret = EFalse;
+            break;
+        case ERoamingSettingBlock:
+			hBuf = StringLoader::LoadLC(R_ASP_NOTE_NOT_HOME_NETWORK);
+			queryDialog = new (ELeave) CAknQueryDialog;
+			ret = queryDialog->ExecuteLD(R_ASP_INFORMATION_QUERY, hBuf->Des());
+			CleanupStack::PopAndDestroy(hBuf);
+
+            ret = EFalse;
+            break;
+        default:
+            break;
+        }
+    
+    CleanupStack::PopAndDestroy(roamingCheck);
+    return ret;
+    }
+
+// -------------------------------------------------------------------------------
+// CPreSyncDefaultPlugin::ReadRepositoryL
+//
+// 
+// -------------------------------------------------------------------------------
+//
+void CPreSyncDefaultPlugin::ReadRepositoryL(TInt aKey, TInt& aValue)
+    {
+    CRepository* rep = CRepository::NewLC(KCRUidNSmlDSApp);
+    TInt err = rep->Get(aKey, aValue);
+    User::LeaveIfError(err);
+    
+    CleanupStack::PopAndDestroy(rep);
+    }
+
+
+// -------------------------------------------------------------------------------
+// CPreSyncDefaultPlugin::SetProfile
+//
+// 
+// -------------------------------------------------------------------------------
+//
+TBool CPreSyncDefaultPlugin::SetProfile(const TSmlProfileId& aProfileId)
+    {
+    iSyncProfileId = aProfileId;
+    return ETrue;
+    }
+
+// -------------------------------------------------------------------------------
+// CPreSyncDefaultPlugin::SyncNow
+//
+// 
+// -------------------------------------------------------------------------------
+//
+TInt CPreSyncDefaultPlugin::SyncNow(MSyncExtObserver* aObserver)
+    {
+    TInt retValue = 1;
+    return retValue;
+    }
+
+