qtmobility/src/location/qgeopositioninfosource_s60.cpp
changeset 5 453da2cfceef
parent 4 90517678cc4f
child 11 06b8e2af4411
--- a/qtmobility/src/location/qgeopositioninfosource_s60.cpp	Mon May 03 13:18:40 2010 +0300
+++ b/qtmobility/src/location/qgeopositioninfosource_s60.cpp	Fri May 14 16:41:33 2010 +0300
@@ -322,6 +322,28 @@
             }
         }
     }
+
+    if (index != -1) {
+        return index;
+    }
+
+    bool minSet = false;
+    microSeconds = 0;
+
+    for (TInt i = 0 ; i < mListSize; i++) {
+        if (mList[i].mIsAvailable
+                //&& posMethods.testFlag(mList[i].mPosMethod)
+                && (mList[i].mStatus != TPositionModuleStatus::EDeviceUnknown)
+                && (mList[i].mStatus != TPositionModuleStatus::EDeviceError)
+                && (((aBits >> i) & 1))) {
+            if (!minSet || (mList[i].mTimeToFirstFix < microSeconds)) {
+                index = i;
+                minSet = true;
+                microSeconds = mList[i].mTimeToFirstFix;
+            }
+        }
+    }
+
     return index;
 }
 
@@ -694,6 +716,11 @@
     if (mReqUpdateAO && mReqUpdateAO->isRequestPending())
         return;
 
+    if (aTimeout < 0 || (aTimeout != 0 && aTimeout < minimumUpdateInterval())) {
+        emit updateTimeout();
+        return;
+    }
+
     if (aTimeout == 0)
         aTimeout = 20000;