package com.bennyguitar.onions_android.Fragments; import android.app.FragmentManager; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.text.Editable; import android.text.TextWatcher; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.EditText; import com.bennyguitar.onions_android.MainActivity; import com.bennyguitar.onions_android.Session.OCSession; import com.bennyguitar.onions_android.R; import com.bennyguitar.onions_android.Utilities.OnionDialog; import com.bennyguitar.onions_android.Utilities.UIHelpers; /** * Created by BenG on 6/2/14. */ public class RegisterFragment extends OnionFragment { Button registerButton; EditText usernameTextField; EditText passwordTextField; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Create the View View V = newOnionFragment(R.layout.fragment_register, inflater, container); // Build UI buildUI(V); // Destroy Session OCSession.mainSession.logout(); // Return the View return V; } // UI private void buildUI(View view) { // Button registerButton = (Button)view.findViewById(R.id.buttonRegister); registerButton.setOnClickListener(didClickRegister); UIHelpers.styleOnionButton(registerButton, true); // TextFields usernameTextField = (EditText)view.findViewById(R.id.editTextUsername); usernameTextField.setBackgroundResource(R.drawable.under_border); passwordTextField = (EditText)view.findViewById(R.id.editTextPassword); usernameTextField.addTextChangedListener(textWatcher); passwordTextField.addTextChangedListener(textWatcher); } private void setUIForRegister(boolean isRegistering) { UIHelpers.styleOnionButton(registerButton, !isRegistering); } // Listener View.OnClickListener didClickRegister = new View.OnClickListener() { @Override public void onClick(View view) { // Register setUIForRegister(true); registerAccount(); } }; // Register private Handler.Callback registerCallback = new Handler.Callback() { @Override public boolean handleMessage(Message message) { boolean didRegister = message.arg1 != 0; if (didRegister) { navigateToShowOnions(); return true; } // Launch Toast OnionDialog.show(getActivity(), "This username already exists. Choose another.", OnionDialog.OnionDialogType.FAILURE, 500); // Reset UI setUIForRegister(false); // We're done here. return true; } }; private void registerAccount() { String user = usernameTextField.getText().toString(); String pass = passwordTextField.getText().toString(); OCSession.mainSession.signUpWithUserAndPass(user,pass,registerCallback); } // Navigate private void navigateToShowOnions() { usernameTextField.setText(""); passwordTextField.setText(""); ShowOnionsFragment showOnionsFragment = new ShowOnionsFragment(); MainActivity activity = (MainActivity)getActivity(); activity.animateToFragment(showOnionsFragment, "ShowOnions"); } // Validation private boolean registerFormIsValid() { return usernameTextField.getText().length() > 0 && passwordTextField.getText().length() > 0; } TextWatcher textWatcher = new TextWatcher() { @Override public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {} @Override public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) { setUIForRegister(!registerFormIsValid()); } @Override public void afterTextChanged(Editable editable) {} }; }