Statistics
| Branch: | Revision:

root / src / com / rackspace / cloud / android / AddAccountActivity.java @ 4e621cf9

History | View | Annotate | Download (5.1 kB)

1
package com.rackspace.cloud.android;
2

    
3
import android.content.Intent;
4
import android.os.Bundle;
5
import android.text.method.PasswordTransformationMethod;
6
import android.text.method.SingleLineTransformationMethod;
7
import android.view.View;
8
import android.view.View.OnClickListener;
9
import android.widget.AdapterView;
10
import android.widget.ArrayAdapter;
11
import android.widget.Button;
12
import android.widget.CheckBox;
13
import android.widget.EditText;
14
import android.widget.Spinner;
15

    
16
import com.rackspace.cloud.android.R;
17

    
18
public class AddAccountActivity extends CloudActivity implements OnClickListener{
19
        
20
        private final String[] PROVIDERS = {"Rackspace Cloud (US)", "Rackspace Cloud (UK)","Pithos +", "Pithos+ Staging", "Pithos+ Dev","Custom"};
21
        private EditText usernameText;
22
        private EditText passwordText;
23
        private EditText customServer;
24
        private Spinner providerSpinner;
25
        private String authServer;
26
        boolean isHidden;
27
        
28
        public void onCreate(Bundle savedInstanceState) {
29
        super.onCreate(savedInstanceState);
30
        trackPageView(GoogleAnalytics.PAGE_PROVIDERS);
31
        setContentView(R.layout.createaccount);
32
        usernameText = (EditText) findViewById(R.id.username);
33
        passwordText = (EditText) findViewById(R.id.addaccount_apikey);
34
        customServer = (EditText) findViewById(R.id.custom_auth_server_edit);
35
        ((Button) findViewById(R.id.submit_new_account)).setOnClickListener(this);
36
        isHidden = true;
37
        customServer.setEnabled(false);
38
        if(savedInstanceState != null)
39
                isHidden = savedInstanceState.containsKey("isHidden") && savedInstanceState.getBoolean("isHidden");
40
        setUpApiText(savedInstanceState);
41
        setUpCheckBox();
42
        loadProviderSpinner();
43
    } 
44
        
45
        protected void onSaveInstanceState(Bundle outState) {
46
                super.onSaveInstanceState(outState);
47
                outState.putBoolean("isHidden", isHidden);
48
        }
49
        
50
        //setup the API textedit to be password dots or regular text
51
        private void setUpApiText(Bundle state){
52
        isHidden = true;
53
        if(state != null)
54
                isHidden = state.containsKey("isHidden") && state.getBoolean("isHidden");
55
                if(isHidden){
56
                passwordText.setTransformationMethod(new PasswordTransformationMethod());
57
                }
58
                else{
59
                        passwordText.setTransformationMethod(new SingleLineTransformationMethod());
60
                }
61
        }
62
        
63
        private void setUpCheckBox(){
64
                final CheckBox show_clear = (CheckBox) findViewById(R.id.show_clear);
65
                show_clear.setChecked(!isHidden);
66
        show_clear.setOnClickListener(new OnClickListener() {
67
                @Override 
68
                        public void onClick(View v) {
69
                        if (((CheckBox) v).isChecked()) {
70
                                passwordText.setTransformationMethod(new SingleLineTransformationMethod());
71
                                isHidden = false;
72
                        } else {
73
                                passwordText.setTransformationMethod(new PasswordTransformationMethod());
74
                                isHidden = true;
75
                        }
76
                        passwordText.requestFocus();
77
                    }        
78
                });
79
        }
80
        
81
        private void loadProviderSpinner(){
82
                //set the auth server default to us
83
                authServer = "https://auth.api.rackspacecloud.com/v2.0";
84
                providerSpinner = (Spinner) findViewById(R.id.provider_spinner);
85
                ArrayAdapter<String> imageAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, PROVIDERS);
86
                imageAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
87
                providerSpinner.setAdapter(imageAdapter);
88
                providerSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
89
                    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
90
                            if(pos == 0){
91
                                        authServer = Preferences.COUNTRY_US_AUTH_SERVER_V2;
92
                                customServer.setEnabled(false);
93
                                }
94
                                else if(pos == 1){
95
                                        authServer = Preferences.COUNTRY_UK_AUTH_SERVER_V2;
96
                                customServer.setEnabled(false);
97
                                }
98
                                else if(pos == 2){
99
                                        authServer = Preferences.PITHOS_SERVER;
100
                                customServer.setEnabled(false);
101
                                }
102
                                else if(pos == 3){
103
                                        authServer = Preferences.PITHOS_STAGING_SERVER;
104
                                customServer.setEnabled(false);
105
                                }
106
                                else if(pos == 4){
107
                                        authServer = Preferences.PITHOS_DEV_SERVER;
108
                                customServer.setEnabled(false);
109
                                }
110
                                else{
111
                                customServer.setEnabled(true);
112
                                }
113
                    }
114
                    public void onNothingSelected(AdapterView<?> parent) {
115
                    }
116
                });
117
        }
118
        
119
        public void onClick(View arg0) {
120

    
121
                if (hasValidInput()) {
122
                        //showActivityIndicators();
123
                        Intent result = new Intent();
124
                        Bundle b = new Bundle();
125
                        b.putString("username", usernameText.getText().toString());
126
                        b.putString("apiKey", passwordText.getText().toString());
127
                        b.putString("server", getAuthServer());
128
                        result.putExtra("accountInfo", b);
129
                        setResult(RESULT_OK, result);
130
                        finish();
131
                } else {
132
                        showAlert("Required Fields Missing", "Username and API Key are required.");
133
                }
134
                
135
        }
136
        
137
        private String getAuthServer(){
138
                if(customServer.isEnabled()){
139
                        authServer = customServer.getText().toString();
140
                }
141
                return authServer;
142
        }
143
        
144
        private boolean hasValidInput() {
145
            String username = usernameText.getText().toString();
146
            String apiKey = passwordText.getText().toString();
147
            return !"".equals(username) && !"".equals(apiKey);
148
    }
149

    
150
}