diff -r 000000000000 -r 1e05558e2206 usbuis/usbuinotif/src/usbuinotifotgwarning.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usbuis/usbuinotif/src/usbuinotifotgwarning.cpp Thu Dec 17 09:14:30 2009 +0200 @@ -0,0 +1,176 @@ +/* +* Copyright (c) 2007, 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: USB UI notes notifier class. + * +*/ + + +// INCLUDE FILES +#include // Eikon environment +#include +#include // BAFL utils (for language file) +#include // Localisation stringloader +#include // for cover display support +#include // Own resources +#include "usbuinotifotgwarning.h" // Own class definition +#include "usbuinotifdebug.h" // Debugging macros +#include "USBUINotifSecondaryDisplay.h" // Dialog index for cover UI +// ================= MEMBER FUNCTIONS ========================================= + +// ---------------------------------------------------------------------------- +// CUsbUiNotifOtgWarning::NewL +// Two-phased constructor. +// ---------------------------------------------------------------------------- +// +CUsbUiNotifOtgWarning* CUsbUiNotifOtgWarning::NewL() + { + FLOG(_L("[USBUINOTIF]\t CUsbUiNotifOtgWarning::NewL()")); + CUsbUiNotifOtgWarning* self = new (ELeave) CUsbUiNotifOtgWarning(); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + FLOG(_L("[USBUINOTIF]\t CUsbUiNotifOtgWarning::NewL completed()")); + return self; + } + +// ---------------------------------------------------------------------------- +// CUsbUiNotifOtgWarning::CUsbUiNotifOtgWarning +// C++ default constructor can NOT contain any code, that +// might leave. +// ---------------------------------------------------------------------------- +// +CUsbUiNotifOtgWarning::CUsbUiNotifOtgWarning() : + iStringIds( KUsbUiNotifOtgGeneralNoteGranularity), iNote( NULL) + { + FLOG(_L("[USBUINOTIF]\t CUsbUiNotifOtgWarning::constructor()")); + } + +// ---------------------------------------------------------------------------- +// Destructor +// ---------------------------------------------------------------------------- +// +CUsbUiNotifOtgWarning::~CUsbUiNotifOtgWarning() + { + FLOG(_L("[USBUINOTIF]\t CUsbUiNotifOtgWarning::destructor()")); + //Make sure that the request is completed. Note that inside the destructor, + //this virtual function call is to local CUsbUiNotifOtgWarning::Cancel, + //not to any possibly derived class implementation. + Cancel(); + FLOG(_L("[USBUINOTIF]\t CUsbUiNotifOtgWarning::destructor completed()")); + } + +void CUsbUiNotifOtgWarning::ConstructL() + { + CUSBUINotifierBase::ConstructL(); + iStringIds.AppendL( R_USB_OTG_WARNING_PARTIAL_SUPPORTED); + } + +// ---------------------------------------------------------------------------- +// CUsbUiNotifOtgWarning::RegisterL +// Register notifier. +// ---------------------------------------------------------------------------- +// +CUsbUiNotifOtgWarning::TNotifierInfo CUsbUiNotifOtgWarning::RegisterL() + { + FLOG(_L("[USBUINOTIF]\t CUsbUiNotifOtgWarning::RegisterL")); + iInfo.iUid = KUsbUiNotifOtgWarning; + iInfo.iChannel = KUsbUiNotifOtgWarning; + iInfo.iPriority = ENotifierPriorityVHigh; + FLOG(_L("[USBUINOTIF]\t CUsbUiNotifOtgWarning::RegisterL completed()")); + return iInfo; + } + +// ---------------------------------------------------------------------------- +// CUsbUiNotifOtgWarning::Cancel +// Release all own resources (member variables) +// ---------------------------------------------------------------------------- +// +void CUsbUiNotifOtgWarning::Cancel() + { + FLOG(_L("[USBUINOTIF]\t CUsbUiNotifOtgWarning::Cancel")); + if (iNote) + { + FLOG(_L("[USBUINOTIF]\t CUsbUiNotifOtgWarning::Cancel - delete iNote")); + delete iNote; + iNote = NULL; + } + CompleteMessage( KErrNone ); + + FLOG(_L("[USBUINOTIF]\t CUsbUiNotifOtgWarning::Cancel() completed")); + } + +// ---------------------------------------------------------------------------- +// CUsbUiNotifOtgWarning::GetParamsL +// Mandatory for USB UI Notifiers when using asynchronous launch. +// This notifier is synchronous so this function is not used. +// ---------------------------------------------------------------------------- +// +void CUsbUiNotifOtgWarning::GetParamsL(const TDesC8& aBuffer, + TInt aReplySlot, const RMessagePtr2& aMessage) + { + FLOG(_L("[USBUINOTIF]\t CUsbUiNotifOtgWarning::GetParamsL")); + if (iNote || iReplySlot != 0 || iNeedToCompleteMessage) + { + User::Leave( KErrInUse ); + } + + iMessage = aMessage; + iNeedToCompleteMessage = ETrue; + iReplySlot = aReplySlot; + + // Get parameters + // + TPckgC pckg( iNoteId ); + pckg.Set( aBuffer ); + iNoteId = pckg(); + + SetActive(); + iStatus = KRequestPending; + TRequestStatus* stat = &iStatus; + User::RequestComplete( stat, KErrNone ); + FLOG(_L("[USBUINOTIF]\t CUsbUiNotifOtgWarning::GetParamsL() completed")); + } + +// ---------------------------------------------------------------------------- +// CUsbUiNotifOtgWarning::RunL +// Mandatory for Active Objects. This notifier is synchronous +// so this function is not used. +// ---------------------------------------------------------------------------- +// +void CUsbUiNotifOtgWarning::RunL() + { + FLOG(_L("[USBUINOTIF]\t CUsbUiNotifOtgWarning::RunL")); + + // Create confirmation note + // + HBufC* str = StringLoader::LoadL( iStringIds[iNoteId] ); + CleanupStack::PushL( str ); + iNote = new (ELeave) CAknWarningNote( ETrue ); + + iNote->SetTimeout( CAknNoteDialog::ENoTimeout ); + + if (iCoverDisplaySupported) + { + iNote->PublishDialogL( iNoteId, KUsbUiNotifOtgWarning ); + } + + TInt t = iNote->ExecuteLD( *str ); + iNote = NULL; + CleanupStack::PopAndDestroy( str ); + + CompleteMessage( KErrNone ); + FLOG(_L("[USBUINOTIF]\t CUsbUiNotifOtgWarning::RunL() completed")); + } + +// End of File