basiclocationinfodisplay/blid/engine/src/CBlidLocation.cpp
branchRCL_3
changeset 3 3c271c9e6618
parent 0 522cd55cc3d7
child 5 41042d2af523
--- a/basiclocationinfodisplay/blid/engine/src/CBlidLocation.cpp	Tue Feb 02 00:16:03 2010 +0200
+++ b/basiclocationinfodisplay/blid/engine/src/CBlidLocation.cpp	Fri Feb 19 22:45:00 2010 +0200
@@ -302,84 +302,105 @@
     iPosStatus = iStatus;
 
     iDeviceStatus = EDeviceConnected;
-    
-    /// Check if we have satellite data
-    if(!(iStatus.Int() == KErrNone ||
-         iStatus.Int() == KPositionPartialUpdate) )
-	    {	    
-	    iPositionInfo.ClearSatellitesInView();
-		}	
     SortSatelliteDataL();
-        
-    switch ( iStatus.Int() )
+
+    switch (iStatus.Int())
         {
         //case KPositionPartialUpdate:
         case KErrNone: // Success
             {
             iOnlineMode = ETrue;
             iUpdateReceived = ETrue;
-            iGPSDataAvailable = ETrue;            
-            iPositionInfo.GetPosition( iPosition );
-            iPositionInfo.GetCourse( iCourse );
+            iGPSDataAvailable = ETrue;
+            iPositionInfo.GetPosition(iPosition);
+            iPositionInfo.GetCourse(iCourse);
             iLastGoodFixTime.UniversalTime();
-    	    
-    	    CalculateCourse();
-    	        	        	   
-			if(iIsTripStart)
-				{
-				if(!iIsPreviousPositionUpdated)
-					{
-					iIsPreviousPositionUpdated = ETrue;
-					iPrevPosition = GetCurrentPosition();            	
-					}
-				UpdateTripData();	       
-				}
-    	    
-    	    //SortSatelliteDataL();
-    	    
-    	    if(iObserver)    	    
-    	        {
-    	        iObserver->NotifyL( iOnlineMode );
-    	        }            
-    	      if ( iRequesting )
-            {
-            //DEBUG("KErrNone : NotifyPositionUpdate");
-            iPositioner.NotifyPositionUpdate( iPositionInfo, iStatus );
-            SetActive();
-            }     
+
+            CalculateCourse();
+
+            if (iIsTripStart)
+                {
+                if (!iIsPreviousPositionUpdated)
+                    {
+                    iIsPreviousPositionUpdated = ETrue;
+                    iPrevPosition = GetCurrentPosition();
+                    }
+                UpdateTripData();
+                }
+            if (iObserver)
+                {
+                iObserver->NotifyL(iOnlineMode);
+                }
+            if (iRequesting)
+                {
+                //DEBUG("KErrNone : NotifyPositionUpdate");
+                iPositioner.NotifyPositionUpdate(iPositionInfo, iStatus);
+                SetActive();
+                }
             break;
             }
         case KErrAccessDenied:
-        /*
-          Happens if we don't specify requestor information.
-          This condition should not be encountered.
-        */
+            /*
+             Happens if we don't specify requestor information.
+             This condition should not be encountered.
+             */
             {
+            iPositionInfo.ClearSatellitesInView();
             iRequesting = EFalse;
-            User::Leave( KErrAccessDenied );
+            User::Leave(KErrAccessDenied);
             break;
             }
         case KErrCancel: // Postion update request cancelled
             {
             // We canceled the request so do nothing
+            iPositionInfo.ClearSatellitesInView();
             break;
             }
         case KPositionPartialUpdate: // Incomplete position information   
-        {
-        if ( iRequesting )
             {
-            //DEBUG("KPositionPartialUpdate : NotifyPositionUpdate");
-            iPositioner.NotifyPositionUpdate( iPositionInfo, iStatus );
-            SetActive();
+            TTime now;
+            now.UniversalTime();
+            TTimeIntervalSeconds secondsSinceLastGoodFix;
+            now.SecondsFrom(iLastGoodFixTime, secondsSinceLastGoodFix);
+            if (secondsSinceLastGoodFix.Int() > 15)
+                {
+                iLastGoodFixTime.UniversalTime();
+                if (iObserver)
+                    {
+                    iObserver->NotifyErrorL(KErrTimedOut);
+                    }
+                }
+
+            else
+                {
+                iLastGoodFixTime.UniversalTime();
+                }
+            // end of addition for TSW error
+
+            iGPSDataAvailable = EFalse;
+            iUpdateReceived = ETrue;
+
+            // All cases are errors and hence go to offline mode
+            iOnlineMode = EFalse;
+            if (iObserver)
+                {
+                iObserver->NotifyErrorL(iStatus.Int());
+                }
+            if (iRequesting)
+                {
+                iPositioner.NotifyPositionUpdate(iPositionInfo, iStatus);
+                SetActive();
+                }
+            break;
             }
-        	break;
-        }     
+
         case KErrTimedOut: // Position update timed out
         case KPositionQualityLoss: //GPS not connected
             {
+            iPositionInfo.ClearSatellitesInView();
             iUpdateReceived = ETrue;
-            iGPSDataAvailable = EFalse;           
-            if(iIsTripStart && !iIsTripClear)
+            iGPSDataAvailable = EFalse;
+            if (iIsTripStart && !iIsTripClear)
                 {
                 iTripGPSDataLost = ETrue;
                 }
@@ -387,71 +408,38 @@
             }
             //-fallthrough
         case KErrNotFound: // No PSY selected.
-        case KErrUnknown:  // This will be returned by MLFW        
+        case KErrUnknown: // This will be returned by MLFW        
         case KErrArgument:
-        /*
-         PSY does not support the information type specified
-         by BLID.
-        */
+
+            /*
+             PSY does not support the information type specified
+             by BLID.
+             */
         default:
-            {  
-            if(iStatus.Int() != KPositionPartialUpdate )
-                {
-                iDeviceStatus = EDeviceNotFound;
-                iPositionInfo.ClearSatellitesInView();
-                iWaitingGpsData = EFalse;                
-                }
-            // added for TSW error.    
-            if(iStatus.Int() == KPositionPartialUpdate )
-                {
-                //SortSatelliteDataL();
-                TTime now;
-                now.UniversalTime();
-                TTimeIntervalSeconds secondsSinceLastGoodFix;
-                now.SecondsFrom( iLastGoodFixTime , secondsSinceLastGoodFix );
-                if ( secondsSinceLastGoodFix.Int() > 15 )
-                    {
-                    iLastGoodFixTime.UniversalTime();
-                    if(iObserver)
-                        {
-                        iObserver->NotifyErrorL( KErrTimedOut );
-                        }  
-                    }
-                }
-                else
+            {
+            iDeviceStatus = EDeviceNotFound;
+            iWaitingGpsData = EFalse;
+            if (iObserver)
                 {
-                iLastGoodFixTime.UniversalTime();
+                iObserver->NotifyErrorL(KErrNotFound);
                 }
-            // end of addition for TSW error
-                            
-			iGPSDataAvailable = EFalse;
-			iUpdateReceived = ETrue;
-            
-            // All cases are errors and hence go to offline mode
-            iOnlineMode = EFalse;
-            if(iObserver)
+            if (iRequesting)
                 {
-                iObserver->NotifyErrorL(iStatus.Int());
-                }            
-            if ( iRequesting )
-            {
-            
-            iPositioner.NotifyPositionUpdate( iPositionInfo, iStatus );
-            SetActive();
-            }         
+                iPositioner.NotifyPositionUpdate(iPositionInfo, iStatus);
+                SetActive();
+                }
+             }
             break;
-            }
         }
-        
     /*if( iStatus.Int() != KErrCancel )
+     {
+     //DEBUG("RUNL  : SetUpdateOptions");
+     SetUpdateOptions();
+     }*/
+    if (iStatus.Int() != KPositionPartialUpdate)
         {
-        //DEBUG("RUNL  : SetUpdateOptions");
-        SetUpdateOptions();
-        }*/
-    if(iStatus.Int() != KPositionPartialUpdate )
-    {
-    	iWaitingGpsData = CheckIfWaitingGPSData();
-    }
+        iWaitingGpsData = CheckIfWaitingGPSData();
+        }
     }
 
 // ----------------------------------------------------------------------------