diff -r b47902b73a93 -r 18280709ae43 locationrequestmgmt/networkrequesthandler/src/EPos_CPosDialogCtrl.cpp --- a/locationrequestmgmt/networkrequesthandler/src/EPos_CPosDialogCtrl.cpp Fri Jun 04 10:34:15 2010 +0100 +++ b/locationrequestmgmt/networkrequesthandler/src/EPos_CPosDialogCtrl.cpp Fri Jun 11 15:06:31 2010 +0300 @@ -17,6 +17,7 @@ // INCLUDE FILES #include +#include #include #include #include @@ -36,6 +37,9 @@ const TUid KNotifierUid = { KPosPrivacyNotifierImplUid }; #endif // NRH_UNIT_TEST +// P&S Key so NG can check the status of notifications +const TInt EPrivacyNumberOfRequest = 0x1028720F; + // The output descriptor for Notifier calls. Since we want to pass // just a dummy null descriptor there is no need to create a HBufC // each time. @@ -58,6 +62,10 @@ { TInt err = iNotifier.Connect(); User::LeaveIfError(err); + + // Define the property + RProperty::Define(KUidSystemCategory, EPrivacyNumberOfRequest, RProperty::EInt); + UpdateProperty(); } // Two-phased constructor. @@ -78,12 +86,11 @@ for (TInt i = 0; i < count; i++) { DoCompleteRequest(0, KErrServerTerminated); - // Delete the pointer items - delete iRequestQueue[i].iRequestInfo; } iNotifier.Close(); iRequestQueue.Close(); + RProperty::Delete(KUidSystemCategory, EPrivacyNumberOfRequest); } // --------------------------------------------------------- @@ -279,10 +286,19 @@ TInt aIndex, TInt aCompletionCode) { - TRequestStatus* status = iRequestQueue[aIndex].iStatus; - User::RequestComplete(status, aCompletionCode); + TRequest request = iRequestQueue[aIndex]; + if (request.iType == TPosQNInputData::ENotification) + { + delete request.iRequestInfo; + } + else + { + TRequestStatus* status = request.iStatus; + User::RequestComplete(status, aCompletionCode); + } iRequestQueue.Remove(aIndex); iRequestQueue.Compress(); + UpdateProperty(); } // --------------------------------------------------------- @@ -296,6 +312,7 @@ // Start a new request. aRequest.iId = ++iRequestId; User::LeaveIfError(iRequestQueue.Append(aRequest)); + UpdateProperty(); if (iRequestQueue.Count() == 1) { @@ -365,22 +382,10 @@ delete reqStackBuf; reqStackBuf = NULL; - if (data.iType == TPosQNInputData::ENotification) // We dont expect a resonse from a notfication - { - iNotifier.StartNotifier(KNotifierUid, nullPtr, nullPtr); - - // As we wont be getting a response remove from the notification list - delete iRequestQueue[0].iRequestInfo; - iRequestQueue.Remove(0); - iRequestQueue.Compress(); - } - else - { - iNotifier.StartNotifierAndGetResponse( - iStatus, KNotifierUid, nullPtr, nullPtr); - SetActive(); - } - + iNotifier.StartNotifierAndGetResponse( + iStatus, KNotifierUid, nullPtr, nullPtr); + SetActive(); + err = iNotifier.UpdateNotifier(KNotifierUid, *buffer, nullPtr); if (err != KErrNone) { @@ -623,11 +628,13 @@ if ( iRequestQueue[i].iType == TPosQNInputData::ENotification ) { User::LeaveIfError(iRequestQueue.Insert( aRequest,i )); + UpdateProperty(); return; } } User::LeaveIfError(iRequestQueue.Append(aRequest)); + UpdateProperty(); } // --------------------------------------------------------- @@ -647,6 +654,7 @@ } iRequestQueue.Remove(0); iRequestQueue.Compress(); + UpdateProperty(); NextRequest(); } @@ -691,4 +699,11 @@ CleanupStack::Pop(requestinfocopy); } + +void CPosDialogCtrl::UpdateProperty() + { + RProperty::Set(KUidSystemCategory, EPrivacyNumberOfRequest, iRequestQueue.Count()); + } + + // End of File