--- a/src/hbcore/devicedialogbase/hbdevicedialogsym_p.cpp Fri Sep 17 08:32:10 2010 +0300
+++ b/src/hbcore/devicedialogbase/hbdevicedialogsym_p.cpp Mon Oct 04 00:38:12 2010 +0300
@@ -80,7 +80,6 @@
TRACE_ENTRY
mDeviceDialogFlags = f;
mLastError = HbDeviceDialogNoError;
- CActiveScheduler::Add(this);
iRequesting = EFalse;
if (mDeviceDialogFlags & HbDeviceDialog::ImmediateResourceReservationFlag) {
int error = symToDeviceDialogError(initialize());
@@ -95,10 +94,13 @@
\internal
Initialisation step. Session to server is created.
*/
-int HbDeviceDialogPrivate::initialize()
+int HbDeviceDialogPrivate::initialize(bool connect)
{
TRACE_ENTRY
+ if (!IsAdded()) {
+ CActiveScheduler::Add(this);
+ }
if (!iBuffer) {
TRAP_IGNORE(iBuffer = HBufC8::NewL(64));
if (iBuffer) {
@@ -109,7 +111,10 @@
}
}
- int error = mHbSession.Connect();
+ int error = KErrNone;
+ if (connect) {
+ mHbSession.Connect();
+ }
TRACE_EXIT_ARGS("error" << error)
return error;
@@ -123,16 +128,8 @@
int HbDeviceDialogPrivate::connect()
{
- if (!iBuffer) {
- TRAP_IGNORE(iBuffer = HBufC8::NewL(64));
- if (iBuffer) {
- iDataPtr.Set(iBuffer->Des());
- } else {
- TRACE_EXIT_ARGS("error " << KErrNoMemory)
- return KErrNoMemory;
- }
- }
-
+ initialize(false);
+
int error(HbDeviceDialogNoError);
if (!IsActive() && !iConnecting) {