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);
     }
 }
예제 #2
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();
        }
예제 #3
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();
        }