Ejemplo n.º 1
0
    void Request_OnSessionReadFinished(SA.Fitness.ReadSessionResult result)
    {
        Debug.Log("[Request_OnSessionReadFinished] result status: " + result.IsSucceeded);
        if (result.IsSucceeded)
        {
            Debug.Log("Sessions Count: " + result.Sessions.Count.ToString());
            int i = 1;
            foreach (SA.Fitness.Session session in result.Sessions)
            {
                Debug.Log("Session #" + i.ToString() +
                          "\n\t Id: " + session.Id +
                          "\n\t Name: " + session.Name +
                          "\n\t Start Time: " + session.StartTime.ToString() +
                          "\n\t End Time: " + session.EndTime.ToString() +
                          "\n\t Activity: " + session.Activity.Value +
                          "\n\t App Package Name: " + session.AppPackageName
                          );

                Debug.Log("Data Sets Count: " + session.DataSets.Count.ToString());
                int j = 1;
                foreach (SA.Fitness.DataSet dataSet in session.DataSets)
                {
                    Debug.Log("Data Set #" + j.ToString() +
                              "\n\t\t Data Type: " + dataSet.DataType.Value
                              );

                    Debug.Log("Data Points Count: " + dataSet.DataPoints.Count);
                    int k = 1;
                    foreach (SA.Fitness.DataPoint dp in dataSet.DataPoints)
                    {
                        Debug.Log("Data Point #" + k.ToString() +
                                  "\n\t\t\t Data Type: " + dp.DataType.Value +
                                  "\n\t\t\t Start Time: " + dp.StartTime.ToString() +
                                  "\n\t\t\t End Time: " + dp.EndTime.ToString()
                                  );

                        Debug.Log("Fields Count: " + dp.Fields.Count);
                        foreach (KeyValuePair <string, object> pair in dp.Fields)
                        {
                            Debug.Log("\t\t\t\t " + pair.Key + " : " + pair.Value.ToString());
                        }

                        k++;
                    }

                    j++;
                }

                i++;
            }
        }
    }
        public void DispatchResult(string[] bundle)
        {
            int resultCode           = Int32.Parse(bundle[1]);
            ReadSessionResult result = resultCode == 0 ? new ReadSessionResult(id) : new ReadSessionResult(id, resultCode, bundle [2]);

            if (result.IsSucceeded)
            {
                for (int i = 3; i < bundle.Length; i++)
                {
                    //Parse each Google Fit session here
                    string[] sessionData = bundle[i].Split(new string[] { Connection.SEPARATOR2 }, StringSplitOptions.None);
                    Session  session     = new Session();
                    session.StartTime      = long.Parse(sessionData [0]);
                    session.EndTime        = long.Parse(sessionData [1]);
                    session.Name           = sessionData [2];
                    session.Id             = sessionData [3];
                    session.Description    = sessionData [4];
                    session.Activity       = new Activity(sessionData [5]);
                    session.AppPackageName = sessionData [6];

                    if (sessionData.Length >= 8)
                    {
                        for (int j = 7; j < sessionData.Length; j++)
                        {
                            string[] data    = sessionData [j].Split(new string[] { Connection.SEPARATOR3 }, StringSplitOptions.None);
                            DataSet  dataSet = new DataSet(new DataType(data[0]));
                            if (data.Length > 1)
                            {
                                for (int k = 1; k < data.Length; k++)
                                {
                                    string[]      point = data[k].Split(new string[] { Connection.SEPARATOR4 }, StringSplitOptions.None);
                                    List <string> dp    = new List <string> ();
                                    dp.Add(point[0]);
                                    dp.Add(point[1]);
                                    dp.Add(point[2]);
                                    dp.Add(point[3]);

                                    DataPoint p = new DataPoint(new DataType(point [0]), dp.ToArray(), Connection.SEPARATOR5);
                                    dataSet.AddDataPoint(p);
                                }
                            }
                            session.AddDataSet(dataSet);
                        }
                    }
                    result.AddSession(session);
                }
            }

            OnSessionReadFinished(result);
        }