/*
* Android SDK for Piwik
*
* @link https://github.com/piwik/piwik-android-sdk
* @license https://github.com/piwik/piwik-sdk-android/blob/master/LICENSE BSD-3 Clause
*/
package com.piwik.demo;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import org.piwik.sdk.Tracker;
import org.piwik.sdk.extra.EcommerceItems;
import org.piwik.sdk.extra.PiwikApplication;
import org.piwik.sdk.extra.TrackHelper;
import java.util.Arrays;
import java.util.List;
import butterknife.ButterKnife;
import butterknife.OnClick;
public class DemoActivity extends ActionBarActivity {
int cartItems = 0;
private EcommerceItems items;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_demo);
ButterKnife.bind(this);
items = new EcommerceItems();
}
private Tracker getTracker() {
return ((PiwikApplication) getApplication()).getTracker();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.demo, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
Intent intent = new Intent(this, SettingsActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
return true;
}
return super.onOptionsItemSelected(item);
}
@OnClick(R.id.trackMainScreenViewButton)
void onTrackMainScreenClicked(View view) {
TrackHelper.track().screen("/").title("Main screen").with(getTracker());
}
@OnClick(R.id.trackCustomVarsButton)
void onTrackCustomVarsClicked(View view) {
TrackHelper.track()
.screen("/custom_vars")
.title("Custom Vars")
.variable(1, "first", "var")
.variable(2, "second", "long value")
.with(getTracker());
}
@OnClick(R.id.raiseExceptionButton)
void onRaiseExceptionClicked(View view) {
TrackHelper.track().exception(new Exception("OnPurposeException")).description("Crash button").fatal(false).with(getTracker());
}
@OnClick(R.id.trackGoalButton)
void onTrackGoalClicked(View view) {
float revenue;
try {
revenue = Integer.valueOf(
((EditText) findViewById(R.id.goalTextEditView)).getText().toString()
);
} catch (Exception e) {
TrackHelper.track().exception(e).description("wrong revenue").with(getTracker());
revenue = 0;
}
TrackHelper.track().goal(1).revenue(revenue).with(getTracker());
}
@OnClick(R.id.addEcommerceItemButton)
void onAddEcommerceItemClicked(View view) {
List<String> skus = Arrays.asList("00001", "00002", "00003", "00004");
List<String> names = Arrays.asList("Silly Putty", "Fishing Rod", "Rubber Boots", "Cool Ranch Doritos");
List<String> categories = Arrays.asList("Toys & Games", "Hunting & Fishing", "Footwear", "Grocery");
List<Integer> prices = Arrays.asList(449, 3495, 2450, 250);
int index = cartItems % 4;
int quantity = (cartItems / 4) + 1;
items.addItem(new EcommerceItems.Item(skus.get(index))
.name(names.get(index))
.category(categories.get(index))
.price(prices.get(index))
.quantity(quantity));
cartItems++;
}
@OnClick(R.id.trackEcommerceCartUpdateButton)
void onTrackEcommerceCartUpdateClicked(View view) {
TrackHelper.track().cartUpdate(8600).items(items).with(getTracker());
}
@OnClick(R.id.completeEcommerceOrderButton)
void onCompleteEcommerceOrderClicked(View view) {
TrackHelper.track()
.order(String.valueOf(10000 * Math.random()), 10000)
.subTotal(1000)
.tax(2000)
.shipping(3000)
.discount(500)
.items(items)
.with(getTracker());
}
}