68 lines
2.1 KiB
JavaScript
68 lines
2.1 KiB
JavaScript
(function() {
|
|
if (window.WeReadApi) { return; }
|
|
|
|
function bridge() {
|
|
return window.RDReaderBridge || null;
|
|
}
|
|
|
|
function sharedThemeCSS(theme) {
|
|
if (!theme) { return ''; }
|
|
var backgroundColor = theme.backgroundColor || 'transparent';
|
|
var textColor = theme.textColor || 'inherit';
|
|
return [
|
|
':root {',
|
|
' color-scheme: light;',
|
|
'}',
|
|
'html, body {',
|
|
' background: ' + backgroundColor + ' !important;',
|
|
' color: ' + textColor + ' !important;',
|
|
'}',
|
|
'a {',
|
|
' -webkit-tap-highlight-color: transparent;',
|
|
'}'
|
|
].join('\n');
|
|
}
|
|
|
|
window.WeReadApi = {
|
|
applySharedTheme: function(theme) {
|
|
var css = sharedThemeCSS(theme);
|
|
if (window.RDInjectedCSS) {
|
|
window.RDInjectedCSS.setStyle('ss-reader-theme', css, {
|
|
includeFrames: !!(theme && theme.includeFrames)
|
|
});
|
|
}
|
|
return true;
|
|
},
|
|
applyPagination: function(styleText) {
|
|
return !!(bridge() && bridge().applyPagination(styleText));
|
|
},
|
|
setPageMetrics: function(pageCount, pageStride) {
|
|
return !!(bridge() && bridge().setPageMetrics(pageCount, pageStride));
|
|
},
|
|
scrollToPage: function(pageIndex) {
|
|
return !!(bridge() && bridge().scrollToPage(pageIndex));
|
|
},
|
|
scrollToLocation: function(location, fallbackPageIndex) {
|
|
return !!(bridge() && bridge().scrollToLocation(location, fallbackPageIndex));
|
|
},
|
|
setHighlights: function(items) {
|
|
return !!(bridge() && bridge().setHighlights(items));
|
|
},
|
|
clearHighlights: function() {
|
|
return !!(bridge() && bridge().clearHighlights());
|
|
},
|
|
setSearchPresentation: function(payload) {
|
|
return !!(bridge() && bridge().setSearchPresentation(payload));
|
|
},
|
|
resolveDecorations: function() {
|
|
return bridge() ? bridge().resolveDecorations() : { highlights: [], search: [] };
|
|
},
|
|
reportProgression: function(fragment) {
|
|
return !!(bridge() && bridge().reportProgression(fragment));
|
|
},
|
|
selectionPayload: function() {
|
|
return bridge() ? bridge().selectionPayload() : null;
|
|
}
|
|
};
|
|
})();
|