--- a/usbuis/usbuinotif/src/usbuinotifotgerror.cpp Sun May 02 21:57:48 2010 +0300
+++ b/usbuis/usbuinotif/src/usbuinotifotgerror.cpp Mon May 17 11:03:15 2010 +0300
@@ -17,18 +17,17 @@
// INCLUDE FILES
-#include <eikenv.h> // Eikon environment
-#include <bautils.h> // BAFL utils (for language file)
-#include <utf.h> // Unicode character conversion utilities
-#include <StringLoader.h> // Localisation stringloader
-#include <AknQueryDialog.h>
-#include <aknnotewrappers.h>
-
+#include <hb/hbwidgets/hbdevicemessageboxsymbian.h> // dialog
+#include <hb/hbcore/hbtextresolversymbian.h>
#include <usbuinotif.h> // pck
-#include <usbuinotif.rsg> // Own resources
#include "usbuinotifotgerror.h" // Own class definition
#include "usbuinotifdebug.h" // Debugging macros
-#include "usbuinotifsecondarydisplay.h" // Dialog index for cover UI
+
+// CONSTANTS
+/** granularity for allocating error strings */
+const TInt KUsbOtgErrorGranularity = 7;
+
+
// ================= MEMBER FUNCTIONS =========================================
// ----------------------------------------------------------------------------
@@ -52,7 +51,7 @@
// ----------------------------------------------------------------------------
//
CUsbUiNotifOtgError::CUsbUiNotifOtgError() :
- iStringIds( KUsbUiNotifOtgGeneralQueryGranularity)
+ iStringIds(NULL)
{
}
@@ -65,19 +64,29 @@
//Make sure that the request is completed. Note that inside the destructor,
//this virtual function call is to local CUsbUiNotifOtgError::Cancel,
//not to any possibly derived class implementation.
+ delete iStringIds;
Cancel();
}
void CUsbUiNotifOtgError::ConstructL()
{
CUSBUINotifierBase::ConstructL();
- iStringIds.AppendL( R_USB_OTG_ERROR_CURRENT_LIMIT);
- iStringIds.AppendL( R_USB_OTG_ERROR_TOO_MUCH_CURRENT_REQUIRED);
- iStringIds.AppendL( R_USB_OTG_ERROR_UNSUPPORTED);
- iStringIds.AppendL( R_USB_OTG_ERROR_HUB_UNSUPPORTED);
- iStringIds.AppendL( R_USB_OTG_ERROR_UNRECOVERABLE);
- iStringIds.AppendL( R_USB_OTG_ERROR_ATTACH_TIMEDOUT);
- iStringIds.AppendL( R_USB_ERROR_MEMORY_NOT_ENOUGH);
+ iStringIds = new (ELeave) CDesCArrayFlat(KUsbOtgErrorGranularity);
+ _LIT(KCurrentLimit, "txt_usb_info_error_in_usb_connection_disconnect_d");
+ _LIT(KTooMuchCurrent, "txt_usb_info_unsupported_usb_device_disconnect_de");
+ _LIT(KUnsupported, "txt_usb_info_unsupported_usb_device_disconnect_de");
+ _LIT(KHubUnsupported, "txt_usb_info_hubs_are_not_supported_disconnect_us");
+ _LIT(KUnRecoverable, "txt_usb_info_error_in_usb_connection_disconnect_d");
+ _LIT(KAttachTimeOut, "txt_usb_info_remove_usb_cable_or_connect_a_device");
+ _LIT(KNotEnoughMemory, "txt_usb_info_memory_full_close_some_applications");
+ iStringIds->AppendL( KCurrentLimit);
+ iStringIds->AppendL( KTooMuchCurrent);
+ iStringIds->AppendL( KUnsupported);
+ iStringIds->AppendL( KHubUnsupported);
+ iStringIds->AppendL( KUnRecoverable);
+ iStringIds->AppendL( KAttachTimeOut);
+ iStringIds->AppendL( KNotEnoughMemory);
+
}
// ----------------------------------------------------------------------------
@@ -98,60 +107,47 @@
// Jump to RunL as soon as possible.
// ----------------------------------------------------------------------------
//
-void CUsbUiNotifOtgError::GetParamsL(const TDesC8& aBuffer, TInt aReplySlot,
+void CUsbUiNotifOtgError::StartDialogL(const TDesC8& aBuffer, TInt aReplySlot,
const RMessagePtr2& aMessage)
{
- FLOG(_L("[USBUINOTIF]\t CUsbUiNotifOtgError::GetParamsL"));
- if (iQuery || iReplySlot != 0 || iNeedToCompleteMessage)
+ FLOG(_L("[USBUINOTIF]\t CUsbUiNotifOtgError::StartDialogL"));
+ if (iReplySlot != 0 || iNeedToCompleteMessage)
{
User::Leave( KErrInUse );
}
-
- // Get parameters
- //
+
+ InitializeTextResolver();
- TPckgC<TInt> pckg( iErrorId );
+ TInt errorId = 0;
+ TPckgC<TInt> pckg( errorId );
pckg.Set( aBuffer );
- iErrorId = pckg();
+ errorId = pckg();
- FTRACE(FPrint(_L("[USBUINOTIF]\t CUsbUiNotifOtgError::GetParamsL iErrorId: %d"), iErrorId ));
- if ( iErrorId < 0 || iErrorId >= iStringIds.Count() )
+ FTRACE(FPrint(_L("[USBUINOTIF]\t CUsbUiNotifOtgError::GetParamsL iErrorId: %d"), errorId ));
+ if ( errorId < 0 || errorId >= iStringIds->MdcaCount())
{
User::Leave( KErrArgument);
}
-
iMessage = aMessage;
iNeedToCompleteMessage = ETrue;
- iReplySlot = aReplySlot;
-
- SetActive();
- iStatus = KRequestPending;
- TRequestStatus* stat = &iStatus;
- User::RequestComplete( stat, KErrNone );
- FLOG(_L("[USBUINOTIF]\t CUsbUiNotifOtgError::GetParamsL() completed"));
- }
-
-// ----------------------------------------------------------------------------
-// CUsbUiNotifOtgError::RunL
-// Ask user response and return it to caller.
-// ----------------------------------------------------------------------------
-//
-void CUsbUiNotifOtgError::RunL()
- {
- FLOG(_L("[USBUINOTIF]\t CUsbUiNotifOtgError::RunL"));
- TInt returnValue = KErrNone;
-
- DisableKeylock();
- SuppressAppSwitching( ETrue );
-
- //Excute dialog and check return value
- returnValue = QueryUserResponseL();
-
- SuppressAppSwitching( EFalse );
- RestoreKeylock();
- CompleteMessage( returnValue );
-
- FLOG(_L("[USBUINOTIF]\t CUsbUiNotifOtgError::RunL() completed"));
+ iReplySlot = aReplySlot;
+
+ if (iQuery)
+ {
+ delete iQuery;
+ iQuery = NULL;
+ }
+
+ iQuery = CHbDeviceMessageBoxSymbian::NewL(
+ CHbDeviceMessageBoxSymbian::EWarning, this);
+ iQuery->SetTimeout(0);
+ HBufC* stringHolder = HbTextResolverSymbian::LoadLC(iStringIds->MdcaPoint(errorId) );
+ iQuery->SetTextL(*stringHolder);
+ iQuery->ShowL();
+ CleanupStack::PopAndDestroy( stringHolder );
+
+
+ FLOG(_L("[USBUINOTIF]\t CUsbUiNotifOtgError::StartDialogL completed"));
}
// ----------------------------------------------------------------------------
@@ -164,43 +160,41 @@
FLOG(_L("[USBUINOTIF]\t CUsbUiNotifOtgError::Cancel"));
if (iQuery)
{
+ iQuery->Close();
delete iQuery;
iQuery = NULL;
}
- CompleteMessage( KErrCancel );
+ CUSBUINotifierBase::Cancel();
FLOG(_L("[USBUINOTIF]\t CUsbUiNotifOtgError::Cancel() completed"));
}
-
// ----------------------------------------------------------------------------
-// CUsbUiNotifOtgError::QueryUserResponseL
-// Show query dialog.
+// Call back function to observe device message box closing.
// ----------------------------------------------------------------------------
//
-TInt CUsbUiNotifOtgError::QueryUserResponseL()
+void CUsbUiNotifOtgError::MessageBoxClosed(
+ const CHbDeviceMessageBoxSymbian* /*aMessageBox*/,
+ CHbDeviceMessageBoxSymbian::TButtonId aButton)
{
- FLOG(_L("[USBUINOTIF]\t CUsbUiNotifOtgError::QueryUserResponseL"));
- TInt returnValue = KErrNone;
- TInt resourceId = R_USB_QUERY_OTG_ERROR;
+ FLOG(_L("[USBUINOTIF]\t CUsbUiNotifMSMMError::MessageBoxClosed"));
+ int returnValue = KErrNone;
+
+ //iQuery will be deleted in Cancel. If Cancel is not called, it will be
+ //deleted next time the query is shown.
- iQuery = CAknQueryDialog::NewL( CAknQueryDialog::EErrorTone );
-
- if (iCoverDisplaySupported)
+ if (aButton == CHbDeviceMessageBoxSymbian::EAcceptButton)
{
- iQuery->PublishDialogL( iErrorId, KUsbUiNotifOtgError );
+ returnValue = KErrNone;
+ }
+ else
+ {
+ returnValue = KErrCancel;
}
- HBufC *stringHolder = StringLoader::LoadLC( iStringIds[iErrorId] );
- TInt keypress = iQuery->ExecuteLD( resourceId, *stringHolder );
-
- CleanupStack::PopAndDestroy( stringHolder );
-
- iQuery = NULL; // Dialog destroyed
-
- returnValue = keypress ? KErrNone : KErrCancel; //OK?
-
- FLOG(_L("[USBUINOTIF]\t CUsbUiNotifOtgError::QueryUserResponseL completed"));
- return returnValue;
+ CompleteMessage( returnValue );
+
+ FLOG(_L("[USBUINOTIF]\t CUsbUiNotifMSMMError::MessageBoxClosed completed"));
}
+
// End of File