--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/javamanager/javasettings/appmngrplugin/inc/appmngr2midletappinfo.h Tue Apr 27 16:30:29 2010 +0300
@@ -0,0 +1,536 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: MidletAppInfo represents installed Java applications
+*
+*/
+
+
+#ifndef APPMNGR2MIDLETAPPINFO_H
+#define APPMNGR2MIDLETAPPINFO_H
+#include <appmngr2appinfo.h> // CAppMngr2AppInfo
+#include <SWInstApi.h> // SwiUI::RSWInstLauncher
+#include <appversion.h> // TAppVersion
+#include <downloadedcontenthandler.h> // MDownloadedContentHandler
+#include <javaregistryincludes.h>
+#include "appmngr2midletinfo.h" // MAppMngr2MidletInfo
+#include <string>
+
+class CFbsBitmap;
+class CAppMngr2MidletInfoIterator;
+class CAiwGenericParamList;
+class CAppMngr2MidletResourceHandler;
+
+namespace SwiUI
+{
+namespace CommonUI
+{
+class MCUIInfoIterator;
+class CCUICertificateInfo;
+}
+}
+
+/**
+ * MIDlet Suite Application Info
+ *
+ * MIDlet Suite Application Info handles uinstallation of installed MIDlet suite,
+ * shows MIDlet suite details and MIDlet suite settings.
+ *
+ * @lib appmngr2midletplugin.dll
+ * @since S60 v9.1
+ */
+class CAppMngr2MidletAppInfo : public CAppMngr2AppInfo,
+ public MAppMngr2MidletInfo,
+ public MDownloadedContentHandler
+
+{
+public: // constructor and destructor
+
+ /**
+ * Two phase constructor
+ *
+ * @since S60 9.1
+ * @param aRuntime Runtime
+ * @param aEntry Java Registry Suite Entry. Ownership taken.
+ * @param aFs Handle to a file server session
+ * @return instance
+ */
+ static CAppMngr2MidletAppInfo* NewL(CAppMngr2Runtime& aRuntime,
+ Java::CJavaRegistryPackageEntry* aEntry,
+ RFs& aFs,
+ CAppMngr2MidletResourceHandler& aResourceHandler);
+
+ /**
+ * Two phase constructor
+ *
+ * @since S60 9.1
+ * @param aRuntime Runtime
+ * @param aEntry Java Registry Suite Entry. Ownership taken.
+ * @param aFs Handle to a file server session
+ * @return instance
+ */
+ static CAppMngr2MidletAppInfo* NewLC(CAppMngr2Runtime& aRuntime,
+ Java::CJavaRegistryPackageEntry* aEntry,
+ RFs& aFs,
+ CAppMngr2MidletResourceHandler& aResourceHandler);
+ /**
+ * Destructor
+ *
+ * @since S60 9.1
+ */
+ ~CAppMngr2MidletAppInfo();
+
+public: // from CAppMngr2InfoBase
+
+ /**
+ * Icon index for the installed application or installation package.
+ * Returns icon index referring to the icon array loaded in function
+ * CAppMngr2Runtime::LoadIconsL(). If an item has a specific icon that
+ * no other items use, return EAppMngr2UseSpecificIcon and load the
+ * specific icon via CAppMngr2InfoBase::SpecificIconL().
+ * @return TInt Index to the icon array
+ */
+ TInt IconIndex() const;
+
+ /**
+ * Specific icon for the installed application or installation package.
+ * CAppMngr2InfoBase::IconIndex() must return EAppMngr2UseSpecificIcon
+ * to get CAppMngr2InfoBase::SpecificIconL() called. If the same icon is
+ * used by many items, load it in CAppMngr2Runtime::LoadIconsL() and
+ * use CAppMngr2InfoBase::IconIndex() to return icon indexes. This is
+ * more efficient than loading the same icon bitmap many times.
+ * @return CGulIcon Item specific icon
+ */
+ CGulIcon* SpecificIconL() const;
+
+ /**
+ * Name of the list item, first line
+ * @return const TDesC& Displayable name
+ */
+ const TDesC& Name() const;
+
+ /**
+ * Additional info, second line (usually size)
+ * @returns const TDesC& Displayable additional information line
+ */
+ const TDesC& Details() const;
+
+ /**
+ * Indicator icon index. Returns indexes to the icon array returned by
+ * CAppMngr2Runtime::LoadIconsL(). Also default icon indexes defined in
+ * AppMngr2Common.hrh (TAppMngr2IconIndex) can be used. Return
+ * EAppMngr2NoIndicatorIcon if no indicator icon should be displayed, or
+ * EAppMngr2UseSpecificIcon if item specific indicator icon is returned
+ * via CAppMngr2InfoBase::SpecificIndicatorIconL().
+ * @return TInt Index to the icon array, or default icon number
+ */
+ TInt IndicatorIconIndex() const;
+
+ /**
+ * Defines item specific menu items.
+ * Empty default implementation is used, if plug-in does not override it.
+ * Menu commands are run via CAppMngr2InfoBase::HandleCommandL()
+ * @param aMenuCmds Array where plug-in specific menu items are added
+ */
+ void GetMenuItemsL(RPointerArray<CEikMenuPaneItem::SData>& aMenuCmds);
+
+ /**
+ * Can be used to enable generic menu commands. Generic menu commands are
+ * defined in TAppMngr2GenericCommands enum in AppMngr2Common.hrh. Generic
+ * commands are hidden from the menu if the currently selected item does not
+ * support them. Return ETrue for those command ids that are supported by
+ * this item.
+ * @param aCmdId Generic command id
+ * @return TBool ETrue if command aCmdId is supported
+ */
+ TBool SupportsGenericCommand(TInt aCmdId);
+
+ /**
+ * Starts user invoked commands asynchronously. Command id may be a generic
+ * command id or a plug-in specific command id. Generic command ids are defined
+ * inAppMngr2Common.hrh (see TAppMngr2GenericCommand enum). Plug-in specific
+ * commands are defined via functions CAppMngr2InfoBase::GetMenuItemsL() and
+ * CAppMngr2InfoBase::GetMiddleSoftkeyCommandL(). If the command is synchronous,
+ * the plug-in must complete the aStatus by calling User::RequestComplete().
+ * @param aCommandId Command id to be run
+ * @param aStatus Active object request status
+ */
+ void HandleCommandL(TInt aCommandId, TRequestStatus& aStatus);
+
+ /**
+ * If CAppMngr2InfoBase::HandleCommandL() started an asynchronous operation,
+ * this function is called when the operation completes.
+ * @param aStatus Completion code, KErrNone or some error code
+ */
+ void HandleCommandResultL(TInt aStatus);
+
+ /**
+ * Cancels asynchronously started HandleCommandL() command. This function
+ * may be called any time when an asynchronous command is running and it
+ * must cancel the running command as quickly as possible.
+ */
+ void CancelCommand();
+
+public: // from MDownloadContentHandler
+ /**
+ * Handle downloaded content that has been saved to a file,
+ * and return ETrue if it was handled successfully.
+ *
+ * @since S60 9.1
+ * @param aFileName File name with path.
+ * @param aParamList Generic parameter list.
+ * @param aContinue Output parameter: It must be ETrue if the caller wants
+ * Browser not to terminate after the content is handled.
+ * @return ETrue if the implementer has processed the content. If it is
+ * EFalse, BrowserLauncher opens that content in an
+ * appropriate viewer application.
+ */
+ TBool HandleContentL(const TDesC& aFileName,
+ const CAiwGenericParamList& aParamList,
+ TBool& aContinue);
+
+ /**
+ * From MDownloadContentHandler for browser integration
+ * @since S60 9.1
+ // reserved for future use
+ */
+ TAny* DownloadedContentHandlerReserved1(TAny* /*aAnyParam*/);
+
+public: // from MAppMngr2MidletInfo
+ /**
+ * Path to jar file
+ *
+ * @since S60 9.1
+ * @return Path to jar file
+ */
+ const TDesC& JarFileName() const;
+
+ /**
+ * Path to jad file
+ *
+ * @since S60 9.1
+ * @return Path to jad file
+ */
+ const TDesC& JadFileName() const;
+
+ /**
+ * Installed application MIME type
+ *
+ * @since S60 9.1
+ * @return Application MIME type
+ */
+ const TDesC8& MimeType() const;
+
+
+public: // new functions
+ /**
+ * Installed application version
+ *
+ * @since S60 9.1
+ * @return Application version
+ */
+ const TDesC& Version() const;
+
+ /**
+ * Installed application vendor
+ *
+ * @since S60 9.1
+ * @return Application vendor
+ */
+ const TDesC& Vendor() const;
+
+ /**
+ * Security domain category
+ *
+ * @since S60 9.1
+ * @return Application security domain category
+ */
+ const std::wstring SecurityDomainCategory() const;
+
+ /**
+ * Security domain name
+ *
+ * @since S60 9.1
+ * @return Application security domain name
+ */
+ const std::wstring SecurityDomainName() const;
+
+ /**
+ * Installed application data size
+ *
+ * @since S60 9.1
+ * @return Application data size
+ */
+ const TDesC& DataSize() const;
+
+ /**
+ * Installed application description
+ *
+ * @since S60 9.1
+ * @return Application description
+ */
+ const TDesC& Description() const;
+
+ /**
+ * Installed application info URL
+ *
+ * @since S60 9.1
+ * @return Application info URL
+ */
+ const TDesC& InfoUrl() const;
+
+ /**
+ * Installed application update URL
+ *
+ * @since S60 9.1
+ * @return Application update URL
+ */
+ const TDesC& UpdateUrl() const;
+
+ /**
+ * Installed application content
+ *
+ * @since S60 9.1
+ * @return Application content
+ */
+ const TDesC& Content() const;
+
+ /**
+ * Installed application requested mandatory permissions
+ *
+ * @since S60 9.2
+ * @return Permissions
+ */
+ const TDesC& Permissions() const;
+
+protected: // new functions
+
+ /**
+ * Constructor
+ *
+ * @since S60 9.1
+ * @param aRuntime Runtime
+ * @param aFs Handle to a file server session
+ */
+ CAppMngr2MidletAppInfo(CAppMngr2Runtime& aRuntime, RFs& aFsSession, CAppMngr2MidletResourceHandler& aResourceHandler);
+
+ /**
+ * Second phase constructor
+ *
+ * @since S60 9.1
+ * @param aEntry Java Registry Suite Entry
+ */
+ void ConstructL(Java::CJavaRegistryPackageEntry* aEntry);
+
+private: // new functions
+
+ /**
+ * Uninstalls MIDlet suite package
+ *
+ * @since S60 9.1
+ * @param aStatus The request status. KErrNone on completion,
+ * otherwise another of the system-wide error codes.
+ */
+ void UninstallL(TRequestStatus& aStatus);
+
+ /**
+ * Show installed MIDlet suite details
+ *
+ * @since S60 9.1
+ */
+ void ShowDetailsL();
+
+ /**
+ * Show installed MIDlet suite settings
+ *
+ * @since S60 9.1
+ */
+ void ShowSettingsL();
+
+ /**
+ * Send MIDlet suite installation package
+ *
+ * @since S60 9.1
+ */
+ void SendL();
+
+ /**
+ * Start update process
+ *
+ * @since S60 9.1
+ */
+ void UpdateL();
+
+ /**
+ * Starts the browser with midlet's MIDLET-Info-URL parameter
+ *
+ * @since S60 9.1
+ */
+ void ShowInfoUrlL();
+
+ /**
+ * Return Info Iterator
+ *
+ * @since S60 9.1
+ * @return Info iterator object
+ */
+ CAppMngr2MidletInfoIterator& InfoIteratorL();
+
+ /**
+ * Reads MIDlet suite certificates info
+ *
+ * @since S60 9.1
+ */
+ void ReadCertificatesInfoL();
+
+
+private: // data
+
+ /**
+ * MIDlet suite entry.
+ */
+ Java::CJavaRegistryPackageEntry* iEntry;
+
+ /**
+ * MIDlet suite jar file path
+ * Owned
+ */
+ HBufC* iJarPath;
+
+ /**
+ * MIDlet suite jad file path
+ * Owned
+ */
+ HBufC* iJadPath;
+
+ /**
+ * MIDlet suite details
+ * Owned
+ */
+ HBufC* iDetails;
+
+ /**
+ * MIDlet suite version
+ * Owned
+ */
+ HBufC* iVersion;
+
+ /**
+ * MIDlet suite MIME type
+ * Owned
+ */
+ HBufC8* iMimeType;
+
+ /**
+ * MIDlet suite data size
+ * Owned
+ */
+ HBufC* iDataSize;
+
+ /**
+ * MIDlet suite description
+ * Owned
+ */
+ HBufC* iDescription;
+
+ /**
+ * MIDlet suite info URL
+ * Owned
+ */
+ HBufC* iInfoUrl;
+
+ /**
+ * MIDlet suite update URL
+ * Owned
+ */
+ HBufC* iUpdateUrl;
+
+ /**
+ * Localized MIDlet suite name
+ * Owned
+ */
+ HBufC* iLocalizedMIDletName;
+
+ /**
+ * MIDlet suite content
+ * Owned
+ */
+ HBufC* iContent;
+
+ /**
+ * MIDlet suite mandatory permissions
+ * Owned
+ */
+ HBufC* iPermissions;
+
+ /**
+ * MIDlet suite bitmap
+ * Owned
+ */
+ CFbsBitmap* iAppBitmap;
+
+ /**
+ * MIDlet suite bitmap mask
+ * Owned
+ */
+ CFbsBitmap* iAppMask;
+
+ /**
+ * MIDlet suite security domain category
+ * Owned
+ */
+ std::wstring iSecurityDomainCategory;
+
+ /**
+ * MIDlet suite security domain name
+ * Owned
+ */
+ std::wstring iSecurityDomainName;
+
+ /**
+ * Installer launcher
+ * Owned
+ */
+ SwiUI::RSWInstLauncher* iSWInstLauncher;
+
+ /**
+ * Info iterator
+ * Owned
+ */
+ CAppMngr2MidletInfoIterator* iInfoIterator;
+
+ /**
+ * Is DRM protected
+ */
+ TBool iIsDRMProtected;
+
+ /**
+ * Is DRM right object missing or expired
+ */
+ TBool iIsROMissingOrExpired;
+
+ /**
+ * Certificates info
+ * Owned
+ */
+ RPointerArray<SwiUI::CommonUI::CCUICertificateInfo> iCertificates;
+
+ /**
+ * Certificates has been already read
+ */
+ TBool iCertsRead;
+ CAppMngr2MidletResourceHandler& iResourceHandler;
+};
+
+#endif // APPMNGR2MIDLETAPPINFO_H
+