diff -r 000000000000 -r e686773b3f54 phonebookui/Phonebook2/USIMExtension/inc/CPsu2ViewManager.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phonebookui/Phonebook2/USIMExtension/inc/CPsu2ViewManager.h Tue Feb 02 10:12:17 2010 +0200 @@ -0,0 +1,206 @@ +/* +* 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: Phonebook 2 USIM UI Extension view manager. +* +*/ + + +#ifndef CPSU2VIEWMANAGER_H +#define CPSU2VIEWMANAGER_H + +// INCLUDES +#include +#include "Pbk2USimUI.hrh" +#include +#include + +// FORWARD DECLARATIONS +class CVPbkContactManager; +class MVPbkContactViewBase; +class TVPbkContactStoreUriPtr; +class MVPbkContactStoreList; +class MVPbkSimPhone; +class CPsu2SecUi; +class CVPbkSortOrder; +class MVPbkContactStore; +class MVPbkContactStoreObserver; +class MVPbkContactViewObserver; +class MPsu2ViewLaunchCallback; + +// CLASS DECLARATION + +/** + * Phonebook 2 USIM UI Extension view manager. + */ +class CPsu2ViewManager : public CBase, + private MVPbkContactStoreObserver, + private MVPbkContactViewObserver + { + public: // Constructors and destructor + + /** + * Creates a new instance of this class. + * + * @return A new instance of this class. + */ + static CPsu2ViewManager* NewL(); + + /** + * Destructor. + */ + virtual ~CPsu2ViewManager(); + + public: // Interface + + /** + * Returns the current engine side SIM view. + * + * @return Current engine side SIM view. + */ + inline MVPbkContactViewBase& CurrentSimView(); + + /** + * Returns the PIN 2 handler. + * + * @return PIN 2 handler. + */ + inline CPsu2SecUi& SecUi() const; + + /** + * Resets current store and view configuration and loads + * opens the store identified by given URI. + * Opens the contact view identified by given view id. + * + * @param aURI URI of contact store to open. + * @param aViewId Id of the view to open. + * @param aViewLaunchCallback Reference to receive contact + * view reference. + */ + void ResetAndInitiateStoreAndViewL( + const TVPbkContactStoreUriPtr& aURI, + TPsu2ViewId aViewId, + MPsu2ViewLaunchCallback& aViewLaunchCallback); + + /** + * Remove view's launch callback + */ + void RemoveViewLaunchCallBack(); + + /** + * Registers store and view. + */ + void RegisterStoreAndView(); + + /** + * Deregisters store and view. + */ + void DeregisterStoreAndView(); + + /** + * Returns current contact store. + */ + MVPbkContactStore& ContactStore(); + + /** + * Returns ETrue if store is available. EFalse if not. + * This function also shows unavailable note if store is not available + */ + TBool StoreAvailableL(); + + private: // From MVPbkContactStoreObserver + void StoreReady( + MVPbkContactStore& aContactStore ); + void StoreUnavailable( + MVPbkContactStore& aContactStore, + TInt aReason ); + void HandleStoreEventL( + MVPbkContactStore& aContactStore, + TVPbkContactStoreEvent aStoreEvent ); + + private: // From MVPbkContactViewObserver + void ContactViewReady( + MVPbkContactViewBase& aView ); + void ContactViewUnavailable( + MVPbkContactViewBase& aView ); + void ContactAddedToView( + MVPbkContactViewBase& aView, + TInt aIndex, + const MVPbkContactLink& aContactLink ); + void ContactRemovedFromView( + MVPbkContactViewBase& aView, + TInt aIndex, + const MVPbkContactLink& aContactLink ); + void ContactViewError( + MVPbkContactViewBase& aView, + TInt aError, + TBool aErrorNotified ); + + + private: // Implementation + CPsu2ViewManager(); + void ConstructL(); + MVPbkContactViewBase* CreateViewL( + TInt aViewDefResourceId ); + MVPbkContactViewBase* OpenViewL( + TPsu2ViewId aViewId ); + void DoOpenContactViewL(); + + private: // Data + /// Ref: Contact manager + CVPbkContactManager* iContactManager; + /// Own: Currently active view + MVPbkContactViewBase* iCurrentSimView; + /// Ref: Contact store list + MVPbkContactStoreList* iContactStores; + /// Own: Sim phone + MVPbkSimPhone* iPhone; + /// Own: PIN 2 handler + CPsu2SecUi* iSecUi; + /// Own: FDN sort order + CVPbkSortOrder* iFdnSortOrder; + /// Own: contact store + MVPbkContactStore* iContactStore; + /// Own: view id + TPsu2ViewId iViewId; + /// Ref: View LaunchCallback + MPsu2ViewLaunchCallback* iViewLaunchCallback; + /// Own: Store available indicator + TBool iStoreAvailable; + /// Own: Reference count + TInt iRefCount; + }; + +// INLINE FUNCTIONS + +// -------------------------------------------------------------------------- +// CPsu2ViewManager::CurrentSimView +// -------------------------------------------------------------------------- +// +inline MVPbkContactViewBase& CPsu2ViewManager::CurrentSimView() + { + return *iCurrentSimView; + } + +// -------------------------------------------------------------------------- +// CPsu2ViewManager::SecUi +// -------------------------------------------------------------------------- +// +inline CPsu2SecUi& CPsu2ViewManager::SecUi() const + { + return *iSecUi; + } + +#endif // CPSU2VIEWMANAGER_H + +// End of File