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