/* * Copyright © 2016 TIBCO Software,Inc.All rights reserved. * http://community.jaspersoft.com/project/jaspermobile-android * * Unless you have purchased a commercial license agreement from TIBCO Jaspersoft, * the following license terms apply: * * This program is part of TIBCO Jaspersoft Mobile for Android. * * TIBCO Jaspersoft Mobile is free software:you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation,either version 3of the License,or * (at your option)any later version. * * TIBCO Jaspersoft Mobile is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY;without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with TIBCO Jaspersoft Mobile for Android.If not,see * <http://www.gnu.org/licenses/lgpl>. */ package com.jaspersoft.android.jaspermobile; import android.content.Context; import com.google.android.gms.analytics.GoogleAnalytics; import com.google.android.gms.analytics.HitBuilders; import com.google.android.gms.analytics.Tracker; import java.util.List; /** * @author Andrew Tivodar * @since 2.0 */ public class JasperAnalytics implements Analytics { private static final String SERVER_VERSION_PERMANENT_KEY = "&cd1"; private static final String SERVER_EDITION_PERMANENT_KEY = "&cd2"; private static final String THUMBNAILS_PERMANENT_KEY = "&cd5"; private Tracker mTracker; public JasperAnalytics(Context appContext) { GoogleAnalytics analytics = GoogleAnalytics.getInstance(appContext); mTracker = analytics.newTracker(appContext.getString(R.string.google_analytics_tracking_id)); mTracker.setSessionTimeout(900); } @Override public void setScreenName(String screenName) { mTracker.setScreenName(screenName); } @Override public void sendScreenView(String screenName, List<Dimension> dimensions) { setScreenName(screenName); HitBuilders.ScreenViewBuilder screenHitBuilder = new HitBuilders.ScreenViewBuilder(); if (dimensions != null) { for (Dimension dimension : dimensions) { screenHitBuilder.setCustomDimension(dimension.getKey(), dimension.getValue()); } } mTracker.send(screenHitBuilder.build()); } @Override public void sendEvent(String eventCategory, String eventAction, String eventLabel) { HitBuilders.EventBuilder eventHitBuilder = new HitBuilders.EventBuilder(); eventHitBuilder.setCategory(eventCategory); eventHitBuilder.setAction(eventAction); if (eventLabel != null) { eventHitBuilder.setLabel(eventLabel); } mTracker.send(eventHitBuilder.build()); } @Override public void sendUserChangedEvent() { mTracker.send(new HitBuilders.EventBuilder() .setNewSession() .setCategory(EventCategory.ACCOUNT.getValue()) .setAction(EventAction.CHANGED.getValue()) .build()); mTracker.set(THUMBNAILS_PERMANENT_KEY, null); } @Override public void setServerInfo(String serverVersion, String serverEdition) { mTracker.set(SERVER_VERSION_PERMANENT_KEY, serverVersion); mTracker.set(SERVER_EDITION_PERMANENT_KEY, serverEdition); } @Override public void setThumbnailsExist() { mTracker.set(THUMBNAILS_PERMANENT_KEY, "exist"); } }