diff -r 3b03c28289e6 -r f683e24efca3 internetradio2.0/networkcontrollersrc/irnetworkobserver.cpp --- a/internetradio2.0/networkcontrollersrc/irnetworkobserver.cpp Fri Jun 11 13:30:40 2010 +0300 +++ b/internetradio2.0/networkcontrollersrc/irnetworkobserver.cpp Wed Jun 23 18:04:00 2010 +0300 @@ -181,7 +181,14 @@ { if(iMonitoringRequired) { - iMonitorObserver->IRNetworkEventL(ENetworkConnectionDisconnected); + if (iMonitorObserver) + { + iMonitorObserver->IRNetworkEventL(ENetworkConnectionDisconnected); + } + else + { + iNetworkController->NotifyActiveNetworkObserversL(ENetworkConnectionDisconnected); + } } } } @@ -369,60 +376,30 @@ case EBearerGPRS: { iIRConnectionType = EGprs; - if(iMonitoringRequired) - { - // Intimate the connection established event - iMonitorObserver->IRNetworkEventL( - ENetworkConnectionEstablished); - } } break; case EBearerEdgeGPRS: { iIRConnectionType = EEdge; - if(iMonitoringRequired) - { - // Intimate the connection established event - iMonitorObserver->IRNetworkEventL( - ENetworkConnectionEstablished); - } } break; case EBearerWLAN: { iIRConnectionType = EWiFi; - if(iMonitoringRequired) - { - // Intimate the connection established event - iMonitorObserver->IRNetworkEventL( - ENetworkConnectionEstablished); - } } break; case EBearerWCDMA: { iIRConnectionType = EWcdma; - if(iMonitoringRequired) - { - // Intimate the connection established event - iMonitorObserver->IRNetworkEventL( - ENetworkConnectionEstablished); - } } break; case EBearerCDMA2000: { iIRConnectionType = ECdma2000; - if(iMonitoringRequired) - { - // Intimate the connection established event - iMonitorObserver->IRNetworkEventL( - ENetworkConnectionEstablished); - } } break; @@ -430,17 +407,25 @@ { #ifdef __WINS__ iIRConnectionType = EGprs; - if(iMonitoringRequired) - { - // Intimate the connection established event - iMonitorObserver->IRNetworkEventL( - ENetworkConnectionEstablished); - } #endif } break; } + + if (iMonitoringRequired) + { + if (iMonitorObserver) + { + // Intimate the connection established event + iMonitorObserver->IRNetworkEventL(ENetworkConnectionEstablished); + } + else + { + iNetworkController->NotifyActiveNetworkObserversL(ENetworkConnectionEstablished); + } + } + iNetworkController->ResetHandingOverConnection(); } break;