Skip to content

Releases: bazaarvoice/bv-android-sdk

BVSDK 6.14.2 (Bug Fix)

28 Nov 21:06
Compare
Choose a tag to compare

Bug Fix

Add proper logic to test functionality for 6.14.1 changes. Please see commit for details.

BVSDK 6.14.0 (Ads, PIN removed)

06 Nov 18:34
Compare
Choose a tag to compare

Removed PIN, PIN Notifications, and Advertising

  • Removed PIN module
  • Removed PIN Notifications module
  • Removed Advertising module
  • Removed PIN API key from BVConfig.Builder and BVSDK.Builder.

This are all technically breaking changes, but no one is using them, nor do they do function, so it should
not affect anyone.

BVSDK 6.13.0 (Conversations Authentication Interfaces)

06 Nov 17:25
Compare
Choose a tag to compare

Conversations

New Authentication Interfaces

Added a new AuthenticationProvider interface that should be implemented, and provided to each submission
request. e.g.

val submitReq = ReviewSubmissionReq.Builder(Action.Submit, "testProd")
  .authenticationProvider(authProvider)
  .build()
client.prepareCall(submitReq).loadAsync({
  (resp) -> {
    // all good, change Action to Submit to actually send   
  }, 
  (convSubmitException) -> {
    val bvErrors = convSubmitException.getErrors() 
    val bvFieldErrors = convSubmitException.getFieldErrors() 
    for (fieldError in bvFieldErrors) {
      val submissionErrorCode = fieldError.getSubmissionErrorCode()
      val relevantFormField = fieldError.getFormField() // gets the form field info
    }
  }
})
  • If you are configured for BV Hosted Authentication then you should use BVHostedAuthenticationProvider.
  • If you are configured for Site Authentication then you should use SiteAuthenticationProvider.

For more info on how to use/create these providers, and how to check which one you are configured for,
refer to the Conversations > Content Submission page in the docs.

BVSDK 6.12.0 (Conversations routing and error parsing)

28 Sep 14:37
Compare
Choose a tag to compare

Conversations

New success/failure routing, and new Action type

Guide

Previously fetching form data and parsing form errors was difficult. Not all paths of Action routed to the same callback, and most error paths did not have the required data to parse programmatically. All of the previous APIs for doing these things remains in the 6.x SDK for now, but has been marked as deprecated in favor of these new APIs.

Get Form Data
val submitReq = ReviewSubmissionReq.Builder(Action.Form, "testProd") // NEW ACTION TYPE
  .build()
client.prepareCall(submitReq).loadAsync({
  (resp) -> {
    val hasErrors = resp.getHasErrors() // not required to check anymore, always false in success
    val formFields = resp.getFormFields() // null-safe list of available form options
    for (formField in formFields) {
      val isRequired = formField.isRequired()  // indicates you must send this field
    }      
  }, 
  (convSubmitException) -> {
    val bvErrors = convSubmitException.getErrors() // null-safe list of generic errors
    val bvFormErrors = convSubmitException.getFieldErrors() // null-safe list of form errors
  }
})
Test Submission
val submitReq = ReviewSubmissionReq.Builder(Action.Preview, "testProd")
  .build()
client.prepareCall(submitReq).loadAsync({
  (resp) -> {
    // all good, change Action to Submit to actually send   
  }, 
  (convSubmitException) -> {
    val bvErrors = convSubmitException.getErrors() 
    val bvFieldErrors = convSubmitException.getFieldErrors() 
    for (fieldError in bvFieldErrors) {
      val submissionErrorCode = fieldError.getSubmissionErrorCode()
      val relevantFormField = fieldError.getFormField() // gets the form field info
    }
  }
})
Submit

Same as Test Submission, except use Action.Submit and it actually sends.

Details

  • Added Action.Form for submission to route to success without required form fields. Action.Preview and Action.Submit will always route to failure if all required form fields are not provided
  • Added ConversationsDisplayCallback
  • Added ConversationsSubmissionCallback
  • Added ConversationsException which has #getErrors()
  • Added ConversationsSubmissionException which has #getFieldErrors()
  • Added LoadCallDisplay#loadDisplaySync()
  • Deprecated LoadCallDisplay#loadSync() in favor of LoadCallDisplay#loadDisplaySync()
  • Added LoadCallDisplay#loadAsync(conversationsDisplayCallback)
  • Deprecated LoadCallDisplay#loadAsync(conversationsCallback) in favor of LoadCallDisplay#loadAsync(conversationsDisplayCallback)
  • Added LoadCallSubmission#loadSubmissionSync()
  • Deprecated LoadCallSubmission#loadSync() in favor of LoadCallSubmission#loadSubmissionSync()
  • Added LoadCallSubmission#loadAsync(conversationsSubmissionCallback)
  • Deprecated LoadCallSubmission#loadAsync(conversationsCallback) in favor of LoadCallSubmission#loadAsync(conversationsSubmissionCallback)

Other Stuff

  • Update BazaarRuntimeException to not cause StackOverflowException
  • Update JSON parse failure message
  • Update BVErrors exist message
  • Added BVConversationsClientTest to test all routes
  • Updated Robolectric version for testing
  • Added testing shadow for network security

BVSDK 6.11.0 (Conversations error code parsing)

21 Sep 17:12
Compare
Choose a tag to compare

Conversations

  • Added ErrorCode enum to parse the code strings from the Errors JSON field
  • Added Error#getErrorCode() method for getting the enum
  • Added unit tests for invalid error code parsing, valid error code parsing, and generic error list parsing
  • Added SubmissionErrorCode enum to parse the code strings from the FieldErrors JSON field for submission
  • Added FieldError#getErrorCode() method for getting the enum
  • Added unit tests for invalid field error code parsing, valid field error code parsing, and generic field error
    list parsing

BVSDK 6.10.0 (Conversations badges and custom params)

21 Sep 16:05
Compare
Choose a tag to compare

Conversations

  • Add Author#getSecondaryRatingList()
  • Add BaseReview#getSecondaryRatingList()
  • Add IncludeContentBase#getBadgeList()
  • Add IncludeContentBase#getContextDataValueList()
  • Fix BaseReviewBuilder#addContextDataValueString(String dataValueName, boolean value) to be
    named BaseReviewBuilder#addContextDataValueBoolean(String dataValueName, boolean value)
  • Remove empty ReviewSubmissionRequest#newBuilder() method
  • Add ConversationsSubmissionRequest.Builder#addCustomSubmissionParameter(String key, String value)
  • Add internal FormPair class to store user custom form parameters
  • Add ConversationsDisplayRequest.Builder#ConversationsDisplayRequest.Builder#addCustomDisplayParameter(String key, String value)
  • Deprecated ConversationsDisplayRequest.Builder#addAdditionalField(String key, String value)
    in favor of addCustomDisplayParameter
  • Added FormInputType enum to introduce a strongly typed version of String type = FormField#getType().
    The possible values were taken from the conversations docs on input types. This will allow for easier parsing of which form fields have many options. e.g.
final FormInputType formInputType = formField.getFormInputType();
switch(formInputType) {
  case FormInputType.SELECT: {
    List<FormFieldOption> options = formField.getFormFieldOptions();
    // present options to user
    break;
  }
}

BVSDK 6.9.1 (Conversations BulkRatingsRequest fix)

31 Aug 21:55
Compare
Choose a tag to compare

Conversations

  • Added tests for all of the endpoints to verify they are what we expect them to be
  • Updated BulkRatingsRequest to send with endpoint statistics.json like it should and was before, instead of reviews.json

Demo API App

  • Added okhttp3 logging-interceptor
  • Updated TextView to have maxLines of 5 so it won't take up the entire screen on the DemoBulkRatingsActivity screen

Common

  • Updated okhttp3 to version 3.8.0

BVSDK 6.9.0 (Iovation Authenticity)

14 Aug 18:02
Compare
Choose a tag to compare

Conversations

  • Added BVConversationsClient.Builder#fingerprintProvider(fpProvider) as an optional builder parameter

NEW Authenticity Iovation

  • Added IovationFingerprint as a class to pass to the fingerprintProvider(fpProvider) method

BVSDK 6.8.1 (Conversation display extra params)

11 Aug 18:28
Compare
Choose a tag to compare

Conversations

  • Fixed expected behavior of ConversationsDisplayRequest.Builder#addAdditionalField(key, val) to support
    one-to-many relationships of key-value pairs.

BVSDK 6.8.0 (Conversations Multi Config)

01 Aug 17:50
Compare
Choose a tag to compare

Conversations

  • Added multi-config support to the BVConversationsClient. To use it, use the new BVConversationsClient.Builder
    to construct an instance, and use the BVConversationsClient.Builder#bvConfig(bvConfig) method to provide a
    different config than the default provided by the BVSDK singleton. More info available on the docs
    for Conversations.
  • Deprecated the default BVConversationsClient constructor.
  • Add multiple value support to review display filtering

BVPixel (Analytics)

  • Added an additional API to optionally send an analytics event with a different clientId than the default
    provided to the BVPixel singleton instance. More info available on the docs
    for BVPixel.