Skip to content

Commit

Permalink
v3.2.0 release with recommendations ui
Browse files Browse the repository at this point in the history
  • Loading branch information
Casey Kulm committed Apr 14, 2016
1 parent 2b30c20 commit b0a08c3
Show file tree
Hide file tree
Showing 170 changed files with 4,881 additions and 1,406 deletions.
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Changelog

# 3.2.0

## Product Recommendations
* Added ```RecommendationView``` to wrap a view displaying a single ```BVProduct``` and provide better ROI reporting and recommendations
without the need to manually send off analytic events to Bazaarvoice
* Added ```RecommendationsContainerView```, ```RecommendationsListView```, ```RecommendationsGridView```, and ```RecommendationsRecyclerView```
to display many ```RecommendationView```s, and provide additional ROI reporting and better recommendations

# 3.1.0

## Conversations
Expand Down
23 changes: 10 additions & 13 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,38 +6,35 @@
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

<application
android:name=".BVApplication"
android:name=".DemoApplication"
android:allowBackup="true"
android:icon="@drawable/bv_sample_image"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name">
android:name=".DemoMainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".recommendations.BvProductDetailActivity" />
<activity android:name=".recommendations.detail.DemoProductDetailActivity" />
<activity
android:name=".conversations.kitchensink.BVConversationDetailActivity"
android:label="@string/title_activity_bvconversation_detail"
android:theme="@style/AppTheme" />
android:name=".conversations.kitchensink.DemoConversationDetailActivity"
android:label="@string/title_activity_bvconversation_detail" />
<activity
android:name=".ads.BannerAdActivity"
android:label="@string/title_activity_banner_ad"
android:theme="@style/AppTheme" />
android:label="@string/title_activity_banner_ad" />
<activity
android:name=".ads.NativeAdActivity"
android:label="@string/title_activity_native_ad"
android:theme="@style/AppTheme" />
android:label="@string/title_activity_native_ad" />
<activity
android:name=".ads.InterstitialAdActivity"
android:label="@string/title_activity_interstitial_ad"
android:theme="@style/AppTheme" />
android:label="@string/title_activity_interstitial_ad" />
<activity android:name=".conversations.browseproducts.ProductsActivity"/>
<activity android:name=".conversations.browseproducts.ReviewsActivity"/>
<activity android:name=".conversations.browseproducts.ReviewDisplayActivity" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@
import com.bazaarvoice.bvandroidsdk.BVLogLevel;
import com.bazaarvoice.bvandroidsdk.BVSDK;
import com.bazaarvoice.bvandroidsdk.BazaarEnvironment;
import com.example.bazaarvoice.bv_android_sdk.di.AppConfigurationImpl;
import com.example.bazaarvoice.bv_android_sdk.di.UserConfiguration;
import com.example.bazaarvoice.bv_android_sdk.di.DemoAppConfigurationImpl;
import com.example.bazaarvoice.bv_android_sdk.di.DemoUserConfiguration;

/**
* TODO: Description Here
*/
public class BVApplication extends Application {
public class DemoApplication extends Application {

@Override
public void onCreate() {
Expand All @@ -36,12 +36,12 @@ public void onCreate() {
* </ul>
*/
private void setupBVSDK() {
UserConfiguration userConfiguration = AppConfigurationImpl.getInstance().provideBvUserComponent();
DemoUserConfiguration demoUserConfiguration = DemoAppConfigurationImpl.getInstance().provideBvUserComponent();

BazaarEnvironment bazaarEnvironment = userConfiguration.provideBazaarEnvironment();
String clientId = userConfiguration.provideBvClientId();
String shopperAdvertisingApiKey = userConfiguration.provideApiKeyShopperAdvertising();
String conversationsApiKey = userConfiguration.provideApiKeyConversations();
BazaarEnvironment bazaarEnvironment = demoUserConfiguration.provideBazaarEnvironment();
String clientId = demoUserConfiguration.provideBvClientId();
String shopperAdvertisingApiKey = demoUserConfiguration.provideApiKeyShopperAdvertising();
String conversationsApiKey = demoUserConfiguration.provideApiKeyConversations();

// Builder used to initialize the Bazaarvoice SDKs
BVSDK bvsdk = new BVSDK.Builder(this, clientId)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,35 +9,34 @@

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.text.util.Linkify;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import com.squareup.picasso.Picasso;
import android.widget.TextView;

/**
* TODO: Description Here
*/
public class HomePageFragment extends Fragment {
public class DemoHomePageFragment extends Fragment {

TextView bvsdkWiki;

public HomePageFragment() {
public DemoHomePageFragment() {
// Required empty public constructor
}

public static HomePageFragment newInstance() {
HomePageFragment fragment = new HomePageFragment();
public static DemoHomePageFragment newInstance() {
DemoHomePageFragment fragment = new DemoHomePageFragment();
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.frag_home_page, container, false);

ImageView logo = (ImageView) view.findViewById(R.id.bvLogoImageView);
Picasso.with(getActivity()).load(R.drawable.bazaarvoicelogo).into(logo);
bvsdkWiki = (TextView) view.findViewById(R.id.greetingText);
Linkify.addLinks(bvsdkWiki, Linkify.WEB_URLS);

return view;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,22 @@
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;

import com.bazaarvoice.bvandroidsdk.BVProduct;
import com.example.bazaarvoice.bv_android_sdk.ads.AdsFragment;
import com.example.bazaarvoice.bv_android_sdk.ads.BannerAdActivity;
import com.example.bazaarvoice.bv_android_sdk.ads.InterstitialAdActivity;
import com.example.bazaarvoice.bv_android_sdk.ads.NativeAdActivity;
import com.example.bazaarvoice.bv_android_sdk.conversations.browseproducts.BrowseProductsFragment;
import com.example.bazaarvoice.bv_android_sdk.conversations.browseproducts.ProductsActivity;
import com.example.bazaarvoice.bv_android_sdk.conversations.kitchensink.BVConversationDetailActivity;
import com.example.bazaarvoice.bv_android_sdk.conversations.kitchensink.ConversationsFragment;
import com.example.bazaarvoice.bv_android_sdk.recommendations.BvProductDetailActivity;
import com.example.bazaarvoice.bv_android_sdk.recommendations.RecommendationsFragment;
import com.example.bazaarvoice.bv_android_sdk.conversations.kitchensink.DemoConversationDetailActivity;
import com.example.bazaarvoice.bv_android_sdk.conversations.kitchensink.DemoConversationsFragment;
import com.example.bazaarvoice.bv_android_sdk.recommendations.detail.DemoProductDetailActivity;
import com.example.bazaarvoice.bv_android_sdk.recommendations.DemoRecommendationsFragment;

/**
* TODO: Description Here
*/
public class MainActivity extends AppCompatActivity {
public class DemoMainActivity extends AppCompatActivity {
@IdRes
private int fragContainerId;

Expand Down Expand Up @@ -60,7 +61,7 @@ protected void onCreate(Bundle savedInstanceState) {
fragContainerId = R.id.main_content;

if (savedInstanceState == null) {
transitionTo(HomePageFragment.newInstance());
transitionTo(DemoHomePageFragment.newInstance());
}
}

Expand All @@ -82,16 +83,16 @@ private void setupDrawerContent(NavigationView navigationView) {
public boolean onNavigationItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.home_page:
transitionTo(HomePageFragment.newInstance());
transitionTo(DemoHomePageFragment.newInstance());
break;
case R.id.recommendations:
transitionTo(RecommendationsFragment.newInstance());
transitionTo(DemoRecommendationsFragment.newInstance());
break;
case R.id.advertising:
transitionTo(AdsFragment.newInstance());
break;
case R.id.conversations:
transitionTo(ConversationsFragment.newInstance());
transitionTo(DemoConversationsFragment.newInstance());
break;
case R.id.browse_products:
transitionTo(BrowseProductsFragment.getInstance());
Expand All @@ -113,16 +114,14 @@ private void transitionTo(Fragment fragment) {
transaction.commit();
}

public void transitionToBvProductDetail(String bvProductId) {
Intent intent = new Intent(this, BvProductDetailActivity.class);
intent.putExtra(BvProductDetailActivity.BV_PRODUCT_ID, bvProductId);
startActivity(intent);
public void transitionToBvProductDetail(BVProduct bvProduct) {
DemoProductDetailActivity.start(this, bvProduct);
}

public void transitionToBVConversationDetail(String url, String response) {
Intent intent = new Intent(this, BVConversationDetailActivity.class);
intent.putExtra(BVConversationDetailActivity.URL_EXTRA_KEY, url);
intent.putExtra(BVConversationDetailActivity.RESPONSE_EXTRA_KEY, response);
Intent intent = new Intent(this, DemoConversationDetailActivity.class);
intent.putExtra(DemoConversationDetailActivity.URL_EXTRA_KEY, url);
intent.putExtra(DemoConversationDetailActivity.RESPONSE_EXTRA_KEY, response);
startActivity(intent);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@
import android.widget.Button;
import android.widget.Toast;

import com.example.bazaarvoice.bv_android_sdk.MainActivity;
import com.example.bazaarvoice.bv_android_sdk.DemoMainActivity;
import com.example.bazaarvoice.bv_android_sdk.R;
import com.example.bazaarvoice.bv_android_sdk.di.AppConfigurationImpl;
import com.example.bazaarvoice.bv_android_sdk.di.UserConfiguration;
import com.example.bazaarvoice.bv_android_sdk.di.DemoAppConfigurationImpl;
import com.example.bazaarvoice.bv_android_sdk.di.DemoUserConfiguration;

/**
* TODO: Description Here
Expand Down Expand Up @@ -46,33 +46,33 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
nativeBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
((MainActivity)getActivity()).transitionToNativeAd();
((DemoMainActivity)getActivity()).transitionToNativeAd();
}
});

Button interstitialBtn = (Button) view.findViewById(R.id.interstitialAdBtn);
interstitialBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
((MainActivity)getActivity()).transitionToInterstitialAd();
((DemoMainActivity)getActivity()).transitionToInterstitialAd();
}
});

Button bannerBtn = (Button) view.findViewById(R.id.bannerAdBtn);
bannerBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
((MainActivity)getActivity()).transitionToBannerAd();
((DemoMainActivity)getActivity()).transitionToBannerAd();
}
});

return view;
}

private void checkForDemoInput() {
UserConfiguration userConfiguration = AppConfigurationImpl.getInstance().provideBvUserComponent();
String shopperAdKey = userConfiguration.provideApiKeyShopperAdvertising();
String clientId = userConfiguration.provideBvClientId();
DemoUserConfiguration demoUserConfiguration = DemoAppConfigurationImpl.getInstance().provideBvUserComponent();
String shopperAdKey = demoUserConfiguration.provideApiKeyShopperAdvertising();
String clientId = demoUserConfiguration.provideBvClientId();

String errorVal = null;
if (shopperAdKey.equals("REPLACE_ME")) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@
import com.bazaarvoice.bvandroidsdk.BVAdListener;
import com.bazaarvoice.bvandroidsdk.BVAds;
import com.example.bazaarvoice.bv_android_sdk.R;
import com.example.bazaarvoice.bv_android_sdk.di.AppConfiguration;
import com.example.bazaarvoice.bv_android_sdk.di.AppConfigurationImpl;
import com.example.bazaarvoice.bv_android_sdk.di.UserConfiguration;
import com.example.bazaarvoice.bv_android_sdk.di.DemoAppConfiguration;
import com.example.bazaarvoice.bv_android_sdk.di.DemoAppConfigurationImpl;
import com.example.bazaarvoice.bv_android_sdk.di.DemoUserConfiguration;
import com.google.android.gms.ads.AdSize;
import com.google.android.gms.ads.doubleclick.PublisherAdRequest;
import com.google.android.gms.ads.doubleclick.PublisherAdView;
Expand All @@ -40,10 +40,10 @@ protected void onCreate(Bundle savedInstanceState) {
bannerAdSuccess = (TextView) findViewById(R.id.banner_ad_success);
bannerAdFailure = (TextView) findViewById(R.id.banner_ad_failure);

AppConfiguration appConfiguration = AppConfigurationImpl.getInstance();
BVAds bvAds = appConfiguration.provideBvAds();
UserConfiguration userConfiguration = appConfiguration.provideBvUserComponent();
String bvAdUnitId = userConfiguration.provideBannerAdUnitId();
DemoAppConfiguration demoAppConfiguration = DemoAppConfigurationImpl.getInstance();
BVAds bvAds = demoAppConfiguration.provideBvAds();
DemoUserConfiguration demoUserConfiguration = demoAppConfiguration.provideBvUserComponent();
String bvAdUnitId = demoUserConfiguration.provideBannerAdUnitId();

// get a PublisherAdView object from the BVAdsSDK
publisherAdView = bvAds.getTargetedAdView(getApplicationContext());
Expand Down Expand Up @@ -76,7 +76,7 @@ public void bvOnAdFailedToLoad(int errorCode) {
// Add deviceId for emulator
// You can also add your own for a specific hardware device
targetedAdRequest.addTestDevice(PublisherAdRequest.DEVICE_ID_EMULATOR);
String testDeviceId = userConfiguration.provideTestDeviceId();
String testDeviceId = demoUserConfiguration.provideTestDeviceId();
if (testDeviceId != null && !testDeviceId.equals("REPLACE_ME")) {
targetedAdRequest.addTestDevice(testDeviceId);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@
import com.bazaarvoice.bvandroidsdk.BVAdListener;
import com.bazaarvoice.bvandroidsdk.BVAds;
import com.example.bazaarvoice.bv_android_sdk.R;
import com.example.bazaarvoice.bv_android_sdk.di.AppConfiguration;
import com.example.bazaarvoice.bv_android_sdk.di.AppConfigurationImpl;
import com.example.bazaarvoice.bv_android_sdk.di.UserConfiguration;
import com.example.bazaarvoice.bv_android_sdk.di.DemoAppConfiguration;
import com.example.bazaarvoice.bv_android_sdk.di.DemoAppConfigurationImpl;
import com.example.bazaarvoice.bv_android_sdk.di.DemoUserConfiguration;
import com.google.android.gms.ads.doubleclick.PublisherAdRequest;
import com.google.android.gms.ads.doubleclick.PublisherInterstitialAd;

Expand All @@ -37,10 +37,10 @@ protected void onCreate(Bundle savedInstanceState) {
setSupportActionBar(toolbar);
interstitialButton = (Button) findViewById(R.id.interstitial_button);

AppConfiguration appConfiguration = AppConfigurationImpl.getInstance();
BVAds bvAds = appConfiguration.provideBvAds();
UserConfiguration userConfiguration = appConfiguration.provideBvUserComponent();
String bvAdUnitId = userConfiguration.provideInterstitialAdUnitId();
DemoAppConfiguration demoAppConfiguration = DemoAppConfigurationImpl.getInstance();
BVAds bvAds = demoAppConfiguration.provideBvAds();
DemoUserConfiguration demoUserConfiguration = demoAppConfiguration.provideBvUserComponent();
String bvAdUnitId = demoUserConfiguration.provideInterstitialAdUnitId();

// get a PublisherAdView object from the BVAdsSDK
publisherInterstitialAd = bvAds.getTargetedInterstitialAd(getApplicationContext(), bvAdUnitId);
Expand All @@ -57,7 +57,7 @@ public void bvOnAdOpened() {
// provided as the Builder, to allow interacting with it further to set other information
// like gender, birthday, etc.
targetedAdRequest = bvAds.getTargetedAdRequest();
String testDeviceId = userConfiguration.provideTestDeviceId();
String testDeviceId = demoUserConfiguration.provideTestDeviceId();
if (testDeviceId != null && !testDeviceId.equals("REPLACE_ME")) {
targetedAdRequest.addTestDevice(testDeviceId);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@
import com.bazaarvoice.bvandroidsdk.BVAds;
import com.bazaarvoice.bvandroidsdk.BVContentAdLoadedListener;
import com.example.bazaarvoice.bv_android_sdk.R;
import com.example.bazaarvoice.bv_android_sdk.di.AppConfiguration;
import com.example.bazaarvoice.bv_android_sdk.di.AppConfigurationImpl;
import com.example.bazaarvoice.bv_android_sdk.di.UserConfiguration;
import com.example.bazaarvoice.bv_android_sdk.di.DemoAppConfiguration;
import com.example.bazaarvoice.bv_android_sdk.di.DemoAppConfigurationImpl;
import com.example.bazaarvoice.bv_android_sdk.di.DemoUserConfiguration;
import com.google.android.gms.ads.AdLoader;
import com.google.android.gms.ads.doubleclick.PublisherAdRequest;
import com.google.android.gms.ads.formats.NativeAd;
Expand Down Expand Up @@ -59,10 +59,10 @@ protected void onCreate(Bundle savedInstanceState) {
final TextView description = (TextView) findViewById(R.id.nativeAdDescription);
final TextView link = (TextView) findViewById(R.id.nativeAdLink);

AppConfiguration appConfiguration = AppConfigurationImpl.getInstance();
BVAds bvAds = appConfiguration.provideBvAds();
UserConfiguration userConfiguration = appConfiguration.provideBvUserComponent();
String adUnitId = userConfiguration.provideNativeContentAdUnitId();
DemoAppConfiguration demoAppConfiguration = DemoAppConfigurationImpl.getInstance();
BVAds bvAds = demoAppConfiguration.provideBvAds();
DemoUserConfiguration demoUserConfiguration = demoAppConfiguration.provideBvUserComponent();
String adUnitId = demoUserConfiguration.provideNativeContentAdUnitId();

AdLoader.Builder targetedAdBuilder = bvAds.getTargetedAdLoader(getApplicationContext(), adUnitId);

Expand Down Expand Up @@ -108,7 +108,7 @@ public void bvOnAdFailedToLoad(int errorCode) {
// Add deviceId for emulator
// You can also add your own for a specific hardware device
publisherAdRequest.addTestDevice(PublisherAdRequest.DEVICE_ID_EMULATOR);
String testDeviceId = userConfiguration.provideTestDeviceId();
String testDeviceId = demoUserConfiguration.provideTestDeviceId();
if (testDeviceId != null && !testDeviceId.equals("REPLACE_ME")) {
publisherAdRequest.addTestDevice(testDeviceId);
}
Expand Down
Loading

0 comments on commit b0a08c3

Please sign in to comment.