package com.kanshu.kanshu; import android.content.Intent; import android.graphics.Color; import android.graphics.Typeface; import android.os.Bundle; import android.text.Spannable; import android.text.style.ForegroundColorSpan; import android.text.style.StyleSpan; import android.util.Base64; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.Spinner; import android.widget.TextView; import com.google.gson.JsonObject; import com.kanshu.kanshu.model.User; import retrofit.Callback; import retrofit.RetrofitError; import retrofit.client.Response; public class SignupActivity extends BaseActivity implements AdapterView.OnItemSelectedListener{ //skip button TextView skipTv; Spinner signUpSpinner; String selectedLevel; int selectedLevelID = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_signup); signUpSpinner = (Spinner) findViewById(R.id.spinner); String[] levelsArray = getResources().getStringArray(R.array.readinglevels);; skipTv = (TextView) findViewById(R.id.skipText); ArrayAdapter adapter = new ArrayAdapter<String>( this, R.layout.support_simple_spinner_dropdown_item, levelsArray) { @Override public View getView(int position, View convertView, ViewGroup parent) { View v = super.getView(position, convertView, parent); // ((TextView) v).setTypeface(roboto); // ((TextView) v).setTextSize(TypedValue.COMPLEX_UNIT_SP, 12); // v.setPadding(0, 0, 0, 0); return v; } @Override public View getDropDownView(int position, View convertView, ViewGroup parent) { View v = super.getDropDownView(position, convertView, parent); // ((TextView) v).setTypeface(roboto); // ((TextView) v).setTextSize(TypedValue.COMPLEX_UNIT_SP, 12); // v.setPadding(0, 0, 0, 0); return v; } }; adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); signUpSpinner.setAdapter(adapter); signUpSpinner.setOnItemSelectedListener(this); TextView kanshuText = (TextView) findViewById(R.id.mainheadline); kanshuText.setText(R.string.kanshucaption, TextView.BufferType.SPANNABLE); int startPos = getString(R.string.kanshucaption).indexOf("Kanshu"); ((Spannable) kanshuText.getText()).setSpan(new StyleSpan(Typeface.BOLD), startPos, startPos + 6, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); ((Spannable) kanshuText.getText()).setSpan(new ForegroundColorSpan(Color.parseColor ("#ff9800")), startPos, startPos + 6, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_signup, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } public void onClick(View v) { int id = v.getId(); //intent var, we will need after Intent in = new Intent(); if (id == skipTv.getId()) { in = new Intent(this, TopicsActivity.class); } startActivity(in); } public void onSelectLogInPage(View clicked) { User userData = new User("Username", "Intermediate Level"); Intent signupIntent = new Intent(this, LoginActivity.class); signupIntent.putExtra("user", userData); startActivity(signupIntent); } public void onSignUp(View clicked) { final Intent signupIntent = new Intent(this, UserMetricsActivity.class); ApiHandler.kanshuApi.createUser(new SignupPacket(((EditText) findViewById(R.id.password)).getText().toString(), ((EditText) findViewById(R.id.email)).getText().toString(), "Test user", "somewhere"), new Callback<String>() { @Override public void success(String s, Response response) { //Log.i("SignupActivity", s); String credentials = ((EditText)findViewById(R.id.email)).getText().toString() + ":" + ((EditText)findViewById(R.id.password)).getText().toString(); String string = "Basic " + Base64.encodeToString(credentials.getBytes(), Base64.NO_WRAP); ApiHandler.kanshuApi.login(string, new Callback<JsonObject>() { @Override public void success(JsonObject s, Response response) { User userData = new User(((EditText) findViewById(R.id.username)).getText().toString(), selectedLevel); userData.setSessionId(s.get("user").getAsJsonObject().get("sessionId").getAsString()); signupIntent.putExtra("user", userData); startActivity(signupIntent); } @Override public void failure(RetrofitError error) { Log.i("SignupActivity -- Login", "Epic Fail!"); } }); } @Override public void failure(RetrofitError error) { Log.i("SignupActivity", "Epic Fail!"); } }); } @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { selectedLevelID = position; selectedLevel = signUpSpinner.getItemAtPosition(position).toString(); } @Override public void onNothingSelected(AdapterView<?> parent) { } public class SignupPacket{ public String password; public String email; public String userBio; public String country; public SignupPacket(String password, String email, String userBio, String country){ this.password = password; this.email = email; this.userBio = userBio; this.country = country; } } }