bluetoothengine/btui/Ecom/inc/BTUIPairedDevicesView.h
branchRCL_3
changeset 55 613943a21004
parent 54 0ba996a9b75d
child 56 9386f31cc85b
--- a/bluetoothengine/btui/Ecom/inc/BTUIPairedDevicesView.h	Thu Aug 19 10:05:41 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,498 +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:  The view that handles paired devices.
-*
-*/
-
-#ifndef BTUIPAIREDDEVICESVIEW_H
-#define BTUIPAIREDDEVICESVIEW_H
-
-#include <aknview.h>
-#include <eikmenup.h>       // Menu pane definitions
-#include <AknWaitDialog.h>
-#include <AknQueryDialog.h>
-#include <btengconstants.h>
-#include <btengdiscovery.h>
-#include "BtuiPluginInterface.h"
-#include "btdevmodel.h"
-#include "BTUIListedDevicesView.h"
-#include "btuipluginman.h"
-#include "BTUIActive.h"
-#include <SecondaryDisplay/BtuiSecondaryDisplayAPI.h>
-#include <gstabbedview.h>
-
-class CAknNavigationControlContainer;
-class CBTUiDeviceContainer;        
-class CGSTabHelper;
-class CBTEngSettings;
-class CBTUIMainView;
-
-// if there are more connection that this, it is disallowed to
-// connect to any device
-const TInt KBtUiMaxConnections = 6; 
-
-/**
-* Paired devicew view of the pluetooth application.
-*
-* This view handles lists of paired device and pairing new devices, unpairing devices
-* and setting previously paired devices as blocked. Also connecting and disconnecting 
-* are done by using this view.
-*
-*@lib BTUIPlugin.dll
-*@since S60 v3.0
-*/
-class CBTUIPairedDevicesView : public CBTUIListedDevicesView,
-							  public MBTEngSettingsObserver,
-		                      public MProgressDialogCallback,
-		                      public MBTEngSdpResultReceiver, // for bt discovery. SDP is not used
-		                      public MGSTabbedView,
-		                      public MBTUIActiveObserver
-{	
-    public:
-
-		/**
-        * ECOM implementation instantiation function of 
-        * interface "CBtuiPluginInterface", to be used by BTUI Application.
-        */        
-        static CBTUIPairedDevicesView* NewL(MBtuiPluginViewActivationObserver* aObserver = NULL);
-
-		static CBTUIPairedDevicesView* NewLC(CBTUIMainView* aBaseView, CArrayPtrFlat<MGSTabbedView>* aTabViewArray);
-		
-		/**
-        * Symbian 2nd phase constructor.
-        */
-        void ConstructL();
-
-		void ConstructL( CBTUIMainView* aBaseView, CArrayPtrFlat<MGSTabbedView>* aTabViewArray );
-
-		/**
-        * Destructor.
-        */
-        virtual ~CBTUIPairedDevicesView();
-
-        /**
-        * From MGSTabbedView:
-        * Creates new icon for tab. Ownership is transferred to client.
-        * @since 3.1
-        */       
-        CGulIcon* CreateTabIconL();        
-
-    public: // Functions from base classes
-        
-        /**
-        * From CAknView Returns view id.
-        * @param None.
-        * @return View id.
-        */
-        TUid Id() const;
-
-        /**
-        * From CAknView Handles user commands.
-        * @param aCommand A command id.        
-        * @return None.
-        */
-        void HandleCommandL(TInt aCommand);
-
-	protected:		
-        /**
-        * C++ default constructor.
-        */
-        CBTUIPairedDevicesView (MBtuiPluginViewActivationObserver* aObserver= NULL);
-
-    private: // Functions from base classes
-
-        /**
-        * From CAknView Activates view.
-        * @param aPrevViewId Id of previous view.
-        * @param aCustomMessageId Custom message id.
-        * @param aCustomMessage Custom message.
-        * @return None.
-        */
-        void DoActivateL( const TVwsViewId& aPrevViewId,
-                                TUid aCustomMessageId,
-                          const TDesC8& aCustomMessage );
-
-        /**
-        * From CAknView Deactivates view.        
-        * @param None.
-        * @return None.
-        */
-        void DoDeactivate();       
-
-        /**
-        * From CAknView Dynamically initialises options menu.
-        * @param aResourceId Id identifying the menu pane to initialise.
-        * @param aMenuPane The in-memory representation of the menu pane.
-        * @return None.
-        */
-        void DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane);
-
-		// implemented from MProgressDialogCallback
-        /** This is used to cancel connecting and pairing, if user presses the Cancel-button.
-        * From MProgressDialogCallback Get's called when a dialog is dismissed.        
-        * @param aButtonId Id of the pressed button.
-        * @return None.
-        */
-        void DialogDismissedL( TInt aButtonId );
-
-	public: // from MBTDeviceObserver
-    	/**
-        * Informs the observer that an error happened in changing device status or a new device added.
-        * @param aErr Symbian error code
-        * @param aDevice the device which is changed.
-        * @param aDevNameArray hold conflicting devices' short names if "AlreadyExist" error happened during "connect"
-        * @return None.
-        */
-		void NotifyChangeDeviceComplete(const TInt aErr, const TBTDevice& aDevice,
-			const RBTDevNameArray* /*aDevNameArray*/ )	;
-    	/**
-        * Leaving version of NotifyChangeDeviceComplete
-        * @param aErr Symbian error code
-        * @param aDevice the device which is changed.
-        * @param aDevNameArray hold conflicting devices' short names if "AlreadyExist" error happened during "connect"
-        * @return None.
-        */
-		void NotifyChangeDeviceCompleteL(const TInt aErr, const TBTDevice& aDevice,
-			const RBTDevNameArray* /*aDevNameArray*/ )	;
-		
-		/** Updates the shown device list. This module will send this list forward
-		 * to container that takes care of the actual display of those devices
-		 *
-		 *@param aDevices all the devices to be shown
-		 *@param aSelectedItemIndex currently selected item after refresh.
-		 */
-		void RefreshDeviceList(const RDeviceArray* aDevices,TInt aSelectedItemIndex);	
-		
-	private: // From MBTUIActiveObserver
-	    
-	    /**
-	     * Callback to notify that an outstanding request has completed.
-	     * @param aActive Pointer to the active object that completed.
-	     * @param aId The ID that identifies the outstanding request.
-	     * @param aStatus The status of the completed request.
-	     */
-	    void RequestCompletedL( CBTUIActive* aActive, TInt aId, 
-	                            TInt aStatus );
-
-	    /**
-	     * Callback to notify that an error has occurred in RunL.
-	     *
-	     * @param aActive Pointer to the active object that completed.
-	     * @param aId The ID that identifies the outstanding request.
-	     * @param aStatus The status of the completed request.
-	     */
-	    void HandleError( CBTUIActive* aActive, TInt aId, 
-	                      TInt aError );
-		
-	public: // Operations to devices not containing confirmation queries
-        /**
-        * Sets the current security setting of the device.
-        * Does not ask user about it.
-        *
-        * @param aTrusted  ETrue when trusted, EFalse if untrusted.
-        * @return None.
-        */
-        void ChangeDeviceSecurityL( TBool aTrusted );
-        		
-        /**
-        * Issues prompts to connects to specified accessory.
-        * Connects to it if user andswers yes.
-        *
-        * @param TBTDevice  connect to this device
-        * @return None.
-        */
-		void ConnectL( const TBTDevice& aDevice, TBool aNewWaitNote );        
-   
-        /**
-        * Disconnects from the selected BT Accessory.
-        *
-        * @param None.
-        * @return None.
-        */
-        void DisconnectL();
-		
-		/**
-        * Removes iDisconnectQueryDlg created in DisconnectL
-        *
-        * @param None.
-        * @return None.
-        */        
-        void CancelDisconnectQueryDlg();
-        
-        /**
-        * Disconnects from the selected BT Accessory without query.
-        *
-        * @param None.
-        * @return None.
-        */        
-        void DisconnectWithoutQuery();
-
-    	/** Checks if there is an active phonecall.
-    	*@return ETrue if there is, EFalse otherwise
-    	*/
-    	TBool CallOnGoing();
-              		
-
-		/** This is used to create TCallBack to help. This is static, since TCallBack does not
-		 * allow instance methods. This is used by BlockDeviceDlgL to add help callback to the query.
-		 *
-		 * @param aTCoeHelpContext. Must be instance TCoeHelpContext, or NULL.
-		 * If this is not specified this will open help about blocked devices.
-		 * This is not an instance of TCoeHelpContext, since TCallback does not allow
-		 * parameters of other type that TAny*.
-		 * @return allways KErrNone. TCallBack does not allow void functions
-		 */
-		static TInt LaunchHelp(TAny *aTCoeHelpContext=NULL);
-
-	private: //These handle command given by user	
-        /**
-        * Asks new nick name for the BT Device from user and
-        * attempt to rename the device. Failures are handled by NotifyChangeDeviceComplete.
-        *
-        * @param None.
-        * @return None.
-        */
-        void RenameDeviceDlgL();
-
-        /**
-        * Asks confirmation for deleting a BT Device from user.
-        * Delete the current device if yes replied yes.
-        *
-        * @param None.
-        * @return None.
-        */
-        void DeleteDeviceDlgL();
-
-        /**
-        * Asks confirmation for deleting all BT devices from user.
-        * Delete the devices if yes replied yes.
-        *
-        * @param None.
-        * @return None.
-        */
-        void DeleteAllDevicesDlgL();
-
-        /**
-        * Initiates the pairing procedure to get a new paired device.
-        * DeviceSearchComplete is called after the dialog is done.
-        *
-        * @param None.
-        * @return None.
-        */
-        void NewPairedDeviceDlgL();
-        
-  		/**
-        * Asks confirmation for Blocking the selected BT Device.
-        * Blocks the current device if yes replied yes.
-        *
-        * @param None.
-        * @return None.
-        */
-		void BlockDeviceDlgL();
-		
-		/**Opens a wait note.
-		 *
-		 *@param dialog. The dialog object to be used for displaying this note.
-		 *@param aNoteResource The resource of the note, not including the text.
-		 *@param aNoteTextResource The text resource. The %U if this note is filled up with aDevName.
-		 *@param aSec SecondaryDisplaycommand
-		 *@param aDevName The dev name filled in aNoteTextResource
-		 */		
-		void OpenWaitNoteL(CAknWaitDialog *&dialog,TUint aNoteResource,TUint aNoteTextResource,
-			TSecondaryDisplayBtuiDialogs aSec,const TDesC& aDevName);
-		
-		/** Open Setting view for peripheral devices
-		 * 
-		 * @param None.
-		 * @return None.
-		 */
-		void LaunchSettingViewL();
-
-		/** Setup device specific menu options
-		 * 
-		 * @param None.
-		 * @return None.
-		 */
-		void SetupMenuCmd(TInt aIndex, CEikMenuPane* aMenu);
-		
-		
-	public:	// Inherited from MBTEngSdpResultReceiver
-		
-		
-		/** Inherited from MBTEngSdpResultReceiver and implemented as empty, 
-		 * since this class will not do service searches, only device searches.
-		 */
-		void ServiceSearchComplete( const RSdpRecHandleArray& aResult, 
-			TUint aTotalRecordsCount, TInt aErr ) ;
-		/** Inherited from MBTEngSdpResultReceiver and implemented as empty, 
-		 * since this class will not do attributes seaches, only device searches.
-		 */
-    	void AttributeSearchComplete( TSdpServRecordHandle aHandle, 
-    		const RSdpResultArray& aAttr,TInt aErr ) ;		
-		/** Inherited from MBTEngSdpResultReceiver and implemented as empty, 
-		 * since this class will not do service attribute seaches, only device searches.
-		 */
-	    void ServiceAttributeSearchComplete( TSdpServRecordHandle aHandle,
-	    	const RSdpResultArray& aAttr,TInt aErr );
-
-	  /**
-	    * Provides notification of the result of the discovery of nearby 
-	    * Bluetooth devices. If a device is selected this class will try to pair it.
-		*
-	    * @param aDevice The data structure encapsulates all information 
-	    *                about the selected device. Ownership of the data 
-	    *                structure has not been transfered and is still with
-	    *                the API client.
-	    *				 This is not TBTDevice that is normally used inside the UI.	    
-	    * @param aErr Error code of the device search operation; KErrNone if 
-	    *             sucessful, KErrCancel if the user cancelled the 
-	    *             dialog, KErrAbort if CBTEngDiscovery::CancelSearchRemoteDevice
-	    *             was called; otherwise one of the system-wide error codes.
-	    */
-	    void DeviceSearchComplete( CBTDevice* aDevice, TInt aErr );
-	    
-	    /**
-	     * Provides notification of the result of the discovery of nearby 
-	     * Bluetooth devices and EIR data. If a device is selected this class will try to pair it.
-	     *
-	     * @since S60 v5.1
-	     * @param aDevice The data structure encapsulates information 
-	     *                about the selected device. 
-	     *                Ownership of the data structure has not been transfered and
-	     *                is still with the API client.
-	     * @param aEirWrapper Contains the EIR data of the remote device.
-	     *                Ownership of the data structure has not been transfered and
-	     *                is still with the API client. 
-	     * @param aErr Error code of the device search operation; KErrNone if 
-	     *             sucessful, KErrCancel if the user cancelled the 
-	     *             dialog, KErrAbort if CBTEngDiscovery::CancelSearchRemoteDevice
-	     *             was called; otherwise one of the system-wide error codes.
-	     */	    
-	    void DeviceSearchComplete( CBTDevice* aDevice, 
-	            TNameEntry* aNameEntry, 
-	            TInt aErr );
-	    
-private:	    
-	  /** Leaving version of DeviceSearchComplete.
-		*
-	    * @param aDevice The data structure encapsulates all information 
-	    *                about the selected device. Ownership of the data 
-	    *                structure has not been transfered and is still with
-	    *                the API client.
-	    *				 This is not TBTDevice that is normally used inside the UI.
-	    * @param aEirWrapper Contains the EIR data of the remote device.
-        *                Ownership of the data structure has not been transfered and
-        *                is still with the API client.	    
-	    * @param aErr Error code of the device search operation; KErrNone if 
-	    *             sucessful, KErrCancel if the user cancelled the 
-	    *             dialog, KErrAbort if CBTEngDiscovery::CancelSearchRemoteDevice
-	    *             was called; otherwise one of the system-wide error codes.
-	    */
-	    
-	    void DeviceSearchCompleteL( CBTDevice* aDevice, 
-	            TNameEntry* aNameEntry, TInt aErr );
-	    
-	  /** Shows 'Disonnect first' note
-		*
-	    * @param aDevice 
-	    */	    
-        void ShowDisconnecNoteL(TBTDevice *aDevice);	
-        
-        /**
-         * Auto connect to headset after pairing succeeded.
-         * @param aCount the counter of connecting request issuing staring from 0.
-         */
-        void ConnectIfNeededAfterPairL( TInt aCount );
-        
-	public: // internal methods for informing operation completes	    
-        /**
-        * Informs that pairing attempt of a device has been completed.
-        * Dismisses wait note and displays questions about authorizing and
-        * connecting, if the device is connectable.
-        *
-        * This method is called by ModifyDeviceChangeL. This method will not inform
-        * iContainer about the pairing since that is done by ModifyDeviceChangeL.
-        *
-        * @param aError Status code of the operation.
-        * @param aDeviceIndex the new place of the device in UI
-        * @return None.
-        */  
-	    void BondingCompleteL( TInt aError,const TBTDevice& aDevice);
-	    
-	    /** Informs that attempt to connect to a device is completed. Closes wait
-	     * note and if there was an error shows the error notice.
-	     *
-         * This method is called by ModifyDeviceChangeL. This method will not inform
-         * iContainer about the pairing since that is done by ModifyDeviceChangeL.	    
-         *
-	     * @param aError KErrNone or system wide error code
-	     * @param aDeviceIndex The index of the new device 
-	     * @param aConflictingDeviceName this is filled only when
-	     */    	
-    	void ConnectCompleteL(TInt aError,const TBTDevice& aDevice,
-    	  const RBTDevNameArray* aConflictingDeviceNames=NULL);
-    	  
-    	  
-       /**
-        * From MBTEngSettingsObserver - Called when powerstate is changed
-        * @param TBTPowerStateValue power state
-        * @return None
-        */       
-		void PowerStateChanged( TBTPowerStateValue aState );
-		
-        /**
-        * From MBTEngSettingsObserver - Called when visibility is changed
-        * @param TBTPowerStateValue state of visibility mode
-        * @return None
-        */    		
-		void VisibilityModeChanged( TBTVisibilityMode aState );
-		 
-    	
-    private: // Data
-    
-        CAknWaitDialog*                 iWaitForPairingDlg; 	// Wait note for pairing
-        CAknWaitDialog*                 iWaitForConnectDlg; 	// Wait note for connecting to BT Accessory        
-		CAknQueryDialog* 				iDisconnectQueryDlg;	// Question dialog for disconnecting BT Accessory
-        TBool                           iHelpEnabled; 				// Flag for the Help feature
-		
-		// these are needed so these are owened by someone
-		// and can be cleaned up, in case the operations are interrupted by the user.
-		CBTDevice*						iPairingDevice;
-		TNameEntry                      iPairingDevNameEntry;
-		TBTDevice* 						iConnectDevice; 	//device we are trying to connect to
-		TBTDevice 						iDisconnectQueryDevice; 	//device we are trying to disconnect
-				
-		CBTEngDiscovery*				iDeviceSearcher;	// used only for searching devices, not for device discovery
-		CBTEngSettings*					iBtEngSettings;		// used only for turning on bluetooth, 
-		CBTUIPluginMan* 				iBTPluginMan;		
-        CGSTabHelper* 					iTabHelper;
-	    CBTUIMainView*					iBaseView; 
-		TBool							iConstructAsGsPlugin;	// Flag that indicate this obj is served as GS plugin not BTUI app's plugin.
-        TInt                            iExpectedCallBack;      // In case of DeleteAll, counter for expected callback NotifyChangeDeviceCompleteL()
-        TBool                           iSearchOngoing;        
-        TBool							iIsConnectDevice;
-		MBtuiPluginViewActivationObserver* iActivationObserver; // view activation observer        
-        TBool 							iIsAlreadyConnected; // used only for showing "Connected to" note once for Stereo device 
-        TBTDevice                       iMenuDevice;
-        CEikMenuPane*                   iActiveMenuPane;
-        CBTUIActive*                    iActive;   // used for subscribing notifier lock status
-        TBTDevAddr                      iPairConnectAddr; // the address of the just paired device
-                                                          // with which a connection establishment is pending
-        TBool                           iIsPairConnect; // if we are doing auto-connecting after pairing or not
-
-};
-
-#endif
-
-