From da58621aeab8fa2f854d04ddbdc9944c6f7aac67 Mon Sep 17 00:00:00 2001 From: Dmitry Yunitsky Date: Sun, 3 Aug 2014 14:48:39 +0300 Subject: [PATCH] Fixed compass direction while moving. --- .../com/mapswithme/maps/DownloadResourcesActivity.java | 2 +- android/src/com/mapswithme/maps/MWMActivity.java | 5 ++++- android/src/com/mapswithme/maps/SearchActivity.java | 2 +- .../mapswithme/maps/bookmarks/BookmarkListAdapter.java | 2 +- .../src/com/mapswithme/maps/location/LocationService.java | 8 ++++---- 5 files changed, 11 insertions(+), 8 deletions(-) diff --git a/android/src/com/mapswithme/maps/DownloadResourcesActivity.java b/android/src/com/mapswithme/maps/DownloadResourcesActivity.java index f6f64d8079..a02cbc8d5e 100644 --- a/android/src/com/mapswithme/maps/DownloadResourcesActivity.java +++ b/android/src/com/mapswithme/maps/DownloadResourcesActivity.java @@ -605,7 +605,7 @@ public class DownloadResourcesActivity extends MapsWithMeBaseActivity } @Override - public void onDrivingHeadingUpdated(long time, double heading) + public void onDrivingHeadingUpdated(long time, double heading, double accuracy) { // } diff --git a/android/src/com/mapswithme/maps/MWMActivity.java b/android/src/com/mapswithme/maps/MWMActivity.java index f0578767e6..57778eecfd 100644 --- a/android/src/com/mapswithme/maps/MWMActivity.java +++ b/android/src/com/mapswithme/maps/MWMActivity.java @@ -892,8 +892,11 @@ public class MWMActivity extends NvEventQueueActivity } @Override - public void onDrivingHeadingUpdated(long time, double heading) + public void onDrivingHeadingUpdated(long time, double heading, double accuracy) { + LocationUtils.correctCompassAngles(getWindowManager().getDefaultDisplay().getOrientation(), new double[]{heading}); + nativeCompassUpdated(time, heading, heading, accuracy); + if (mInfoView.getState() != State.HIDDEN) mInfoView.updateAzimuth(heading); } diff --git a/android/src/com/mapswithme/maps/SearchActivity.java b/android/src/com/mapswithme/maps/SearchActivity.java index 0ecb1925e2..bac8c08c9b 100644 --- a/android/src/com/mapswithme/maps/SearchActivity.java +++ b/android/src/com/mapswithme/maps/SearchActivity.java @@ -770,7 +770,7 @@ public class SearchActivity extends MapsWithMeBaseListActivity implements Locati } @Override - public void onDrivingHeadingUpdated(long time, double heading) + public void onDrivingHeadingUpdated(long time, double heading, double accuracy) { // } diff --git a/android/src/com/mapswithme/maps/bookmarks/BookmarkListAdapter.java b/android/src/com/mapswithme/maps/bookmarks/BookmarkListAdapter.java index 4c263bcb3b..3348d159b0 100644 --- a/android/src/com/mapswithme/maps/bookmarks/BookmarkListAdapter.java +++ b/android/src/com/mapswithme/maps/bookmarks/BookmarkListAdapter.java @@ -160,7 +160,7 @@ public class BookmarkListAdapter extends BaseAdapter } @Override - public void onDrivingHeadingUpdated(long time, double heading) + public void onDrivingHeadingUpdated(long time, double heading, double accuracy) { // } diff --git a/android/src/com/mapswithme/maps/location/LocationService.java b/android/src/com/mapswithme/maps/location/LocationService.java index 2492526744..bad26fc4b0 100644 --- a/android/src/com/mapswithme/maps/location/LocationService.java +++ b/android/src/com/mapswithme/maps/location/LocationService.java @@ -55,7 +55,7 @@ public class LocationService implements public void onCompassUpdated(long time, double magneticNorth, double trueNorth, double accuracy); - public void onDrivingHeadingUpdated(long time, double heading); + public void onDrivingHeadingUpdated(long time, double heading, double accuracy); public void onLocationError(int errorCode); } @@ -125,11 +125,11 @@ public class LocationService implements it.next().onCompassUpdated(time, magneticNorth, trueNorth, accuracy); } - private void notifyDrivingHeadingUpdated(long time, double heading) + private void notifyDrivingHeadingUpdated(long time, double heading, double accuracy) { final Iterator it = mListeners.iterator(); while (it.hasNext()) - it.next().onDrivingHeadingUpdated(time, heading); + it.next().onDrivingHeadingUpdated(time, heading, accuracy); } public void startUpdate(LocationListener listener) @@ -223,7 +223,7 @@ public class LocationService implements private void emitCompassResults(long time, double north, double trueNorth, double offset) { if (mDrivingHeading >= 0.0) - notifyDrivingHeadingUpdated(time, mDrivingHeading); + notifyDrivingHeadingUpdated(time, mDrivingHeading, offset); else { if (Math.abs(Math.toDegrees(north - mLastNorth)) < NOISE_THRESHOLD)