internetradio2.0/networkcontrollersrc/irnetworkobserver.cpp
changeset 11 f683e24efca3
parent 0 09774dfdd46b
--- 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;