With targetSdkVersion=15, can no longer perform UI

operation like closing network connection on
the UI thread.
Thus move operations in onPostExecute to doInBackground.

In SendFusionTablesAsyncTask, close the content after
reading the content.

In MapsGDataConverter, don't write the entire kml file
to the log.
This commit is contained in:
Jimmy Shih
2012-03-19 18:34:00 -07:00
parent 5ae68f0826
commit 1c3dd62d28
4 changed files with 30 additions and 34 deletions
@@ -425,18 +425,26 @@ public class SendFusionTablesAsyncTask extends AbstractSendAsyncTask {
}
boolean isSuccess = response.isSuccessStatusCode();
if (isSuccess) {
InputStream content;
InputStream content = null;
try {
content = response.getContent();
if (setTableId) {
tableId = SendFusionTablesUtils.getTableId(content);
if (tableId == null) {
Log.d(TAG, "tableId is null");
return false;
}
}
} catch (IOException e) {
Log.d(TAG, "Unable to get response", e);
return false;
}
if (setTableId) {
tableId = SendFusionTablesUtils.getTableId(content);
if (tableId == null) {
Log.d(TAG, "tableId is null");
return false;
} finally {
if (content != null) {
try {
content.close();
} catch (IOException e) {
Log.d(TAG, "Unable to close content", e);
}
}
}
} else {
@@ -169,7 +169,6 @@ public class MapsGDataConverter {
xmlSerializer.endTag(null, "Placemark");
xmlSerializer.flush();
entry.setContent(writer.toString());
Log.d("My Google Maps", "Generated kml:\n" + entry.getContent());
Log.d("My Google Maps", "Edit URI: " + entry.getEditUri());
} catch (IOException e) {
e.printStackTrace();
@@ -118,17 +118,17 @@ public class ChooseMapAsyncTask extends AsyncTask<Void, Integer, Boolean> {
@Override
protected Boolean doInBackground(Void... params) {
return getMaps();
}
@Override
protected void onCancelled() {
closeClient();
try {
return getMaps();
} finally {
if (gDataClient != null) {
gDataClient.close();
}
}
}
@Override
protected void onPostExecute(Boolean result) {
closeClient();
success = result;
completed = true;
if (activity != null) {
@@ -136,15 +136,6 @@ public class ChooseMapAsyncTask extends AsyncTask<Void, Integer, Boolean> {
}
}
/**
* Closes the gdata client.
*/
private void closeClient() {
if (gDataClient != null) {
gDataClient.close();
}
}
/**
* Gets all the maps from Google Maps.
*
@@ -76,7 +76,14 @@ public abstract class AbstractSendAsyncTask extends AsyncTask<Void, Integer, Boo
@Override
protected Boolean doInBackground(Void... params) {
return performTask();
try {
return performTask();
} finally {
closeConnection();
if (success) {
saveResult();
}
}
}
@Override
@@ -89,21 +96,12 @@ public abstract class AbstractSendAsyncTask extends AsyncTask<Void, Integer, Boo
@Override
protected void onPostExecute(Boolean result) {
success = result;
if (success) {
saveResult();
}
completed = true;
closeConnection();
if (activity != null) {
activity.onAsyncTaskCompleted(success);
}
}
@Override
protected void onCancelled() {
closeConnection();
}
/**
* Retries the task. First, invalidates the auth token. If can retry, invokes
* {@link #performTask()}. Returns false if cannot retry.