android.md: core function
[fanfix.git] / android.md

Android UI mock-up

Concepts

Story

We have Stories in Fanfix, which represent a story (an “epub”, …) or a comics (a “CBZ” file, …).

A story is written by an author, comes from a source and is dentified by a LUID (Local Unique ID). It can be a text story or an image story.

The source can actually be changed by the user (this is the main sorting key).

Book

We also have Books.

Books can be used to display:

All and Listing modes

When representing sources or authors, books can be arranged in two modes:

Note: Listing mode can be left out of the Android version if needed (but the all mode is really needed).

Destination

What I call here a destination is a specific group of books.

Examples :

Core

Library (main screen)

[image]

Header

The header has a title, a navigation icon on the left and a search icon.

Title can vary upon the current displayed books:

The navigation icon open the Navigation drawer.

The search icon is actually a filter: it will hide all the books that don’t contain the given text (search on LUID, title and author).

List

This list will hold books. Each item will be represented by :

UI

Material.IO:

A tap will open the target book.

A long press will first “select” the book (visually alter it so the user know which book is the target) then open the context menu.

Navigation drawer

[Image]

The navigation drawer will list 4 destinations:

…and 2 foldable “panels” with more destinations:

Those subpanels will either contain the sources/authors or sub-subpanels with sources/authors. See fanfix.jar (BasicLibrary.getSourcesGrouped() and BasicLibrary.getAuthorsGrouped()).

UI

Material.IO:

TODO: is it ok to have 3 levels of drawers?

Context menu

[image]

The context menu options are as follow for stories:

For other books (sources and authors):

UI

Material.IO:

Description page

[image-portrait]

[image-landscape]

Header

Use the same cover image as the books, and the description key/values comes from BasicLibrary.getDescription().

Description

Simply display Story.getMeta().getResume(), without adding the chapter number (it is always 0 for description).

An example can be seen in be.nikiroo.fanfix.ui.GuiReaderViewerTextOutput.java.

Options page

It consists of a “Remote Library” panel:

…and 5 other options:

Startup screen

Can be:

…but will have to be presented in a better way to the user (i.e., better names).

UI

Material.IO: