Add context

pull/214/head
M66B 11 months ago
parent 6ddebf90f8
commit 06d63aec7c

@ -7391,7 +7391,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
List<CSSStyleSheet> sheets = List<CSSStyleSheet> sheets =
HtmlHelper.parseStyles(d.head().select("style")); HtmlHelper.parseStyles(d.head().select("style"));
for (Element element : d.select("*")) { for (Element element : d.select("*")) {
String computed = HtmlHelper.processStyles( String computed = HtmlHelper.processStyles(context,
element.tagName(), element.tagName(),
element.className(), element.className(),
element.attr("style"), element.attr("style"),

@ -5858,7 +5858,7 @@ public class FragmentCompose extends FragmentBase {
for (Element element : e.select("*")) { for (Element element : e.select("*")) {
String tag = element.tagName(); String tag = element.tagName();
String clazz = element.attr("class"); String clazz = element.attr("class");
String style = HtmlHelper.processStyles(tag, clazz, null, sheets); String style = HtmlHelper.processStyles(context, tag, clazz, null, sheets);
style = HtmlHelper.mergeStyles(style, element.attr("style")); style = HtmlHelper.mergeStyles(style, element.attr("style"));
if (!TextUtils.isEmpty(style)) if (!TextUtils.isEmpty(style))
element.attr("style", style); element.attr("style", style);

@ -663,7 +663,7 @@ public class HtmlHelper {
// Class style // Class style
String tag = element.tagName(); String tag = element.tagName();
String clazz = element.className(); String clazz = element.className();
String style = processStyles(tag, clazz, null, sheets); String style = processStyles(context, tag, clazz, null, sheets);
// Element style // Element style
style = mergeStyles(style, element.attr("style")); style = mergeStyles(style, element.attr("style"));
@ -1780,17 +1780,17 @@ public class HtmlHelper {
return sheets; return sheets;
} }
static String processStyles(String tag, String clazz, String style, List<CSSStyleSheet> sheets) { static String processStyles(Context context, String tag, String clazz, String style, List<CSSStyleSheet> sheets) {
for (CSSStyleSheet sheet : sheets) for (CSSStyleSheet sheet : sheets)
if (isScreenMedia(sheet.getMedia())) { if (isScreenMedia(context, sheet.getMedia())) {
style = processStyles(null, clazz, style, sheet.getCssRules(), Selector.SAC_ELEMENT_NODE_SELECTOR); style = processStyles(context, null, clazz, style, sheet.getCssRules(), Selector.SAC_ELEMENT_NODE_SELECTOR);
style = processStyles(tag, clazz, style, sheet.getCssRules(), Selector.SAC_ELEMENT_NODE_SELECTOR); style = processStyles(context, tag, clazz, style, sheet.getCssRules(), Selector.SAC_ELEMENT_NODE_SELECTOR);
style = processStyles(tag, clazz, style, sheet.getCssRules(), Selector.SAC_CONDITIONAL_SELECTOR); style = processStyles(context, tag, clazz, style, sheet.getCssRules(), Selector.SAC_CONDITIONAL_SELECTOR);
} }
return style; return style;
} }
private static String processStyles(String tag, String clazz, String style, CSSRuleList rules, int stype) { private static String processStyles(Context context, String tag, String clazz, String style, CSSRuleList rules, int stype) {
for (int i = 0; rules != null && i < rules.getLength(); i++) { for (int i = 0; rules != null && i < rules.getLength(); i++) {
CSSRule rule = rules.item(i); CSSRule rule = rules.item(i);
switch (rule.getType()) { switch (rule.getType()) {
@ -1829,15 +1829,15 @@ public class HtmlHelper {
case CSSRule.MEDIA_RULE: case CSSRule.MEDIA_RULE:
CSSMediaRuleImpl mrule = (CSSMediaRuleImpl) rule; CSSMediaRuleImpl mrule = (CSSMediaRuleImpl) rule;
if (isScreenMedia(mrule.getMedia())) if (isScreenMedia(context, mrule.getMedia()))
style = processStyles(tag, clazz, style, mrule.getCssRules(), stype); style = processStyles(context, tag, clazz, style, mrule.getCssRules(), stype);
break; break;
} }
} }
return style; return style;
} }
private static boolean isScreenMedia(MediaList media) { private static boolean isScreenMedia(Context context, MediaList media) {
// https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries // https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries
// https://developers.google.com/gmail/design/reference/supported_css#supported_types // https://developers.google.com/gmail/design/reference/supported_css#supported_types
if (media instanceof MediaListImpl) { if (media instanceof MediaListImpl) {

Loading…
Cancel
Save