streetcomplete / StreetComplete

Easy to use OpenStreetMap editor for Android
https://streetcomplete.app
GNU General Public License v3.0
3.9k stars 356 forks source link

"Disable Automatic Zoom" feature #3980

Closed basings closed 2 years ago

basings commented 2 years ago

Use case

When you click on an icon, e.g. a street that's much longer than the current visible part, the app zooms out and it takes a second for this although I just want to answer the question. I don't want to see the whole thing. When you're finished it zooms back, so it's double the time.

Proposed Solution

mnalis commented 2 years ago

Related: StreetComplete follows Android system settings, so if you go there in Developer options and set Animator duration scale from 1x to off, the change will happen instantly instead of zooming-in/out animation (You can also opt there to just make it faster - or slower - instead of disabling it completely).

basings commented 2 years ago

@mnalis Thank you! I didn't know about that setting. I'll test it over the next days. It's still moving the visible area but it's faster.

10992-osm commented 2 years ago

Related: StreetComplete follows Android system settings, so if you go there in Developer options and set Animator duration scale from 1x to off, the change will happen instantly instead of zooming-in/out animation (You can also opt there to just make it faster - or slower - instead of disabling it completely).

Where does one find that?

basings commented 2 years ago

@10992-osm tap the Build Number option 7 times in the android settings. You can then find a developer tools entry

westnordost commented 2 years ago

I just want to answer the question. I don't want to see the whole thing

You need to know the feature's extend to properly answer a quest though. Let's say you are asked for the surface of the road here but the road goes on for another few hundred meters. You need to check at the other end too.

cyclingcat commented 2 years ago

On the other hand see issue #3346 - the automatic zoom currently doesn't work reliably due to a bug in tangram.

The cycling cat

basings commented 2 years ago

@westnordost I agree!

I might have not given the best example for why I created this issue. It always boils down to that the app zooms although it wouldn't be neccessary.

I entered many entries now, and the auto zooming annoys me most of the time. That's why I created the issue. Disabling the animation helps a lot as suggested by mnalis but I need to test it in the field today. I'll report back when I solved some hundreds quest.

Other somewhat related issues I saw now when I looked for examples:

westnordost commented 2 years ago

So, not to zoom at all is no option because this may result in wrong answers.

And when to zoom and when not to zoom is a calibrating issue. If you feel adventorous, you may try to play around with this "knob" yourself by checking out the source code and deploying a debug version on your phone. Would you be up to it? Then I can point you at the relevant portions of the code and how to setup the environment.

basings commented 2 years ago

@westnordost I was in the field now and I had the animations disabled which speeded everything up which was nice. I guess the annoying part was now that when I click on a road icon it zooms in and my position wasn't in the view anymore althoughit's just the road ahead of me and I clicked on it while approaching the road but not yet being there.

I'd need to get familiarized again with android studio, it's been a (long!) while since I checked it out. I haven't done any real android developing. I'll check it out and will get back to you but I din't know when I'll get to it.

westnordost commented 2 years ago

Well good to hear you once checked it out. So you know the process: Download and install Android Studio, checkout this project via git and open it in Android Studio, connect your phone via USB + enable and allow debugging on your phone and press the image icon to run, basically.

In Android Studio, press Ctrl+N and type FocusGeometryMapComponent to navigate to that class, the logic in question is in the function beginFocusGeometry. Ctrl + mouseclick on functions and properties to navigate to them.

basings commented 2 years ago

@westnordost Hey, I checked out the master branch and get 5 errors with build.grade.kts and Gradle sync failes. Hence, I can't run the app. I also checked out v41 but that's the same. Problem with my install?

Unresolved reference: isCheckReleaseBuilds: 79
Unresolved reference. None of the following candidates is applicable because of receiver type mismatch: 
...
matkoniecz commented 2 years ago

It is compiling for me. I would try regular - check have you checked out latest master, pull, restart, clear cache, upgrade dependencies if Android Studio suggests it.

If it does not help: specify revision being tried and link gist/pastebin with full error log.

basings commented 2 years ago

@matkoniecz just wanted to let you know that it works now. Reading is key. I just commented out line 79ff of build.gradle. I can start playing now.

basings commented 2 years ago

I tweaked the settings and could improve the zoom feature but I want to test it further and familiarize myself with the surrounding code more. I'll fork and create a pull request for your review when I'm happy.

westnordost commented 2 years ago

Any update on this?

hamishmb commented 2 years ago

Related: StreetComplete follows Android system settings, so if you go there in Developer options and set Animator duration scale from 1x to off, the change will happen instantly instead of zooming-in/out animation (You can also opt there to just make it faster - or slower - instead of disabling it completely).

Would this be why the zoom sometimes jolts in and out for me? Maybe Android changes the setting under high load or low power mode? I haven't noticed that it always behaves differently in low power mode, though.

westnordost commented 2 years ago

Closing as there is no reply. Feel free to create a PR if you have something.