Android Open Source - woopra-android-sdk Woopra Visitor

From Project

Back to project page woopra-android-sdk.


The source code is released under:

Apache License

If you think the Android project woopra-android-sdk listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

 * Copyright 2014 Woopra, Inc.//from  w w w . j  a v  a2  s . c o m
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * See the License for the specific language governing permissions and
 * limitations under the License.

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;

 * @author Woopra on 1/26/2013
public class WoopraVisitor {

  private static final String APP_KEY = "Woopra_android";
  private static final String COOKIE_KEY = "Woopra_android_cookie";
  private static final String NOT_SET = "NOT_SET";
  private String cookie;
  private final Map<String, String> properties = new java.util.concurrent.ConcurrentHashMap<String, String>();

  private WoopraVisitor() {

  public static WoopraVisitor getVisitorByContext(Context context) {
    WoopraVisitor visitor = null;
    // Application wide preferences
    SharedPreferences preferences = PreferenceManager
    String cookieStore = preferences.getString(COOKIE_KEY, NOT_SET);
    // if application first start, create a new cookie
    if (NOT_SET.equals(cookieStore)) {
      visitor = getAnonymousVisitor();
      SharedPreferences.Editor editor = preferences.edit();
      editor.putString(COOKIE_KEY, visitor.getCookie());
      // else use the exist cookie
    } else {
      visitor = getVisitorByCookie(cookieStore);
    return visitor;

  public static WoopraVisitor getAnonymousVisitor() {
    WoopraVisitor visitor = new WoopraVisitor();
    return visitor;

  public static WoopraVisitor getVisitorByCookie(String cookie) {
    WoopraVisitor visitor = new WoopraVisitor();
    return visitor;

  public static WoopraVisitor getVisitorByEmail(String email) {
    WoopraVisitor visitor = new WoopraVisitor();
    visitor.setCookie(getUUID(APP_KEY, email));
    visitor.setProperty("email", email);
    return visitor;

  public static WoopraVisitor getVisitorByString(String key) {
    WoopraVisitor visitor = new WoopraVisitor();
    visitor.setCookie(getUUID(APP_KEY, key));
    visitor.setProperty("email", key);
    return visitor;

  private static String getUUID(String fristKey, String secondKey) {
    long mostSigBits = fristKey.hashCode();
    long leastSigBits = secondKey.hashCode();
    UUID generateUUID = new UUID(mostSigBits, leastSigBits);
    String result = generateUUID.toString();
    return result.replace("-", "");

  private static String getUUID() {
    String s = UUID.randomUUID().toString();
    return s.replace("-", "");

  public String getCookie() {
    return cookie;

  public void setCookie(String cookie) {
    this.cookie = cookie;

  public Map<String,String> getProperties() {
    return properties;

  public void setProperties(Map<String,String> newProperties) {

  public void setProperty(String key, String value) {
    properties.put(key, value);

Java Source Code List