Fix for corner cases 03/244103/1 accepted/tizen_6.0_unified accepted/tizen_6.0_unified_hotfix tizen_6.0 tizen_6.0_hotfix accepted/tizen/6.0/unified/20201030.120523 accepted/tizen/6.0/unified/hotfix/20201103.051734 accepted/tizen/unified/20200916.121732 submit/tizen/20200915.054459 submit/tizen_6.0/20201029.205103 submit/tizen_6.0_hotfix/20201102.192503 submit/tizen_6.0_hotfix/20201103.114803 tizen_6.0.m2_release
authorchakradhar <v.pogiri@samsung.com>
Tue, 15 Sep 2020 05:15:35 +0000 (10:45 +0530)
committerchakradhar <v.pogiri@samsung.com>
Tue, 15 Sep 2020 05:15:35 +0000 (10:45 +0530)
Change-Id: I0158c9d07a074314efeb7d080b27a16faa9ea804

location/manager/location-boundary.c

index cbdd726..05a2b6c 100644 (file)
@@ -381,10 +381,10 @@ location_boundary_on_path(LocationBoundary *boundary, LocationPosition *position
 
                                        px = x1 - x2;
                                        norm = y1 * y1 + px * px;
-                                       u = ( y3 * y1 + ( x3 - x2 ) * px ) / norm;
                                        if(norm <= 0){
                                                u = 0;
                                        }else{
+                                               u = ( y3 * y1 + ( x3 - x2 ) * px ) / norm;
                                                if( u > 1){
                                                        u = 1;
                                                }else if (u < 0){
@@ -420,7 +420,7 @@ location_boundary_on_path(LocationBoundary *boundary, LocationPosition *position
                        center.longitude = boundary->circle.center->longitude;
 
                        location_get_distance(&center, position, &distance);
-                       if (distance < boundary->circle.radius + tolerance) {
+                       if (distance < boundary->circle.radius + tolerance && distance > boundary->circle.radius - tolerance) {
                                return TRUE;
                        }
                        break;
@@ -467,10 +467,10 @@ location_boundary_on_path(LocationBoundary *boundary, LocationPosition *position
 
                                        px = x1 - x2;
                                        norm = y1 * y1 + px * px;
-                                       u = ( y3 * y1 + ( x3 - x2 ) * px ) / norm;
                                        if(norm <= 0){
                                                u = 0;
                                        }else{
+                                               u = ( y3 * y1 + ( x3 - x2 ) * px ) / norm;
                                                if( u > 1){
                                                        u = 1;
                                                }else if (u < 0){
@@ -504,7 +504,6 @@ location_boundary_on_path(LocationBoundary *boundary, LocationPosition *position
        return FALSE;
 }
 
-
 EXPORT_API int
 location_boundary_add(const LocationObject *obj, const LocationBoundary *boundary)
 {