Revision: 201017
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 14 May 2010 16:07:34 +0300
changeset 31 908beac81e0a
parent 29 3bdc3b853094
child 34 7f8fbd0317cc
child 38 9dfde139acda
child 44 d642c9180c54
Revision: 201017 Kit: 201019
commondrm/drmsettingsplugin/data/102750CC.rss
commondrm/drmsettingsplugin/data/drmsettingspluginrsc.rss
commondrm/drmsettingsplugin/group/drmsettingsplugin.mmp
commondrm/drmsettingsplugin/inc/drmsettingsmodel.h
commondrm/drmsettingsplugin/inc/drmsettingsplugin.h
commondrm/drmsettingsplugin/inc/drmsettingsplugin.hrh
commondrm/drmsettingsplugin/inc/drmsettingsplugin.rh
commondrm/drmsettingsplugin/inc/drmsettingsplugincontainer.h
commondrm/drmsettingsplugin/inc/drmsettingsusagecheckbox.h
commondrm/drmsettingsplugin/inc/drmsettingsusagelist.h
commondrm/drmsettingsplugin/src/drmsettingsmodel.cpp
commondrm/drmsettingsplugin/src/drmsettingsplugin.cpp
commondrm/drmsettingsplugin/src/drmsettingsplugincontainer.cpp
commondrm/drmsettingsplugin/src/drmsettingspluginimplementationtable.cpp
commondrm/drmsettingsplugin/src/drmsettingsusagecheckbox.cpp
commondrm/drmsettingsplugin/src/drmsettingsusagelist.cpp
commondrm/group/bld.inf
commondrm/rom/drmsettingsplugin.iby
commondrm/rom/drmsettingspluginresources.iby
drm_plat/dcf_repository_api/inc/DcfRep.h
drm_plat/drm_common_api/inc/DRMCommon.h
drm_plat/drm_common_api/tsrc/data/mmc/DRM/content.dcf
drm_plat/drm_rights_api/inc/DcfCommon.h
drm_plat/drm_rights_api/tsrc/data/c/content.dcf
drm_plat/drm_service_api/inc/drmserviceapi.h
drm_pub/oma_drm_caf_agent_api/tsrc/bc/DRM_CAF/data/content.dcf
inc/DrmKeyStorage.h
omadrm/drmengine/agentv2/src/Oma2AgentAttributes.cpp
omadrm/drmengine/agentv2/src/Oma2AgentContent.cpp
omadrm/drmengine/drmclock/Inc/GPSTimeUpdater.h
omadrm/drmengine/drmclock/Inc/GPSWatcher.h
omadrm/drmengine/drmclock/Src/GPSTimeUpdater.cpp
omadrm/drmengine/drmclock/Src/GPSWatcher.cpp
omadrm/drmengine/group/RightsServer.mmp
omadrm/drmengine/legacy/src/drmcommon.rss
omadrm/drmhelper/src/drmhelper.cpp
omadrm/drmplugins/drmfilter/src/HTTPFilterDRM.cpp
--- a/commondrm/drmsettingsplugin/data/102750CC.rss	Mon May 03 12:46:34 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
-* Copyright (c) 2006-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:  ECOM plugin resource file for DRMSettingsPlugin.
-*
-*/
-
-#include <ecom/registryinfo.rh>
-
-
-RESOURCE REGISTRY_INFO theInfo
-	{
-	dll_uid     = 0x102750CC;
-	interfaces  = 
-		{
-		INTERFACE_INFO
-			{
-			interface_uid   = 0x10207236; // UID for CGSPluginInterface
-			implementations = 
-				{ 
-				IMPLEMENTATION_INFO
-					{
-					implementation_uid  = 0x102750CD;
-					version_no          = 1;
-					display_name        = "DRM Settings Plugin";
-					default_data        = "0x1020743A";
-					opaque_data         = "2";//Order number
-					}
-				};
-			}
-		};
-	}
-
-
-// End of File
-
--- a/commondrm/drmsettingsplugin/data/drmsettingspluginrsc.rss	Mon May 03 12:46:34 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,512 +0,0 @@
-/*
-* Copyright (c) 2006 - 2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Resource file for DRMSettinsPlugin
-*
-*/
-
-
-
-//  RESOURCE IDENTIFIER
-NAME    DRMS // 4 letter ID
-
-//  INCLUDES
-#include    <eikon.rh>
-#include    <uikon.rh>
-#include    <avkon.rsg>
-#include    <avkon.rh>
-#include    <avkon.mbg>
-#include    <EIKCORE.rsg>
-#include    <eikon.rsg>
-#include    <appinfo.rh>
-#include    <avkon.loc>
-#include    <AvkonIcons.hrh>
-#include    <data_caging_paths_strings.hrh>
-#include    <gs.loc>
-#include    <drmsettingsplugin.loc>
-
-#include    "drmsettingsplugin.hrh"
-#include    "drmsettingsplugin.rh"
-
-
-// CONSTANTS
-
-//  RESOURCE DEFINITIONS
-
-RESOURCE RSS_SIGNATURE
-    {
-    }
-
-
-RESOURCE TBUF
-    {
-    buf="DRMS";
-    }
-
-//----------------------------------------------------
-//
-//    EIK_APP_INFO
-//    It contains application information.
-//
-//----------------------------------------------------
-//
-RESOURCE EIK_APP_INFO
-    {
-    }
-
-
-
-//----------------------------------------------------
-//  r_drm_settings_view_caption
-//
-// Caption for DRM Settings plugin
-//----------------------------------------------------
-//
-RESOURCE TBUF r_drm_settings_view_caption
-    {
-    buf = qtn_set_protected_content;
-    }
-
-
-//----------------------------------------------------
-//
-//    r_drm_settings_view_title
-//    Title of DRM Settings view
-//
-//----------------------------------------------------
-//
-RESOURCE TITLE_PANE r_drm_settings_view_title
-    {
-    txt = qtn_set_protected_content;
-    }
-
-
-//----------------------------------------------------
-//
-//    r_drm_softkeys_options_back_change
-//    Text association with MSK ( CHANGE )
-//
-//----------------------------------------------------
-//
-RESOURCE CBA r_drm_softkeys_options_back_change
-    {
-    buttons =
-        {
-        CBA_BUTTON
-            {
-            id=EAknSoftkeyOptions;
-            txt = text_softkey_option;
-            },
-        CBA_BUTTON
-            {
-            id=EAknSoftkeyBack;
-            txt = text_softkey_back;
-            },
-        CBA_BUTTON
-            {
-            id=EDRMSettingsCmdAppChangeMSK;
-            txt = qtn_msk_change;
-            }
-        };
-    }
-
-
-
-
-//----------------------------------------------------
-//
-//    r_drm_settings_view
-//    DRM Settings view.
-//
-//----------------------------------------------------
-//
-RESOURCE AVKON_VIEW r_drm_settings_view
-    {
-    menubar = r_drm_settings_menubar_change_exit;
-    cba = r_drm_softkeys_options_back_change;
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// r_drm_settings_menubar_change_exit
-// Menu with 'change' and 'exit' items.
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE MENU_BAR r_drm_settings_menubar_change_exit
-    {
-    titles =
-        {
-        MENU_TITLE
-            {
-            menu_pane = r_drm_settings_menu_item_exit;
-            },
-        MENU_TITLE
-            {
-            menu_pane = r_drm_settings_menu_item_change;
-            }
-        };
-    }
-
-
-    // -----------------------------------------------------------------------------
-    //
-    // r_drm_settings_menu_item_exit
-    // Options menu items 'Help' and 'Exit'. Used instead of plain 'Exit' when help
-    // is wanted to be shown in UI.
-    //
-    // -----------------------------------------------------------------------------
-    //
-    RESOURCE MENU_PANE r_drm_settings_menu_item_exit
-        {
-        items =
-            {
-            MENU_ITEM
-                {
-                command = EAknCmdHelp;
-                txt = qtn_options_help;
-                },
-            MENU_ITEM
-                {
-                command = EAknCmdExit;
-                txt = qtn_options_exit;
-                }
-            };
-        }
-
-
-// -----------------------------------------------------------------------------
-//
-// r_drm_settings_menu_item_change
-// Change item.
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE MENU_PANE r_drm_settings_menu_item_change
-    {
-    items =
-        {
-        MENU_ITEM
-            {
-            command = EDRMSettingsCmdAppChange;
-            txt = qtn_set_options_change;
-            flags = EEikMenuItemAction;
-            }
-        };
-    }
-
-
-//----------------------------------------------------
-//
-//    r_drm_settings_lbx
-//    DRM Settings view's listbox.
-//
-//----------------------------------------------------
-//
-RESOURCE DRM_SETTINGS_FEATURE_ARRAY r_drm_settings_lbx
-    {
-    items =
-        {
-#ifdef __DRM_OMA2
-#ifdef RD_DRM_SILENT_RIGHTS_ACQUISITION
-        DRM_SETTINGS_FEATURE
-            {
-            txt = " \t"qtn_set_automatic_activation"\t\t";
-            item = EDRMSettingsIdAutomaticActivation;
-            },
-#endif // RD_DRM_SILENT_RIGHTS_ACQUISITION
-
-#ifdef RD_DRM_METERING
-        DRM_SETTINGS_FEATURE
-            {
-            txt = " \t"qtn_drm_set_usage_reporting"\t\t";
-            item = EDRMSettingsIdUsageReporting;
-            },
-#endif // RD_DRM_METERING
-
-        DRM_SETTINGS_FEATURE
-            {
-            txt = " \t"qtn_set_transaction_tracking"\t\t";
-            item = EDRMSettingsIdTransactionTracking;
-            },
-#endif // __DRM_OMA2
-
-        DRM_SETTINGS_FEATURE
-            {
-            txt = " \t"qtn_drm_set_license_deletion"\t\t";
-            item = EDRMSettingsIdWMDRMLicenseDeletion;
-            }
-        };
-    }
-
-
-//----------------------------------------------------
-//
-//    r_drm_settings_setting_listbox
-//    Common listbox editor resource for setting pages.
-//
-//----------------------------------------------------
-//
-RESOURCE LISTBOX r_drm_settings_setting_listbox
-    {
-    flags = EEikListBoxMultipleSelection;
-    }
-
-
-//----------------------------------------------------
-//
-//    r_ttracking_setting_page
-//    Transaction tracking setting page.
-//
-//----------------------------------------------------
-//
-RESOURCE AVKON_SETTING_PAGE r_ttracking_setting_page
-    {
-    number = EAknSettingPageNoOrdinalDisplayed;
-    label = qtn_drm_set_popup_trans_track;
-    softkey_resource = R_AVKON_SOFTKEYS_OK_CANCEL__OK;
-    type = EAknSetListBox;
-    editor_resource_id = r_drm_settings_setting_listbox;
-    }
-
-
-//----------------------------------------------------
-//
-//    r_ttracking_setting_page_lbx
-//    Transaction tracking setting page's listbox.
-//
-//----------------------------------------------------
-//
-RESOURCE ARRAY r_ttracking_setting_page_lbx
-    {
-    items =
-        {
-        LBUF
-            {
-            txt = qtn_set_transact_tracking_on;
-            },
-        LBUF
-            {
-            txt = qtn_set_transact_tracking_off;
-            }
-        };
-    }
-
-
-//----------------------------------------------------
-//  r_drm_settings_ttracking_on
-//
-// DRM Settings text for Transaction tracking "On"
-//----------------------------------------------------
-//
-RESOURCE TBUF r_drm_settings_ttracking_on
-    {
-    buf = qtn_set_transact_tracking_on;
-    }
-
-
-//----------------------------------------------------
-//  r_drm_settings_ttracking_off
-//
-// DRM Settings text for Transaction tracking "Off"
-//----------------------------------------------------
-//
-RESOURCE TBUF r_drm_settings_ttracking_off
-    {
-    buf = qtn_set_transact_tracking_off;
-    }
-
-
-//----------------------------------------------------
-//
-//    r_autom_activ_setting_page
-//    Automatic activation setting page.
-//
-//----------------------------------------------------
-//
-RESOURCE AVKON_SETTING_PAGE r_autom_activ_setting_page
-    {
-    number = EAknSettingPageNoOrdinalDisplayed;
-    label = qtn_drm_set_popup_autom_activat;
-    softkey_resource = R_AVKON_SOFTKEYS_OK_CANCEL__OK;
-    type = EAknSetListBox;
-    editor_resource_id = r_drm_settings_setting_listbox;
-    }
-
-
-//----------------------------------------------------
-//
-//    r_autom_activ_setting_page_lbx
-//    Automatic activation setting page's listbox.
-//
-//----------------------------------------------------
-//
-RESOURCE ARRAY r_autom_activ_setting_page_lbx
-    {
-    items =
-        {
-        LBUF
-            {
-            txt = qtn_set_automat_act_allowed;
-            },
-        LBUF
-            {
-            txt = qtn_set_automat_act_not_allowed;
-            }
-        };
-    }
-
-
-//----------------------------------------------------
-//  r_drm_settings_autom_activ_on
-//
-// DRM Settings text for Automatic activation "Allowed"
-//----------------------------------------------------
-//
-RESOURCE TBUF r_drm_settings_autom_activ_on
-    {
-    buf = qtn_set_automat_act_allowed;
-    }
-
-
-//----------------------------------------------------
-//  r_drm_settings_autom_activ_off
-//
-// DRM Settings text for Automatic activation "Not allowed"
-//----------------------------------------------------
-//
-RESOURCE TBUF r_drm_settings_autom_activ_off
-    {
-    buf = qtn_set_automat_act_not_allowed;
-    }
-
-// ---------------------------------------------------------
-//
-//      r_drm_settings_metering_checkbox_page
-//      Used in checkbox list.
-//
-// ---------------------------------------------------------
-//
-RESOURCE AVKON_SETTING_PAGE r_drm_settings_metering_checkbox_page
-    {
-    number = EAknSettingPageNoOrdinalDisplayed;
-    label = qtn_drm_set_popup_usage_report;
-    softkey_resource = R_AVKON_SOFTKEYS_OK_CANCEL__MARK;
-    type =  EAknSetListBox;
-    editor_resource_id = r_drm_settings_metering_checkbox_list;
-    invalid_contents_softkey_resource = R_AVKON_SOFTKEYS_CANCEL;
-    }
-
-// ---------------------------------------------------------
-//
-//      r_drm_settings_metering_checkbox_list
-//      Used in checkbox list.
-//
-// ---------------------------------------------------------
-//
-RESOURCE AVKON_MULTISELECTION_LIST r_drm_settings_metering_checkbox_list
-    {
-    }
-
-//------------------------------------------------------------------------------
-//
-//    r_usage_reporting_list_title
-//    Title text for usage reporting listbox
-//
-//------------------------------------------------------------------------------
-//
-RESOURCE TBUF r_usage_reporting_list_title
-    {
-    buf=qtn_drm_set_popup_usage_report;
-    }
-
-
-//------------------------------------------------------------------------------
-//
-//    r_usage_reporting_list_empty
-//    Empty text for usage reporting listbox
-//
-//------------------------------------------------------------------------------
-//
-RESOURCE TBUF r_usage_reporting_list_empty
-    {
-    buf=qtn_drm_set_pane_no_providers;
-    }
-
-
-//------------------------------------------------------------------------------
-//
-//    r_drm_set_several_services
-//    'Several' value for 'Allow usage reporting for' field
-//
-//------------------------------------------------------------------------------
-//
-RESOURCE TBUF r_drm_set_several_services
-    {
-    buf=qtn_drm_set_several_services;
-    }
-
-
-//------------------------------------------------------------------------------
-//
-//    r_drm_set_usage_report_none
-//    'None' value for 'Allow usage reporting for' field
-//
-//------------------------------------------------------------------------------
-//
-RESOURCE TBUF r_drm_set_usage_report_none
-    {
-    buf=qtn_drm_set_usage_report_none;
-    }
-
-
-//------------------------------------------------------------------------------
-//
-//    r_drm_confirmation_query_metering
-//    Confirmation query dialog.
-//
-//------------------------------------------------------------------------------
-//
-RESOURCE DIALOG r_drm_confirmation_query_metering
-    {
-    flags=EGeneralQueryFlags;
-    buttons=R_AVKON_SOFTKEYS_YES_NO__YES;
-    items=
-        {
-        DLG_LINE
-            {
-            type=EAknCtQuery;
-            id=EGeneralQuery;
-            control= AVKON_CONFIRMATION_QUERY
-                {
-                layout = EConfirmationQueryLayout;
-                label = " ";
-                };
-            }
-        };
-    }
-
-//------------------------------------------------------------------------------
-//
-//    r_drm_conf_query_metering
-//    Confirmation query text.
-//
-//------------------------------------------------------------------------------
-//
-RESOURCE TBUF r_drm_conf_query_metering
-    {
-    buf=qtn_drm_conf_query_metering;
-    }
-
-//End of File
--- a/commondrm/drmsettingsplugin/group/drmsettingsplugin.mmp	Mon May 03 12:46:34 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-/*
-* Copyright (c) 2006-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:  Project specification file.
-*
-*/
-
-
-#include <data_caging_paths.hrh>    // For RESOURCE_FILES_DIR
-#include <platform_paths.hrh>
-
-CAPABILITY          CAP_ECOM_PLUGIN
-TARGET              drmsettingsplugin.dll
-TARGETTYPE          PLUGIN
-UID                 0x10009D8D 0x102750CC
-VENDORID            VID_DEFAULT
-
-
-SOURCEPATH      ../src
-SOURCE          drmsettingspluginimplementationtable.cpp
-SOURCE          drmsettingsplugin.cpp
-SOURCE          drmsettingsplugincontainer.cpp
-SOURCE          drmsettingsmodel.cpp
-SOURCE          drmsettingsusagecheckbox.cpp
-SOURCE          drmsettingsusagelist.cpp
-
-//User include paths
-USERINCLUDE     ../inc
-USERINCLUDE     ../data // For *.rh
-USERINCLUDE     ../../../inc   // ADo level inc dir
-USERINCLUDE     ../../../omadrm/drmengine/roapstorage/inc
-
-//System include paths
-// Default system include paths for middleware layer modules.
-// App layer include path needed for help launcher
-APP_LAYER_SYSTEMINCLUDE
-
-SOURCEPATH      ../data
-
-START RESOURCE  102750CC.rss
-TARGET          drmsettingsplugin.rsc
-END
-
-START RESOURCE  drmsettingspluginrsc.rss
-HEADER
-TARGETPATH      RESOURCE_FILES_DIR
-LANGUAGE_IDS
-END
-
-
-LIBRARY   aknskins.lib          // for enhanced skinning
-LIBRARY   aknskinsrv.lib        // for enhanced skinning
-LIBRARY   avkon.lib
-LIBRARY   bafl.lib
-LIBRARY   centralrepository.lib
-LIBRARY   commonengine.lib      // For RConeResourceLoader
-LIBRARY   cone.lib
-LIBRARY   ecom.lib
-LIBRARY   efsrv.lib
-LIBRARY   egul.lib
-LIBRARY   eikcoctl.lib
-LIBRARY   eikcore.lib
-LIBRARY   euser.lib
-LIBRARY   featmgr.lib           // Feature manager
-LIBRARY   flogger.lib           // For GSLogger
-LIBRARY   gsecomplugin.lib
-LIBRARY   gsframework.lib       // For base classes
-LIBRARY   gslistbox.lib         // For CGSListBoxItemTextArray
-LIBRARY   hlplch.lib            // for "Help" options menu
-LIBRARY   drmserverinterfaces.lib  // Roap storage
-LIBRARY   charconv.lib
-
-SMPSAFE
-// End of File
--- a/commondrm/drmsettingsplugin/inc/drmsettingsmodel.h	Mon May 03 12:46:34 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,169 +0,0 @@
-/*
-* Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  DRMSettinsPlugin model.
-*
-*/
-
-#ifndef  DRMSETTINGSMODEL_H
-#define  DRMSETTINGSMODEL_H
-
-// INCLUDES
-#include    <centralrepository.h>
-#include    <e32property.h>
-#include    "RoapStorageClient.h"
-
-// FORWARD DECLARATIONS
-class CDRMRIContext;
-
-// CONSTANTS
-const TInt KDRMTransactionTrackingDisabled = 0;
-const TInt KDRMTransactionTrackingEnabled = 1;
-
-const TInt KDRMAutomaticActivationNotAllowed = 0;
-const TInt KDRMAutomaticActivationAllowed = 1;
-
-
-// CLASS DEFINITIONS
-
-/**
-*  CDRMSettingsModel is the model class of DRMSettingsPlugin.
-*  It provides functions to get and set setting values.
-*/
-class   CDRMSettingsModel : public CBase
-    {
-
-    public:  // Constructor and destructor
-        /**
-        * Two-phased constructor
-        */
-        static CDRMSettingsModel* NewL();
-
-        /**
-        * Destructor
-        */
-        ~CDRMSettingsModel();
-
-    public: // New
-
-        /**
-        * Get transaction tracking state
-        * @return KDRMTransactionTrackingDisabled
-        *         KDRMTransactionTrackingEnabled
-        */
-        TInt TransactionTrackingStateL();
-
-        /**
-        * Set transaction tracking state
-        * @param aValue updated value
-        */
-        void SetTransactionTrackingStateL( TInt aValue );
-
-        /**
-        * Get automatic activation state
-        * @return KDRMAutomaticActivationNotAllowed
-        *         KDRMAutomaticActivationAllowed
-        */
-        TInt AutomaticActivationStateL();
-
-        /**
-        * Set automatic activation state
-        * @param aValue updated value
-        */
-        void SetAutomaticActivationStateL( TInt aValue );
-
-        /**
-        * Get usage reporting state
-        * @return count of services for which reporting is allowed
-        */
-        TInt UsageReportingCount();
-
-        /**
-        * Get RI alias
-        *
-        * @param aIndex : Index of the RI context
-        *
-        * @return RI alias name or RI url if no alias available
-        */
-        HBufC* GetSingleRIAliasL( TInt aIndex );
-
-        /**
-        * Get the first RI alias, where metering is allowed
-        * @return RI alias name or RI url if no alias available
-        */
-        HBufC* GetFirstAllowedMeteringRIAliasL();
-
-        /**
-        * Get number of RI contexts
-        * @return number of RIContexts
-        */
-        TInt GetRiContextCount();
-
-        /**
-        * Get metering status of RI Context
-        *
-        * @param aIndex : Index of the RI context
-        *
-        * @return Status of metering
-        */
-        TBool IsMeteringAllowed( TInt aIndex );
-
-        /**
-        * Find out if metering is allowed for all RI Contexts
-        *
-        * @return Status of metering
-        */
-        TBool IsMeteringAllowedForAll();
-
-        /**
-        * Sets the value for metering to be enabled or disabled
-        *
-        * @param aIndex : Index of the RI context
-        * @param aIsAllowed : ETrue if set to allowed, EFalse if not allowed
-        */
-        void SetMeteringStatus( TInt aIndex, TBool aIsAllowed );
-
-        /**
-        * Save the changes done to RI Contexs
-        */
-        void SaveMeteringChanges();
-
-    private: // Private constructors
-
-        /**
-        * Default C++ contructor
-        */
-        CDRMSettingsModel();
-
-        /**
-        * Symbian OS default constructor
-        * @return void
-        */
-        void ConstructL();
-
-    private: // Data
-
-        // DRM Settings Central Repository.
-        CRepository* iDRMSettingsRepository;
-
-        // Roap storage client
-        Roap::RRoapStorageClient* iRoapStorageClient;
-
-        // List of service providers with which device has been registered
-        RPointerArray<CDRMRIContext> iRIContextList;
-
-    };
-
-#endif // DRMSETTINGSMODEL_H
-
-// End of File
--- a/commondrm/drmsettingsplugin/inc/drmsettingsplugin.h	Mon May 03 12:46:34 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,189 +0,0 @@
-/*
-* Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  View for DRMSettingsPlugin.
-*
-*/
-
-
-#ifndef DRMSETTINGSPLUGIN_H
-#define DRMSETTINGSPLUGIN_H
-
-// INCLUDES
-#include <aknsettingpage.h>
-#include <ConeResLoader.h>
-#include <gsplugininterface.h>
-#include <gsfwviewuids.h>
-#include <gsbaseview.h>
-#include <eikmenup.h>
-
-#include "drmsettingsplugincontainer.h"
-
-//CONSTANTS
-const TUid KDRMSettingsPluginUid = { 0x1020750CC };
-
-// Listbox item indexes of the transcaction tracking setting items
-const TInt KDRMTTItemIndexDisabled  = 1;
-const TInt KDRMTTItemIndexEnabled   = 0;
-
-// Listbox item indexes of the automatic activation setting items
-const TInt KDRMAAItemIndexDisabled  = 1;
-const TInt KDRMAAItemIndexEnabled   = 0;
-
-// FORWARD DECLARATIONS
-class CAknViewAppUi;
-class CDRMSettingsPluginContainer;
-class CDRMSettingsModel;
-
-// CLASS DECLARATION
-
-/**
-*  CDRMSettingsPlugin view class
-*
-*  View class for DRM Settings plugin
-*/
-class CDRMSettingsPlugin : public CGSBaseView
-    {
-
-    public: // Constructors and destructor
-
-        /**
-        * Symbian OS two-phased constructor
-        * @return connection view.
-        */
-        static CDRMSettingsPlugin* NewL( TAny* aInitParams );
-
-        /**
-        * Destructor.
-        */
-        ~CDRMSettingsPlugin();
-
-    private:
-        /**
-        * Symbian OS default constructor.
-        *
-        */
-        void ConstructL();
-
-        /**
-        * C++ default constructor.
-        */
-        CDRMSettingsPlugin();
-
-    public: // from CAknView
-
-        /**
-        * Returns view id.
-        * @return An unsigned integer (view id).
-        */
-        TUid Id() const;
-
-    public: // from MEikCommandObserver
-
-        /**
-        * Handles commands.
-        * @param aCommand Command to be handled.
-        *
-        */
-        void HandleCommandL( TInt aCommand );
-
-    public: //new
-
-        /**
-        * Updates listbox's item's value.
-        * @param aItemId An item which is updated.
-        *
-        */
-        void UpdateListBoxL( TInt aItemId );
-
-    public: // From CGSPluginInterface
-
-        /**
-        * @see CGSPluginInterface header file.
-        */
-        void GetCaptionL( TDes& aCaption ) const;
-
-        /**
-        * @see CGSPluginInterface header file.
-        */
-        TInt PluginProviderCategory() const;
-
-        /**
-        * @see CGSPluginInterface header file.
-        */
-        TBool Visible() const;
-
-    private: // from CGSBaseView
-        //
-        void NewContainerL();
-        //
-        void HandleListBoxSelectionL();
-
-    private: // new
-
-        /**
-        * Update transaction tracking setting
-        */
-        void UpdateTransactionTrackingSettingL( TBool aShowSettingPage );
-
-        /**
-        * Update automatic activation setting
-        */
-        void UpdateAutomaticActivationSettingL( TBool aShowSettingPage );
-
-        /**
-        * Update usage reporting setting
-        */
-        void UpdateUsageReportingSettingL();
-
-        /**
-        * Delete WMDRM license store
-        */
-        void DoWMDRMLicenseDeletionL();
-
-        /**
-        * Display setting page
-        * @param aTTState Current state. This will be updated.
-        * @return ETrue if value is updated.
-        *         EFalse if value is not updated.
-        */
-        TBool ShowTransactionTrackingSettingPageL( TInt& aTTState );
-
-        /**
-        * Display setting page
-        * @param aAAState Current state. This will be updated.
-        * @return ETrue if value is updated.
-        *         EFalse if value is not updated.
-        */
-        TBool ShowAutomaticActivationSettingPageL( TInt& aAAState );
-
-        /**
-        * Get DRMSettingsPlugin's ccontainer.
-        */
-        CDRMSettingsPluginContainer* Container();
-
-    protected: // From MEikMenuObserver
-
-        void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
-
-    private: // data
-        //resource loader
-        RConeResourceLoader iResourceLoader;
-
-        TBool iWmdrmSupported;
-    };
-
-#endif //DRMSETTINGSPLUGIN_H
-
-// End of File
-
--- a/commondrm/drmsettingsplugin/inc/drmsettingsplugin.hrh	Mon May 03 12:46:34 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
-* Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Contains common definitions for menu id:s
-*
-*/
-
-
-#ifndef DRMSETTINGSPLUGIN_HRH
-#define DRMSETTINGSPLUGIN_HRH
-
-   
-enum TSettingId
-    {
-    EDRMSettingsIdAutomaticActivation,
-    EDRMSettingsIdUsageReporting,
-    EDRMSettingsIdTransactionTracking,
-    EDRMSettingsIdWMDRMLicenseDeletion
-    };
-
-enum TMenuCmd
-    {
-    EDRMSettingsCmdAppChange = 1,
-    EDRMSettingsCmdAppChangeMSK 
-    };
-
-enum TListBoxItemVisibility
-    {
-    EDRMSettingsListBoxItemTypeIsAlwaysVisible = 0,
-    EDRMSettingsListBoxItemTypeIsDynamic
-    };
-
-#endif //  DRMSETTINGSPLUGIN_HRH
-
-//End of File
-
--- a/commondrm/drmsettingsplugin/inc/drmsettingsplugin.rh	Mon May 03 12:46:34 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/*
-* Copyright (c) 2006 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:  Contains common declarations for resources.
-*                 The file can be included only in resource file.
-*
-*/
-
-#ifndef DRMSETTINGSPLUGIN_RH
-#define DRMSETTINGSPLUGIN_RH
-
-
-// Global definitions
-
-
-// ---------------------------------------------------------
-//    drm_settings_feature_array
-//    Defines a structure to contain information about items 
-//    to be able to included in the listbox.
-// ---------------------------------------------------------
-//
-STRUCT DRM_SETTINGS_FEATURE_ARRAY
-    {
-    STRUCT items[];
-    }
-
-// ---------------------------------------------------------
-//    drm_settings_feature
-//    Defines a structure that contains information about 
-//    a single listbox item.
-// ---------------------------------------------------------
-//
-STRUCT DRM_SETTINGS_FEATURE
-    {
-    LTEXT txt = "";    
-    WORD item = -1;
-    BYTE type = EDRMSettingsListBoxItemTypeIsAlwaysVisible;
-    }
-
-#endif // DRMSETTINGSPLUGIN_RH
-// End of File
--- a/commondrm/drmsettingsplugin/inc/drmsettingsplugincontainer.h	Mon May 03 12:46:34 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
-/*
-* Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Container for DRMSettinsPlugin view.
-*
-*/
-
-
-#ifndef DRMSETTINGSPLUGINCONTAINER_H
-#define DRMSETTINGSPLUGINCONTAINER_H
-
-// INCLUDES
-#include <gsbasecontainer.h>
-
-// FORWARD DECLARATIONS
-class CGSListBoxItemTextArray;
-class CDRMSettingsModel;
-
-// CLASS DECLARATION
-
-/**
-*  CDRMSettingsPluginContainer container class
-*  @since Series 60_3.1
-*
-*  Container class for DRM Settings view
-*/
-class CDRMSettingsPluginContainer : public CGSBaseContainer
-    {
-        
-    public: // Constructors and destructor
-
-        /**
-        * Symbian OS constructor.
-        * @param aRect Listbox's rect.
-        */
-        void ConstructL( const TRect& aRect );
-
-        CDRMSettingsPluginContainer( TBool aWmdrmSupported );
-        
-        /**
-        * Destructor.
-        */
-        ~CDRMSettingsPluginContainer();
-
-    public: // new
-
-        /**
-        * Updates listbox's item's value.
-        * @param aFeatureId An item which is updated.
-        */
-        void UpdateListBoxL( TInt aFeatureId );
-
-        /**
-        * Retrieves the currently selected listbox feature id
-        * @return feature id.
-        */
-        TInt CurrentFeatureId() const;
-        
-        /**
-        * @return Model for the plugin.
-        */
-        CDRMSettingsModel* Model();
-        
-    protected: // from CGSBaseContainer
-    
-        /**
-        * See base class.
-        */
-        void ConstructListBoxL( TInt aResLbxId );
-        
-    private: // new
-
-        void CreateListBoxItemsL();
-        void MakeTransactionTrackingItemL();
-        void MakeAutomaticActivationItemL();
-        void MakeUsageReportingItemL();
-        void MakeWMDRMLicenseDeletionItemL();
-
-    private:
-    
-        /**
-        * Required for help.
-        */
-        void GetHelpContext( TCoeHelpContext& aContext ) const;
-
-    private: // data
-
-        // GS listbox item array
-        CGSListBoxItemTextArray* iListboxItemArray;
-        
-        // Model for DRMSettingsPlugin.
-        CDRMSettingsModel* iModel;
-        TBool iWmdrmSupported;
-    };
-
-#endif //DRMSETTINGSPLUGINCONTAINER_H
-
-// End of File
--- a/commondrm/drmsettingsplugin/inc/drmsettingsusagecheckbox.h	Mon May 03 12:46:34 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-/*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  CheckBox class for Usage Reporting settings
-*
-*/
-
-
-#ifndef C_DRMSETTINGSUSAGECHECKBOX_H
-#define C_DRMSETTINGSUSAGECHECKBOX_H
-
-// INCLUDES
-#include <akncheckboxsettingpage.h>
-#include <aknsettingpage.h>
-
-// FORWARD DECLARATIONS
-class CDRMSettingUsageList;
-class CDRMSettingsModel;
-class CAknInfoPopupNoteController;
-class CDRMSettingsPlugin;
-
-/**
- * CDrmSettingUsageCheckBox class
- */
-NONSHARABLE_CLASS( CDrmSettingUsageCheckBox ) : public CAknCheckBoxSettingPage
-    {
-
-    public: // New functions
-
-        /**
-		* C++ default constructor.
-		*/
-		CDrmSettingUsageCheckBox( TInt aResourceId,
-		                          CDRMSettingUsageList* aList,
-		                          CDRMSettingsModel* aModel,
-		                          CDRMSettingsPlugin* aPlugin );
-		                          
-		/**
-		* Destructor.
-        */
-        virtual ~CDrmSettingUsageCheckBox();	
-
-	private: // From CAknSettingPage
-	
-	    TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, 
-	                                 TEventCode aType );
-	
-	    void DynamicInitL();
-	
-	    TBool OkToExitL(TBool aAccept);
-	    
-	    void AcceptSettingL();    
-	
-	private: // New functions
-	
-	    void ShowInfoPopupL();
-
-    private: // Data
-		
-		// Not owned
-		CDRMSettingUsageList* iList;
-		
-		// Not owned
-        CDRMSettingsModel* iModel;
-        
-        // Owned
-        CAknInfoPopupNoteController* iPopupController;
-        
-        // Pointer to CDrmSettingsPlugin instance
-        CDRMSettingsPlugin* iDrmSettingsPlugin;
-
-    };
-
-#endif // C_DRMSETTINGSUSAGECHECKBOX_H
--- a/commondrm/drmsettingsplugin/inc/drmsettingsusagelist.h	Mon May 03 12:46:34 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  List class for Usage Reporting checkbox
-*
-*/
-
-
-#ifndef C_DRMSETTINGSUSAGELIST_H
-#define C_DRMSETTINGSUSAGELIST_H
-
-// INCLUDES
-#include <akncheckboxsettingpage.h>
-
-// FORWARD DECLARATIONS
-class CDRMSettingsModel;
-
-/**
- * CDRMSettingUsageList class
- */
-NONSHARABLE_CLASS( CDRMSettingUsageList ) : public CSelectionItemList
-	{
-
-    public: // New functions
-	
-	    /**
-		* Two-phased constructor.
-        */
-		static CDRMSettingUsageList* NewL( CDRMSettingsModel* aModel );
-
-        /**
-		* Destructor.
-        */
-        virtual ~CDRMSettingUsageList();
-        
-	    /**
-	    * Updates contexts
-	    */
-	    void UpdateContexts();
-	
-	private:
-	
-	    /**
-	    * Default constructor.
-	    */
-	    CDRMSettingUsageList( CDRMSettingsModel* aModel );
-	    
-	    /**
-        * Symbian OS constructor.
-        */
-	    void ConstructL();
-	    
-	private: // Data
-	
-	    // Not owned
-	    CDRMSettingsModel* iModel;
-	
-	};
-	
-#endif // C_DRMSETTINGSUSAGELIST_H
\ No newline at end of file
--- a/commondrm/drmsettingsplugin/src/drmsettingsmodel.cpp	Mon May 03 12:46:34 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,315 +0,0 @@
-/*
-* Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Model for DRMSettinsPlugin.
-*
-*/
-
-
-// INCLUDE FILES
-#include <utf.h>
-#include <commdb.h>
-#include <featmgr.h>
-
-#include "drmsettingsmodel.h"
-#include "drmsettingsplugininternalcrkeys.h"
-#include "DRMRIContext.h"
-
-// CONSTANTS
-#ifdef _DEBUG
-// debug panic
-_LIT( KDRMSettingsDebugPanicMessage, "DrmSettingsDebugPanic" );
-const TInt KDRMSettingsDebugPanicCode( 1 );
-#endif
-
-// ================= MEMBER FUNCTIONS =======================
-
-
-// ----------------------------------------------------------------------------
-// CDRMSettingsModel::NewL
-//
-// EPOC two-phased constructor
-// ----------------------------------------------------------------------------
-//
-CDRMSettingsModel* CDRMSettingsModel::NewL()
-    {
-    CDRMSettingsModel* self = new( ELeave ) CDRMSettingsModel;
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-
-// ----------------------------------------------------------------------------
-// CDRMSettingsModel::CDRMSettingsModel
-//
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// ----------------------------------------------------------------------------
-//
-CDRMSettingsModel::CDRMSettingsModel()
-    {
-    }
-
-
-// ----------------------------------------------------------------------------
-// CDRMSettingsModel::ConstructL
-//
-// EPOC default constructor can leave.
-// ----------------------------------------------------------------------------
-//
-void CDRMSettingsModel::ConstructL()
-    {
-    // create an instance of Central Repository
-    iDRMSettingsRepository = CRepository::NewL( KCRUidDRMSettings );
-
-#ifdef RD_DRM_METERING
-
-    // Create an instance of roap storage client
-    iRoapStorageClient = new (ELeave) Roap::RRoapStorageClient;
-
-    // Connect to server
-    User::LeaveIfError( iRoapStorageClient->Connect() );
-
-    // Fill the list
-    iRoapStorageClient->GetAllRIContextsL( iRIContextList );
-
-#endif // RD_DRM_METERING
-
-    }
-
-
-// ----------------------------------------------------------------------------
-// CDRMSettingsModel::~CDRMSettingsModel
-//
-// Destructor
-// ----------------------------------------------------------------------------
-//
-CDRMSettingsModel::~CDRMSettingsModel()
-    {
-    if ( iDRMSettingsRepository )
-        {
-        delete iDRMSettingsRepository;
-        }
-    if ( iRoapStorageClient )
-        {
-        iRoapStorageClient->Close();
-        delete iRoapStorageClient;
-        }
-
-    iRIContextList.ResetAndDestroy();
-    iRIContextList.Close();
-    }
-
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsModel::SetTransactionTrackingStateL()
-//
-// Set transaction tracking state
-// ---------------------------------------------------------------------------
-//
-void CDRMSettingsModel::SetTransactionTrackingStateL( TInt aValue )
-    {
-    User::LeaveIfError( iDRMSettingsRepository->
-                                Set( KDRMSettingsTransactionTracking,
-                                     aValue ) );
-    }
-
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsModel::TransactionTrackingStateL()
-//
-// Get transaction tracking state
-// ---------------------------------------------------------------------------
-//
-TInt CDRMSettingsModel::TransactionTrackingStateL()
-    {
-    TInt value( KErrNone );
-
-    User::LeaveIfError( iDRMSettingsRepository->Get(
-                                    KDRMSettingsTransactionTracking,
-                                    value ) );
-
-    return value;
-    }
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsModel::SetAutomaticActivationStateL()
-//
-// Set automatic activation state
-// ---------------------------------------------------------------------------
-//
-void CDRMSettingsModel::SetAutomaticActivationStateL( TInt aValue )
-    {
-    User::LeaveIfError( iDRMSettingsRepository->
-                                Set( KDRMSettingsSilentRightsAcquisition,
-                                     aValue ) );
-    }
-
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsModel::AutomaticActivationStateL()
-//
-// Get automatic activation state
-// ---------------------------------------------------------------------------
-//
-TInt CDRMSettingsModel::AutomaticActivationStateL()
-    {
-    TInt value( KErrNone );
-
-    User::LeaveIfError( iDRMSettingsRepository->Get(
-                                KDRMSettingsSilentRightsAcquisition,
-                                value ) );
-
-    return value;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsModel::UsageReportingCount()
-//
-// Get usage reporting state. Return count of allowed services.
-// ---------------------------------------------------------------------------
-//
-TInt CDRMSettingsModel::UsageReportingCount()
-    {
-    TInt count( 0 );
-
-    for ( TInt i( 0 ); i < iRIContextList.Count(); i++ )
-        {
-        if ( iRIContextList[i]->IsMeteringAllowed() )
-            {
-            count++;
-            }
-        }
-
-    return count;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsModel::GetSingleRIAliasL()
-// ---------------------------------------------------------------------------
-//
-HBufC* CDRMSettingsModel::GetSingleRIAliasL( TInt aIndex )
-    {
-    __ASSERT_DEBUG( aIndex >= 0 ||
-                    aIndex < iRIContextList.Count(),
-                        User::Panic( KDRMSettingsDebugPanicMessage,
-                                     KDRMSettingsDebugPanicCode ) );
-
-    HBufC* alias( NULL );
-
-    if ( &iRIContextList[aIndex]->RIAlias() )
-        {
-        alias =
-            CnvUtfConverter::ConvertToUnicodeFromUtf8L(
-                iRIContextList[aIndex]->RIAlias() );
-        }
-    else
-        {
-        alias =
-            CnvUtfConverter::ConvertToUnicodeFromUtf8L(
-                iRIContextList[aIndex]->RightsIssuerURL() );
-        }
-
-    return alias;
-    }
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsModel::GetFirstAllowedMeteringRIAliasL()
-// ---------------------------------------------------------------------------
-//
-HBufC* CDRMSettingsModel::GetFirstAllowedMeteringRIAliasL()
-    {
-    for ( TInt i( 0 ); i < iRIContextList.Count(); i++ )
-        {
-        if( IsMeteringAllowed( i ) )
-            {
-            return GetSingleRIAliasL( i );
-            }
-        }
-    return NULL;
-    }
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsModel::GetRiContextCount()
-// ---------------------------------------------------------------------------
-//
-TInt CDRMSettingsModel::GetRiContextCount()
-    {
-    return iRIContextList.Count();
-    }
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsModel::IsMeteringAllowed()
-// ---------------------------------------------------------------------------
-//
-TBool CDRMSettingsModel::IsMeteringAllowed( TInt aIndex )
-    {
-    __ASSERT_DEBUG( aIndex >= 0 ||
-                    aIndex < iRIContextList.Count(),
-                        User::Panic( KDRMSettingsDebugPanicMessage,
-                                     KDRMSettingsDebugPanicCode ) );
-
-    return iRIContextList[aIndex]->IsMeteringAllowed();
-    }
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsModel::IsMeteringAllowedForAll()
-// ---------------------------------------------------------------------------
-//
-TBool CDRMSettingsModel::IsMeteringAllowedForAll()
-    {
-    TBool isAllowed( ETrue );
-
-    for ( TInt i( 0 ); i < iRIContextList.Count() && isAllowed; i++ )
-        {
-        if( !IsMeteringAllowed( i ) )
-            {
-            isAllowed = EFalse;
-            }
-        }
-
-    return isAllowed;
-    }
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsModel::SetMeteringStatus()
-// ---------------------------------------------------------------------------
-//
-void CDRMSettingsModel::SetMeteringStatus( TInt aIndex, TBool aIsAllowed )
-    {
-    __ASSERT_DEBUG( aIndex >= 0 ||
-                    aIndex < iRIContextList.Count(),
-                        User::Panic( KDRMSettingsDebugPanicMessage,
-                                     KDRMSettingsDebugPanicCode ) );
-
-    iRIContextList[aIndex]->SetMeteringStatus( aIsAllowed );
-    }
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsModel::SaveMeteringChanges()
-// ---------------------------------------------------------------------------
-//
-void CDRMSettingsModel::SaveMeteringChanges()
-    {
-    for ( TInt i( 0 ); i < iRIContextList.Count(); i++ )
-        {
-        TRAP_IGNORE(
-            iRoapStorageClient->UpdateRIContextL( *iRIContextList[i] ) );
-        }
-    }
-
-//  End of File
--- a/commondrm/drmsettingsplugin/src/drmsettingsplugin.cpp	Mon May 03 12:46:34 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,729 +0,0 @@
-/*
-* Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  View for DRMSettinsPlugin
-*
-*/
-
-
-// INCLUDE FILES
-#include <coeaui.h>
-#include <hlplch.h>             // For HlpLauncher
-#include <bautils.h>
-#include <eikfrlbd.h>
-#include <featmgr.h>
-#include <StringLoader.h>
-#include <aknViewAppUi.h>
-#include <aknradiobuttonsettingpage.h>
-#include <gsfwviewuids.h>
-#include <gsprivatepluginproviderids.h>
-#include <gscommon.hrh>
-#include <drmsettingspluginrsc.rsg>
-
-#include "drmsettingsplugin.h"
-#include "drmsettingsplugincontainer.h"
-#include "drmsettingsplugin.hrh"
-#include "drmsettingsmodel.h"
-#include "drmsettingsusagecheckbox.h"
-#include "drmsettingsusagelist.h"
-#include "wmdrmpkclientwrapper.h"
-
-// CONSTANTS
-_LIT( KDRMSettingsPluginResourceFileName, "z:drmsettingspluginrsc.rsc" );
-
-
-// ============================= LOCAL FUNCTIONS ==============================
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ----------------------------------------------------------------------------
-// CDRMSettingsPlugin::CDRMSettingsPlugin()
-//
-// Constructor
-// ----------------------------------------------------------------------------
-//
-CDRMSettingsPlugin::CDRMSettingsPlugin()
-  : iResourceLoader( *iCoeEnv )
-    {
-    }
-
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsPlugin::NewL()
-//
-// Symbian OS default constructor
-// ---------------------------------------------------------------------------
-CDRMSettingsPlugin* CDRMSettingsPlugin::NewL( TAny* /*aInitParams*/ )
-    {
-    CDRMSettingsPlugin* self = new( ELeave ) CDRMSettingsPlugin;
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop();
-    return self;
-    }
-
-
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsPlugin::ConstructL()
-//
-// Symbian OS two-phased constructor
-// ---------------------------------------------------------------------------
-void CDRMSettingsPlugin::ConstructL()
-    {
-    FeatureManager::InitializeLibL();
-    // Find the resource file
-    TParse parse;
-    parse.Set( KDRMSettingsPluginResourceFileName,
-               &KDC_RESOURCE_FILES_DIR,
-               NULL );
-    TFileName fileName( parse.FullName() );
-
-    // Get language of resource file
-    BaflUtils::NearestLanguageFile( iCoeEnv->FsSession(), fileName );
-
-    // Open resource file
-    iResourceLoader.OpenL( fileName );
-
-    BaseConstructL( R_DRM_SETTINGS_VIEW );
-
-    if ( FeatureManager::FeatureSupported( KFeatureIdWindowsMediaDrm ) )
-        {
-        iWmdrmSupported = ETrue;
-        }
-    }
-
-
-// ----------------------------------------------------------------------------
-// CDRMSettingsPlugin::~CDRMSettingsPlugin
-//
-// Destructor
-// ----------------------------------------------------------------------------
-CDRMSettingsPlugin::~CDRMSettingsPlugin()
-    {
-    FeatureManager::UnInitializeLib();
-    iResourceLoader.Close();
-    }
-
-
-// ---------------------------------------------------------------------------
-// TUid CDRMSettingsPlugin::Id()
-//
-// Returns view's ID.
-// ---------------------------------------------------------------------------
-TUid CDRMSettingsPlugin::Id() const
-    {
-    return KDRMSettingsPluginUid;
-    }
-
-
-// ========================= From CGSPluginInterface ==================
-
-// ----------------------------------------------------------------------------
-// CDRMSettingsPlugin::GetCaption
-//
-// Return application/view caption.
-// ----------------------------------------------------------------------------
-//
-void CDRMSettingsPlugin::GetCaptionL( TDes& aCaption ) const
-    {
-    // the resource file is already opened.
-    HBufC* result( StringLoader::LoadL( R_DRM_SETTINGS_VIEW_CAPTION ) );
-    aCaption.Copy( *result );
-    delete result;
-    }
-
-
-// ----------------------------------------------------------------------------
-// CDRMSettingsPlugin::PluginProviderCategory
-//
-// A means to identify the location of this plug-in in the framework.
-// ----------------------------------------------------------------------------
-//
-TInt CDRMSettingsPlugin::PluginProviderCategory() const
-    {
-    //To identify internal plug-ins.
-    return KGSPluginProviderInternal;
-    }
-
-
-// ----------------------------------------------------------------------------
-// CDRMSettingsPlugin::Visible
-//
-// Provides the visibility status of self to framework.
-// ----------------------------------------------------------------------------
-//
-TBool CDRMSettingsPlugin::Visible() const
-    {
-    TBool visible( EFalse );
-
-    // The plugin is visible if __DRM_OMA2 or __WINDOWS_MEDIA_DRM are enabled.
-    if( FeatureManager::FeatureSupported( KFeatureIdDrmOma2 ) ||
-        FeatureManager::FeatureSupported( KFeatureIdWindowsMediaDrm ) )
-        {
-        visible = ETrue;
-        }
-
-    return visible;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsPlugin::HandleCommandL(TInt aCommand)
-//
-// Handles commands directed to this class.
-// ---------------------------------------------------------------------------
-void CDRMSettingsPlugin::HandleCommandL( TInt aCommand )
-    {
-    switch ( aCommand )
-        {
-        case EDRMSettingsCmdAppChangeMSK:
-            {
-            const TInt currentFeatureId( Container()->CurrentFeatureId() );
-
-            switch ( currentFeatureId )
-                {
-#ifdef __DRM_OMA2
-                case EDRMSettingsIdTransactionTracking:
-
-                    UpdateTransactionTrackingSettingL( EFalse );
-
-                    break;
-
-#ifdef RD_DRM_SILENT_RIGHTS_ACQUISITION
-                case EDRMSettingsIdAutomaticActivation:
-
-                    UpdateAutomaticActivationSettingL( EFalse );
-
-                    break;
-#endif // RD_DRM_SILENT_RIGHTS_ACQUISITION
-
-#ifdef RD_DRM_METERING
-                case EDRMSettingsIdUsageReporting:
-
-                    UpdateUsageReportingSettingL();
-
-                    break;
-#endif // RD_DRM_METERING
-#endif // __DRM_OMA2
-
-                case EDRMSettingsIdWMDRMLicenseDeletion:
-
-                    if ( iWmdrmSupported )
-                        {
-                        DoWMDRMLicenseDeletionL();
-                        }
-
-                    break;
-
-                default:
-
-                    break;
-                }
-
-            break;
-            }
-        case EDRMSettingsCmdAppChange:
-            {
-            const TInt currentFeatureId( Container()->CurrentFeatureId() );
-
-            switch ( currentFeatureId )
-                {
-#ifdef __DRM_OMA2
-                case EDRMSettingsIdTransactionTracking:
-
-                    UpdateTransactionTrackingSettingL( ETrue );
-
-                    break;
-
-#ifdef RD_DRM_SILENT_RIGHTS_ACQUISITION
-                case EDRMSettingsIdAutomaticActivation:
-
-                    UpdateAutomaticActivationSettingL( ETrue );
-
-                    break;
-#endif // RD_DRM_SILENT_RIGHTS_ACQUISITION
-
-#ifdef RD_DRM_METERING
-                case EDRMSettingsIdUsageReporting:
-
-                    UpdateUsageReportingSettingL();
-
-                    break;
-#endif // RD_DRM_METERING
-#endif // __DRM_OMA2
-
-                case EDRMSettingsIdWMDRMLicenseDeletion:
-
-                    if ( iWmdrmSupported )
-                        {
-                        DoWMDRMLicenseDeletionL();
-                        }
-
-                    break;
-
-                default:
-
-                    break;
-                }
-            break;
-            }
-        case EAknSoftkeyBack:
-
-            iAppUi->ActivateLocalViewL( KGSSecurityPluginUid );
-
-            break;
-
-        case EAknCmdHelp:
-            {
-
-            if( FeatureManager::FeatureSupported( KFeatureIdHelp ) )
-                {
-                HlpLauncher::LaunchHelpApplicationL(
-                                                iEikonEnv->WsSession(),
-                                                iAppUi->AppHelpContextL() );
-                }
-
-            break;
-
-            }
-        default:
-
-            iAppUi->HandleCommandL( aCommand );
-
-            break;
-        }
-    }
-
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsPlugin::UpdateListBoxL
-//
-// Updates listbox items.
-// ---------------------------------------------------------------------------
-//
-void CDRMSettingsPlugin::UpdateListBoxL( TInt aItemId )
-    {
-    Container()->UpdateListBoxL( aItemId );
-    }
-
-
-// ----------------------------------------------------------------------------
-// CDRMSettingsPlugin::Container
-//
-// Return handle to container class.
-// ----------------------------------------------------------------------------
-//
-CDRMSettingsPluginContainer* CDRMSettingsPlugin::Container()
-    {
-    return static_cast<CDRMSettingsPluginContainer*>( iContainer );
-    }
-
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsPlugin::NewContainerL()
-//
-// Creates new iContainer.
-// ---------------------------------------------------------------------------
-//
-void CDRMSettingsPlugin::NewContainerL()
-    {
-    iContainer = new( ELeave ) CDRMSettingsPluginContainer( iWmdrmSupported );
-    }
-
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsPlugin::HandleListBoxSelectionL()
-//
-// Handles events raised through a rocker key.
-// ---------------------------------------------------------------------------
-void CDRMSettingsPlugin::HandleListBoxSelectionL()
-    {
-    const TInt currentFeatureId( Container()->CurrentFeatureId() );
-
-    switch ( currentFeatureId )
-        {
-#ifdef __DRM_OMA2
-        case EDRMSettingsIdTransactionTracking:
-
-            UpdateTransactionTrackingSettingL( EFalse );
-
-            break;
-
-#ifdef RD_DRM_SILENT_RIGHTS_ACQUISITION
-        case EDRMSettingsIdAutomaticActivation:
-
-            UpdateAutomaticActivationSettingL( EFalse );
-
-            break;
-#endif // RD_DRM_SILENT_RIGHTS_ACQUISITION
-
-#ifdef RD_DRM_METERING
-        case EDRMSettingsIdUsageReporting:
-
-            UpdateUsageReportingSettingL();
-
-            break;
-#endif // RD_DRM_METERING
-#endif // __DRM_OMA2
-
-        case EDRMSettingsIdWMDRMLicenseDeletion:
-
-            if ( iWmdrmSupported )
-                {
-                DoWMDRMLicenseDeletionL();
-                }
-
-            break;
-
-       default:
-
-            break;
-        }
-    }
-
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsPlugin::UpdateTransactionTrackingSettingL
-//
-// Display Transaction tracking setting page.
-// ---------------------------------------------------------------------------
-//
-void CDRMSettingsPlugin::UpdateTransactionTrackingSettingL( TBool aShowSettingPage )
-    {
-    if( FeatureManager::FeatureSupported( KFeatureIdDrmOma2 ) )
-        {
-        TInt currentValue( Container()->Model()->TransactionTrackingStateL() );
-        TBool isValueUpdated( EFalse );
-
-        if ( aShowSettingPage )
-            {
-            isValueUpdated = ShowTransactionTrackingSettingPageL( currentValue );
-            }
-        else
-            {
-            switch ( currentValue )
-                {
-                case KDRMTransactionTrackingDisabled:
-
-                    currentValue = KDRMTransactionTrackingEnabled;
-
-                    break;
-
-                case KDRMTransactionTrackingEnabled:
-
-                    currentValue = KDRMTransactionTrackingDisabled;
-
-                    break;
-
-                default:
-
-                    break;
-                }
-            isValueUpdated = ETrue;
-            }
-        // If value is updated, store it to model:
-        if ( isValueUpdated )
-            {
-            Container()->Model()->SetTransactionTrackingStateL( currentValue );
-            UpdateListBoxL( EDRMSettingsIdTransactionTracking );
-            }
-        }
-    }
-
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsPlugin::ShowTransactionTrackingSettingPageL()
-//
-// Display transaction tracking setting page. Selected listbox item index
-// must be mapped to transaction tracking state because index value is
-// different from state value.
-// ---------------------------------------------------------------------------
-//
-TBool CDRMSettingsPlugin::ShowTransactionTrackingSettingPageL(
-    TInt& aTTState )
-    {
-    // in case DRM Phase 2 is not supported, return EFalse.
-    TBool isValueUpdated( EFalse );
-    TInt selectedTTItemIndex( 0 );
-    TInt originalTTState( aTTState );
-
-    // Set selected listbox item to current transaction tracking state:
-    switch ( aTTState )
-        {
-        case KDRMTransactionTrackingDisabled:
-
-            selectedTTItemIndex = KDRMTTItemIndexDisabled;
-
-            break;
-
-        case KDRMTransactionTrackingEnabled:
-
-            selectedTTItemIndex = KDRMTTItemIndexEnabled;
-
-            break;
-        }
-
-    CDesCArrayFlat* items(
-        iCoeEnv->ReadDesC16ArrayResourceL( R_TTRACKING_SETTING_PAGE_LBX ) );
-    CleanupStack::PushL( items );
-    CAknRadioButtonSettingPage* dlg(
-        new (ELeave) CAknRadioButtonSettingPage( R_TTRACKING_SETTING_PAGE,
-                                                 selectedTTItemIndex,
-                                                 items ) );
-
-    dlg->ExecuteLD( CAknSettingPage::EUpdateWhenChanged );
-    CleanupStack::PopAndDestroy( items );
-
-    // Map selected listbox item to correct state:
-    switch ( selectedTTItemIndex )
-        {
-        case KDRMTTItemIndexDisabled:
-
-            aTTState = KDRMTransactionTrackingDisabled;
-
-            break;
-
-        case KDRMTTItemIndexEnabled:
-
-            aTTState = KDRMTransactionTrackingEnabled;
-
-            break;
-        }
-
-    // Check is value updated:
-    if( aTTState != originalTTState )
-        {
-        isValueUpdated = ETrue;
-        }
-
-    return isValueUpdated;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsPlugin::UpdateAutomaticActivationSettingL
-//
-// Display Automatic activation setting page.
-// ---------------------------------------------------------------------------
-//
-void CDRMSettingsPlugin::UpdateAutomaticActivationSettingL( TBool aShowSettingPage )
-    {
-    if( FeatureManager::FeatureSupported( KFeatureIdDrmOma2 ) )
-        {
-        TInt currentValue( Container()->Model()->AutomaticActivationStateL() );
-        TBool isValueUpdated( EFalse );
-
-        if ( aShowSettingPage )
-            {
-            isValueUpdated = ShowAutomaticActivationSettingPageL( currentValue );
-            }
-        else
-            {
-            switch ( currentValue )
-                {
-                case KDRMAutomaticActivationNotAllowed:
-
-                    currentValue = KDRMAutomaticActivationAllowed;
-
-                    break;
-
-                case KDRMAutomaticActivationAllowed:
-
-                    currentValue = KDRMAutomaticActivationNotAllowed;
-
-                    break;
-
-                default:
-
-                    break;
-                }
-            isValueUpdated = ETrue;
-            }
-        // If value is updated, store it to model:
-        if ( isValueUpdated )
-            {
-            Container()->Model()->SetAutomaticActivationStateL( currentValue );
-            UpdateListBoxL( EDRMSettingsIdAutomaticActivation );
-            }
-        }
-    }
-
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsPlugin::ShowAutomaticActivationSettingPageL()
-//
-// Display Automatic activation setting page. Selected listbox item index
-// must be mapped to automatic activation state because index value is
-// different from state value.
-// ---------------------------------------------------------------------------
-//
-TBool CDRMSettingsPlugin::ShowAutomaticActivationSettingPageL(
-    TInt& aAAState )
-    {
-    // in case DRM Phase 2 is not supported, return EFalse.
-    TBool isValueUpdated( EFalse );
-    TInt selectedAAItemIndex( 0 );
-    TInt originalAAState( aAAState );
-
-    // Set selected listbox item to current state:
-    switch ( aAAState )
-        {
-        case KDRMAutomaticActivationNotAllowed:
-
-            selectedAAItemIndex = KDRMAAItemIndexDisabled;
-
-            break;
-
-        case KDRMAutomaticActivationAllowed:
-
-            selectedAAItemIndex = KDRMAAItemIndexEnabled;
-
-            break;
-        }
-
-    CDesCArrayFlat* items(
-        iCoeEnv->ReadDesC16ArrayResourceL( R_AUTOM_ACTIV_SETTING_PAGE_LBX ) );
-    CleanupStack::PushL( items );
-    CAknRadioButtonSettingPage* dlg(
-        new (ELeave) CAknRadioButtonSettingPage( R_AUTOM_ACTIV_SETTING_PAGE,
-                                                 selectedAAItemIndex,
-                                                 items ) );
-
-    dlg->ExecuteLD( CAknSettingPage::EUpdateWhenChanged );
-    CleanupStack::PopAndDestroy( items );
-
-    // Map selected listbox item to correct state:
-    switch ( selectedAAItemIndex )
-        {
-        case KDRMAAItemIndexDisabled:
-
-            aAAState = KDRMAutomaticActivationNotAllowed;
-
-            break;
-
-        case KDRMAAItemIndexEnabled:
-
-            aAAState = KDRMAutomaticActivationAllowed;
-
-            break;
-
-        }
-
-    // Check is value updated:
-    if( aAAState != originalAAState )
-        {
-        isValueUpdated = ETrue;
-        }
-
-    return isValueUpdated;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsPlugin::UpdateUsageReportingSettingL
-//
-// Display Usage Reporting setting page.
-// ---------------------------------------------------------------------------
-//
-void CDRMSettingsPlugin::UpdateUsageReportingSettingL()
-    {
-    TBool isValueUpdated( EFalse );
-
-    if( FeatureManager::FeatureSupported( KFeatureIdDrmOma2 ) )
-        {
-        CDRMSettingsModel* model( this->Container()->Model() );
-
-        CDRMSettingUsageList* usageList( CDRMSettingUsageList::NewL( model ) );
-        CleanupStack::PushL( usageList );
-
-        CDrmSettingUsageCheckBox* usageCheckBox(
-            new (ELeave) CDrmSettingUsageCheckBox(
-                R_DRM_SETTINGS_METERING_CHECKBOX_PAGE,
-                usageList,
-                model,
-                this ) );
-
-        isValueUpdated =
-            usageCheckBox->ExecuteLD( CAknSettingPage::EUpdateWhenAccepted );
-
-        CleanupStack::PopAndDestroy( usageList );
-        }
-
-    if ( isValueUpdated )
-        {
-        UpdateListBoxL( EDRMSettingsIdUsageReporting );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsPlugin::DoWMDRMLicenseDeletionL
-//
-// Display WMDRM license deletion setting page.
-// ---------------------------------------------------------------------------
-//
-void CDRMSettingsPlugin::DoWMDRMLicenseDeletionL()
-    {
-    if ( iWmdrmSupported )
-        {
-        TInt r = KErrNone;
-        RLibrary library;
-        r = library.Load( KWmdrmPkClientWrapperName );
-        if( !r )
-            {
-            CleanupClosePushL( library );
-            CWmDrmPkClientWrapper* wrapper =
-                (CWmDrmPkClientWrapper*)library.Lookup( KWmdrmPkClientNewL )();
-            CleanupStack::PushL( wrapper );
-            User::LeaveIfError( wrapper->Connect() );
-            wrapper->DeleteRights();
-            wrapper->Close();
-            CleanupStack::PopAndDestroy( 2, &library );
-            }
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CDRMSettingsPlugin::DynInitMenuPaneL()
-//
-// Display the dynamic menu
-// ----------------------------------------------------------------------------
-void CDRMSettingsPlugin::DynInitMenuPaneL(
-    TInt aResourceId,
-    CEikMenuPane* aMenuPane )
-    {
-    // show or hide the 'help' menu item when supported
-    if( aResourceId == R_DRM_SETTINGS_MENU_ITEM_EXIT )
-        {
-        User::LeaveIfNull( aMenuPane );
-
-#ifdef __DRM_OMA2
-        if ( FeatureManager::FeatureSupported( KFeatureIdHelp ) )
-            {
-            aMenuPane->SetItemDimmed( EAknCmdHelp, EFalse );
-            }
-        else
-            {
-            aMenuPane->SetItemDimmed( EAknCmdHelp, ETrue );
-            }
-#else
-
-        aMenuPane->SetItemDimmed( EAknCmdHelp, ETrue );
-
-#endif // __DRM_OMA2
-        }
-    }
-
-
-
-// End of File
--- a/commondrm/drmsettingsplugin/src/drmsettingsplugincontainer.cpp	Mon May 03 12:46:34 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,336 +0,0 @@
-/*
-* Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Container for DRMSettinsPlugin
-*
-*/
-
-
-// INCLUDE FILES
-#include <aknlists.h>
-#include <AknUtils.h>
-#include <csxhelp/drm.hlp.hrh>
-#include <gslistbox.h>
-#include <StringLoader.h>
-#include <drmsettingspluginrsc.rsg>
-
-#include "drmsettingsplugincontainer.h"
-#include "drmsettingsplugin.hrh"
-#include "drmsettingsmodel.h"
-
-const TUid KUidRightsManager = { 0x101F85C7 };
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsPluginContainer::ConstructL()
-//
-// Symbian OS two phased constructor
-// ---------------------------------------------------------------------------
-//
-void CDRMSettingsPluginContainer::ConstructL( const TRect& aRect )
-    {
-    iListBox = new( ELeave ) CAknSettingStyleListBox;
-    iModel = CDRMSettingsModel::NewL();
-    BaseConstructL( aRect, R_DRM_SETTINGS_VIEW_TITLE, R_DRM_SETTINGS_LBX );
-    }
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsPluginContainer::CDRMSettingsPluginContainer()
-//
-// Constructor
-// ---------------------------------------------------------------------------
-//
-CDRMSettingsPluginContainer::CDRMSettingsPluginContainer(
-    TBool aWmdrmSupported ) : iWmdrmSupported( aWmdrmSupported )
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsPluginContainer::~CDRMSettingsPluginContainer()
-//
-// Destructor
-// ---------------------------------------------------------------------------
-//
-CDRMSettingsPluginContainer::~CDRMSettingsPluginContainer()
-    {
-    if ( iModel )
-        {
-        delete iModel;
-        }
-    // delete listbox item array
-    if ( iListboxItemArray )
-        {
-        delete iListboxItemArray;
-        }
-    }
-
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsPluginContainer::ConstructListBoxL()
-//
-// Construct the listbox from resource array.
-// ---------------------------------------------------------------------------
-//
-void CDRMSettingsPluginContainer::ConstructListBoxL( TInt aResLbxId )
-    {
-    iListBox->ConstructL( this, EAknListBoxSelectionList /* |
-        EAknListBoxItemSpecificMenuDisabled */ );
-    iListboxItemArray = CGSListBoxItemTextArray::NewL( aResLbxId,
-                                                       *iListBox,
-                                                       *iCoeEnv );
-    iListBox->Model()->SetItemTextArray( iListboxItemArray );
-    iListBox->Model()->SetOwnershipType( ELbmDoesNotOwnItemArray );
-    CreateListBoxItemsL();
-    }
-
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsPluginContainer::CreateListBoxItemsL()
-//
-// Create listbox items.
-// ---------------------------------------------------------------------------
-//
-void CDRMSettingsPluginContainer::CreateListBoxItemsL()
-    {
-#ifdef __DRM_OMA2
-    MakeTransactionTrackingItemL();
-
-#ifdef RD_DRM_SILENT_RIGHTS_ACQUISITION
-    MakeAutomaticActivationItemL();
-#endif // RD_DRM_SILENT_RIGHTS_ACQUISITION
-
-#ifdef RD_DRM_METERING
-    MakeUsageReportingItemL();
-#endif // RD_DRM_METERING
-#endif // __DRM_OMA2
-
-
-    MakeWMDRMLicenseDeletionItemL();
-    }
-
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsPluginContainer::UpdateListBoxL()
-//
-// Update listbox item.
-// ---------------------------------------------------------------------------
-//
-void CDRMSettingsPluginContainer::UpdateListBoxL( TInt aFeatureId )
-    {
-    switch( aFeatureId )
-        {
-#ifdef __DRM_OMA2
-        case EDRMSettingsIdTransactionTracking:
-            MakeTransactionTrackingItemL();
-            break;
-
-#ifdef RD_DRM_SILENT_RIGHTS_ACQUISITION
-        case EDRMSettingsIdAutomaticActivation:
-            MakeAutomaticActivationItemL();
-            break;
-#endif // RD_DRM_SILENT_RIGHTS_ACQUISITION
-
-#ifdef RD_DRM_METERING
-        case EDRMSettingsIdUsageReporting:
-            MakeUsageReportingItemL();
-            break;
-#endif // RD_DRM_METERING
-#endif // __DRM_OMA2
-
-        case EDRMSettingsIdWMDRMLicenseDeletion:
-
-            MakeWMDRMLicenseDeletionItemL();
-
-            break;
-
-        default:
-            break;
-        }
-
-    iListBox->HandleItemAdditionL();
-    }
-
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsPluginContainer::MakeTransactionTrackingItemL()
-//
-// Create Transaction tracking list item
-// ---------------------------------------------------------------------------
-//
-void CDRMSettingsPluginContainer::MakeTransactionTrackingItemL()
-    {
-    HBufC* dynamicText( NULL );
-    TInt trxTrState( iModel->TransactionTrackingStateL() );
-
-    switch ( trxTrState )
-        {
-        case KDRMTransactionTrackingEnabled:
-            dynamicText = StringLoader::LoadLC( R_DRM_SETTINGS_TTRACKING_ON );
-            break;
-        default:
-            dynamicText = StringLoader::LoadLC( R_DRM_SETTINGS_TTRACKING_OFF );
-            break;
-        }
-
-    TPtr ptrBuffer ( dynamicText->Des() );
-
-
-    // Finally, set the dynamic text
-    iListboxItemArray->SetDynamicTextL( EDRMSettingsIdTransactionTracking, ptrBuffer );
-
-    CleanupStack::PopAndDestroy( dynamicText );
-
-    // And add to listbox
-    iListboxItemArray->SetItemVisibilityL( EDRMSettingsIdTransactionTracking,
-        CGSListBoxItemTextArray::EVisible );
-    }
-
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsPluginContainer::MakeAutomaticActivationItemL()
-//
-// Create Automatic activation list item
-// ---------------------------------------------------------------------------
-//
-void CDRMSettingsPluginContainer::MakeAutomaticActivationItemL()
-    {
-    TInt automActivState( iModel->AutomaticActivationStateL() );
-
-    HBufC* dynamicText( NULL );
-
-    switch ( automActivState )
-        {
-        case KDRMTransactionTrackingEnabled:
-            dynamicText = StringLoader::LoadLC( R_DRM_SETTINGS_AUTOM_ACTIV_ON );
-            break;
-        default:
-            dynamicText = StringLoader::LoadLC( R_DRM_SETTINGS_AUTOM_ACTIV_OFF );
-            break;
-        }
-
-    TPtr ptrBuffer ( dynamicText->Des() );
-
-    // Finally, set the dynamic text
-    iListboxItemArray->SetDynamicTextL( EDRMSettingsIdAutomaticActivation,
-                                        ptrBuffer );
-
-    CleanupStack::PopAndDestroy( dynamicText );
-
-    // And add to listbox
-    iListboxItemArray->SetItemVisibilityL( EDRMSettingsIdAutomaticActivation,
-                                           CGSListBoxItemTextArray::EVisible );
-    }
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsPluginContainer::MakeUsageReportingItemL()
-//
-// Create Usage reporting list item
-// ---------------------------------------------------------------------------
-//
-void CDRMSettingsPluginContainer::MakeUsageReportingItemL()
-    {
-    TInt count( iModel->UsageReportingCount() );
-
-    HBufC* dynamicText( NULL );
-
-    switch ( count )
-        {
-        case 0:
-            dynamicText = StringLoader::LoadL( R_DRM_SET_USAGE_REPORT_NONE );
-            break;
-        case 1:
-            dynamicText = iModel->GetFirstAllowedMeteringRIAliasL();
-            break;
-        default:
-            dynamicText = StringLoader::LoadL( R_DRM_SET_SEVERAL_SERVICES );
-            break;
-        }
-    CleanupStack::PushL( dynamicText );
-
-    TPtr ptrBuffer ( dynamicText->Des() );
-
-    // Finally, set the dynamic text
-    iListboxItemArray->SetDynamicTextL( EDRMSettingsIdUsageReporting,
-                                        ptrBuffer );
-
-    CleanupStack::PopAndDestroy( dynamicText );
-
-    // And add to listbox
-    iListboxItemArray->SetItemVisibilityL( EDRMSettingsIdUsageReporting,
-                                           CGSListBoxItemTextArray::EVisible );
-    }
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsPluginContainer::MakeWMDRMLicenseDeletionItemL()
-//
-// Create WMDRM license deletion list item
-// ---------------------------------------------------------------------------
-//
-void CDRMSettingsPluginContainer::MakeWMDRMLicenseDeletionItemL()
-    {
-    if ( iWmdrmSupported )
-        {
-        // Add to listbox
-        iListboxItemArray->
-            SetItemVisibilityL( EDRMSettingsIdWMDRMLicenseDeletion,
-                                CGSListBoxItemTextArray::EVisible );
-        }
-    else
-        {
-        // Add to listbox
-        iListboxItemArray->
-            SetItemVisibilityL( EDRMSettingsIdWMDRMLicenseDeletion,
-                                CGSListBoxItemTextArray::EInvisible );
-
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsPluginContainer::GetHelpContext() const
-//
-// Gets Help
-// ---------------------------------------------------------------------------
-//
-void CDRMSettingsPluginContainer::GetHelpContext(
-    TCoeHelpContext& aContext ) const
-    {
-    aContext.iMajor = KUidRightsManager;
-    aContext.iContext = KSET_HLP_PROTECTED_CONTENT;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CDRMSettingsPluginContainer::CurrentFeatureId()
-//
-// Return the feature id of selected listitem
-// ---------------------------------------------------------------------------
-//
-TInt CDRMSettingsPluginContainer::CurrentFeatureId( ) const
-    {
-    return iListboxItemArray->CurrentFeature();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CDRMSettingsPluginContainer::Model()
-//
-//
-// -----------------------------------------------------------------------------
-//
-CDRMSettingsModel* CDRMSettingsPluginContainer::Model()
-    {
-    return iModel;
-    }
-
-// End of File
--- a/commondrm/drmsettingsplugin/src/drmsettingspluginimplementationtable.cpp	Mon May 03 12:46:34 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
-* Copyright (c) 2006 - 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:  ECOM proxy table for DRMSettinsPlugin
-*
-*/
-
-
-// INCLUDES
-#include <e32std.h>
-#include <ecom/implementationproxy.h>
-
-#include "drmsettingsplugin.h"
-
-
-// CONSTANTS
-const TImplementationProxy KDRMSettingsPluginImplementationTable[] =
-    {
-    IMPLEMENTATION_PROXY_ENTRY( 0x102750CD, CDRMSettingsPlugin::NewL )
-    };
-
-
-// ---------------------------------------------------------------------------
-// ImplementationGroupProxy
-//
-// Gate/factory function
-// ---------------------------------------------------------------------------
-//
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(
-                                                  TInt& aTableCount )
-    {
-    aTableCount = sizeof( KDRMSettingsPluginImplementationTable )
-        / sizeof( TImplementationProxy );
-    return KDRMSettingsPluginImplementationTable;
-    }
-
-
-
-// End of File
--- a/commondrm/drmsettingsplugin/src/drmsettingsusagecheckbox.cpp	Mon May 03 12:46:34 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,158 +0,0 @@
-/*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  CheckBox class for Usage Reporting settings
-*
-*/
-
-
-// INCLUDE FILES
-#include <StringLoader.h>
-#include <AknQueryDialog.h>
-#include <AknInfoPopupNoteController.h>
-#include <drmsettingspluginrsc.rsg>
-
-#include "drmsettingsusagecheckbox.h"
-#include "drmsettingsusagelist.h"
-#include "drmsettingsmodel.h"
-#include "drmsettingsplugin.h"
-
-// ================= MEMBER FUNCTIONS =======================
-
-// -----------------------------------------------------------------------------
-// CDrmSettingUsageCheckBox::CDrmSettingUsageCheckBox
-// Default constructor.
-// -----------------------------------------------------------------------------
-//
-CDrmSettingUsageCheckBox::CDrmSettingUsageCheckBox(
-    TInt aResourceId,
-    CDRMSettingUsageList* aList,
-    CDRMSettingsModel* aModel,
-    CDRMSettingsPlugin* aPlugin ) : CAknCheckBoxSettingPage( aResourceId, aList ),
-                                  iList( aList ),
-                                  iModel( aModel ),
-                                  iDrmSettingsPlugin( aPlugin )
-    {
-    }
-
-// ----------------------------------------------------------------------------
-// CDrmSettingUsageCheckBox::~CDrmSettingUsageCheckBox
-//
-// Destructor
-// ----------------------------------------------------------------------------
-//
-CDrmSettingUsageCheckBox::~CDrmSettingUsageCheckBox()
-    {
-    delete iPopupController;
-    }
-
-// -----------------------------------------------------------------------------
-// CDrmSettingUsageCheckBox::OfferKeyEventL
-// -----------------------------------------------------------------------------
-//
-TKeyResponse CDrmSettingUsageCheckBox::OfferKeyEventL(
-    const TKeyEvent& aKeyEvent,
-    TEventCode aType )
-    {
-    TKeyResponse response( EKeyWasNotConsumed );
-    if ( aKeyEvent.iCode != EKeyApplicationF )
-        {
-        response = this->ListBoxControl()->OfferKeyEventL( aKeyEvent, aType );
-        }
-
-    if ( aType == EEventKeyUp )
-        {
-        ShowInfoPopupL();
-        }
-
-    if ( ( aType == EEventKey ) && ( aKeyEvent.iCode == EKeyEscape ) )
-        {
-        iDrmSettingsPlugin->HandleCommandL( EEikCmdExit );
-        }
-
-    return response;
-    }
-
-// -----------------------------------------------------------------------------
-// CDrmSettingUsageCheckBox::DynamicInitL
-// -----------------------------------------------------------------------------
-//
-void CDrmSettingUsageCheckBox::DynamicInitL()
-    {
-    HBufC* emptyText( StringLoader::LoadLC( R_USAGE_REPORTING_LIST_EMPTY,
-                                            iEikonEnv ) );
-    this->ListBoxControl()->View()->SetListEmptyTextL( *emptyText );
-    CleanupStack::PopAndDestroy( emptyText );
-    }
-
-// -----------------------------------------------------------------------------
-// CDrmSettingUsageCheckBox::OkToExitL
-// -----------------------------------------------------------------------------
-//
-TBool CDrmSettingUsageCheckBox::OkToExitL( TBool aAccept )
-    {
-    TBool exit( ETrue );
-
-    if ( aAccept )
-        {
-        iList->UpdateContexts();
-
-        if ( !iModel->IsMeteringAllowedForAll() )
-            {
-            HBufC* query( StringLoader::LoadLC( R_DRM_CONF_QUERY_METERING,
-                                                iEikonEnv ) );
-
-            CAknQueryDialog* queryDialog( CAknQueryDialog::NewL() );
-
-            TBool retVal( queryDialog->ExecuteLD( R_DRM_CONFIRMATION_QUERY_METERING,
-                                                  *query ) );
-            CleanupStack::PopAndDestroy( query );
-
-            if ( !retVal )
-                {
-                exit = EFalse;
-                }
-            }
-        }
-
-    return exit;
-    }
-
-// -----------------------------------------------------------------------------
-// CDrmSettingUsageCheckBox::AcceptSettingL
-// -----------------------------------------------------------------------------
-//
-void CDrmSettingUsageCheckBox::AcceptSettingL()
-    {
-    iModel->SaveMeteringChanges();
-    }
-
-// -----------------------------------------------------------------------------
-// CDrmSettingUsageCheckBox::ShowInfoPopupL
-// -----------------------------------------------------------------------------
-//
-void CDrmSettingUsageCheckBox::ShowInfoPopupL()
-    {
-    if ( !iPopupController )
-        {
-        iPopupController = CAknInfoPopupNoteController::NewL();
-        }
-    TInt index( this->ListBoxControl()->View()->CurrentItemIndex() );
-    if ( index != -1 )
-        {
-        iPopupController->SetTextL( iList->At(index)->ItemText() );
-        iPopupController->ShowInfoPopupNote();
-        }
-    }
-
-//  End of File
--- a/commondrm/drmsettingsplugin/src/drmsettingsusagelist.cpp	Mon May 03 12:46:34 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-/*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  List class for Usage Reporting checkbox
-*
-*/
-
-
-// INCLUDE FILES
-#include "drmsettingsusagelist.h"
-#include "drmsettingsmodel.h"
-
-// CONSTANTS
-const TInt KDRMSettingsListGranularity( 5 );
-
-// ================= MEMBER FUNCTIONS =======================
-
-// ----------------------------------------------------------------------------
-// CDRMSettingUsageList::NewL
-// Two-phased constructor.
-// ----------------------------------------------------------------------------
-//
-CDRMSettingUsageList* CDRMSettingUsageList::NewL( 
-    CDRMSettingsModel* aModel )
-    {
-    CDRMSettingUsageList* self( 
-        new( ELeave ) CDRMSettingUsageList( aModel ) );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-	CleanupStack::Pop( self );
-    return self;
-    }
-    
-// ----------------------------------------------------------------------------
-// CDRMSettingUsageList::CDRMSettingUsageList
-// Default constructor.
-// ----------------------------------------------------------------------------
-//
-CDRMSettingUsageList::CDRMSettingUsageList( CDRMSettingsModel* aModel ) 
-    : CSelectionItemList( KDRMSettingsListGranularity ), iModel( aModel )
-    {
-	}
-
-// ----------------------------------------------------------------------------
-// CDRMSettingUsageList::ConstructL
-// ----------------------------------------------------------------------------
-//
-void CDRMSettingUsageList::ConstructL()
-    {
-    for ( TInt i( 0 ); i < iModel->GetRiContextCount(); i++ )
-        {
-        HBufC* alias( iModel->GetSingleRIAliasL( i ) );
-        CleanupStack::PushL( alias );
-        TBool isAllowed( iModel->IsMeteringAllowed( i ) );
-        CSelectableItem* selItem( new (ELeave) CSelectableItem( *alias, 
-                                                                isAllowed ) );
-        selItem->ConstructL();
-        this->AppendL( selItem );
-        CleanupStack::PopAndDestroy( alias );
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CDRMSettingUsageList::~CDRMSettingUsageList
-//
-// Destructor
-// ----------------------------------------------------------------------------
-//
-CDRMSettingUsageList::~CDRMSettingUsageList()
-    {
-    this->ResetAndDestroy();
-    }
-
-// ----------------------------------------------------------------------------
-// CDRMSettingUsageList::UpdateContexts
-// ----------------------------------------------------------------------------
-//
-void CDRMSettingUsageList::UpdateContexts()
-    {
-    for ( TInt i( 0 ); i < iModel->GetRiContextCount(); i++ )
-        {
-        CSelectableItem* selItem( this->At( i ) );
-        iModel->SetMeteringStatus( i, selItem->SelectionStatus() );
-        }
-    }
-	
-//  End of File
--- a/commondrm/group/bld.inf	Mon May 03 12:46:34 2010 +0300
+++ b/commondrm/group/bld.inf	Fri May 14 16:07:34 2010 +0300
@@ -39,8 +39,6 @@
 ../rom/DRMEncryptorResources.iby        LANGUAGE_MW_LAYER_IBY_EXPORT_PATH( drmencryptorresources.iby )
 ../rom/DRMRightsManagerUI.iby           CORE_MW_LAYER_IBY_EXPORT_PATH( drmrightsmanagerui.iby )
 ../rom/DRMRightsManagerUIResources.iby  LANGUAGE_MW_LAYER_IBY_EXPORT_PATH( drmrightsmanageruiresources.iby )
-../rom/drmsettingsplugin.iby            CORE_MW_LAYER_IBY_EXPORT_PATH( drmsettingsplugin.iby )
-../rom/drmsettingspluginresources.iby   LANGUAGE_MW_LAYER_IBY_EXPORT_PATH( drmsettingspluginresources.iby )
 ../rom/drmutility.iby                   CORE_MW_LAYER_IBY_EXPORT_PATH( drmutility.iby )
 ../rom/drmutility_resources.iby         LANGUAGE_MW_LAYER_IBY_EXPORT_PATH( drmutility_resources.iby )
 ../rom/drmserviceapiwrapper.iby         CORE_MW_LAYER_IBY_EXPORT_PATH( drmserviceapiwrapper.iby )
@@ -51,9 +49,6 @@
 // DRMEncryptor
 ../drmencryptor/group/DRMEncryptor.mmp
 
-// DRMSettingsPlugin
-../drmsettingsplugin/group/drmsettingsplugin.mmp
-
 // DRMRightsManagerUi
 ../drmrightsmanagerui/group/DRMRightsManager.mmp
 
--- a/commondrm/rom/drmsettingsplugin.iby	Mon May 03 12:46:34 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-/*
-* Copyright (c) 2006-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:  DRMSettingsPlugin ROM resources
-*
-*/
-
-#ifndef DRMSETTINGSPLUGIN_IBY
-#define DRMSETTINGSPLUGIN_IBY
-
-ECOM_PLUGIN( drmsettingsplugin.dll, 102750CC.rsc )
-//data=DATAZ_\BITMAP_DIR\drmsettingsplugin.mif BITMAP_DIR\drmsettingsplugin.mif
-
-data=ZSYSTEM\install\commondrm_stub.SIS             \system\install\commondrm_stub.SIS
-#endif // DRMSETTINGSPLUGIN_IBY
-//  End of File
--- a/commondrm/rom/drmsettingspluginresources.iby	Mon May 03 12:46:34 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-/*
-* Copyright (c) 2006 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:  DRMSettingsPlugin ROM resources.
-*
-*/
-
-#ifndef DRMSETTINGSPLUGINRESOURCES_IBY
-#define DRMSETTINGSPLUGINRESOURCES_IBY
-
-data=DATAZ_\RESOURCE_FILES_DIR\drmsettingspluginrsc.rsc RESOURCE_FILES_DIR\drmsettingspluginrsc.rsc
-
-#endif // DRMSETTINGSPLUGINRESOURCES_IBY
-//  End of File
--- a/drm_plat/dcf_repository_api/inc/DcfRep.h	Mon May 03 12:46:34 2010 +0300
+++ b/drm_plat/dcf_repository_api/inc/DcfRep.h	Fri May 14 16:07:34 2010 +0300
@@ -23,8 +23,8 @@
 //  INCLUDES
 #include <e32base.h>
 #include <f32file.h>
-#include <D32DBMS.H>
-#include "dcfrepcli.h"
+#include <d32dbms.H>
+#include "DcfRepCli.h"
 // CONSTANTS
 // MACROS
 // DATA TYPES
--- a/drm_plat/drm_common_api/inc/DRMCommon.h	Mon May 03 12:46:34 2010 +0300
+++ b/drm_plat/drm_common_api/inc/DRMCommon.h	Fri May 14 16:07:34 2010 +0300
@@ -21,7 +21,7 @@
 #define DRMCOMMON_H
 
 #include <e32base.h>
-#include <DrmRights.h>
+#include <DRMRights.h>
 #include <caf/caf.h>
 
 const TUint KDrmMaxContentInfoSize = 512;
--- a/drm_plat/drm_rights_api/inc/DcfCommon.h	Mon May 03 12:46:34 2010 +0300
+++ b/drm_plat/drm_rights_api/inc/DcfCommon.h	Fri May 14 16:07:34 2010 +0300
@@ -23,8 +23,8 @@
 //  INCLUDES
 #include <apmstd.h>
 #include <f32file.h>
-#include <oma2agent.h>
-#include <drmtypes.h>
+#include <Oma2Agent.h>
+#include <DRMTypes.h>
 
 using namespace ContentAccess;
 // CONSTANTS
--- a/drm_plat/drm_service_api/inc/drmserviceapi.h	Mon May 03 12:46:34 2010 +0300
+++ b/drm_plat/drm_service_api/inc/drmserviceapi.h	Fri May 14 16:07:34 2010 +0300
@@ -21,7 +21,7 @@
 #define C_CDRMSERVICEAPI_H
 
 #include <e32base.h>
-#include "drmtypes.h"
+#include "DRMTypes.h"
 
 // Forward declarations
 class RDRMClockClient;
--- a/inc/DrmKeyStorage.h	Mon May 03 12:46:34 2010 +0300
+++ b/inc/DrmKeyStorage.h	Fri May 14 16:07:34 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-2010 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"
@@ -25,7 +25,12 @@
 // CLASS DECLARATION
 
 /**
-*  CDrmKeyStorage: Contains key storage for OMA DRM 2.0
+*  CDrmKeyStorage: Contains key storage for OMA DRM 2.x
+*
+*  Generally the methods to the class require that a root certificate is selected.
+*  A specific root certificate can be selected or the default root can be selected.
+*  Operations needing the PKI keys should fail if the key has not been selected.
+*  Suggested error code: KErrNotReady
 *
 *  @lib    -
 *  @since  3.0
@@ -38,53 +43,231 @@
     
 public: // New functions
 
+    /**
+    *  Destructor
+    */
+
     virtual ~MDrmKeyStorage() = 0;
     
+    /**
+    * ModulusSize
+    *
+    * Return the modulus size of the selected certificates private key.
+    *
+    * @return   Modulus size of the PKI key 
+    */
+    
     virtual TInt ModulusSize() = 0;
-
+    
+    /**
+    * SelectTrustedRootL
+    *
+    * Selects the trusted root certificate to be used for operation occurring after
+    * this call
+    *
+    * @param    aRootKeyHash      Hash of the root key to be used.
+    * @leave    Symbian OS error codes
+    */
+    
     virtual void SelectTrustedRootL(
         const TDesC8& aRootKeyHash) = 0;
-        
+
+    /**
+    * SelectedRootIsCmla
+    *
+    * Checks if the selected root is a CMLA root
+    *
+    * @return   ETrue if the selected root is a CMLA root
+    *           EFalse if the root does not exist or is not a CMLA root
+    */
+            
     virtual TBool SelectedRootIsCmla() = 0;
-        
+
+    /**
+    * SelectDefaultRootL
+    *
+    * Selects the default root certificate of the device/keystorage implementation
+    *
+    * @leave    Symbian OS error code if the root can't be selected for some reason
+    */
+            
     virtual void SelectDefaultRootL() = 0;
-        
+
+    /**
+    * GetTrustedRootsL
+    *
+    * Get a list of unique identifiers for the trusted roots of the
+    * device / keystorage implementation. Generally PKI public key hash values.
+    *
+    * @param    aRootList     A pointer array of trusted root certificate hash values
+    *                         or other unique identifiers for the certificates
+    * @leave    Symbian OS error codes
+    */
+            
     virtual void GetTrustedRootsL(
         RPointerArray<HBufC8>& aRootList) = 0;
-        
+
+    /**
+    * GetCertificateChainL
+    *
+    * Get the certificate chain of the selected certificate
+    *
+    * @param    aRootList     A pointer array of certificate hash values
+    *                         or other unique identifiers for the certificates
+    *                         in the certificate chain
+    * @leave    Symbian OS error codes
+    */
+            
     virtual void GetCertificateChainL(
         RPointerArray<HBufC8>& aCertChain) = 0;
+    
+    /**
+    * RsaSignL
+    *
+    * Create an RSA signature of the buffer given
+    *
+    * @param    aInput         A descriptor containing the data to be signed
+    * @return   Signed buffer. Caller is responsible for freeing it.
+    * @leave    Symbian OS error codes
+    */
         
     virtual HBufC8* RsaSignL(
         const TDesC8& aInput) = 0;
-    
+
+    /**
+    * RsaDecryptL
+    *
+    * Decrypt the RSA encrypted buffer
+    *
+    * @param    aInput         A descriptor containing the data to be decrypted
+    * @return   Decrypted buffer. Caller is responsible for freeing it.
+    * @leave    Symbian OS error codes
+    */
+        
     virtual HBufC8* RsaDecryptL(
         const TDesC8& aInput) = 0;
-        
+
+    /**
+    * ImportDataL
+    *
+    * Allows the importing of PKI keys into the system
+    * Should import: Private Key, Public Certificate and all
+    * signing certificates for the certificate chain all the way to the root.
+    *
+    * Mostly usable for debugging purposes. Should be used with caution.
+    *
+    * @param    aPrivateKey           Private key of the imported PKI key.
+    * @param    aCertificateChain     Public Certificate and signing certificates
+    * @leave    Symbian OS error codes
+    */
+            
     virtual void ImportDataL(
         const TDesC8& aPrivateKey,
         const RArray<TPtrC8>& aCertificateChain) = 0;
-        
+
+    /**
+    * GetDeviceSpecificKeyL
+    *
+    * Get the device specific key/identifier that has a length of
+    * KDeviceSpecificKeyLength. Must return the same value every time.
+    * This method must not require the root to be selected.
+    *
+    * Does not require the selection of 
+    *
+    * @param    aKey      Buffer to fit the bytes of a device specific
+    *                     unique key / identifier. Must return the same
+    *                     value every time
+    * @leave    Symbian OS error codes
+    */
+            
     virtual void GetDeviceSpecificKeyL(
         TBuf8<KDeviceSpecificKeyLength>& aKey) = 0;
+    
+    /**
+    * GetRdbSerialNumberL
+    *
+    * This method fetches a unique serial number for the OMA DRM rights database
+    * currently in use. Does not have to be unique per device, but should return
+    * the same value while the current database is in use.
+    * Should create a new serial number if one does not exists.
+    *
+    * @param    aSerialNumber      Serial number for the OMA DRM
+    *                              rights database
+    * @leave    Symbian OS error codes
+    */
         
     virtual void GetRdbSerialNumberL(
     	TBuf8<KRdbSerialNumberLength>& aSerialNumber) = 0;
-    	
+
+    /**
+    * GenerateNewRdbSerialNumberL(
+    *
+    * This method creates a new unique serial number for the OMA DRM rights database. 
+    * Length of the serial number is defined by KRdbSerialNumberLength constant.
+    * Should be random and must be persisted until a new serial number is generated by
+    * a new call to this method.
+    *
+    * Recommend storing the serial number into the file system or other secure location.
+    * For example under the rightsserver.exe private directory.    
+    *
+    * @leave    Symbian OS error codes
+    */
+        	
    	virtual void GenerateNewRdbSerialNumberL() = 0;
-   	
+
+    /**
+    * UdtEncryptL
+    *
+    * Encrypt the User Data Transfer data. Usable only in the user data transfer use case.
+    * Uses it's own User Data Transfer PKI key.
+    *
+    * @param    aInput      Input buffer to be encrypted
+    * @return   Buffer encrypted with the User Data Transfer specific PKI key.
+    * @leave    Symbian OS error codes
+    */
+       	
    	virtual HBufC8* UdtEncryptL(
    	    const TDesC8& aInput) = 0;
-   	    
+   	
+    /**
+    * GetRootCertificatesL
+    *
+    * Get a list of all the root certificates of the device.
+    * Returns actual binary format (.der) certificates.
+    *
+    * @param    aRootCerts     Param description
+    * @return   Return value descriptions
+    * @leave    Symbian OS error codes
+    */
+       	    
    	virtual void GetRootCertificatesL(
         RPointerArray<HBufC8>& aRootCerts) = 0; 
 
+    /**
+    * RandomDataGetL
+    *
+    * Get random data into the beginning of the aData buffer.
+    *
+    * @param    aData      A return buffer that has enough space for the aLength amount of data.
+    * @param    aLength    Amount of random data requested
+    * @leave    Symbian OS error codes
+    */
+    
     virtual void RandomDataGetL( 
         TDes8& aData, 
         const TInt aLength ) = 0; 
 
     };
     
+/**
+* DrmKeyStorageNewL
+*
+* @return   Pointer to an object which implements the MDrmKeyStorage
+*           interface. Underlying implementation tells which
+*           keystorage to load if there are emulator/hw specific ones
+* @leave    Symbian OS error codes
+*/    
+    
 IMPORT_C MDrmKeyStorage* DrmKeyStorageNewL();
 
 #endif      // DRMKEYSTORAGE_H
--- a/omadrm/drmengine/agentv2/src/Oma2AgentAttributes.cpp	Mon May 03 12:46:34 2010 +0300
+++ b/omadrm/drmengine/agentv2/src/Oma2AgentAttributes.cpp	Fri May 14 16:07:34 2010 +0300
@@ -72,6 +72,20 @@
 const TInt KMaxAlbumTrack = 3;
 const TInt KMaxRecordingYear = 6;
 
+const TInt KAllowAllDefined =  
+    DRM::EDrmAllowAudioAnalog |
+    DRM::EDrmAllowAudioFmTransmitter |
+    DRM::EDrmAllowAudioBluetooth |
+    DRM::EDrmAllowAudioUplink |
+    DRM::EDrmAllowVideoAnalog |
+    DRM::EDrmAllowVideoMacroVision |
+    DRM::EDrmAllowAudioUsb |   
+    DRM::EDrmAllowAudioHdmiHdcpRequired |
+    DRM::EDrmAllowAudioHdmi |
+    DRM::EDrmAllowVideoHDMI  |
+    DRM::EDrmAllowVideoHdmiHdcpRequested |
+    DRM::EDrmAllowVideoHdmiHdcpRequired;
+
 // ============================= LOCAL FUNCTIONS ===============================
 
 // -----------------------------------------------------------------------------
@@ -451,7 +465,14 @@
                     }
                 break;
             case DRM::EDrmAllowedOutputs:
-                value = DRM::EDrmAllowAudioAnalog | DRM::EDrmAllowAudioBluetooth | DRM::EDrmAllowVideoMacroVision | DRM::EDrmAllowAudioFmTransmitter;
+                if( dcf2 )
+                    {
+                    value = DRM::EDrmAllowAudioAnalog | DRM::EDrmAllowAudioBluetooth | DRM::EDrmAllowVideoMacroVision | DRM::EDrmAllowAudioFmTransmitter;
+                    }
+                else
+                    {
+                    value = KAllowAllDefined;
+                    }
                 break;
             default:
                 value = KErrCANotSupported;
@@ -683,7 +704,14 @@
                      }
                 break;
             case DRM::EDrmAllowedOutputs:
-                value = DRM::EDrmAllowAudioAnalog | DRM::EDrmAllowAudioBluetooth | DRM::EDrmAllowVideoMacroVision | DRM::EDrmAllowAudioFmTransmitter;
+                if( dcf2 )
+                    {
+                    value = DRM::EDrmAllowAudioAnalog | DRM::EDrmAllowAudioBluetooth | DRM::EDrmAllowVideoMacroVision | DRM::EDrmAllowAudioFmTransmitter;
+                    }
+                else
+                    {
+                    value = KAllowAllDefined;
+                    }
                 break;
             case ERightsNone:
                 if (aRightsClient == NULL)
@@ -817,6 +845,7 @@
     RDRMRightsClient* aRightsClient)
     {
     TInt err = KErrCANotSupported;
+    TInt ret = KErrNone;
     HBufC* b = NULL;
     COma1Dcf* dcf1 = NULL;
     COma2Dcf* dcf2 = NULL;
--- a/omadrm/drmengine/agentv2/src/Oma2AgentContent.cpp	Mon May 03 12:46:34 2010 +0300
+++ b/omadrm/drmengine/agentv2/src/Oma2AgentContent.cpp	Fri May 14 16:07:34 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-2010 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"
@@ -26,7 +26,7 @@
 #include <utf.h>
 
 
-#include <schemehandler.h>
+#include <SchemeHandler.h>
 
 
 #include "Oma2AgentContent.h"
@@ -545,7 +545,6 @@
 
 // -----------------------------------------------------------------------------
 // COma2AgentContent::NotifyStatusChange
-//
 // -----------------------------------------------------------------------------
 //
 void COma2AgentContent::NotifyStatusChange(
--- a/omadrm/drmengine/drmclock/Inc/GPSTimeUpdater.h	Mon May 03 12:46:34 2010 +0300
+++ b/omadrm/drmengine/drmclock/Inc/GPSTimeUpdater.h	Fri May 14 16:07:34 2010 +0300
@@ -29,8 +29,7 @@
 	{
 public:
 	~CGPSTimeUpdater();
-	static CGPSTimeUpdater* New( RPositionServer &aPosServer, 
-	                             const TPositionModuleId& aModuleId,
+	static CGPSTimeUpdater* New( const TPositionModuleId& aModuleId,
 	                             CDRMClock* aClock );
 	
 	inline const TPositionModuleId& ModuleId() { return iModuleId; }
@@ -38,8 +37,7 @@
 	inline const TBool TimeReceived() { return iTimeReceived; }
 	
 private:
-	CGPSTimeUpdater( RPositionServer &aPosServer, 
-	                 const TPositionModuleId& aModuleId, 
+	CGPSTimeUpdater( const TPositionModuleId& aModuleId, 
 	                 CDRMClock* aClock );
 	void ConstructL();
 	
@@ -48,7 +46,7 @@
 	TInt RunError( TInt aError );
 	
 private:
-	RPositionServer &iPosServer;
+	RPositionServer iPosServer;
 	RPositioner iPositioner;
 	TPositionModuleId iModuleId;
 	
--- a/omadrm/drmengine/drmclock/Inc/GPSWatcher.h	Mon May 03 12:46:34 2010 +0300
+++ b/omadrm/drmengine/drmclock/Inc/GPSWatcher.h	Fri May 14 16:07:34 2010 +0300
@@ -21,39 +21,52 @@
 #define GPSWATCHER_H_
 
 #include <lbs.h>
-
+#include <epos_intgpshwstatus.h>
 
 class CGPSTimeUpdater;
 class CDRMClock;
 
-class CGPSWatcher : public CTimer
+
+class CGPSWatcher : public CTimer, public MPosIntGpsHwStatusObserver
 	{
 public:
 	~CGPSWatcher();
 	static CGPSWatcher* NewL( CDRMClock* aClock );
 
+public: // from MPosIntGpsHwStatusObserver
+	/**
+	 * Notify observer of a GPS hardware status event
+	 * @param aStatus The GPS hardware status.
+	 * @param aError KErrNone if successful. Other possible error values defined by RProperty::Get()
+	 */
+    void OnStatusUpdateEvent(CPosIntGpsHwStatus::TIntGpsHwStatus aStatus, TInt aError);
+
 private:
 	CGPSWatcher( CDRMClock* aClock );
 	void ConstructL();
 	
-	void CheckModules();
-	void Subscribe();
+	void CheckSatellites();
+	TInt CheckModules();
 	void RunL();
 	void DoCancel();
 	TInt RunError( TInt aError );
 	
 private:
-	RPositionServer iPosServer;
-	TPositionModuleStatusEvent iStatusEvent;
+	// owned:
+	RPointerArray<CGPSTimeUpdater> iTimeUpdaters;
 	
-	// owned
-	CGPSTimeUpdater *iTimeUpdater;
+	// not owned:
+	CDRMClock* iClock;
 	
-	// not owned
-	CDRMClock* iClock;
-
-	// Retry counter
-	TInt iRetryCounter;
+	// GPS status information:
+	CPosIntGpsHwStatus* iStatusUpdater;
+	
+	// status received from GPS:
+	CPosIntGpsHwStatus::TIntGpsHwStatus iGpsStatus;
+	
+	// List of active satellite modules:   
+	RPointerArray<TPositionModuleInfo> iActiveSatelliteModules;   
+	 
 	};
 
 #endif /* GPSWATCHER_H_ */
--- a/omadrm/drmengine/drmclock/Src/GPSTimeUpdater.cpp	Mon May 03 12:46:34 2010 +0300
+++ b/omadrm/drmengine/drmclock/Src/GPSTimeUpdater.cpp	Fri May 14 16:07:34 2010 +0300
@@ -26,6 +26,10 @@
 
 _LIT(KDRMClockServerName, "DRMClockServer");
 
+const TInt KGPSUpdateInterval   = 1000000;  // One second
+const TInt KGPSUpdateAge        = 500000;   // Half a second
+const TInt KGPSUpdateTimeOut    = 30000000; // Thirty seconds
+
 // ============================ MEMBER FUNCTIONS ===============================
 
 
@@ -35,11 +39,9 @@
 // might leave.
 // -----------------------------------------------------------------------------
 //   
-CGPSTimeUpdater::CGPSTimeUpdater( RPositionServer &aPosServer, 
-                                  const TPositionModuleId& aModuleId,
+CGPSTimeUpdater::CGPSTimeUpdater( const TPositionModuleId& aModuleId,
                                   CDRMClock* aClock ) : 
 	CActive(EPriorityHigh),
-	iPosServer(aPosServer),
 	iModuleId(aModuleId),
 	iClock( aClock ),
 	iTimeReceived( EFalse )
@@ -58,6 +60,7 @@
 	Cancel();
 	
 	iPositioner.Close();
+	iPosServer.Close();
 	}
 
 // -----------------------------------------------------------------------------
@@ -65,11 +68,10 @@
 // Two-phased constructor
 // -----------------------------------------------------------------------------
 //
-CGPSTimeUpdater* CGPSTimeUpdater::New( RPositionServer &aPosServer, 
-                                       const TPositionModuleId& aModuleId,
+CGPSTimeUpdater* CGPSTimeUpdater::New( const TPositionModuleId& aModuleId,
                                        CDRMClock* aClock )
 	{
-	CGPSTimeUpdater* self = new CGPSTimeUpdater(aPosServer, aModuleId, aClock);
+	CGPSTimeUpdater* self = new CGPSTimeUpdater(aModuleId, aClock);
 	if(self)
 		{
 		TRAPD(err, self->ConstructL());
@@ -92,6 +94,8 @@
 	{
 	DRMLOG(_L("CGPSTimeUpdater::ConstructL >>"));
 	
+	User::LeaveIfError( iPosServer.Connect() );
+	
 	// Open positioner
 	User::LeaveIfError(iPositioner.Open(iPosServer, iModuleId));
 	User::LeaveIfError(iPositioner.SetRequestor(CRequestor::ERequestorService,
@@ -101,9 +105,9 @@
 	// Set update options
 	TPositionUpdateOptions updateOptions;
 	updateOptions.SetAcceptPartialUpdates(ETrue);
-	updateOptions.SetMaxUpdateAge(0);
-	updateOptions.SetUpdateInterval(TTimeIntervalMicroSeconds(0));
-	updateOptions.SetUpdateTimeOut(TTimeIntervalMicroSeconds(30*1000*1000));
+	updateOptions.SetMaxUpdateAge(KGPSUpdateAge);
+	updateOptions.SetUpdateInterval(TTimeIntervalMicroSeconds(KGPSUpdateInterval));
+	updateOptions.SetUpdateTimeOut(TTimeIntervalMicroSeconds(KGPSUpdateTimeOut));
 	User::LeaveIfError(iPositioner.SetUpdateOptions(updateOptions));
 	
 	// Request position update
@@ -124,7 +128,9 @@
 	
 	DRMLOG2(_L("CGPSTimeUpdater::RunL: iStatus=%d"), iStatus.Int());
 	
-	if( iStatus == KErrNone || iStatus == KPositionPartialUpdate )
+	// We got some kind of an update:
+	if( iStatus == KErrNone || 
+	    iStatus == KPositionPartialUpdate )
 		{
 		DRMLOG(_L("CGPSTimeUpdater::RunL: position updated!"));
 		
@@ -140,18 +146,9 @@
 		// Mark time as received
 		iTimeReceived = ETrue;
 		}
-		
-    // if the call timed out try again		
-    if( iStatus == KErrTimedOut ) 
-	    {
-	    // Request position update
-	    iPositioner.NotifyPositionUpdate(iSatelliteInfo, iStatus);
-	    SetActive();
-	    }	
-	else 	
-	    {    	
-	    iPositioner.Close();
-        }
+
+    // We only try once, if it fails it fails and we will try again when it is activated the next time.
+	iPositioner.Close();
         
 	DRMLOG(_L("CGPSTimeUpdater::RunL <<"));
 	}
--- a/omadrm/drmengine/drmclock/Src/GPSWatcher.cpp	Mon May 03 12:46:34 2010 +0300
+++ b/omadrm/drmengine/drmclock/Src/GPSWatcher.cpp	Fri May 14 16:07:34 2010 +0300
@@ -26,8 +26,6 @@
 #include "drmlog.h"
 
 // Wait time in microseconds: wait 5 minutes
-const TInt KGpsDefaultWaitTime = 300000000;
-const TInt KMaxRetryCounter = 20;
 
 // ============================ MEMBER FUNCTIONS ===============================
 
@@ -41,7 +39,8 @@
 CGPSWatcher::CGPSWatcher( CDRMClock* aClock ) :
 	CTimer(EPriorityHigh),
 	iClock( aClock ),
-	iRetryCounter( 0 )
+	iStatusUpdater( NULL ),
+	iGpsStatus( CPosIntGpsHwStatus::EStatusUnknown )
 	{
 	CActiveScheduler::Add(this);
 	}
@@ -55,10 +54,10 @@
 	{
 	Cancel();
 
-	delete iTimeUpdater; 
-	iTimeUpdater = 0; 
-	
-	iPosServer.Close();
+    iTimeUpdaters.ResetAndDestroy();
+	iActiveSatelliteModules.ResetAndDestroy();
+    
+    delete iStatusUpdater;
 	}
 
 // -----------------------------------------------------------------------------
@@ -84,28 +83,42 @@
 //
 void CGPSWatcher::ConstructL()
 	{
+    TRequestStatus* status = &iStatus;    	    
 	CTimer::ConstructL();
 
-	User::LeaveIfError(iPosServer.Connect());
-	
-	// Immediately subscribe for module status events
-	iStatusEvent.SetRequestedEvents(TPositionModuleStatusEventBase::EEventDeviceStatus);
-	Subscribe();
-
-	// Check initial state
-	CheckModules();
+    // Create the status updater
+    iStatusUpdater = CPosIntGpsHwStatus::NewL(*this);
+        
+    // Get the status manually, if we can, it's ok if we cant
+    TRAP_IGNORE( iStatusUpdater->GetStatusL( iGpsStatus ) );
+    
+    if( !IsActive() )
+        {
+        SetActive();    
+        }
+        
+    User::RequestComplete(status, KErrNone);   
 	}
 
 // -----------------------------------------------------------------------------
-// CGPSWatcher::Subscribe
-// Subscribe to position events
+// CGPSWatcher::OnStatusUpdateEvent
+// Inherited from MPosIntGpsHwStatusObserver
 // -----------------------------------------------------------------------------
 //
-void CGPSWatcher::Subscribe()
-	{
-	iPosServer.NotifyModuleStatusEvent(iStatusEvent, iStatus);
-	SetActive();
-	}
+void CGPSWatcher::OnStatusUpdateEvent(CPosIntGpsHwStatus::TIntGpsHwStatus aStatus, TInt aError)
+    {
+    TRequestStatus* status = &iStatus;    
+    
+    // store the status from the Gps:
+    iGpsStatus = aStatus;
+        
+    User::RequestComplete(status, aError);
+
+    if( !IsActive() )
+        {        
+        SetActive();
+        }    
+    }
 
 // -----------------------------------------------------------------------------
 // CGPSWatcher::RunL
@@ -114,41 +127,53 @@
 //
 void CGPSWatcher::RunL()
 	{
+    TInt error = KErrNone;
+    
 	// If there are errors just leave and stop watching:    
-	DRMLOG2(_L("CGPSWatcher::RunL: error: '%d'"), iStatus.Int());   
-    	        
-	// If we already updated the time:
-	if( iTimeUpdater && iTimeUpdater->TimeReceived() )
-	    {
-	    DRMLOG( _L("CGPSWatcher::RunL: time updater exists, time received, deleting"));    
-	    iClock->Notify( CDRMClock::ENotifyGPSTimeReceived );    
-	    DRMLOG( _L("CGPSWatcher::RunL: object deleted, returning"));
-	    return;    
-	    }
+	DRMLOG2(_L("CGPSWatcher::RunL: status: '%d'"), iStatus.Int());   
 
-	// The server was killed:
-    if( iStatus.Int() == KErrServerTerminated )
+    switch( iGpsStatus )
         {
-        if( iRetryCounter > KMaxRetryCounter )
-            {
-            DRMLOG( _L("CGPSWatcher::RunL: Maximum retries reached, stopping watcher.") );    
-            iClock->Notify( CDRMClock::ENotifyGPSTimeReceived );
-            return;         
-            }    
-	    // If there are errors just leave and stop watching:    
-	    DRMLOG2(_L("CGPSWatcher::RunL: server terminated, waiting '%d' microseconds"), KGpsDefaultWaitTime);               
-        After( TTimeIntervalMicroSeconds32(KGpsDefaultWaitTime) );
-        return;    
-        }	  
-	    
-	Subscribe();
-	TPositionModuleStatusEventBase::TModuleEvent occurredEvents = iStatusEvent.OccurredEvents();
-	DRMLOG2(_L("CGPSWatcher::RunL: occurredEvents = 0x%X"), occurredEvents);
-	
-	
-	// If time updater is not running, check module statuses
-	if(!iTimeUpdater)
-		CheckModules();
+        // GPS HW is used and is receiving location fixes.
+        case CPosIntGpsHwStatus::EStatusOn:
+            DRMLOG(_L("CGPSWatcher::RunL: CPosIntGpsHwStatus::EStatusOn: Checking modules"));
+            // No active modules, check again:
+            if( !iActiveSatelliteModules.Count() )
+                {
+                DRMLOG(_L("CGPSWatcher::RunL: CPosIntGpsHwStatus::EStatusOn: No active modules in list Checking modules"));    
+                error = CheckModules();    
+                }
+            
+            // if we have some or found some check the satellites for updates:    
+            if( !error && iActiveSatelliteModules.Count() )
+                {
+                DRMLOG2(_L("CGPSWatcher::RunL: CPosIntGpsHwStatus::EStatusOn: Active modules available (%d), check satellites"), iActiveSatelliteModules.Count());                     
+                // Get the time update:
+                CheckSatellites();   
+                }
+            else
+                {
+                DRMLOG2(_L("CGPSWatcher::RunL: CPosIntGpsHwStatus::EStatusOn: Still no active modules in list or error (%d) occurred"), error);                     
+                }        
+            break;  
+        // GPS HW is used and is searching for location.
+        case CPosIntGpsHwStatus::EStatusActive:
+            // Get a list of active GPS modules:
+            DRMLOG(_L("CGPSWatcher::RunL: CPosIntGpsHwStatus::EStatusActive: Checking modules"));
+            
+            // return value not important:
+            CheckModules();
+            break;
+        case CPosIntGpsHwStatus::EStatusUnknown:
+        case CPosIntGpsHwStatus::EStatusOff:
+            // Clear the list of modules:
+            DRMLOG2(_L("CGPSWatcher::RunL: CPosIntGpsHwStatus::EStatusUnknown,Off or default: (%d) Checking modules"), iGpsStatus);            
+            iActiveSatelliteModules.ResetAndDestroy();  
+            iTimeUpdaters.ResetAndDestroy();         
+        default:
+            // Do nothing    
+            break;   
+        }		
 	}
 
 
@@ -159,7 +184,6 @@
 //
 void CGPSWatcher::DoCancel()
 	{
-	iPosServer.CancelRequest(EPositionServerNotifyModuleStatusEvent);
 	}
 
 // -----------------------------------------------------------------------------
@@ -178,36 +202,54 @@
 // Check what modules are present and act accordingly
 // -----------------------------------------------------------------------------
 //
-void CGPSWatcher::CheckModules()
+TInt CGPSWatcher::CheckModules()
 	{
-	// Get number of modules
-	TUint numModules;
-	if(iPosServer.GetNumModules(numModules)!=KErrNone || !numModules)
-		return;
+	TUint numModules = 0;
+	TPositionModuleInfo* moduleInfo = NULL;
+	TInt error = KErrNone;
+	RPositionServer posServer;
 	
-	// Collect all active and satellite capable modules
-	TFullName moduleName;
-	RPointerArray<TPositionModuleInfo> satelliteModules;
-	
-	TPositionModuleInfo *moduleInfo(0);
-	
-	for(TUint i=0; i<numModules; i++)
+	// Destroy the old list:
+	iActiveSatelliteModules.ResetAndDestroy();
+		    
+	// open connection to the positioning server:	    
+    error = posServer.Connect();		    
+	if( error )
+	    {
+	    return error;    
+	    }	    
+		    
+    error = posServer.GetNumModules( numModules );		    
+		    
+	if(error || !numModules)
+	    {
+        DRMLOG2(_L("CheckModules: modules available (%d)"), numModules);	  
+        DRMLOG2(_L("CheckModules: error code (%d)"), error);	          
+      
+		return KErrNotFound;
+        }
+        
+	for( TUint i = 0; i < numModules; i++)
 		{
 		if(!moduleInfo)
 			{
 			moduleInfo = new TPositionModuleInfo;
-			if(!moduleInfo)
-			    {   
-				continue;
-			    }
+            if( !moduleInfo )
+                {
+                // in practice OOM situation
+                posServer.Close();    
+                return KErrNoMemory;    
+                }
 			}
 		
 		// Get module info from the server
-		if(iPosServer.GetModuleInfoByIndex(i, *moduleInfo) != KErrNone)
+		if(posServer.GetModuleInfoByIndex(i, *moduleInfo) != KErrNone)
 		    {
 			continue;
             }
-            
+
+        DRMLOG(_L("CheckModules: Checking for internal & satellite capable"));	
+                        
 		// Check if the module is internal and satellite capable		
 		if(! (moduleInfo->DeviceLocation() & TPositionModuleInfo::EDeviceInternal) ||
 		   ! (moduleInfo->Capabilities() & TPositionModuleInfo::ECapabilitySatellite) )
@@ -216,47 +258,75 @@
 			continue;
 			}
 		
-		// Get module status
+		// Get module status and check if the module is actually active:
+
+
+        DRMLOG(_L("CheckModules: Checking module status"));	
+        		
 		TPositionModuleStatus moduleStatus;
-		if(iPosServer.GetModuleStatus(moduleStatus, moduleInfo->ModuleId()) != KErrNone)
+		
+		if(posServer.GetModuleStatus(moduleStatus, moduleInfo->ModuleId()) != KErrNone)
 		    {
 			continue;
 		    }
-		// Check if the module is active
-		if(moduleStatus.DeviceStatus() != TPositionModuleStatus::EDeviceActive) 
+
+		// Check if the module is active or ready as all might not use the active state:
+		if(!(moduleStatus.DeviceStatus() == TPositionModuleStatus::EDeviceActive ||
+		     moduleStatus.DeviceStatus() == TPositionModuleStatus::EDeviceReady) ) 
 		    {
 			continue;
 		    }
 
-		moduleInfo->GetModuleName(moduleName);
-		
-		DRMLOG6( _L("Module %d: id=0x%08X, name = %S, cap=0x%08X, status=%d"), i, moduleInfo->ModuleId().iUid, &moduleName, moduleInfo->Capabilities(), moduleStatus.DeviceStatus());
+
+        DRMLOG(_L("CheckModules: Module is ready or active"));	
 			
 		// Active internal satellite device, try to append in the array
-		if(satelliteModules.Append(moduleInfo) == KErrNone)
+		if(iActiveSatelliteModules.Append(moduleInfo) == KErrNone)
 		    {
+		    // Set this to 0 so that on the next round a new one will be created
+		    // old one will be in the list:   
+            DRMLOG2(_L("CheckModules: Appended modules to list available (%d) active now available"), iActiveSatelliteModules.Count());		     
 			moduleInfo = 0;
 		    }
 		}
 	
-	delete moduleInfo;
+	// There is a module created which was not added, delete it.	
+	if( moduleInfo )
+	    {
+	    delete moduleInfo;
+	    moduleInfo = NULL;    
+	    }	
 	
-	if(satelliteModules.Count())
-		{
-		DRMLOG( _L("Active satellite module available") );    
-		// We have an active satellite module available
-		TPositionModuleId moduleId = satelliteModules[0]->ModuleId();
-		
-		// Just allocating/deleting the time updater will do the trick
-		iTimeUpdater = CGPSTimeUpdater::New(iPosServer, moduleId, iClock);
-		}
-	else
-		{
-		DRMLOG( _L("No active satellite modules available") );    
-		// Delete time updater since no active GPS anymore
-		delete iTimeUpdater; iTimeUpdater = 0;
-		}
-	
-	satelliteModules.ResetAndDestroy();
-	satelliteModules.Close();
+	// close connection to the positioning server:    
+	posServer.Close();
+	return KErrNone;
 	}
+
+
+// -----------------------------------------------------------------------------
+// CGPSWatcher::CheckSatellites()
+// Check what modules are present and act accordingly
+// -----------------------------------------------------------------------------
+//
+void CGPSWatcher::CheckSatellites()
+    {
+    CGPSTimeUpdater* updater = NULL;
+        
+    iTimeUpdaters.ResetAndDestroy();
+        
+    // Start as many updaters as needed:    
+    for( TInt i = 0; i < iActiveSatelliteModules.Count(); i++ )
+        {
+        updater = CGPSTimeUpdater::New( iActiveSatelliteModules[i]->ModuleId(), iClock );
+        if( updater )
+            {
+            if( iTimeUpdaters.Append(updater) ) 
+                {
+                delete updater;
+                updater = NULL;    
+                }
+            }
+        }    
+    }
+    
+// End of File
--- a/omadrm/drmengine/group/RightsServer.mmp	Mon May 03 12:46:34 2010 +0300
+++ b/omadrm/drmengine/group/RightsServer.mmp	Fri May 14 16:07:34 2010 +0300
@@ -148,6 +148,7 @@
 LIBRARY         featmgr.lib                 // Feature Manager
 LIBRARY         wmdrmfileserverclient.lib
 LIBRARY         lbs.lib                     // GPS libraries
+LIBRARY         eposindicator.lib           // GPS positioner indicator lib
 #ifdef RD_DRM_METERING
 LIBRARY         random.lib
 #endif
--- a/omadrm/drmengine/legacy/src/drmcommon.rss	Mon May 03 12:46:34 2010 +0300
+++ b/omadrm/drmengine/legacy/src/drmcommon.rss	Fri May 14 16:07:34 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2005-2010 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"
--- a/omadrm/drmhelper/src/drmhelper.cpp	Mon May 03 12:46:34 2010 +0300
+++ b/omadrm/drmhelper/src/drmhelper.cpp	Fri May 14 16:07:34 2010 +0300
@@ -59,7 +59,7 @@
 
 #include <utf.h>
 
-#include <schemehandler.h> // for handling URLs
+#include <SchemeHandler.h> // for handling URLs
 #include "DRMHelperServer.h"
 #include "ConsumeData.h"
 #include "DRMTypes.h"
--- a/omadrm/drmplugins/drmfilter/src/HTTPFilterDRM.cpp	Mon May 03 12:46:34 2010 +0300
+++ b/omadrm/drmplugins/drmfilter/src/HTTPFilterDRM.cpp	Fri May 14 16:07:34 2010 +0300
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+ * Copyright (c) 2006-2010 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"
@@ -217,7 +217,7 @@
 
 //------------------------------------------------------------------------
 // CHTTPFilterDRM::MHFRunL
-// See MHTTPFilterBase::MHFRunL 
+// See MHTTPFilterBase::MHFRunL
 //------------------------------------------------------------------------
 //
 void CHTTPFilterDRM::MHFRunL( RHTTPTransaction aTransaction,
@@ -320,7 +320,7 @@
         case KErrCANoRights:
         case KErrCorrupt:
             {
-            error = NW_STAT_FAILURE; //Unable to perform operation   
+            error = NW_STAT_FAILURE; //Unable to perform operation
             }
             break;
         case KErrArgument:
@@ -461,10 +461,10 @@
 // CHTTPFilterDRM::CheckHeadersL
 // Check HTTP headers and extract MIME type
 //------------------------------------------------------------------------
-// 
+//
 void CHTTPFilterDRM::CheckHeadersL( const RHTTPTransaction& aTrans )
     {
-    // read the header data and check the MIME type here    
+    // read the header data and check the MIME type here
     // check the status and body
     RHTTPResponse response = aTrans.Response();
     TInt status = response.StatusCode();
@@ -512,7 +512,7 @@
                 drmData = CHTTPFilterDRMDataSupplier::NewL( aTrans.Id(),
                     response.Body(), const_cast<CHTTPFilterDRM*> ( this ) );
                 /** Support for Hutchinson's content protection scheme, CFM
-                 *  
+                 *
                  */
                 drmData->SetProcessedContentType( EStandardDRMContent );
                 /**
@@ -630,7 +630,7 @@
         // Do not encrypt JAD files:
         if ( headers.GetField( fieldNameStr, 0, fieldVal ) == KErrNone )
             {
-            // If it is a JAD always ignore any of the above:   
+            // If it is a JAD always ignore any of the above:
             const TBuf8<sizeof( KJADString )> JADStringBuf( KJADString );
             RStringF JADValue = strP.OpenFStringL( JADStringBuf );
             CleanupClosePushL( JADValue );
@@ -665,7 +665,7 @@
             iDataSups.Append( drmData );
             response.SetBody( *drmData );
 
-            ///         
+            ///
             RStringF DRMValue1 = strP.OpenFStringL( DRMStringBuf1 );
             CleanupClosePushL( DRMValue1 );