package com.automattic.simplenote; import android.app.Activity; import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; import android.support.wearable.activity.ConfirmationActivity; import android.text.TextUtils; import com.google.android.gms.common.api.GoogleApiClient; import com.google.android.gms.wearable.MessageApi; import com.google.android.gms.wearable.Node; import com.google.android.gms.wearable.NodeApi; import com.google.android.gms.wearable.Wearable; public class CreateNoteActivity extends Activity { private GoogleApiClient mGoogleApiClient; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Disable transition animations for this activity overridePendingTransition(0,0); mGoogleApiClient = new GoogleApiClient.Builder(this) .addApi(Wearable.API) .build(); mGoogleApiClient.connect(); Bundle extras = getIntent().getExtras(); if (extras == null) { showConfirmationActivityAndFinish(false); return; } if (extras.containsKey(android.content.Intent.EXTRA_TEXT)) { String voiceNote = extras.getString(android.content.Intent.EXTRA_TEXT); if (!TextUtils.isEmpty(voiceNote)) { new SendNoteTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, voiceNote); } else { showConfirmationActivityAndFinish(false); } } else { showConfirmationActivityAndFinish(false); } } private class SendNoteTask extends AsyncTask<String, Void, Boolean> { @Override protected Boolean doInBackground(String... voiceNotes) { if (voiceNotes.length == 0) { return false; } String voiceNote = voiceNotes[0]; NodeApi.GetConnectedNodesResult rawNodes = Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).await(); boolean isSuccess = false; // A Node represents a connected device. // Should be one device in most cases but we'll loop anyways. for (Node node : rawNodes.getNodes()) { MessageApi.SendMessageResult result = Wearable.MessageApi.sendMessage( mGoogleApiClient, node.getId(), "new-note", voiceNote.getBytes()).await(); isSuccess = result.getStatus().isSuccess(); } return isSuccess; } @Override protected void onPostExecute(Boolean isSuccess) { showConfirmationActivityAndFinish(isSuccess); } } // Launch a ConfirmationActivity, which shows a confirmation animation with message private void showConfirmationActivityAndFinish(Boolean isSuccess) { String message = isSuccess ? getString(R.string.noted) : getString(R.string.error); int animationType = isSuccess ? ConfirmationActivity.SUCCESS_ANIMATION : ConfirmationActivity.FAILURE_ANIMATION; Intent confirmationIntent = new Intent(this, ConfirmationActivity.class); confirmationIntent.putExtra(ConfirmationActivity.EXTRA_ANIMATION_TYPE, animationType); confirmationIntent.putExtra(ConfirmationActivity.EXTRA_MESSAGE, message); startActivity(confirmationIntent); overridePendingTransition(0,0); finish(); } }