diff -r 613943a21004 -r 9386f31cc85b btobexprofiles/obexserviceman/utils/src/obexutilsdialog.cpp --- a/btobexprofiles/obexserviceman/utils/src/obexutilsdialog.cpp Tue Aug 31 15:25:10 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,472 +0,0 @@ -/* -* Copyright (c) 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" -* 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: -* -*/ - - -// INCLUDE FILES -#include "obexutilsdialog.h" -#include "obexutilsdialogtimer.h" -#include "obexutilsdebug.h" -#include -#include -#include - -_LIT(KSendingDialog, "com.nokia.hb.btdevicedialog/1.0"); -_LIT(KCurrentFileIndex,"currentFileIdx" ); -_LIT(KTotalFileCount, "totalFilesCnt"); -_LIT(KDestinationName, "destinationName"); -_LIT(KFileName,"fileName"); -_LIT(KFileSizeTxt,"fileSzTxt"); -_LIT(KFileSize,"fileSz"); -_LIT(KProgressValue,"progressValue"); - -_LIT(KSendingCancelledText, "txt_bt_dpophead_sending_cancelled"); -_LIT(KDeviceText,"txt_bt_dpopinfo_sent_to_1"); - -const TInt KMaxDescriptionLength = 256; -const TInt KMinStringSize = 10; -const TInt KMinFileSize = 1024; - -_LIT(KLocFileName, "btdialogs_"); -_LIT(KPath, "z:/resource/qt/translations/"); - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -CObexUtilsDialog::CObexUtilsDialog( MObexUtilsDialogObserver* aObserverPtr ) : - iDialogObserverPtr( aObserverPtr ) - { - } - -// ----------------------------------------------------------------------------- -// CObexUtilsDialog::NewL -// ----------------------------------------------------------------------------- -EXPORT_C CObexUtilsDialog* CObexUtilsDialog::NewL( MObexUtilsDialogObserver* aObserverPtr ) - { - CObexUtilsDialog* self = new ( ELeave ) CObexUtilsDialog( aObserverPtr ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return( self ); - } - -// ----------------------------------------------------------------------------- -// CObexUtilsDialog::NewLC -// ----------------------------------------------------------------------------- -EXPORT_C CObexUtilsDialog* CObexUtilsDialog::NewLC( MObexUtilsDialogObserver* aObserverPtr ) - { - CObexUtilsDialog* self = new ( ELeave ) CObexUtilsDialog( aObserverPtr ); - CleanupStack::PushL( self ); - self->ConstructL(); - return( self ); - } - -// ----------------------------------------------------------------------------- -// CObexUtilsDialog::ConstructL -// Symbian OS default constructor can leave. -// ----------------------------------------------------------------------------- -void CObexUtilsDialog::ConstructL() - { - FLOG(_L("[OBEXUTILS]\t CObexUtilsDialog::ConstructL()")); - - if (!iDialogObserverPtr) - { - // The observer pointer was not given as an argument. - // - User::Leave(KErrArgument); - } - FLOG(_L("[OBEXUTILS]\t CObexUtilsDialog::ConstructL() completed")); - } - -// ----------------------------------------------------------------------------- -// Destructor -// ----------------------------------------------------------------------------- -EXPORT_C CObexUtilsDialog::~CObexUtilsDialog() - { - FLOG(_L("[OBEXUTILS]\t CObexUtilsDialog::~CObexUtilsDialog()")); - iDeviceName.Close(); - delete iWaitDialog; - delete iProgressDialog; - delete iObexDialogTimer; - delete iMessageBox; - FLOG(_L("[OBEXUTILS]\t CObexUtilsDialog::~CObexUtilsDialog() completed")); - } - -// ----------------------------------------------------------------------------- -// CObexUtilsDialog::LaunchProgressDialogL -// ----------------------------------------------------------------------------- -EXPORT_C void CObexUtilsDialog::LaunchProgressDialogL( - MObexUtilsProgressObserver* aObserverPtr, TInt aFileCount, - const TDesC& aDeviceName, TInt aTimeoutValue ) - { - FLOG(_L("[OBEXUTILS]\t CObexUtilsDialog::LaunchProgressDialogL()")); - - TBuf key; - if ( aObserverPtr ) - { - // The observerPtr was given, so store it and start a timer - // - iProgressObserverPtr = aObserverPtr; - - if ( !iObexDialogTimer ) - { - iObexDialogTimer = CObexUtilsDialogTimer::NewL( this ); - } - iObexDialogTimer->Cancel(); - iObexDialogTimer->SetTimeout( aTimeoutValue ); - } - - iFileCount = aFileCount; - iDeviceName.Close(); - iDeviceName.CreateL(aDeviceName); - iProgressDialog = CHbDeviceDialogSymbian::NewL(); - - CHbSymbianVariantMap* map = CHbSymbianVariantMap::NewL(); - CleanupStack::PushL(map); - TInt data = TBluetoothDialogParams::ESend; - key.Num(TBluetoothDialogParams::EDialogType); - AddDataL( map, key, &data, CHbSymbianVariant::EInt ); - User::LeaveIfError(iProgressDialog->Show(KSendingDialog(),*map,this)); - CleanupStack::PopAndDestroy(map); - - if ( iProgressObserverPtr ) - { - iObexDialogTimer->Tickle(); - } - - FLOG(_L("[OBEXUTILS]\t CObexUtilsDialog::LaunchProgressDialogL() completed")); - } - - -EXPORT_C void CObexUtilsDialog::UpdateProgressNoteL( TInt aFileSize,TInt aFileIndex, const TDesC& aFileName ) - { - FLOG(_L("[OBEXUTILS]\t CObexUtilsDialog::UpdateProgressNoteL()")); - HBufC* key = HBufC::NewL(KMaxDescriptionLength); - CleanupStack::PushL(key); - - CHbSymbianVariantMap* map = CHbSymbianVariantMap::NewL(); - CleanupStack::PushL(map); - - iFileIndex = aFileIndex+1; - key->Des().Copy(KCurrentFileIndex()); - AddDataL( map, *key, &iFileIndex, CHbSymbianVariant::EInt ); - - key->Des().Copy(KTotalFileCount()); - AddDataL( map, *key, &iFileCount, CHbSymbianVariant::EInt ); - - key->Des().Copy(KDestinationName()); - AddDataL( map, *key, &iDeviceName, CHbSymbianVariant::EDes ); - - key->Des().Copy(KFileName()); - AddDataL( map, *key, &aFileName, CHbSymbianVariant::EDes ); - - // todo: localiation is needed for code below: - HBufC* value = HBufC::NewL(KMaxDescriptionLength); - CleanupStack::PushL(value); - key->Des().Copy(KFileSizeTxt()); - value->Des().Zero(); - if(aFileSize < KMinFileSize) - { - value->Des().AppendNum(aFileSize); - value->Des().Append(_L(" Bytes")); - } - else - { - TInt filesize = aFileSize/KMinFileSize; - value->Des().AppendNum(filesize); - value->Des().Append(_L(" KB")); - } - AddDataL( map, *key, value, CHbSymbianVariant::EDes ); - CleanupStack::PopAndDestroy( value ); - - key->Des().Copy(KFileSize()); - AddDataL( map, *key, &aFileSize, CHbSymbianVariant::EInt ); - TInt ret = iProgressDialog->Update(*map); - CleanupStack::PopAndDestroy(map); - CleanupStack::PopAndDestroy(key); - FLOG(_L("[OBEXUTILS]\t CObexUtilsDialog::UpdateProgressNoteL()Completed")); - } - -// ----------------------------------------------------------------------------- -// CObexUtilsDialog::LaunchWaitDialogL -// ----------------------------------------------------------------------------- -EXPORT_C void CObexUtilsDialog::LaunchWaitDialogL( const TDesC& aDisplayText ) - { - FLOG(_L("[OBEXUTILS]\t CObexUtilsDialog::LaunchWaitDialogL()")); - - if ( iWaitDialog || iProgressDialog ) - { - // Allow only one dialog at a time - // - User::Leave( KErrInUse ); - } - iWaitDialog = CHbDeviceProgressDialogSymbian::NewL(CHbDeviceProgressDialogSymbian::EWaitDialog,this); - iWaitDialog->SetTextL(aDisplayText); - iWaitDialog->ShowL(); - - FLOG(_L("[OBEXUTILS]\t CObexUtilsDialog::LaunchWaitDialogL() completed")); - } - -// ----------------------------------------------------------------------------- -// CObexUtilsDialog::CancelWaitDialogL -// ----------------------------------------------------------------------------- -EXPORT_C void CObexUtilsDialog::CancelWaitDialog() - { - FLOG(_L("[OBEXUTILS]\t CObexUtilsDialog::CancelWaitDialogL()")); - - if( iWaitDialog ) - { - iWaitDialog->Close(); - delete iWaitDialog; - iWaitDialog = NULL; - } - - FLOG(_L("[OBEXUTILS]\t CObexUtilsDialog::CancelWaitDialogL() completed")); - } - -// ----------------------------------------------------------------------------- -// CObexUtilsDialog::CancelProgressDialogL -// ----------------------------------------------------------------------------- -EXPORT_C void CObexUtilsDialog::CancelProgressDialog() - { - FLOG(_L("[OBEXUTILS]\t CObexUtilsDialog::CancelProgressDialogL()")); - - if( iProgressDialog ) - { - iProgressDialog->Cancel(); - delete iProgressDialog; - iProgressDialog = NULL; - delete iObexDialogTimer; - iObexDialogTimer = NULL; - } - - FLOG(_L("[OBEXUTILS]\t CObexUtilsDialog::CancelProgressDialogL() completed")); - } - -// ----------------------------------------------------------------------------- -// CObexUtilsDialog::UpdateProgressDialogL -// ----------------------------------------------------------------------------- -EXPORT_C void CObexUtilsDialog::UpdateProgressDialogL( TInt aProgressValue ) - { - FLOG(_L("[OBEXUTILS]\t CObexUtilsDialog::UpdateProgressDialogL()")); - - if ( iProgressDialog ) - { - HBufC* key = HBufC::NewL(KMaxDescriptionLength); - CleanupStack::PushL(key); - - CHbSymbianVariantMap* map = CHbSymbianVariantMap::NewL(); - CleanupStack::PushL(map); - - key->Des().Copy(KProgressValue()); - AddDataL( map, *key, &aProgressValue, CHbSymbianVariant::EInt ); - - HBufC* value = HBufC::NewL(KMaxDescriptionLength); - CleanupStack::PushL(value); - key->Des().Copy(KCurrentFileIndex()); - value->Des().AppendNum(iFileIndex); - AddDataL( map, *key, value, CHbSymbianVariant::EDes ); - CleanupStack::PopAndDestroy(value); - - TInt ret = iProgressDialog->Update(*map); - - CleanupStack::PopAndDestroy(map); - CleanupStack::PopAndDestroy(key); - } - - FLOG(_L("[OBEXUTILS]\t CObexUtilsDialog::UpdateProgressDialogL() completed")); - } - -// ----------------------------------------------------------------------------- -// CObexUtilsDialog::UpdateProgressDialog -// ----------------------------------------------------------------------------- -void CObexUtilsDialog::UpdateProgressDialog() - { - FLOG(_L("[OBEXUTILS]\t CObexUtilsDialog::UpdateProgressDialog()")); - - TRAPD( ignoredError, UpdateProgressDialogL( - iProgressObserverPtr->GetProgressStatus()) ); - - if (ignoredError != KErrNone) - { - FLOG(_L("Ignore this error")); - } - - if ( iObexDialogTimer ) - { - iObexDialogTimer->Tickle(); - } - - FLOG(_L("[OBEXUTILS]\t CObexUtilsDialog::UpdateProgressDialog() completed")); - } - -// ----------------------------------------------------------------------------- -// CObexUtilsDialog::LaunchQueryDialogL -// ----------------------------------------------------------------------------- -// -EXPORT_C void CObexUtilsDialog::LaunchQueryDialogL( const TDesC& aConfirmText ) - { - FLOG(_L("[OBEXUTILS]\t CObexUtilsDialog::LaunchQueryDialogL()")); - if ( iMessageBox ) - { - //todo: Already one dialog is displayed, currently not supported for - //multiple dialogs at the same time. - User::Leave( KErrGeneral ); - } - iMessageBox = CreateAndShowMessageBoxL( CHbDeviceMessageBoxSymbian::EQuestion, - aConfirmText, this, 0 ); - } - - -// ----------------------------------------------------------------------------- -// CObexUtilsUiDialog::ShowErrorNoteL -// ----------------------------------------------------------------------------- -EXPORT_C void CObexUtilsDialog::ShowErrorNoteL( const TDesC& aTextId ) - { - FLOG(_L("[OBEXUTILS]\t CObexUtilsUiDialog::ShowErrorNoteL")); - if ( iMessageBox ) - { - //todo: Already one dialog is displayed, currently not supported for - //multiple dialogs at the same time. - User::Leave( KErrGeneral ); - } - iMessageBox = CreateAndShowMessageBoxL( CHbDeviceMessageBoxSymbian::EWarning, - aTextId, this, 0 ); - FLOG(_L("[OBEXUTILS]\t CObexUtilsUiDialog::ShowErrorNoteL completed")); - } - -// ----------------------------------------------------------------------------- -// CObexUtilsUiDialog::ShowInformationNoteL -// ----------------------------------------------------------------------------- -EXPORT_C void CObexUtilsDialog::ShowInformationNoteL( const TDesC& aTextId ) - { - FLOG(_L("[OBEXUTILS]\t CObexUtilsUiDialog::ShowInformationNoteL")); - if ( iMessageBox ) - { - //todo: Already one dialog is displayed, currently not supported for - //multiple dialogs at the same time. - User::Leave( KErrGeneral ); - } - iMessageBox = CreateAndShowMessageBoxL( CHbDeviceMessageBoxSymbian::EInformation, - aTextId, this, 0 ); - FLOG(_L("[OBEXUTILS]\t CObexUtilsUiDialog::ShowInformationNoteL completed")); - } - -void CObexUtilsDialog::ProgressDialogCancelled(const CHbDeviceProgressDialogSymbian* aDialog) - { - FLOG(_L("[BTSU]\t CObexUtilsDialog::ProgressDialogCancelled(), cancelled by user")); - (void) aDialog; - if ( iDialogObserverPtr ) - { - iDialogObserverPtr->DialogDismissed(ECancelButton); - } - delete iWaitDialog; - iWaitDialog = NULL; - } - -// ----------------------------------------------------------------------------- -// CObexUtilsDialog::MessageBoxClosed -// ----------------------------------------------------------------------------- -void CObexUtilsDialog::MessageBoxClosed(const CHbDeviceMessageBoxSymbian *aMessageBox, - CHbDeviceMessageBoxSymbian::TButtonId aButton) - { - FLOG(_L("[OBEXUTILS]\t CObexUtilsUiDialog::MessageBoxClosed")); - (void)aMessageBox; - delete iMessageBox; - iMessageBox = NULL; - if(iDialogObserverPtr) - { - //ETrue if user selects Yes, otherwise EFalse. - iDialogObserverPtr->DialogDismissed( - (aButton == CHbDeviceMessageBoxSymbian::EAcceptButton) ? - EYesButton : ENoButton ); - } - FLOG(_L("[OBEXUTILS]\t CObexUtilsUiDialog::MessageBoxClosed completed")); - } - -void CObexUtilsDialog::ProgressDialogClosed(const CHbDeviceProgressDialogSymbian* aDialog) - { - (void) aDialog; - } - -void CObexUtilsDialog::DataReceived(CHbSymbianVariantMap& aData) - { - (void) aData; - } - -void CObexUtilsDialog::DeviceDialogClosed(TInt aCompletionCode) - { - FLOG(_L("[BTSU]\t CObexUtilsDialog::DeviceDialogClosed()")); - (void) aCompletionCode; - - delete iObexDialogTimer; - iObexDialogTimer = NULL; - delete iProgressDialog; - iProgressDialog = NULL; - - TBool ok = HbTextResolverSymbian::Init(KLocFileName, KPath); - if(ok) - { - TRAP_IGNORE( - HBufC* deviceName = HbTextResolverSymbian::LoadLC(KDeviceText,iDeviceName); - HBufC* sendText = HbTextResolverSymbian::LoadLC(KSendingCancelledText); - CHbDeviceNotificationDialogSymbian::NotificationL( - KNullDesC, deviceName->Des(), sendText->Des()); - CleanupStack::PopAndDestroy( sendText ); - CleanupStack::PopAndDestroy( deviceName ); - ); - } - else - { - CHbDeviceNotificationDialogSymbian::NotificationL( - KNullDesC, KDeviceText(), KSendingCancelledText()); - } - if ( iDialogObserverPtr ) - { - iDialogObserverPtr->DialogDismissed(ECancelButton); - } - } - -void CObexUtilsDialog::AddDataL(CHbSymbianVariantMap* aMap, const TDesC& aKey, - const TAny* aData, CHbSymbianVariant::TType aDataType) - { - CHbSymbianVariant* value = CHbSymbianVariant::NewL(aData, aDataType); - CleanupStack::PushL( value ); - User::LeaveIfError( aMap->Add( aKey, value ) ); // aMap takes the ownership of value - CleanupStack::Pop( value ); - } - -CHbDeviceMessageBoxSymbian* CObexUtilsDialog::CreateAndShowMessageBoxL( - CHbDeviceMessageBoxSymbian::TType aType, - const TDesC& aText, MHbDeviceMessageBoxObserver* aObserver, - TInt aTimeout ) - { - CHbDeviceMessageBoxSymbian* messageBox = - CHbDeviceMessageBoxSymbian::NewL( aType ); - CleanupStack::PushL(messageBox); - //ToDo: Need to use localised strings. - messageBox->SetTextL(aText); - messageBox->SetObserver(aObserver); - messageBox->SetTimeout(aTimeout); - messageBox->ShowL(); - CleanupStack::Pop(messageBox); - return messageBox; - } - -// End of File