Releases: UniScanProject/UniScan
Release list
UniScan Client v0.1.1
What's Changed
- feat: cache and use RemoteInfo by @DexrnZacAttack in #21
New Contributors
- @DexrnZacAttack made their first contribution in #21
Full Changelog: UniScan.Client.App/0.0.8...UniScan.Client.App/0.1.1
UniScan Server v0.1.1
What's Changed
- feat: cache and use RemoteInfo by @DexrnZacAttack in #21
New Contributors
- @DexrnZacAttack made their first contribution in #21
Full Changelog: UniScan.Client.App/0.0.8...UniScan.Server.Host/0.1.1
UniScan Client v0.1.0
What's Changed
- feat: cache and use RemoteInfo by @DexrnZacAttack in #21
- Remotes are now stored per file instead of one large file.
- UI has been neatened up.
- The server now sends metadata containing a logo, various information, an MOTD, links, etc.
- The UI has been updated to display this information too.
- This information is also cached by the client
UniScan.Client.App.Platform.Android
- Added cache path
- Added
UniScanPlatformAttributeto assembly
UniScan.Client.App.Platform.Browser
- Added cache path
- Added
UniScanPlatformAttributeto assembly
UniScan.Client.App.Platform.Desktop
- Added cache path
- Added
UniScanPlatformAttributeto assembly
UniScan.Client.App
-
RemoteInfois now used -
Added several remote controls:
RemoteInfoControl: Displays the remote logo, title, description, and a set of linksRemoteLinkControl: Displays the link's logo, title, and url
-
RemoteInfoViewnow showsRemoteInfoControlin addition to a bottom area for an optional MOTD that the server may provide. -
RemoteInfoViewis now tabbed, with an Announcements tab for viewing server announcements -
Improved the look of several views:
NotConnectedRemotePageViewnow shows the remote logo and name, and is now centeredDisconnectedRemotePageViewnow shows the remote logo and name, and is now centered- The sidebar in
MainViewhas been expanded to properly show remote logos HomePageViewnow shows a message when not connected to any remotesHomePageViewnow shows a logo in each remote expander when available
-
Improved the look of several controls:
DeviceListControlnow properly fills its available space with devicesSidebarRemoteItemControlnow displays a logo next to the name if available
-
LoadingViewModelnow accepts any TaskPipeline to listen to -
A loading screen is now shown when connecting to a Remote
-
Added
UniScanPlatformAttribute- Fixes Android crashing due to
GetEntryAssembly()failing due to JNI
- Fixes Android crashing due to
Breaking Changes
- Large restructuring
- Among the changes, all views and viewmodels were merged into one folder and renamed
- Moved task context stuff to a new Shiki project
UniScan.Client.Core
-
Added
RemoteCacheDtofor caching RemoteInfo -
Added
RemoteInfoPacketHandlerfor handling and setting RemoteInfo -
Created a new remote connection pipeline (
RemoteConnectionPipeline) -
Added
IRemoteServerMutationProxyfor mutatingRemoteServerwithout explicitly allowing mutation in the original class definition -
Added a large storage system (from another project I was working on)
- Will likely be moved to Shiki in the future along with platform abstractions
Breaking Changes
- Packet registration and remote loading have been moved out of
UniScanClientand into our app initialization pipeline - App initialization task contexts no longer store
UniScanClient - Dissolved most of
UniScanClientin favor of a method that adds its services to DI.- This means that
UniScanClientnow doesn't do much; however, it will not be removed incase it needs to store anything that isn't a service.
- This means that
- Added
UniScanClientDependencyInjection.AddUniScanClient- This method performs most of the functions of the old
UniScanClient'sCreateInstanceAsync, but on an existing DI container.
- This method performs most of the functions of the old
RemoteDtono longer holds a display name- Removed
RemotesListFilein favor ofRemoteStoragewhich observes a list of Remotes inside IRemoteManager to determine when to save IRemoteFactorynow requires a GUID in bothCreatemethod definitionsRemoteServerconstructors now require a GUID andIClientSocketFactoryinstance
UniScan.Device
Breaking Changes
- Removed
DeviceState.LockandDeviceState.Attributes - Removed
IScannerEvents.OnStateUpdated Scanner.Stateis now aIReadOnlyBindableReactiveProperty
UniScan.Network.Client
- Added
IRemoteConnectionMethod.ToDisplayString()- Used primarily to get the display string for a remote that does not have a cached name
- Added
IClientSocketFactoryandClientSocketFactory- Used to cut down on constructor parameters by providing a singleton passable object that can create a
ClientSocket
- Used to cut down on constructor parameters by providing a singleton passable object that can create a
UniScan.Network.Server
- Added
ClientsManager- Used to hold a global list of currently connected clients and provide a way to broadcast a packet to each one.
- Added
ServerSocket.ClientManager - Added
SubscribableGroup.Contains(IChannel)
UniScan.Network
- Added
RemoteAnnouncementAuthor- This will be replaced by a list of user ids in the future that refer to registered users once an auth and user system is in place
Breaking Changes
-
The protocol version is now
4 -
ISocket.SendRequestAsyncnow accepts a CancellationToken -
RemoteAnnouncementnow stores a list of authors -
RemoteLink.Urlis now aUri -
RemoteInfoPacketis no longer a request packet, and is instead sent by the server whenever desired and consumed by the client -
Removed
GetRemoteInfoPacket -
SubscribePacketis now a properMessagePackObject
UniScan.Platform
- Added
IPlatformDirectoryManager.DeleteAsync - Added
IPlatformDirectoryManager.EnumerateAsync
Breaking Changes
- Added
IPlatformFileSystemManager- Used to share method signatures between the file and directory managers
- Removed
IPlatformFileManager.ExistsAsyncin favor ofIPlatformFileSystemManager.ExistsAsync - Removed
IPlatformDirectoryManager.ExistsAsyncin favor ofIPlatformFileSystemManager.ExistsAsync - Renamed
PlatformDirectoryManager.cstoIPlatformDirectoryManager.cs
UniScan.Platform.Implementations.Native
- Updated implementations according to
UniScan.Platformchanges
UniScan.Platform.Implementations.Web
- Updated implementations according to
UniScan.Platformchanges
Breaking Changes
- Moved
UniScan.Platform.Implementations.Web.BrowserPathstoUniScan.Client.App.Platform.Browser BrowserFileManager.TransferAsyncnow creates all subfolders leading up to the destination file
UniScan.Server.Core
HostClientsHandlernow listens toScanner.Stateas anObservable- Added some more logging to
SubscribePacketHandler - Added a temporary static
RemoteInfoinstance inUniScanServer - The server now sends a
DisconnectPacketto all clients on shutdown
Breaking Changes
ClientSoftwareInfoPacketHandlernow sends aRemoteInfoPacketafter being accepted- Removed
GetRemoteInfoPacketHandler SubscribePacketHandlerno longer allows subscribing to the same device twiceSubscribePacketHandlerno longer attempts to send the scanner state when it is nullUniScanServer._networkGroupManagernow usesMultithreadedGroupManager- This is hopefully a fix to some weird bug that macOS users were encountering that would cause UniScan to crash.
UniScan.Server.Host
ScannerMeta.SaveAsyncnow properly disposes of the filestream- Now prints when exiting
New Contributors
- @DexrnZacAttack made their first contribution in #21
Full Changelog: UniScan.Client.App/0.0.8...UniScan.Client.App/0.1.0
UniScan Client v0.0.9
Full Changelog: UniScan.Client.App/0.0.8...UniScan.Client.App/0.0.9
UniScan Client v0.0.8
Full Changelog: UniScan.Client.App/0.0.6...UniScan.Client.App/0.0.8
UniScan Client v0.0.7
Full Changelog: UniScan.Client.App/0.0.6...UniScan.Client.App/0.0.7
UniScan Client v0.0.6
Full Changelog: UniScan.Client.App/0.0.4...UniScan.Client.App/0.0.6
UniScan Server v0.1.0
Full Changelog: UniScan.Client.App/0.0.4...UniScan.Server.Host/0.1.0
UniScan Client v0.0.5
Full Changelog: UniScan.Client.App/0.0.4...UniScan.Client.App/0.0.5
UniScan Client v0.0.4
Full Changelog: UniScan.Client.App/0.0.3...UniScan.Client.App/0.0.4