diff -r 000000000000 -r 3ce708148e4d applicationmanagement/server/src/ApplicationManagementJavaUtility.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/applicationmanagement/server/src/ApplicationManagementJavaUtility.cpp Thu Dec 17 08:40:12 2009 +0200 @@ -0,0 +1,204 @@ +/* + * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: Implementation of applicationmanagement components + * + */ + +// CLASS HEADER +#include "ApplicationManagementJavaUtility.h" +#include +#include +#include +#include +#include +// EXTERNAL INCLUDES +//#include + +// INTERNAL INCLUDES + + +using namespace NApplicationManagement; + +//---------------------------------------------------------------------------- +// +//---------------------------------------------------------------------------- +// CONSTRUCTION +CApplicationManagementJavaUtility* CApplicationManagementJavaUtility::NewL() + { + CApplicationManagementJavaUtility* self = + CApplicationManagementJavaUtility::NewLC(); + CleanupStack::Pop(); + + return self; + } + +//---------------------------------------------------------------------------- +// +//---------------------------------------------------------------------------- +// +CApplicationManagementJavaUtility* CApplicationManagementJavaUtility::NewLC() + { + CApplicationManagementJavaUtility* self = new( ELeave ) CApplicationManagementJavaUtility(); + CleanupStack::PushL(self); + + self->ConstructL(); + return self; + } + +//---------------------------------------------------------------------------- +// +//---------------------------------------------------------------------------- +// Destructor (virtual by CBase) +CApplicationManagementJavaUtility::~CApplicationManagementJavaUtility() + { + + if (iJavaRegistry) + { + delete iJavaRegistry; + } + } + +//---------------------------------------------------------------------------- +// +//---------------------------------------------------------------------------- +// Default constructor +CApplicationManagementJavaUtility::CApplicationManagementJavaUtility() + { + } + +//---------------------------------------------------------------------------- +// +//---------------------------------------------------------------------------- +// Second phase construct +void CApplicationManagementJavaUtility::ConstructL() + { + RefreshJavaRegistryL(); + } + +// METHODS + +//---------------------------------------------------------------------------- +// +//---------------------------------------------------------------------------- +// +TBool CApplicationManagementJavaUtility::FindInstalledJavaUidL( + const TUid &aUid) const + { + TBool ret; + ret = iJavaRegistry->RegistryEntryExistsL(aUid); + return ret; + + } + +//---------------------------------------------------------------------------- +// +//---------------------------------------------------------------------------- +// +void CApplicationManagementJavaUtility::InstalledSuiteUidsL( + RArray & aUids) + { + iJavaRegistry->GetRegistryEntryUidsL(aUids); + } + +//---------------------------------------------------------------------------- +// +//---------------------------------------------------------------------------- +// +void CApplicationManagementJavaUtility::JavaUidsL(RArray &aUids) + { + iJavaRegistry->GetRegistryEntryUidsL(aUids); + } + +//---------------------------------------------------------------------------- +// +//---------------------------------------------------------------------------- +// +void CApplicationManagementJavaUtility::RefreshJavaRegistryL() + { + if (iJavaRegistry) + { + delete iJavaRegistry; + iJavaRegistry = NULL; + } + + iJavaRegistry = CJavaRegistry::NewL(); + } +void CApplicationManagementJavaUtility::GetInstalledMidletParametersL( + TMidletParameters& aMidletParameters) + { + RDEBUG( "CApplicationManagementJavaUtility::GetInstalledMidletParametersL: Start"); + TInt suiteUid = 0; + // Get UID for the latest installed Midlet suite + // KPSUidJavaLatestInstallation = 0x10282567 + RProperty::Get(KUidSystemCategory, KPSUidJavaLatestInstallation, suiteUid); + + if ( !suiteUid) + { + User::Leave(KErrNotFound); + } + + RArray uids; + CleanupClosePushL(uids); + + Java::CJavaRegistry* javaRegistry; + javaRegistry = Java::CJavaRegistry::NewLC(); + + Java::CJavaRegistryEntry* regEntry = + javaRegistry->RegistryEntryL(TUid::Uid(suiteUid) ); + + if (regEntry) + { + CleanupStack::PushL(regEntry); + Java::TJavaRegistryEntryType entryType = regEntry->Type(); + + if ( (entryType >= Java::EGeneralPackage ) && (entryType + < Java::EGeneralApplication)) + { + //package entry + Java::CJavaRegistryPackageEntry * regPackageEntry = + static_cast(regEntry ); + regPackageEntry->GetEmbeddedEntries(uids); + + aMidletParameters.iMidletUid = uids[0]; // conidered the first application from the suite + aMidletParameters.iMidletName.Copy(regPackageEntry->Name()); + aMidletParameters.iMidletVenorName.Copy(regPackageEntry->Vendor()); + + TAppVersion version; + version = regPackageEntry->Version(); + _LIT8(KDot,"."); + aMidletParameters.bufVersion.Num(version.iMajor); + aMidletParameters.bufVersion.Append(KDot); + aMidletParameters.bufVersion.AppendNum(version.iMinor); + } + else + { + //application entry + uids.AppendL(regEntry->Uid() ); + aMidletParameters.iMidletUid = regEntry->Uid(); + aMidletParameters.iMidletName.Copy(regEntry->Name()); + //How to get Vendor& version name for java application + aMidletParameters.iMidletVenorName.Copy(KNullDesC8); + TAppVersion version(0,0,0); + _LIT8(KDot,"."); + aMidletParameters.bufVersion.Num(version.iMajor); + aMidletParameters.bufVersion.Append(KDot); + aMidletParameters.bufVersion.AppendNum(version.iMinor); + } + CleanupStack::PopAndDestroy(regEntry); + } + CleanupStack::PopAndDestroy(javaRegistry); + CleanupStack::PopAndDestroy( &uids); + RDEBUG( "CApplicationManagementJavaUtility::GetInstalledMidletParametersL: End"); + } +// END OF FILE