示例#1
0
    void Start ()
    {
#if UNITY_IPHONE
        if (Application.platform == RuntimePlatform.IPhonePlayer)
        {
            string apiKey = apiKey_iPhone;
            if (flurryIsIpad() && apiKey_iPad != null)
            {
                apiKey = apiKey_iPad;
            }

            if (apiKey != null)
            {
                flurryAgent = new FlurryAgentIOS();
                flurryAgent.setCrashReporting(true);
                flurryAgent.onStartSession(apiKey);
            }
        }
#endif

#if UNITY_ANDROID
        if (Application.platform == RuntimePlatform.Android && apiKey_Android != null)
        {
            flurryAgent = new FlurryAgentAndroid();
            flurryAgent.setCrashReporting(true);
            flurryAgent.onStartSession(apiKey_Android);
        }
#endif
    }
 public static void setGender(FlurryAgent.Gender gender)
 {
     if (flurryAgent != null)
     {
         flurryAgent.setGender(gender);
     }
 }
 public static void AddOrigin(string originName, string originVersion, Dictionary <string, string> originParameters)
 {
     using (AndroidJavaObject obj2 = DictionaryToJavaHashMap(originParameters))
     {
         object[] args = new object[] { originName, originVersion, obj2 };
         FlurryAgent.CallStatic("addOrigin", args);
     }
 }
 public static void EndTimedEvent(string eventId, Dictionary <string, string> parameters)
 {
     using (AndroidJavaObject obj2 = DictionaryToJavaHashMap(parameters))
     {
         object[] args = new object[] { eventId, obj2 };
         FlurryAgent.CallStatic("endTimedEvent", args);
     }
 }
 public static EventRecordStatus LogEvent(string eventId, Dictionary <string, string> parameters, bool timed)
 {
     using (AndroidJavaObject obj2 = DictionaryToJavaHashMap(parameters))
     {
         object[] args = new object[] { eventId, obj2, timed };
         return(JavaObjectToEventRecordStatus(FlurryAgent.CallStatic <AndroidJavaObject>("logEvent", args)));
     }
 }
示例#6
0
        public override void LoadView()
        {
            base.LoadView();

            FlurryAgent.LogAllPageViewsForTarget(this);

            analyticsController = new AnalyticsViewController();
        }
    // Use this for initialization
    void Awake()
    {
        //Set Static flags
        ChartBoostActiveStaticFlag = ChartBoostActiveFlag;
        RevMobActiveStaticFlag     = RevMobActiveFlag;
        AdMobActiveStaticFlag      = AdMobActiveFlag;
        PlayHavenActiveStaticFlag  = PlayHavenActiveFlag;
        IAdsActiveStaticFlag       = IAdsActiveFlag;
        TapJoyActiveStaticFlag     = TapJoyActiveFlag;
        FlurryActiveStaticFlag     = FlurryActiveFlag;

        //Initialize ChartBoost
        if (ChartBoostActiveFlag)
        {
            ChartBoostAndroid.init(ChartBoostID, ChartBoostSIG, false);
            ChartBoostAndroid.onStart();
            ChartBoostAndroid.cacheInterstitial(null);
            ChartBoostAndroid.cacheMoreApps();
        }

        //Initialize RevMob
        if (RevMobActiveFlag)
        {
            REVMOB_APP_IDS.Add("Android", RevMobID);
            revMobSession = RevMob.Start(REVMOB_APP_IDS);
        }

        //Initialize Admob
        if (AdMobActiveFlag)
        {
            AdMobAndroid.init(AdMobID);
        }

        //Initialize Playhaven
        if (PlayHavenActiveFlag)
        {
            gameObject.SendMessage("OpenNotification");
        }

        //Initialize iAds
        if (IAdsActiveFlag)
        {
        }

        //Initialize TapJoy
        if (TapJoyActiveFlag)
        {
            TapjoyPluginAndroid.RequestTapjoyConnect(TapJoyID, TapJoySecretKey);
        }

        //Initialize Flurry
        if (FlurryActiveFlag)
        {
            flurrySession = new FlurryAgent();
            flurrySession.onStartSession(FlurryID);
        }
    }
示例#8
0
        public override void OnCreate()
        {
            base.OnCreate();

            FlurryAgent.SetLogEnabled(true);
            FlurryAgent.SetLogEvents(true);
            FlurryAgent.SetLogLevel(LogPriority.Verbose);
            FlurryAgent.Init(this, "36TWHT3RMTBTF2G46KGH");
        }
示例#9
0
        public override void FinishedLaunching(UIApplication application)
        {
            //note: iOS only allows one crash reporting tool per app; if using another, set to: NO
            FlurryAgent.SetCrashReportingEnabled(true);

            FlurryAgent.SetAppVersion("1.0.0.0");

            // Replace YOUR_API_KEY with the api key in the downloaded package
            FlurryAgent.StartSession("PQSZJRK4B5BW8Q7YQQXF");
        }
示例#10
0
 public static void OnStartSession()
 {
     using (AndroidJavaClass class2 = new AndroidJavaClass(s_UnityPlayerClassName))
     {
         using (AndroidJavaObject obj2 = class2.GetStatic <AndroidJavaObject>(s_UnityPlayerActivityName))
         {
             object[] args = new object[] { obj2 };
             FlurryAgent.CallStatic("onStartSession", args);
         }
     }
 }
示例#11
0
 public static void Init(string apiKey)
 {
     using (AndroidJavaClass class2 = new AndroidJavaClass(s_UnityPlayerClassName))
     {
         using (AndroidJavaObject obj2 = class2.GetStatic <AndroidJavaObject>(s_UnityPlayerActivityName))
         {
             object[] args = new object[] { obj2, apiKey };
             FlurryAgent.CallStatic("init", args);
         }
     }
 }
        protected override void OnCreate(Bundle bundle)
        {
            SetTheme(Settings.ThemeSetting == 0 ? Resource.Style.MyTheme : Resource.Style.MyThemeDark);

            base.OnCreate(bundle);

            FlurryAgent.OnPageView();
            FlurryAgent.LogEvent("AboutPage");

            PreferenceManager.SharedPreferencesName = Settings.PrefName;
            AddPreferencesFromResource(Resource.Xml.preferences);
        }
示例#13
0
        private void SetupFlurry()
        {
            bool enableCrashReporting = true;

#if DEBUG
            enableCrashReporting = false;
#endif

            FlurryAgent.SetDebugLogEnabled(true);
            FlurryAgent.SetEventLoggingEnabled(true);
            FlurryAgent.SetCrashReportingEnabled(enableCrashReporting);
            FlurryAgent.SetAppVersion(NSBundle.MainBundle
                                      .ObjectForInfoDictionary("CFBundleVersion")
                                      .ToString());
            FlurryAgent.StartSession("BT7TJ7N85XMH4YMMH6ZC");
        }
示例#14
0
        static Flurry()
        {
#if UNITY_ANDROID
            if (Application.platform == RuntimePlatform.Android)
            {
                flurryAgent = new FlurryAgentAndroid();
            }
#elif UNITY_IPHONE
            if (Application.platform == RuntimePlatform.IPhonePlayer)
            {
                flurryAgent = new FlurryAgentIOS();
            }
#else
            flurryAgent = null;
#endif
        }
示例#15
0
        //
        // This method is invoked when the application has loaded and is ready to run. In this
        // method you should instantiate the window, load the UI into it and then make the window
        // visible.
        //
        // You have 17 seconds to return from this method, or iOS will terminate your application.
        //
        public override bool FinishedLaunching(UIApplication app, NSDictionary options)
        {
            FlurryAgent.SetAppVersion("1.0.0.0");
            FlurryAgent.StartSession("PQSZJRK4B5BW8Q7YQQXF");

            // create a new window instance based on the screen size
            window             = new UIWindow(UIScreen.MainScreen.Bounds);
            rootViewController = new RootViewController();

            window.RootViewController = rootViewController;

            // make the window visible
            window.MakeKeyAndVisible();

            return(true);
        }
示例#16
0
        public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
        {
#if DEBUG
            // enable test ads
            FlurryAds.EnableTestAds(true);
#endif

            FlurryAgent.StartSession("PQSZJRK4B5BW8Q7YQQXF");

            FlurryAgent.SetDebugLogEnabled(true);
            FlurryAgent.SetLogLevel(FlurryLogLevel.All);

            Window.MakeKeyAndVisible();

            return(true);
        }
示例#17
0
        private void SetupFlurry()
        {
            Context context = ApplicationContext;
            bool    enableCrashReporting = true;

#if DEBUG
            enableCrashReporting = false;
#endif

            FlurryAgent.Init(ApplicationContext, "CGQSK9688VG9MFXMDRTS");
            FlurryAgent.SetLogEnabled(true);
            FlurryAgent.SetLogEvents(true);
            FlurryAgent.SetCaptureUncaughtExceptions(enableCrashReporting);
            FlurryAgent.SetVersionName(context.PackageManager
                                       .GetPackageInfo(context.PackageName, 0)
                                       .VersionName);
            FlurryAgent.OnStartSession(context);
        }
示例#18
0
        public override void ViewDidAppear(bool animated)
        {
            base.ViewDidAppear(animated);

            CLLocationManager locationManager = new CLLocationManager();

            locationManager.LocationsUpdated += (sender, e) => {
                CLLocation location = locationManager.Location;
                FlurryAgent.SetLocation(
                    location.Coordinate.Latitude,
                    location.Coordinate.Longitude,
                    (float)location.HorizontalAccuracy,
                    (float)location.VerticalAccuracy);
                locationManager.StopUpdatingLocation();

                Debug.WriteLine("Logged location.");
            };
            locationManager.RequestLocation();
        }
示例#19
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            VersionLabel.Text = FlurryAgent.FlurryAgentVersion;

            LogEventButton.TouchUpInside += delegate {
                if (string.IsNullOrEmpty(EventParameterText.Text))
                {
                    FlurryAgent.LogEvent("Button Click");
                }
                else
                {
                    FlurryAgent.LogEvent("Button Click", NSDictionary.FromObjectAndKey(
                                             new NSString(EventParameterText.Text),
                                             new NSString("Log Parameter")));
                }

                using (UIAlertView alert = new UIAlertView("Event Logged", "Your event was logged along with the specified parameter.", null, "OK", null))
                    alert.Show();
            };
        }
示例#20
0
    void Awake()
    {
        _instance = this;
#if UNITY_ANDROID && ENABLE_PLUGIN
        android = new AndroidJavaObject(ObjectClassPath);
        android.Call("init");

        logMapObject = new AndroidJavaObject("java.util.HashMap");
        logMethodID  = AndroidJNIHelper.GetMethodID(logMapObject.GetRawClass(), "put",
                                                    "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
        logClearID = AndroidJNIHelper.GetMethodID(logMapObject.GetRawClass(), "clear", "()V");
#endif
#if ENABLE_PLUGIN
        SetReportLocation(ReportLocation);
        SetLogEnabled(LogEnabled);
        SetCaptureUncouthExceptions(CaptureUncouthException);
        SetUseHttps(UseHttps);
        if (StartSessionOnAwake)
        {
            StartSession();
        }
#endif
    }
示例#21
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            FirebaseApp.InitializeApp(this);
            CrossCurrentActivity.Current.Init(Application);
            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource   = Resource.Layout.Toolbar;

            FlurryAgent.Init(Application.Context, "YPZRG9C7CMKFN78RD2BW");
            FlurryAgent.OnStartSession(Application.Context);
            FlurryAgent.SetLogEnabled(true);
            FlurryAgent.SetLogEvents(true);

            base.OnCreate(savedInstanceState);
            if (Intent.Extras != null)
            {
                foreach (var key in Intent.Extras.KeySet())
                {
                    var value = Intent.Extras.GetString(key);
                    Console.WriteLine(TAG, "Key: {0} Value: {1}", key, value);
                }
            }
            /*Log.Debug(TAG, "google app id: " + GetString(Resource.String.google_app_id));*/
            IsPlayServicesAvailable();

            CreateNotificationChannel();
            Firebase.FirebaseApp.InitializeApp(this);
            Rg.Plugins.Popup.Popup.Init(this, savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
            SfPopupLayoutRenderer.Init();
            LoadApplication(new App());

            //SMSBroadcastReceiver receiver = new SMSBroadcastReceiver();
            Intent intent = new Intent(this, typeof(SMSBroadcastReceiver));

            StartService(intent);
        }
        protected override void OnCreate(Bundle bundle)
        {
            SetTheme(Settings.ThemeSetting == 0 ? Resource.Style.MyTheme : Resource.Style.MyThemeDark);

            base.OnCreate(bundle);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.History);


            m_AllTasks                = new JavaList <ClearedTaskModel>();
            ActionBar                 = FindViewById <ActionBar.ActionBar>(Resource.Id.actionbar);
            ActionBar.TitleRaw        = Resource.String.completed_tasks;
            ActionBar.CurrentActivity = this;
            AddHomeAction();
            RegisterForContextMenu(ListView);


            var saveState = LastNonConfigurationInstance as SaveStateHistory;

            if (saveState != null)
            {
                m_AllTasks = new JavaList <ClearedTaskModel>(saveState.Tasks);
                RunOnUiThread(() => ListAdapter = new ClearedTaskAdapter(this, m_AllTasks));
                RunOnUiThread(() => ListView.SetSelection(saveState.LastPosition));
                ListView.Visibility = ViewStates.Visible;
            }
            else
            {
                FlurryAgent.OnPageView();
                FlurryAgent.LogEvent("HistoryActivity");
                ReloadData(0);
            }

            SetupMainActionBar();
        }
示例#23
0
        protected override void OnCreate(Bundle bundle)
        {
            SetTheme(Settings.ThemeSetting == 0 ? Resource.Style.MyTheme : Resource.Style.MyThemeDark);

            base.OnCreate(bundle);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);

            m_OriginalTheme  = Settings.ThemeSetting;
            m_OriginalAccent = Settings.ThemeAccent;

            Window.SetSoftInputMode(SoftInput.StateAlwaysHidden);

            m_AllTasks         = new JavaList <TaskModel>();
            m_EditTaskPosition = 0;

            m_AddButton        = FindViewById <ImageButton>(Resource.Id.button_add_task);
            m_MicrophoneButton = FindViewById <ImageButton>(Resource.Id.button_microphone);
            m_TaskEditText     = FindViewById <EditText>(Resource.Id.edit_text_new_task);


            ActionBar = FindViewById <ActionBar.ActionBar>(Resource.Id.actionbar);

            //ActionBar.BackgroundDrawable = Resources.GetDrawable(Resource.Drawable.actionbar_background_blue);
            //ActionBar.ItemBackgroundDrawable = Resources.GetDrawable(Resource.Drawable.actionbar_btn_blue);
            //ActionBar.SeparatorColor = Resources.GetColor(Resource.Color.actionbar_separatorcolor_blue);
            ActionBar.Title           = "Tasks";
            ActionBar.CurrentActivity = this;
            ActionBar.SetHomeLogo(Resource.Drawable.ic_launcher);
            RegisterForContextMenu(ListView);


            m_TaskEditText.SetOnEditorActionListener(this);


            ListView.ChoiceMode = ChoiceMode.Multiple;

            m_AddButton.Click += (sender, args) => AddNewTask();

            m_AddButton.SetImageResource(Settings.ThemeSetting == 0 ? Resource.Drawable.ic_action_add : Resource.Drawable.ic_action_add_dark);
            m_MicrophoneButton.SetImageResource(Settings.ThemeSetting == 0 ? Resource.Drawable.ic_action_microphone : Resource.Drawable.ic_action_microphone_dark);

            m_AddButton.SetBackgroundResource(Settings.ImageButtonDrawable);
            m_MicrophoneButton.SetBackgroundResource(Settings.ImageButtonDrawable);

            // remove speech if it doesn't exist
            var activities = PackageManager.QueryIntentActivities(new Intent(RecognizerIntent.ActionRecognizeSpeech), 0);

            if (activities.Count == 0)
            {
                m_MicrophoneButton.Visibility = ViewStates.Gone;
            }
            else
            {
                m_MicrophoneButton.Click += (sender, args) => StartVoiceRecognitionActivity();
            }

            m_TextToSpeech = new TextToSpeech(this, this);

            var saveState = LastNonConfigurationInstance as SaveState;

            if (saveState != null)
            {
                m_AllTasks                      = new JavaList <TaskModel>(saveState.Tasks);
                ListView.Visibility             = ViewStates.Visible;
                RunOnUiThread(() => ListAdapter = new TaskAdapter(this, m_AllTasks));
                RunOnUiThread(() => ListView.SetSelection(saveState.LastPosition));
                SetChecks();
                m_TaskEditText.Text = saveState.NewTaskText;
                m_Editing           = saveState.Editing;
                m_EditTaskPosition  = saveState.EditIndex;
            }
            else
            {
                FlurryAgent.OnPageView();
                FlurryAgent.LogEvent("MainActivity");
                ReloadData(0);
            }

            SetActionBar();
            try
            {
                if (Intent.GetBooleanExtra("CameFromWidget", false))
                {
                    FocusMainText();
                    return;
                }

                if (Intent.Action == TaskWidgetProvider.UpdateIntent)
                {
                    if (Intent.ActionSend != Intent.Action || Intent.Type == null)
                    {
                        return;
                    }
                }

                if ("text/plain" != Intent.Type)
                {
                    return;
                }

                var sharedText = Intent.GetStringExtra(Intent.ExtraText);
                if (!string.IsNullOrEmpty(sharedText))
                {
                    m_TaskEditText.Text = sharedText;
                    m_Editing           = false;
                    SetActionBar();
                }
            }
            finally
            {
                var version = Resources.GetString(Resource.String.VersionNumber);
                if (Settings.CurrentVersionNumber != version)
                {
                    Settings.CurrentVersionNumber = version;
                    PopUpHelpers.ShowOKPopup(this, Resource.String.update_title, Resource.String.update_message, (ok) => { });
                }
            }
        }
示例#24
0
        public override void PushViewController(UIViewController viewController, bool animated)
        {
            FlurryAgent.LogEvent(string.Format("Pushed ViewController with Name: {0}", viewController.GetType().Name));

            base.PushViewController(viewController, animated);
        }
示例#25
0
 public static int GetAgentVersion() =>
 FlurryAgent.CallStatic <int>("getAgentVersion", new object[0]);
示例#26
0
 public static string GetReleaseVersion() =>
 FlurryAgent.CallStatic <string>("getReleaseVersion", new object[0]);
示例#27
0
 public static string GetSessionId() =>
 FlurryAgent.CallStatic <string>("getSessionId", new object[0]);
 protected override void OnStop()
 {
     base.OnStop();
     FlurryAgent.OnEndSession(this);
 }
 protected override void OnStart()
 {
     base.OnStart();
     FlurryAgent.OnStartSession(this, "TNGK6T6P75ZRSBV82QVF");
 }
    // Use this for initialization
    void Awake()
    {
        //Set Static flags
        ChartBoostActiveStaticFlag = ChartBoostActiveFlag;
        RevMobActiveStaticFlag = RevMobActiveFlag;
        AdMobActiveStaticFlag = AdMobActiveFlag;
        PlayHavenActiveStaticFlag = PlayHavenActiveFlag;
        IAdsActiveStaticFlag = IAdsActiveFlag;
        TapJoyActiveStaticFlag = TapJoyActiveFlag;
        FlurryActiveStaticFlag = FlurryActiveFlag;

        //Initialize ChartBoost
        if(ChartBoostActiveFlag)
        {
            ChartBoostAndroid.init(ChartBoostID, ChartBoostSIG, false);
            ChartBoostAndroid.onStart();
            ChartBoostAndroid.cacheInterstitial(null);
            ChartBoostAndroid.cacheMoreApps();
        }

        //Initialize RevMob
        if(RevMobActiveFlag)
        {
            REVMOB_APP_IDS.Add("Android", RevMobID);
            revMobSession = RevMob.Start(REVMOB_APP_IDS);
        }

        //Initialize Admob
        if(AdMobActiveFlag)
        {
            AdMobAndroid.init(AdMobID);
        }

        //Initialize Playhaven
        if(PlayHavenActiveFlag){
            gameObject.SendMessage("OpenNotification");
        }

        //Initialize iAds
        if(IAdsActiveFlag)
        {

        }

        //Initialize TapJoy
        if(TapJoyActiveFlag)
        {
            TapjoyPluginAndroid.RequestTapjoyConnect(TapJoyID, TapJoySecretKey);
        }

        //Initialize Flurry
        if(FlurryActiveFlag)
        {
            flurrySession = new FlurryAgent();
            flurrySession.onStartSession(FlurryID);
        }
    }
示例#31
0
 public static bool IsSessionActive() =>
 FlurryAgent.CallStatic <bool>("isSessionActive", new object[0]);
示例#32
0
	void Awake()
	{
		_instance = this;
#if UNITY_ANDROID && ENABLE_PLUGIN
		android = new AndroidJavaObject(ObjectClassPath);
		android.Call("init");
		
		logMapObject = new AndroidJavaObject("java.util.HashMap");
		logMethodID = AndroidJNIHelper.GetMethodID(logMapObject.GetRawClass(), "put", 
            "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
		logClearID =  AndroidJNIHelper.GetMethodID(logMapObject.GetRawClass(), "clear", "()V");
#endif
#if ENABLE_PLUGIN
		SetReportLocation(ReportLocation);
		SetLogEnabled(LogEnabled);
		SetCaptureUncouthExceptions(CaptureUncouthException);
		SetUseHttps(UseHttps);
		if (StartSessionOnAwake) StartSession();
#endif
	}
示例#33
0
        public override void LoadView()
        {
            base.LoadView();

            var versionElement = new StringElement("Version", FlurryAgent.GetFlurryAgentVersion());

            var errorElement = new StringElement("Throw & Log Exception", () => {
                try {
                    throw new Exception("Thar be dragons!");
                } catch (Exception ex) {
                    FlurryAgent.LogError(ex.GetType().Name, ex.Message, new NSError(NSError.CocoaErrorDomain, 3584));

                    Debug.WriteLine("Logged exception.");
                }
            });

            var shortEventElement = new StringElement("Single Event", () => {
                FlurryAgent.LogEvent("SingleEvent");

                Debug.WriteLine("Logged event.");
            });

            var shortParameterEventElement = new StringElement("Single Event with Parameters", () => {
                FlurryAgent.LogEvent("SingleEventWithParameter", GetParameter());

                Debug.WriteLine("Logged event with parameter.");
            });

            var timedEventElement = new StringElement("Timed Event", () => {
                FlurryAgent.LogEvent("TimedEvent", true);
                var alert = new UIAlertView("Please Wait", "Doing a longer running operation...", null, null);
                alert.Show();
                Thread.Sleep(1000);
                FlurryAgent.EndTimedEvent("TimedEvent");
                alert.DismissWithClickedButtonIndex(-1, true);

                Debug.WriteLine("Logged timed event.");
            });

            var timedParameterEventElement = new StringElement("Timed Event with Parameters", () => {
                FlurryAgent.LogEvent("TimedEventWithParameter", GetParameter(), true);
                var alert = new UIAlertView("Please Wait", "Doing a longer running operation...", null, null);
                alert.Show();
                Thread.Sleep(1000);
                FlurryAgent.EndTimedEvent("TimedEventWithParameter");
                alert.DismissWithClickedButtonIndex(-1, true);

                Debug.WriteLine("Logged timed event with parameter.");
            });

            var idElement = new EntryElement("User ID: ", "enter user id", "");

            idElement.Changed += (sender, e) => {
                FlurryAgent.SetUserId(((EntryElement)sender).Value);

                Debug.WriteLine("Logged user id.");
            };

            var ageElement = new EntryElement("Age: ", "enter age", "");

            ageElement.Changed += (sender, e) => {
                int age;
                var element = (EntryElement)sender;
                if (int.TryParse(element.Value, out age))
                {
                    FlurryAgent.SetAge(age);

                    Debug.WriteLine("Logged age.");
                }
            };

            var genderElement = new RootElement("Gender: ", new RadioGroup(0))
            {
                new Section()
                {
                    new SelectableRadioElement("Unknown", (sender, e) => {
                        FlurryAgent.SetGender(Gender.Unknown);

                        Debug.WriteLine("Logged gender.");
                    }),
                    new SelectableRadioElement("Male", (sender, e) => {
                        FlurryAgent.SetGender(Gender.Male);

                        Debug.WriteLine("Logged gender.");
                    }),
                    new SelectableRadioElement("Female", (sender, e) => {
                        FlurryAgent.SetGender(Gender.Female);

                        Debug.WriteLine("Logged gender.");
                    })
                }
            };

            this.Root.Add(new Section[] {
                new Section("About Flurry Analytics")
                {
                    versionElement
                },
                new Section("Track Errors")
                {
                    errorElement
                },
                new Section("Track Events")
                {
                    shortEventElement,
                    shortParameterEventElement,
                    timedEventElement,
                    timedParameterEventElement
                },
                new Section("Track Demographics")
                {
                    idElement,
                    ageElement,
                    genderElement,
                }
            });
        }
        public override void OnCreate()
        {
            base.OnCreate();

            FlurryAgent.Init(this, "36TWHT3RMTBTF2G46KGH");
        }