package de.bsd.zwitscher.account; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.Spinner; import android.widget.TableRow; import android.widget.TextView; import de.bsd.zwitscher.R; /** * Create a new Account and possibly switch to it * @author Heiko W. Rupp */ public class NewAccountActivity extends Activity { private TableRow urlRow; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.new_account); Spinner serviceSpinner = (Spinner) findViewById(R.id.new_account_spinner); urlRow = (TableRow) findViewById(R.id.new_account_url_row); final TableRow userNameRow = (TableRow) findViewById(R.id.new_account_username_row); final TableRow passwordRow = (TableRow) findViewById(R.id.new_account_password_row); final TableRow switchRow = (TableRow) findViewById(R.id.new_account_switch_row); final TextView urlText= (TextView) findViewById(R.id.new_account_url_text); final EditText urlEdit= (EditText) findViewById(R.id.new_account_url_edit); final Button createButton = (Button) findViewById(R.id.new_account_create_button); serviceSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { // Manage the visiblity of the various entries urlRow.setVisibility(position==3? View.VISIBLE: View.GONE); urlText.setEnabled(position == 3); urlEdit.setEnabled(position == 3); userNameRow.setVisibility(position == 0 ? View.GONE : View.VISIBLE); passwordRow.setVisibility(position == 0 ? View.GONE : View.VISIBLE); switchRow.setVisibility(position == 0 ? View.GONE : View.VISIBLE); createButton.setText(position==0 ? getText(R.string.continue_msg ) : getText(R.string.new_account_create)); TextView usernameView = (TextView) findViewById(R.id.new_account_username); TextView passwordView = (TextView) findViewById(R.id.new_account_password); usernameView.setEnabled(position!=0); passwordView.setEnabled(position!=0); } @Override public void onNothingSelected(AdapterView<?> parent) { // Nothing to do } }); } @SuppressWarnings("unused") public void create(View v) { Spinner serviceSpinner = (Spinner) findViewById(R.id.new_account_spinner); TextView usernameView = (TextView) findViewById(R.id.new_account_username); TextView passwordView = (TextView) findViewById(R.id.new_account_password); CheckBox switchBox = (CheckBox) findViewById(R.id.new_account_switch); TextView urlView = (TextView) findViewById(R.id.new_account_url_edit); String username = usernameView.getText().toString(); String password = passwordView.getText().toString(); String tmp = serviceSpinner.getSelectedItem().toString(); long id = serviceSpinner.getSelectedItemId(); System.err.println("id" + id); id = serviceSpinner.getSelectedItemPosition(); System.err.println("pos " + id ); Account.Type service ; String url; if (tmp.toLowerCase().startsWith("twitter")) { service = Account.Type.TWITTER; url = " - do not care -"; } else if (tmp.equalsIgnoreCase("identi.ca")) { service = Account.Type.IDENTICA; url = "http://identi.ca"; } else { service = Account.Type.STATUSNET; url = urlView.getText().toString(); } if (!url.endsWith("/")) url = url + "/"; if (!url.startsWith("https://") && !url.startsWith("http://")) // TODO explicit ssl selection for status.net url = "https://" + url; Log.i("newAccount","url is " + url); boolean shouldSwitch = switchBox.isChecked(); if (serviceSpinner.getSelectedItemId()==0) { // Twitter with OAuth Intent i = new Intent(this,TwitterLoginActivity.class); startActivity(i); // THis implicitly switches over } else { new CreateAccountTask(this,username,password,service,shouldSwitch, url).execute(); } } }