Code Monkey home page Code Monkey logo

whats-nearby's People

Contributors

teester avatar zossebart avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar

whats-nearby's Issues

App crashes upon trying to log in to OSM

Bug description: After launching the app and pressing the button to sign in to OSM, the app crashes.

Log:

java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/impl/client/DefaultHttpClient;
	at b.a.b.b.<init>(Unknown Source:3)
	at com.teester.whatsnearby.data.c.a.a(Unknown Source:41)
	at com.teester.whatsnearby.data.c.a.<init>(Unknown Source:12)
	at com.teester.whatsnearby.main.MainActivity$1.run(Unknown Source:8)
	at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.http.impl.client.DefaultHttpClient" on path: DexPathList[[zip file "/data/app/com.teester.whatsnearby-Nu4IWNo3W5N_imcayaF3Xg==/base.apk"],nativeLibraryDirectories=[/data/app/com.teester.whatsnearby-Nu4IWNo3W5N_imcayaF3Xg==/lib/arm64, /system/lib64, /system/vendor/lib64]]
	at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
	... 5 more

Additional info:

LG G6, HavocOS Pie
EdXposed

Repeated overpass querying when in a location without a POI

A side effect of #16: When in a location without any overpass results and location results have relatively poor accuracy, the location can flick between low and high accuracy, making it look like you're moving around.
So, queries keep being run as there is nothing in the database to say that you've been at that location before. We need to store locations of queries in the database as well as queried POIs to mitigate this.

Implement debug display

Add a screen showing information about recent app activity.

Include:

  • Last location search time, location & accuracy, & whether it triggered a query or not.
  • Last overpass query, time and results
  • TBD

App shows no result when walking in a city full of POI

When having the latest version of the app on my phone, I walked through a city in north of Germany. Of course having mobile data on and GPS on, and logged in with OSM credentials ...

but there is absolutely no result of Whats-Nearby app about missing OSM tags.

So I fear that something goes wrong, but I cannot figure out the reason.

Can you include a debugging display inside the app (as long as it is in beta testing) that shows whether the app has GPS coordinates found, and that a query has been sent to overpass-api, and what is the result of it?

Ans maybe a feature to clear the loaded data from overpass-api, thus it is refreshed automatically or by user's choice?

Limit the number of questions asked per visit

I have noticed that POIs with large numbers of questions can become a bit annoying to answer. Miller's Law (https://en.wikipedia.org/wiki/Miller%27s_law) suggests that the number of objects an average person can hold in working memory is about seven.

The number of questions asked per session should be limited to 7. The largest number at the moment is amenity=restaurant with 15 questions. Questions should be asked according to the following hierarchy:

  1. A random selection of unanswered questions
  2. If there are less than 7 unanswered questions, then a random selection of already answered questions should make up the remainder.
  3. The selected questions should then be randomized so that they are not presented in the same order every time.

F-Droid

Could you release it on F-Droid?

Update notifications while moving around

Currently, once the app notifies, it won't query for 60 minutes. In the meantime, you may have moved around and the notification may be out of date by the time you see it.

The behaviour should be changed to not start the timer until the user presses the notification and the app updates the notification with newly detected locations until then.

POI Whitelist

Where can I find the list of possible POIs and associated prompts/questions? I have not been receiving any notifications and am curious if I have just been visiting unsupported POIs, as my GPS settings and Overpass pulls seem ok.

Crash on startup of 0.16

If a user isn't logged in, 0.16 crashes on startup.

This is due to a 401 unauthorized error when the app tries to get the username from www.openstreetmap.org, but it isn't logged in yet. The user will still get notified about locations, but the app crashes when trying to load questions for the same reason.

Don't do duplicate work

There is already an existing application (https://github.com/westnordost/StreetComplete), I'm sure you are aware of, which has nearly the same purpose of this app too (showing easy-to-answer-questions to users which don't know much about OSM)
Is there a special reason why you created such a similar app? I mean one obvious reason might be the restriction to show only questions about places the user actually visited... But SC asks the user before he answers a question for a place he might not be at whether he is really at this place.
So SC is not as strict as your app, but I think @westnordost wanted to add a bit more restriction in the future...

Determine if location has been previously visited without performing an overpass query

It should be possible to determine if a location has been previously visited by storing locations of notifications and comparing location to them before performing the query rather than performing the query and comparing osmid to stored osmids as s currently done. (We're currently storing notified osmids for 7 days to prevent unnecessary renotifications)

This should reduce overpass queries which will reduce data use and overpass server use.

Onboarding experience

It's probably not too clear how exactly the app works. A series of slides before or after the user logs in might help to explain what happens next. As it stands, nothing much seems to happen from the user's perspective after they log in. When they reopen the app, they are just greeted with a screen saying that they are logged in.

Overpass API Hostname DNS Error

Having never been prompted to answer any questions for quite some time, despite visiting places for which StreetComplete had quests, I examined the Debug Info of What's Nearby? to discover

Last Overpass Query Result:
Unable to resolve host "www.overpass-api.de": No address associated with hostname

So; no questions because What's Nearby? can't query the API, because it's using the wrong hostname.

Why doesn't it have a list of different hosts, so that this isn't a single-point-of-failure, else at least allow the user to set an override to the default hostname?

App notifies for POIs far from the user's location

Following the resolution to #3, we now have a new problem. Since we no longer use accuracy as a constraint, the app is notifying for locations which are far (hundreds to thousands of metres) from the user's actual location. This is not ideal either.

Empty changesets being uploaded

If all questions are answered with the same answers as already answered, the app uploads a changeset with no changes apart from incrementing the version of the item. This should not happen.

Limit asking about POIs which have all their questions already answered

POIs with all the questions already answered should only be asked again if the POI's last edit was over 6 months ago.

This should be determined using a combination of the poi details from the overpass query (to get the last edited date) and the contents of the app database (to determine if questions were asked since the POI was last edited).

I never get questions on visits that are not extremely long

Based on Readme

It then selects the closest of these and presents you a suggestion that you might be at that location via an android notification.

I expect that it is enough to keep app in background and wait for a notification. Is my guess correct?

I disabled batter saver in my Xiaomi Redmi 4.

Is this still maintained?

You can archive this repository, to mark it as unmaintained. People then cannot submit PRs and there is a big warning that this is archived.
Remember to add a note to the Readme before to explain that it is unmaintained, and โ€“ if you think this is useful โ€“ why and probably mention alternatives.

IndexOutOfBoundsException on clicking OK in notification

If significant time has passed between when a notification was issued and OK was pressed, the app may have been killed in the background in the meantime. This means that the PoiList would no longer exist and when the app tries to query it, an exception is raised.

Need to persist PoiList through the app being killed.

Null Pointer Exception at at com.teester.whatsnearby.main.MainActivity.onNewIntent

From Google Play Dashboard:
java.lang.NullPointerException: at com.teester.whatsnearby.main.MainActivity.onNewIntent (MainActivity.java:65) at android.app.Instrumentation.callActivityOnNewIntent (Instrumentation.java:1235) at android.app.Instrumentation.callActivityOnNewIntent (Instrumentation.java:1247) at android.app.ActivityThread.deliverNewIntents (ActivityThread.java:2563) at android.app.ActivityThread.performNewIntents (ActivityThread.java:2575) at android.app.ActivityThread.handleNewIntent (ActivityThread.java:2584) at android.app.ActivityThread.-wrap12 (ActivityThread.java) at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1426) at android.os.Handler.dispatchMessage (Handler.java:102) at android.os.Looper.loop (Looper.java:148) at android.app.ActivityThread.main (ActivityThread.java:5443) at java.lang.reflect.Method.invoke (Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:728) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:618)

Problem appears to be passing null to mainPresenter.checkIfOauth(url) here

Order of the Questions

Hello,
I think the order of the questions is random?
Because I've got the message "Does ... charge for wifi access?" before the message "Does %s have Wifi for customers?", which in my opinion is not optimal.
Cheers, Chris

About page

Add an about page including version number, author, links to this GitHub page etc.

How the app compared to others

Could you please explain how this app compared to similar apps like StreetComplete? I believe the latter one does exactly the same as yours. Am I right?

german translation

As a native speaker of the german language, I find some of the german translations not quite ideal (especially the strings for "men", "women" and "cheques", but others could be improved too). I would like to improve them.
Where does the translation originate from? Did you use an external translation service or may I simply file a pull request?

Logging in when clicking notification doesn't resume questions when complete

When an unauthorised user is notified of a location and they press the notification, they are taken to the authorisation screen rather than asked questions. Once they have successfully authorised, the app does not display the questions and there's no way to get back to them unless notified again. This in not optimal.

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.