Skip to content

[Feature Request] Custom Font Support for Reader #278

@FSSocrates

Description

@FSSocrates

Checklist

  • This issue contains only one feature request. I will open one issue for every feature I want to request.
  • I checked, but didn't find any duplicates (open OR closed) of this issue in the repo.
  • This feature is merely an UI/UX update.
  • This feature is not going to conflict with many of the existing features/options.

Is your feature request related to a problem? Please describe.

The current reader is limited to a pre-defined set of fonts. Users who require specific typography for accessibility (such as OpenDyslexic) or those who simply prefer a different aesthetic cannot currently use their own files, which restricts the personalization of the reading experience.

Describe the solution you'd like

I would like an option to import and apply custom .ttf or .otf files:

  1. Settings Integration: Add a "Custom Font" option in Settings that opens the Android system media picker.
  2. File Management: The app should copy the selected font to its internal directory to ensure it remains available (compliant with Scoped Storage on the latest Android versions).
  3. Reader UI: Add a "Custom" option in the Reader's FontStyle menu to apply the imported font.

How will you/everyone benefit from this feature?

This feature enhances accessibility for users with visual impairments or reading difficulties who rely on specific typefaces. It also improves the overall UX by allowing power users to customize their reading environment to their exact preference, making the app more competitive with other e-reader implementations.

Additional context

Since the app is built with Jetpack Compose, this can be implemented by dynamically loading a FontFamily from the internal file path using Font(file: File, ...). Using the Storage Access Framework (SAF) ensures compatibility with Android 13, 14, and 15.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions