Exemplo n.º 1
0
            public void OnDataChanged(DataEventBuffer dataEvents)
            {
                var events = FreezableUtils.FreezeIterable(dataEvents);

                dataEvents.Close();
                foreach (var ev in events)
                {
                    var dataEvent = ((Java.Lang.Object)ev).JavaCast <IDataEvent> ();
                    if (dataEvent.Type != DataEvent.TypeChanged)
                    {
                        continue;
                    }

                    var dataItem = dataEvent.DataItem;
                    if (!dataItem.Uri.Path.Equals(DigitalWatchFaceUtil.PathWithFeature))
                    {
                        continue;
                    }

                    var dataMapItem = DataMapItem.FromDataItem(dataItem);
                    var config      = dataMapItem.DataMap;
                    if (Log.IsLoggable(Tag, LogPriority.Debug))
                    {
                        Log.Debug(Tag, "Config DataItem updated: " + config);
                    }
                    UpdateUiForConfigDataMap(config);
                }
            }
Exemplo n.º 2
0
        public override void OnDataChanged(DataEventBuffer dataEvents)
        {
            var dataEvent = Enumerable.Range(0, dataEvents.Count)
                            .Select(i => dataEvents.Get(i).JavaCast <IDataEvent>())
                            .FirstOrDefault(x => x.Type == DataEvent.TypeChanged && x.DataItem.Uri.Path.Equals(syncPath));

            if (dataEvent == null)
            {
                return;
            }

            //get data from wearable
            var dataMapItem = DataMapItem.FromDataItem(dataEvent.DataItem);
            var map         = dataMapItem.DataMap;
            int heartRate   = dataMapItem.DataMap.GetInt("heartratedata");

            System.Diagnostics.Debug.WriteLine("luku: " + heartRate);

            //send data to MainActivity
            Intent intent = new Intent();

            intent.SetAction(Intent.ActionSend);
            intent.PutExtra("HeartRateFromWear", heartRate);
            LocalBroadcastManager.GetInstance(this).SendBroadcast(intent);
        }
Exemplo n.º 3
0
        protected override void OnHandleIntent(Intent intent)
        {
            google_api_client.BlockingConnect(TIME_OUT_MS, TimeUnit.Milliseconds);
            Android.Net.Uri dataItemUri = intent.Data;
            if (!google_api_client.IsConnected)
            {
                Log.Error(TAG, "Failed to update data item " + dataItemUri +
                          " because client is disconnected from Google Play Services");
                return;
            }
            var dataItemResult = WearableClass.DataApi.GetDataItem(
                google_api_client, dataItemUri).Await().JavaCast <IDataApiDataItemResult> ();

            var putDataMapRequest = PutDataMapRequest.CreateFromDataMapItem(
                DataMapItem.FromDataItem(dataItemResult.DataItem));
            var dataMap = putDataMapRequest.DataMap;

            //update quiz status variables
            int  questionIndex       = intent.GetIntExtra(EXTRA_QUESTION_INDEX, -1);
            bool chosenAnswerCorrect = intent.GetBooleanExtra(EXTRA_QUESTION_CORRECT, false);

            dataMap.PutInt(Constants.QUESTION_INDEX, questionIndex);
            dataMap.PutBoolean(Constants.CHOSEN_ANSWER_CORRECT, chosenAnswerCorrect);
            dataMap.PutBoolean(Constants.QUESTION_WAS_ANSWERED, true);
            PutDataRequest request = putDataMapRequest.AsPutDataRequest();

            WearableClass.DataApi.PutDataItem(google_api_client, request).Await();

            //remove this question notification
            ((NotificationManager)GetSystemService(NotificationService)).Cancel(questionIndex);
            google_api_client.Disconnect();
        }
        public void OnDataChanged(DataEventBuffer dataEvents)
        {
            var events = FreezableUtils.FreezeIterable(dataEvents);

            dataEvents.Close();
            RunOnUiThread(() => {
                foreach (var ev in events)
                {
                    var e = ((Java.Lang.Object)ev).JavaCast <IDataEvent> ();
                    if (e.Type == DataEvent.TypeChanged)
                    {
                        var dataMap             = DataMapItem.FromDataItem(e.DataItem).DataMap;
                        var questionWasAnswered = dataMap.GetBoolean(Constants.QUESTION_WAS_ANSWERED);
                        var questionWasDeleted  = dataMap.GetBoolean(Constants.QUESTION_WAS_DELETED);
                        if (questionWasAnswered)
                        {
                            int questionIndex    = dataMap.GetInt(Constants.QUESTION_INDEX);
                            bool questionCorrect = dataMap.GetBoolean(Constants.CHOSEN_ANSWER_CORRECT);
                            UpdateQuestionStatus(questionIndex, questionCorrect);
                            AskNextQuestionIfExists();
                        }
                        else if (questionWasDeleted)
                        {
                            int questionIndex = dataMap.GetInt(Constants.QUESTION_INDEX);
                            MarkQuestionLeftBlank(questionIndex);
                            AskNextQuestionIfExists();
                        }
                    }
                }
            });
        }
 public void OnResult(IDataApiDataItemResult dataItemResult)
 {
     if (dataItemResult.Status.IsSuccess)
     {
         var request = PutDataMapRequest.CreateFromDataMapItem(
             DataMapItem.FromDataItem(dataItemResult.DataItem));
         var dataMap = request.DataMap;
         dataMap.PutBoolean(Constants.QUESTION_WAS_ANSWERED, false);
         dataMap.PutBoolean(Constants.QUESTION_WAS_DELETED, false);
         if (!act.has_question_been_asked && dataMap.GetInt(Constants.QUESTION_INDEX) == 0)
         {
             //ask the first question now.
             WearableClass.DataApi.PutDataItem(act.google_api_client, request.AsPutDataRequest());
             act.SetHasQuestionBeenAsked(true);
         }
         else
         {
             //enqueue future questions
             act.future_questions.Add(new Question(dataMap.GetString(Constants.QUESTION),
                                                   dataMap.GetInt(Constants.QUESTION_INDEX), dataMap.GetStringArray(Constants.ANSWERS),
                                                   dataMap.GetInt(Constants.CORRECT_ANSWER_INDEX)));
         }
     }
     else
     {
         Log.Error(TAG, "Failed to reset data item " + dataItemResult.DataItem.Uri);
     }
 }
Exemplo n.º 6
0
 public override void OnDataChanged(DataEventBuffer dataEvents)
 {
     // Only handle data changes if
     // DataSync is on,
     // App hasn't been setup yet,
     // Or if we are setup but want to change location and sync data (SetupSyncActivity)
     if (Settings.DataSync != WearableDataSync.Off || AcceptDataUpdates)
     {
         foreach (IDataEvent @event in dataEvents)
         {
             if (@event.Type == DataEvent.TypeChanged)
             {
                 IDataItem item = @event.DataItem;
                 if (item.Uri.Path.CompareTo(WearableHelper.SettingsPath) == 0)
                 {
                     DataMap dataMap = DataMapItem.FromDataItem(item).DataMap;
                     UpdateSettings(dataMap);
                 }
                 else if (item.Uri.Path.CompareTo(WearableHelper.LocationPath) == 0)
                 {
                     DataMap dataMap = DataMapItem.FromDataItem(item).DataMap;
                     UpdateLocation(dataMap);
                 }
                 else if (item.Uri.Path.CompareTo(WearableHelper.WeatherPath) == 0)
                 {
                     DataMap dataMap = DataMapItem.FromDataItem(item).DataMap;
                     Task.Run(async() => await UpdateWeather(dataMap));
                 }
             }
         }
     }
 }
Exemplo n.º 7
0
        public async static Task <bool> ReadStepCountStatus(GoogleApiClient googleApiClient)
        {
            var nodeApiLocalNode = await WearableClass.NodeApi.GetLocalNodeAsync(googleApiClient);

            if (nodeApiLocalNode == null || !nodeApiLocalNode.Status.IsSuccess || nodeApiLocalNode.Node == null)
            {
                // error
            }
            else
            {
                var localNode = nodeApiLocalNode.Node.Id;
                var uri       = new Android.Net.Uri.Builder()
                                .Scheme("wear")
                                .Path(PathWithFeature)
                                .Authority(localNode)
                                .Build();
                var dataItemResult = await WearableClass.DataApi.GetDataItemAsync(googleApiClient, uri) as IDataApiDataItemResult;

                if (dataItemResult == null || !dataItemResult.Status.IsSuccess || dataItemResult.DataItem == null)
                {
                    // not found
                }
                else
                {
                    var dataMapItem = DataMapItem.FromDataItem(dataItemResult.DataItem);
                    var stepCountOn = dataMapItem.DataMap.GetBoolean("stepcount");
                    return(stepCountOn);
                }
            }
            return(true);            // default is "ON"
        }
Exemplo n.º 8
0
 public override void OnDataChanged(DataEventBuffer dataEvents)
 {
     for (int i = 0; i < dataEvents.Count; i++)
     {
         var dataEvent = dataEvents.Get(i).JavaCast <IDataEvent> ();
         if (dataEvent.Type == DataEvent.TypeChanged)
         {
             DataMap dataMap = DataMapItem.FromDataItem(dataEvent.DataItem).DataMap;
             var     content = dataMap.GetString(Constants.KeyContent);
             var     title   = dataMap.GetString(Constants.KeyTitle);
             if (Constants.WatchOnlyPath.Equals(dataEvent.DataItem.Uri.Path))
             {
                 BuildWearableOnlyNotification(title, content, false);
             }
             else if (Constants.BothPath.Equals(dataEvent.DataItem.Uri.Path))
             {
                 BuildWearableOnlyNotification(title, content, true);
             }
         }
         else if (dataEvent.Type == DataEvent.TypeDeleted)
         {
             if (Log.IsLoggable(Tag, LogPriority.Debug))
             {
                 Log.Debug(Tag, "DataItem deleted: " + dataEvent.DataItem.Uri.Path);
             }
             if (Constants.BothPath.Equals(dataEvent.DataItem.Uri.Path))
             {
                 ((NotificationManager)GetSystemService(NotificationService)).Cancel(Constants.BothId);
             }
         }
     }
 }
Exemplo n.º 9
0
        public override void OnDataChanged(DataEventBuffer dataEvents)
        {
            var setting = Settings.LoadSettings();

            foreach (var dataEvent in dataEvents.ToEnumerable <IDataEvent>().Where(d => d.Type == DataEvent.TypeChanged))
            {
                var dataMapItem = DataMapItem.FromDataItem(dataEvent.DataItem);
                var map         = dataMapItem.DataMap;

                switch (dataMapItem.Uri.Path)
                {
                case DataItemInfo.PathMode:
                    setting.Mode = (Settings.EMode)map.GetInt("0");
                    break;

                case DataItemInfo.PathLeftCamera:
                    setting.LeftCamValue = map.GetInt("128");
                    break;

                case DataItemInfo.PathRightCamera:
                    setting.RightCamValue = map.GetInt("128");
                    break;
                }
            }
        }
Exemplo n.º 10
0
            public static DataMapItem fromJson(dynamic array)
            {
                var newItem = new DataMapItem();

                // name
                newItem.ImageName = array["image_name"];
                newItem.Name      = array["name"];

                return(newItem);
            }
Exemplo n.º 11
0
        public override void OnDataChanged(DataEventBuffer dataEvents)
        {
            base.OnDataChanged(dataEvents);
            foreach (var ev in dataEvents)
            {
                var e = ((Java.Lang.Object)ev).JavaCast <IDataEvent>();
                if (e.Type == DataEvent.TypeChanged)
                {
                    String path = e.DataItem.Uri.Path;
                    if (path.StartsWith(StylistConstants.StatusPath + StylistConstants.AnswerPath, StringComparison.CurrentCulture))
                    {
                        DataMapItem dataMapItem   = DataMapItem.FromDataItem(e.DataItem);
                        var         statusDataMap = dataMapItem.DataMap.GetDataMap(StylistConstants.StatusKey);

                        bool loggedIn = statusDataMap.GetBoolean(StylistConstants.LoggedInKey);
                        bool isPro    = statusDataMap.GetBoolean(StylistConstants.IsProKey);

                        if (StylistConstants.STRICT_CHECK)
                        {
                            if (!loggedIn)
                            {
                                var notLoggedInIntent = new Intent(Application.Context, typeof(NotAllowedActivity));
                                StartActivity(notLoggedInIntent);
                                Finish();
                                return;
                            }
                            else if (!isPro)
                            {
                                var NotProIntent = new Intent(Application.Context, typeof(NotAllowedActivity));
                                StartActivity(NotProIntent);
                                Finish();
                                return;
                            }
                        }

                        Intent intent = new Intent(Application.Context, typeof(WearListActivity));
                        StartActivity(intent);
                        Finish();
                    }
                    else
                    {
                        Log.Info(tag, "Unrecognized path: " + path);
                    }
                }
                else if (e.Type == DataEvent.TypeDeleted)
                {
                    Log.Info("Unknown data event type", "Type = " + e.Type);
                }
                else
                {
                    Log.Info("Unknown data event type", "Type = " + e.Type);
                }
            }
        }
Exemplo n.º 12
0
 // Implementing IDataApiDataListener interface
 // On data changed we want invoke event
 public void OnDataChanged(DataEventBuffer p0)
 {
     Log.Info("my_log", "Communicator: Data changed (" + p0.Count + " data events)");
     for (var i = 0; i < p0.Count; i++)
     {
         var dataEvent = p0.Get(i).JavaCast <IDataEvent>();
         if (dataEvent.Type == DataEvent.TypeChanged && dataEvent.DataItem.Uri.Path == path)
         {
             DataReceived(DataMapItem.FromDataItem(dataEvent.DataItem).DataMap);
         }
     }
 }
Exemplo n.º 13
0
 public void OnDataChanged(DataEventBuffer p0)
 {
     Console.WriteLine(string.Format("Communicator: Data changed ({0} data events)", p0.Count));
     for (var i = 0; i < p0.Count; i++)
     {
         var dataEvent = p0.Get(i).JavaCast <IDataEvent>();
         if (dataEvent.Type == DataEvent.TypeChanged && dataEvent.DataItem.Uri.Path == path)
         {
             DataReceived(DataMapItem.FromDataItem(dataEvent.DataItem).DataMap);
         }
     }
 }
 public void OnDataChanged(DataEventBuffer dataEvents)
 {
     Log.Debug(Tag, "On Data Changed");
     foreach (var dataEvent in dataEvents)
     {
         var dataItem = dataEvent.DataItem;
         if (dataItem.Uri.Path == "/xfit_watchface")
         {
             var dataMap = DataMapItem.FromDataItem(dataItem).DataMap;
             stepCountOn = dataMap.GetBoolean("stepcount");
             UpdateUI();
         }
     }
 }
 public void OnDataChanged(DataEventBuffer dataEvents)
 {
     Log.Debug(Tag, "On Data Changed");
     foreach (var dataEvent in dataEvents)
     {
         var dataItem = dataEvent.DataItem;
         if (dataItem.Uri.Path == "/xfit_watchface")
         {
             var dataMap = DataMapItem.FromDataItem(dataItem).DataMap;
             displayStepCount = dataMap.GetBoolean("stepcount");
             Invalidate();                         // force redraw in case we're in ambient mode
         }
     }
 }
Exemplo n.º 16
0
        public void OnResult(Java.Lang.Object result)
        {
            var dataItemResult = result.JavaCast <IDataApiDataItemResult> ();

            if (dataItemResult.Status.IsSuccess && dataItemResult.DataItem != null)
            {
                var configDataItem = dataItemResult.DataItem;
                var dataMapItem    = DataMapItem.FromDataItem(configDataItem);
                SetupAllPickers(dataMapItem.DataMap);
            }
            else
            {
                SetupAllPickers(null);
            }
        }
Exemplo n.º 17
0
        public void OnDataChanged(DataEventBuffer dataEvents)
        {
            var dataEvent = Enumerable.Range(0, dataEvents.Count)
                            .Select(i => dataEvents.Get(i).JavaCast <IDataEvent> ())
                            .FirstOrDefault(de => de.Type == DataEvent.TypeChanged && de.DataItem.Uri.Path == SearchStationPath + "/Answer");

            if (dataEvent == null)
            {
                return;
            }
            var dataMapItem = DataMapItem.FromDataItem(dataEvent.DataItem);
            var map         = dataMapItem.DataMap;
            var data        = map.GetDataMapArrayList("Stations");

            ProcessRawStationData(data);
        }
Exemplo n.º 18
0
        public void OnDataChanged(DataEventBuffer dataEvents)
        {
            var dataEvent = Enumerable.Range(0, dataEvents.Count)
                            .Select(i => dataEvents.Get(i).JavaCast <IDataEvent> ())
                            .FirstOrDefault(de => de.Type == DataEvent.TypeChanged && de.DataItem.Uri.Path == SearchStationPath + "/Answer");

            if (dataEvent == null)
            {
                return;
            }
            var dataMapItem = DataMapItem.FromDataItem(dataEvent.DataItem);
            var map         = dataMapItem.DataMap;

            var stations = new List <SimpleStation> ();
            var data     = map.GetDataMapArrayList("Stations");

            foreach (var d in data)
            {
                stations.Add(new SimpleStation {
                    Id         = d.GetInt("Id", 0),
                    Primary    = d.GetString("Primary", "<no name>"),
                    Secondary  = d.GetString("Secondary", "<no name>"),
                    Background = GetBitmapForAsset(d.GetAsset("Background")),
                    Bikes      = d.GetInt("Bikes", 0),
                    Racks      = d.GetInt("Racks", 0),
                    Distance   = d.GetDouble("Distance", 0),
                    Lat        = d.GetDouble("Lat", 0),
                    Lon        = d.GetDouble("Lon", 0),
                    IsFavorite = d.GetBoolean("IsFavorite", false),
                });
            }

            if (stations.Any())
            {
                handler.Post(() => {
                    adapter = new StationGridAdapter(FragmentManager,
                                                     stations,
                                                     this);
                    pager.Adapter            = adapter;
                    pager.OffscreenPageCount = 5;
                    loading.Visibility       = ViewStates.Invisible;
                    pager.Visibility         = ViewStates.Visible;
                    countSwitch.Visibility   = ViewStates.Visible;
                    dotsIndicator.Visibility = ViewStates.Visible;
                });
            }
        }
Exemplo n.º 19
0
        public void OnDataChanged(DataEventBuffer dataEvents)
        {
            var dataEvent = Enumerable.Range(0, dataEvents.Count)
                            .Select(i => dataEvents.Get(i).JavaCast <IDataEvent>())
                            .FirstOrDefault(x => x.Type == DataEvent.TypeChanged && x.DataItem.Uri.Path.Equals(SYNC_PATH));

            if (dataEvent == null)
            {
                return;
            }

            //get data from watch
            var dataMapItem = DataMapItem.FromDataItem(dataEvent.DataItem);
            var map         = dataMapItem.DataMap;

            tapCount           = int.Parse(dataMapItem.DataMap.GetString("TapCounter"));
            lblTapCounter.Text = tapCount.ToString();
        }
Exemplo n.º 20
0
        public async void OnDataChanged(DataEventBuffer dataEvents)
        {
            DataLayerListenerService.LOGD(Tag, "OnDatachanged() : " + dataEvents);

            IList events = FreezableUtils.FreezeIterable(dataEvents);

            dataEvents.Release();
            foreach (var ev in events)
            {
                var e = ((Java.Lang.Object)ev).JavaCast <IDataEvent> ();
                if (e.Type == DataEvent.TypeChanged)
                {
                    String path = e.DataItem.Uri.Path;
                    if (DataLayerListenerService.ImagePath.Equals(path))
                    {
                        DataMapItem dataMapItem = DataMapItem.FromDataItem(e.DataItem);
                        Asset       photo       = dataMapItem.DataMap.GetAsset(DataLayerListenerService.ImageKey);
                        Bitmap      bitmap      = await LoadBitmapFromAsset(googleApiClient, photo);

                        handler.Post(() => {
                            DataLayerListenerService.LOGD(Tag, "Setting background image..");
                            layout.SetBackgroundDrawable(new BitmapDrawable(Resources, bitmap));
                        });
                    }
                    else if (DataLayerListenerService.CountPath.Equals(path))
                    {
                        DataLayerListenerService.LOGD(Tag, "Data Chaged for CountPath");
                        GenerateEvent("DataItem Changed", e.DataItem.ToString());
                    }
                    else
                    {
                        DataLayerListenerService.LOGD(Tag, "Unrecognized path: " + path);
                    }
                }
                else if (e.Type == DataEvent.TypeDeleted)
                {
                    GenerateEvent("DataItem Changed", e.DataItem.ToString());
                }
                else
                {
                    DataLayerListenerService.LOGD("Unknown data event type", "Type = " + e.Type);
                }
            }
        }
        public static void OverwriteKeysInConfigDataMap(IGoogleApiClient googleApiClient, DataMap configKeysToOverwrite)
        {
            FetchConfigDataMap(googleApiClient,
                               new DataItemResultCallback(dataItemResult => {
                var overwrittenConfig = new DataMap();

                if (dataItemResult.DataItem != null)
                {
                    var dataItem      = dataItemResult.DataItem;
                    var dataMapItem   = DataMapItem.FromDataItem(dataItem);
                    var currentConfig = dataMapItem.DataMap;
                    overwrittenConfig.PutAll(currentConfig);
                }

                overwrittenConfig.PutAll(configKeysToOverwrite);
                DigitalWatchFaceUtil.PutConfigDataItem(googleApiClient, overwrittenConfig);
            })
                               );
        }
Exemplo n.º 22
0
            void UpdateConfigDataItemAndUiOnStartup()
            {
                DigitalWatchFaceUtil.FetchConfigDataMap(googleApiClient,
                                                        new DigitalWatchFaceUtil.DataItemResultCallback(dataItemResult => {
                    if (dataItemResult.DataItem != null)
                    {
                        var dataItem = dataItemResult.DataItem;
                        if (dataItem != null)
                        {
                            var dataMapItem   = DataMapItem.FromDataItem(dataItem);
                            var startupConfig = dataMapItem.DataMap;

                            SetDefaultValuesForMissingKeys(startupConfig);
                            DigitalWatchFaceUtil.PutConfigDataItem(googleApiClient, startupConfig);
                            UpdateUiForConfigDataMap(startupConfig);
                        }
                    }
                })
                                                        );
            }
Exemplo n.º 23
0
        /// <summary>
        /// Receives data from handheld; this isn't really used, but is handy for connection tests and such
        /// </summary>
        /// <param name="dataEvents"></param>
        public void OnDataChanged(DataEventBuffer dataEvents)
        {
            debugLog("Data changed");
            dataStatusHandler.updateStatus("Data changed");
            var dataEvent = Enumerable.Range(0, dataEvents.Count)
                            .Select(i => JavaObjectExtensions.JavaCast <IDataEvent>(dataEvents.Get(i)))
                            .FirstOrDefault(x => x.Type == DataEvent.TypeChanged && x.DataItem.Uri.Path.Equals(TestDataPath));

            if (dataEvent == null)
            {
                return;
            }
            else
            {
                var    dataMapItem = DataMapItem.FromDataItem(dataEvent.DataItem);
                var    map         = dataMapItem.DataMap;
                string message     = dataMapItem.DataMap.GetString("Message");
                debugLog("Test data actually received! message: " + message);
            }
        }
Exemplo n.º 24
0
        public override void OnDataChanged(DataEventBuffer dataEvents)
        {
            var dataEvent = Enumerable.Range(0, dataEvents.Count)
                            .Select(i => JavaObjectExtensions.JavaCast <IDataEvent>(dataEvents.Get(i)))
                            .FirstOrDefault(x => x.Type == DataEvent.TypeChanged && x.DataItem.Uri.Path.Equals(MessagePath));

            if (dataEvent == null)
            {
                return;
            }

            //get data from wearable
            var dataMapItem = DataMapItem.FromDataItem(dataEvent.DataItem);
            var message     = dataMapItem.DataMap.GetString("Message");

            var intent = new Intent();

            intent.SetAction(Intent.ActionSend);
            intent.PutExtra("WearMessage", message);
            LocalBroadcastManager.GetInstance(this).SendBroadcast(intent);
        }
Exemplo n.º 25
0
        private void OnDataChanged(IDataItem dataItem)
        {
            var map = DataMapItem.FromDataItem(dataItem).DataMap;

            if (map.ContainsKey(Common.TimeEntryListKey))
            {
                var list = map.GetDataMapArrayList(Common.TimeEntryListKey);

                if (list.Count == 0)
                {
                    return;
                }

                timeEntries.Clear();
                foreach (var mapItem in list)
                {
                    var en = new SimpleTimeEntryData(mapItem);
                    timeEntries.Add(en);
                }
                adapter.Timer.TimerEnabled = true;
            }
        }
        public void OnDataChanged(DataEventBuffer dataEvents)
        {
            var dataEvent = Enumerable.Range(0, dataEvents.Count)
                            .Select(i => dataEvents.Get(i).JavaCast <IDataEvent>())
                            .FirstOrDefault(de => de.Type == DataEvent.TypeChanged && de.DataItem.Uri.Path == TweetsPath + "/Answer");

            if (dataEvent == null)
            {
                return;
            }
            var dataMapItem = DataMapItem.FromDataItem(dataEvent.DataItem);
            var map         = dataMapItem.DataMap;

            var tweets = new List <Tweet>();
            var data   = map.GetDataMapArrayList("Tweets");

            foreach (var d in data)
            {
                tweets.Add(new Tweet
                {
                    ScreenName = d.GetString("ScreenName", "<no name>"),
                    Text       = d.GetString("Text", "<no name>"),
                    CreatedAt  = new DateTime(d.GetLong("CreatedAt", DateTime.Now.Ticks))
                });
            }

            if (tweets.Any())
            {
                handler.Post(() =>
                {
                    var adapter = new TweetAdapter(FragmentManager,
                                                   tweets);
                    viewPager.Adapter            = adapter;
                    viewPager.OffscreenPageCount = 5;
                    progress.Visibility          = ViewStates.Gone;
                    viewPager.Visibility         = ViewStates.Visible;
                });
            }
        }
Exemplo n.º 27
0
        protected override void OnHandleIntent(Intent intent)
        {
            google_api_client.BlockingConnect(Constants.CONNECT_TIMEOUT_MS, TimeUnit.Milliseconds);
            Android.Net.Uri dataItemUri = intent.Data;
            if (!google_api_client.IsConnected)
            {
                Log.Error(TAG, "Failed to update data item " + dataItemUri
                          + " because client is disconnected from Google Play Services");
                return;
            }
            var dataItemResult = WearableClass.DataApi.GetDataItem(
                google_api_client, dataItemUri).Await().JavaCast <IDataApiDataItemResult>();
            var putDataMapRequest = PutDataMapRequest
                                    .CreateFromDataMapItem(DataMapItem.FromDataItem(dataItemResult.DataItem));
            var dataMap = putDataMapRequest.DataMap;

            dataMap.PutBoolean(Constants.QUESTION_WAS_DELETED, true);
            var request = putDataMapRequest.AsPutDataRequest();

            WearableClass.DataApi.PutDataItem(google_api_client, request).Await();
            google_api_client.Disconnect();
        }
Exemplo n.º 28
0
            public static AngiographyItem fromJson(dynamic array, String dataDir)
            {
                var newItem = new AngiographyItem();

                // name
                newItem.ImageName = array["image_name"];
                newItem.Name      = array["name"];
                // upper layer
                newItem.UpperLayer  = MeasurementData.Ins.findBScanLayerByName(array["upper_layer"].Value);
                newItem.UpperOffset = array["upper_offset"];
                // lower layer
                newItem.LowerLayer  = MeasurementData.Ins.findBScanLayerByName(array["lower_layer"].Value);
                newItem.LowerOffset = array["lower_offset"];

                // data map list
                var arrDataMap = array["data_map_list"];
                List <DataMapItem> dataMapList = new List <DataMapItem>();

                foreach (var item in arrDataMap)
                {
                    var dataMapItem = DataMapItem.fromJson(item);
                    dataMapList.Add(dataMapItem);
                }
                newItem.DataMapList.Clear();
                newItem.DataMapList.AddRange(dataMapList);

                // additional data map
                // - depth coded map
                DataMapItem depthCodedMap = new DataMapItem();

                depthCodedMap.Name      = "Depth coded map";
                depthCodedMap.ImageName = newItem.ImageName.Substring(0, newItem.ImageName.IndexOf('.')) + "_depthCodeMap.png";
                depthCodedMap.parseDepthCodedMap(dataDir);
                newItem.DataMapList.Add(depthCodedMap);

                return(newItem);
            }
Exemplo n.º 29
0
        private async Task SendWeatherRequest()
        {
            if (!(await Connect()))
            {
                LocalBroadcastManager.GetInstance(this).SendBroadcast(
                    new Intent(WearableHelper.ErrorPath));
                return;
            }

            var data = await WearableClass.DataApi.GetDataItemAsync(
                mGoogleApiClient, WearableHelper.GetWearDataUri(mPhoneNodeWithApp.Id, WearableHelper.WeatherPath));

            if (!data.Status.IsSuccess || data.DataItem == null)
            {
                // Send message to device to get settings
                var sendMessageResult = await WearableClass.MessageApi.SendMessageAsync(mGoogleApiClient, mPhoneNodeWithApp.Id,
                                                                                        WearableHelper.WeatherPath, new byte[0]);
            }
            else
            {
                // Update with data
                await UpdateWeather(DataMapItem.FromDataItem(data.DataItem).DataMap);
            }
        }
Exemplo n.º 30
0
        private static void SaveItem(IDataItem dataItem, ISharedPreferencesEditor editor, IDictionary <string, object> allPrefs)
        {
            DataMap dataMap = DataMapItem.FromDataItem(dataItem).DataMap;

            if (dataMap.KeySet().Count == 0 && dataItem.Uri.PathSegments.LastOrDefault() != PrefListener.KEY_SYNC_DONE)
            {
                // Testing has shown that when an item is deleted from the Data API, it
                // will often come through as an empty TYPE_CHANGED rather than a TYPE_DELETED.
                DeleteItem(dataItem.Uri, editor, allPrefs);
            }
            else
            {
                foreach (var key in dataMap.KeySet())
                {
                    Java.Lang.Object value = dataMap.Get(key);

                    if (value == null)
                    {
                        if (allPrefs != null && value.Equals(allPrefs.ContainsKey(key)))
                        {
                            editor.Remove(key);
                        }
                        continue;
                    }
                    if (allPrefs != null && value.Equals(allPrefs[key]))
                    {
                        // No change to value.
                        continue;
                    }
                    if (key.Equals(KEY_TIMESTAMP))
                    {
                        continue;
                    }

                    if (value is Java.Lang.Boolean)
                    {
                        editor.PutBoolean(key, (bool)value);
                    }
                    else if (value is Java.Lang.Float)
                    {
                        editor.PutFloat(key, (float)value);
                    }
                    else if (value is Java.Lang.Integer)
                    {
                        editor.PutInt(key, (int)value);
                    }
                    else if (value is Java.Lang.Long)
                    {
                        editor.PutLong(key, (long)value);
                    }
                    else if (value is Java.Lang.String)
                    {
                        editor.PutString(key, (string)value);
                    }
                    else if (value is Java.Lang.Object javaValue && javaValue.Class.SimpleName == "String[]")
                    {
                        if (Build.VERSION.SdkInt >= BuildVersionCodes.Honeycomb)
                        {
                            editor.PutStringSet(key, (string[])value);
                        }
                    }