root / src / com / rackspacecloud / android / ConfirmResizeActivity.java @ b2a2d2f1
History | View | Annotate | Download (4.3 kB)
1 | 51fdecfb | Adam Menz | package com.rackspacecloud.android; |
---|---|---|---|
2 | 51fdecfb | Adam Menz | |
3 | 51fdecfb | Adam Menz | import org.apache.http.HttpResponse; |
4 | 51fdecfb | Adam Menz | |
5 | 51fdecfb | Adam Menz | import com.rackspace.cloud.servers.api.client.CloudServersException; |
6 | 51fdecfb | Adam Menz | import com.rackspace.cloud.servers.api.client.Server; |
7 | 51fdecfb | Adam Menz | import com.rackspace.cloud.servers.api.client.ServerManager; |
8 | 51fdecfb | Adam Menz | import com.rackspace.cloud.servers.api.client.http.HttpBundle; |
9 | 51fdecfb | Adam Menz | |
10 | 51fdecfb | Adam Menz | import android.os.AsyncTask; |
11 | 51fdecfb | Adam Menz | import android.os.Bundle; |
12 | 51fdecfb | Adam Menz | import android.view.View; |
13 | 51fdecfb | Adam Menz | import android.view.View.OnClickListener; |
14 | 51fdecfb | Adam Menz | import android.view.Window; |
15 | 51fdecfb | Adam Menz | import android.widget.Button; |
16 | 51fdecfb | Adam Menz | |
17 | 6b8dad86 | Adam Menz | public class ConfirmResizeActivity extends CloudActivity { |
18 | 51fdecfb | Adam Menz | |
19 | 51fdecfb | Adam Menz | private Server server;
|
20 | 51fdecfb | Adam Menz | |
21 | 51fdecfb | Adam Menz | /** Called when the activity is first created. */
|
22 | 51fdecfb | Adam Menz | @Override
|
23 | 51fdecfb | Adam Menz | public void onCreate(Bundle savedInstanceState) { |
24 | 51fdecfb | Adam Menz | super.onCreate(savedInstanceState);
|
25 | 51fdecfb | Adam Menz | requestWindowFeature(Window.FEATURE_NO_TITLE);
|
26 | 51fdecfb | Adam Menz | setContentView(R.layout.viewresize); |
27 | 51fdecfb | Adam Menz | server = (Server) this.getIntent().getExtras().get("server"); |
28 | 51fdecfb | Adam Menz | restoreState(savedInstanceState); |
29 | 51fdecfb | Adam Menz | } |
30 | 51fdecfb | Adam Menz | |
31 | 6b8dad86 | Adam Menz | |
32 | 51fdecfb | Adam Menz | @Override
|
33 | 51fdecfb | Adam Menz | protected void onSaveInstanceState(Bundle outState) { |
34 | 51fdecfb | Adam Menz | super.onSaveInstanceState(outState);
|
35 | 51fdecfb | Adam Menz | outState.putSerializable("server", server);
|
36 | 51fdecfb | Adam Menz | } |
37 | 51fdecfb | Adam Menz | |
38 | 6b8dad86 | Adam Menz | protected void restoreState(Bundle state) { |
39 | 6b8dad86 | Adam Menz | super.restoreState(state);
|
40 | 51fdecfb | Adam Menz | if (server == null && state != null && state.containsKey("server")) { |
41 | 51fdecfb | Adam Menz | server = (Server) state.getSerializable("server");
|
42 | 51fdecfb | Adam Menz | } |
43 | 51fdecfb | Adam Menz | setupButtons(); |
44 | 51fdecfb | Adam Menz | } |
45 | 51fdecfb | Adam Menz | |
46 | 51fdecfb | Adam Menz | private void setupButtons(){ |
47 | 51fdecfb | Adam Menz | Button confirm = (Button)findViewById(R.id.confirm_resize_button); |
48 | 51fdecfb | Adam Menz | confirm.setOnClickListener(new OnClickListener() {
|
49 | 51fdecfb | Adam Menz | |
50 | 51fdecfb | Adam Menz | @Override
|
51 | 51fdecfb | Adam Menz | public void onClick(View v) { |
52 | 51fdecfb | Adam Menz | new ConfirmResizeTask().execute((Void[]) null); |
53 | 51fdecfb | Adam Menz | finish(); |
54 | 51fdecfb | Adam Menz | } |
55 | 51fdecfb | Adam Menz | }); |
56 | 51fdecfb | Adam Menz | |
57 | 51fdecfb | Adam Menz | Button rollback = (Button)findViewById(R.id.rollback_server_button); |
58 | 51fdecfb | Adam Menz | rollback.setOnClickListener(new OnClickListener() {
|
59 | 51fdecfb | Adam Menz | |
60 | 51fdecfb | Adam Menz | @Override
|
61 | 51fdecfb | Adam Menz | public void onClick(View v) { |
62 | 51fdecfb | Adam Menz | new RollbackResizeTask().execute((Void[]) null); |
63 | 51fdecfb | Adam Menz | finish(); |
64 | 51fdecfb | Adam Menz | } |
65 | 51fdecfb | Adam Menz | }); |
66 | 51fdecfb | Adam Menz | } |
67 | 51fdecfb | Adam Menz | |
68 | 51fdecfb | Adam Menz | private class ConfirmResizeTask extends AsyncTask<Void, Void, HttpBundle> { |
69 | 51fdecfb | Adam Menz | |
70 | 51fdecfb | Adam Menz | private CloudServersException exception;
|
71 | 51fdecfb | Adam Menz | |
72 | 51fdecfb | Adam Menz | @Override
|
73 | 51fdecfb | Adam Menz | //let user know their process has started
|
74 | 51fdecfb | Adam Menz | protected void onPreExecute(){ |
75 | 51fdecfb | Adam Menz | showToast("Confirm process has begun");
|
76 | 51fdecfb | Adam Menz | } |
77 | 51fdecfb | Adam Menz | |
78 | 51fdecfb | Adam Menz | @Override
|
79 | 51fdecfb | Adam Menz | protected HttpBundle doInBackground(Void... arg0) { |
80 | 51fdecfb | Adam Menz | HttpBundle bundle = null;
|
81 | 51fdecfb | Adam Menz | try {
|
82 | 6b8dad86 | Adam Menz | bundle = (new ServerManager()).confirmResize(server, getContext());
|
83 | 51fdecfb | Adam Menz | } catch (CloudServersException e) {
|
84 | 51fdecfb | Adam Menz | exception = e; |
85 | 51fdecfb | Adam Menz | } |
86 | 51fdecfb | Adam Menz | return bundle;
|
87 | 51fdecfb | Adam Menz | } |
88 | 51fdecfb | Adam Menz | |
89 | 51fdecfb | Adam Menz | @Override
|
90 | 51fdecfb | Adam Menz | protected void onPostExecute(HttpBundle bundle) { |
91 | 51fdecfb | Adam Menz | HttpResponse response = bundle.getResponse(); |
92 | 51fdecfb | Adam Menz | if (response != null) { |
93 | 51fdecfb | Adam Menz | int statusCode = response.getStatusLine().getStatusCode();
|
94 | 51fdecfb | Adam Menz | if(statusCode == 204){ showToast("Server resize was successfully confirmed."); } |
95 | 51fdecfb | Adam Menz | else {
|
96 | 51fdecfb | Adam Menz | CloudServersException cse = parseCloudServersException(response); |
97 | 51fdecfb | Adam Menz | if ("".equals(cse.getMessage())) { |
98 | 6b8dad86 | Adam Menz | showError("There was a problem confirming your resize.", bundle);
|
99 | 51fdecfb | Adam Menz | } else {
|
100 | 6b8dad86 | Adam Menz | showError("There was a problem confirming your resize." + cse.getMessage(), bundle);
|
101 | 51fdecfb | Adam Menz | } |
102 | 51fdecfb | Adam Menz | } |
103 | 51fdecfb | Adam Menz | } else if (exception != null) { |
104 | 6b8dad86 | Adam Menz | showError("There was a problem confirming your resize." + exception.getMessage(), bundle);
|
105 | 51fdecfb | Adam Menz | } |
106 | 51fdecfb | Adam Menz | } |
107 | 51fdecfb | Adam Menz | } |
108 | 51fdecfb | Adam Menz | |
109 | 51fdecfb | Adam Menz | |
110 | 51fdecfb | Adam Menz | private class RollbackResizeTask extends AsyncTask<Void, Void, HttpBundle> { |
111 | 51fdecfb | Adam Menz | |
112 | 51fdecfb | Adam Menz | private CloudServersException exception;
|
113 | 51fdecfb | Adam Menz | |
114 | 51fdecfb | Adam Menz | @Override
|
115 | 51fdecfb | Adam Menz | //let user know their process has started
|
116 | 51fdecfb | Adam Menz | protected void onPreExecute(){ |
117 | 51fdecfb | Adam Menz | showToast("Reverting your server.");
|
118 | 51fdecfb | Adam Menz | } |
119 | 51fdecfb | Adam Menz | |
120 | 51fdecfb | Adam Menz | @Override
|
121 | 51fdecfb | Adam Menz | protected HttpBundle doInBackground(Void... arg0) { |
122 | 51fdecfb | Adam Menz | HttpBundle bundle = null;
|
123 | 51fdecfb | Adam Menz | try {
|
124 | 6b8dad86 | Adam Menz | bundle = (new ServerManager()).revertResize(server, getContext());
|
125 | 51fdecfb | Adam Menz | } catch (CloudServersException e) {
|
126 | 51fdecfb | Adam Menz | exception = e; |
127 | 51fdecfb | Adam Menz | } |
128 | 51fdecfb | Adam Menz | return bundle;
|
129 | 51fdecfb | Adam Menz | } |
130 | 51fdecfb | Adam Menz | |
131 | 51fdecfb | Adam Menz | @Override
|
132 | 51fdecfb | Adam Menz | protected void onPostExecute(HttpBundle bundle) { |
133 | 51fdecfb | Adam Menz | HttpResponse response = bundle.getResponse(); |
134 | 51fdecfb | Adam Menz | if (response != null) { |
135 | 51fdecfb | Adam Menz | int statusCode = response.getStatusLine().getStatusCode();
|
136 | 51fdecfb | Adam Menz | if(statusCode == 202){ showToast("Server was successfully reverted."); } |
137 | 51fdecfb | Adam Menz | else {
|
138 | 51fdecfb | Adam Menz | CloudServersException cse = parseCloudServersException(response); |
139 | 51fdecfb | Adam Menz | if ("".equals(cse.getMessage())) { |
140 | 6b8dad86 | Adam Menz | showError("There was a problem reverting your server.", bundle);
|
141 | 51fdecfb | Adam Menz | } else {
|
142 | 6b8dad86 | Adam Menz | showError("There was a problem reverting your server." + cse.getMessage(), bundle);
|
143 | 51fdecfb | Adam Menz | } |
144 | 51fdecfb | Adam Menz | } |
145 | 51fdecfb | Adam Menz | } else if (exception != null) { |
146 | 6b8dad86 | Adam Menz | showError("There was a problem reverting your server." + exception.getMessage(), bundle);
|
147 | 51fdecfb | Adam Menz | |
148 | 51fdecfb | Adam Menz | } |
149 | 51fdecfb | Adam Menz | } |
150 | 51fdecfb | Adam Menz | } |
151 | 51fdecfb | Adam Menz | |
152 | 51fdecfb | Adam Menz | } |