* chore(packages): Added pedantic package to enforce linting and styling
* feat(lunasea): Enforce effective dart styling
* Comment and format colours class
* Localize additional classes in Dashboard, cleanup additional code
* chore(lunasea): Major refactor by running dartfmt on the entire codebase, added widget return for page routers
* Additional work on conforming to effective dart style
* fix(share_plus): Roll back share_plus package to 2.0.0 to support iOS 12 or lower
* chore(lunasea): Fix remaining enabled analysis warnings
NEW
- [-Arr/Releases] Match torrent seeder colours to the web GUI
- [Firebase/Analytics] Added analytics for breadcrumb tracking in crashes
- [Logger] Utilize a new, custom built on-device logging system
- [Logger] Compact/delete old log entries once the log count passes 100
- [Logger] Exported logs are now in JSON format
- [Routing] Protect all module routes by showing a "Not Enabled" screen when the module is not enabled
- [Settings/System] Added toggle to disable Firebase Analytics
- [Tautulli/Activity] Show custom season titles from Plex's new TV agent
TWEAKS
- [Radarr/Files] Add languages to file block
- [Radarr/Files] Small changes to table titles
- [System/Logs] Reimplemented logger view
- [System/Logs] Removed viewing the stack trace within the application (still viewable within the exported logs)
- [System/Logs] Added the exception to the expanded table instead of a separate dialog popup
- [Tautulli/Activity] Minor UI tweaks including showing the full season title and italicizing the episode title
- [UI/Navbar] Jump instead of animate to page when tapping a navbar item
FIXES
- [Firebase/Crashes] Do not log DioError/networking exceptions
- [Flutter] Updated packages
- [Flutter] Upgrade all Comet.Tools packages to null-safety/NNBD
- [Radarr/Releases] Negative format scores were not being shown
- [Share] The sharesheet could break after the first time it was opened
- [Strings] Safe-guard many substring operations
- [Tautulli/Activity] Play/paused/buffering icon was not properly left aligned to the text
- [Tautulli/Users] User images would not be fetched on newer versions of Tautulli
- [UI/UX] Modal scroll controller was not being attached to the ListView in a bottom modal sheet
- [UI/UX] Do not log errors when network images fail to load
- [UI/UX] Prevent attempting to load background images that are passed an empty URL
- [URLs] Safe-guard launching specific invalid URLs
NEW
- [Dashboard] "Home" has been renamed to "Dashboard"
- [Radarr/Catalogue] If no movie is found in the search query, given an option to search to add the movie
- [Radarr/Discover] Add the ability to discover movies from your import lists & Radarr recommendations
- [Radarr/Releases] Ability to set sorting direction, category, and filtering method
- [Settings/Radarr] Ability to toggle on or off Radarr suggestions in the discover page
TWEAKS
- [Drawer] Removed the option to use categories/folders in the drawer
- [Settings/Config] Sort configuration options within modules for cleaner isolation and easier expansion for future configuration options
- [Settings/Profiles] Renaming a profile now checks for an existing profile with the same name within the prompt
- [Settings/Profiles] Adding a profile now checks for an existing profile with the same name within the prompt
- [Settings/Profiles] The delete profile prompt now hides the currently enabled profile, and shows a snackbar if only one profile exists
- [Settings/Wake on LAN] Allow clearing the broadcast and MAC addresses to empty values
FIXES
- [Radarr] Support for Radarr v3.1.0+ (nightly builds)
- [Radarr/Add] Instantly show a movie as addable again if removed right after adding it
- [Radarr/Cast] If a job or character name is empty, show a dash instead of an empty space
- [Radarr/Catalogue] Instantly remove the movie tile when removing a movie
- [Radarr/Edit] Padding around the "Update Movie" button was incorrect
- [Toasts] In some cases, the error was not being passed through to the error viewer
- [UI/UX] Upstream framework support for basic mouse/trackpad highlight and scrolling support
- [UI/UX] Tapping the AppBar to scroll back in a nested route would scroll back the parent route as well
- [UI/UX] Use the recommended safe area padding at the bottom of lists for fullscreen devices
NEW
- [Radarr] Completely rewritten from the ground-up
- [Radarr] View system status, disk usage, and manage tags
- [Radarr] Catalogue, upcoming, missing, tags, and quality profiles are now held in-state between module switches
- [Radarr/Add] Long-pressing a search result tile will open the movie's TMDB entry
- [Radarr/History] Now an infinite scrolling list
- [Radarr/Movie] Cast information, movie-specific history, more detailed file information, more detailed overview page
- [Radarr/Filtering] Improved sorting and filtering speed, performance, and consistency
- [Radarr/Filtering] Ability to set sorting and filtering defaults in settings
- [Radarr/Filtering] Many additional filtering options
- [Haptics] Added haptic feedback to all buttons, toggles, and dropdowns
- [Quick Actions] Default "Settings" quick action added to end of the list (if there is room)
- [UI/UX] (Radarr Only For Now) Ability to tap the AppBar to scroll to top
- [UI/UX] (Radarr Only For Now) If the list is in a tabbed PageView, tapping the active tab will scroll the list to the top
- [UI/UX] (Radarr Only For Now) If the keyboard is open, scrolling the list, swiping between pages, or opening the drawer will dismiss the keyboard
- [Webhooks] Notification webhooks will now show as an in-app heads up if LunaSea is open at the time of receiving the notification
TWEAKS
- [Radarr] Now only supports v3.0.0 and higher of Radarr
- [Radarr] Many visual changes, too many to list
- [Radarr] The tab "History" has been replaced with "More"
- [Radarr/Edit] Monitor toggle has been moved to the edit prompt
- [Sonarr/Filtering] Updated button to use standard filtering icon
- [Tautulli/Activity] Show session type and bandwidth type breakdown on activity page
- [Tautulli/Activity] Cleanup player information to more closely resemble web GUI
- [Tautulli/Activity] Show subtitle stream decision
- [UI/UX] Reduced the weight of bold text across the application
- [UI/UX] Added padding to bottom of lists for devices that require a safe area
- [UI/UX] Active tab in navigation bar now has a border with the AMOLED theme
FIXES
- [Changelog] Properly align/pad "Full Changelog" button at the end of the changelog
- [Flutter] Update packages
- [Flutter] Now using the beta channel
- [Quick Actions] Improve internal implementation of quick actions to be more stable and reliable
- [Settings/Modules] Newly set headers would sometimes not be passed to the connection test
- [Sonarr/Edit] Series path prompt would show an incorrect title
- [Sonarr/Description] Show "No summary is available" when there is no summary instead of an empty string
- [Sonarr/Releases] Default sorting direction was using catalogue default value
- [Tautulli/Graphs] Description of some graphs were not correct (Thanks @ZuluWhiskey!)
- [Tautulli/IPs] Fix location showing as null for local addresses
- [UI/UX] Border radius for the splash highlight wouldn't clip correctly on slim buttons
- [UI/UX] Margin/size of sort/filter buttons were off by a few pixels
- [UI/UX] InkWell splash now clips correctly to the rounded borders of popup menu buttons
* Updated all packages
* [iOS] Added associated domain for webcredentials (autofill)
* [IAPs] Remove all references or code for a pro upgrade
* [Android] Added asset_statements for autofill association
* [Accounts] Ability to send password reset email
* [Sonarr/Upcoming] Change "Not Downloaded" to "Missing"
* [Sonarr/Add] Fixed error log showing series ID as null
* [Messages] Separate messages (including changelog) to its own Hive box to prevent repeated message prompts
* [Changelog] Write build number from PackageInfo to database instead of JSON
* [Actions] Cleanup quick actions, removed Siri suggestions package and initialization
* Update contributers file
* Updated changelog
NEW
- [Settings/Modules] Add an information/help button with module descriptions and links
TWEAKS
- [Radarr] Always show the amount of days content will be available instead of limiting it to only content in the next 30 days
- [Settings] Moved "Backup & Restore" and "Logs" to "System" section
- [Settings] Merged "Customization" and "Modules" sections into "Configuration"
- [Settings/Sonarr] Removed the need to enable Sonarr to test the connection
- [Settings/Tautulli] Removed the need to enable Tautulli to test the connection
FIXES
- [IAPs] Ensure all IAPs are marked as "consumed"
- [Flutter] Updated packages
- [Logging] Updated Sentry to v4 framework to improve capturing fatal/crashing bugs
- [Settings/Logs] Hide exception and stack trace buttons when an error is not available
- [Sonarr/History] Fixed history fetching the oldest entries, not the newest
- [State] Correctly clear state when clearing LunaSea's configuration
- [Tautulli/Activity] Fixed consistency of hardware transcoding indicator compared to the web UI
- [UI/Divider] Fix consistency of divider width across regular and AMOLED dark theme
NEW
- [Networking] Strict TLS/SSL validation is now disabled globally
- [Routing] Hold the AppBar back button to pop back to the home page of the module
- [Settings/Sonarr] Toggle to enable Sonarr v3 features
- [Sonarr] Complete rewrite of Sonarr
- [Sonarr] State is now held across module switches
- [Sonarr/Overview] View tags applied to series
- [Sonarr/Catalogue] (v3 only) Ability to set and update language profile
- [Sonarr/Catalogue] Ability to view all, only monitored, or only unmonitored series
- [Sonarr/Releases] (v3 only) Ability to interactively search for season packs
- [Sonarr/Releases] Ability to view all, only approved, or only rejected releases
TWEAKS
- [Settings] Removed all toggles for strict TLS
- [Sonarr] Many tweaks to Sonarr's design
- [Sonarr/Add] (v3 only) Tapping an already-added series will take you to the series page
- [Sonarr/Add] Automatically navigate to newly added series
- [Sonarr/Series] Toggling monitored state of series has now been moved to the edit prompt
FIXES
- [Images] Images will now load for invalid/self-signed certificates
- [Tautulli/Activity] Fix grey screen for music activity
- [TextField] Fix TextField actions (cut, copy, paste, etc.) not showing
- [Timestamps] Fix 12:xx AM being shown as 00:xx AM
- Additional small bug fixes
* [Database] Added client identifier (for later use)
* [UUID, Cleanup] Added UUID generator, follow guidelines for relative exports
* [Imports] Only show necessary imports for modules.dart import
* [Settings] Added stub Tautulli config page (hidden via module flags)
* [-arr/Details] Fix crashes related to setting state on unmounted widget
* [Radarr/Add] Fix crash when a movie does not have a minimum availability status
* [UI] Rounded all tile elements
* [UI] Scaled entire UI down a few font sizes
* [UI] Increase drawer font size, decrease PopupMenu font size
* [UI] Sticky headers are now attached to AppBar
* [TestFlight] v2.4.0 (240001)
* [Clients/Queue] Animated play/pause icon
* [Radarr] Releases are now shown as expandable tiles
* [Headers] Match button size to input bar
* [UI/Divider] Darken colour, slim down
* [Sonarr/Releases] Updated release tiles to expandable tiles
* [Sonarr] Removed sticky headers in upcoming & season details
* [Sonarr] Remove unused routes
* [Lidarr/Releases] Updated to expanded tile format
* [Search] Updated result tiles to be expandable
* [TestFlight] v2.4.0 (240002)
* [Lists] Require or create a ScrollController for all LSLists
* [Sonarr] Episode tiles now expandable, fixed statistics data crash
* [TestFlight] v2.4.0 (240003)
* [Popup Menu] Rounded shape on popup menus
* [Sonarr] More sorting options for Sonarr catalogue & releases
* [Sonarr/Catalogue] Sort by quality using id, not name
* [AMOLED] Optional setting to add UI borders
* [Refactor] Some file name changes
* [Database] Cleanup reads and updates to database
* [Module Flags] Hiding -rr's wouldn't hide the calendar setting
* [Dropdowns] Changed remaining dropdowns to popup menus
* [Sonarr] Safe-guard fetching episode queue
* [TestFlight] v2.4.0 (240006)
* [Changelog] Remove routes, redirect to documentation
* [Search] Added sorting options to search/results, filter for results
* [Sonarr/Add] Ability to set initial episode monitor status
* [Images] Option to clear network image cache
* [TestFlight] v3.0.0 (300001)
* [Tweaks] Small tweaks to text, typos
* [TestFlight] v3.0.0 (300002)
* [Lidarr] Additional sorting options for catalogue
* [Sonarr/Episode] Fix episode list crash
* [Lidarr/Releases] Added widgets for hide, filter, sort
* [Lidarr/Releases] Implemented sort, hide, and filter functionality
* [TestFlight] v3.0.0 (300003)
* [README] Added CI shield, updated version
* [Sonarr] Ability to set initial page
* [Radarr] Ability to set initial page
* [Lidarr] Ability to set initial page
* [NZBGet] Ability to set initial page
* [SABnzbd] Ability to set initial page
* [Home] Ability to set initial page
* [Radarr] Implemented new sorting structure
* [Radarr] Implemented filter, hide, and sorting of releases
* [Radarr] Additional catalogue sorting methods
* [TestFlight] v3.0.0 (300100)
* [Icon] Removed alpha channel from icon
* [Sonarr] Fixed toast for season monitoring toggle
* [Settings] Completely redesign, prepping for user configurable options
* [Browsers] Ability to set which browser
* [Settings/Modules] Long pressing 'Open Links In...' would open LunaSea website
* [Navigation Bar] Fixed title regression
* [Sliver AppBar] Defaults to collapsed, pull down to view
* [Sliver AppBar] Left align title
* [Settings/Calendar] Ability to configure starting day and starting size
* [Settings] Added headers
* [Settings] Cleaned folder structure of widgets
* [Calendar] Added option to disable specific modules
* [Theme] added AMOLED black theme
* [Android] Build Configuration for Android (#198)
* [Android] Implemented WIP android build configuration
* [Android] Added splash, icons, dynamic platform-specific text
* [Android] Added signing configuration, updated minimum version to Android 7.0
* [README] Updated README to reflect Android building
* [README] Added stub Google Play shield
* [README] Reordered shields
* [Development] Replaced utility functions with extensions (#152)
* [Extensions] Integer extension for byte to string conversion
* [Extensions] String extension for open links
* [Extensions] String extension for creating title slugs
* [Extensions] Changed syntax of extensions for easier differentiation
* [Extensions] String extension for language mutators
* [Packages] Updated packages
* [Extensions] DateTime extension for age, floor, and upcoming
* [Extensions] Finished converting all utility functions to extensions
* [Extensions] Keep constant in constants file
* [Database] Implemented hive database to replace shared_preferences (#155)
* [Packages] Added hive package
* [Database] Initialized hive, generated adapters
* [Database] Defined profile schema
* [Databasing/Profiles] Switched profiles control to hive implementation
* [Settings, Refactor] Started adoption of hive in settings, major folder structure change
* [Settings/General] Using improved UI widgets
* [Backup/Restore] Temporarily disable this feature
* [Database/Profiles] Switch profiles to hive
* [Code Splitting] Further work on code splitting, refactoring
* [Services, Profiles] Switched services to hive DB, profile switcher in drawer
* [Calendar] Defaults to showing one week
* [Calendar] Swapped today and selected day highlight colours
* [Home] Correctly highlight home in drawer
* [Drawer/Profile Switcher] Adjusted styling of profile switcher
* [Home] Dynamically react to changes within profile object
* [Profiles] All services now react to profile value changes (#156)
* [TestFlight] v2.0.0 (11)
* [Settings, Indexers, Configuration] Cleaned settings routes, added indexer settings area, restored backup/restore functionality (#158)
* [Indexers] Added indexer drawer entry, updated indexer database object
* [Settings] Cleaned up settings page code
* [Settings] Finished cleanup of settings route
* [Widgets/UI] Cleanup widgets, remove old elements
* [Logs] Fixed bug where logs wouldn't load
* [Backup/Restore] Restored functionality with new database
* [Hive] Fixed pages not dynamically reloading
* [Settings/Indexers] Added delete indexer prompt
* [Redux] Removed redux, combined core + system (#159)
* [Indexers] Support for Newznab Indexers (#161)
* [App State] Created app state boxes using Hive
* [Packages] Remove animations, add xml
* [API, Packages] Updated package logger class route, added Dio package
* [Packages] Removed flutter_test
* [Newznab, Indexers] Fetching categories from indexers, indexer and category page started
* [Indexers] Categories, Subcategories, and results page
* [Search] Allow refreshing categories, results
* [State] Implemented Provider for state management, implemented into indexer search
* [Home, Indexers] Added search quick link, ability to download NZB file
* [Packages] Updated packages
* [Code Splitting] Split search widgets up
* [Indexers] List of indexers is now alphabetical
* [README] Added TestFlight link
* [Sonarr] Show season and status when adding new series
* [Sonarr] Display start year when adding new series
* [Indexers] Send NZB directly to client
* [Indexers] Finished result details page
* [Indexer] Implemented searching indexers
* [TestFlight] v2.0.0 (33)
* [Indexers] Reduced API results to 100, Animated loading message (#162)
* [Indexers] Reduced search results to 100
* [Indexers] Removed refresh indicator waiting for future, animated loading message
* [Indexers, Loading] Reduced API hits for indexers, animated loading screen
* [Messages] Updated all loading messages to new animated message
* [TestFlight] v2.0.0 (44)
* [Indexers, Home] Fixed user-agent in indexers, cleaned home routes (#167)
* [Abstracts] Cleaned abstracts
* [Scripts] generate_icons, generate_splash, update_packages
* [Newznab] Set user-agent to prevent agent blocks
* [NZBGet] Fix a small username/password issue
* [Home] Started implementation of Provider
* [Website] Removed website from main repository
* [Home] Cleaned home routes
* [Master] Update from master (#168)
* Delete CNAME
* [Website] Removed website from main repository
* [TestFlight] v2.0.0 (55)
* [Lidarr] Reimplementation of Lidarr (#173)
* [Provider] Created empty states for all major routes
* [Constants] Cleanup constants file
* [Lidarr, Snackbar] Cleaned 3 pages of Lidarr, started work on new snack bars
* [Lidarr, Restore, UI] Continued work on Lidarr, fixed restore config bug, adjusted global elevation to 3.0
* [Lidarr] Fixed empty catalogue page
* [Snackbar] Added types
* [Lidarr/Details] Ability to edit, remove, and refresh artist from details view
* [Lidarr/Details] Re-implemented overview page
* [Lidarr/Details] Implemented album details page
* [Lidarr/API] Updated data objects
* [Lidarr/Details] Completed reimplementing artist, album, and search functions
* [Lidarr/Add] Reimplemented adding new artists flow
* [Lidarr/Search] Removed FAB, replaced with buttons
* [Indexers] Fixed cases where categories would not load
* [Lidarr] Reimplemented API structure using Dio
* [Settings] Move all snackbars to new system
* [Settings] Slight wording tweak for snackbar
* [TestFlight] v2.0.0 (66)
* [Radarr] Reimplementation of Radarr (#175)
* [Radarr] Implemented dio in API, clean slate on route/widgets
* [Radarr/Catalogue] Reimplemented catalogue view, monitor action, popup actions
* [Radarr/History] Reimplemented history page
* [Radarr] Readded overview, edit movies, missing movies
* [Radarr] Fixed typos
* [Radarr, SABnzbd, NZBGet] Reimplemented upcoming, limited queue results to 100
* [Radarr] Reimplemented movie adding flow
* [Radarr] Fixed some grammar, text colours
* [Radarr] Completed reimplementation
* [TestFlight] v2.0.0 (77)
* [Sonarr] Reimplementation of Sonarr (#176)
* [Development] Separating modules
* [Clean] Moved every updated service to modules folder
* [Sonarr] Started reimplementation
* [Sonarr] Added catalogue page
* [Sonarr] Reimplemented overview, season list
* [Sonarr] Cleaned more of the API
* [Sonarr] Reimplemented all API functions
* [Sonarr] Reimplementing adding series flow
* [Sonarr] Implemented all main settings options
* [Sonarr] Reimplemented editing series
* [Sonarr] Reimplemented upcoming, other small things
* [Sonarr] Reimplemented episode/season page, ability to multiselect
* [Sonarr] Finished reimplementation
* [TestFlight] v2.0.0 (88)
* [Services] Reimplemented SABnzbd, NZBGet, features for -rr (#177)
* [NZBGet] Cleaned API, cleaned settings
* [Widgets] Replaced all centeredMessage widgets
* [NZBGet] Reimplemented service actions, statistics page, history page
* [UI] Removed more UI elements
* [NZBGet, UI] Lots of work on queue page, added quick clear button to input fields
* [NZBGet] Added app bar status
* [Navigation, NZBGet] Swipe between pages tabs on updated modules, more NZBGet features
* [Navigation] Switched to new navigation bar package
* [Navigation, NZBGet, SABnzbd] Updated navigation bar, finished NZBGet, started SABnzbd
* [SABnzbd, Navigation] Reimplemented SABnzbd queue, tweaked and completed navigation bar
* [HTTP Client] Stripped out all HTTP requests, replaced with Dio requests
* [Navigation Bars] Adjusted edge margins, safe area, etc.
* [Searchbars] Made catalogue and history search bars stickied
* [Navigation Bar] Adjusted colours
* [Calendar] Fixed padding on home calendar
* [Add, Search] Made all search bars stickied
* [UI] Completely removed all old UI elements
* [SABnzbd] Reimplemented long-press history actions
* [SABnzbd] On Complete Action & Statistics Page
* [SABnzbd] Finished SABnzbd
* [NZBGet/SABnzbd] Fixed queue load error
* [Radarr] Removed redudant try again buttons
* [TestFlight] v2.0.0 (99)
* [SnackBar] Added box shadow
* [TestFlight] v2.0.0 (111)
* [TestFlight] v2.0.0 (222/RC2) (#180)
* [Configuration] Added message about v1 configs, ability to clear config
* [SABnzbd, Dialogs] Safe-guarded history fetching, converted some dialogs
* [iOS/Flutter] Build for iOS 13.4, Updated Flutter for iOS 13.4
* [TestFlight] v2.0.0 (333)