1 package com.folioreader.ui.base;
3 import android.content.Context;
5 import com.folioreader.Config;
6 import com.folioreader.Constants;
7 import com.folioreader.R;
10 * @author gautam chibde on 14/6/17.
13 public final class HtmlUtil {
16 * Function modifies input html string by adding extra css,js and font information.
18 * @param context Activity Context
19 * @param htmlContent input html raw data
20 * @return modified raw html string
22 public static String getHtmlContent(Context context, String htmlContent, Config config) {
24 String.format(context.getString(R.string.css_tag), "file:///android_asset/css/Style.css");
27 String jsPath = String.format(context.getString(R.string.script_tag),
28 "file:///android_asset/js/jsface.min.js");
30 jsPath + String.format(context.getString(R.string.script_tag),
31 "file:///android_asset/js/jquery-3.1.1.min.js");
34 jsPath + String.format(context.getString(R.string.script_tag),
35 "file:///android_asset/js/rangy-core.js");
37 jsPath + String.format(context.getString(R.string.script_tag),
38 "file:///android_asset/js/rangy-highlighter.js");
40 jsPath + String.format(context.getString(R.string.script_tag),
41 "file:///android_asset/js/rangy-classapplier.js");
43 jsPath + String.format(context.getString(R.string.script_tag),
44 "file:///android_asset/js/rangy-serializer.js");
46 jsPath + String.format(context.getString(R.string.script_tag),
47 "file:///android_asset/js/rangy-serializer.js");
49 jsPath + String.format(context.getString(R.string.script_tag),
50 "file:///android_asset/js/Bridge.js");
53 jsPath + String.format(context.getString(R.string.script_tag),
54 "file:///android_asset/android.selection.js");
56 jsPath + String.format(context.getString(R.string.script_tag_method_call),
57 "setMediaOverlayStyleColors('#C0ED72','#C0ED72')");
59 String toInject = "\n" + cssPath + "\n" + jsPath + "\n</head>";
60 htmlContent = htmlContent.replace("</head>", toInject);
63 switch (config.getFont()) {
64 case Constants.FONT_EBGARAMOND:
67 case Constants.FONT_LATO:
70 case Constants.FONT_LORA:
73 case Constants.FONT_RALEWAY:
80 if (config.isNightMode()) {
81 classes += " nightMode";
84 switch (config.getFontSize()) {
86 classes += " textSizeOne";
89 classes += " textSizeTwo";
92 classes += " textSizeThree";
95 classes += " textSizeFour";
98 classes += " textSizeFive";
104 switch (config.getMarginSize()) {
106 classes += " marginSizeOne";
109 classes += " marginSizeTwo";
112 classes += " marginSizeThree";
115 classes += " marginSizeFour";
118 classes += " marginSizeFive";
124 switch (config.getInterlineSize()) {
126 classes += " interlineSizeOne";
129 classes += " interlineSizeTwo";
132 classes += " interlineSizeThree";
135 classes += " interlineSizeFour";
138 classes += " interlineSizeFive";
144 htmlContent = htmlContent.replace("<html ", "<html class=\"" + classes + "\" ");