Skip to content

Commit

Permalink
8.10.1 Version
Browse files Browse the repository at this point in the history
  • Loading branch information
chetanshanbagBV authored Jun 21, 2022
1 parent d18399f commit 6446a65
Show file tree
Hide file tree
Showing 30 changed files with 5,273 additions and 40 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Changelog

# 8.10.1
## Fixed ADID Google play policy changes

* Added ADID Google Play services normal permission.

# 8.10.0
## Hosted Auth Support for Progressive Submission

Expand Down
2 changes: 2 additions & 0 deletions app/src/debug/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>


<application
android:name="com.bazaarvoice.bvsdkdemoandroid.DemoApp"
Expand Down
1 change: 1 addition & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>

<application
android:name=".DemoApp"
Expand Down
2 changes: 2 additions & 0 deletions bvanalytics/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.bazaarvoice.bvandroidsdk_analytics">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>


</manifest>
1 change: 1 addition & 0 deletions bvcommon/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.bazaarvoice.bvandroidsdk_common">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>

</manifest>
1 change: 1 addition & 0 deletions bvconversations/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.bazaarvoice.bvandroidsdk_conversations">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>

</manifest>
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public String getValue() {
}
}

public enum FilterOptions {
public enum Filter implements UGCOption {
ID("Id"),
CONTENT_LOCALE("ContentLocale"),
HAS_PHOTOS("HasPhotos"),
Expand All @@ -60,14 +60,14 @@ public enum FilterOptions {
TOTAL_REVIEW_COUNT("TotalReviewCount"),
USER_LOCATION("UserLocation");

private String value;
private final String key;

FilterOptions(String value) {
this.value = value;
Filter(String key) {
this.key = key;
}

public String getValue() {
return value;
public String getKey() {
return this.key;
}

// AdditionalField_[FIELD_NAME]
Expand All @@ -77,4 +77,5 @@ public String getValue() {
// The context data value for the content. DIMENSION_EXTERNAL_ID can be age, gender, etc. e.g. filter=contextdatavalue_age:under21&filter=contextdatavalue_gender:male

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -114,11 +114,11 @@ public LoadCallDisplay<ReviewsRequest, ReviewResponse> prepareCall(ReviewsReques
return factoryCreateDisplayCall(ReviewResponse.class, request);
}
/**
* @param request TopicFilterRequest to be sent
* @param request FeatureRequest to be sent
* @return LoadCall object with the request ready to be sent
*/
public LoadCallDisplay<TopicFilterRequest, TopicFilterResponse> prepareCall(TopicFilterRequest request) {
return factoryCreateDisplayCall(TopicFilterResponse.class, request);
public LoadCallDisplay<FeaturesRequest, FeaturesResponse> prepareCall(FeaturesRequest request) {
return factoryCreateDisplayCall(FeaturesResponse.class, request);
}

public LoadCallDisplay<StoreReviewsRequest, StoreReviewResponse> prepareCall(StoreReviewsRequest request) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.bazaarvoice.bvandroidsdk;

public final class BVSecondaryRatingFilter {

private final String type;
private final EqualityOperator equalityOperator;
private final String value;

public BVSecondaryRatingFilter(String type, EqualityOperator equalityOperator, String value) {
this.type = type;
this.equalityOperator = equalityOperator;
this.value = value;
}

public String getType() {
return type;
}

public EqualityOperator getEqualityOperator() {
return equalityOperator;
}

public String getValue() {
return value;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,18 @@ class BasicRequestFactory implements RequestFactory {
private static final String kSORT_REVIEW = "Sort_Reviews";
private static final String kSORT_QUESTIONS = "Sort_Questions";
private static final String kSORT_ANSWERS = "Sort_Answers";
private static final String kFILTER_REVIEW = "Filter_Reviews";
private static final String kFILTER_QUESTIONS = "Filter_Questions";
private static final String kFILTER_AUTHORS = "Filter_Authors";
private static final String kFILTER_COMMENTS = "Filter_Comments";
private static final String kINCLUDE = "Include";
private static final String kSTATS = "Stats";
private static final String kLIMIT = "Limit";
private static final String kOFFSET = "Offset";
private static final String kSEARCH = "Search";
private static final String kINCENTIVIZED_STATS = "incentivizedstats";
private static final String kSECONDARY_RATING_STATS = "secondaryratingstats";
private static final String kTAG_STATS = "tagstats";
private static final String kFEATURES = "feature";
private static final String kProductId = "productId";
private static final String kLanguage = "language";
Expand Down Expand Up @@ -136,7 +142,9 @@ class BasicRequestFactory implements RequestFactory {
private static final String VIDEO_CAPTION_TEMPLATE = "VideoCaption_%d";
private static final String KEY_RATING_TEMPLATE = "rating_%s";
private static final String KEY_CDV_TEMPLATE = "contextdatavalue_%s";
private static final String KEY_SECONDARY_RATING_TEMPLATE = "SecondaryRating_%s";
private static final String KEY_FREEFORM_TAG_TEMPLATE = "tag_%s_%d";
private static final String KEY_TAG_FILTER_TEMPLATE = "tag_%s";
// endregion

// region Submit Question Request Keys
Expand Down Expand Up @@ -233,8 +241,8 @@ public <RequestType extends ConversationsRequest> Request create(RequestType req
return createFromBulkProductRequest((BulkProductRequest) request);
} else if (request instanceof ProductDisplayPageRequest) {
return createFromProductDisplayPageRequest((ProductDisplayPageRequest) request);
} else if (request instanceof TopicFilterRequest) {
return createFromTopicFilterRequest((TopicFilterRequest) request);
} else if (request instanceof FeaturesRequest) {
return createFromFeaturesRequest((FeaturesRequest) request);
}else if (request instanceof FeedbackSubmissionRequest) {
return createFromFeedbackSubmissionRequest((FeedbackSubmissionRequest) request);
} else if (request instanceof ReviewSubmissionRequest) {
Expand Down Expand Up @@ -385,6 +393,14 @@ private Request createFromReviewRequest(ReviewsRequest request) {
httpUrlBuilder.addQueryParameter(kINCENTIVIZED_STATS, request.getIncentivizedStats().toString());
}

if (request.getSecondaryratingstats()) {
httpUrlBuilder.addQueryParameter(kSECONDARY_RATING_STATS, request.getSecondaryratingstats().toString());
}

if (request.getTagStats()) {
httpUrlBuilder.addQueryParameter(kTAG_STATS, request.getTagStats().toString());
}

if (request.getFeatures() != null) {
httpUrlBuilder.addQueryParameter(kFEATURES, request.getFeatures());
}
Expand All @@ -407,6 +423,38 @@ private Request createFromReviewRequest(ReviewsRequest request) {
httpUrlBuilder.addQueryParameter(kSTATS, statsParam);
}

if (request.getContextDataValues()!= null) {
final Set<String> contextDataValueKeys = request.getContextDataValues().keySet();
for (String key : contextDataValueKeys) {
String value = getContextDataValue(key,request.getContextDataValues().get(key));
httpUrlBuilder
.addEncodedQueryParameter(kFILTER, value);
}
}

if (request.getAdditionalFields()!= null) {
final Set<String> additionalFields = request.getAdditionalFields().keySet();
for (String key : additionalFields) {
String value = addAdditionalQueryParam(key,request.getAdditionalFields().get(key));
httpUrlBuilder.addEncodedQueryParameter(kFILTER, value);
}
}

if (request.getSecondaryRatings()!= null) {
for (BVSecondaryRatingFilter secondaryRatingFilters : request.getSecondaryRatings() ) {
String value = addSecondaryRatingsQueryParam(secondaryRatingFilters.getType(), secondaryRatingFilters.getEqualityOperator(), secondaryRatingFilters.getValue());
httpUrlBuilder.addEncodedQueryParameter(kFILTER,value);
}
}

if (request.getTagFilters()!= null) {
final Set<String> tagFilterValues = request.getTagFilters().keySet();
for (String key : tagFilterValues) {
String value = addTagQueryParam(key,request.getTagFilters().get(key));
httpUrlBuilder.addEncodedQueryParameter(kFILTER, value);
}
}

HttpUrl httpUrl = httpUrlBuilder.build();

Headers.Builder headersBuilder = new Headers.Builder();
Expand All @@ -419,6 +467,26 @@ private Request createFromReviewRequest(ReviewsRequest request) {
.build();
}

private String addSecondaryRatingsQueryParam(String type, EqualityOperator equalityOperator, String value) {
final String keyRating = String.format(Locale.US, KEY_SECONDARY_RATING_TEMPLATE, type);
return String.format("%s:%s:%s", keyRating,equalityOperator, value);
}

private String getContextDataValue(String key, String value) {
final String keyRating = String.format(Locale.US, KEY_CDV_TEMPLATE, key);
return String.format("%s:%s", keyRating, value);
}

private String addTagQueryParam(String type, String value) {
final String keyRating = String.format(Locale.US, KEY_TAG_FILTER_TEMPLATE, type);
return String.format("%s:%s",keyRating, value);
}

private String addAdditionalQueryParam(String key, String value) {
final String keyRating = String.format(Locale.US, KEY_ADDITIONAL_PARAM_TEMPLATE, key);
return String.format("%s:%s", keyRating, value);
}

private Request createFromQuestionAndAnswerRequest(QuestionAndAnswerRequest request) {
Request.Builder okRequestBuilder = new Request.Builder();

Expand Down Expand Up @@ -469,7 +537,7 @@ private Request createFromReviewHighlightsRequest(ReviewHighlightsRequest reques
.build();
}

private Request createFromTopicFilterRequest(TopicFilterRequest request) {
private Request createFromFeaturesRequest(FeaturesRequest request) {
Request.Builder okRequestBuilder = new Request.Builder();

HttpUrl.Builder httpUrlBuilder = HttpUrl.parse(bvRootApiUrl)
Expand Down Expand Up @@ -687,6 +755,10 @@ private Request createFromBulkProductRequest(BulkProductRequest request) {
httpUrlBuilder.addQueryParameter(kINCENTIVIZED_STATS, request.getIncentivizedStats().toString());
}

if (request.getTagStats()) {
httpUrlBuilder.addQueryParameter(kTAG_STATS, request.getTagStats().toString());
}

HttpUrl httpUrl = httpUrlBuilder.build();

Headers.Builder headersBuilder = new Headers.Builder();
Expand All @@ -710,10 +782,18 @@ private Request createFromProductDisplayPageRequest(ProductDisplayPageRequest re
addCommonQueryParams(httpUrlBuilder, convApiKey, bvMobileInfo);
addCommonDisplayQueryParams(httpUrlBuilder, request);
addSortableProductParams(httpUrlBuilder, request);
addFilertableProductParams(httpUrlBuilder,request);
if (request.getIncentivizedStats()) {
httpUrlBuilder.addQueryParameter(kINCENTIVIZED_STATS, request.getIncentivizedStats().toString());
}

if (request.getSecondaryratingStats()) {
httpUrlBuilder.addQueryParameter(kSECONDARY_RATING_STATS, request.getSecondaryratingStats().toString());
}

if (request.getTagStats()) {
httpUrlBuilder.addQueryParameter(kTAG_STATS, request.getTagStats().toString());
}

HttpUrl httpUrl = httpUrlBuilder.build();

Expand Down Expand Up @@ -979,6 +1059,7 @@ private static void addCommonDisplayQueryParams(HttpUrl.Builder httpUrlBuilder,
addFilterQueryParams(httpUrlBuilder, request.getFilters());
addExtraQueryParams(httpUrlBuilder, request.getExtraParams());
addProductSortParam(httpUrlBuilder, request.getSorts());

}

private static void addFilterQueryParams(HttpUrl.Builder httpUrlBuilder, List<Filter> filters) {
Expand Down Expand Up @@ -1028,6 +1109,39 @@ private static void addSortableProductParams(HttpUrl.Builder httpUrlBuilder, Sor
}
}

private static void addFilertableProductParams(HttpUrl.Builder httpUrlBuilder, SortableProductRequest request) {
if (!request.getReviewFilter().isEmpty()) {
for (Filter filter : request.getReviewFilter()) {
httpUrlBuilder
.addEncodedQueryParameter(kFILTER_REVIEW, filter.toString());
}
}


if (!request.getQuestionFilter().isEmpty()) {
for (Filter filter : request.getQuestionFilter()) {
httpUrlBuilder
.addEncodedQueryParameter(kFILTER_QUESTIONS, filter.toString());
}
}

if (!request.getAuthorFilter().isEmpty()) {
for (Filter filter : request.getAuthorFilter()) {
httpUrlBuilder
.addEncodedQueryParameter(kFILTER_AUTHORS, filter.toString());
}

}

if (!request.getCommentFilter().isEmpty()) {
for (Filter filter : request.getCommentFilter()) {
httpUrlBuilder
.addEncodedQueryParameter(kFILTER_COMMENTS, filter.toString());
}
}

}

private static void addProductSortParam(HttpUrl.Builder httpUrlBuilder, List<Sort> sorts) {
for (Sort sort : sorts) {
httpUrlBuilder.addEncodedQueryParameter(kSORT, sort.toString());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ public class DistributionValue {
private Integer count;
@SerializedName("Value")
private String value;
@SerializedName("ValueLabel")
private String valueLabel;

public Integer getCount() {
return count;
Expand All @@ -32,4 +34,8 @@ public Integer getCount() {
public String getValue() {
return value;
}

public String getValueLabel() {
return valueLabel;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.google.gson.annotations.SerializedName;

public class TopicFeature extends IncludeableContent {
public class FeatureKeyword extends IncludeableContent {

@SerializedName("feature")
private String feature;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@

import java.util.List;

public class TopicFeatureResults extends IncludeableContent {
public class Features extends IncludeableContent {

@SerializedName("features")
private List<TopicFeature> features;
private List<FeatureKeyword> features;

@SerializedName("language")
private String language;
Expand All @@ -16,7 +16,7 @@ public class TopicFeatureResults extends IncludeableContent {
private String productId;


public List<TopicFeature> getFeatures() {
public List<FeatureKeyword> getFeatures() {
return features;
}

Expand Down
Loading

0 comments on commit 6446a65

Please sign in to comment.