package com.example.android.recipe098;
import java.io.IOException;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import com.google.api.client.http.HttpRequest;
import com.google.api.client.http.HttpResponse;
import com.google.api.client.http.HttpTransport;
public class EditActivity extends Activity {
private static final String GOOGLE_DOCS_API_URL = "https://docs.google.com/feeds/";
private static HttpTransport mTransport;
private EditText mEditText;
private String mDocId;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.edit);
mEditText = (EditText)findViewById(R.id.edit_text);
// インテントからIDを取得
Intent intent = getIntent();
mDocId = intent.getStringExtra("docId");
// GoogleTransportを取得して
mTransport = Recipe098.getTransport();
// URLを生成して
String url = GOOGLE_DOCS_API_URL +
"download/documents/Export?docId=" + mDocId +
"&exportFormat=txt";
// GoogleTransportからGETリクエストを生成
HttpRequest request = mTransport.buildGetRequest();
// URLをセット
request.setUrl(url);
HttpResponse response;
try {
// HTTPリクエストを実行!
response = request.execute();
// HTTPレスポンスをStringにパースします。
// Googleドキュメントの文書をtxtでダウンロードすると
// 改行コードが"\r\n"なので"\n"に置換します。
mEditText.setText(
response.parseAsString().replaceAll("\r\n", "\n"));
} catch (IOException e) {
e.printStackTrace();
}
}
public void onSaveButtonClick(View view) {
// GoogleTransportからPUTリクエストを生成
HttpRequest request = mTransport.buildPutRequest();
// URLを生成して
String url = GOOGLE_DOCS_API_URL +
"default/media/document%3A" + mDocId;
// URLをセット
request.setUrl(url);
// EditTextの内容でPlainTextContentを作って
PlainTextContent content = new PlainTextContent(
mEditText.getText().toString());
// HttpRequestにPlainTextContentをセット
request.content = content;
// HttpRequestのヘッダーのifMatchに"*"をセット
request.headers.ifMatch = "*";
try {
// HTTPリクエストを実行!
request.execute();
} catch (IOException e) {
e.printStackTrace();
}
}
}