upnpsettings/upnpsharingui/inc/upnpappfilesharinglist.h
changeset 0 7f85d04be362
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/upnpsettings/upnpsharingui/inc/upnpappfilesharinglist.h	Thu Dec 17 08:52:00 2009 +0200
@@ -0,0 +1,234 @@
+/*
+* Copyright (c) 2005-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:      File sharing list class definition for Home Network
+ *
+*/
+
+
+
+
+
+
+#ifndef UPNPAPPFILESHARINGLIST_H
+#define UPNPAPPFILESHARINGLIST_H
+
+//  INCLUDES
+#include <aknsettingitemlist.h> // base class
+#include <AknWaitNoteWrapper.h> // base class MAknBackgroundProcess
+
+// FORWARD CLASS DECLARATION
+class CUPnPFileSharingEngine;
+class CUPnPAppWizard;
+
+// CONSTANTS
+const TInt KMaxTextSettingItemLenght = 128;
+
+/**
+ *  Settings list class declaration
+ *  @since S60 3.1
+ */
+NONSHARABLE_CLASS( CUPnPAppFileSharingList )
+    : public CAknSettingItemList
+    , public MAknBackgroundProcess
+    {
+private:
+    /**
+     * The internal phases of wait note when changing sharing state
+     */
+    enum TSharingStarting
+        {
+        EPhaseNotActive,
+        EPhaseProcessing,
+        EPhaseCompleted
+        };
+public:  // Constructors and destructor
+
+    /**
+     * Two-phased constructor.
+     */
+    static CUPnPAppFileSharingList* NewL(
+        CUPnPFileSharingEngine* aFileSharingEngine );
+
+    /**
+     * Destructor.
+     */
+    virtual ~CUPnPAppFileSharingList();
+
+public: // New functions
+    /**
+     * From CAknSettingItemList, this launches the setting page.
+     * @since S60 3.1
+     * @param aIndex, index of selected list item
+     * @param aCalledFromMenu, indicates if editing is called
+     *        trough menu or from keyboard
+     */
+    void  EditItemL (TInt aIndex, TBool aCalledFromMenu);
+
+    /**
+     * Reads data from storage to member variables
+     * @since S60 3.1
+     */
+    void LoadDataFromEngineL();
+
+public: //From MUPnPFileSharingEngineObserver
+
+    /**
+     * Function informs when file sharing was enabled or disabled
+     * @since S60 3.1
+     * @param aEngine File sharing engine
+     * @param aError, error code
+     * @param aPhase ETrue if current phase is sharing activation,
+     * otherwise EFalse
+     */
+    void HandleSharingStatus( 
+        CUPnPFileSharingEngine& aEngine, 
+        TInt aError, 
+        TBool aPhase );
+
+    /**
+     * Callback to inform if connection has been lost
+     * @since S60 3.1
+     * @param aEngine File sharing engine
+     */ 
+    void HandleSharingConnectionLost( 
+        CUPnPFileSharingEngine& aEngine );
+
+public:
+
+    /**
+     * Processes progress information and sets secondary texts according to
+     * received progress
+     * @since S60 3.1
+     * @param aProgressInfo, Type containg the progress information
+     */
+    void SetFilesharingTextsL(
+        const RArray<TUpnpProgressInfo>& aProgressInfo );
+
+    /**
+     * Sets the default secondary texts if no sharing is ongoing
+     * @since S60 3.1
+     * @param aMediaType, Type of the media
+     * @param aState, State of the selection
+     */
+    void SetDefaultSecondaryTextsL(
+        const TInt& aMediaType,
+        const TInt& aState );
+
+    /**
+     * Sets the secondary texts id there is sharing ongoing
+     * @since S60 3.1
+     * @param aMediaType, Type of the media
+     * @param aProgress, The value of progress in percents
+     */
+    void SetProgressSecondaryTextsL(
+        const TInt& aMediaType,
+        const TInt& aProgress );
+
+    /**
+     * Update the visibity of item ,when the list is switched foregroud.
+     */
+     void UpdateVisibitySettingItemL();
+     
+protected:
+
+    /**
+     * From CAknSettingItemList
+     */
+    void HandleResourceChange( TInt aType );
+
+    /**
+     * From CoeControl
+     */
+    void FocusChanged(
+        TDrawNow  aDrawNow );
+
+protected:
+    /**
+     * From MAknBackgroundProcess
+     */
+    void  StepL();
+
+    /**
+     * From MAknBackgroundProcess
+     */
+    TBool  IsProcessDone() const;
+
+
+private:
+
+    /**
+     * C++ default constructor.
+     */
+    CUPnPAppFileSharingList();
+
+    /**
+     * By default Symbian 2nd phase constructor is private.
+     * @param aFileSharingEngine, engine pointer
+     */
+    void ConstructL( CUPnPFileSharingEngine* aFileSharingEngine );
+
+    /**
+     * From CAknSettingItemList, Framework method to create a setting item.
+     * @since S60 3.1
+     * @param aIdentifier,  list item id to be created
+     * @return CAknSettingItem, pointer to list item
+     */
+    CAknSettingItem* CreateSettingItemL( TInt aIdentifier );
+
+    /**
+     * Create and show the wait note when starting sharing
+     * @since S60 3.1
+     */
+    void ShowWaitNoteL();
+
+
+private: // Data
+
+    /**
+     * list item text for visual albums
+     */
+    TBuf<KMaxTextSettingItemLenght>  iVisualAlbums;
+    /**
+     * list item text for playlists
+     */
+    TBuf<KMaxTextSettingItemLenght>  iPlayLists;
+    /**
+     * visibility setting item value
+     */
+    TInt iVisibility;
+    /**
+     *access point id setting item value
+     */
+    TInt iIapId;
+    /**
+     * engine pointer
+     */
+    CUPnPFileSharingEngine* iFileSharingEngine;
+    /**
+     * Indicator if wizard is run to update UI
+     */
+    TBool iWizardRun;
+    /**
+     * The state of sharing activation for progress note
+     */
+    TInt iStartingSharing;
+    /**
+     * Pointer to wizard
+     */
+    CUPnPAppWizard* iWizard;
+
+    };
+
+#endif      // UPNPAPPFILESHARINGLIST_H
+// End of File