--- a/applicationmanagement/server/src/ApplicationManagementServer.cpp Tue Aug 31 15:05:55 2010 +0300
+++ b/applicationmanagement/server/src/ApplicationManagementServer.cpp Wed Sep 01 12:31:32 2010 +0100
@@ -16,6 +16,7 @@
*/
#define __INCLUDE_CAPABILITY_NAMES__
+
#include <e32svr.h>
#include <badesca.h>
#include <e32cmn.h>
@@ -24,20 +25,15 @@
#include <imcvcodc.h>
#include <uikon.hrh>
#include <e32property.h>
-#include <driveinfo.h>
+#include "ApplicationManagementConst.h"
+#include "ampskeys.h"
#include <SWInstDefs.h>
+#include "amprivateCRKeys.h"
#include <PolicyEngineClient.h>
#include <PolicyEngineXACML.h>
-#include <eikenv.h>
-#include <hbapplication.h>
-#include <apgwgnam.h>
-#include <nsmldmconst.h>
-#include <DevManInternalCRKeys.h>
-#include <apgtask.h>
-#include <apgwgnam.h>
-#include "ampskeys.h"
-#include "amprivateCRKeys.h"
-#include "ApplicationManagementConst.h"
+#include <pathinfo.h>
+#include <driveinfo.h>
+
#include "ApplicationManagementCommon.h"
#include "ApplicationManagementClientServer.h"
#include "ApplicationManagementServer.h"
@@ -45,11 +41,14 @@
#include "amsmlhelper.h"
#include "ApplicationManagementUtility.h"
#include "ApplicationManagementUtilityFactory.h"
+
#include "debug.h"
+
#include "coemain.h"
+#include <aknnotewrappers.h>
+#include "SyncService.h"
#include "AMPreInstallApp.h"
-#include "amview.h"
-#include "appmgmtnotifier.h"
+#include <DevManInternalCRKeys.h>
using namespace NApplicationManagement;
@@ -59,20 +58,162 @@
#else
#pragma message("AM Connecting installer when needed")
#endif
+
// Needed only for jad+jar installation
_LIT( KInstallDir, "c:\\temp\\" );
_LIT8(KMIDletJarURL, "MIDlet-Jar-URL");
+
//OMA SCOMO Specific
_LIT8(KDownloadState, "./SCOMO/Download/");
_LIT8(KDeliveredState, "./SCOMO/Inventory/Delivered/");
_LIT8(KDeployedState, "./SCOMO/Inventory/Deployed/");
-//Package all the above together into a policy
-CPolicyServer::TPolicy KApplicationManagementSecurityPolicy;
+// ------------------------------------------------------------------------------------------------
+// CShutDown::CShutdown()
+// ------------------------------------------------------------------------------------------------
+
+inline CShutdown::CShutdown() :
+ CTimer(-1)
+ {
+ CActiveScheduler::Add(this);
+ }
+
+// ------------------------------------------------------------------------------------------------
+// CShutDown::ConstructL()
+// ------------------------------------------------------------------------------------------------
+
+inline void CShutdown::ConstructL()
+ {
+ CTimer::ConstructL();
+ }
+
+// ------------------------------------------------------------------------------------------------
+// CShutDown::Start()
+// ------------------------------------------------------------------------------------------------
+
+inline void CShutdown::Start()
+ {
+ RDEBUG( "ApplicationManagementServer: starting shutdown timeout" );
+ After(KApplicationManagementShutdownDelay);
+ }
+
+// ------------------------------------------------------------------------------------------------
+// CShutDown::RunL()
+// ------------------------------------------------------------------------------------------------
+
+void CShutdown::RunL()
+ {
+ RDEBUG( "ApplicationManagementServer timeout ... closing" );
+ CActiveScheduler::Stop();
+ }
+
+// ------------------------------------------------------------------------------------------------
+// CShutDown::Start()
+// ------------------------------------------------------------------------------------------------
+
+inline void CShutdown::Stop()
+ {
+ RDEBUG( "ApplicationManagementServer: Stop" );
+ CActiveScheduler::Stop();
+ }
+
+
+// ------------------------------------------------------------------------------------------------
+// CApplicationManagementServer::CreateServiceL()
+// ------------------------------------------------------------------------------------------------
+CApaAppServiceBase* CApplicationManagementServer::CreateServiceL(
+ TUid aServiceType) const
+ {
+ RDEBUG( "ApplicationManagementServer CreateServiceL" );
+ if (aServiceType.iUid == KAMServiceUid)
+ {
+ return ((CApaAppServiceBase*) (new (ELeave) CApplicationManagementSession));
+ }
+ else
+ {
+ return CAknAppServer::CreateServiceL(aServiceType);
+ }
+ }
+
+// ------------------------------------------------------------------------------------------------
+// CApplicationManagementServer::SendServerToBackground()
+// ------------------------------------------------------------------------------------------------
+
+void CApplicationManagementServer::SendServerToBackground()
+ {
+
+ RDEBUG( "ApplicationManagementServer SendServerToBackground - Start " );
+ TApaTaskList taskList(CEikonEnv::Static()->WsSession() );
+ TApaTask task = taskList.FindApp(TUid::Uid(KAppMgmtServerUid));
+
+ TInt id = CEikonEnv::Static()->RootWin().Identifier();
+
+ RDEBUG_2( "CApplicationManagementServer:::SendServerToBackground %d", id );
+
+ task.SetWgId(id);
+
+ if (task.Exists())
+ {
+ RDEBUG( "ApplicationManagementServer SendServerToBackground - Start 1" );
+ task.SendToBackground();
+ }
+ RDEBUG( "ApplicationManagementServer SendServerToBackground - End " );
+ TInt amServerEnabled = 0;
+ RProperty::Set(KUidPSApplicationManagementKeys, KAMServerUIEnabled,
+ amServerEnabled);
+ RDEBUG( "ApplicationManagementServer SendServerToBackground - End 2 " );
+
+ }
+
+// ------------------------------------------------------------------------------------------------
+// CApplicationManagementServer::BringServertoForeground()
+// ------------------------------------------------------------------------------------------------
+
+void CApplicationManagementServer::BringServertoForeground()
+ {
+
+ RDEBUG( "CApplicationManagementServer:::BringServertoForeground " );
+ TApaTaskList taskList(CEikonEnv::Static()->WsSession() );
+ TApaTask task = taskList.FindApp(TUid::Uid(KAppMgmtServerUid));
+
+ TInt id = CEikonEnv::Static()->RootWin().Identifier();
+
+ RDEBUG_2( "CApplicationManagementServer:::BringServertoForeground %d", id );
+
+ task.SetWgId(id);
+ if (task.Exists())
+ {
+ RDEBUG( "ApplicationManagementServer SendServerToBackground - BringServertoForeground " );
+ task.BringToForeground();
+ }
+ }
+
+// ------------------------------------------------------------------------------------------------
+// CApplicationManagementServer::BringServertoForeground()
+// ------------------------------------------------------------------------------------------------
+
+void CApplicationManagementServer::BringDMUItoForeground()
+ {
+ RDEBUG( "ApplicationManagementServer DownloadComplete - DM UI Broughtto foreground Start " );
+
+ TApaTaskList taskList(CEikonEnv::Static()->WsSession() );
+ TApaTask task = taskList.FindApp(KPSUidNSmlDMSyncApp);
+
+ const TInt id = task.WgId();
+ task.SetWgId(id);
+ RDEBUG_2( "CApplicationManagementServer:::BringDMUItoForeground %d", id );
+
+ if (task.Exists())
+ {
+ RDEBUG( "ApplicationManagementServer DownloadComplete - DM UI Broughtto foreground " );
+ task.BringToForeground();
+ }
+ }
// ------------------------------------------------------------------------------------------------
// CApplicationManagementServer::ComponentDownloadComplete()
// ------------------------------------------------------------------------------------------------
+
void CApplicationManagementServer::ComponentDownloadComplete(
CDeploymentComponent *aComponent, TInt iapid, HBufC8 *aServerId)
{
@@ -89,15 +230,13 @@
{
RDEBUG( "ApplicationManagementServer DownloadComplete - start" );
__ASSERT_DEBUG( aComponent, User::Invariant() );
- iComp = aComponent;
- iStorage->UpdateL(*aComponent);
+ iStorage->UpdateL( *aComponent);
TInt errdownload = KErrNone;
TInt errInstall = KErrNone;
TInt status = KStatusSuccess;
-
- if (!aComponent->DownloadFailed())
+ if ( !aComponent->DownloadFailed() )
{
- CDeploymentComponent *old = DoDataUpdateCheckL(*aComponent);
+ CDeploymentComponent *old = DoDataUpdateCheckL( *aComponent);
TDownloadTarget trgt = aComponent->DownloadTarget();
switch (trgt)
{
@@ -108,14 +247,16 @@
case EInstall:
case EInstallAndActivate:
{
-
TRAP(errInstall,DoTheInstallL( *aComponent));
-RDEBUG_2( "ApplicationManagementServer DownloadComplete - start %d", errInstall);
-
if (trgt == EInstall && errInstall == KErrNone)
{
- iStorage->DeactivateL(*aComponent);
+ iStorage->DeactivateL( *aComponent);
}
+ /* to avoid duplicates in deployed tree if user delivered upgrade package
+ * by using "Install/InstallActivate" operation. if upgrade package is delivered
+ * by Update/UpdateandActivate" , this been handled in next switch case
+ */
+
break;
}
@@ -124,10 +265,10 @@
{
if (old)
{
- FullUpdateL(*aComponent, *old);
+ FullUpdateL( *aComponent, *old);
if (trgt == EUpdate)
{
- iStorage->DeactivateL(*aComponent);
+ iStorage->DeactivateL( *aComponent);
}
}
break;
@@ -137,6 +278,7 @@
break;
}
}
+
}
else
{
@@ -146,249 +288,247 @@
RDEBUG( "ApplicationManagementServer DownloadComplete - Start Send to background" );
//Download Completed/ Failed or installation success/ failure Send server to Background.
+ SendServerToBackground();
+
+ // Bring DM UI to foreground provided operation is in non silent mode.
+ TInt operNonSilent = KErrNotFound;
+
+ RProperty::Get(KUidPSApplicationManagementKeys, KAMOperationNonSilent,
+ operNonSilent);
+
+ if (operNonSilent==1 || operNonSilent==KErrNotFound)
+ {
+ RDEBUG( "ApplicationManagementServer DownloadComplete - DM UI Bring " );
+ BringDMUItoForeground();
+ }
+
iOMASCOMOEnabled = IsOMASCOMOEnabledL();
-
- m_Window->lower();
-
+
+
if (iOMASCOMOEnabled)
{
- status = GetErrorStatus(errdownload, errInstall);
-
+
+
+ status = GetErrorStatus(errdownload,errInstall);
+
TInt ASyncSupported = -1;
- CRepository *repository = CRepository::NewLC(
- KUidPSApplicationManagementKeys);
+ CRepository *repository = CRepository::NewLC( KUidPSApplicationManagementKeys );
repository->Get(KAsyncEnabled, ASyncSupported);
CleanupStack::PopAndDestroy();
-
+
// For Sync Reporting
if (!ASyncSupported)
{
+
// Update Central Repository with proper error code for Sync
-
- CRepository *repository = CRepository::NewLC(
- KUidPSApplicationManagementKeys);
+
+
+ CRepository *repository= CRepository::NewLC ( KUidPSApplicationManagementKeys ) ;
repository->Set(KAMSyncStatus, status);
CleanupStack::PopAndDestroy();
-
+
RProperty counter;
-
- TInt r = counter.Attach(KUidPSApplicationManagementKeys,
+
+ TInt r=counter.Attach(KUidPSApplicationManagementKeys,
KSyncNotifier, EOwnerThread);
User::LeaveIfError(r);
- TInt err = counter.Set(KErrCancel);
- User::LeaveIfError(err);
- counter.Close();
- }
- else// Do AsyncReporting
- {
-
- RDEBUG( "CApplicationManagementServer::ASync Reporting Step 1" );
-
- // Get deployement component entries
- TInt internalid = aComponent->InternalId();
-
- RDEBUG( "CApplicationManagementServer::ASync Reporting Step 2" );
-
TBuf8<256> targetURI;
TDeploymentComponentState state = aComponent->State();
- RDEBUG( "CApplicationManagementServer::ASync Reporting Step 3" );
+ if (state == EDCSDownload)
+ {
+ targetURI.Append(KDownloadState);
+ targetURI.Append(aComponent->UserId());
+ }
+ else
+ if (state == EDCSDelivered)
+ {
+ targetURI.Append(KDeliveredState);
+ targetURI.Append(aComponent->UserId());
+
+ }
+ else
+ if (state == EDCSActive|| state == EDCSInactive)
+ {
+ targetURI.Append(KDeployedState);
+ targetURI.Append(aComponent->UserId());
+ }
+
+ //Set Targeturi to cenrep
+
+ CRepository* cenrep = NULL;
+ TInt errr(KErrNone);
+ TRAP(errr, cenrep = CRepository::NewL( KCRUidDeviceManagementInternalKeys ));
+ if(errr == KErrNone)
+ {
+ errr = cenrep->Set( KNSmlDMSCOMOTargetRef, targetURI );
+ delete cenrep;
+ cenrep = NULL;
+ }
+
+ TInt err = counter.Set(KErrCancel);
+ User::LeaveIfError(err);
+ counter.Close();
+
+ }
+ else// Do AsyncReporting
+ {
+
+ // Get deployement component entries
+ TInt internalid = aComponent->InternalId();
+
+ TBuf8<256> targetURI;
+
+ TDeploymentComponentState state = aComponent->State();
if (state == EDCSDownload)
{
-
- RDEBUG( "CApplicationManagementServer::ASync EDCSDownload Start" );
-
targetURI.Append(KDownloadState);
targetURI.Append(aComponent->UserId());
-
- RDEBUG( "CApplicationManagementServer::ASync EDCSDownload End" );
-
}
- else if (state == EDCSDelivered)
- {
- RDEBUG( "CApplicationManagementServer::ASync EDCSDelivered Start" );
-
- targetURI.Append(KDeliveredState);
- targetURI.Append(aComponent->UserId());
-
- RDEBUG( "CApplicationManagementServer::ASync EDCSDelivered End" );
-
- }
- else if (state == EDCSActive || state == EDCSInactive)
- {
-
- RDEBUG( "CApplicationManagementServer::ASync EDCSActive Start" );
-
- targetURI.Append(KDeployedState);
- targetURI.Append(aComponent->UserId());
-
- RDEBUG( "CApplicationManagementServer::ASync EDCSActive End" );
- }
+ else
+ if (state == EDCSDelivered)
+ {
+ targetURI.Append(KDeliveredState);
+ targetURI.Append(aComponent->UserId());
+
+ }
+ else
+ if (state == EDCSActive|| state == EDCSInactive)
+ {
+ targetURI.Append(KDeployedState);
+ targetURI.Append(aComponent->UserId());
+ }
//Save Entry to database with status and target URI of deployment component
- TInt iapidval = 2;
- TRAPD( err1, SmlHelper::GetDefaultIAPFromDMProfileL( iapid ) );
- if (err1 == KErrNone)
- {
- RDEBUG_2("Application Mgmt Server service::DownloadCompleteL iapid to : %d", iapid );
- }
TInt index;
iAMServerDB->SaveToDatabaseL(index, internalid, status,
- targetURI, iapidval);
-
- RDEBUG( "CApplicationManagementServer::ASync SaveToDatabaseL completed" );
+ targetURI, iapid);
EnableDMNetworkMonL(iapid, aServerId);
}
+
}
- int value = 0 ;
- int err = RProperty::Set(TUid::Uid(KOmaDMAppUid), KDownloadActive, value);
- RDEBUG_2("RProperty set (%d)", err );
if (iDownloadMngr->DownloadCount() == 0)
{
-
+
RDEBUG_2( "CApplicationManagementServer::ConstructL - ERROR leaving cannot connect installer: %d", iSessionCount );
-
+
// Is session count is not modified whenever there is error then at the end of download complete decrement
// the session count.
-
- if (status != KStatusSuccess && iSessionCount != 0)
+
+ if(iSessionCount != 0 )
{
- iSessionCount--;
+ iSessionCount--;
}
-
+
if (iSessionCount == 0)
- {
- iShutdown.Start();
+ {
+ iShutdown.Stop();
}
}
- aComponent->SetDriveSelectionStatus(false);
+
RDEBUG( "ApplicationManagementServer DownloadComplete - end" );
}
-void CApplicationManagementServer::InstallationCancelled()
- {
- iInstaller.CancelOperation();
- }
// ------------------------------------------------------------------------------------------------
// CApplicationManagementServer::IsOMASCOMOEnabledL()
// ------------------------------------------------------------------------------------------------
TBool CApplicationManagementServer::IsOMASCOMOEnabledL()
{
- RDEBUG( "CApplicationManagementServer::IsOMASCOMOEnabledL Start" );
-
TInt adapterValue;
-
- CRepository *repository = CRepository::NewLC(
- KCRUidPrivateApplicationManagementKeys);
+
+ CRepository *repository = CRepository::NewLC ( KCRUidPrivateApplicationManagementKeys ) ;
repository->Get(KAMAdapterValue, adapterValue);
CleanupStack::PopAndDestroy();
-
- RDEBUG( "CApplicationManagementServer::IsOMASCOMOEnabledL End" );
-
- if (adapterValue == 0 || adapterValue == 1)
- return EFalse;
+
+ if(adapterValue ==0 || adapterValue == 1)
+ return EFalse;
else
- return ETrue;
+ return ETrue;
+
}
// ------------------------------------------------------------------------------------------------
// CApplicationManagementServer::GetErrorStatus()
// ------------------------------------------------------------------------------------------------
-TInt CApplicationManagementServer::GetErrorStatus(TInt aErrorDownload,
- TInt aErrorInstall)
- {
- TInt status = KStatusSuccess;
-
- if (aErrorDownload != KErrNone)
- {
- if (aErrorDownload == KStatusUserCancelled || aErrorDownload
- == KStatusDowloadFailedOOM || aErrorDownload
- == KStatusUnSupportedEnvironment || aErrorDownload
- == KStatusAlternateDownldAuthFail || aErrorDownload
- == KStatusAltDowldUnavailable)
- {
- status = aErrorDownload;
- }
- else
- status = KStatusDownloadFailed;
- }
-
- else if (aErrorInstall != KErrNone)
- {
- if (aErrorInstall == SwiUI::KSWInstErrSecurityFailure)
- status = KStatusPkgValidationFailed;
- if (aErrorInstall == SwiUI::KSWInstErrInsufficientMemory)
- status = KStatusInstallFailedOOM;
- if (aErrorInstall == KStatusUserCancelled)
- status = KStatusUserCancelled;
- else
- status = KStatusInstallFailed;
-
- }
-
- return status;
-
- }
-
+TInt CApplicationManagementServer::GetErrorStatus(TInt aErrorDownload, TInt aErrorInstall)
+{
+ TInt status = KStatusSuccess;
+
+ if (aErrorDownload!=KErrNone)
+ {
+ if (aErrorDownload == KStatusUserCancelled || aErrorDownload
+ == KStatusDowloadFailedOOM || aErrorDownload
+ == KStatusUnSupportedEnvironment || aErrorDownload
+ ==KStatusAlternateDownldAuthFail || aErrorDownload == KStatusAltDowldUnavailable)
+ {
+ status = aErrorDownload;
+ }
+ else
+ status = KStatusDownloadFailed;
+ }
+
+ else
+ if (aErrorInstall!=KErrNone)
+ {
+ if (aErrorInstall == SwiUI::KSWInstErrSecurityFailure)
+ status = KStatusPkgValidationFailed;
+ if (aErrorInstall == SwiUI::KSWInstErrInsufficientMemory)
+ status = KStatusInstallFailedOOM;
+ else
+ status = KStatusInstallFailed;
+
+ }
+
+ return status;
+
+}
+
+
// ------------------------------------------------------------------------------------------------
// CApplicationManagementServer::EnableDMNetworkMonL()
// ------------------------------------------------------------------------------------------------
-void CApplicationManagementServer::EnableDMNetworkMonL(TInt iapid,
- HBufC8 *aServerId)
- {
- TInt retryenabled = 1;
- _LIT( KNetMon,"\\dmnetworkmon.exe" );
-
- // Enable DM Network Monitoring for retry of Generic alert in case of N/W loss
-
- CRepository *repository = CRepository::NewLC(
- KCRUidDeviceManagementInternalKeys);
- TInt err_val = repository->Set(KDevManEnableDMNetworkMon, retryenabled);
- RDEBUG_2( "CApplicationManagementServer::EnableDMNetworkMonL Retry enabled err: %d", err_val );
- RDEBUG_2( "CApplicationManagementServer::EnableDMNetworkMonL Retry enabled value: %d", retryenabled );
-
- err_val = repository->Set(KDevManIapIdKey, iapid);
- RDEBUG_2( "CApplicationManagementServer::EnableDMNetworkMonL devmaniapid: %d", err_val );
- RDEBUG_2( "CApplicationManagementServer::EnableDMNetworkMonL iap id: %d", iapid );
-
- err_val = repository->Set(KDevManServerIdKey, *aServerId);
- RDEBUG_2( "CApplicationManagementServer::EnableDMNetworkMonL serveridkey: %d", err_val );
-
- TBuf<256> buf1;
- buf1.Copy(*aServerId);
- RDEBUG_2( "Server ID - '%S'", &buf1);
-
- CleanupStack::PopAndDestroy();
-
- // create NetMon EXE
- RProcess rp;
- TInt err = rp.Create(KNetMon, KNullDesC);
- User::LeaveIfError(err);
- TRequestStatus stat;
- rp.Rendezvous(stat);
-
- if (stat != KRequestPending)
- rp.Kill(0); // abort startup
- else
- rp.Resume(); // logon OK - start the server
- TInt r = (rp.ExitType() == EExitPanic) ? KErrGeneral : stat.Int();
- rp.Close();
-
- }
+void CApplicationManagementServer::EnableDMNetworkMonL(TInt iapid, HBufC8 *aServerId)
+{
+ TInt retryenabled = 1;
+ _LIT( KNetMon,"\\dmnetworkmon.exe" );
+
+ // Enable DM Network Monitoring for retry of Generic alert in case of N/W loss
+
+ CRepository *repository= CRepository::NewLC ( KCRUidDeviceManagementInternalKeys );
+ repository->Set(KDevManEnableDMNetworkMon, retryenabled);
+ repository->Set(KDevManServerIdKey, *aServerId);
+ repository->Set(KDevManIapIdKey, iapid);
+ CleanupStack::PopAndDestroy();
+
+ // create NetMon EXE
+ RProcess rp;
+ TInt err = rp.Create(KNetMon,KNullDesC);
+ User::LeaveIfError(err);
+ TRequestStatus stat;
+ rp.Rendezvous(stat);
+
+ if (stat!=KRequestPending)
+ rp.Kill(0); // abort startup
+ else
+ rp.Resume(); // logon OK - start the server
+ TInt r=(rp.ExitType()==EExitPanic) ? KErrGeneral : stat.Int();
+ rp.Close();
+
+
+}
// ------------------------------------------------------------------------------------------------
// CApplicationManagementServer::CApplicationManagementServer
// ------------------------------------------------------------------------------------------------
-inline CApplicationManagementServer::CApplicationManagementServer() :
- CPolicyServer(0, KApplicationManagementSecurityPolicy, ESharableSessions)
+inline CApplicationManagementServer::CApplicationManagementServer()
{
}
@@ -416,7 +556,7 @@
RDEBUG( "ApplicationManagementServer: CApplicationManagementServer::DropSession" );
// Start the shutdown timer if it is the last session
- if (--iSessionCount == 0)
+ if ( --iSessionCount == 0)
{
if (iDownloadMngr->DownloadCount() > 0)
{
@@ -437,45 +577,76 @@
CDeploymentComponent *aComponent)
{
__ASSERT_DEBUG( aComponent, User::Invariant() );
-
- RDEBUG( "CApplicationManagementServer::AddDownloadL Start" );
-
iDownloadMngr->AddDownloadL(aComponent);
-
- RDEBUG( "CApplicationManagementServer::AddDownloadL End" );
+ }
+
+// ------------------------------------------------------------------------------------------------
+// CApplicationManagementServer::NewLC
+// ------------------------------------------------------------------------------------------------
+
+CApplicationManagementServer* CApplicationManagementServer::NewL()
+ {
+
+ CApplicationManagementServer* self=new(ELeave) CApplicationManagementServer;
+
+ return self;
}
// ------------------------------------------------------------------------------------------------
-// CApplicationManagementServer
-// -----------------------------------------------------------------------------
-
-CServer2* CApplicationManagementServer::NewL(HbMainWindow *mainWindow)
+// CApplicationManagementServer::CreateServiceSecurityCheckL
+// ------------------------------------------------------------------------------------------------
+
+CPolicyServer::TCustomResult CApplicationManagementServer::CreateServiceSecurityCheckL(
+ TUid aServiceType, const RMessage2& aMsg, TInt& aAction,
+ TSecurityInfo& aMissing)
{
- //specifies all connect attempts should pass
- KApplicationManagementSecurityPolicy.iOnConnect
- = CPolicyServer::EAlwaysPass;
- KApplicationManagementSecurityPolicy.iRangeCount
- = KApplicationManagementRangeCount; //number of ranges
- KApplicationManagementSecurityPolicy.iRanges
- = KApplicationManagementRanges;
- KApplicationManagementSecurityPolicy.iElementsIndex
- = KApplicationManagementSecurityElementsIndex;
- KApplicationManagementSecurityPolicy.iElements
- = KApplicationManagementSecurityElements;
-
- RDEBUG( "ApplicationManagementServer: CApplicationManagementServer::NewLC" );
-
- CApplicationManagementServer* self =
- new (ELeave) CApplicationManagementServer;
- CleanupStack::PushL(self);
-
- self->ConstructL(mainWindow);
- CleanupStack::Pop();
- return self;
+ TInt32 trustRange = EAddTrust;
+ TInt32 performRFS = EPerformRfs;
+ TInt32 last = ELast;
+
+ if ( (aServiceType.iUid >= trustRange)
+ && (aServiceType.iUid < performRFS ))
+ {
+ if (aMsg.HasCapability(TCapability(ECapabilityTrustedUI) ) )
+ {
+ return CPolicyServer::EPass;
+ }
+ else
+ {
+ return CPolicyServer::EFail;
+ }
+ }
+
+ else
+ if ( (aServiceType.iUid >= performRFS) && (aServiceType.iUid < last))
+
+ {
+ if (aMsg.HasCapability(TCapability(ECapabilityDiskAdmin))
+ && (aMsg.SecureId().iId == 0x101f9a02 ))
+ {
+ return CPolicyServer::EPass;
+ }
+ else
+ {
+ return CPolicyServer::EFail;
+ }
+ }
+
+ else
+ if (aServiceType.iUid == last)
+ {
+ return CPolicyServer::EFail;
+ }
+
+ else
+ {
+ return CAknAppServer::CreateServiceSecurityCheckL(
+ aServiceType, aMsg, aAction, aMissing);
+ }
}
-// -----------------------------------------------------------------------------
+// ------------------------------------------------------------------------------------------------
// CApplicationManagementServer::~CApplicationManagementServer
// ------------------------------------------------------------------------------------------------
@@ -498,11 +669,11 @@
RProperty::Delete(KUidPSApplicationManagementKeys, KDMUINotClosed);
+
iInstallFile.Close();
iInstallRFs.Close();
delete iDownloadMngr;
-
}
// ------------------------------------------------------------------------------------------------
@@ -518,27 +689,29 @@
// CApplicationManagementServer::ConstructL
// ------------------------------------------------------------------------------------------------
-void CApplicationManagementServer::ConstructL(HbMainWindow* aWindow)
+void CApplicationManagementServer::ConstructL(const TDesC &aServerName)
{
// 2nd phase construction - ensure the timer and server objects are running
RDEBUG( "CApplicationManagementServer::ConstructL - Start" );
iOMASCOMOEnabled = ETrue;
- mUserCancelled = 0;
- TRAPD( errf, FeatureManager::InitializeLibL() );
+
+ CAknAppServer::ConstructL(aServerName);
+ TRAPD( errf, FeatureManager::InitializeLibL() )
+ ;
if (errf != KErrNone)
{
User::Leave(errf);
}
- m_Window = aWindow;
+
RDEBUG( "CApplicationManagementServer::ConstructL - start" );
- StartL(KApplicationManagementServerName);
+
iStorage = CDeliveryComponentStorage::NewL();
iUtility
= ApplicationManagementUtilityFactory::CreateManagementUtilityL();
- iDownloadMngr = CAMDownloadStore::NewL(*this);
+ iDownloadMngr = CAMDownloadManager::NewL( *this);
iAMServerDB = CAMDownloaddb::NewL();
// Define P&S Keys
@@ -561,6 +734,8 @@
EOwnerThread);
syncproperty.Set(KErrNone);
syncproperty.Close();
+
+ SendServerToBackground();
#ifdef __AM_CONNECT_INSTALLER_ONSTARTUP_
TInt err( iInstaller.Connect() );
@@ -570,27 +745,24 @@
User::LeaveIfError( err );
}
#endif
+ RDEBUG( "CApplicationManagementServer::ConstructL - end" );
+ }
+
+// ------------------------------------------------------------------------------------------------
+// CApplicationManagementServer::StartShutDownTimer()
+// ------------------------------------------------------------------------------------------------
+
+void CApplicationManagementServer::StartShutDownTimerL()
+ {
+
+ RDEBUG( "CApplicationManagementServer::ConstructL - end" );
+
iShutdown.ConstructL();
// ensure that the server still exits even if the 1st client fails to connect
iShutdown.Start();
RDEBUG( "CApplicationManagementServer::ConstructL - end" );
}
-//---------------------------------------------------------------------------
-// Create a new client session.
-//---------------------------------------------------------------------------
-CSession2* CApplicationManagementServer::NewSessionL(
- const TVersion& aVersion, const RMessage2& /*aMessage */) const
- {
- RDEBUG( "ApplicationManagementServer: CApplicationManagementServer::NewSessionL" );
- TVersion ver(KAMVerMajor, KAMVerMinor, KAMVerBuild);
- if (!User::QueryVersionSupported(ver, aVersion))
- {
- RDEBUG( "CApplicationManagementServer::NewSessionL(): wrong version offered -> BAIL OUT!" );
- User::Leave(KErrNotSupported);
- }
- return new (ELeave) CApplicationManagementSession();
- }
// ------------------------------------------------------------------------------------------------
// CApplicationManagementServer::CustomSecurityCheckL()
@@ -610,56 +782,29 @@
const CDeploymentComponent& aCompo, const TBool &aInstallSuccess)
{
RDEBUG_2("CApplicationManagementServer::InstallCompleteL start (%d)", aInstallSuccess);
-
iInstallFile.Close();
+
// if java jad + jar install, remove files from c:\temp directory
if (CDeploymentComponent::IsJavaMimeL(aCompo.MetaData().MimeType() ) && CDeploymentComponent::IsJavaMimeL(aCompo.Data().MimeType() ) )
{
TFileName fn, fn2;
GenerateTempFileNameL(iInstallRFs, aCompo, fn, fn2);
RDEBUG_3("CApplicationManagementServer::InstallCompleteL delete files: (%S) (%S)", &fn, &fn2);
- User::LeaveIfError(iInstallRFs.Delete(fn));
- User::LeaveIfError(iInstallRFs.Delete(fn2));
+ User::LeaveIfError(iInstallRFs.Delete(fn) );
+ User::LeaveIfError(iInstallRFs.Delete(fn2) );
}
- TInt silentsession = 0;
- TInt r2 = RProperty::Get(KPSUidNSmlSOSServerKey, KNSmlDMSilentJob,
- silentsession);
-
- if(r2 == KErrNone)
- CApplicationManagementUtility::iSilentSession = silentsession;
-
- if (!CApplicationManagementUtility::iSilentSession)
- {
- AppMgmtNotifier* note = new AppMgmtNotifier(m_appName);
+
if (aInstallSuccess)
{
- note->showInstallSuccessNote();
// Remove temporary files from private directory
- const_cast<CDeploymentComponent&> (aCompo).ResetDataL(iInstallRFs);
- }
- else if(mUserCancelled == 0)
- {
- note->showInstallFailedNote();
- m_Window->lower();
+ const_cast<CDeploymentComponent&>(aCompo).ResetDataL(iInstallRFs);
}
-
- delete note;
- }
- else
- {
- if (aInstallSuccess)
- {
-
- const_cast<CDeploymentComponent&> (aCompo).ResetDataL(iInstallRFs);
- m_Window->lower();
- }
- }
-
+
iInstallRFs.Close();
iInstallInProgress = EFalse;
#ifndef __AM_CONNECT_INSTALLER_ONSTARTUP_
- iInstaller.Close();
+ iInstaller.Close() ;
#endif
RDEBUG("CApplicationManagementServer::InstallCompleteL end");
}
@@ -674,12 +819,12 @@
if (aMetaSource != KNullDesC)
{
RFile file;
- User::LeaveIfError(file.Open(aFs, aMetaSource, EFileRead));
+ User::LeaveIfError(file.Open(aFs, aMetaSource, EFileRead) );
CleanupClosePushL(file);
TFileName temp;
temp = ReadJarFileNameL(file);
GenerateTempFileNameL(aFs, temp, aFileName);
- CleanupStack::PopAndDestroy(&file);
+ CleanupStack::PopAndDestroy( &file);
}
}
@@ -694,8 +839,8 @@
{
aFileName.Copy(KInstallDir);
TParse p;
- User::LeaveIfError(aFs.Parse(aSource, p));
- aFileName.Append(p.NameAndExt());
+ User::LeaveIfError(aFs.Parse(aSource, p) );
+ aFileName.Append(p.NameAndExt() );
}
}
@@ -708,14 +853,14 @@
TFileName &aMetaSource, TFileName &aFileName,
TFileName &aMetaFileName) const
{
- if (!BaflUtils::FolderExists(aFs, KInstallDir))
+ if ( !BaflUtils::FolderExists(aFs, KInstallDir) )
{
aFs.MkDirAll(KInstallDir);
}
- aMetaSource.Copy(aCompo.MetaData().DataFileName());
+ aMetaSource.Copy(aCompo.MetaData().DataFileName() );
GenerateTempFileNameL(aFs, aMetaSource, aMetaFileName);
- aSource.Copy(aCompo.Data().DataFileName());
+ aSource.Copy(aCompo.Data().DataFileName() );
GenerateTempJarFileNameL(aFs, aMetaSource, aFileName);
}
@@ -739,12 +884,12 @@
TFileName CApplicationManagementServer::ReadJarFileNameL(RFile& aFile) const
{
TFileName jarFileName;
- HBufC8* lineBuffer = HBufC8::NewLC(KMaxFileName + 72); // lets hope all lines fit to this
- TPtr8 linePtr(lineBuffer->Des());
+ HBufC8* lineBuffer = HBufC8::NewLC(KMaxFileName+72); // lets hope all lines fit to this
+ TPtr8 linePtr(lineBuffer->Des() );
TInt length(0);
aFile.Size(length);
HBufC8* data = HBufC8::NewLC(length);
- TPtr8 ptr(data->Des());
+ TPtr8 ptr(data->Des() );
aFile.Read(ptr);
RDesReadStream stream(*data);
CleanupClosePushL(stream);
@@ -766,7 +911,7 @@
colonIndex = linePtr.Locate(KJadNameValueSeparator);
if (colonIndex != KErrNotFound)
{
- filename.Set(linePtr.Mid(colonIndex + 1)); // get jar filename, format is: MIDlet-Jar-URL: bomber.jar
+ filename.Set(linePtr.Mid(colonIndex+1)); // get jar filename, format is: MIDlet-Jar-URL: bomber.jar
jarFileName.Copy(filename);
jarFileName.Trim();
break;
@@ -798,7 +943,7 @@
// reset
aLineBuffer.Zero();
- while (!endOfLine)
+ while ( !endOfLine)
{
TRAP(errRead, aStream.ReadL(input, 1));
@@ -813,18 +958,19 @@
// End of line
endOfLine = ETrue;
}
- else if (input[0] == CR)
- {
- // Only end of line if not followed by a LF
- }
else
- {
- // We put any other character in the buffer
- if (aLineBuffer.Length() < aLineBuffer.MaxLength())
+ if (input[0] == CR)
+ {
+ // Only end of line if not followed by a LF
+ }
+ else
{
- aLineBuffer.Append(input[0]);
+ // We put any other character in the buffer
+ if (aLineBuffer.Length() < aLineBuffer.MaxLength())
+ {
+ aLineBuffer.Append(input[0]);
+ }
}
- }
}
}
@@ -839,20 +985,20 @@
TBool res(ETrue);
#ifndef __AM_CONNECT_INSTALLER_ONSTARTUP_
- TInt err(iInstaller.Connect());
+ TInt err(iInstaller.Connect() );
if (err != KErrNone)
{
RDEBUG_2( "CApplicationManagementServer::PrepareInstallL - ERROR leaving cannot connect installer: %d", err );
User::LeaveIfError(err);
}
- CleanupClosePushL(iInstaller);
+
#endif
RDEBUG( "CApplicationManagementServer::PrepareInstallL - connected to installer" );
// Copy data file name (install file)
if (aComponent.Data().DataFileName().Length() > 0)
{
- aFileName.Copy(aComponent.Data().DataFileName());
+ aFileName.Copy(aComponent.Data().DataFileName() );
}
else
{
@@ -860,46 +1006,43 @@
User::Leave(KErrNotFound);
}
// Open RFs session
- User::LeaveIfError(iInstallRFs.Connect());
- User::LeaveIfError(iInstallRFs.ShareProtected());
+ User::LeaveIfError(iInstallRFs.Connect() );
+ User::LeaveIfError(iInstallRFs.ShareProtected() );
// set installoptions and correct mime type
using namespace SwiUI;
iInstallOptions = aComponent.InstallOpts().iOptions;
TInstallReq req;
- if (aComponent.Data().MimeType() == SwiUI::KSisMimeType)
- {
- //convert if MIME type is application/vnd.symbian.install to x-epoc/x-sisx-app
- //as installer doesn't support application/vnd.symbian.install MIME type from S60 3rd edition onwards.
- req.iMIME = SwiUI::KSisxMimeType;
- }
- else
- {
- req.iMIME = aComponent.Data().MimeType();
- }
-
- if (CDeploymentComponent::IsJavaMimeL(aComponent.MetaData().MimeType()))
- {
- // Check if both jad and jar files already exist in the phone
- if (CDeploymentComponent::IsJavaMimeL(aComponent.Data().MimeType())
- && aComponent.MetaData().MimeType() == SwiUI::KJadMIMEType)
- {
- // Move both files to temporary location and use jad to install java application
- CFileMan *fm = CFileMan::NewL(iInstallRFs);
- CleanupStack::PushL(fm);
- TFileName source, metasource, metatarget;
- aFileName.Copy(KNullDesC8()); // reset
- GenerateTempFileNameL(iInstallRFs, aComponent, source,
- metasource, aFileName, metatarget);
+ if (aComponent.Data().MimeType() == SwiUI::KSisMimeType)
+ {
+ //convert if MIME type is application/vnd.symbian.install to x-epoc/x-sisx-app
+ //as installer doesn't support application/vnd.symbian.install MIME type from S60 3rd edition onwards.
+ req.iMIME = SwiUI::KSisxMimeType;
+ }
+ else
+ {
+ req.iMIME = aComponent.Data().MimeType();
+ }
+
+ if (CDeploymentComponent::IsJavaMimeL(aComponent.MetaData().MimeType() ) ) {
+ // Check if both jad and jar files already exist in the phone
+ if (CDeploymentComponent::IsJavaMimeL(aComponent.Data().MimeType() ) && aComponent.MetaData().MimeType() == SwiUI::KJadMIMEType) {
+ // Move both files to temporary location and use jad to install java application
+ CFileMan *fm = CFileMan::NewL(iInstallRFs);
+ CleanupStack::PushL(fm);
+ TFileName source, metasource, metatarget;
+ aFileName.Copy(KNullDesC8() ); // reset
+ GenerateTempFileNameL(iInstallRFs, aComponent, source, metasource,
+ aFileName, metatarget);
RDEBUG_2( "CApplicationManagementServer::PrepareInstallL - temp jar file '%S'", &aFileName );
RDEBUG_2( "CApplicationManagementServer::PrepareInstallL - temp jad file '%S'", &metatarget );
// Copy datafile (jar)
- TInt copyer(fm->Copy(source, aFileName));
+ TInt copyer(fm->Copy(source, aFileName) );
// Copy metadatafile (jad)
- TInt copyer2(fm->Copy(metasource, metatarget));
+ TInt copyer2(fm->Copy(metasource, metatarget) );
CleanupStack::PopAndDestroy(fm);
@@ -916,12 +1059,13 @@
User::Leave(KErrWrite);
}
}
- else if (aComponent.MetaData().MimeType() == SwiUI::KJadMIMEType)
- {
- aFileName.Copy(aComponent.MetaData().DataFileName());
- req.iMIME = aComponent.MetaData().MimeType();
- RDEBUG_2( "CApplicationManagementServer::PrepareInstallL - Using Jad file to install java application: %S", &aFileName );
- }
+ else
+ if (aComponent.MetaData().MimeType() == SwiUI::KJadMIMEType)
+ {
+ aFileName.Copy(aComponent.MetaData().DataFileName() );
+ req.iMIME = aComponent.MetaData().MimeType();
+ RDEBUG_2( "CApplicationManagementServer::PrepareInstallL - Using Jad file to install java application: %S", &aFileName );
+ }
}
if (aComponent.GetIAP() > -1)
@@ -932,7 +1076,8 @@
else
{
TInt iap = KErrNotFound;
- TRAPD( err, SmlHelper::GetDefaultIAPFromDMProfileL( iap ) );
+ TRAPD( err, SmlHelper::GetDefaultIAPFromDMProfileL( iap ) )
+ ;
if (err == KErrNone)
{
req.iIAP = iap;
@@ -948,23 +1093,17 @@
RDEBUG8_2( "CApplicationManagementServer::PrepareInstallL: mime type is (%S)", &req.iMIME);
RDEBUG_2( "CApplicationManagementServer::PrepareInstallL - Using temp file '%S'", &aFileName );
- User::LeaveIfError(iInstallFile.Open(iInstallRFs, aFileName, EFileRead));
+ User::LeaveIfError(iInstallFile.Open(iInstallRFs, aFileName, EFileRead) );
TInt sz;
- User::LeaveIfError(iInstallFile.Size(sz));
- if (!(sz > 0))
+ User::LeaveIfError(iInstallFile.Size(sz) );
+ if ( !(sz > 0))
{
res = EFalse;
RDEBUG( "CApplicationManagementServer::PrepareInstallL - ERROR size of source file is 0!" );
}
-#ifndef __AM_CONNECT_INSTALLER_ONSTARTUP_
- CleanupStack::Pop(&iInstaller);
-#endif
RDEBUG( "CApplicationManagementServer::PrepareInstallL end" );
-
- iAppname = aFileName;
-
return res;
}
@@ -980,50 +1119,25 @@
if (iInstallInProgress == EFalse)
{
TFileName fn;
- TInt type = EInstallWaitDlg;
- TInt silentsession = 0;
- TInt r2 = RProperty::Get(KPSUidNSmlSOSServerKey, KNSmlDMSilentJob,
- silentsession);
-
- if(r2 == KErrNone)
- CApplicationManagementUtility::iSilentSession = silentsession;
-
- if (!CApplicationManagementUtility::iSilentSession)
+ if (PrepareInstallL(aComponent, fn) )
{
- m_Dlg = new AMWaitProgDialog(m_appName, *this);
- m_Dlg->createWaitDialog(type);
- if (CApplicationManagementUtility::mHidden == 1)
+ RDEBUG_3( "CApplicationManagementServer::InstallL: Install '%S' sizeof opts: %d", &fn, sizeof (aComponent.InstallOpts()));
+
+ // Silent or Non Silent Installation is choosen based on DM session started in silent or non silent
+
+ TInt err = KErrNone;
+ TInt nonSilentOperation = KErrNotFound;
+ RProperty::Get(KUidPSApplicationManagementKeys,
+ KAMOperationNonSilent, nonSilentOperation);
+
+ if (!nonSilentOperation)
{
- m_Dlg->startIndicator();
+ TRAP( err ,iInstaller.SilentInstall( aStatus, iInstallFile, iInstallReq, iInstallOptions ) );
}
else
{
- m_Window->raise();
- CApplicationManagementUtility::mCurrDlg->setVisible(true);
+ TRAP( err ,iInstaller.Install( aStatus, iInstallFile, iInstallReq ) );
}
- }
- if (PrepareInstallL(aComponent, fn))
- {
- if (m_Dlg)
- m_Dlg->registerInstallRequest(aStatus);
- delete iArgu;
- iArgu = NULL;
- iArgu = Usif::COpaqueNamedParams::NewL();
- iArgu->AddIntL(Usif::KSifInParam_InstallSilently, 1);
- TAMInstallOptions opts = aComponent.InstallOpts();
- TChar drive = opts.iOptions.iDrive;
- RFs iFs;
- TInt driveNumber;
- iFs.CharToDrive(drive,driveNumber);
-
- iArgu->AddIntL(Usif::KSifInParam_Drive, driveNumber);
-
- delete iResults;
- iResults = NULL;
- iResults = Usif::COpaqueNamedParams::NewL();
-
- RDEBUG_3( "CApplicationManagementServer::InstallL: Install '%S' sizeof opts: %d", &fn, sizeof (aComponent.InstallOpts()));
- TRAPD( err ,iInstaller.Install( iInstallFile, *iArgu, *iResults, aStatus ) );
RDEBUG_2( "CApplicationManagementServer::InstallL: status: %d", err);
User::LeaveIfError(err);
@@ -1056,11 +1170,14 @@
if (iInstallInProgress == EFalse)
{
TFileName fn;
- if (PrepareInstallL(aComponent, fn))
+ if (PrepareInstallL(aComponent, fn) )
{
iInstallInProgress = ETrue;
RDEBUG_2( "CApplicationManagementServer::InstallL: Install '%S' ", &fn);
SwiUI::TInstallOptionsPckg pkg(aComponent.InstallOpts().iOptions);
+ TRAPD( err ,iInstaller.SilentInstall( fn, pkg ) )
+ ;
+ User::LeaveIfError(err);
iInstallInProgress = EFalse;
}
else
@@ -1082,21 +1199,38 @@
RDEBUG( "CApplicationManagementServer::UninstallL: begin" );
if (iInstallInProgress == EFalse)
{
- TInt err(iInstaller.Connect());
+ TInt err(iInstaller.Connect() );
User::LeaveIfError(err);
RDEBUG_2( "CApplicationManagementServer::UninstallL: UninstallL '0x%X' ", aComponent.Uid());
using namespace SwiUI;
iUninstallOptions = aComponent.UninstallOpts();
- delete iArgu;
- iArgu = NULL;
- iArgu = Usif::COpaqueNamedParams::NewL();
- iArgu->AddIntL( Usif::KSifInParam_InstallSilently, 1 );
-
- delete iResults;
- iResults = NULL;
- iResults = Usif::COpaqueNamedParams::NewL();
- TRAP( err ,iInstaller.Uninstall( aComponent.GetComponentId(), *iArgu, *iResults, aStatus ));
+ TInt nonSilentOperation = KErrNotFound;
+
+ RProperty::Get(KPSUidNSmlDMSyncApp, KSilentSession,
+ nonSilentOperation);
+
+ iOMASCOMOEnabled = IsOMASCOMOEnabledL();
+
+ if (!iOMASCOMOEnabled)
+ nonSilentOperation = 0;
+ if (!nonSilentOperation)
+ {
+ TRAP( err ,iInstaller.SilentUninstall( aStatus, aComponent.Uid(),
+ iUninstallOptions, aComponent.MimeType() ) );
+ }
+ else
+ {
+ TRAP( err ,iInstaller.Uninstall( aStatus, aComponent.Uid(), aComponent.MimeType() ) );
+ CSyncService *syncService =
+ CSyncService::NewL(NULL, KDevManServiceStart);
+ if (syncService)
+ {
+ syncService->EnableProgressNoteL(EFalse);
+ }
+
+ delete syncService;
+ }
RDEBUG_2( "CApplicationManagementServer::UninstallL: UninstallL result '0x%X'", err );
User::LeaveIfError(err);
@@ -1119,8 +1253,8 @@
{
RDEBUG( "CApplicationManagementServer::PerformRFSL: begin" );
const RComponentIdArray &arrt = iStorage->GetComponentIds();
- TCertInfoPckg *corcert = NULL;
- for (TInt i(0); i < arrt.Count(); i++)
+ TCertInfoPckg *corcert= NULL;
+ for (TInt i( 0); i < arrt.Count(); i++)
{
RDEBUG_3( "CApplicationManagementServer::PerformRFSL processing dc %d of %d", i, arrt.Count() );
CDeploymentComponent &c = iStorage->ComponentL(arrt[i]);
@@ -1129,12 +1263,12 @@
TInt index = c.Owner();
TCertInfoPckg *certp = NULL;
if (index >= 0)
+ {
+ certp = certs[ c.Owner() ];
+ }
+ if ( !corcert && certp)
{
- certp = certs[c.Owner()];
- }
- if (!corcert && certp)
- {
- if (CheckCertL((*certp)()))
+ if (CheckCertL( (*certp)() ) )
{
corcert = certp;
RDEBUG_2( "CApplicationManagementServer::PerformRFSL Found CORP Cert! Removing %d ", i );
@@ -1165,116 +1299,83 @@
// CApplicationManagementServer::RemoveInternalL()
// ------------------------------------------------------------------------------------------------
-
void CApplicationManagementServer::RemoveInternalL(
const CDeploymentComponent &aCompo, TBool aDoUninstall /* = ETrue */)
{
RDEBUG_2("CApplicationManagementServer: RemoveInternalL - Remove id: (%d)", aCompo.InternalId() );
+
+ aCompo.SetStatusNode(EDelivered_RemoveProgress);
TInt err(KErrNone);
- TDeploymentComponentName name = aCompo.ComponentName();
- TBuf<KDeploymentComponentNameMaxLength> ne;
- ne.Copy(name);
- m_appName = QString::fromUtf16(ne.Ptr(), ne.Length());
-
- RDEBUG("CApplicationManagementServer: RemoveInternalL - step1");
-
- TInt err1 = KErrNone;
- if (!err1)
+ TDeploymentComponentState st(aCompo.State() );
+ if (st == EDCSDelivered || st == EDCSDownload)
{
- RDEBUG("CApplicationManagementServer: RemoveInternalL - step2");
-
- aCompo.SetStatusNode(EDelivered_RemoveProgress);
-
- TDeploymentComponentState st(aCompo.State());
- if (st == EDCSDelivered || st == EDCSDownload)
+ TRAP(err,iStorage->RemoveL( aCompo.InternalId() ));
+ }
+ else
+ if (st == EDCSActive || st == EDCSInactive)
{
- RDEBUG("CApplicationManagementServer: RemoveInternalL - step3 start");
- TRAP(err,iStorage->RemoveL( aCompo.InternalId() ));
- RDEBUG("CApplicationManagementServer: RemoveInternalL - step4 start");
- }
- else if (st == EDCSActive || st == EDCSInactive)
- {
- RDEBUG("CApplicationManagementServer: RemoveInternalL - step5 start");
if (aDoUninstall)
{
- if (aCompo.Uid() != TUid::Null())
+ if (aCompo.Uid() != TUid::Null() )
{
+ //TInt err= KErrNone;
+
TInt nonSilentOperation = KErrNotFound;
- iOMASCOMOEnabled = IsOMASCOMOEnabledL();
+
+ RProperty::Get(KPSUidNSmlDMSyncApp, KSilentSession,
+ nonSilentOperation);
+
+ iOMASCOMOEnabled = IsOMASCOMOEnabledL();
+
if (!iOMASCOMOEnabled)
nonSilentOperation = 0;
- RDEBUG("CApplicationManagementServer: RemoveInternalL - step5 start 1");
-
- TInt silentsession = 0;
- RProperty::Get(KPSUidNSmlSOSServerKey, KNSmlDMSilentJob,
- silentsession);
-
- CApplicationManagementUtility::iSilentSession
- = silentsession;
- TRequestStatus s1 = KRequestPending;
- AppMgmtNotifier* note = new AppMgmtNotifier(m_appName);
-
- // displaying uninstall confirm notes
- if (!CApplicationManagementUtility::iSilentSession)
- {
- CDialogWait* wait = CDialogWait::NewL();
- note->showUninstallDialog(aCompo, wait->iStatus);
- m_Window->raise();
- wait->StartWait();
- s1=wait->iStatus;
- delete wait;
- }
- if (s1 != KStatusUserCancelled)
+
+ if (nonSilentOperation!=0)
{
- TInt type = EUninstallWaitDlg;
- TRequestStatus s;
- if (!CApplicationManagementUtility::iSilentSession)
+
+ BringServertoForeground();
+
+ TInt amServerEnabled = 1;
+ err = RProperty::Set(KUidPSApplicationManagementKeys,
+ KAMServerUIEnabled, amServerEnabled);
+ User::LeaveIfError(err); // invalid
+
+ }
+
+ TRequestStatus s;
+ TRAP(err,UninstallL( aCompo, s ));
+ User::WaitForRequest(s);
+ iInstallInProgress = EFalse;
+ // Capturing Installer errors,if any
+ err = s.Int();
+
+ TInt amServerEnabled = 0;
+ RProperty::Set(KUidPSApplicationManagementKeys,
+ KAMServerUIEnabled, amServerEnabled);
+ //User::LeaveIfError(err); // invalid
+
+ SendServerToBackground();
+
+ // Bring DM UI to foreground
+ if (nonSilentOperation!=0)
+ {
+ BringDMUItoForeground();
+ }
+
+ if (s.Int() == KErrNone)
+ {
+ RDEBUG("CApplicationManagementServer::RemoveInternalL Uninstalled");
+ }
+ else
+ if (s.Int() == KErrNotFound)
{
- m_Dlg = new AMWaitProgDialog(m_appName, *this);
- m_Dlg->createWaitDialog(type);
- m_Window->raise();
- CApplicationManagementUtility::mCurrDlg->setVisible(
- true);
-
- }
- CDialogWait* wait1 = CDialogWait::NewL();
-
- TRAP(err,UninstallL( aCompo, wait1->iStatus ));
- //wait till uninstall completes
- wait1->StartWait();
- if (!CApplicationManagementUtility::iSilentSession)
- m_Dlg->closeAMWaitDialog();
- m_Window->lower();
- s = wait1->iStatus;
- delete wait1;
- iInstallInProgress = EFalse;
- // Capturing Installer errors,if any
- err = s.Int();
- if (s.Int() == KErrNone)
- {
- note->showUnInstallSuccessNote();
- RDEBUG("CApplicationManagementServer::RemoveInternalL Uninstalled");
+ RDEBUG( "CApplicationManagementServer: RemoveInternalL WARNING component was not found by uninstaller" );
}
else
{
- note->showUnInstallFailedNote();
- if (s.Int() == KErrNotFound)
- {
- RDEBUG( "CApplicationManagementServer: RemoveInternalL WARNING component was not found by uninstaller" );
- }
- else
- {
- RDEBUG_2("CApplicationManagementServer: RemoveInternalL ERROR uninstall failed %d", s.Int() );
- }
+ RDEBUG_2("CApplicationManagementServer: RemoveInternalL ERROR uninstall failed %d", s.Int() );
+
}
- }
- else
- {
- err = SwiUI::KSWInstErrUserCancel;
- aCompo.SetStatusNode(EDelivered_RemoveFailed);
- RDEBUG( "CApplicationManagementServer: RemoveInternalL User cancelled" );
- }
- delete note;
}
else
{
@@ -1291,7 +1392,7 @@
*/
if (err == KErrNone)
{
- iStorage->RemoveL(aCompo.InternalId());
+ iStorage->RemoveL(aCompo.InternalId() );
}
}
else
@@ -1299,24 +1400,16 @@
RDEBUG_2("CApplicationManagementServer: RemoveInternalL ERROR called with illegal state component id %d", aCompo.State() );
User::Leave(KErrArgument);
}
- /*
- * if error set state to remove failed
- * Finally call userleaveiferror()
- * */
- if (err != KErrNone)
- {
- aCompo.SetStatusNode(EDelivered_RemoveFailed);
- }
- }
- else
+ /*
+ * if error set state to remove failed
+ * Finally call userleaveiferror()
+ * */
+ if (err != KErrNone)
{
- err = SwiUI::KSWInstErrUserCancel;
aCompo.SetStatusNode(EDelivered_RemoveFailed);
}
-
User::LeaveIfError(err);
}
-
// ------------------------------------------------------------------------------------------------
// CApplicationManagementServer::CheckCertL()
@@ -1326,20 +1419,20 @@
{
TBool go(EFalse);
- if (FeatureManager::FeatureSupported(KFeatureIdSapPolicyManagement))
+ if (FeatureManager::FeatureSupported( KFeatureIdSapPolicyManagement) )
{
// #ifdef __SAP_POLICY_MANAGEMENT
RPolicyEngine peng;
// The management session
//
- TInt err(peng.Connect());
+ TInt err(peng.Connect() );
if (err == KErrNone)
{
CleanupClosePushL(peng);
RPolicyRequest rq;
- err = rq.Open(peng);
+ err = rq.Open(peng) ;
if (err == KErrNone)
{
CleanupClosePushL(rq);
@@ -1375,13 +1468,13 @@
{
RDEBUG_2( "CApplicationManagementSession::CheckCertL; ERROR making policy request! %d", err);
}
- CleanupStack::PopAndDestroy(&rq);
+ CleanupStack::PopAndDestroy( &rq) ;
}
else
{
RDEBUG_2( "CApplicationManagementSession::CheckCertL; ERROR Failed to open policy engine session! %d", err);
}
- CleanupStack::PopAndDestroy(&peng);
+ CleanupStack::PopAndDestroy( &peng) ;
}
else
{
@@ -1406,13 +1499,13 @@
{
TBool found(EFalse);
const RComponentIdArray &arrt = iStorage->GetComponentIds();
- TInt count(arrt.Count());
- for (TInt i(0); i < count; i++)
+ TInt count(arrt.Count() );
+ for (TInt i( 0); i < count; i++)
{
CDeploymentComponent &compo = iStorage->ComponentL(arrt[i]);
if (compo.Uid() == aUid)
{
- if (&compo != aIgnored)
+ if ( &compo != aIgnored)
{
aCompo = &compo;
found = ETrue;
@@ -1424,10 +1517,10 @@
}
}
}
- if (!found)
+ if ( !found)
{
found = FindInstalledSisUidL(aUid);
- if (!found)
+ if ( !found)
{
found = FindInstalledJavaUidL(aUid);
}
@@ -1443,24 +1536,24 @@
{
TBool found(EFalse);
Swi::RSisRegistrySession sisses;
- TInt r(sisses.Connect());
- User::LeaveIfError(r);
+ TInt r(sisses.Connect() );
+ User::LeaveIfError(r) ;
CleanupClosePushL(sisses);
RArray<TUid> uids;
sisses.InstalledUidsL(uids);
CleanupClosePushL(uids);
- TInt uidc(uids.Count());
- for (TInt j(0); found == EFalse && j < uidc; j++)
+ TInt uidc(uids.Count() );
+ for (TInt j( 0); found == EFalse && j < uidc; j++)
{
if (uids[j] == aUid)
{
found = ETrue;
}
}
- CleanupStack::PopAndDestroy(&uids);
- CleanupStack::PopAndDestroy(&sisses);
+ CleanupStack::PopAndDestroy( &uids);
+ CleanupStack::PopAndDestroy( &sisses);
return found;
}
@@ -1484,9 +1577,9 @@
TUid CApplicationManagementServer::FindNewUid(const RArray<TUid> &aUidsOrig,
const RArray<TUid> &aUidsNew) const
{
- TUid ret(TUid::Null());
- TInt c1(aUidsOrig.Count());
- TInt c2(aUidsNew.Count());
+ TUid ret(TUid::Null() );
+ TInt c1(aUidsOrig.Count() );
+ TInt c2(aUidsNew.Count() );
if (c2 >= c1)
{
for (TInt i(c2 - 1); i >= 0 && !ret.iUid; i--)
@@ -1495,6 +1588,7 @@
{
ret = aUidsNew[i];
}
+
}
}
return ret;
@@ -1515,18 +1609,18 @@
{
RDEBUG( "CApplicationManagementServer::CheckforDuplicateMidletsL: Start");
const RComponentIdArray &arrt = iStorage->GetComponentIds();
- TInt cont(arrt.Count());
+ TInt cont(arrt.Count() );
for (TInt i( 0); i < cont; i++)
- {
- CDeploymentComponent &compo = iStorage->ComponentL(arrt[i]);
- if (((compo.State() == EDCSActive) || (compo.State() == EDCSInactive ))
- && (compo.MidletName()== amidletParameters.iMidletName)
- && (compo.MidletVendor()== amidletParameters.iMidletVenorName))
- {
- //remove old one
- iStorage->RemoveL(compo.InternalId() );
- }
- }
+ {
+ CDeploymentComponent &compo = iStorage->ComponentL(arrt[i]);
+ if (((compo.State() == EDCSActive) || (compo.State() == EDCSInactive ))
+ && (compo.MidletName()== amidletParameters.iMidletName)
+ && (compo.MidletVendor()== amidletParameters.iMidletVenorName))
+ {
+ //remove old one
+ iStorage->RemoveL(compo.InternalId() );
+ }
+ }
RDEBUG( "CApplicationManagementServer::CheckforDuplicateMidletsL: End");
}
@@ -1538,57 +1632,33 @@
{
RDEBUG( "CApplicationManagementServer::JavaInstallL: Start");
- //TRequestStatus s;
+ TRequestStatus s;
TInt err(KErrNone);
- // set state to install progressf
- CDialogWait* wait = CDialogWait::NewL();
+ // set state to install progress
aCompo.SetStatusNode(EDelivered_InstallProgress);
- TRAP(err,InstallL( aCompo,wait->iStatus ));
+ TRAP(err,InstallL( aCompo,s ));
if (err != KErrNone)
{
aCompo.SetStatusNode(EDelivered_InstalledFailedWithData);
- delete wait;
User::Leave(err);
}
- wait->StartWait();
- if (!CApplicationManagementUtility::iSilentSession && CApplicationManagementUtility::mCurrDlg)
- m_Dlg->closeAMWaitDialog();
- m_Window->lower();
- TRequestStatus s1 = wait->iStatus;
-
- RDEBUG_2( "ApplicationManagementSession: JavaInstallL 1 failed with code %d",
- s1.Int() );
-
- TInt usifdeplid = -1;
- if (iResults && wait->iStatus.Int()!=KErrCancel)
- {
- iResults->GetIntByNameL(Usif::KSifOutParam_ComponentId, usifdeplid);
- RDEBUG_2( "ApplicationManagementSession: JavaInstallL usifdeplid %d",
- usifdeplid);
-
- }
- RDEBUG( "wait->StartWait() CApplicationManagementServer::javainstallL Step3");
-
- aCompo.SetComponentId(usifdeplid);
-
- s1 = wait->iStatus;
- delete wait;
- RDEBUG_2("ApplicationManagementSession: javainstallL with code %d",
- s1.Int() );
- if (s1 == KErrCancel)
+ User::WaitForRequest(s);
+ SendServerToBackground();
+ if (s != KErrNone)
{
RDEBUG_2( "ApplicationManagementSession: JavaInstallL failed with code %d",
- s1.Int() );
+ s.Int() );
// set state to install failed with data
aCompo.SetStatusNode(EDelivered_InstalledFailedWithData);
- User::Leave(s1.Int());
+ User::Leave(s.Int() );
}
else
{
TMidletParameters midletParameters;
iUtility->RefreshJavaRegistryL();
//Ignore if any error comes
- TRAPD(err,iUtility->GetInstalledMidletParametersL(midletParameters));
+ TRAPD(err,iUtility->GetInstalledMidletParametersL(midletParameters))
+ ;
TRAP(err,CheckforDuplicateMidletsL(midletParameters));
if (err != KErrNone)
@@ -1613,7 +1683,7 @@
//Since "C" drive is not removable
- if (midletParameters.iDrive != EDriveC)
+ if (midletParameters.iDrive!=EDriveC)
{
status = IsInstalledAppRemovableL(midletParameters.iDrive);
}
@@ -1641,57 +1711,23 @@
const CDeploymentComponent &aCompo)
{
TRequestStatus s;
- CDialogWait* wait = CDialogWait::NewL();
// set state to install progress
aCompo.SetStatusNode(EDelivered_InstallProgress);
TInt err(KErrNone);
- TRAP(err,InstallL( aCompo,wait->iStatus ));
+ TRAP(err,InstallL( aCompo,s ));
if (err != KErrNone)
{
aCompo.SetStatusNode(EDelivered_InstalledFailedWithData);
- delete wait;
User::Leave(err);
}
- RDEBUG_2("ApplicationManagementSession: SisInstallL failed with code before startwait %d",
- wait->iStatus.Int() );
- wait->StartWait();
- RDEBUG_2("ApplicationManagementSession: SisInstallL failed with code after startwait %d",
- wait->iStatus.Int() );
- RDEBUG( "wait->StartWait() CApplicationManagementServer::SisInstallL Step1");
- if (!CApplicationManagementUtility::iSilentSession && CApplicationManagementUtility::mCurrDlg)
- m_Dlg->closeAMWaitDialog();
- delete m_Dlg;
- m_Dlg=NULL;
- RDEBUG( "wait->StartWait() CApplicationManagementServer::SisInstallL Step2");
-
- m_Window->lower();
-
- TInt usifdeplid = -1;
- if (iResults && wait->iStatus.Int()!=KErrCancel)
- iResults->GetIntByNameL(Usif::KSifOutParam_ComponentId, usifdeplid);
-
- RDEBUG( "wait->StartWait() CApplicationManagementServer::SisInstallL Step3");
-
- iComp->SetComponentId(usifdeplid);
-
- TRequestStatus s1 = wait->iStatus;
- delete wait;
- RDEBUG_2("ApplicationManagementSession: SisInstallL with code %d",
- s1.Int() );
-
- if(s1 == KErrCancel)
- {
- s1 = KStatusUserCancelled;
- RDEBUG( "KErrCancel visited operation cancelled");
- mUserCancelled=1;
- }
- if (s1 != KErrNone)
+ User::WaitForRequest(s);
+ if (s != KErrNone)
{
RDEBUG_2("ApplicationManagementSession: SisInstallL failed with code %d",
- s1.Int() );
+ s.Int() );
// set state to install failed with data
aCompo.SetStatusNode(EDelivered_InstalledFailedWithData);
- User::Leave(s1.Int());
+ User::Leave(s.Int() );
}
else
{
@@ -1704,87 +1740,47 @@
// ------------------------------------------------------------------------------------------------
// CApplicationManagementServer::DoTheInstallL()
-// ---------------------------------------------------- --------------------------------------------
+// ------------------------------------------------------------------------------------------------
void CApplicationManagementServer::DoTheInstallL(CDeploymentComponent &aCompo)
{
RDEBUG( "CApplicationManagementServer::DoTheInstallL: Start");
TInt error(KErrNone);
- iComp = &aCompo;
-
- TDeploymentComponentName name = aCompo.ComponentName();
- if(name.Compare(KNullDesC8())==0)
- {
- name = aCompo.UserId();
- }
- TBuf<KDeploymentComponentNameMaxLength> nameBuf;
- nameBuf.Copy(name);
- m_appName = QString::fromUtf16(nameBuf.Ptr(), nameBuf.Length());
-
- TRequestStatus stat = KErrCompletion;
- if (!aCompo.DriveSelected()
- && !CApplicationManagementUtility::iSilentSession)
- {
- // displaying install confirm notes
- CDialogWait* ao = CDialogWait::NewL();
- AppMgmtNotifier* note = new AppMgmtNotifier();
- int err = KErrNone;
- TRAP( err, QT_TRYCATCH_LEAVING(note->showInstallDialog(iComp, ao->iStatus)));
- ao->StartWait();
- stat = ao->iStatus;
- delete ao;
- m_Window->lower();
- delete note;
- }
- aCompo.SetDriveSelectionStatus(false);
- if (stat == KErrCompletion)
+ if (CDeploymentComponent::IsJavaMimeL(aCompo.Data().MimeType() )
+ || CDeploymentComponent::IsJavaMimeL(aCompo.MetaData().MimeType() ) )
{
- if (CDeploymentComponent::IsJavaMimeL(aCompo.Data().MimeType())
- || CDeploymentComponent::IsJavaMimeL(
- aCompo.MetaData().MimeType()))
- {
- TRAP( error, JavaInstallL( aCompo ) );
- }
- else
- {
- TRAP( error, SisInstallL( aCompo ) );
- if(error==KErrNone)
- {
- SetSisAppVersionAndDriveL(aCompo);
- }
- }
-
-
-
- if (error == KErrNone)
- {
- InstallCompleteL(aCompo, ETrue);
- CDeploymentComponent *old = DoDataUpdateCheckL(aCompo);
- if (old)
- {
- if (aCompo.State() == EDCSDelivered)
- {
- if (old->State() == EDCSActive || old->State()
- == EDCSInactive)
- {
- RDEBUG("AMSession: DoTheInstallL ** deleting old node **" );
- iStorage->RemoveL(old->InternalId());
- }
- }
- }
- iStorage->InstalledL(aCompo);
- }
- else
- {
- InstallCompleteL(aCompo, EFalse);
- User::Leave(error);
- }
+ TRAP( error, JavaInstallL( aCompo ) );
}
else
{
- aCompo.SetStatusNode(EDelivered_InstallFailedwithOutData);
+ TRAP( error, SisInstallL( aCompo ) );
+ SetSisAppVersionAndDriveL(aCompo);
}
+ SendServerToBackground();
+
+ if (error == KErrNone)
+ {
+ InstallCompleteL(aCompo, ETrue);
+ CDeploymentComponent *old = DoDataUpdateCheckL(aCompo);
+ if (old)
+ {
+ if (aCompo.State() == EDCSDelivered)
+ {
+ if (old->State() == EDCSActive || old->State()== EDCSInactive)
+ {
+ RDEBUG("AMSession: DoTheInstallL ** deleting old node **" );
+ iStorage->RemoveL(old->InternalId() );
+ }
+ }
+ }
+ iStorage->InstalledL(aCompo);
+ }
+ else
+ {
+ InstallCompleteL(aCompo, EFalse);
+ User::Leave(error);
+ }
RDEBUG( "CApplicationManagementServer::DoTheInstallL: End");
}
@@ -1795,8 +1791,8 @@
CDeploymentComponent *CApplicationManagementServer::DoDataUpdateCheckL(
CDeploymentComponent &aCompo)
{
- CDeploymentComponent *old = NULL;
- if (aCompo.Uid() != TUid::Null() && HasUidL(aCompo.Uid(), old, &aCompo))
+ CDeploymentComponent *old= NULL;
+ if (aCompo.Uid() != TUid::Null() && HasUidL(aCompo.Uid(), old, &aCompo) )
{
// check for Uid component.. Legacy code removed.
}
@@ -1843,29 +1839,27 @@
if (s2 != KErrNone)
{
RDEBUG_2( "ApplicationManagementSession: FullUpdateL failed with code %d", s2.Int() );
- User::Leave(s2.Int());
+ User::Leave(s2.Int() );
}
else
{
InstallCompleteL(scompo);
// Before deleting old node ,copy node values which are not set in new node from old node
- if (scompo.ComponentId() == KNullDesC8)
- scompo.SetIdL(tcompo.ComponentId());
-
- if (scompo.ComponentName() == KNullDesC8)
- scompo.SetNameL(tcompo.ComponentName());
-
- if (scompo.ComponentVersion() == KNullDesC8)
- scompo.SetVersionL(tcompo.ComponentVersion());
-
+ if (scompo.ComponentId()== KNullDesC8)
+ scompo.SetIdL(tcompo.ComponentId());
+
+ if (scompo.ComponentName()== KNullDesC8)
+ scompo.SetNameL(tcompo.ComponentName());
+
+ if (scompo.ComponentVersion()== KNullDesC8)
+ scompo.SetVersionL(tcompo.ComponentVersion());
+
//Tag tcompo state for deletion. Cant delete now, since nsmldmtree woudnt be updated
//Remove the const'ness since state needs to be updated.
-
- iStorage->SetDeploymentComponentState(
- const_cast<CDeploymentComponent &> (tcompo),
- EDCSDelete);
-
- iStorage->InstalledL(scompo);
+
+ iStorage->SetDeploymentComponentState(const_cast <CDeploymentComponent &>(tcompo),EDCSDelete);
+
+ iStorage->InstalledL( scompo );
RDEBUG( "ApplicationManagementSession: FullUpdateL ok" );
}
}
@@ -1900,7 +1894,7 @@
while (encoded)
{
aFile.Read(dataPtr);
- if (!dataPtr.Length())
+ if ( !dataPtr.Length() )
{
break;
}
@@ -1928,7 +1922,7 @@
while (inputIndex < inputLen)
{
- const TUint8& p = aData[inputIndex];
+ const TUint8& p = aData[ inputIndex ];
if ((p >= 48 && p <= 57) || (p >= 65 && p <= 90) || (p >= 97 && p
<= 122) || p == 43 || p == 47 || p == 61 || p == 10 || p
@@ -1971,7 +1965,7 @@
RDEBUG( "CApplicationManagementServer::GetAMServerDownloadDBL(): Step5" );
- if (aItemArray.Count() != 0)
+ if (aItemArray.Count()!=0)
{
RDEBUG( "CApplicationManagementServer::GetAMServerDownloadDBL(): Step6" );
@@ -2000,8 +1994,7 @@
// CApplicationManagementServer::DeleteGenericAlertForIDL()
// ------------------------------------------------------------------------------------------------
-void CApplicationManagementServer::DeleteGenericAlertForIDL(
- TUint32 internalid)
+void CApplicationManagementServer::DeleteGenericAlertForIDL(TUint32 internalid)
{
iAMServerDB->DeleteFromDatabaseL(internalid);
}
@@ -2015,11 +2008,11 @@
RDEBUG( "CApplicationManagementServer::DecodeB64DataFileL(): Start" );
// Create buffers
//TInt b64bufferSize = 131072;
- TInt decodedBufferSize = ((KBase64BufSize * 3) / 4 + 16);
+ TInt decodedBufferSize = ( (KBase64BufSize*3) / 4 + 16 );
HBufC8 *dataBuf = HBufC8::NewLC(KBase64BufSize);
TPtr8 dataPtr = dataBuf->Des();
HBufC8* targetBuf = HBufC8::NewLC(decodedBufferSize);
- TPtr8 targetPtr(targetBuf->Des());
+ TPtr8 targetPtr(targetBuf->Des() );
TInt offset(0);
TInt length(0);
@@ -2035,7 +2028,7 @@
while (reading)
{
aSourceFile.Read(dataPtr);
- if (!dataPtr.Length())
+ if ( !dataPtr.Length() )
{
// EOF
break;
@@ -2065,8 +2058,8 @@
RDEBUG( "CApplicationManagementServer::DecodeB64DataLC(): Start" );
TImCodecB64 B64Coder;
B64Coder.Initialise();
- HBufC8 *target = HBufC8::NewLC((aData.Length() * 3) / 4 + 16);
- TPtr8 targetPtr(target->Des());
+ HBufC8 *target = HBufC8::NewLC( (aData.Length() * 3 ) / 4 + 16);
+ TPtr8 targetPtr(target->Des() );
B64Coder.Decode(aData, targetPtr);
RDEBUG( "CApplicationManagementServer::DecodeB64DataLC(): End" );
return target;
@@ -2082,12 +2075,14 @@
aTarget.ExpandL(0, outLen);
TImCodecB64 B64Coder;
B64Coder.Initialise();
- TPtr8 target(aTarget.Ptr(0));
- TInt decoded(B64Coder.Encode(aData, target));
- TInt s(target.Length());
+ TPtr8 target(aTarget.Ptr(0) );
+ TInt decoded(B64Coder.Encode(aData, target) );
+ TInt s(target.Length() );
aTarget.ResizeL(s);
+ // TInt s2( aTarget.Size());
aTarget.Compress();
- if (!decoded)
+ // TInt s3( aTarget.Size() );
+ if ( !decoded)
{
RDEBUG( "CApplicationManagementServer::EncodeDataL(): Encoding b64 failed?" );
}
@@ -2118,7 +2113,7 @@
inline CApplicationManagementServer& CApplicationManagementSession::Server() const
{
- return *static_cast<CApplicationManagementServer*> (const_cast<CServer2*> (CSession2::Server()));
+ return *static_cast<CApplicationManagementServer*>( const_cast<CServer2*>(CSession2::Server()));
}
// -------------------------------------------------------------------------------------------------------------------
@@ -2131,6 +2126,7 @@
RDEBUG_2( "ApplicationManagementSession: CApplicationManagementSession::CreateL: 0x%x", this );
Server().AddSession();
+ CAknAppServiceBase::CreateL();
}
// -------------------------------------------------------------------------------------------------------------------
@@ -2155,7 +2151,8 @@
{
if (aMessage.Function() == EPerformRfs)
{
- TRAPD( err, Server().PerformRFSL() );
+ TRAPD( err, Server().PerformRFSL() )
+ ;
aMessage.Complete(err);
}
else
@@ -2163,14 +2160,14 @@
TBool handled(EFalse);
TInt err(KErrNone);
TRAP( err, handled = PreDispatchMessageL( aMessage ) );
- if (!handled)
+ if ( !handled)
{
TRAP(err,DispatchMessageL(aMessage));
}
// Some of the functions contains operations that already complete message
// doing Complete() twice will cause panic
- if (aMessage.Handle())
+ if (aMessage.Handle() )
{
aMessage.Complete(err);
}
@@ -2185,7 +2182,7 @@
{
TBool ret(EFalse);
// These succeed regardless of certificate....
- switch (aMessage.Function())
+ switch (aMessage.Function() )
{
case EGetStateChangingIdsCountOperation:
{
@@ -2219,8 +2216,7 @@
// CApplicationManagementSession::DispatchMessageL()
// -------------------------------------------------------------------------------------------------------------------
-void CApplicationManagementSession::DispatchMessageL(
- const RMessage2& aMessage)
+void CApplicationManagementSession::DispatchMessageL(const RMessage2& aMessage)
{
RDEBUG_2( "CApplicationManagementSession::DispatchMessageL; %d" ,
aMessage.Function() );
@@ -2237,7 +2233,7 @@
if (go)
{
- switch (aMessage.Function())
+ switch (aMessage.Function() )
{
case EAddTrust:
{
@@ -2262,57 +2258,57 @@
}
case EDeplCompGetOperation:
{
- GetComponentL(aMessage);
+ GetComponentL(aMessage) ;
break;
}
case EInstallOperation:
{
- InstallL(aMessage);
+ InstallL(aMessage) ;
break;
}
case EDeplCompAttrUpdateOperation:
{
- UpdateL(aMessage);
+ UpdateL(aMessage) ;
break;
}
case EDeplCompGetDataOperation:
{
- GetDataL(aMessage);
+ GetDataL(aMessage) ;
break;
}
case EDeplCompGetDataLengthOperation:
{
- GetDataLengthL(aMessage);
+ GetDataLengthL(aMessage) ;
break;
}
case EDeplCompRemoveOperation:
{
- RemoveL(aMessage);
+ RemoveL(aMessage) ;
break;
}
case EDeplCompDeliverStartOperation2:
{
- Deliver2L(aMessage);
+ Deliver2L(aMessage) ;
break;
}
case EDeplCompUpdateDataOperation:
{
- UpdateDataL(aMessage);
+ UpdateDataL(aMessage) ;
break;
}
case EDeplCompUpdateStreamedDataOperation:
{
- UpdateStreamedDataL(aMessage);
+ UpdateStreamedDataL(aMessage) ;
break;
}
case EDeplCompDownloadOperation:
{
- DownloadL(aMessage);
+ DownloadL(aMessage) ;
break;
}
case EDeplCompUpdateOperation:
{
- FullUpdateL(aMessage);
+ FullUpdateL(aMessage) ;
break;
}
case EDeplCompGetUserIdOperation:
@@ -2439,31 +2435,30 @@
TDeploymentComponentState st;
TPckg<TDeploymentComponentState> pk(st);
- TInt read(aMessage.Read(1, pk));
+ TInt read(aMessage.Read( 1, pk) );
RDEBUG_3( "CApplicationManagementSession: ComponentCountL State is %d, read %d", st, read);
const RComponentIdArray &arrt = Server().Storage()->GetComponentIds();
RComponentIdArray arr;
CleanupClosePushL(arr);
- if ((st == EDCSActive) || (st == EDCSInactive))
+ if ((st == EDCSActive)||(st == EDCSInactive))
{
- ActiveComponentsL(arrt, arr, st);
+ ActiveComponentsL(arrt, arr,st);
}
else
{
- TInt count(arrt.Count());
- for (TInt i(0); i < count; i++)
+ TInt count(arrt.Count() );
+ for (TInt i( 0); i < count; i++)
{
- CDeploymentComponent &compo = Server().Storage()->ComponentL(
- arrt[i]);
+ CDeploymentComponent &compo = Server().Storage()->ComponentL(arrt[i]);
if (st == EDCSNone || compo.State() == st)
{
arr.Append(arrt[i]);
}
}
}
- TInt n(arr.Count());
- CleanupStack::PopAndDestroy(&arr);
+ TInt n(arr.Count() );
+ CleanupStack::PopAndDestroy( &arr);
RDEBUG_2( "ApplicationManagementServer: ComponentCountL Count is %d", n );
TPckg<TInt> p(n);
@@ -2477,85 +2472,95 @@
// -------------------------------------------------------------------------------------------------------------------
void CApplicationManagementSession::ActiveComponentsL(
- const RComponentIdArray &aArrt, RComponentIdArray &aArr,
- TDeploymentComponentState &aState) const
+ const RComponentIdArray &aArrt, RComponentIdArray &aArr,TDeploymentComponentState &aState) const
{
Swi::RSisRegistrySession sisses;
- TInt r(sisses.Connect());
- User::LeaveIfError(r);
+ TInt r(sisses.Connect() );
+ User::LeaveIfError(r) ;
CleanupClosePushL(sisses);
RArray<TUid> uids;
sisses.InstalledUidsL(uids);
CleanupClosePushL(uids);
- TInt cont(aArrt.Count());
- TInt uidc(uids.Count());
+ TInt cont(aArrt.Count() );
+ TInt uidc(uids.Count() );
RArray<TUid> juids;
Server().JavaUidsL(juids);
CleanupClosePushL(juids);
- TInt juidc(juids.Count());
+ TInt juidc(juids.Count() );
RComponentIdArray rem;
CleanupClosePushL(rem);
- for (TInt i(0); i < cont; i++)
+ for (TInt i( 0); i < cont; i++)
{
- CDeploymentComponent &compo =
- Server().Storage()->ComponentL(aArrt[i]);
+ CDeploymentComponent &compo = Server().Storage()->ComponentL(aArrt[i]);
TDeploymentComponentState state = compo.State();
if (state == aState)
{
TBool add(EFalse);
- const TUid &uid(compo.Uid());
- for (TInt j(0); add == EFalse && j < uidc; j++)
+ const TUid &uid(compo.Uid() );
+ for (TInt j( 0); add == EFalse && j < uidc; j++)
{
if (uids[j] == uid)
{
+
RDEBUG( "CApplicationManagementSession::ActiveComponentsL Entered" );
-
+
// Check if this registry entry is present
Swi::RSisRegistrySession sisSession;
- User::LeaveIfError(sisSession.Connect());
- CleanupClosePushL(sisSession);
-
- Swi::RSisRegistryEntry sisEntry;
+ User::LeaveIfError(sisSession.Connect());
+ CleanupClosePushL(sisSession);
+
+ Swi::RSisRegistryEntry sisEntry;
//Opens the base package entry by specifying a UID.
User::LeaveIfError(sisEntry.Open(sisSession, compo.Uid()));
- CleanupClosePushL(sisEntry);
-
- add = sisEntry.IsPresentL();
-
- if (add)
- {
- // If Present update the Version, name and other info to that deployement component. Since application would have got an update
+ CleanupClosePushL(sisEntry);
+
+ add = sisEntry.IsPresentL();
+
+ if(add)
+ {
+
+ // If Present update the Version, name and other info to that deployement component. Since application would have got an update
// by some other means
+
TVersion version = sisEntry.VersionL();
TBuf8<KVersionLength> pkgDes;
pkgDes.AppendNum(version.iMajor);
pkgDes.Append(KLiteralPeriod);
pkgDes.AppendNum(version.iMinor);
-
- HBufC *packagename = sisEntry.PackageNameL();
- TBuf8<512> packagename8;
- packagename8.Copy(*packagename);
- delete packagename;
+
+
+ HBufC *packagename = sisEntry.PackageNameL();
+ TBuf8<512> packagename8;
+ packagename8.Copy(*packagename);
+ delete packagename;
compo.SetNameL(packagename8);
compo.SetVersionL(pkgDes);
-
- Server().Storage()->UpdateL(compo);
-
- RDEBUG( "CApplicationManagementSession::ActiveComponentsL ETrue" );
-
- }
- else
- RDEBUG( "CApplicationManagementSession::ActiveComponentsL EFalse" );
+
+
+ Server().Storage()->UpdateL( compo );
+
+
+
+
+ RDEBUG( "CApplicationManagementSession::ActiveComponentsL ETrue" );
+
+
+ }
+ else
+ RDEBUG( "CApplicationManagementSession::ActiveComponentsL EFalse" );
+
+
CleanupStack::PopAndDestroy(2, &sisSession);
+
}
}
- if (!add) // go throug java suites
+ if ( !add) // go throug java suites
{
- for (TInt k(0); add == EFalse && k < juidc; k++)
+ for (TInt k( 0); add == EFalse && k < juidc; k++)
{
if (juids[k] == uid)
{
@@ -2575,18 +2580,18 @@
}
}
}
- TInt rc(rem.Count());
- for (TInt t(0); t < rc; t++)
+ TInt rc(rem.Count() );
+ for (TInt t( 0); t < rc; t++)
{
RDEBUG_2( "ApplicationManagementServer: ActiveComponentCountL removing non existing %d", rem[t] );
CDeploymentComponent &compo = Server().Storage()->ComponentL(rem[t]);
- if (!compo.AppRemovable())
- Server().RemoveInternalL(compo, EFalse);
+ if(!compo.AppRemovable())
+ Server().RemoveInternalL(compo, EFalse);
}
- CleanupStack::PopAndDestroy(&rem);
- CleanupStack::PopAndDestroy(&juids);
- CleanupStack::PopAndDestroy(&uids);
- CleanupStack::PopAndDestroy(&sisses);
+ CleanupStack::PopAndDestroy( &rem);
+ CleanupStack::PopAndDestroy( &juids);
+ CleanupStack::PopAndDestroy( &uids);
+ CleanupStack::PopAndDestroy( &sisses);
}
// -------------------------------------------------------------------------------------------------------------------
@@ -2599,18 +2604,18 @@
TDeploymentComponentState st;
TPckg<TDeploymentComponentState> pk(st);
- TInt read(aMessage.Read(1, pk));
+ TInt read(aMessage.Read( 1, pk) );
RDEBUG_3( "CApplicationManagementSession: ComponentIdsL State is %d, read %d", st, read);
const RComponentIdArray &arrt = Server().Storage()->GetComponentIds();
- TInt buflen(0);
- TUint32* buf = NULL;
+ TInt buflen( 0);
+ TUint32* buf= NULL;
if (st == EDCSNone)
{
- buflen = arrt.Count();
- buf = new (ELeave) TUint32[buflen];
+ buflen = arrt.Count() ;
+ buf = new ( ELeave ) TUint32[buflen];
CleanupArrayDeletePushL(buf);
- for (TInt i(0); i < buflen; i++)
+ for (TInt i( 0); i < buflen; i++)
{
RDEBUG_2("ApplicationManagementSession: ComponentIdsL Adding %d!!", arrt[i]);
buf[i] = arrt[i];
@@ -2621,26 +2626,25 @@
RComponentIdArray arr;
if (st == EDCSActive)
{
- ActiveComponentsL(arrt, arr, st);
+ ActiveComponentsL(arrt, arr,st);
}
else
{
- TInt artc(arrt.Count());
- for (TInt i(0); i < artc; i++)
+ TInt artc(arrt.Count() );
+ for (TInt i( 0); i < artc; i++)
{
- CDeploymentComponent &compo = Server().Storage()->ComponentL(
- arrt[i]);
+ CDeploymentComponent &compo = Server().Storage()->ComponentL(arrt[i]);
if (compo.State() == st)
{
arr.Append(arrt[i]);
}
}
}
- buflen = arr.Count();
- buf = new (ELeave) TUint32[buflen];
+ buflen = arr.Count() ;
+ buf = new ( ELeave ) TUint32[buflen];
CleanupArrayDeletePushL(buf);
- TUint32 len(aMessage.GetDesMaxLength(0) / 4);
+ TUint32 len(aMessage.GetDesMaxLength( 0) / 4);
if (buflen == len)
{
RDEBUG( "CApplicationManagementSession: ComponentIdsL Right count!!" );
@@ -2653,7 +2657,7 @@
buflen = len;
}
}
- for (TInt i(0); i < buflen; i++)
+ for (TInt i( 0); i < buflen; i++)
{
RDEBUG_2( "CApplicationManagementSession: ComponentIdsL Adding %d!!",
arr[i] );
@@ -2662,8 +2666,8 @@
arr.Close();
}
- TPtrC8 p((TUint8*) buf, buflen * sizeof(TUint32));
- aMessage.WriteL(0, p);
+ TPtrC8 p( ( TUint8* ) buf, buflen * sizeof(TUint32));
+ aMessage.WriteL( 0, p);
CleanupStack::PopAndDestroy(buf);
}
@@ -2671,8 +2675,8 @@
#ifdef _DEBUG
HBufC* Des8to16LC(const TDesC8 &aDes)
{
- HBufC *b = HBufC::NewLC(aDes.Length());
- TPtr p(b->Des());
+ HBufC *b = HBufC::NewLC(aDes.Length() );
+ TPtr p(b->Des() );
p.Copy(aDes);
return b;
}
@@ -2681,11 +2685,11 @@
{
HBufC *b = HBufC::NewLC(aComp.iId.Length() + aComp.iName.Length()
+ aComp.iVersion.Length() + 10 + 50);
- TPtr p(b->Des());
+ TPtr p(b->Des() );
_LIT( KFormat, "Id: '%S', Name: '%S', Version: '%S', State: %d, OldState: %d");
p.Format(KFormat, &*Des8to16LC(aComp.iId), &*Des8to16LC(aComp.iName),
- &*Des8to16LC(aComp.iVersion), aComp.iState, aComp.iOldState);
- CleanupStack::PopAndDestroy(3);
+ &*Des8to16LC(aComp.iVersion), aComp.iState, aComp.iOldState) ;
+ CleanupStack::PopAndDestroy( 3);
return b;
}
#endif
@@ -2699,29 +2703,26 @@
RDEBUG( "ApplicationManagementSession: Deliver2L" );
TDeploymentComponentIPC comp;
- TPckg<TDeploymentComponentIPC> pcomp(comp);
- TInt read2(aMessage.Read(0, pcomp));
-
- HBufC8 *data = HBufC8::NewLC(aMessage.GetDesLength(1));
+ TPckg< TDeploymentComponentIPC> pcomp(comp);
+ TInt read2(aMessage.Read( 0, pcomp) );
+
+ HBufC8 *data = HBufC8::NewLC(aMessage.GetDesLength( 1) );
TPtr8 pbuf(data->Des());
- TInt read(aMessage.Read(1, pbuf));
-
- CDeploymentComponent *compo = NULL;
+ TInt read(aMessage.Read( 1, pbuf) );
+
+ CDeploymentComponent *compo= NULL;
if (iTrustAdded)
{
- compo = Server().Storage()->NewComponentL(EDCSDelivered,
- comp.iUserId, &iCertInfo);
+ compo = Server().Storage()->NewComponentL(EDCSDelivered, comp.iUserId, &iCertInfo);
}
else
{
- compo
- = Server().Storage()->NewComponentL(EDCSDelivered,
- comp.iUserId);
+ compo = Server().Storage()->NewComponentL(EDCSDelivered, comp.iUserId);
}
compo->Set(comp.iComponent);
compo->Data().SetDataL(pbuf, comp.iMimeType);
- Server().Storage()->UpdateL(*compo);
+ Server().Storage()->UpdateL( *compo);
compo->CopyStateTo(comp.iComponent);
#ifdef _DEBUG
@@ -2730,42 +2731,41 @@
CleanupStack::PopAndDestroy();
#endif
- TPckg<TDeploymentComponent> pcomp2(comp.iComponent);
- aMessage.Write(0, pcomp2);
- CleanupStack::PopAndDestroy(data);
- TInt n(compo->InternalId());
+ TPckg< TDeploymentComponent> pcomp2(comp.iComponent);
+ aMessage.Write( 0, pcomp2);
+ CleanupStack::PopAndDestroy(data) ;
+ TInt n(compo->InternalId() );
TPckg<TUint32> p(n);
- aMessage.WriteL(2, p);
+ aMessage.WriteL( 2, p);
}
// -------------------------------------------------------------------------------------------------------------------
// CApplicationManagementSession::DeliverCompleteL()
// -------------------------------------------------------------------------------------------------------------------
-void CApplicationManagementSession::DeliverCompleteL(
- const RMessage2& aMessage) const
+void CApplicationManagementSession::DeliverCompleteL(const RMessage2& aMessage) const
{
RDEBUG( "ApplicationManagementSession: DeliverCompleteL" );
TUint32 id;
TPckg<TUint32> pid(id);
- TInt read(aMessage.Read(0, pid));
+ TInt read(aMessage.Read( 0, pid) );
RDEBUG_2( "ApplicationManagementSession: DeliverCompleteL id is %d", id );
CDeploymentComponent &compo = Server().Storage()->ComponentL(id);
- HBufC8 *opts = HBufC8::NewLC(aMessage.GetDesLength(1));
- TPtr8 popts(opts->Des());
- TInt read1(aMessage.Read(1, popts));
- compo.SetInstallOptsL(*opts);
-
- HBufC8 *meta = HBufC8::NewLC(aMessage.GetDesLength(2));
- TPtr8 pmeta(meta->Des());
- TInt read2(aMessage.Read(2, pmeta));
- compo.SetMetaDataL(*meta, KNullDesC8);
-
- CleanupStack::PopAndDestroy(meta);
- CleanupStack::PopAndDestroy(opts);
+ HBufC8 *opts = HBufC8::NewLC(aMessage.GetDesLength( 1) );
+ TPtr8 popts(opts->Des() );
+ TInt read1(aMessage.Read( 1, popts) );
+ compo.SetInstallOptsL( *opts);
+
+ HBufC8 *meta = HBufC8::NewLC(aMessage.GetDesLength( 2) );
+ TPtr8 pmeta(meta->Des() );
+ TInt read2(aMessage.Read( 2, pmeta) );
+ compo.SetMetaDataL( *meta, KNullDesC8);
+
+ CleanupStack::PopAndDestroy(meta) ;
+ CleanupStack::PopAndDestroy(opts) ;
Server().Storage()->UpdateL(compo);
}
@@ -2778,7 +2778,7 @@
RDEBUG( "ApplicationManagementSession: GetComponentL" );
TUint32 id;
TPckg<TUint32> pid(id);
- TInt read(aMessage.Read(0, pid));
+ TInt read(aMessage.Read( 0, pid) );
RDEBUG_2( "ApplicationManagementSession: GetComponentL id is %d", id );
CDeploymentComponent &compo = Server().Storage()->ComponentL(id);
@@ -2786,8 +2786,8 @@
TDeploymentComponent comp;
compo.CopyStateTo(comp);
- TPckg<TDeploymentComponent> pcomp(comp);
- aMessage.Write(1, pcomp);
+ TPckg< TDeploymentComponent> pcomp(comp);
+ aMessage.Write( 1, pcomp);
}
// -------------------------------------------------------------------------------------------------------------------
@@ -2799,15 +2799,15 @@
RDEBUG( "ApplicationManagementSession: StartDownloadL" );
TUint32 id = 0;
TPckg<TUint32> pid(id);
- TInt read(aMessage.Read(0, pid));
+ TInt read(aMessage.Read( 0, pid) );
TPckgBuf<TDownloadTarget> target;
- read = aMessage.Read(1, target);
+ read = aMessage.Read( 1, target) ;
RDEBUG_2( "ApplicationManagementSession: StartDownloadL id is %d", id );
CDeploymentComponent &compo = Server().Storage()->ComponentL(id);
- compo.SetDownloadTarget(target());
- Server().AddDownloadL(&compo);
+ compo.SetDownloadTarget(target() );
+ Server().AddDownloadL( &compo);
}
// -------------------------------------------------------------------------------------------------------------------
@@ -2819,11 +2819,13 @@
RDEBUG( "ApplicationManagementSession: DeactivateL" );
TUint32 id = 0;
TPckg<TUint32> pid(id);
- TInt read(aMessage.Read(0, pid));
+ TInt read(aMessage.Read( 0, pid) );
RDEBUG_2( "ApplicationManagementSession: DeactivateL id is %d", id );
CDeploymentComponent &compo = Server().Storage()->ComponentL(id);
Server().Storage()->DeactivateL(compo);
+
+
}
// -------------------------------------------------------------------------------------------------------------------
@@ -2835,11 +2837,13 @@
RDEBUG( "ApplicationManagementSession: ActivateL" );
TUint32 id;
TPckg<TUint32> pid(id);
- TInt read(aMessage.Read(0, pid));
+ TInt read(aMessage.Read( 0, pid) );
RDEBUG_2( "ApplicationManagementSession: ActivateL id is %d", id );
CDeploymentComponent &compo = Server().Storage()->ComponentL(id);
Server().Storage()->ActivateL(compo);
+
+
}
// -------------------------------------------------------------------------------------------------------------------
@@ -2851,14 +2855,16 @@
RDEBUG( "ApplicationManagementSession: GetUserIdL" );
TUint32 id = 0;
TPckg<TUint32> pid(id);
- TInt read(aMessage.Read(0, pid));
+ TInt read(aMessage.Read( 0, pid) );
RDEBUG_2( "ApplicationManagementSession: GetUserIdL id is %d", id );
CDeploymentComponent &compo = Server().Storage()->ComponentL(id);
- aMessage.Write(1, compo.UserId());
+ aMessage.Write( 1, compo.UserId() );
}
+
+
// -------------------------------------------------------------------------------------------------------------------
// CApplicationManagementSession::GetTemporaryInstFileL()
// -------------------------------------------------------------------------------------------------------------------
@@ -2870,11 +2876,11 @@
RDEBUG( "ApplicationManagementSession: GetTemporaryInstFileL" );
TUint32 id;
TPckg<TUint32> pid(id);
- TInt read(aMessage.Read(0, pid));
+ TInt read(aMessage.Read( 0, pid) );
TDeplCompAttrType item;
TPckg<TDeplCompAttrType> itemid(item);
- read = aMessage.Read(1, itemid);
+ read = aMessage.Read( 1, itemid);
RDEBUG_2( "ApplicationManagementSession: GetTemporaryInstFileL id is %d", id );
CDeploymentComponent &compo = Server().Storage()->ComponentL(id);
@@ -2883,31 +2889,32 @@
if (item == EDCData)
{
- fileName.Copy(compo.Data().DataFileName());
- }
- else if (item == EDCMetaData)
- {
- fileName.Copy(compo.MetaData().DataFileName());
+ fileName.Copy(compo.Data().DataFileName() );
}
else
- {
- RDEBUG_2( "ApplicationManagementSession: GetTemporaryInstFileL: Not supported type: (%d)", item);
- User::Leave(KErrNotSupported);
- }
+ if (item == EDCMetaData)
+ {
+ fileName.Copy(compo.MetaData().DataFileName() );
+ }
+ else
+ {
+ RDEBUG_2( "ApplicationManagementSession: GetTemporaryInstFileL: Not supported type: (%d)", item);
+ User::Leave(KErrNotSupported);
+ }
RDEBUG_2( "ApplicationManagementSession: GetTemporaryInstFileL: (%S)", &fileName);
RFs fs;
- User::LeaveIfError(fs.Connect());
- User::LeaveIfError(fs.ShareProtected());
+ User::LeaveIfError(fs.Connect() );
+ User::LeaveIfError(fs.ShareProtected() );
CleanupClosePushL(fs);
RFile file;
- User::LeaveIfError(file.Open(fs, fileName, EFileWrite));
+ User::LeaveIfError(file.Open(fs, fileName, EFileWrite) );
CleanupClosePushL(file);
// Takes care of completing with session (RFs),
// SendReceieve returns session handle at client side
- User::LeaveIfError(file.TransferToClient(aMessage, 2));
+ User::LeaveIfError(file.TransferToClient(aMessage, 2) );
CleanupStack::PopAndDestroy(2, &fs); // fs , file
}
@@ -2944,7 +2951,7 @@
}
listPackages.ResetAndDestroy();
- CleanupStack::PopAndDestroy(&listPackages);
+ CleanupStack::PopAndDestroy( &listPackages);
if (err != KErrNone)
{
@@ -2973,7 +2980,7 @@
regEntry.OpenL(aSession, aPackage);
size += PackageSizeL(aSession, regEntry);
- CleanupStack::PopAndDestroy(®Entry);
+ CleanupStack::PopAndDestroy( ®Entry);
return size;
}
@@ -2985,12 +2992,12 @@
void CApplicationManagementSession::LookupSisRegistryL()
{
Swi::RSisRegistrySession sisses;
- TInt r(sisses.Connect());
+ TInt r(sisses.Connect() );
RPointerArray<Swi::CSisRegistryPackage> pkgs(12);
sisses.InstalledPackagesL(pkgs);
- TInt count(pkgs.Count());
- for (TInt i(0); i < count; i++)
+ TInt count(pkgs.Count() );
+ for (TInt i( 0); i < count; i++)
{
Swi::CSisRegistryPackage* p = pkgs[i];
@@ -3012,12 +3019,12 @@
RDEBUG( "ApplicationManagementSession: InstallL" );
TUint32 id;
TPckg<TUint32> pid(id);
- TInt read(aMessage.Read(0, pid));
+ TInt read(aMessage.Read( 0, pid) );
TDeploymentComponentState targetst;
TPckg<TDeploymentComponentState> pk(targetst);
- read = aMessage.Read(1, pk);
+ read = aMessage.Read( 1, pk) ;
RDEBUG_3( "ApplicationManagementSession: InstallL id is %d, targetstate %d",
id, targetst );
@@ -3025,7 +3032,30 @@
CDeploymentComponent &compo = Server().Storage()->ComponentL(id);
if (compo.State() == EDCSDelivered)
{
- Server().DoTheInstallL(compo);
+ TInt err(KErrNone);
+ TRAP(err, Server().DoTheInstallL(compo)) ;
+ TBuf8<256> targetURI;
+ TDeploymentComponentState state = compo.State();
+ if( state == EDCSDelivered)
+ {
+ targetURI.Append(KDeliveredState);
+ targetURI.Append(compo.UserId());
+ }
+ else if (state == EDCSActive|| state == EDCSInactive)
+ {
+ targetURI.Append(KDeployedState);
+ targetURI.Append(compo.UserId());
+ }
+
+ //Set Targeturi to cenrep
+ CRepository* cenrep = NULL;
+ TRAP(err, cenrep = CRepository::NewL( KCRUidDeviceManagementInternalKeys ));
+ if(err == KErrNone)
+ {
+ err = cenrep->Set( KNSmlDMSCOMOTargetRef, targetURI );
+ delete cenrep;
+ cenrep = NULL;
+ }
}
else
{
@@ -3044,23 +3074,22 @@
TDeplCompDataIPC ipc;
TPckg<TDeplCompDataIPC> pipc(ipc);
- TInt read(aMessage.Read(0, pipc));
+ TInt read(aMessage.Read( 0, pipc) );
RDEBUG_2( "ApplicationManagementSession: UpdateDataL id is %d", ipc.iInternalId );
- HBufC8 *buf = HBufC8::NewLC(aMessage.GetDesLength(1));
- TPtr8 pbuf(buf->Des());
- TInt read2(aMessage.Read(1, pbuf));
-
- CDeploymentComponent &compo = Server().Storage()->ComponentL(
- ipc.iInternalId);
-
- if (Server().CheckB64Encode(pbuf))
+ HBufC8 *buf = HBufC8::NewLC(aMessage.GetDesLength( 1) );
+ TPtr8 pbuf(buf->Des() );
+ TInt read2(aMessage.Read( 1, pbuf) );
+
+ CDeploymentComponent &compo = Server().Storage()->ComponentL(ipc.iInternalId);
+
+ if (Server().CheckB64Encode(pbuf) )
{
RDEBUG( "ApplicationManagementSession: UpdateDataL data is base64 encoded");
// b64 encoded data, decode it
HBufC8* tmp;
tmp = Server().DecodeB64DataLC(pbuf);
- pbuf.Copy(*tmp);
+ pbuf.Copy( *tmp);
pbuf = buf->Des();
CleanupStack::PopAndDestroy(tmp);
}
@@ -3071,15 +3100,16 @@
{
compo.SetDataL(pbuf, ipc.iDataMime);
}
- else if (ipc.iAttrType == EDCMetaData)
- {
- compo.SetMetaDataL(pbuf, ipc.iDataMime);
- }
else
- {
- RDEBUG_2( "ApplicationManagementSession::UpdateDataL - ERROR UpdateDataL called for illegal item: %d!", ipc.iAttrType );
- User::Leave(KErrArgument);
- }
+ if (ipc.iAttrType == EDCMetaData)
+ {
+ compo.SetMetaDataL(pbuf, ipc.iDataMime);
+ }
+ else
+ {
+ RDEBUG_2( "ApplicationManagementSession::UpdateDataL - ERROR UpdateDataL called for illegal item: %d!", ipc.iAttrType );
+ User::Leave(KErrArgument);
+ }
Server().Storage()->UpdateL(compo);
}
@@ -3101,16 +3131,15 @@
RDEBUG( "ApplicationManagementSession: UpdateStreamedDataL() Start");
TDeplCompDataIPC ipc;
TPckg<TDeplCompDataIPC> pipc(ipc);
- TInt read(aMessage.Read(0, pipc));
+ TInt read(aMessage.Read( 0, pipc) );
RDEBUG_2( "ApplicationManagementSession: UpdateStreamedDataL id is %d", ipc.iInternalId );
- CDeploymentComponent &compo = Server().Storage()->ComponentL(
- ipc.iInternalId);
+ CDeploymentComponent &compo = Server().Storage()->ComponentL(ipc.iInternalId);
if (compo.State() == EDCSDelivered)
{
RFs fs;
- User::LeaveIfError(fs.Connect());
+ User::LeaveIfError(fs.Connect() );
CleanupClosePushL(fs);
RFile file;
TFileName dataFileName;
@@ -3118,24 +3147,25 @@
if (ipc.iAttrType == EDCData)
{
- dataFileName.Copy(compo.Data().DataFileName());
- }
- else if (ipc.iAttrType == EDCMetaData)
- {
- dataFileName.Copy(compo.MetaData().DataFileName());
+ dataFileName.Copy(compo.Data().DataFileName() ) ;
}
else
- {
- RDEBUG_2( "ApplicationManagementSession::UpdateStreamedDataL - ERROR called for illegal item: %d!", ipc.iAttrType );
- User::Leave(KErrArgument);
- }
+ if (ipc.iAttrType == EDCMetaData)
+ {
+ dataFileName.Copy(compo.MetaData().DataFileName() ) ;
+ }
+ else
+ {
+ RDEBUG_2( "ApplicationManagementSession::UpdateStreamedDataL - ERROR called for illegal item: %d!", ipc.iAttrType );
+ User::Leave(KErrArgument);
+ }
RDEBUG_2( "ApplicationManagementSession::UpdateStreamedDataL(): using dataFile: (%S)", &dataFileName );
// EFileWrite So we can delete the original decoded data file
- User::LeaveIfError(file.Open(fs, dataFileName, EFileWrite));
- CleanupClosePushL(file);
- if (Server().IsDataFileB64EncodedL(file, length))
+ User::LeaveIfError(file.Open(fs, dataFileName, EFileWrite) );
+ CleanupClosePushL(file) ;
+ if (Server().IsDataFileB64EncodedL(file, length) )
{
RDEBUG( "CApplicationManagementServer::UpdateStreamedDataL(): data is decoded" );
@@ -3159,24 +3189,24 @@
if (err != KErrNone)
{
RDEBUG_2( "ApplicationManagementSession::UpdateStreamedDataL - failed to decode datafile: %d", err );
- CleanupStack::PopAndDestroy(2, &file);
+ CleanupStack::PopAndDestroy( 2, &file);
compo.ResetDataL(fs); // Remove both files if exists
User::Leave(err);
}
else
{
// close both files, delete decode file and rename temp file to correct one
- CleanupStack::PopAndDestroy(2, &file);
+ CleanupStack::PopAndDestroy( 2, &file);
fs.Delete(dataFileName);
err = fs.Rename(tempFileName, dataFileName);
RDEBUG_2( "ApplicationManagementSession::UpdateStreamedDataL - successfully decoded datafile: %d", err );
}
- CleanupStack::PopAndDestroy(&fs);
+ CleanupStack::PopAndDestroy( &fs);
}
else
{
RDEBUG( "ApplicationManagementSession::UpdateStreamedDataL(): data is NOT decoded" );
- CleanupStack::PopAndDestroy(2, &fs);
+ CleanupStack::PopAndDestroy( 2, &fs);
}
if (ipc.iAttrType == EDCData)
@@ -3208,18 +3238,18 @@
TUint32 id;
TPckg<TUint32> pid(id);
- TInt read(aMessage.Read(0, pid));
+ TInt read(aMessage.Read( 0, pid) );
RDEBUG_2("ApplicationManagementSession: UpdateL id is %d", id );
TDeplCompAttrType item;
TPckg<TDeplCompAttrType> itemid(item);
- TInt read1(aMessage.Read(1, itemid));
- HBufC8 *buf = HBufC8::NewLC(aMessage.GetDesLength(2));
- TPtr8 pbuf(buf->Des());
- TInt read2(aMessage.Read(2, pbuf));
+ TInt read1(aMessage.Read( 1, itemid) );
+ HBufC8 *buf = HBufC8::NewLC(aMessage.GetDesLength( 2) );
+ TPtr8 pbuf(buf->Des() );
+ TInt read2(aMessage.Read( 2, pbuf) );
CDeploymentComponent &c = Server().Storage()->ComponentL(id);
- TDeploymentComponentState st(c.State());
+ TDeploymentComponentState st(c.State() );
if (st == EDCSDelivered || st == EDCSDownload)
{
switch (item)
@@ -3287,83 +3317,85 @@
}
}
}
- else if (st == EDCSDownload)
- {
- switch (item)
+ else
+ if (st == EDCSDownload)
{
- case EDCId:
- {
- c.SetIdL(pbuf);
- break;
- }
- case EDCName:
- {
- c.SetNameL(pbuf);
- break;
- }
- case EDCVersion:
+ switch (item)
{
- c.SetVersionL(pbuf);
- break;
- }
- case EDCDownloadURI:
- {
- c.SetDownloadURIL(pbuf);
- break;
- }
- case EDCConRef:
- {
- TPckgBuf<TInt> aInt;
- aInt.Copy(pbuf);
- c.SetIAPL(aInt());
- break;
- }
- default:
- {
- RDEBUG_2( "ApplicationManagementSession: ERROR UpdateL called for illegal item type!!!! %d", item );
- User::Leave(KErrArgument);
- break;
+ case EDCId:
+ {
+ c.SetIdL(pbuf);
+ break;
+ }
+ case EDCName:
+ {
+ c.SetNameL(pbuf);
+ break;
+ }
+ case EDCVersion:
+ {
+ c.SetVersionL(pbuf);
+ break;
+ }
+ case EDCDownloadURI:
+ {
+ c.SetDownloadURIL(pbuf);
+ break;
+ }
+ case EDCConRef:
+ {
+ TPckgBuf<TInt> aInt;
+ aInt.Copy(pbuf);
+ c.SetIAPL(aInt() );
+ break;
+ }
+ default:
+ {
+ RDEBUG_2( "ApplicationManagementSession: ERROR UpdateL called for illegal item type!!!! %d", item );
+ User::Leave(KErrArgument);
+ break;
+ }
}
}
- }
- break;
- }
- }
- Server().Storage()->UpdateL(c);
- }
- else if (st == EDCSActive || st == EDCSInactive)
- {
- switch (item)
- {
- case EDCName:
- {
- c.SetNameL(pbuf);
- break;
- }
- case EDCVersion:
- {
- c.SetVersionL(pbuf);
- break;
- }
- case EDCDescriptionRef:
- {
- c.SetDescriptionL(pbuf);
- break;
- }
- default:
- {
- RDEBUG_2( "ApplicationManagementSession: ERROR UpdateL called for illegal item type!!!! %d", item );
- User::Leave(KErrArgument);
break;
}
}
Server().Storage()->UpdateL(c);
}
else
- {
- RDEBUG( "ApplicationManagementSession: ERROR UpdateL called for illegal state message!" );
- User::Leave(KErrArgument);
- }
+ if (st == EDCSActive ||st == EDCSInactive)
+ {
+ switch (item)
+ {
+ case EDCName:
+ {
+ c.SetNameL(pbuf);
+ break;
+ }
+ case EDCVersion:
+ {
+ c.SetVersionL(pbuf);
+ break;
+ }
+ case EDCDescriptionRef:
+ {
+ c.SetDescriptionL(pbuf);
+ break;
+ }
+ default:
+ {
+ RDEBUG_2( "ApplicationManagementSession: ERROR UpdateL called for illegal item type!!!! %d", item );
+ User::Leave(KErrArgument);
+ break;
+ }
+ }
+ Server().Storage()->UpdateL(c);
+ }
+ else
+ {
+ RDEBUG( "ApplicationManagementSession: ERROR UpdateL called for illegal state message!" );
+ User::Leave(KErrArgument);
+ }
CleanupStack::PopAndDestroy(buf);
}
@@ -3377,74 +3409,80 @@
TUint32 id;
TPckg<TUint32> pid(id);
- TInt read(aMessage.Read(0, pid));
-
- TInt length(0);
+ TInt read(aMessage.Read( 0, pid) );
+
+ TInt length( 0);
TDeplCompAttrType dt;
- TPckg<TDeplCompAttrType> pdt(dt);
- read = aMessage.Read(1, pdt);
+ TPckg< TDeplCompAttrType> pdt(dt);
+ read = aMessage.Read( 1, pdt) ;
CDeploymentComponent &compo = Server().Storage()->ComponentL(id);
if (compo.State() == EDCSDelivered)
{
if (dt == EDCInstallOptions)
{
- if (compo.InstallOptsSet())
- {
- length = sizeof(TAMInstallOptions);
- }
- }
- else if (dt == EDCData)
- {
- length = compo.Data().DataLengthL();
- }
- else if (dt == EDCDataMime)
- {
- length = compo.Data().MimeType().Length();
- }
- else if (dt == EDCMetaData)
- {
- length = compo.MetaData().DataLengthL();
- }
- else if (dt == EDCMetaDataMime)
- {
- length = compo.MetaData().MimeType().Length();
- }
- else
- {
- RDEBUG_2( "ApplicationManagementSession: GetDataLengthL ERROR called with illegal type %d", dt );
- User::Leave(KErrArgument);
- }
- }
- else if (compo.State() == EDCSDownload)
- {
- if (dt == EDCDownloadURI)
- {
- length = compo.DownloadURI().Length();
- }
- else if (dt == EDCInstallOptions)
- {
- if (compo.InstallOptsSet())
+ if (compo.InstallOptsSet() )
{
length = sizeof(TAMInstallOptions);
}
}
else
+ if (dt == EDCData)
+ {
+ length = compo.Data().DataLengthL();
+ }
+ else
+ if (dt == EDCDataMime)
+ {
+ length = compo.Data().MimeType().Length();
+ }
+ else
+ if (dt == EDCMetaData)
+ {
+ length = compo.MetaData().DataLengthL();
+ }
+ else
+ if (dt == EDCMetaDataMime)
+ {
+ length = compo.MetaData().MimeType().Length();
+ }
+ else
+ {
+ RDEBUG_2( "ApplicationManagementSession: GetDataLengthL ERROR called with illegal type %d", dt );
+ User::Leave(KErrArgument);
+ }
+ }
+ else
+ if (compo.State() == EDCSDownload)
{
- RDEBUG_2( "ApplicationManagementSession: GetDataLengthL ERROR Download / called with illegal state component id %d",
+ if (dt == EDCDownloadURI)
+ {
+ length = compo.DownloadURI().Length();
+ }
+ else
+ if (dt == EDCInstallOptions)
+ {
+ if (compo.InstallOptsSet() )
+ {
+ length = sizeof(TAMInstallOptions);
+ }
+ }
+ else
+ {
+ RDEBUG_2( "ApplicationManagementSession: GetDataLengthL ERROR Download / called with illegal state component id %d",
+ compo.State() );
+ User::Leave(KErrArgument);
+ }
+ }
+ else
+ {
+ RDEBUG_2( "ApplicationManagementSession: GetDataLengthL ERROR called with illegal state component id %d",
compo.State() );
User::Leave(KErrArgument);
}
- }
- else
- {
- RDEBUG_2( "ApplicationManagementSession: GetDataLengthL ERROR called with illegal state component id %d",
- compo.State() );
- User::Leave(KErrArgument);
- }
-
- TPckg<TInt> pcomp(length);
- aMessage.Write(2, pcomp);
+
+ TPckg< TInt> pcomp(length);
+ aMessage.Write( 2, pcomp);
}
// -------------------------------------------------------------------------------------------------------------------
@@ -3457,91 +3495,100 @@
TUint32 id;
TPckg<TUint32> pid(id);
- TInt read(aMessage.Read(0, pid));
+ TInt read(aMessage.Read( 0, pid) );
TDeplCompAttrType dt;
- TPckg<TDeplCompAttrType> pdt(dt);
- read = aMessage.Read(1, pdt);
+ TPckg< TDeplCompAttrType> pdt(dt);
+ read = aMessage.Read( 1, pdt) ;
RDEBUG_3( "ApplicationManagementSession: GetDataL id is %d, and attribute %d", id, dt );
CDeploymentComponent &compo = Server().Storage()->ComponentL(id);
if (dt == EDCStatus)
{
- TPckg<TInt> p(compo.Status());
- aMessage.Write(2, p);
+ TPckg<TInt> p(compo.Status() );
+ aMessage.Write( 2, p);
}
- else if (compo.State() == EDCSDelivered)
- {
- if (dt == EDCInstallOptions)
+ else
+ if (compo.State() == EDCSDelivered)
{
- if (compo.InstallOptsSet())
+ if (dt == EDCInstallOptions)
{
- TAMInstallOptionsPckgBuf pckg(compo.InstallOpts());
- aMessage.Write(2, pckg);
+ if (compo.InstallOptsSet() )
+ {
+ TAMInstallOptionsPckgBuf pckg(compo.InstallOpts() );
+ aMessage.Write( 2, pckg);
+ }
+ else
+ {
+ aMessage.Write( 2, KNullDesC8);
+ }
+ }
+ else
+ if (dt == EDCData)
+ {
+ aMessage.Write( 2, compo.Data().Data() );
+ }
+ else
+ if (dt == EDCDataMime)
+ {
+ aMessage.Write( 2, compo.Data().MimeType() );
+ }
+ else
+ if (dt == EDCMetaData)
+ {
+ aMessage.Write( 2, compo.MetaData().Data() );
+ }
+ else
+ if (dt == EDCMetaDataMime)
+ {
+ aMessage.Write( 2, compo.MetaData().MimeType() );
+ }
+ else
+ {
+ RDEBUG_2( "ApplicationManagementSession: GetDataL ERROR called with illegal type %d", dt );
+ User::Leave(KErrArgument);
+ }
+ }
+ else
+ if (compo.State() == EDCSDownload)
+ {
+
+ if (dt == EDCDownloadURI)
+ {
+ aMessage.Write( 2, compo.DownloadURI() );
+ }
+
+ else
+ if (dt == EDCInstallOptions)
+ {
+ if (compo.InstallOptsSet() )
+ {
+ TAMInstallOptionsPckgBuf
+ pckg(compo.InstallOpts() );
+ aMessage.Write( 2, pckg);
+ }
+ else
+ {
+ aMessage.Write( 2, KNullDesC8);
+ }
+ }
+ else
+ if (dt == EDCConRef)
+ {
+ TPckg<TInt> p(compo.GetIAP() );
+ aMessage.Write( 2, p);
+ }
+ else
+ {
+ RDEBUG_2( "ApplicationManagementSession:GetDataL ERROR called with illegal type %d", dt );
+ User::Leave(KErrArgument);
+ }
}
else
{
- aMessage.Write(2, KNullDesC8);
+ RDEBUG_2("ApplicationManagementSession: GetDataL ERROR called with illegal state component id %d", compo.State() );
+ User::Leave(KErrArgument);
}
- }
- else if (dt == EDCData)
- {
- aMessage.Write(2, compo.Data().Data());
- }
- else if (dt == EDCDataMime)
- {
- aMessage.Write(2, compo.Data().MimeType());
- }
- else if (dt == EDCMetaData)
- {
- aMessage.Write(2, compo.MetaData().Data());
- }
- else if (dt == EDCMetaDataMime)
- {
- aMessage.Write(2, compo.MetaData().MimeType());
- }
- else
- {
- RDEBUG_2( "ApplicationManagementSession: GetDataL ERROR called with illegal type %d", dt );
- User::Leave(KErrArgument);
- }
- }
- else if (compo.State() == EDCSDownload)
- {
-
- if (dt == EDCDownloadURI)
- {
- aMessage.Write(2, compo.DownloadURI());
- }
-
- else if (dt == EDCInstallOptions)
- {
- if (compo.InstallOptsSet())
- {
- TAMInstallOptionsPckgBuf pckg(compo.InstallOpts());
- aMessage.Write(2, pckg);
- }
- else
- {
- aMessage.Write(2, KNullDesC8);
- }
- }
- else if (dt == EDCConRef)
- {
- TPckg<TInt> p(compo.GetIAP());
- aMessage.Write(2, p);
- }
- else
- {
- RDEBUG_2( "ApplicationManagementSession:GetDataL ERROR called with illegal type %d", dt );
- User::Leave(KErrArgument);
- }
- }
- else
- {
- RDEBUG_2("ApplicationManagementSession: GetDataL ERROR called with illegal state component id %d", compo.State() );
- User::Leave(KErrArgument);
- }
}
// -------------------------------------------------------------------------------------------------------------------
@@ -3553,7 +3600,7 @@
RDEBUG( "ApplicationManagementSession: RemoveL" );
TUint32 id;
TPckg<TUint32> pid(id);
- TInt read(aMessage.Read(0, pid));
+ TInt read(aMessage.Read( 0, pid) );
RDEBUG_2( "ApplicationManagementSession: RemoveL id is %d", id );
RemoveInternalL(id);
}
@@ -3578,22 +3625,20 @@
RDEBUG( "ApplicationManagementSession: DownloadL" );
TDCUserId userId;
- aMessage.ReadL(1, userId);
- CDeploymentComponent *compo = NULL;
+ aMessage.ReadL( 1, userId);
+ CDeploymentComponent *compo= NULL;
if (iTrustAdded)
{
- compo = Server().Storage()->NewComponentL(EDCSDownload, userId,
- &iCertInfo);
+ compo = Server().Storage()->NewComponentL(EDCSDownload, userId, &iCertInfo);
}
else
{
compo = Server().Storage()->NewComponentL(EDCSDownload, userId);
}
- TUint32 i(compo->InternalId());
+ TUint32 i(compo->InternalId() );
TPckg<TUint32> p(i);
aMessage.WriteL(0, p);
- RDEBUG( "ApplicationManagementSession: DownloadL end" );
}
// -------------------------------------------------------------------------------------------------------------------
@@ -3607,10 +3652,10 @@
TUint32 sid;
TPckg<TUint32> psid(sid);
- TInt read(aMessage.Read(0, psid));
+ TInt read(aMessage.Read( 0, psid) );
TUint32 tid;
TPckg<TUint32> ptid(tid);
- TInt read2(aMessage.Read(1, ptid));
+ TInt read2(aMessage.Read( 1, ptid) );
RDEBUG_3( "ApplicationManagementSession: FullUpdateL sid is %d, tid is %d", sid, tid );
CApplicationManagementServer &server = Server();
@@ -3635,7 +3680,7 @@
void CApplicationManagementSession::AddTrustL(const RMessage2 &aMessage)
{
TPckg<TCertInfo> pkg(iCertInfo);
- aMessage.ReadL(0, pkg);
+ aMessage.ReadL( 0, pkg);
iTrustAdded = ETrue;
}
@@ -3649,16 +3694,16 @@
RDEBUG( "CApplicationManagementSession: StateChangeComponentIdsL" );
RComponentIdArray arr;
Server().Storage()->GetStateChangeComponentIdsL(arr);
- TInt buflen(arr.Count());
- TUint32* buf = new (ELeave) TUint32[buflen];
+ TInt buflen(arr.Count() );
+ TUint32* buf = new ( ELeave ) TUint32[buflen];
CleanupArrayDeletePushL(buf);
- for (TInt i(0); i < buflen; i++)
+ for (TInt i( 0); i < buflen; i++)
{
RDEBUG_2( "ApplicationManagementSession:ComponentIdsL Adding %d!!", arr[i]);
buf[i] = arr[i];
}
- TPtrC8 p((TUint8*) buf, buflen * sizeof(TUint32));
- aMessage.WriteL(0, p);
+ TPtrC8 p( ( TUint8* ) buf, buflen * sizeof(TUint32));
+ aMessage.WriteL( 0, p);
arr.Close();
CleanupStack::PopAndDestroy(buf);
RDEBUG( "CApplicationManagementSession: StateChangeComponentIdsL end" );
@@ -3673,59 +3718,10 @@
const RMessage2& aMessage) const
{
RDEBUG( "CApplicationManagementSession: StateChangeComponentIdsCountL" );
- RPointerArray<TPreInstalledAppParams> preInstalledAppParams;
- CAMPreInstallApp* preInstallApp = CAMPreInstallApp::NewL();
- preInstallApp->GetPreInstalledAppsL(preInstalledAppParams);
- TInt count = 0;
- for (count = 0; count < preInstalledAppParams.Count(); count++)
- {
- RDEBUG8_2("CApplicationManagementSession::DownloadL: Installed App Name is: %S",&(preInstalledAppParams[count]->iPreInstalledAppame));
- RDEBUG8_2("CApplicationManagementSession::DownloadL: Installed App Vendor is: %S",&(preInstalledAppParams[count]->iPreInstalledAppVendorName));
- RDEBUG_2("CApplicationManagementSession::DownloadL: Installed App UID is : '0x%X'",preInstalledAppParams[count]->iPreInstalledAppUid);
-
- TBool found = EFalse;
- const RComponentIdArray &arrt = Server().Storage()->GetComponentIds();
- TInt countval(arrt.Count());
- for (TInt i(0); i < countval; i++)
- {
- CDeploymentComponent &compo = Server().Storage()->ComponentL(
- arrt[i]);
- if (compo.Uid()
- == preInstalledAppParams[count]->iPreInstalledAppUid)
- {
- RDEBUG( "CApplicationManagementSession: ActiveComponentsL found= TRUE" );
- found = ETrue;
- }
- }
- if (!found)
- {
- RDEBUG( "CApplicationManagementSession: Adding Pre-installed app" );
- TDCUserId preInstalledAppName;
- preInstalledAppName.Copy(
- preInstalledAppParams[count]->iPreInstalledAppame);
- CDeploymentComponent *preInstallCompo = NULL;
- RDEBUG8_2("CApplicationManagementSession: Installed App Name is: %S",&preInstalledAppName);
- preInstallCompo = Server().Storage()->NewComponentL(EDCSActive,
- preInstalledAppName);
- preInstallCompo->SetUid(
- preInstalledAppParams[count]->iPreInstalledAppUid);
- preInstallCompo->SetNameL(preInstalledAppName);
- preInstallCompo->SetVersionL(
- preInstalledAppParams[count]->iVersion);
- preInstallCompo->SetMimeTypeL(
- preInstalledAppParams[count]->iMimeType);
- preInstallCompo->SetAppRemovableStatus(ETrue);
-
- Server().Storage()->UpdateL(*preInstallCompo);
- Server().Storage()->CheckForDuplicateNodesInDeployedL(
- *preInstallCompo);
- }
- }
- delete preInstallApp;
RComponentIdArray arr;
Server().Storage()->GetStateChangeComponentIdsL(arr);
- TPckgBuf<TInt> buflen(arr.Count());
- aMessage.WriteL(0, buflen);
+ TPckgBuf<TInt> buflen(arr.Count() );
+ aMessage.WriteL( 0, buflen);
arr.Close();
RDEBUG( "CApplicationManagementSession: StateChangeComponentIdsCountL end" );
}
@@ -3740,15 +3736,15 @@
RDEBUG( "CApplicationManagementSession: StateChangeCompleteL" );
TUint32 tid;
TPckg<TUint32> ptid(tid);
- TInt read2(aMessage.Read(0, ptid));
+ TInt read2(aMessage.Read( 0, ptid) );
Server().Storage()->StateChangedL(tid);
}
void CApplicationManagementSession::CheckStatusNodesValuesL()
{
const RComponentIdArray &arrt = Server().Storage()->GetComponentIds();
- TInt cont(arrt.Count());
+ TInt cont(arrt.Count() );
TBool isUpdateRequired = ETrue;
- for (TInt i(0); i < cont; i++)
+ for (TInt i( 0); i < cont; i++)
{
CDeploymentComponent &compo = Server().Storage()->ComponentL(arrt[i]);
isUpdateRequired = EFalse;
@@ -3757,31 +3753,37 @@
compo.SetStatusNode(EDownload_DownloadFailed);
isUpdateRequired = ETrue;
}
- else if (compo.Status() == EDelivered_InstallProgress)
- {
- compo.SetStatusNode(EDelivered_InstalledFailedWithData);
- isUpdateRequired = ETrue;
- }
- else if (compo.Status() == EDelivered_RemoveProgress)
- {
- compo.SetStatusNode(EDelivered_RemoveFailed);
- isUpdateRequired = ETrue;
- }
- else if (compo.Status() == EDeployed_RemoveProgress)
- {
- compo.SetStatusNode(EDeployed_RemoveFailed);
- isUpdateRequired = ETrue;
- }
- else if (compo.Status() == EDeployed_ActivateProgress)
- {
- compo.SetStatusNode(EDeployed_ActivateFailed);
- isUpdateRequired = ETrue;
- }
- else if (compo.Status() == EDeployed_DeactivateProgress)
- {
- compo.SetStatusNode(EDeployed_DeactivateFailed);
- isUpdateRequired = ETrue;
- }
+ else
+ if (compo.Status() == EDelivered_InstallProgress)
+ {
+ compo.SetStatusNode(EDelivered_InstalledFailedWithData);
+ isUpdateRequired = ETrue;
+ }
+ else
+ if (compo.Status() == EDelivered_RemoveProgress)
+ {
+ compo.SetStatusNode(EDelivered_RemoveFailed);
+ isUpdateRequired = ETrue;
+ }
+ else
+ if (compo.Status() == EDeployed_RemoveProgress)
+ {
+ compo.SetStatusNode(EDeployed_RemoveFailed);
+ isUpdateRequired = ETrue;
+ }
+ else
+ if (compo.Status() == EDeployed_ActivateProgress)
+ {
+ compo.SetStatusNode(EDeployed_ActivateFailed);
+ isUpdateRequired = ETrue;
+ }
+ else
+ if (compo.Status()
+ == EDeployed_DeactivateProgress)
+ {
+ compo.SetStatusNode(EDeployed_DeactivateFailed);
+ isUpdateRequired = ETrue;
+ }
if (isUpdateRequired)
Server().Storage()->UpdateL(compo);
}
@@ -3793,41 +3795,42 @@
{
RDEBUG( "CApplicationManagementSession: SetSisAppVersionAndDriveL: Begin" );
- Swi::RSisRegistrySession sisSession;
- User::LeaveIfError(sisSession.Connect());
- CleanupClosePushL(sisSession);
-
- Swi::RSisRegistryEntry sisEntry;
-
- //Opens the base package entry by specifying a UID.
- User::LeaveIfError(sisEntry.Open(sisSession, aCompo.Uid()));
- CleanupClosePushL(sisEntry);
+ Swi::RSisRegistrySession sisSession;
+ User::LeaveIfError(sisSession.Connect());
+ CleanupClosePushL(sisSession);
+
+ Swi::RSisRegistryEntry sisEntry;
+
+ //Opens the base package entry by specifying a UID.
+ User::LeaveIfError(sisEntry.Open(sisSession, aCompo.Uid()));
+ CleanupClosePushL(sisEntry);
TUint drivesMask = sisEntry.InstalledDrivesL();
-
- TInt drive = EDriveA;
+
+ TInt drive= EDriveA;
TDriveNumber installedDrive = EDriveC;
-
- if (drivesMask)
- {
- // Select the highest drive as location drive. That's the case when
- // all installation is not in same drive
-
- while (drivesMask >>= 1)
- {
- drive++;
- }
-
- RDEBUG_2( "drive -> SetSisAppVersionAndDriveL %d", drive);
-
- installedDrive = (TDriveNumber) drive;
- }
+
+ if( drivesMask )
+ {
+ // Select the highest drive as location drive. That's the case when
+ // all installation is not in same drive
+
+ while( drivesMask >>= 1 )
+ {
+ drive++;
+ }
+
+ RDEBUG_2( "drive -> SetSisAppVersionAndDriveL %d", drive);
+
+ installedDrive = (TDriveNumber)drive;
+ }
+
TBool status = EFalse;
//Since "C" drive is not removable
- if (installedDrive != EDriveC)
+ if (installedDrive!=EDriveC)
{
status = IsInstalledAppRemovableL(installedDrive);
}
@@ -3839,10 +3842,10 @@
{
RDEBUG( "IsInstalledAppRemovableL(SetSisAppVersionAndDriveL); False");
}
-
+
//check for status drive
aCompo.SetAppRemovableStatus(status);
-
+
TVersion version = sisEntry.VersionL();
if (aCompo.ComponentVersion() == KNullDesC8)
@@ -3862,10 +3865,11 @@
TBool CApplicationManagementServer::IsInstalledAppRemovableL(
TDriveNumber &iDrive)
{
+
RDEBUG( "IsInstalledAppRemovableL: Step1" );
- TBool removable = EFalse;
+ TBool removable=EFalse;
RFs rfs;
- User::LeaveIfError(rfs.Connect());
+ User::LeaveIfError(rfs.Connect() );
CleanupClosePushL(rfs);
TDriveList driveList;
TInt driveCount;
@@ -3884,8 +3888,10 @@
buf.Copy(driveList);
RDEBUG_2( "Drive Info (%S)", &buf);
- for (TInt i = 0; i < max; ++i)
+ for (TInt i=0; i<max; ++i)
{
+
+ //RDEBUG( "IsInstalledAppRemovableL: Step2" );
if (driveList[i])
{
TUint status;
@@ -3901,64 +3907,16 @@
if (i == iDrive)
{
RDEBUG( "IsInstalledAppRemovableL: Step5" );
- removable = ETrue;
+ removable=ETrue;
break;
}
}
}
}
- CleanupStack::PopAndDestroy(&rfs);
+ CleanupStack::PopAndDestroy( &rfs);
return removable;
- }
-
-// -----------------------------------------------------------------------------
-// CShutDown::CShutdown()
-// ------------------------------------------------------------------------------------------------
-
-inline CShutdown::CShutdown() :
- CTimer(-1)
- {
- CActiveScheduler::Add(this);
- }
-
-// ------------------------------------------------------------------------------------------------
-// CShutDown::ConstructL()
-// ------------------------------------------------------------------------------------------------
-
-inline void CShutdown::ConstructL()
- {
- CTimer::ConstructL();
+
}
-
-// ------------------------------------------------------------------------------------------------
-// CShutDown::Start()
-// ------------------------------------------------------------------------------------------------
-
-inline void CShutdown::Start()
- {
- RDEBUG( "ApplicationManagementServer: starting shutdown timeout" );
- After(KApplicationManagementShutdownDelay);
- }
-
-// ------------------------------------------------------------------------------------------------
-// CShutDown::RunL()
-// ------------------------------------------------------------------------------------------------
-
-void CShutdown::RunL()
- {
- RDEBUG( "ApplicationManagementServer timeout ... closing" );
- HbApplication::exit(0);
- }
-
-// ------------------------------------------------------------------------------------------------
-// CShutDown::Start()
-// ------------------------------------------------------------------------------------------------
-inline void CShutdown::Stop()
- {
- RDEBUG( "ApplicationManagementServer: Stop" );
- HbApplication::exit(0);
- }
-
// End of File