Statistics
| Branch: | Revision:

root / src / com / rackspacecloud / android / PasswordServerActivity.java @ 48601850

History | View | Annotate | Download (3.2 kB)

1 f58bf9f4 Adam Menz
package com.rackspacecloud.android;
2 f58bf9f4 Adam Menz
3 f58bf9f4 Adam Menz
import org.apache.http.HttpResponse;
4 f58bf9f4 Adam Menz
5 f58bf9f4 Adam Menz
import android.os.AsyncTask;
6 f58bf9f4 Adam Menz
import android.os.Bundle;
7 f58bf9f4 Adam Menz
import android.view.View;
8 f58bf9f4 Adam Menz
import android.view.View.OnClickListener;
9 f58bf9f4 Adam Menz
import android.widget.Button;
10 f58bf9f4 Adam Menz
import android.widget.EditText;
11 f58bf9f4 Adam Menz
import android.widget.Toast;
12 f58bf9f4 Adam Menz
13 48601850 Mike Mayo
import com.rackspace.cloud.android.R;
14 f58bf9f4 Adam Menz
import com.rackspace.cloud.servers.api.client.CloudServersException;
15 f58bf9f4 Adam Menz
import com.rackspace.cloud.servers.api.client.Server;
16 f58bf9f4 Adam Menz
import com.rackspace.cloud.servers.api.client.ServerManager;
17 32731215 Adam Menz
import com.rackspace.cloud.servers.api.client.http.HttpBundle;
18 f58bf9f4 Adam Menz
19 6b8dad86 Adam Menz
public class PasswordServerActivity extends CloudActivity implements OnClickListener{
20 f58bf9f4 Adam Menz
        
21 f58bf9f4 Adam Menz
        private Server server;
22 f58bf9f4 Adam Menz
        private String modifiedPassword;
23 f58bf9f4 Adam Menz
        
24 f58bf9f4 Adam Menz
        public void onCreate(Bundle savedInstanceState) {
25 f58bf9f4 Adam Menz
        super.onCreate(savedInstanceState);
26 5018a7f8 Adam Menz
        trackPageView(GoogleAnalytics.PAGE_PASSCODE);
27 f58bf9f4 Adam Menz
        setContentView(R.layout.viewchangepassword); 
28 f58bf9f4 Adam Menz
        server = (Server) this.getIntent().getExtras().get("server");
29 f58bf9f4 Adam Menz
    }
30 f58bf9f4 Adam Menz
31 6b8dad86 Adam Menz
        protected void restoreState(Bundle state){
32 6b8dad86 Adam Menz
                super.restoreState(state);
33 6b8dad86 Adam Menz
                setupButtons();  
34 6b8dad86 Adam Menz
        }
35 6b8dad86 Adam Menz
        
36 f58bf9f4 Adam Menz
        private void setupButtons() {
37 f58bf9f4 Adam Menz
                Button update = (Button) findViewById(R.id.password_change_button);
38 f58bf9f4 Adam Menz
                update.setOnClickListener(this);
39 f58bf9f4 Adam Menz
        }
40 f58bf9f4 Adam Menz
        
41 f58bf9f4 Adam Menz
        @Override
42 f58bf9f4 Adam Menz
        public void onClick(View v) {
43 f58bf9f4 Adam Menz
                String password = ((EditText)findViewById(R.id.password_edittext)).getText().toString();
44 f58bf9f4 Adam Menz
                String confirm = ((EditText)findViewById(R.id.password_confirm_edittext)).getText().toString();
45 f58bf9f4 Adam Menz
                if(password.equals(confirm)){
46 5018a7f8 Adam Menz
                        trackEvent(GoogleAnalytics.CATEGORY_SERVER, GoogleAnalytics.EVENT_PASSWORD, "", -1);
47 32731215 Adam Menz
                        modifiedPassword = password;
48 f58bf9f4 Adam Menz
                        new PasswordServerTask().execute((Void[]) null);        
49 f58bf9f4 Adam Menz
                }
50 f58bf9f4 Adam Menz
                else{
51 d88d3ae1 Adam Menz
                        showToast("The password and confirmation do not match");
52 f58bf9f4 Adam Menz
                }
53 f58bf9f4 Adam Menz
        }
54 f58bf9f4 Adam Menz
        
55 32731215 Adam Menz
        private class PasswordServerTask extends AsyncTask<Void, Void, HttpBundle> {
56 f58bf9f4 Adam Menz
57 f58bf9f4 Adam Menz
                private CloudServersException exception;
58 f58bf9f4 Adam Menz
59 d88d3ae1 Adam Menz
                protected void onPreExecute(){
60 d88d3ae1 Adam Menz
                        showToast("Change root password process has begun");
61 d88d3ae1 Adam Menz
                }
62 d88d3ae1 Adam Menz
                
63 f58bf9f4 Adam Menz
                @Override
64 32731215 Adam Menz
                protected HttpBundle doInBackground(Void... arg0) {
65 32731215 Adam Menz
                        HttpBundle bundle = null;
66 f58bf9f4 Adam Menz
                        try {
67 32731215 Adam Menz
                                bundle = (new ServerManager()).changePassword(server, modifiedPassword, getApplicationContext());
68 f58bf9f4 Adam Menz
                        } catch (CloudServersException e) {
69 f58bf9f4 Adam Menz
                                exception = e;
70 f58bf9f4 Adam Menz
                        }
71 32731215 Adam Menz
                        return bundle;
72 f58bf9f4 Adam Menz
                }
73 f58bf9f4 Adam Menz
74 f58bf9f4 Adam Menz
                @Override
75 32731215 Adam Menz
                protected void onPostExecute(HttpBundle bundle) {
76 32731215 Adam Menz
                        HttpResponse response = bundle.getResponse();
77 f58bf9f4 Adam Menz
                        if (response != null) {
78 f58bf9f4 Adam Menz
                                int statusCode = response.getStatusLine().getStatusCode();        
79 f58bf9f4 Adam Menz
                                if(statusCode == 204){
80 f58bf9f4 Adam Menz
                                        String mustMatch = "The server's root password has successfully been changed.";
81 f58bf9f4 Adam Menz
                                        Toast passwordError = Toast.makeText(getApplicationContext(), mustMatch, Toast.LENGTH_SHORT);
82 f58bf9f4 Adam Menz
                                        passwordError.show();
83 f58bf9f4 Adam Menz
                                        finish();
84 f58bf9f4 Adam Menz
                                }
85 f58bf9f4 Adam Menz
                                if (statusCode != 204) {
86 f58bf9f4 Adam Menz
                                        CloudServersException cse = parseCloudServersException(response);
87 f58bf9f4 Adam Menz
                                        if ("".equals(cse.getMessage())) {
88 6b8dad86 Adam Menz
                                                showError("There was a problem changing your password.", bundle);
89 f58bf9f4 Adam Menz
                                        } else {
90 6b8dad86 Adam Menz
                                                showError("There was a problem changing your password: " + cse.getMessage() + " " + statusCode, bundle);
91 f58bf9f4 Adam Menz
                                        }
92 f58bf9f4 Adam Menz
                                }
93 f58bf9f4 Adam Menz
                        } else if (exception != null) {
94 6b8dad86 Adam Menz
                                showError("There was a problem changing your password: " + exception.getMessage(), bundle);
95 f58bf9f4 Adam Menz
                                
96 f58bf9f4 Adam Menz
                        }
97 f58bf9f4 Adam Menz
                }
98 f58bf9f4 Adam Menz
99 f58bf9f4 Adam Menz
100 f58bf9f4 Adam Menz
        }
101 f58bf9f4 Adam Menz
}