- Make schedule put public.
- Fixes access token refresh in sample app
- Schedule sample
- New: Adds compact schedule days
- New: Adds ability to configure the the underlying http client to enable oAuth to be handled by the app.
- New: Adds ability to configure softhub to connect to different services
- Fix:
AferoClient.resetPasswordWithCode
now actually works rather than returning a 400 error. - New: AferoLab sample app now has a basic "Forgot Password" flow.
- Fix: Added logic to
ConclaveDeviceEventSource.stop()
to clear the access credentials and account id. - Removed:
ConclaveDeviceEventSource.setAccountId()
since this function is defunct.
- Changed: Updated
AferoSofthub
to softhub version 1.0.844 to pick up latest fixes.
- Changed:
AferoClient.internalRefreshAccessToken
is now protected instead of private.
- New: Added a new
AferoClient.createAccount
overload that acceptsappId
andplatform
to enabled custom partner verification emails
- Fix: Refactor attribute write metrics which had been inadvertently disabled.
- Fix: Javadoc is once again published for the
android
andsofthub
modules. - New: Added
AferoClient
callresendVerificationEmail
, to resend a verification token for a new account.
- New: Added
AferoClient
calls for new password reset flow. SeeAferoClient.sendPasswordRecoveryEmail
andAferoClient.resetPasswordWithCode
. - New: Added
AferoClient
call to fetch aDeviceProfile
for device prior to association. This is useful for display information for nearby devices that are in setup-mode for BLE based association. SeeAferoClient.getDeviceProfilePreAssociation
.
- Changed:
AferoSofthub
now defaults to enterprise mode.
- Changed: Updated
AferoSofthub
to softhub version 1.0.840 to pick up latest fixes. - New: Added support for associating devices via BLE scan magic. Apps can now subscribe to
AferoSoftHub.observeSetupModeDevices()
to receive notification of a device that is available for association. - Changed:
AferoSofthub
now reports association failures toHubby
, allowing for proper recovery.
- New: Added several new API calls to
AferoClient
(andAferoClientRetrofit2
) to support creating accounts, rules, and account sharing. - New: Added
RuleCollection
,DeviceRuleCollection
, andRuleBuilder
utility classes.
- Changed: Updated
AferoSofthub
to softhub version 1.0.792 to pick up latest fixes.
- Changed: Updated
AferoSofthub
to softhub version 1.0.786 to pick up latest fixes.
- Changed: Set the
AferoSofthub
minSdkVersion
to 19 rather than 21.
- Fix:
AferoSofthub
has added more rigorous null checks and synchronization around the start process.
- Changed:
AferoSofthub
now exposesHubType
so that partners can make use ofENTERPRISE
mode should they require it.
- Changed: Updated
AferoSofthub
to softhub version 1.0.756 to pick up latest fixes.
- Changed: Updated
AferoSofthub
to softhub version 1.0.751 to pick up latest fixes.
- Changed: Updated
AferoSofthub
to softhub version 1.0.750 to pick up latest fixes.
- Fix: Changed
AferoClientRetrofit2
to prevent potential uncaught exception when refreshing access token. - Changed:
Attribute
length and default value fields are now exposed via getter/setter. - Fix: Removed some extraneous preceding slashes from some
AferoClientAPI
endpoints - Changed: Updated
AferoSofthub
to softhub version 674. - Fix: Conclave login now sends mobileDeviceId/clientId once again.
- Fix: Removed reference to HttpException in MockAferoClient to fix Proguard IOException.
- Fix: Improved concurrent stability in ConclaveClient.
- New: Added persistent device tags API to
DeviceModel
- New: Added device tags sample code and UI to AferoLab
- New: Added ability to add devices via QR code scan to AferoLab
- New: Added device wifi setup sample code and UI to AferoLab
- New: JavaDoc is now published to Artifactory
- Fix: AferoSofthub now properly handles and reports errors that occur on startup
- New: Added
DeviceModel.setTimeZone(TimeZone)
andgetTimeZone()
- New: Added device inspector and attribute editor views to
AferoLab
sample app - Changed
OfflineScheduler
to use device local time for all event rather than UTC. - Changed
DeviceModel
to add the ability to migrate device data should attribute formats change. - Added
DeviceDataMigrator
to migrateOfflineScheduleEvents
from UTC to device local time. - Changed
AttributeWriter
logic to send write requests in batches of 5 to prevent too many concurrent writes to devices. - Fix:
AttributeWriter
now handles several error conditions more gracefully. - Fix:
DeviceProfile.RangeOptions.getCount()
returns the correct count instead ofcount - 1
. - Changed
ConclaveAccessManager
to use a different endpoint to fetch the Conclave token. The new endpoint doesn't require a mobileDeviceId as did the old one. - Changed
AferoSofthub.acquireInstance
to accept anappInfo
string that can be used to attach app specific information to the softhub instance for debugging purposes. - Changed
DeviceCollection
to no longer require aclientId
to be passed in.
- New: Added DeviceProfile.setDeviceTypeId() and getDeviceTypeId()
- New: Added DeviceInfoBody.appId to support specifying the Android application id for notifications.
- New: Generated JavaDoc
- Fix: Minor change to OTAInfo.getProgress() logic to return 0% at offset 0 of partition 2 instead of 100%, and to be consistent with iOS/Swift.
- Changed
afero-sdk-softhub
build to embed hubby library within the softhub .aar. This means apps no longer need to reference hubby in their dependencies and eliminates any possibility of a version mismatch between the SDK and apps. - New: JavaDoc for
DeviceModel
. - New:
DeviceModel.writeAttributes()
call replaces all variants ofwriteModelValue()
, which have now been deprecated. - New:
DeviceModel.getOTAProgress()
has been refactored to return onrx.Observable
that emits OTA progress. DeviceModel.setLocation(Location)
now performs the appropriate AferoClient call and updates the DeviceModel's LocationState.- New:
AferoClient.putDeviceLocation(String deviceId, Location location)
added to core. - New:
DeviceRules
model class. - Fix:
DeviceWifiSetup
sending credentials will no longer fail to complete if the device was already connected, and wifi setup state doesn't change. - Refactored parts of
ConclaveClient
andDeviceWifiSetup
to remove deprecated RxJava calls. ConclaveDeviceEventSource.start
andConclaveDeviceEventSource.reconnect()
now returnObservable<ConclaveDeviceEventSource>
.- Removed
ControlModel
interface. DeviceModel.setProfile()
is now package-private.DeviceModel.State
enum has been changed toDeviceModel.UpdateState
.DeviceModel.getLocationState
now returns anrx.Observable
. If theDeviceModel
contains a valid location, it is returned immediately, otherwise the location is fetched from the Afero Cloud.DeviceModel.setAvailable(boolean)
has been removed.
- Hotfix to use Hubby 1.0.495 for internal purposes.
- Refactored
DeviceCollection.start()
to returnrx.Observable<DeviceCollection>
. When this observable completes, theDeviceCollection
is fully populated withDeviceModel
objects associated with the active account. - New:
AferoClient.getDevicesWithState()
interface call added AferoClientRetrofit2
Changes:- New:
getDevicesWithState()
implementation added. - New: JavaDoc added for all public functions
ConfigBuilder.clientId()
renamed tooauthClientId()
ConfigBuilder.clientSecret()
renamed tooauthClientSecret()
getAccessToken(String user, String password, String grantType)
deprecated in favor ofgetAccessToken(String user, String password)
refreshAccessToken(String refreshToken, String grantType)
is deprecated and will be removed in the next minor release.getLocale()
is now protectedRetryOnError
is now private
- New:
- AferoLab sample app updated to accomodate above changes.
Initial release.