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); } }
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(); }
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(); }