Coder Social home page Coder Social logo

compass's Introduction

Icon

Compass

Simple and beautiful compass for Android

This project is intended to offer a simple and good-looking compass for Android

Get it on F-Droid Get it on Google Play Get it on GitHub

Features

  • Can point to magnetic north as well as true north
  • Shows exact degrees and cardinal direction
  • Displays sensor status
  • Haptic feedback
  • Light and Dark theme
  • No advertisements
  • No trackers
  • No annoyance

Screenshots

Screenshot Light theme

Screenshot Dark theme

Translations

If you want to provide a new translation or update an existing one you can find some instructions here.

Code Language App Metadata Complete
default English
bg Bulgarian
bs Bosnian
cs Czech
da Danish
de German
el Greek
es Spanish
fa Persian
fi Finnish
fr French
hr Croatian
hi Hindi
hu Hungarian
it Italian
ja Japanese
mk Macedonian
nb Norwegian Bokmål
nl Dutch
pl Polish
pt-BR Brazilian Portuguese
ru Russian
sr Serbian
ta Tamil
tr Turkish
vi Vietnamese

License

The project is licensed under the GNU GPL v3. You can find the license text in the LICENSE file.

compass's People

Contributors

fjuro avatar ftno avatar inson1 avatar jalalx avatar klaudiakl avatar komandotayfa avatar kr0oked avatar kuragehimekurara1 avatar linarphy avatar nanich87 avatar omlineeditor avatar onerc avatar poussinou avatar quazar-omega avatar titanicbobo avatar tomo90 avatar willersonsp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

compass's Issues

Add a language

Hello I would Like to contribute to translation in my native language. How can I add my own transactions? Still understanding GitHub so a bit confused

Show bearing

This may be done in several steps

  1. Enter an arbitrary bearing to see a mark on the compass like the one indicating north.
  2. If the app uses GPS (see #4), enter destination coordinates for the app to calculate the bearing.
  3. Enter a series of waypoints and switch automatically to the next when reaching current.

update to 1.5 cause trouble to the app

Hello.

As an user of F-Droid, i have accepted the update 1.5 since that, the app don't work, displaying the error "sensor not available". I have uninstall the 1.5 version to come back to 1.4, the error is still here.

I am disappointed the app have worked 2 days and feels useful for me.

Enabling true north doesn't work

When I enable true north on the application, I get an notice on the main screen "waiting for location update" that never goes away. In the system settings, it states that the application has permission to access location while in use, but it also shows that the application never accessed the location.

I am using a custom ROM with microG.

Android 10
e/OS 1.11

display strength of magnetical field

Please can you add the strength of magnetical field. It would be useful in case there are other magnetical fields disturbing
the compass correctly showing north.

wrong direction to the north if you flip the phone

I was on the train, lying on my back and the phone was upside down, i.e. the screen was down to the ground. when I started the compass, the direction was shown the opposite, 180 degrees. the program does not take into account the flip of the screen down. please fix the bug.

Jiggle and (relatively) slow response of heading

Wonderful work! Thank you for providing such a remarkable compass application!

I've noticed two issues that may be further improved:

  • Jiggle of the heading. When using the compass, sometimes the heading jiggles a bit. For example, even if I put the phone on a flat, stationary table, the heading sometimes changes for a few degrees (and may return back or not). Please kindly see https://1drv.ms/v/s!AtC6mR0eG_AMav19bMorYzsFWoo?e=MwsHo3 as a short video that shows the issue.
  • Slow response of the heading. Sometimes it takes a while for the heading to be stable (even if the sensorListener is configured as 'SENSOR_DELAY_FASTEST'). Please see https://1drv.ms/v/s!AtC6mR0eG_AMawc4t0MtguIvmjw?e=3ddbzb for the phenomenon.

By contrast, the iPhone default compass APP (maybe the best compass APP I've used in market) almost never has such problems. I only tested the software on a Pixel 2XL phone (I have performed a few '8' for calibration but these issues still may occur).

My question is if this is caused by insufficient calibration of the rotation sensor, or if it's related to the smartphone (and equipped sensor) model?

For now, my doubts for the above two issues are:

  • Jiggle of the heading. This probably boils down to the sensor noise or similar. Perhaps a low pass filter on the azimuth outputs can smooth it?
  • Slow response of the heading. I doubt if this is caused by inherent features of 'Sensor.TYPE_ROTATION_VECTOR', which is a software sensor based on sensor fusion between magnetometer, gyroscope and accelerometer. It can provide accurate results when being relatively stationary, but performs worse otherwise. Therefore, when the pose of phone changes fast there may be a delay for the azimuth to be stable.

Potentially the above are something worth considering. Any ideas about the causes/solutions are appreciated!

True North

Can add manual true north correction?

add support for screen reader (google talk back)

hello there,
I am a screen reader user (Google Talk back.) and I am currently attempting to utilize the compass app. While the user interface appears decent for screen reader compatibility, it falls short of being optimal. I kindly request the addition of text-to-speech support. This enhancement would ensure that whenever I adjust the orientation of my phone, the updated coordinates are automatically announced. This feature would significantly improve the overall accessibility of the app for users with visual impairments, making it a more inclusive and user-friendly experience. Your consideration of this request is greatly appreciated.

Nicer UI

I think the name of the app and the icons on top of the page are too small.
And the compass is little bit too high.
What do you think?

Screenshot_2023-10-16-07-29-46-521_com.bobek.compass.jpg

Incompatibility with Android 11

Could you make this compatible with Android 11? The model of my phone is SM-A037U1/DS and this app is shown as "incompatible" in Fdroid.

Wrong language code change

Refer to pull request #41

I spotted that the language code in the repository has been wrongly changed from nb (values-nb) to nn (values-nn folder).
The pull request was nb and is not the same as nn that is another written language form in Norway.

(nb is the most used officially written language form in Norway, nn is far less used)

North and South reversed for Australia

  • The title says it all.
  • We had a magnetic compass pointing North
  • The app was pointing South
  • As it says we are in the Southern Hemisphere, Australia.
  • Tried the calibration figure 8 thing still pointing the wrong way.

180° remapping does not work properly

I believe the X / Y values are swapped on this line:
https://github.com/Kr0oked/Compass/blob/master/app/src/main/java/com/bobek/compass/util/MathUtils.kt#L53

I was testing 180° remapping and North was in the wrong spot. Swapping these corrected it, and aligns with other implementations:
https://stackoverflow.com/questions/18782829/android-sensormanager-strange-how-to-remapcoordinatesystem

For testing the only way I was able to get into 180° was to start navigating in Google Maps and gesture-nav over to the compass. It's very clunky but unfortunately there does not appear to be a simple way to enable 180° rotations in settings/adb.

Spanish translation

Hello,
Attached (string-es.zip) you'll find the spanish translation for Compass. Hope it can be included in the next release.

Regards
Edgardo

strings-es.zip

Remove app name from interface

I feel the "Compass" title in the interface is unnecessary. If for some reason someone wants to know, they can glance in the open app thing, or just use the about option it provides.

True North toggle button

The words "Magnetic North" appear below the compass. However, tapping on the phrase doesn't switch to "True North" as one might expect.

Currently, one must go into the settings to enable or disable declination, which works but could be simpler.

By the way, thank you for making this useful app.

Bug

When giving permission to the sensor it still display "sensor not available" message.

Screenshot_20230314-224805

Show location and altitude.

I would love to be able to see the current coordinates and altitude on the compass screen. (And long press to copy them). I feel like this feature really belongs in a compass app.

Somewhat unrelated, but I came here because of the excellent compass app by R. Apps (has been talked about here before) has been bought by some shady company, which now charges 15 euro a week for the ad-free version. I loved that app, I feel like I can only trust open source from now on.

Better Error handling of location off error during turning on True North

If I start the True North without the location on it gives me error. Its one of the most occurred errors, that's why I think it can have its own error handling. And not just pop up with default message.

And maybe it would be even better to find out if the location is on/off and then try starting the True North.

Screenshot_2023-10-16-06-33-26-115_com.bobek.compass.jpg

Cant you do what Google maps do and ask user and if user agree then turn on the location for him?

Or just do the error pop up nicer. Something like this:

No title

For True North to work correctly, it needs your location. May you turn it on?

Crash on enable true north setting

When enabling the true north setting, the app will crash and will crash immediately on every subsequent start.

Logcat output:

05-06 12:24:50.394  3791  3791 E AndroidRuntime: FATAL EXCEPTION: main
05-06 12:24:50.394  3791  3791 E AndroidRuntime: Process: com.bobek.compass, PID: 3791
05-06 12:24:50.394  3791  3791 E AndroidRuntime: java.lang.RuntimeException: Unable to resume activity {com.bobek.compass/com.bobek.compass.MainActivity}: java.lang.IllegalArgumentException: provider doesn't exist: network
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4438)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4470)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:52)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:106)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:223)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:7664)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: Caused by: java.lang.IllegalArgumentException: provider doesn't exist: network
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at android.os.Parcel.createExceptionOrNull(Parcel.java:2378)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at android.os.Parcel.createException(Parcel.java:2358)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at android.os.Parcel.readException(Parcel.java:2341)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at android.os.Parcel.readException(Parcel.java:2283)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at android.location.ILocationManager$Stub$Proxy.requestLocationUpdates(ILocationManager.java:1297)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at android.location.LocationManager.requestLocationUpdates(LocationManager.java:1178)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at android.location.LocationManager.requestLocationUpdates(LocationManager.java:1139)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at android.location.LocationManager.requestLocationUpdates(LocationManager.java:931)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at com.bobek.compass.CompassFragment.D(SourceFile:137)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at androidx.fragment.app.t0.n(SourceFile:113)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at androidx.fragment.app.t0.k(SourceFile:45)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at androidx.fragment.app.n0.O(SourceFile:63)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at androidx.fragment.app.n0.u(SourceFile:36)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at androidx.fragment.app.t0.n(SourceFile:146)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at androidx.fragment.app.t0.k(SourceFile:45)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at androidx.fragment.app.n0.O(SourceFile:63)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at androidx.fragment.app.n0.u(SourceFile:36)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at androidx.fragment.app.x.onPostResume(SourceFile:29)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at d.q.onPostResume(SourceFile:1)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at android.app.Activity.performResume(Activity.java:8154)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4428)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	... 11 more
05-06 12:24:50.394  3791  3791 E AndroidRuntime: Caused by: android.os.RemoteException: Remote stack trace:
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at com.android.server.location.LocationManagerService.requestLocationUpdatesLocked(LocationManagerService.java:1964)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at com.android.server.location.LocationManagerService.requestLocationUpdates(LocationManagerService.java:1947)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at android.location.ILocationManager$Stub.onTransact(ILocationManager.java:540)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at android.os.Binder.execTransactInternal(Binder.java:1154)
05-06 12:24:50.394  3791  3791 E AndroidRuntime: 	at android.os.Binder.execTransact(Binder.java:1123)

System details:
LineageOS 18.1
Android 11

GPS coordinates

Hello,

can you please show the GPS coordinates and the altitude on the main screen.

Would be really helpful in some cases.

Thanks a lot!

[Feature] Add Level

Woulf you be willing to also add a "level" indicator to this app? Sometimes it would be nice to also see the device's orientation in relation to gravity.

This could be added on a second "page" accessible by a bottom bar.

I'd also be willing to try to implement this and create a PR if you like.

Sorry for the premature posting.

emit a sound when North is reached

Hi,
could you please consider adding a sound when North is reached?
Since some users may not want it, it should be possible to enable and disable with a button near the actual ones

Speaking about where you can find open source sounds, I found:

https://github.com/akx/Notifications

where "Sharp.ogg" inside the OGG folder seems good enough, a very short sound not too intrusive

v 1.3 from F-Droid

Thanks

True North depends on GPS for location

I just noticed that when I try to use Compass indoors it shows a "Waiting for Location Update" warning with a spinning circle. This happened because I had enabled "True North", which depends on GPS.

Screenshot_20240602-125140

Falling back to magnetic North was fine, but it would have been better if Compass let me use the last known location.

Ideally, I'd be able to change the magnetic correction manually in Settings by specifying an angle. Optionally, it would be nice to set the offset by simply tapping on a map of the world.

fae8e5b92779a36c3f8a5f3d2793e4dc

Keeps "waiting for location" after enabling geographic north

After enabling geographic North the app asks for geolocation permissions. Even if I grant the permission it keeps waiting for a location update forever

I'm using Lineage for MicroG (Android 13) for POCO F3.

  • OS version: 20-20231001-microG-alioth
  • Build number: lineage_alioth-userdebug 13 TQ3A.230901.001 eng.root.20231001.114356 dev-keys
  • App version is 1.11.4
  • GPS and Bluetooth are enabled
  • I granted permissions for Mozilla Unified Npl Backend (Mozilla location service)
  • tried uninstalling/clearing local data several time

Here is a screen (Italian language):
Screenshot_20231024-222729_Bussola

Is there any other information/thing I can do/provide to try debug the problem?

Btw thanks for making the app.
I really like it and I consider it the main open source compass app.

Add a home screen widget

I'm not sure if this is technically possible to do, but if android allows it, it would be cool if I could see this compass as a widget on my home screen.

UI

and where is actually the beauty itself?
Just circle with graduations,
Though that minimlism a value in itself.

Just example:
image

APK in releases

Hello, could you please provide the APK file for new releases?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.