Changes to Version 18.104.22.168
- AutoUpdate now uses our .com address instead of .mobi. Previous version will not be able to get automatic updates until it is updated to this version.
Changes to Version 22.214.171.124
- The ReadStrings method of the binary reader will now convert strings straight from ASCII as they’re now being written in the data file as ASCII only.
- The ReadCollection method of the binary reader will now return arrays of integers rather than generic lists to reduce memory consumption. This change has required some public methods to use IList rather the List types. 3rd party source code that accesses the library via these methods may require modification.
- The AutoUpdate feature now uses the HTTP header Last-Modified to provide the last modified time stamp of the premium data file. If the file has not changed the update service will no longer send any data in response. The local file check interval has been changed to 6 hours and the weekly file wait time has been set correctly at 7 days.
- Added a null check to prevent a null reference exception in certain circumstances.
Changes to Version 126.96.36.199
- Changed the ImageData constructor to check for the presence of tab character in the HardwareImages property.
- Fixed problem with pager on Device Explorer control where new page URLs were incorrectly formed.
Changes to Version 188.8.131.52
- Handlers now have a ‘Count’ property. This is an integer value that shows how many devices in the dataset that use that handler.
- Provider.cs -> GetDeviceInfoByID to address a problem with duplicate devices sharing the same hash code.
- Fixed issue where data updates would not be applied until the file system was checked.
- The FiftyOneBrowserCapabilities.Capabilites HasTable object now has a canse-insensitive key, fixing an issue where MaintainScrollbackOnPostback would not work.
Changes to Version 184.108.40.206
- Auto update no longer requires an AppPool reset to update new data. The thread that checks for data updates online will automatically update the ActiveProvider. The Foundation also creates a separate thread that the data file on disk frequently to check if another process has updated file, creating a new provider if the file is newer. This means data can be updated externally from the IIS processes and the data will be updated. The FiftyOne.Foundation.Mobile.Detection.Factory class has a new public method, ForceDataUpdate(). The method forces an update to the ActiveProvider from the data file. This release adds the following constants to the FiftyOne.Foundation.Mobile.Detection.Constants class:
- TimeSpan FileUpdateDelayedStart - The length of time to wait before setting the local data file check process. Defaults to 20 minutes.
- TimeSpan FileUpdateSleep - The length of time between local data file checks. Defaults to 20 minutes.
- The thread that checks for online updates now never starts if there are no license keys.
Changes to Version 220.127.116.11
- BaseProvider.cs has been removed and all functionality incorporated into a single Provider.cs class.
- Support has been added for the additional HTTP header Device-Stock-UA. This header can be used by 3rd party browser vendors (for example; Opera) to identify the underlying hardware and operating system of the device. When present this header will be used to populate properties relating to the hardware and operating system. The standard User-Agent header will be used to populate Browser and Crawler properties. The ”Id” property will be provided from the device matching the Device-Stock-UA header. This functionality is automatically enabled when the provider is used with the HTTP detection module. When using the Provider directly the GetResult method will return a modified result classing enabling the functionality. Provider methods that return only a single device, or receive a single useragent, are not impacted by this change.
- The Result class has been changed to include a Primary and Secondary device property. The Secondary device will be populated if anyone of the following HTTP files are present and match a device.
- The Result class contains methods for retrieving properties which will automatically determine the correct device (primary or secondary) to retrieve the property from based on the component (Hardware, Software, etc) the property relates to. The additional public methods are:
- GetAllProperties - Returns a sorted list containing all the property values for the result.
- GetPropertyValues - Returns a list of the string values for the property.
- GetFirstPropertyValue - Gets the first value for the property.
- Support the new HasNFC property added to the user interface components.
- The UserAgentTester control in the web user interface now defaults to the user agent of the current device.
- The XML data file will now include manifest information which will be read when present by the XML reader.
- NewDevice.cs modified to avoid possible duplicate call to Dispose method when a fatal exception occurs. Number of Timeouts now tracked and feature will auto disable if continuous timeouts exceeds 10.
Changes to Version 18.104.22.168
- Two new dynamic properties have been added to the Request.Browser collection.
- MatchConfidence – a value between 1 and 255 where the lower the value the less confident we are in the device properties provided. Exact matches will return 255, fuzzy matches will return between 1 and 10. Values above 5 should be considered reliable for most purposes. A value of 1 should be considered unreliable. Lower values usually result from near random input where the structure of headers provided is unlike anything we’ve seen in the real world.
- MatchDifference – an integer value providing the edit distance between the matched user agent and the one requested.
- The UserAgentTester UI screen has been changed to display these two new properties above the device information.
- Fixed bug where search related CSS classes weren’t using non-default names if they were supplied.
Changes to Version 22.214.171.124
- The Foundation now has a new compiler flag, ‘REMOVE_OVERRIDE_BROWSER’. Using this will stop property overwriting of the default ASP.NET browser properties.
Changes to Version 126.96.36.199
- Device explorer now contains a search function to find devices. The search component has four new default CSS classes that can be style. Furthermore, search has three more CSS classes that can be used:
- search – Attached to the div containing the search function.
- searchBox – Attached to the text input for the search.
- searchButton – Attached to the button next to the search input.
- searchText – Attached to the div containing the instruction text.
- The DeviceExplorer class also has six new exposed properties:
- string SearchInstructionsText – The instruction text to display next to the search box.
- string SearchButtonText – The text to display on the search button.
- string searchCssClass – Used to override the search css class.
- string searchBoxCssClass – Used to override the searchBox css class.
- string searchButtonCssClass – Used to override the searchButton css class.
- string searchTextCssClass – Used to override the searchText css class.
- Devices can now be displayed by popularity and release date in the new TopDevices control. It display devices ordered by when they were release and their popularity and creates links to the relevant device for DeviceExplorer. This control exposes the following properties:
- DeviceUrl - Gets or sets what should be used for navigation url.
- DeviceAmount - Gets or sets how many devices to show devices to show.
- ImagesEnabled - Gets or sets if device images should be displayed.
Changes to Version 188.8.131.52
1. Auto update process now runs as a thread timer every 6 hours. Previously the auto update process ran once after the worker process started and new data required the worker process to recycle.
2. The Device Explorer UI control now displays thumbnail images of more modern devices. When the cursor hovers over the thumbnail and other images will be displayed on a timer, if other images are available. The property in the Premium device data needed to enable this feature is called HardwareImages. HardwareImages is a list property containing many strings consisting of a caption of the image and the url to the image separated by a tab character.
3. The Device Explorer UI control now has a new exposed Boolean property, ImagesEnabled. The value of this property determines if device images are displayed. DisplayDeviceImages defaults to false. Note that adjustments to the CSS classes image and item may be required to make full use of the UI changes. See the example project for details.
4. More debug information has been added to the support class to assist in the resolution of configuration file related issues.
5. Final matcher has been enhanced