package com.appboy.helloworld; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.util.Patterns; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.appboy.Appboy; public class HelloAppboyActivity extends Activity { private EditText mNickname; private EditText mHighScore; private EditText mEmail; private Context mApplicationContext; // These events will be shown in the Appboy dashboard. private static final String HELLO_APPBOY_CUSTOM_CLICK_EVENT = "clicked submit"; private static final String HELLO_APPBOY_HIGH_SCORE_ATTRIBUTE_KEY = "user high score"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.hello_appboy); // It is good practice to always get an instance of the Appboy singleton using the application // context. mApplicationContext = this.getApplicationContext(); mNickname = (EditText) findViewById(R.id.com_appboy_hello_high_score_nickname); mHighScore = (EditText) findViewById(R.id.com_appboy_hello_high_score); mEmail = (EditText) findViewById(R.id.com_appboy_hello_email); Button submit = (Button) findViewById(R.id.com_appboy_hello_submit); submit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // Validate the nickname and high score, then send off to the server. String nickname = mNickname.getEditableText().toString(); String highScore = mHighScore.getEditableText().toString(); String email = mEmail.getEditableText().toString(); if (validateNameAndHighScore(nickname, highScore, email)) { // Assign the current user an email. You can search for this user using this email on the // dashboard Appboy.getInstance(mApplicationContext).getCurrentUser().setEmail(email); // Send the custom event for the click Appboy.getInstance(mApplicationContext).logCustomEvent(HELLO_APPBOY_CUSTOM_CLICK_EVENT); // Log the custom attribute of "nickname : highScore" String attributeString = String.format("%s : %s", nickname, highScore); Appboy.getInstance(mApplicationContext).getCurrentUser() .setCustomUserAttribute(HELLO_APPBOY_HIGH_SCORE_ATTRIBUTE_KEY, attributeString); displayToast("Sent off event and attribute to Appboy!"); } } }); } // Displays a long toast to the user. private void displayToast(String message) { Toast.makeText(this, message, Toast.LENGTH_LONG).show(); } // Returns true if the name is nonempty, the score is nonempty, and the email is valid private boolean validateNameAndHighScore(String name, String score, String email) { if (name.length() > 0 && score.length() > 0) { if (Patterns.EMAIL_ADDRESS.matcher(email).matches()) { return true; } else { displayToast("Email must be valid"); } } else { displayToast("Fields cannot be empty"); } return false; } }