package org.wordpress.android.ui.posts; import java.util.Map; import android.app.Dialog; import android.app.ProgressDialog; import android.content.Intent; import android.os.Bundle; import com.justsystems.hpb.pad.R; import org.wordpress.android.WordPress; import org.wordpress.android.models.Postable; import org.wordpress.android.task.AbsDeleteTask; import org.wordpress.android.task.AbsShareUrlTask; import org.wordpress.android.ui.posts.EditPostActivity; public final class PostsActivity extends AbsListActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.postType = POST_TYPE_POST; setTitle(getString(R.string.posts)); } @Override protected Dialog onCreateDialog(int id) { loadingDialog = new ProgressDialog(this); if (id == ID_DIALOG_DELETING) { loadingDialog .setTitle(getResources().getText(R.string.delete_post)); loadingDialog.setMessage(getResources().getText( R.string.attempt_delete_post)); loadingDialog.setCancelable(false); return loadingDialog; } else if (id == ID_DIALOG_SHARE) { loadingDialog.setTitle(getString(R.string.share_url)); loadingDialog.setMessage(getResources().getText( R.string.attempting_fetch_url)); loadingDialog.setCancelable(false); return loadingDialog; } return super.onCreateDialog(id); } @Override void startActivity() { Intent i = new Intent(this, EditPostActivity.class); i.putExtra("id", WordPress.currentBlog.getId()); i.putExtra("isNew", true); startActivityForResult(i, ACTIVITY_EDIT_POST); } @Override AbsShareUrlTask getShareUrlTask() { return new ShareURLTask(this); } @Override AbsDeleteTask getDeleteTask() { return new DeletePostTask(this); } private static class ShareURLTask extends AbsShareUrlTask { public ShareURLTask(AbsListActivity activity) { super(activity); } @Override protected boolean isStatusPublish(Map<?, ?> contentHash) { return "publish".equals(contentHash.get("post_status").toString()); } @Override protected int getNotPublishedMessageId() { return R.string.post_not_published; } @Override protected String getMethod() { return "metaWeblog.getPost"; } @Override protected Object[] getParams(Postable post) { Object[] params = { post.getPostId(), WordPress.currentBlog.getUsername(), WordPress.currentBlog.getPassword() }; return params; } } private static class DeletePostTask extends AbsDeleteTask { public DeletePostTask(AbsListActivity activity) { super(activity); } @Override protected int getDeletedMessageId() { return R.string.post_deleted; } @Override protected int getMessageWhatId() { return R.string.post; } @Override protected String getMethod() { return "blogger.deletePost"; } @Override protected Object[] getParams(Postable post) { Object[] postParams = { "", post.getPostId(), WordPress.currentBlog.getUsername(), WordPress.currentBlog.getPassword() }; return postParams; } } }