package com.facebook.android;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.os.Handler;
import android.text.method.LinkMovementMethod;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.TextView;
public class UpdateStatusResultDialog extends Dialog {
private Bundle values;
private TextView mOutput, mUsefulTip;
private Button mViewPostButton, mDeletePostButton;
private Activity activity;
private Handler mHandler;
public UpdateStatusResultDialog(Activity activity, String title, Bundle values) {
super(activity);
this.activity = activity;
this.values = values;
setTitle(title);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mHandler = new Handler();
setContentView(R.layout.update_post_response);
LayoutParams params = getWindow().getAttributes();
params.width = LayoutParams.FILL_PARENT;
params.height = LayoutParams.FILL_PARENT;
getWindow().setAttributes((android.view.WindowManager.LayoutParams) params);
mOutput = (TextView) findViewById(R.id.apiOutput);
mOutput.setText(values.toString());
mUsefulTip = (TextView) findViewById(R.id.usefulTip);
mUsefulTip.setMovementMethod(LinkMovementMethod.getInstance());
mViewPostButton = (Button) findViewById(R.id.view_post_button);
mDeletePostButton = (Button) findViewById(R.id.delete_post_button);
final String postId = values.getString("post_id");
mViewPostButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
/*
* Source tag: view_post_tag
*/
Utility.mAsyncRunner.request(postId, new WallPostRequestListener());
}
});
mDeletePostButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
/*
* Source tag: delete_post_tag
*/
Utility.mAsyncRunner.request(postId, new Bundle(), "DELETE",
new WallPostDeleteListener(), null);
}
});
}
public class WallPostRequestListener extends BaseRequestListener {
@Override
public void onComplete(final String response, final Object state) {
try {
JSONObject json = new JSONObject(response);
setText(json.toString(2));
} catch (JSONException e) {
setText(activity.getString(R.string.exception) + e.getMessage());
}
}
public void onFacebookError(FacebookError error) {
setText(activity.getString(R.string.facebook_error) + error.getMessage());
}
}
public class WallPostDeleteListener extends BaseRequestListener {
@Override
public void onComplete(final String response, final Object state) {
if (response.equals("true")) {
String message = "Wall Post deleted" + "\n";
message += "Api Response: " + response;
setText(message);
} else {
setText("wall post could not be deleted");
}
}
public void onFacebookError(FacebookError error) {
setText(activity.getString(R.string.facebook_error) + error.getMessage());
}
}
public void setText(final String txt) {
mHandler.post(new Runnable() {
@Override
public void run() {
mOutput.setText(txt);
}
});
}
}