Wilm0r / giggity

Generic Android conference schedule viewer
https://gaa.st/giggity
GNU General Public License v2.0
102 stars 110 forks source link

Mitigate unreadable schedules (difficult to find a good zoom / pinch) #370

Open valerio-bozzolan opened 2 months ago

valerio-bozzolan commented 2 months ago

Premise: I love the Giggity app. Thanks for your work :rainbow:


A frequent negative feedback I receive after promoting Giggity, is that it's relatively easy to shoot in your foot and cause an unreadable layout during normal user interaction in the BlockSchedule activity.

For example, it's relatively super-easy to cause this broken layout where the cell width is so low that not even a single word stays in a single line. You cannot even read the times in the headers. Moreover, if cell widths become smaller, texts GROWS :D this may not help in general readability:

Giggity layout with very small cell height https://wikimania.eventyay.com/2024/

Workaround

The user can just use their powerful fingers to find a better zoom with the usual pinch gesture.

Anyway, it's not so obvious: the preview you see during zoom-pinch reflects the future size but it does not really reflect the future font-size, so it's a kind of "try catch" approach, to continue to try different pinches to obtain a readable layout.

Moreover, the user can open their app preferences and set the "small" font size preference.

Actionable Things

Probably we can mitigate the situation by "just" increasing our width/height minimum thresholds.

I think we already have something in place in onResizeEvent():

https://github.com/Wilm0r/giggity/blob/8eb5c049e2928fb77d5a4b593df319bff74c03d8/app/src/main/java/net/gaast/giggity/BlockSchedule.java#L265

So probably we could increase that 60 to something bigger:

HourWidth = Math.max(60, ...); 

For example, increasing that 60 to a greater/better value.

That feature was introduced in 2013 (12+ years ago) and probably never touched again (https://github.com/Wilm0r/giggity/commit/108019477cebb3d13c277468d3e24c05984f6e27).

Additionally, we should prevent the default font size from being in proportion of the "cell density" but it should probably (also?) consider the "cell width". The relevant code seems here:

https://github.com/Wilm0r/giggity/blob/8eb5c049e2928fb77d5a4b593df319bff74c03d8/app/src/main/java/net/gaast/giggity/BlockSchedule.java#L117

Also the above feature was introduced 8+ years ago and never touched again (https://github.com/Wilm0r/giggity/commit/f852dc546dafee8b4898229c054ae79ef1657ca7).

Thanks for any feedback or any patch :) Long life to Giggity.