Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Smaller frontlight dialog #5314

Closed
pblasi opened this issue Sep 4, 2019 · 9 comments
Closed

Smaller frontlight dialog #5314

pblasi opened this issue Sep 4, 2019 · 9 comments
Labels

Comments

@pblasi
Copy link

pblasi commented Sep 4, 2019

This big window is filling all the screen to only adjust brightness and temperature.
Please make a simpler, smaller, bottom window which allows seeing the actual book page and text so light can be adjusted more properly.
Thanks!

@pazos
Copy link
Member

pazos commented Sep 4, 2019

This big window is filling all the screen to only adjust brightness and temperature.

And the warm light timer / auto stub, which is nice for some users.

Please make a simpler, smaller, bottom window which allows seeing the actual book page and text so light can be adjusted more properly.

Err, the frontlight affects all widgets drawn on the screen. Why is important to see the book?
Anyways, most of the time you don't need to open the frontlight widget and can just use gestures to control the frontlight.

@pblasi
Copy link
Author

pblasi commented Sep 4, 2019

Fair enough... I guess I'm used to less intrusive coolreader dialog... The thing is I need to open the widget to adjust light properly because swipe gesture for brightness/warmth is not working properly in Clara HD: #5313

@Frenzie Frenzie added the UX label Sep 12, 2019
@Frenzie
Copy link
Member

Frenzie commented Sep 12, 2019

That means this is effectively a duplicate of #5313, so I'll close this now.

Btw, please post a screenshot of the coolreader dialog if you want people to know what you're talking about. ;-)

I think the frontlight dialog would be less usable if it were simpler or smaller. The ability to get reasonable precision from the intensity bar, the min button,[*] the toggle button, and the -1/+1 are all integral to ease of operation. Ymmv.

[*] Emphatically not the max button.

@Frenzie Frenzie closed this as completed Sep 12, 2019
@pblasi
Copy link
Author

pblasi commented Sep 13, 2019

The ability to get reasonable precision from the intensity bar, the min button,[*] the toggle button, and the -1/+1 are all integral to ease of operation. Ymmv.>

I would just recommend learning from coolreader's light dialog. Please give it a try and use it for while on your kobo, then be honest on your overall experience. You get all these abilities too. The toggle button, the arrows for fine tuning, and overall the swipe control on the bars for both light and temperature, which makes the real difference... everything in a clean, comfortable design. It works like a charm.

Yes, I know koreader is more on the side "The more the better" than "The simpler the better", so it's my problem if I don't like it ;)

Frenzie added a commit to Frenzie/koreader that referenced this issue Sep 13, 2019
This makes it behave like a pretty decent slider.

Cf. <koreader#5314>.
@Frenzie
Copy link
Member

Frenzie commented Sep 13, 2019

I don't like it. It opens all the way at the bottom, resulting in a lot of travel and also making one-handed control hard if not impossible. The controls you really need are tucked away in hard to reach corners and you can only control it with a hidden digital slider that doesn't respond to taps.

Basically if you do something like this five second hack then you copy most of those flaws:

The positive is that by cutting off part of the document at the bottom you get the illusion of seeing more of the document.

Diff:

diff --git a/frontend/ui/widget/frontlightwidget.lua b/frontend/ui/widget/frontlightwidget.lua
index ed6844e2..9d2f2121 100644
--- a/frontend/ui/widget/frontlightwidget.lua
+++ b/frontend/ui/widget/frontlightwidget.lua
@@ -559,7 +559,7 @@ function FrontLightWidget:update()
         background = Blitbuffer.COLOR_WHITE,
         VerticalGroup:new{
             align = "left",
-            self.light_bar,
+            --self.light_bar,
             light_line,
             CenterContainer:new{
                 dimen = Geom:new{
@@ -571,7 +571,7 @@ function FrontLightWidget:update()
         }
     }
     self[1] = WidgetContainer:new{
-        align = "center",
+        align = "bottom",
         dimen =Geom:new{
             x = 0, y = 0,
             w = self.screen_width,

But I can make it behave like a reasonably decent slider without much effort: #5371.

@pblasi
Copy link
Author

pblasi commented Sep 13, 2019

But I can make it behave like a reasonably decent slider without much effort: #5371

How can I test it? Thanks!

@Frenzie
Copy link
Member

Frenzie commented Sep 13, 2019

If you look at files changed in the PR it shows you the changes:

https://github.com/koreader/koreader/pull/5371/files

Those can be applied manually or using view file → raw you can just replace 'em whole.

https://raw.githubusercontent.com/koreader/koreader/b88063015ef9ee8fabaf7b913f52a4b3610c8607/frontend/ui/widget/button.lua

https://raw.githubusercontent.com/koreader/koreader/b88063015ef9ee8fabaf7b913f52a4b3610c8607/frontend/ui/widget/frontlightwidget.lua

(Alternatively, wait a few days until it shows up in a nightly near you. :-P)

@pblasi
Copy link
Author

pblasi commented Sep 13, 2019

Nice! I would say:
1- Make increments of 1, not 5, to make light changes smoother (analog feeling) when swiping.
2- Apply to "Warmth" as well.
3- Make it work the same way on swipe gestures in gesture manager.
Thanks!

@Frenzie
Copy link
Member

Frenzie commented Sep 13, 2019

That would need much more clever refreshing (tied in to scroll rate) and preferably also a slider approach that isn't a quick hack on top of this particular existing mechanism. The experience with a change like this makes for a pretty interesting artifact show:

diff --git a/frontend/ui/widget/frontlightwidget.lua b/frontend/ui/widget/frontlightwidget.lua
index 9a00dda2..a68bf20d 100644
--- a/frontend/ui/widget/frontlightwidget.lua
+++ b/frontend/ui/widget/frontlightwidget.lua
@@ -48,7 +48,7 @@ function FrontLightWidget:init()
     self.fl_max = self.powerd.fl_max
     self.fl_cur = self.powerd:frontlightIntensity()
     local steps_fl = self.fl_max - self.fl_min + 1
-    self.one_step = math.ceil(steps_fl / 25)
+    self.one_step = math.ceil(steps_fl / 100)
     self.steps = math.ceil(steps_fl / self.one_step)
     if (self.steps - 1) * self.one_step < self.fl_max - self.fl_min then
         self.steps = self.steps + 1

But there's also the ProgressWidget. That one already functions like a proper slider, except for the sliding part. (Easily added, but there's some interaction with MovableContainer going on so only if you disable that.)

Frenzie added a commit to Frenzie/koreader that referenced this issue Sep 13, 2019
This makes it behave like a pretty decent slider.

Cf. <koreader#5314>.
Frenzie added a commit that referenced this issue Sep 26, 2019
This makes it behave like a pretty decent slider.

Cf. <#5314>.
mwoz123 pushed a commit to mwoz123/koreader that referenced this issue Mar 29, 2020
This makes it behave like a pretty decent slider.

Cf. <koreader#5314>.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants