breezy-weather / breezy-weather

A Material Design Weather Application
GNU Lesser General Public License v3.0
5.42k stars 165 forks source link

Vertical scroll when swiping horizontally on daily/hourly charts #1098

Open umk0m1qk opened 3 months ago

umk0m1qk commented 3 months ago

Steps to reproduce

Horizontal swipe navigation through daily and hourly tiles

Expected behavior

Controlled horizontal and vertical swipe navigation that does not conflict

Actual behavior

Very difficult to horizontal swipe through daily and hourly tiles without triggering vertical swipe. Suggest reducing sensitivity of vertical swipe action to avoid interference.

Weather source used

AccuWeather

Breezy Weather version

5.2.4

Android version

GrapheneOS build 2024051600

Device

Pixel 8a

Other details

No response

Acknowledgements

papjul commented 3 months ago

Horizontal swipe on daily and hourly charts don't trigger a vertical scroll, on my side, even when swiping slightly in diagonal.

Please show a recording with visible touch points.

elydpg commented 3 months ago

I'm not the OP, but maybe they are referring to this behaviour, where swiping even a tiny bit diagonally triggers an attempt to swipe to the next location screen

papjul commented 3 months ago

I'm not the OP, but maybe they are referring to this behaviour, where swiping even a tiny bit diagonally triggers an attempt to swipe to the next location screen

That's not the same thing, OP refers to a vertical swipe being triggered. The bouncing effect is normal, it's to prevent accidental swipes to next location, and it's working as intended

umk0m1qk commented 3 months ago

Horizontal swipe on daily and hourly charts don't trigger a vertical scroll, on my side, even when swiping slightly in diagonal.

Please show a recording with visible touch points.

https://github.com/breezy-weather/breezy-weather/assets/158820607/b1ee0943-c0e2-439e-8ba2-f628ef00b1cd

Maybe it's sloppy swiping on my part, but I don't struggle with other apps with similar layouts. Maybe the horizontal swipe zone is a little too narrow?

papjul commented 3 months ago

O_O

You say you don't struggle with other apps, but is it something that you experienced in other apps? Even rarely.

I see that you have navigation gestures enabled, how does it behave if you temporarily switch to 3-buttons?

umk0m1qk commented 3 months ago

Switched to 3 button. I don't see a difference. That said, the more I play with it, the more my thumb & brain are calibrating to that narrow swipe band. Not having nearly as many unintended vertical scrolls as when I first started using the app. On day 1 of use, I felt like every other swipe attempt was a miss, and I got a bit frustrated. Probably just me.

As far as other apps, I don't recall encountering this issue.

papjul commented 3 months ago

I'm leaving this open to contributions if someone has an idea. Feel free to add any detail that might be worth for the investigation.

rszyma commented 3 months ago

A new user here, and noticed the same issue. My other point of comparison is Xiaomi stock weather app and the only difference between the two in terms of scrolling, is that in Xiaomi app, the horizontal scroll roll has much lower resistance e.g. even lightest very light swipe goes on for about 2-3 seconds until stop, compared to about 0.5-1 second in breezy-weather. Vertical scroll however seems the same in both apps.

papjul commented 3 months ago

 Vertical scroll however seems the same in both apps.

You mean that when you swipe horizontally in a horizontal swipeable area on Xiaomi Weather app, it scrolls vertically as well? Is that correct?

rszyma commented 3 months ago

Vertical scroll however seems the same in both apps.

You mean that when you swipe horizontally in a horizontal swipeable area on Xiaomi Weather app, it scrolls vertically as well? Is that correct?

No, I was just comparing scroll resistances between apps. There's no such issue actually that literally swiping straight horizontally causes vertical scroll. We're talking about the same issue right? It's more about swiping diagonally. It's clearly shown on the video sent 6 posts above (https://github.com/breezy-weather/breezy-weather/issues/1098#issuecomment-2156705398).

From my observation, generally, on Android horizontal scroll while in motion, allows swipes with some vertical-ish movement (let's say up to about 40-45°) to be counted towards further horizontal scroll; but as soon as the scroll roll movement stops, trying to swipe horizontally with a the same, little bit of vertical movement will no longer result in horizontal, but vertical scroll. I.e. there's more room for "error" when scroll is rolling. Hopefully that makes sense.

tldr: decreasing app-wide horizontal scroll resistance will probably solve this issue.

rszyma commented 3 months ago

Maybe the horizontal swipe zone is a little too narrow?

@papjul is it possible to increase the swipe band? It's another thing that could help solve this issue

See the video below - should these swipes should count as vertical or horizontal?

https://github.com/breezy-weather/breezy-weather/assets/44318430/b26e2df5-8f59-4b3c-9050-ba01d665b6c3

papjul commented 3 months ago

There's no such issue actually that literally swiping straight horizontally causes vertical scroll. We're talking about the same issue right? It's more about swiping diagonally. It's clearly shown on the video sent 6 posts above (https://github.com/breezy-weather/breezy-weather/issues/1098#issuecomment-2156705398).

No and yes. Swiping diagonally should not trigger a vertical scroll, as you described yourself:

swipes with some vertical-ish movement (let's say up to about 40-45°) to be counted towards further horizontal scroll

It can be illustrated this way: image

  1. When swiping anywhere from area 1 to area 3 or 3 to 1, you scroll horizontally, but not vertically, not even slightly.
  2. When swiping anywhere from area 2 to area 4 or 4 to 2, you scroll vertically, but not horizontally, not even slightly.

The video shows that there is a slightly diagonal swipe (I wouldn't say it's "clearly shown", it's very subtle IMO), but not one that would fall in the 2nd case, it's just about a 15° angle, far from the 45° angle.

But now that I try to reproduce again, I sometimes notice the same issue. But I have no idea what triggers it sometimes, and sometimes not.

tldr: decreasing app-wide horizontal scroll resistance will probably solve this issue.

Can you give more technical details? I was pretty sure we just used the standard swiping system from Android SDK.

(Note that it's open to contributions, if no one has any fix to suggest, it will be made obsolete by #1037)

rszyma commented 3 months ago

I know it's either vertical or horizontal scroll. But right now it's behaving like ilustrated on the picture the right:

image

and the question is: would it be possible to set it to be more like it's presented on the left side?


tldr: decreasing app-wide horizontal scroll resistance will probably solve this issue.

Can you give more technical details? I was pretty sure we just used the standard swiping system from Android SDK.

Sorry I have no idea, that was just a wild guess. I have 0 experience with developing for Android