Kaljurand / K6nele

An Android app that offers speech-to-text user interfaces to other apps
http://kaljurand.github.io/K6nele/
Apache License 2.0
267 stars 83 forks source link

New way to select and configure services #113

Open Kaljurand opened 7 months ago

Kaljurand commented 7 months ago

(Work in progress)

Prompt Implement the following spec in Kotlin using Room, Jetpack Compose and other modern Android libraries.

Plan

Replace the UI to the recognition services, which currently consists of 2 activities:

Reason

The current combo picker (flat list of every service + every service with its supported languages) is hard to use and does not offer enough configurability, e.g. one would like to select multiple instances of Kõnele service and configure them to have different server URLs.

New activitives

Service picker

Similar to the current "Recognition services". Shows the list of available services and allows one of them to be selected. Each service is presented with its icon, name, a short description and a link to its configuration activity.

Current combos (= service instances)

Shows the list of currently active combos, each with its

The items can be reordered by drag-and-drop. Each item can be configured (by opening "Combo details"), cloned, enabled/disabled, or removed. Cloning creates a duplicate entry at the bottom of the list.

A global menus:

There are two separate lists: for the IME and for the search panel. Both lists are pre-populated during the first usage of the app based on the available services (if "Kõnele service" has been installed then Kõnele's own services are ignored) and the default locales. If the services do not programmatically publish their supported languages then the initial list would contain number_of_services times number_of_locales entries (which the user can easily prune).

Combo details

Shows some static info (name) and link (main config activity) of the service, and 3 categories of editable fields representing values to parameters.

Using the combos

The combos are listed in the IME and the search panel as currently (e.g. as buttons with the short label) in the order they appear in the combo list. Clicking on a button makes the corresponding combo the default for the given UI (IME vs panel) and the calling app.

Related issues

11, #14, #94