appinstaller/AppMngr2/Sisx/inc/appmngr2sisxappinfo.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 15 Jul 2010 18:47:04 +0300
branchRCL_3
changeset 23 cd189dac02f7
parent 0 ba25891c3a9e
child 25 7333d7932ef7
permissions -rw-r--r--
Revision: 201025 Kit: 2010127

/*
* Copyright (c) 2002-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:   SisxAppInfo represents installed native/SISX applications
*
*/


#ifndef C_APPMNGR2SISXAPPINFO_H
#define C_APPMNGR2SISXAPPINFO_H

#include <appmngr2appinfo.h>            // CAppMngr2AppInfo
#include <swi/sisregistryentry.h>       // RSisRegistryEntry
#include <SWInstApi.h>                  // SwiUI::RSWInstLauncher
#include <CUIDetailsDialog.h>           // SwiUI::CommonUI::CCUICertificateInfo
#include <f32file.h>                    // TDriveUnit
#include <swi/sisregistrysession.h>     // RSisRegistrySession


class CAppMngr2SisxAppInfo : public CAppMngr2AppInfo
    {
public:     // constructor and destructor
    static CAppMngr2SisxAppInfo* NewL( CAppMngr2Runtime& aRuntime,
            Swi::RSisRegistryEntry& aEntry, RFs& aFsSession );
    ~CAppMngr2SisxAppInfo();

public:     // from CAppMngr2InfoBase
    TInt IconIndex() const;
    const TDesC& Name() const;
    const TDesC& Details() const;
    TBool SupportsGenericCommand( TInt aCmdId );
    void HandleCommandL( TInt aCommandId, TRequestStatus& aStatus );
    void HandleCommandResultL( TInt aStatus );
    void CancelCommand();

public:     // new functions
    TVersion Version() const;
    const TDesC& Vendor() const;
    TBool IsTrusted() const;

protected:  // new functions
    CAppMngr2SisxAppInfo( CAppMngr2Runtime& aRuntime, RFs& aFsSession );
    void ConstructL( Swi::RSisRegistryEntry& aEntry );

private:    // new functions
    void ShowDetailsL();
    void ReadCertificatesL();
    void HandleUninstallL( TRequestStatus& aStatus );
    void CheckDRMContentL();
    
private:    // data
    TUid iAppUid;
    HBufC* iName;
    HBufC* iDetails;
    TVersion iVersion;
    HBufC* iVendor;
    TBool iIsAugmentation;
    TInt iAugmentationIndex;
    TBool iIsTrusted;
    TBool iIsDRMProtected;
    TBool iIsRightsObjectMissingOrExpired;
    HBufC* iProtectedFile;
    SwiUI::RSWInstLauncher* iSWInstLauncher;
    HBufC8* iSWInstLauncherCustomUninstallParams;
    RPointerArray<SwiUI::CommonUI::CCUICertificateInfo> iCertificates;
    TBool iCertsRead;
    TInt iCommandId;
    TBool iRegSessionOpen;
    Swi::RSisRegistrySession iSisRegSession;
    };

#endif // C_APPMNGR2SISXAPPINFO_H