--- a/iaupdate/IAD/backgroundchecker/src/iaupdatebgsoftnotification.cpp Thu Aug 19 10:02:49 2010 +0300
+++ b/iaupdate/IAD/backgroundchecker/src/iaupdatebgsoftnotification.cpp Tue Aug 31 15:21:33 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-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"
@@ -18,26 +18,74 @@
// INCLUDE FILES
-#include <AknDynamicSoftNotifier.h>
-#include <AknDynamicSoftNotificationParams.h>
+#include <hbindicatorsymbian.h>
+#include <hbsymbianvariant.h>
#include "iaupdatebgsoftnotification.h"
#include "iaupdatebginternalfilehandler.h"
#include "iaupdatebgconst.h"
#include "iaupdatebglogger.h"
+// Indicator type
+_LIT(KIndicatorTypeBgc, "com.nokia.iaupdate.indicatorplugin/1.0");
// ============================ MEMBER FUNCTIONS ===============================
+void CIAUpdateBGSoftNotification::NotificationDialogActivated(
+ const CHbDeviceNotificationDialogSymbian* /* aDialog */)
+ {
+
+ FLOG("[bgchecker] softnotification callback function ACCEPTED");
+
+ // indicator shall not be shown
+ SetIndicatorEnabled( EFalse );
+
+ // Remove (possibly) existing indicator
+ RemoveIndicatorL();
+
+ iCallback->SoftNotificationCallBack( ETrue );
+
+ // remove dialog
+ //delete iNotificationDialog;
+ //iNotificationDialog = 0;
+
+ return;
+ }
+
+void CIAUpdateBGSoftNotification::NotificationDialogClosed
+ ( const CHbDeviceNotificationDialogSymbian* /* aDialog */,
+ TInt /* aCompletionCode*/ )
+ {
+
+
+ FLOG("[bgchecker] softnotification callback function Closed");
+
+ // Set indicator, if needed
+ if (IsIndicatorEnabled())
+ {
+ ShowIndicatorL();
+ }
+
+
+ iCallback->SoftNotificationCallBack( EFalse );
+
+ // remove dialog
+ //delete iNotificationDialog;
+ //iNotificationDialog = 0;
+
+ return;
+ }
+
+
// -----------------------------------------------------------------------------
// CIAUpdateBGSoftNotification::NewLC
// Static constructor
// -----------------------------------------------------------------------------
//
-CIAUpdateBGSoftNotification* CIAUpdateBGSoftNotification::NewL( MIAUpdateBGSoftNotificationCallBack* aCallback,
- CIAUpdateBGInternalFileHandler* aInternalFile )
+CIAUpdateBGSoftNotification* CIAUpdateBGSoftNotification::NewL(
+ MIAUpdateBGSoftNotificationCallBack* aCallback )
{
CIAUpdateBGSoftNotification* self =
- new ( ELeave ) CIAUpdateBGSoftNotification( aCallback, aInternalFile );
+ new ( ELeave ) CIAUpdateBGSoftNotification( aCallback );
CleanupStack::PushL( self );
self->ConstructL();
@@ -52,83 +100,88 @@
//
CIAUpdateBGSoftNotification::~CIAUpdateBGSoftNotification()
{
- delete iSoftkey1;
- delete iSoftkey2;
- delete iLabel;
- delete iGroupLabel;
+ delete iTitle;
+ delete iText;
+
+ delete iNotificationDialog;
- delete iImageData;
-
- delete iNotifier;
}
-
+
// -----------------------------------------------------------------------------
-// CIAUpdateBGSoftNotification::NotificationAccepted
-// Dynamic soft notification was accepted by user.
+// CIAUpdateBGSoftNotification::ShowNotificationL
+// Displays notification
// -----------------------------------------------------------------------------
//
-void CIAUpdateBGSoftNotification::NotificationAccepted( TInt /*aIdentifier*/ )
+void CIAUpdateBGSoftNotification::ShowNotificationL()
{
- FLOG("[bgchecker] softnotification callback function ACCEPTED");
- //remove the soft notifiation id
- iInternalFile->SetSoftNotificationID( 0 );
- TRAP_IGNORE( iInternalFile->WriteControllerDataL() );
+
+ FLOG("[bgchecker] ShowNotificationL");
+
+ // crete dialog, id does not exist already
+ if (!iNotificationDialog)
+ {
+ iNotificationDialog = CHbDeviceNotificationDialogSymbian::NewL( this );
+ }
- iCallback->SoftNotificationCallBack( ETrue );
+ // enable indicator showing
+ SetIndicatorEnabled( ETrue );
+
+ // fill texts, icon & behaviour parameters
+ FillNotificationParams();
+
+ iNotificationDialog->ShowL();
+
+ return;
+
}
// -----------------------------------------------------------------------------
-// CIAUpdateBGSoftNotification::NotificationCanceled
-// Dynamic soft notification was canceled by user.
-// -----------------------------------------------------------------------------
-//
-void CIAUpdateBGSoftNotification::NotificationCanceled( TInt /*aIdentifier*/ )
- {
- FLOG("[bgchecker] softnotification callback function Canceled");
- //remove the soft notifiation id
- iInternalFile->SetSoftNotificationID( 0 );
- TRAP_IGNORE( iInternalFile->WriteControllerDataL() );
-
- iCallback->SoftNotificationCallBack( EFalse );
- }
-
-// -----------------------------------------------------------------------------
-// CIAUpdateBGSoftNotification::ShowSoftNotificationL
-// Displays a soft notification
+// CIAUpdateBGSoftNotification::ShowIndicatorL
+// Displays indicator
// -----------------------------------------------------------------------------
//
-void CIAUpdateBGSoftNotification::ShowSoftNotificationL()
+void CIAUpdateBGSoftNotification::ShowIndicatorL()
{
- TAknDynamicSoftNotificationParams param( KSoftNotificationPriority );
- FillNotificationParams( param );
+
+ FLOG("[bgchecker] ShowIndicatorL");
- TInt oldId = iNotificationId;
- iNotificationId =
- iNotifier->SetDynamicNotificationCountL( param, iNotificationId, 1 );
-
- if( oldId != iNotificationId )
- {
- FLOG("[bgchecker] softnotification save notification Id");
- iInternalFile->SetSoftNotificationID( iNotificationId );
- TRAP_IGNORE( iInternalFile->WriteControllerDataL() );
-
- iNotifier->StopObserving( oldId );
- iNotifier->StartObservingL( iNotificationId, this );
- }
+ CHbIndicatorSymbian *ind = CHbIndicatorSymbian::NewL();
+ CleanupStack::PushL( ind );
+
+ TInt value = GetNrOfUpdates();
+
+ // Set indicator
+ CHbSymbianVariant* varValue = CHbSymbianVariant::NewL( &value,
+ CHbSymbianVariant::EInt );
+ CleanupStack::PushL( varValue );
+ // Temporary removal
+ ind->Activate( KIndicatorTypeBgc, varValue );
+ CleanupStack::PopAndDestroy( varValue );
+ CleanupStack::PopAndDestroy( ind );
+
+ return;
+
}
// -----------------------------------------------------------------------------
-// CIAUpdateBGSoftNotification::RemoveSoftNotificationL
-// Cancels and removes the soft notification
+// CIAUpdateBGSoftNotification::Remove indicator
+// Removes indicator
// -----------------------------------------------------------------------------
//
-void CIAUpdateBGSoftNotification::RemoveSoftNotificationL( TInt aNotifierId )
+void CIAUpdateBGSoftNotification::RemoveIndicatorL()
{
- if ( aNotifierId != 0 )
- {
- iNotifier->CancelDynamicNotificationL( aNotifierId );
- }
+
+ FLOG("[bgchecker] RemoveIndicatorL");
+
+ CHbIndicatorSymbian *ind = CHbIndicatorSymbian::NewL();
+ CleanupStack::PushL( ind );
+ // Temporary removal
+ ind->Deactivate( KIndicatorTypeBgc );
+ CleanupStack::PopAndDestroy(ind);
+
+ return;
+
}
// -----------------------------------------------------------------------------
@@ -136,58 +189,29 @@
// Sets a text for a soft notification
// -----------------------------------------------------------------------------
//
-void CIAUpdateBGSoftNotification::SetTextL( const TDesC& aText, const TDesC& aGroupText )
+void CIAUpdateBGSoftNotification::SetTextL(
+ const TDesC& aTitle, const TDesC& aText )
{
- HBufC* txt = aText.AllocL();
- delete iLabel;
- iLabel = txt;
+ HBufC* txt = aTitle.AllocL();
+ delete iTitle;
+ iTitle = txt;
- txt = aGroupText.AllocL();
- delete iGroupLabel;
- iGroupLabel = txt;
+ txt = aText.AllocL();
+ delete iText;
+ iText = txt;
}
// -----------------------------------------------------------------------------
-// CIAUpdateBGSoftNotification::SetSoftkeyLabelsL
-// Sets new labels for softkeys
+// CIAUpdateBGSoftNotification::SetNrOfUpdates
+// Sets an image path for a soft notification
// -----------------------------------------------------------------------------
//
-void CIAUpdateBGSoftNotification::SetSoftkeyLabelsL(
- const TDesC& aSoftkey1Label,
- const TDesC& aSoftkey2Label )
+void CIAUpdateBGSoftNotification::SetNrOfUpdates( const TInt& aNrOfUpdates)
{
- HBufC* txt = aSoftkey1Label.AllocL();
- delete iSoftkey1;
- iSoftkey1 = txt;
-
- txt = aSoftkey2Label.AllocL();
- delete iSoftkey2;
- iSoftkey2 = txt;
+ // save number of updates
+ iNrOfUpdates = aNrOfUpdates;
+ return;
}
-
-// -----------------------------------------------------------------------------
-// CIAUpdateBGSoftNotification::SetImageL
-// Sets an image for a soft notification
-// -----------------------------------------------------------------------------
-//
-void CIAUpdateBGSoftNotification::SetImageL(
- const TDesC8& aImage )
- {
- HBufC8* image = aImage.AllocL();
- delete iImageData;
- iImageData = image;
- }
-
-// -----------------------------------------------------------------------------
-// CIAUpdateBGSoftNotification::Id
-// Notification Id
-// -----------------------------------------------------------------------------
-//
-TInt CIAUpdateBGSoftNotification::Id()
- {
- return iNotificationId;
- }
-
// -----------------------------------------------------------------------------
// CIAUpdateBGSoftNotification::ConstructL
// Symbian 2nd phase constructor can leave.
@@ -196,11 +220,6 @@
void CIAUpdateBGSoftNotification::ConstructL()
{
FLOG("[bgchecker] softnotification ConstructL");
- iNotifier = CAknDynamicSoftNotifier::NewL();
-
- iInternalFile->ReadControllerDataL();
- iNotificationId = iInternalFile->SoftNotificationID();
-
}
// -----------------------------------------------------------------------------
@@ -209,54 +228,66 @@
// might leave.
// -----------------------------------------------------------------------------
//
-CIAUpdateBGSoftNotification::CIAUpdateBGSoftNotification( MIAUpdateBGSoftNotificationCallBack* aCallback,
- CIAUpdateBGInternalFileHandler* aInternalFile )
- : iCallback ( aCallback ), iInternalFile ( aInternalFile )
+CIAUpdateBGSoftNotification::CIAUpdateBGSoftNotification(
+ MIAUpdateBGSoftNotificationCallBack* aCallback )
+ : iCallback ( aCallback )
{
}
// -----------------------------------------------------------------------------
-// CIAUpdateBGSoftNotification::StartObservingIfNeededL
-// -----------------------------------------------------------------------------
-//
-void CIAUpdateBGSoftNotification::StartObservingIfNeededL()
- {
- if ( iNotificationId )
- {
- FLOG("[bgchecker] softnotification There is a buffered softnotification");
- //a buffering soft notification
- iNotifier->StartObservingL( iNotificationId, this );
- }
- }
-
-// -----------------------------------------------------------------------------
// CIAUpdateBGSoftNotification::FillNotificationParams
// -----------------------------------------------------------------------------
//
-void CIAUpdateBGSoftNotification::FillNotificationParams(
- TAknDynamicSoftNotificationParams& aParam )
+
+void CIAUpdateBGSoftNotification::FillNotificationParams()
{
- if( iSoftkey1 && iSoftkey2 )
- {
- aParam.SetSoftkeys( *iSoftkey1, *iSoftkey2 );
- }
-
- if( iLabel )
+
+ // set title, text and icon
+ if ( iTitle )
{
- aParam.SetNoteLabels( *iLabel, *iLabel );
+ iNotificationDialog->SetTitleL(iTitle->Des());
}
-
- if( iGroupLabel )
+
+ if ( iText )
{
- //aParam.SetGroupLabels( *iGroupLabel, *iGroupLabel );
- }
-
- if( iImageData )
- {
- aParam.SetImageData( *iImageData );
+ iNotificationDialog->SetTextL(iText->Des());
}
- aParam.EnableObserver();
+ // set wrapping, timeout and touch
+ iNotificationDialog->SetTitleTextWrapping(
+ CHbDeviceNotificationDialogSymbian::TextWordWrap);
+ iNotificationDialog->SetTimeout(4000); //default 3000
+ iNotificationDialog->EnableTouchActivation(ETrue); // default FALSE
+
+ }
+// ----------------------------------------------------------
+// CIAUpdateBGSoftNotification::EnableIndicator(TBool aEnabled)
+// ----------------------------------------------------------
+void CIAUpdateBGSoftNotification::SetIndicatorEnabled( TBool aEnabled )
+ {
+
+ iActivateIndicator = aEnabled;
+
+ }
+
+// ----------------------------------------------------------
+// CIAUpdateBGSoftNotification::IndicatorEnabled()
+// ----------------------------------------------------------
+TBool CIAUpdateBGSoftNotification::IsIndicatorEnabled()
+ {
+
+ return iActivateIndicator;
+
+ }
+
+// ----------------------------------------------------------
+// CIAUpdateBGSoftNotification::GetNrOfUpdates()
+// ----------------------------------------------------------
+int CIAUpdateBGSoftNotification::GetNrOfUpdates()
+ {
+
+ return iNrOfUpdates;
+
}
// End of File