From 26ac75f00203b3b0b6c4c27302c8130410928a9a Mon Sep 17 00:00:00 2001 From: Hannes Achleitner Date: Thu, 11 Jul 2024 16:38:39 +0200 Subject: [PATCH] Kotlin DemoActivity --- .../java/org/matomo/demo/DemoActivity.java | 136 ------------------ .../main/java/org/matomo/demo/DemoActivity.kt | 126 ++++++++++++++++ 2 files changed, 126 insertions(+), 136 deletions(-) delete mode 100644 exampleapp/src/main/java/org/matomo/demo/DemoActivity.java create mode 100644 exampleapp/src/main/java/org/matomo/demo/DemoActivity.kt diff --git a/exampleapp/src/main/java/org/matomo/demo/DemoActivity.java b/exampleapp/src/main/java/org/matomo/demo/DemoActivity.java deleted file mode 100644 index 903ca6d2..00000000 --- a/exampleapp/src/main/java/org/matomo/demo/DemoActivity.java +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Android SDK for Matomo - * - * @link https://github.com/matomo-org/matomo-android-sdk - * @license https://github.com/matomo-org/matomo-sdk-android/blob/master/LICENSE BSD-3 Clause - */ - -package org.matomo.demo; - -import android.content.Intent; -import android.os.Bundle; -import android.view.Menu; -import android.view.MenuItem; -import android.widget.EditText; - -import org.matomo.sdk.QueryParams; -import org.matomo.sdk.TrackMe; -import org.matomo.sdk.Tracker; -import org.matomo.sdk.extra.EcommerceItems; -import org.matomo.sdk.extra.MatomoApplication; -import org.matomo.sdk.extra.TrackHelper; - -import java.util.Arrays; -import java.util.List; - -import androidx.appcompat.app.AppCompatActivity; - - -public class DemoActivity extends AppCompatActivity { - int cartItems = 0; - private EcommerceItems items; - - private Tracker getTracker() { - return ((MatomoApplication) getApplication()).getTracker(); - } - - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_demo); - items = new EcommerceItems(); - - findViewById(R.id.trackMainScreenViewButton).setOnClickListener(v -> - TrackHelper.track(new TrackMe().set(QueryParams.SESSION_START, 1)) - .screen("/") - .title("Main screen") - .with(getTracker()) - ); - - findViewById(R.id.trackDispatchNow).setOnClickListener(v -> - getTracker().dispatch() - ); - - findViewById(R.id.trackCustomVarsButton).setOnClickListener(v -> - TrackHelper.track() - .screen("/custom_vars") - .title("Custom Vars") - .variable(1, "first", "var") - .variable(2, "second", "long value") - .with(getTracker()) - ); - - findViewById(R.id.raiseExceptionButton).setOnClickListener(v -> TrackHelper.track() - .exception(new Exception("OnPurposeException")) - .description("Crash button") - .fatal(false) - .with(getTracker()) - ); - - findViewById(R.id.trackGoalButton).setOnClickListener(v -> { - float revenue; - try { - revenue = Integer.parseInt(((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()); - }); - - findViewById(R.id.addEcommerceItemButton).setOnClickListener(v -> { - List skus = Arrays.asList("00001", "00002", "00003", "00004"); - List names = Arrays.asList("Silly Putty", "Fishing Rod", "Rubber Boots", "Cool Ranch Doritos"); - List categories = Arrays.asList("Toys & Games", "Hunting & Fishing", "Footwear", "Grocery"); - List 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++; - }); - - findViewById(R.id.trackEcommerceCartUpdateButton).setOnClickListener(v -> - TrackHelper.track() - .cartUpdate(8600) - .items(items) - .with(getTracker()) - ); - - findViewById(R.id.completeEcommerceOrderButton).setOnClickListener(v -> - TrackHelper.track() - .order(String.valueOf(10000 * Math.random()), 10000) - .subTotal(1000) - .tax(2000) - .shipping(3000) - .discount(500) - .items(items) - .with(getTracker()) - ); - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.demo, menu); - return true; - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - 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); - } - -} diff --git a/exampleapp/src/main/java/org/matomo/demo/DemoActivity.kt b/exampleapp/src/main/java/org/matomo/demo/DemoActivity.kt new file mode 100644 index 00000000..ae255e35 --- /dev/null +++ b/exampleapp/src/main/java/org/matomo/demo/DemoActivity.kt @@ -0,0 +1,126 @@ +/* + * Android SDK for Matomo + * + * @link https://github.com/matomo-org/matomo-android-sdk + * @license https://github.com/matomo-org/matomo-sdk-android/blob/master/LICENSE BSD-3 Clause + */ +package org.matomo.demo + +import android.content.Intent +import android.os.Bundle +import android.view.Menu +import android.view.MenuItem +import android.view.View +import android.widget.EditText +import androidx.appcompat.app.AppCompatActivity +import org.matomo.sdk.QueryParams +import org.matomo.sdk.TrackMe +import org.matomo.sdk.Tracker +import org.matomo.sdk.extra.EcommerceItems +import org.matomo.sdk.extra.MatomoApplication +import org.matomo.sdk.extra.TrackHelper + +class DemoActivity : AppCompatActivity() { + private var cartItems: Int = 0 + private var items: EcommerceItems? = null + + private val tracker: Tracker + get() = (application as MatomoApplication).tracker + + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_demo) + items = EcommerceItems() + + findViewById(R.id.trackMainScreenViewButton).setOnClickListener { v: View? -> + TrackHelper.track(TrackMe().set(QueryParams.SESSION_START, 1)) + .screen("/") + .title("Main screen") + .with(tracker) + } + + findViewById(R.id.trackDispatchNow).setOnClickListener { v: View? -> tracker.dispatch() } + + findViewById(R.id.trackCustomVarsButton).setOnClickListener { v: View? -> + TrackHelper.track() + .screen("/custom_vars") + .title("Custom Vars") + .variable(1, "first", "var") + .variable(2, "second", "long value") + .with(tracker) + } + + findViewById(R.id.raiseExceptionButton).setOnClickListener { v: View? -> + TrackHelper.track() + .exception(Exception("OnPurposeException")) + .description("Crash button") + .fatal(false) + .with(tracker) + } + + findViewById(R.id.trackGoalButton).setOnClickListener { v: View? -> + var revenue: Float + try { + revenue = (findViewById(R.id.goalTextEditView) as EditText).text.toString().toInt().toFloat() + } catch (e: Exception) { + TrackHelper.track().exception(e).description("wrong revenue").with(tracker) + revenue = 0f + } + TrackHelper.track().goal(1).revenue(revenue).with(tracker) + } + + findViewById(R.id.addEcommerceItemButton).setOnClickListener { v: View? -> + val skus: List = mutableListOf("00001", "00002", "00003", "00004") + val names: List = mutableListOf("Silly Putty", "Fishing Rod", "Rubber Boots", "Cool Ranch Doritos") + val categories: List = mutableListOf("Toys & Games", "Hunting & Fishing", "Footwear", "Grocery") + val prices: List = mutableListOf(449, 3495, 2450, 250) + + val index = cartItems % 4 + val quantity = (cartItems / 4) + 1 + + items!!.addItem( + EcommerceItems.Item(skus[index]) + .name(names[index]) + .category(categories[index]) + .price(prices[index]) + .quantity(quantity) + ) + cartItems++ + } + + findViewById(R.id.trackEcommerceCartUpdateButton).setOnClickListener { v: View? -> + TrackHelper.track() + .cartUpdate(8600) + .items(items) + .with(tracker) + } + + findViewById(R.id.completeEcommerceOrderButton).setOnClickListener { v: View? -> + TrackHelper.track() + .order((10000 * Math.random()).toString(), 10000) + .subTotal(1000) + .tax(2000) + .shipping(3000) + .discount(500) + .items(items) + .with(tracker) + } + } + + override fun onCreateOptionsMenu(menu: Menu): Boolean { + menuInflater.inflate(R.menu.demo, menu) + return true + } + + override fun onOptionsItemSelected(item: MenuItem): Boolean { + val id = item.itemId + if (id == R.id.action_settings) { + val intent = Intent(this, SettingsActivity::class.java) + intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT) + startActivity(intent) + return true + } + return super.onOptionsItemSelected(item) + } +}