package kr.kdev.dg1s.biowiki.ui.posts;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.widget.Toast;
import kr.kdev.dg1s.biowiki.BioWiki;
import kr.kdev.dg1s.biowiki.R;
import kr.kdev.dg1s.biowiki.models.Post;
import kr.kdev.dg1s.biowiki.models.PostStatus;
import kr.kdev.dg1s.biowiki.ui.AuthenticatedWebViewActivity;
import kr.kdev.dg1s.biowiki.util.StringUtils;
/**
* Activity for previewing a post or page in a webview.
*/
public class PreviewPostActivity extends AuthenticatedWebViewActivity {
@SuppressLint("SetJavaScriptEnabled")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle extras = getIntent().getExtras();
boolean isPage = getIntent().getBooleanExtra("isPage", false);
if (isPage) {
this.setTitle(StringUtils.unescapeHTML(BioWiki.getCurrentBlog().getBlogName())
+ " - " + getResources().getText(R.string.preview_page));
} else {
this.setTitle(StringUtils.unescapeHTML(BioWiki.getCurrentBlog().getBlogName())
+ " - " + getResources().getText(R.string.preview_post));
}
mWebView.getSettings().setJavaScriptEnabled(true);
if (extras != null) {
long mPostID = extras.getLong("postID");
Post post = BioWiki.wpDB.getPostForLocalTablePostId(mPostID);
if (post == null)
Toast.makeText(this, R.string.post_not_found, Toast.LENGTH_SHORT).show();
else
loadPostPreview(post);
} else if (BioWiki.currentPost != null) {
loadPostPreview(BioWiki.currentPost);
} else {
Toast.makeText(this, R.string.post_not_found, Toast.LENGTH_SHORT).show();
}
}
/**
* Load the post preview. If the post is in a non-public state (e.g. draft status, part of a
* non-public blog, etc), load the preview as an authenticated URL. Otherwise, just load the
* preview normally.
*
* @param post Post to load the preview for.
*/
private void loadPostPreview(Post post) {
if (post != null) {
String url = post.getPermaLink();
if (BioWiki.getCurrentBlog().isPrivate() //blog private
|| post.isLocalDraft()
|| post.isLocalChange()
|| post.getStatusEnum() != PostStatus.PUBLISHED) {
if (-1 == url.indexOf('?')) {
url = url.concat("?preview=true");
} else {
url = url.concat("&preview=true");
}
loadAuthenticatedUrl(url);
} else {
loadUrl(url);
}
}
}
}