/**
   * Returns the data item modified in this event. An event of TYPE_DELETED will only have its
   * {DataItem#getUri} populated.
   *
   * @param dataEvents The data buffer
   * @param dataPath The data path
   * @return The data item corresponding to the data path or null.
   */
  public DataItem getData(DataEventBuffer dataEvents, String dataPath) {
    if (dataPath == null) {
      if (mConnectionCallBacks != null) {
        mConnectionCallBacks.onConnectionFailed(WearConnectionCallBacks.PATH_NULL_ERROR);
      }
      return null;
    }

    List<DataEvent> events = FreezableUtils.freezeIterable(dataEvents);
    dataEvents.release();
    for (DataEvent event : events) {
      String path = event.getDataItem().getUri().getPath();
      if (dataPath.equalsIgnoreCase(path)) {
        return event.getDataItem();
      }
    }
    return null;
  }
 @Override
 public void onDataChanged(DataEventBuffer dataEvents) {
   final List<DataEvent> events = FreezableUtils.freezeIterable(dataEvents);
   dataEvents.close();
   runOnUiThread(
       new Runnable() {
         @Override
         public void run() {
           for (DataEvent event : events) {
             if (event.getType() == DataEvent.TYPE_CHANGED) {
               DataItem dataItem = event.getDataItem();
               DataMap dataMap = DataMapItem.fromDataItem(dataItem).getDataMap();
               double steps = dataMap.getDouble("steps");
               testTextView.setText("" + steps);
             }
           }
         }
       });
 }