Skip to content

feat: split status bar setting#733

Merged
osteotek merged 5 commits intocrosspoint-reader:masterfrom
whyte-j:whyte-j/status-bar-settings
Feb 25, 2026
Merged

feat: split status bar setting#733
osteotek merged 5 commits intocrosspoint-reader:masterfrom
whyte-j:whyte-j/status-bar-settings

Conversation

@whyte-j
Copy link
Contributor

@whyte-j whyte-j commented Feb 6, 2026

Summary

This PR aims to reduce the complexity of the status bar by splitting the setting into 5:

  • Chapter Page Count
  • Book Progress %
  • Progress Bar
  • Chapter Title
  • Battery Indicator

These are located within the new StausBarSettings activity, which also shows a preview of the bar the user has created

image image

When updating from a previous version, the user's past settings are honoured.

Additional Context

The PR aims to remove any duplication of status bar code where possible, and extracts the status bar rendering into a new component - StatusBar

It also adds a new (optional) padding option to the progress bar to allow the status bar to be shifted upwards - this is only intended for use in the settings.


AI Usage

While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it
helps set the right context for reviewers.

Did you use AI tools to help write this code?
No - although did help to decode some C++ errors

@el
Copy link
Contributor

el commented Feb 7, 2026

I liked the idea of a more customizable status bar, but the settings look to crowded this way. I think we need settings grouping first.

@whyte-j
Copy link
Contributor Author

whyte-j commented Feb 7, 2026

I liked the idea of a more customizable status bar, but the settings look to crowded this way. I think we need settings grouping first.

Absolutely agree - I think a separate menu activity (such as the one we use for KOReader Sync) would be the best route, with a preview of what the menu bar would look like. As a (very) rough example:
image

This PR so far does the very basics, updating the code to split the status bar settings, but I didn't want to pursue any UI changes without some feedback first - I do think we need those changes before we merge this PR, though 🙂

@whyte-j whyte-j force-pushed the whyte-j/status-bar-settings branch from f71a7ff to a12cc54 Compare February 9, 2026 23:55
@whyte-j whyte-j marked this pull request as draft February 10, 2026 00:00
@whyte-j
Copy link
Contributor Author

whyte-j commented Feb 10, 2026

image image

New update! Settings have been moved to a separate menu, found in the Reader sub-menu.

In my view, the following tasks remain:

  • I've noticed the names of the buttons are inconsistent - I'll update these to match settings.
  • Battery % for status bar should be part of this menu, rather than where it is currently.
  • Pulling the render behaviour from txt & epub and creating a utility to draw it instead. This can then be used to render an example status bar in the status bar menu.
  • Remove old status bar setting from page.

@whyte-j whyte-j force-pushed the whyte-j/status-bar-settings branch from a12cc54 to b506fba Compare February 12, 2026 18:59
@whyte-j whyte-j marked this pull request as ready for review February 12, 2026 19:13
@Eloren1
Copy link
Contributor

Eloren1 commented Feb 12, 2026

Thank you, it looks nice with this kind of preview. Small things:

Display Book Progress Bar missing,

  • Display Book Progress Bar: OFF / Thin (2px) / Medium (4px) (default) / Thick (6px)

This is a small setting for those who want it. It works as before by default.


You can also implement the setting called Progress Bar Fill Edges, useful for black devices. It is also a simple one line fix:

#570 (comment)


Remap Front Buttons panel has a button called Remap Front Buttons

Status Bar Settings panel has a button called just Status Bar (inconsistent)


Progress BarBook naming feels off. In my initial Issue I used titles as close to the original as possible

And it should probably say Display ___ like before. You used Show for the battery because it feels short, but same goes with the rest: it's just Chapter Title (inconsistent)

Other than that, this page looks really good

@whyte-j whyte-j force-pushed the whyte-j/status-bar-settings branch from b506fba to ec0e997 Compare February 13, 2026 14:13
@whyte-j
Copy link
Contributor Author

whyte-j commented Feb 13, 2026

Display Book Progress Bar: OFF / Thin (2px) / Medium (4px) (default) / Thick (6px)
This is a small setting for those who want it. It works as before by default.

Currently working on this now - is this a highly sought after feature? I'm weary that we don't want too add too many small settings, as we could end up with hundreds of those! Happy for Dave/a collaborator to weigh in before the merge on that, though.

You can also implement the setting called Progress Bar Fill Edges, useful for black devices. It is also a simple one line fix:

I don't know enough about this issue - looks like from the discussions the fill could be better as a fix rather than a new setting?

Progress Bar → Book naming feels off. In my initial Issue I used titles as close to the original as possible
And it should probably say Display ___ like before. You used Show for the battery because it feels short, but same goes with the rest: it's just Chapter Title (inconsistent)

They're intended to match (more or less) to the naming structure of the rest of the settings - the majority have the target as the name and the action as the option (think Paragraph Alignment -> Justify rather than Align Paragraph -> Justified). I do agree that it needs a little update (thanks!), so I've changed the options to verbs b423319

Remap Front Buttons panel has a button called Remap Front Buttons
Status Bar Settings panel has a button called just Status Bar (inconsistent)

Good point - I've updated to "Customise Status Bar" as that feels like it would be suitable for both places 65dc63f

Thanks for your feedback! 🙂

@Eloren1
Copy link
Contributor

Eloren1 commented Feb 13, 2026

Bar thickness is not a small setting, in horizontal mode on a white model the default line looks too thick #602 and distracting, not how it was intended (it looks normal in vertical mode). And border fill will look even thicker on a white model.

The two new settings inside a specific subpage don't affect the basic experience at all, it works like before by default. And these settings actually improve the experience, as they provide a decent solution for black devices without ruining the visual appearance of white devices. This is literally taking everyone's interests into account, rather than trying to create a uniform experience for everyone.

@whyte-j
Copy link
Contributor Author

whyte-j commented Feb 13, 2026

Bar thickness is not a small setting, in horizontal mode on a white model the default line looks too thick #602 and distracting, not how it was intended (it looks normal in vertical mode). And border fill will look even thicker on a white model.

The two new settings inside a specific subpage don't affect the basic experience at all, it works like before by default. And these settings actually improve the experience, as they provide a decent solution for black devices without ruining the visual appearance of white devices. This is literally taking everyone's interests into account, rather than trying to create a uniform experience for everyone.

Ah - got you. In that case I agree, although that does make the preview rather redundant for this setting, given the use case. I think we may have to just accept that, though - unless anyone has suggestions?

@Eloren1
Copy link
Contributor

Eloren1 commented Feb 13, 2026

It's as if you're overthinking the settings without prioritizing actual reading experience. Navigating through this settings section will take up 1% of the user's time. But the other 99% of the time:

  • Users of black e-readers will see big status bar margins or they won't use it at all
  • Users of white e-readers in portrait orientation are fine
  • Users of white e-readers in landscape orientation see a thicker bar that is distracting

I'm fine with the case where, after reading in horizontal mode I see a thick bar and go to Settings → change the thickness.
Yes, the preview is only for the vertical one, but I know what I'm changing, and the preview wasn't here before anyway.

@osteotek
Copy link
Member

osteotek commented Feb 13, 2026

It's as if you're overthinking the settings without prioritizing actual reading experience.

@Eloren1 you've been told again and again. Please stop with accusatory language. It's not welcome in this community

@whyte-j
Copy link
Contributor Author

whyte-j commented Feb 13, 2026

It's as if you're overthinking the settings without prioritizing actual reading experience.

@Eloren1 you've been told again and again. Please stop with accusatory language. It's not welcome in this community

And for what it's worth - I was agreeing with you. I think we may have to just accept that the user will have to flick back and fourth a couple times if they want to check what it looks like for them

@Eloren1
Copy link
Contributor

Eloren1 commented Feb 13, 2026

accusatory

You're giving meaning to words that weren't meant to be, interrupting the discussion.

It seems there's already a bias towards my words. Although it would be better not to forget the "Human First" Rule.

@Eloren1
Copy link
Contributor

Eloren1 commented Feb 13, 2026

flick back and fourth a couple times if they want to check what it looks like for them

Haha that's generally how it was before. But now at least 90% of the items will be available for preview in real time

@the-iek
Copy link

the-iek commented Feb 15, 2026

Do you think it is possible to add an option for decimals for book progress? I think it was a bug back in Crosspoint 0.15 and got fixed but I really grew to like it.

@osteotek
Copy link
Member

@whyte-j Would it be possible to fix conflicts? Keen to merge this

@whyte-j
Copy link
Contributor Author

whyte-j commented Feb 15, 2026

@whyte-j Would it be possible to fix conflicts? Keen to merge this

Happy to hear it! Will try and get it sorted this evening 🙂

As for the bar thickness @Eloren1, if we're eager to get this merged I can take a look at doing that in a follow up PR, as it won't need to use the legacy setting transformation. I got a couple of odd bugs that I haven't had the chance to squash just yet

@whyte-j whyte-j force-pushed the whyte-j/status-bar-settings branch 2 times, most recently from 815b8c6 to a708bc4 Compare February 15, 2026 18:55
@whyte-j
Copy link
Contributor Author

whyte-j commented Feb 15, 2026

@osteotek all sorted!

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refactors the status bar configuration system by splitting a single monolithic setting into five independent toggles: Chapter Page Count, Book Progress Percentage, Progress Bar (with three options), Chapter Title, and Battery Indicator. The changes introduce a new dedicated StatusBarSettingsActivity with a live preview feature, extract status bar rendering logic into a reusable StatusBar component, and implement backward-compatible migration for users upgrading from previous versions.

Changes:

  • Extracts status bar rendering into a new StatusBar component to eliminate code duplication across reader activities
  • Adds StatusBarSettingsActivity with live preview functionality and granular control over status bar elements
  • Implements legacy settings migration to preserve user preferences when upgrading from the old single-setting system

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
src/components/StatusBar.h New header defining the renderStatusBar function interface
src/components/StatusBar.cpp New component implementing consolidated status bar rendering logic
src/components/themes/BaseTheme.h Adds optional additionalYPadding parameter to drawReadingProgressBar
src/components/themes/BaseTheme.cpp Implements the additionalYPadding parameter for preview rendering
src/activities/settings/StatusBarSettingsActivity.h New activity header for status bar customization UI
src/activities/settings/StatusBarSettingsActivity.cpp Implements the status bar settings UI with live preview
src/activities/settings/SettingsActivity.h Adds CustomiseStatusBar action enum
src/activities/settings/SettingsActivity.cpp Integrates the new StatusBarSettingsActivity into the settings menu
src/activities/reader/TxtReaderActivity.cpp Refactored to use the new StatusBar component
src/activities/reader/EpubReaderActivity.cpp Refactored to use the new StatusBar component
src/SettingsList.h Removes the old monolithic Status Bar enum setting
src/CrossPointSettings.h Adds five new status bar settings fields and marks legacy field
src/CrossPointSettings.cpp Implements migration logic and persistence for new settings

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@whyte-j whyte-j force-pushed the whyte-j/status-bar-settings branch from a708bc4 to 4ef845c Compare February 15, 2026 20:14
@whyte-j whyte-j force-pushed the whyte-j/status-bar-settings branch from d09ff7f to fa89ab7 Compare February 23, 2026 19:47
@whyte-j whyte-j force-pushed the whyte-j/status-bar-settings branch from fa89ab7 to c05ca8f Compare February 23, 2026 19:54
@whyte-j whyte-j requested review from el, ngxson and osteotek February 23, 2026 20:01
osteotek
osteotek previously approved these changes Feb 23, 2026
@osteotek osteotek requested review from a team and el and removed request for el February 23, 2026 20:50
Copy link
Contributor

@ngxson ngxson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I haven't tested this on-device, but the code looks ok

@osteotek osteotek dismissed stale reviews from coderabbitai[bot] and daveallie February 25, 2026 10:02

addressed

@osteotek osteotek merged commit 2d49c7b into crosspoint-reader:master Feb 25, 2026
6 checks passed
@whyte-j whyte-j deleted the whyte-j/status-bar-settings branch February 25, 2026 10:33
znelson pushed a commit that referenced this pull request Feb 26, 2026
## Summary

* **What is the goal of this PR?** 
Update translation after
#733

---

### AI Usage

While CrossPoint doesn't have restrictions on AI tools in contributing,
please be transparent about their usage as it
helps set the right context for reviewers.

Did you use AI tools to help write this code? _**NO**_
el pushed a commit to el/crosspoint-reader that referenced this pull request Feb 26, 2026
## Summary

This PR aims to reduce the complexity of the status bar by splitting the
setting into 5:
- Chapter Page Count
- Book Progress %
- Progress Bar
- Chapter Title
- Battery Indicator

These are located within the new StausBarSettings activity, which also
shows a preview of the bar the user has created

<img width="513" height="806" alt="image"
src="https://github.com/user-attachments/assets/cdf852fb-15d8-4da2-a74f-fd69294d7b05"
/>


<img width="483" height="797" alt="image"
src="https://github.com/user-attachments/assets/66fc0c0d-ee51-4d31-b70d-e2bc043205d1"
/>


When updating from a previous version, the user's past settings are
honoured.

## Additional Context

The PR aims to remove any duplication of status bar code where possible,
and extracts the status bar rendering into a new component - StatusBar

It also adds a new (optional) padding option to the progress bar to
allow the status bar to be shifted upwards - this is only intended for
use in the settings.

---

### AI Usage

While CrossPoint doesn't have restrictions on AI tools in contributing,
please be transparent about their usage as it
helps set the right context for reviewers.

Did you use AI tools to help write this code?
No - although did help to decode some C++ errors

---------

Co-authored-by: Arthur Tazhitdinov <[email protected]>
el pushed a commit to el/crosspoint-reader that referenced this pull request Feb 26, 2026
## Summary

* **What is the goal of this PR?** 
Update translation after
crosspoint-reader#733

---

### AI Usage

While CrossPoint doesn't have restrictions on AI tools in contributing,
please be transparent about their usage as it
helps set the right context for reviewers.

Did you use AI tools to help write this code? _**NO**_
iandchasse pushed a commit to iandchasse/crosspoint-reader-minRead that referenced this pull request Feb 27, 2026
* **What is the goal of this PR?**
Update translation after
crosspoint-reader#733

---

While CrossPoint doesn't have restrictions on AI tools in contributing,
please be transparent about their usage as it
helps set the right context for reviewers.

Did you use AI tools to help write this code? _**NO**_
iandchasse pushed a commit to iandchasse/crosspoint-reader-minRead that referenced this pull request Feb 27, 2026
This PR aims to reduce the complexity of the status bar by splitting the
setting into 5:
- Chapter Page Count
- Book Progress %
- Progress Bar
- Chapter Title
- Battery Indicator

These are located within the new StausBarSettings activity, which also
shows a preview of the bar the user has created

<img width="513" height="806" alt="image"
src="https://github.com/user-attachments/assets/cdf852fb-15d8-4da2-a74f-fd69294d7b05"
/>

<img width="483" height="797" alt="image"
src="https://github.com/user-attachments/assets/66fc0c0d-ee51-4d31-b70d-e2bc043205d1"
/>

When updating from a previous version, the user's past settings are
honoured.

The PR aims to remove any duplication of status bar code where possible,
and extracts the status bar rendering into a new component - StatusBar

It also adds a new (optional) padding option to the progress bar to
allow the status bar to be shifted upwards - this is only intended for
use in the settings.

---

While CrossPoint doesn't have restrictions on AI tools in contributing,
please be transparent about their usage as it
helps set the right context for reviewers.

Did you use AI tools to help write this code?
No - although did help to decode some C++ errors

---------

Co-authored-by: Arthur Tazhitdinov <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants