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

Reestructure settings #210

Closed
4 of 5 tasks
bdlukaa opened this issue Feb 7, 2024 · 1 comment
Closed
4 of 5 tasks

Reestructure settings #210

bdlukaa opened this issue Feb 7, 2024 · 1 comment
Labels
enhancement New feature or request

Comments

@bdlukaa
Copy link
Collaborator

bdlukaa commented Feb 7, 2024

The Settings is a crucial section of the app. There the users are able to configure the app to fit their use case the best way. Having a useful, organized and beautiful settings is very beneficial.

Roadmap

  • Restructure the /settings directory
  • Reorganize available options
  • Reuse components across the section
  • Implement Search
  • Implement missing options (++)

Design

The current implementation uses different components to display the same or similar functionality. For example, the "notification behavior panel" and the "camera view fit button" represents the same functionality, choose an option, but the widgets behave differently.

Cross-platform

Most of the components used can be reused in small and large screens. They should be designed to fit both scren sizes and extensively tested on them.

On desktop, a navigation rail (left side navigation) is used to display the different sections of the Settings.
On Mobile, this is not possible due to the available size. A drawer is also not possible because the app already makes use of a drawer on the mobile side. An options list with the sections should be implemented. Each tile represents a section and, when pressed, will be redirected to the according Settings section.

Search

A search mechanism is desired to make it easier to find a specific option. On desktop, a search bar can be added above the navigation rail. On Mobile, it can be added above the sections list.

When enter the search view, display a "Commonly Used" section with the most commonly used options.

Disposal and structure

There are several options available for the user to choose. An organized space is crucial to make it easier to find the desired option.

Note

* = default
> = navigate to somewhere else
! = Destructive action
++ = the option is not present in the current app version
@ = button that performs an action other than toggling or selecting values

  • General
    • Layout cycle period (5s, 10, 30s*, 1min, 3min, 5min)
    • Keep screen awake (on*/off)
    • Notifications
      • ++ Enable notifications (on*/off)
        whether notifications are enabled. if off, the options in this section should be marked as disabled.
      • Snooze Notifications until
      • Notification click behavior (show events history, show in fullscreen)
    • ++ Data Usage
      • ++ Automatic streaming (yes, only under wi-fi*, off)
        whether to automatically start streams on startup or when a stream is added. If off (by option or by the environment), a play button must be displayed in order to start playing the stream.

      • ++ Keep streams playing on background (yes, only under wi-fi, off*)
        whether to keep the streams playing when the app enters background. If off (by option or by the environment), the stream must starts to play and reposition itself accordingly.

        The app is considered in background when:
        a. the app is in background; or when
        b. any screen other than "Screens" is selected; or when
        c. any video (event or stream) is being played in full-screen.

      • ++@ View previous data usage

  • Servers and Devices
    • Servers Settings
      • ++ Connect automatically at startup (on*/off)
      • ++ Allow un-encrypted servers (on*/off)
        whether to allow servers without a valid SSL certificate.
    • Streaming Settings
      • Preferred streaming type (automatic, rtsp, hls, automatic)
      • RTSP protocol (tcp, udp)
    • Devices Settings
      • Rendering quality
      • Video Fit (previously Camera Image Fit)
      • Refresh period (off, 30s, 2min, 5min*)
      • Late stream behavior
      • ++ Automatically reload timed out streams (on*/off)
      • ++ Hardware rendering (on*/off)
      • ++@ Run a video test
        displays a video to test the video functionality
  • Events and Downloads
    • Download
      • ++ Choose location for each download (on/off*)
        whether to choose the download location for each download
      • Default download directory
      • ++ Block the app from closing when there are ongoing downloads (on*/off)
    • ++ Move to picture-in-picture mode when the app moves to background (on/off*)
    • ++ Default speed (slider; 1.0*)
    • ++ Default volume (slider; 1.0*)
    • ++ Timeline of Events
      • ++ Show different colors for events (on/off*)
        whether to show different colors for the events in the timeline slider. This is useful to differentiate all the events.
      • ++ Pause to buffer (on*/off)
        whether the entire timeline should pause to buffer the events.
      • ++ Initial point (beginning, first event, an hour ago)
      • ++ Keyboard Shortcuts
        displays a list of the keyboard shortcuts of the app, and option to change them.
  • Application
    • Theme (automatic*, dark, light)
    • Language
    • Date Format (automatic*, others)
    • Time Format (automatic*, others)
      • ++ Automatically set timezone (on*/off)
      • ++ Timezone
        only displayed if "Automatically set timezone is off"
    • ++ Window
      • ++ Launch app on startup
        launches the app when the computer starts
      • ++ Close app to tray
    • ++ Acessibility
      • Animations (on*/off)
        disable animations on low-end devices
  • ++ Privacy and security (mostly todo when Implement Analytics and Crashlytics #203 is implemented)
    • ++ Use data to improve the Bluecherry Client (on*/off)
      whether analytics is enabled
    • ++ Automatically report errors to improve the Bluecherry Client (on*/ask/off)
      whether to automatically report errors, ask to report errors or do not report at all.
    • ++@ See "Terms of Service" and "Privacy Policy"
  • Updates and Help
    • Update / check for updates
    • Automatically download updates
    • ++ Show release notes (on*/off)
      whether to show release notes after an update
    • @ Update history (>)
    • About app
    • ++@ Help center (>)
    • ++@ Licenses (>)
  • Advanced Options (so called Developer Options)
    • Matrix Zoom (experimental)
      • Matrix Video Zoom (on/off*)
      • ++ Default matrix size (4x4*, 3x3, 2x2, 1x1 - disabled)
    • Open log file (>)
    • ++Open app data (>)
    • Display debug information (on/off*)
      displays information, such as the video url, position and duration;
    • ++ Display network usage (on/off*)
      displays network usage on streams and events.
    • ++ Restore default settings (!)
@bdlukaa bdlukaa added the enhancement New feature or request label Feb 7, 2024
@bdlukaa bdlukaa moved this to Todo in Bluecherry Unity Feb 7, 2024
@bdlukaa bdlukaa moved this from Todo to In Progress in Bluecherry Unity Apr 11, 2024
@bdlukaa
Copy link
Collaborator Author

bdlukaa commented May 9, 2024

A searching functionality was proposed in the beginning, but I see this as a waste of work and time. We do not have many options to be searched through.

@bdlukaa bdlukaa closed this as completed May 9, 2024
@github-project-automation github-project-automation bot moved this from In Progress to Done in Bluecherry Unity May 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: Done
Development

No branches or pull requests

1 participant