package org.softeg.slartus.forpdaplus.classes;
import android.text.TextUtils;
import org.softeg.slartus.forpdaplus.App;
import org.softeg.slartus.forpdaplus.prefs.Preferences;
/**
* Created by slinkin on 25.12.13.
*/
public class HtmlBuilder{
public final String ACTIONBAR_TOP_MARGIN= getMarginTop()+"px";
protected StringBuilder m_Body;
public void beginHtml(String title) {
m_Body = new StringBuilder();
m_Body.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
m_Body.append("<html xml:lang=\"en\" lang=\"en\" xmlns=\"http://www.w3.org/1999/xhtml\">\n");
m_Body.append("<head>\n");
m_Body.append("<meta http-equiv=\"content-type\" content=\"text/html; charset=windows-1251\" />\n");
m_Body.append("<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, user-scalable=no\">\n");
if (!Preferences.System.isDevStyle()) {
addStyleSheetLink(m_Body);
}
m_Body.append("<script type=\"text/javascript\" src=\"file://").append(getStyle().replace(".css","")).append(".js\"></script>\n");
m_Body.append("<script type=\"text/javascript\" src=\"file://").append(Preferences.System.getSystemDir()).append("custom_scripts.js\"></script>\n");
if (Preferences.System.isDevGrid())
m_Body.append("<link rel=\"stylesheet\" type=\"text/css\" href=\"file:///android_asset/grid.css\"/>\n");
if (Preferences.System.isDevBounds())
m_Body.append("<link rel=\"stylesheet\" type=\"text/css\" href=\"file:///android_asset/bounds.css\"/>\n");
addScripts();
m_Body.append("<title>").append(title).append("</title>\n");
m_Body.append("</head>\n");
}
public static int getMarginTop(){
/*int margin = 0;
Context context = App.getContext();
Resources resources = context.getResources();
int statusBar = resources.getIdentifier("status_bar_height", "dimen", "android");
margin += (int) Math.ceil(resources.getDimensionPixelSize(statusBar)/resources.getDisplayMetrics().density);
TypedValue tv = new TypedValue();
App.getContext().getTheme().resolveAttribute(android.support.v7.appcompat.R.attr.actionBarSize, tv, true);
margin += (int) Math.ceil(resources.getDimensionPixelSize(tv.resourceId)/resources.getDisplayMetrics().density);
return margin;*/
return 0;
}
public void addScripts() {
if(App.getInstance().getPreferences().getBoolean("only_custom_script", false)){
m_Body.append("<script type=\"text/javascript\" src=\"file://").append(getStyle().replaceFirst("\\/[\\S\\s][^\\/]*?\\.css","/base_script.js")).append("\"></script>\n");
}else {
//m_Body.append("<script type=\"text/javascript\" src=\"file:///android_asset/forum/js/z_forum_helpers.js\"></script>\n");
m_Body.append("<script type=\"text/javascript\" src=\"file:///android_asset/theme.js\"></script>\n");
m_Body.append("<script type=\"text/javascript\" src=\"file:///android_asset/z_emoticons.js\"></script>\n");
}
}
public void addStyleSheetLink(StringBuilder sb) {
sb.append("<link rel=\"stylesheet\" type=\"text/css\" href=\"file://").append(getStyle()).append("\" />\n");
sb.append("<link rel=\"stylesheet\" type=\"text/css\" href=\"file:///android_asset/fonts/roboto/import.css\"/>\n");
sb.append("<link rel=\"stylesheet\" type=\"text/css\" href=\"file:///android_asset/fonts/flaticons/import.css\"/>\n");
sb.append("<link rel=\"stylesheet\" type=\"text/css\" href=\"file:///android_asset/fonts/fontello/import.css\"/>\n");
}
protected String getStyle() {
return App.getInstance().getThemeCssFileName();
}
public HtmlBuilder append(String str) {
m_Body.append(str);
return this;
}
public void beginBody(String id) {
beginBody(id, null, true);
}
public void beginBody(String id, CharSequence bodyScript, boolean isImage) {
m_Body.append("<body id=\"").append(id).append("\" class=\"modification ")
.append(isImage ? "" : "noimages ")
.append(App.getInstance().isNewYear() ? "newyear " : "")
.append(App.getInstance().getPreferences().getBoolean("isAccelerateGif", false) ? "ongpuimg \" " : "\" ");
if(App.getInstance().getWebViewFont().equals("")) {
m_Body.append(" ");
}else {
m_Body.append("style=\"font-family:").append(App.getInstance().getWebViewFont()).append(";\" ");
}
m_Body.append(bodyScript == null || TextUtils.isEmpty(bodyScript) ? "" : bodyScript)
.append(">\n");
}
public HtmlBuilder endBody() {
//m_Body.append("<script>jsEmoticons.parseAll('").append("file:///android_asset/forum/style_emoticons/default/").append("');initPostBlock();</script>");
m_Body.append("<script>jsEmoticons.parseAll('").append("file:///android_asset/forum/style_emoticons/default/").append("');</script>");
m_Body.append("</body>\n");
return this;
}
public void endHtml() {
m_Body.append("</html>");
}
public StringBuilder getHtml() {
return m_Body;
}
}