Revision 23cc0515
b/src/com/rackspace/cloud/servers/api/client/ImageManager.java | ||
---|---|---|
21 | 21 |
import org.xml.sax.XMLReader; |
22 | 22 |
|
23 | 23 |
import android.content.Context; |
24 |
import android.util.Log; |
|
24 | 25 |
|
25 | 26 |
import com.rackspace.cloud.files.api.client.CustomHttpClient; |
26 | 27 |
import com.rackspace.cloud.servers.api.client.parsers.ImagesXMLParser; |
... | ... | |
66 | 67 |
|
67 | 68 |
return images; |
68 | 69 |
} |
70 |
|
|
71 |
public Image getImageDetails(int id, Context context){ |
|
72 |
|
|
73 |
CustomHttpClient httpclient = new CustomHttpClient(context); |
|
74 |
HttpGet get = new HttpGet(Account.getAccount().getServerUrl() + "/images/" + id + ".xml"); |
|
75 |
Image image = new Image(); |
|
76 |
|
|
77 |
get.addHeader("X-Auth-Token", Account.getAccount().getAuthToken()); |
|
78 |
|
|
79 |
try { |
|
80 |
HttpResponse resp = httpclient.execute(get); |
|
81 |
BasicResponseHandler responseHandler = new BasicResponseHandler(); |
|
82 |
String body = responseHandler.handleResponse(resp); |
|
83 |
|
|
84 |
if (resp.getStatusLine().getStatusCode() == 200 || resp.getStatusLine().getStatusCode() == 203) { |
|
85 |
|
|
86 |
ImagesXMLParser imagesXMLParser = new ImagesXMLParser(); |
|
87 |
SAXParser saxParser = SAXParserFactory.newInstance().newSAXParser(); |
|
88 |
XMLReader xmlReader = saxParser.getXMLReader(); |
|
89 |
xmlReader.setContentHandler(imagesXMLParser); |
|
90 |
xmlReader.parse(new InputSource(new StringReader(body))); |
|
91 |
image = imagesXMLParser.getImage(); |
|
92 |
} |
|
93 |
} catch (ClientProtocolException cpe) { |
|
94 |
Log.d("info", "error " + cpe.toString()); |
|
95 |
} catch (IOException e) { |
|
96 |
Log.d("info", "error " + e.toString()); |
|
97 |
} catch (ParserConfigurationException e) { |
|
98 |
Log.d("info", "error " + e.toString()); |
|
99 |
} catch (SAXException e) { |
|
100 |
Log.d("info", "error " + e.toString()); |
|
101 |
} catch (FactoryConfigurationError e) { |
|
102 |
Log.d("info", "error " + e.toString()); |
|
103 |
} |
|
104 |
|
|
105 |
return image; |
|
106 |
} |
|
69 | 107 |
} |
b/src/com/rackspace/cloud/servers/api/client/Server.java | ||
---|---|---|
117 | 117 |
* @return the image |
118 | 118 |
*/ |
119 | 119 |
public Image getImage() { |
120 |
Image image = Image.getImages().get(imageId);
|
|
121 |
if (image == null) {
|
|
122 |
image = new Image();
|
|
120 |
Image tempImage = Image.getImages().get(imageId);
|
|
121 |
if (tempImage == null) {
|
|
122 |
tempImage = new Image();
|
|
123 | 123 |
} |
124 |
return image; |
|
124 |
return tempImage; |
|
125 |
|
|
125 | 126 |
} |
126 | 127 |
|
127 | 128 |
public String toXML() { |
b/src/com/rackspacecloud/android/ListServersActivity.java | ||
---|---|---|
11 | 11 |
import android.content.Intent; |
12 | 12 |
import android.os.AsyncTask; |
13 | 13 |
import android.os.Bundle; |
14 |
import android.util.Log; |
|
14 | 15 |
import android.view.LayoutInflater; |
15 | 16 |
import android.view.Menu; |
16 | 17 |
import android.view.MenuInflater; |
... | ... | |
196 | 197 |
TextView label = (TextView) row.findViewById(R.id.label); |
197 | 198 |
label.setText(server.getName()); |
198 | 199 |
|
199 |
TextView sublabel = (TextView) row.findViewById(R.id.sublabel); |
|
200 |
sublabel.setText(server.getFlavor().getName() + " - " + server.getImage().getName());
|
|
200 |
TextView sublabel = (TextView) row.findViewById(R.id.sublabel);
|
|
201 |
sublabel.setText(server.getPublicIpAddresses()[0]);
|
|
201 | 202 |
|
202 | 203 |
ImageView icon = (ImageView) row.findViewById(R.id.icon); |
203 | 204 |
icon.setImageResource(server.getImage().iconResourceId()); |
b/src/com/rackspacecloud/android/ViewServerActivity.java | ||
---|---|---|
16 | 16 |
import android.graphics.Color; |
17 | 17 |
import android.os.AsyncTask; |
18 | 18 |
import android.os.Bundle; |
19 |
import android.util.Log; |
|
19 | 20 |
import android.view.Menu; |
20 | 21 |
import android.view.MenuInflater; |
21 | 22 |
import android.view.MenuItem; |
... | ... | |
29 | 30 |
import com.rackspace.cloud.servers.api.client.CloudServersException; |
30 | 31 |
import com.rackspace.cloud.servers.api.client.Flavor; |
31 | 32 |
import com.rackspace.cloud.servers.api.client.Image; |
33 |
import com.rackspace.cloud.servers.api.client.ImageManager; |
|
32 | 34 |
import com.rackspace.cloud.servers.api.client.Server; |
33 | 35 |
import com.rackspace.cloud.servers.api.client.ServerManager; |
34 | 36 |
import com.rackspace.cloud.servers.api.client.http.HttpBundle; |
... | ... | |
52 | 54 |
private PollServerTask pollServerTask; |
53 | 55 |
private boolean canPoll; |
54 | 56 |
private boolean noAskForConfirm; |
57 |
private Image image; |
|
55 | 58 |
|
56 | 59 |
/** Called when the activity is first created. */ |
57 | 60 |
@Override |
... | ... | |
59 | 62 |
super.onCreate(savedInstanceState); |
60 | 63 |
trackPageView(GoogleAnalytics.PAGE_SERVER); |
61 | 64 |
server = (Server) this.getIntent().getExtras().get("server"); |
65 |
//if an old image it wont be on the image list |
|
66 |
//so you have to fetch it manually |
|
67 |
if(server.getImage().getName() == null){ |
|
68 |
GetImageTask getImageTask = new GetImageTask(); |
|
69 |
getImageTask.execute((Void[]) null); |
|
70 |
} |
|
62 | 71 |
setContentView(R.layout.viewserver); |
63 | 72 |
restoreState(savedInstanceState); |
64 | 73 |
} |
... | ... | |
127 | 136 |
|
128 | 137 |
private void loadServerData() { |
129 | 138 |
if(server != null){ |
139 |
|
|
130 | 140 |
TextView name = (TextView) findViewById(R.id.view_server_name); |
131 | 141 |
name.setText(server.getName()); |
132 | 142 |
|
133 | 143 |
TextView os = (TextView) findViewById(R.id.view_server_os); |
134 |
os.setText(server.getImage().getName()); |
|
144 |
if(server.getImage().getName() == null){ |
|
145 |
if(image != null){ |
|
146 |
os.setText(image.getName()); |
|
147 |
} |
|
148 |
} else { |
|
149 |
os.setText(server.getImage().getName()); |
|
150 |
} |
|
135 | 151 |
|
136 | 152 |
TextView memory = (TextView) findViewById(R.id.view_server_memory); |
137 | 153 |
memory.setText(server.getFlavor().getRam() + " MB"); |
... | ... | |
522 | 538 |
} |
523 | 539 |
|
524 | 540 |
} |
541 |
|
|
542 |
private class GetImageTask extends AsyncTask<Void, Void, Image> { |
|
543 |
|
|
544 |
private Image tempImage; |
|
545 |
|
|
546 |
@Override |
|
547 |
protected Image doInBackground(Void... arg0) { |
|
548 |
try { |
|
549 |
tempImage = (new ImageManager()).getImageDetails(Integer.parseInt(server.getImageId()), getContext()); |
|
550 |
} catch (NumberFormatException e) { |
|
551 |
|
|
552 |
} |
|
553 |
return tempImage; |
|
554 |
} |
|
525 | 555 |
|
556 |
@Override |
|
557 |
protected void onPostExecute(Image result) { |
|
558 |
image = result; |
|
559 |
loadServerData(); |
|
560 |
} |
|
526 | 561 |
|
562 |
} |
|
563 |
|
|
527 | 564 |
private class SoftRebootServerTask extends AsyncTask<Void, Void, HttpBundle> { |
528 | 565 |
|
529 | 566 |
private CloudServersException exception; |
Also available in: Unified diff