/** Prepare the page for the actual registration in the database. */ public void prepareForRegistration() { cd = new ConnectionDetector(getApplicationContext()); // Check if Internet present if (!cd.isConnectingToInternet()) { // Internet Connection is not present alert.showAlertDialog( "Internet Connection Error", "Please connect to working Internet connection", false); // stop executing code by return return; } // Check if GCM configuration is set if (SERVER_URL == null || SENDER_ID == null || SERVER_URL.length() == 0 || SENDER_ID.length() == 0) { // GCM sernder id / server url is missing alert.showAlertDialog( "Configuration Error!", "Please set your Server URL and GCM Sender ID", false); // stop executing code by return return; } txtName = (EditText) findViewById(R.id.txtName); txtEmail = (EditText) findViewById(R.id.txtEmail); btnRegister = (Button) findViewById(R.id.btnRegister); /* * Click event on Register button */ btnRegister.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View arg0) { name = txtName.getText().toString(); email = txtEmail.getText().toString(); // Check if user filled the form if (name.trim().length() > 0 && email.trim().length() > 0) { register(name, email); } else { // user didn't fill data; show alert message alert.showAlertDialog("Registration Error!", "Please enter your details", false); } } }); }
/** * Register the username, email, and device ID information in the database. * * @param name Name of the user * @param email Email of the user */ void register(final String name, final String email) { cd = new ConnectionDetector(getApplicationContext()); // Check if Internet present if (!cd.isConnectingToInternet()) { // Internet Connection is not present alert.showAlertDialog( "Internet Connection Error", "Please connect to working Internet connection", false); // stop executing code by return // return; } // Make sure the device has the proper dependencies. GCMRegistrar.checkDevice(this); // Make sure the manifest was properly set - comment out this line // while developing the app, then uncomment it when it's ready. GCMRegistrar.checkManifest(this); // lblMessage = (TextView) findViewById(R.id.lblMessage); // registerReceiver(mHandleMessageReceiver, new IntentFilter( // DISPLAY_MESSAGE_ACTION)); // Get GCM registration id final String regId = GCMRegistrar.getRegistrationId(this); // Check if regid already presents if (regId.equals("")) { // Registration is not present, register now with GCM Log.i(TAG, "regId is empty"); GCMRegistrar.register(this, SENDER_ID); } else { // Device is already registered on GCM if (GCMRegistrar.isRegisteredOnServer(this)) { // Skips registration. Toast.makeText(getApplicationContext(), "Already registered with GCM", Toast.LENGTH_LONG) .show(); } else { // Try to register again, but not in the UI thread. // It's also necessary to cancel the thread onDestroy(), // hence the use of AsyncTask instead of a raw thread. final Context context = this; mRegisterTask = new AsyncTask<Void, Void, Boolean>() { @Override protected Boolean doInBackground(Void... params) { // Register on our server // On server creates a new user Log.i(TAG, "Calling register from AsyncTask in RegisterActivity"); boolean res = ServerUtilities.register(context, name, email, regId); Log.d(TAG, "Got here"); if (res) { Log.d(TAG, "successful registration"); Intent homeScreen = new Intent(getApplicationContext(), LocalizationActivity.class); startActivity(homeScreen); return true; } else { Log.d(TAG, "unsuccessful registration"); } return false; } @Override protected void onPostExecute(Boolean result) { mRegisterTask = null; } }; mRegisterTask.execute(null, null, null); } } }