root / src / com / rackspacecloud / android / AddAccountActivity.java @ f3633a16
History | View | Annotate | Download (4.7 kB)
1 | 441d5327 | Adam Menz | package com.rackspacecloud.android; |
---|---|---|---|
2 | 441d5327 | Adam Menz | |
3 | 441d5327 | Adam Menz | import android.content.Intent; |
4 | 441d5327 | Adam Menz | import android.os.Bundle; |
5 | 441d5327 | Adam Menz | import android.text.method.PasswordTransformationMethod; |
6 | 441d5327 | Adam Menz | import android.text.method.SingleLineTransformationMethod; |
7 | f3633a16 | Adam Menz | import android.util.Log; |
8 | 441d5327 | Adam Menz | import android.view.View; |
9 | 441d5327 | Adam Menz | import android.view.View.OnClickListener; |
10 | 441d5327 | Adam Menz | import android.widget.AdapterView; |
11 | 441d5327 | Adam Menz | import android.widget.ArrayAdapter; |
12 | 441d5327 | Adam Menz | import android.widget.Button; |
13 | 441d5327 | Adam Menz | import android.widget.CheckBox; |
14 | 441d5327 | Adam Menz | import android.widget.EditText; |
15 | 441d5327 | Adam Menz | import android.widget.Spinner; |
16 | 441d5327 | Adam Menz | |
17 | 6b8dad86 | Adam Menz | public class AddAccountActivity extends CloudActivity implements OnClickListener{ |
18 | 441d5327 | Adam Menz | |
19 | 1b82ddb3 | Adam Menz | private final String[] PROVIDERS = {"Rackspace Cloud (US)", "Rackspace Cloud (UK)", "Custom"}; |
20 | 1b82ddb3 | Adam Menz | private EditText usernameText;
|
21 | f3633a16 | Adam Menz | private EditText passwordText;
|
22 | 1b82ddb3 | Adam Menz | private EditText customServer;
|
23 | 1b82ddb3 | Adam Menz | private Spinner providerSpinner;
|
24 | 1b82ddb3 | Adam Menz | private String authServer; |
25 | fea03400 | Adam Menz | boolean isHidden;
|
26 | 441d5327 | Adam Menz | |
27 | 441d5327 | Adam Menz | public void onCreate(Bundle savedInstanceState) { |
28 | 441d5327 | Adam Menz | super.onCreate(savedInstanceState);
|
29 | 5018a7f8 | Adam Menz | trackPageView(GoogleAnalytics.PAGE_PROVIDERS); |
30 | 441d5327 | Adam Menz | setContentView(R.layout.createaccount); |
31 | 441d5327 | Adam Menz | usernameText = (EditText) findViewById(R.id.username); |
32 | f3633a16 | Adam Menz | passwordText = (EditText) findViewById(R.id.addaccount_apikey); |
33 | d88d3ae1 | Adam Menz | customServer = (EditText) findViewById(R.id.custom_auth_server_edit); |
34 | 441d5327 | Adam Menz | ((Button) findViewById(R.id.submit_new_account)).setOnClickListener(this); |
35 | fea03400 | Adam Menz | isHidden = true;
|
36 | d88d3ae1 | Adam Menz | customServer.setEnabled(false);
|
37 | fea03400 | Adam Menz | if(savedInstanceState != null) |
38 | fea03400 | Adam Menz | isHidden = savedInstanceState.containsKey("isHidden") && savedInstanceState.getBoolean("isHidden"); |
39 | fea03400 | Adam Menz | setUpApiText(savedInstanceState); |
40 | fea03400 | Adam Menz | setUpCheckBox(); |
41 | fea03400 | Adam Menz | loadProviderSpinner(); |
42 | fea03400 | Adam Menz | } |
43 | fea03400 | Adam Menz | |
44 | fea03400 | Adam Menz | protected void onSaveInstanceState(Bundle outState) { |
45 | fea03400 | Adam Menz | super.onSaveInstanceState(outState);
|
46 | fea03400 | Adam Menz | outState.putBoolean("isHidden", isHidden);
|
47 | fea03400 | Adam Menz | } |
48 | fea03400 | Adam Menz | |
49 | fea03400 | Adam Menz | //setup the API textedit to be password dots or regular text
|
50 | fea03400 | Adam Menz | private void setUpApiText(Bundle state){ |
51 | fea03400 | Adam Menz | isHidden = true;
|
52 | fea03400 | Adam Menz | if(state != null) |
53 | fea03400 | Adam Menz | isHidden = state.containsKey("isHidden") && state.getBoolean("isHidden"); |
54 | fea03400 | Adam Menz | if(isHidden){
|
55 | f3633a16 | Adam Menz | passwordText.setTransformationMethod(new PasswordTransformationMethod());
|
56 | fea03400 | Adam Menz | } |
57 | fea03400 | Adam Menz | else{
|
58 | f3633a16 | Adam Menz | passwordText.setTransformationMethod(new SingleLineTransformationMethod());
|
59 | fea03400 | Adam Menz | } |
60 | fea03400 | Adam Menz | } |
61 | fea03400 | Adam Menz | |
62 | fea03400 | Adam Menz | private void setUpCheckBox(){ |
63 | fea03400 | Adam Menz | final CheckBox show_clear = (CheckBox) findViewById(R.id.show_clear);
|
64 | fea03400 | Adam Menz | show_clear.setChecked(!isHidden); |
65 | 441d5327 | Adam Menz | show_clear.setOnClickListener(new OnClickListener() {
|
66 | 441d5327 | Adam Menz | @Override
|
67 | 441d5327 | Adam Menz | public void onClick(View v) { |
68 | 441d5327 | Adam Menz | if (((CheckBox) v).isChecked()) {
|
69 | f3633a16 | Adam Menz | passwordText.setTransformationMethod(new SingleLineTransformationMethod());
|
70 | fea03400 | Adam Menz | isHidden = false;
|
71 | 441d5327 | Adam Menz | } else {
|
72 | f3633a16 | Adam Menz | passwordText.setTransformationMethod(new PasswordTransformationMethod());
|
73 | fea03400 | Adam Menz | isHidden = true;
|
74 | 441d5327 | Adam Menz | } |
75 | f3633a16 | Adam Menz | passwordText.requestFocus(); |
76 | 441d5327 | Adam Menz | } |
77 | 441d5327 | Adam Menz | }); |
78 | fea03400 | Adam Menz | } |
79 | 441d5327 | Adam Menz | |
80 | 441d5327 | Adam Menz | private void loadProviderSpinner(){ |
81 | 441d5327 | Adam Menz | //set the auth server default to us
|
82 | f3633a16 | Adam Menz | authServer = "https://auth.api.rackspacecloud.com/v2.0";
|
83 | 441d5327 | Adam Menz | providerSpinner = (Spinner) findViewById(R.id.provider_spinner); |
84 | 1b82ddb3 | Adam Menz | ArrayAdapter<String> imageAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, PROVIDERS); |
85 | 441d5327 | Adam Menz | imageAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); |
86 | 441d5327 | Adam Menz | providerSpinner.setAdapter(imageAdapter); |
87 | 730daee8 | Adam Menz | providerSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
|
88 | 730daee8 | Adam Menz | public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { |
89 | 730daee8 | Adam Menz | if(pos == 0){ |
90 | f3633a16 | Adam Menz | authServer = Preferences.COUNTRY_US_AUTH_SERVER_V2;
|
91 | d88d3ae1 | Adam Menz | customServer.setEnabled(false);
|
92 | 730daee8 | Adam Menz | } |
93 | 730daee8 | Adam Menz | else if(pos == 1){ |
94 | f3633a16 | Adam Menz | authServer = Preferences.COUNTRY_UK_AUTH_SERVER_V2;
|
95 | d88d3ae1 | Adam Menz | customServer.setEnabled(false);
|
96 | d88d3ae1 | Adam Menz | } |
97 | d88d3ae1 | Adam Menz | else{
|
98 | d88d3ae1 | Adam Menz | customServer.setEnabled(true);
|
99 | 730daee8 | Adam Menz | } |
100 | 730daee8 | Adam Menz | } |
101 | 730daee8 | Adam Menz | public void onNothingSelected(AdapterView<?> parent) { |
102 | 730daee8 | Adam Menz | } |
103 | 730daee8 | Adam Menz | }); |
104 | 441d5327 | Adam Menz | } |
105 | 441d5327 | Adam Menz | |
106 | 441d5327 | Adam Menz | public void onClick(View arg0) { |
107 | d88d3ae1 | Adam Menz | |
108 | 441d5327 | Adam Menz | if (hasValidInput()) {
|
109 | 441d5327 | Adam Menz | //showActivityIndicators();
|
110 | 441d5327 | Adam Menz | Intent result = new Intent();
|
111 | 441d5327 | Adam Menz | Bundle b = new Bundle();
|
112 | 441d5327 | Adam Menz | b.putString("username", usernameText.getText().toString());
|
113 | f3633a16 | Adam Menz | b.putString("apiKey", passwordText.getText().toString());
|
114 | d88d3ae1 | Adam Menz | b.putString("server", getAuthServer());
|
115 | 441d5327 | Adam Menz | result.putExtra("accountInfo", b);
|
116 | 441d5327 | Adam Menz | setResult(RESULT_OK, result); |
117 | 441d5327 | Adam Menz | finish(); |
118 | 441d5327 | Adam Menz | } else {
|
119 | 441d5327 | Adam Menz | showAlert("Required Fields Missing", "Username and API Key are required."); |
120 | 441d5327 | Adam Menz | } |
121 | 441d5327 | Adam Menz | |
122 | 441d5327 | Adam Menz | } |
123 | 441d5327 | Adam Menz | |
124 | d88d3ae1 | Adam Menz | private String getAuthServer(){ |
125 | d88d3ae1 | Adam Menz | if(customServer.isEnabled()){
|
126 | d88d3ae1 | Adam Menz | authServer = customServer.getText().toString(); |
127 | d88d3ae1 | Adam Menz | } |
128 | d88d3ae1 | Adam Menz | return authServer;
|
129 | d88d3ae1 | Adam Menz | } |
130 | d88d3ae1 | Adam Menz | |
131 | 441d5327 | Adam Menz | private boolean hasValidInput() { |
132 | 441d5327 | Adam Menz | String username = usernameText.getText().toString();
|
133 | f3633a16 | Adam Menz | String apiKey = passwordText.getText().toString();
|
134 | 441d5327 | Adam Menz | return !"".equals(username) && !"".equals(apiKey); |
135 | 441d5327 | Adam Menz | } |
136 | 441d5327 | Adam Menz | |
137 | 441d5327 | Adam Menz | } |