Skip to content

Commit

Permalink
add volume up down
Browse files Browse the repository at this point in the history
  • Loading branch information
jsbxyyx committed Jul 9, 2024
1 parent 58b4498 commit ae4ea11
Show file tree
Hide file tree
Showing 3 changed files with 84 additions and 52 deletions.
43 changes: 22 additions & 21 deletions app/src/main/assets/www/epub.html
Original file line number Diff line number Diff line change
Expand Up @@ -47,29 +47,22 @@
margin-bottom: 40px;
}
.page-tool {
position: absolute;
height: 150px;
position: fixed;
width: 100%;
height: 30px;
bottom: 0px;
left: 5px;
z-index: 1000;
}
.draggable-button {
display: flex;
align-items: center;
justify-content: center;
width: 50px;
height: 50px;
background-color: rgba(0, 0, 0, 0.5);
color: white;
border: none;
border-radius: 50%;
text-align: center;
line-height: 50px;
font-size: 16px;
opacity: 0.5;
.next {
width: 40%;
}
.prev {
width: 40%;
}
.focus {
width: 50px;
width: 10%;
/* width: 50px; */
}
#epub-outline {
position: fixed;
Expand Down Expand Up @@ -109,9 +102,9 @@
<div style="display: none;" id="epub-dialog"></div>
<div id="epub-container"></div>
<div class="page-tool" id="page-tool">
<button onclick="focusMode()" class="focus draggable-button"></button>
<button onclick="prev()" class="prev draggable-button"></button>
<button onclick="next()" class="next draggable-button"></button>
<button onclick="next()" class="next">下一页</button>
<button onclick="prev()" class="prev">上一页</button>
<button onclick="focusMode()" class="focus"></button>
</div>

<script src="jszip.min.js"></script>
Expand Down Expand Up @@ -214,7 +207,7 @@
var rendition = book.renderTo("epub-container", {
manager: "continuous",
width: (window.innerWidth) + 'px',
height: (window.innerHeight - epubToolHeight) + "px"
height: (window.innerHeight - pageToolHeight - epubToolHeight) + "px"
});
var displayed = rendition.display();

Expand Down Expand Up @@ -378,6 +371,14 @@
}
outlineClose('epub-dialog');
}
function handleVolumeKey(key) {
console.log('key:' + key);
if (key == 'up') {
prev();
} else if (key == 'down') {
next();
}
}
</script>
</body>
</html>
78 changes: 47 additions & 31 deletions app/src/main/assets/www/pdf.html
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,31 @@
currentPage = parseInt(cur);
}
var container = document.getElementById('pdf-container');
var g_pdf = null;

function renderPage(pdf, pageNumber) {
container.innerHTML = ''; // 清空容器
pdf.getPage(pageNumber).then(function(page) {
var scale = 1.5;
var viewport = page.getViewport(scale);
var canvas = document.createElement('canvas');
var context = canvas.getContext('2d');
canvas.width = viewport.width
canvas.height = viewport.height;
page.render({
canvasContext: context,
viewport: viewport
});
container.appendChild(canvas);
currentPage = pageNumber;
console.log('currentPage:' + currentPage + ', totalPage:' + totalPage);
if (currentPage > 0 && totalPage > 0) {
if (window.xbook) {
window.xbook.report(book_id, currentPage, totalPage);
}
}
});
}

//pdfjsLib.GlobalWorkerOptions.workerSrc = "pdf.worker.js"
pdfjsLib.getDocument({
Expand All @@ -105,6 +130,7 @@
cMapPacked: true,
}).then((pdf) => {
console.log('pdf ready');
g_pdf = pdf;

//console.log(pdf.numPages);
var totalPage = pdf.numPages;
Expand All @@ -115,45 +141,35 @@
//console.log('index:', pdf.getPageIndex(r[0]['dest'][0]))
});

function renderPage(pageNumber) {
container.innerHTML = ''; // 清空容器
pdf.getPage(pageNumber).then(function(page) {
var scale = 1.5;
var viewport = page.getViewport(scale);
var canvas = document.createElement('canvas');
var context = canvas.getContext('2d');
canvas.width = viewport.width
canvas.height = viewport.height;
page.render({
canvasContext: context,
viewport: viewport
});
container.appendChild(canvas);
currentPage = pageNumber;
console.log('currentPage:' + currentPage + ', totalPage:' + totalPage);
if (currentPage > 0 && totalPage > 0) {
if (window.xbook) {
window.xbook.report(book_id, currentPage, totalPage);
}
}
});
}
renderPage(currentPage);
renderPage(pdf, currentPage);

document.getElementById('prev').addEventListener('click', (e) => {
if (currentPage > 1) {
renderPage(currentPage - 1);
}
prev();
});

document.getElementById('next').addEventListener('click', (e) => {
if (currentPage < pdf.numPages) {
renderPage(currentPage + 1);
}
next();
});

});

function prev() {
if (g_pdf && currentPage > 1) {
renderPage(g_pdf, currentPage - 1);
}
}
function next() {
if (g_pdf && currentPage < g_pdf.numPages) {
renderPage(g_pdf, currentPage + 1);
}
}
function handleVolumeKey(key) {
console.log('key:' + key);
if (key == 'up') {
prev();
} else if (key == 'down') {
next();
}
}
</script>
</body>
</html>
15 changes: 15 additions & 0 deletions app/src/main/java/com/github/jsbxyyx/xbook/ViewActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebView;
import android.widget.Toast;

Expand Down Expand Up @@ -160,4 +161,18 @@ public void call(JsonNode o, Throwable err) {
}
}

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
if (event.getKeyCode() == KeyEvent.KEYCODE_VOLUME_UP) {
webView.evaluateJavascript("javascript:handleVolumeKey('up')", null);
return true;
} else if (event.getKeyCode() == KeyEvent.KEYCODE_VOLUME_DOWN) {
webView.evaluateJavascript("javascript:handleVolumeKey('down')", null);
return true;
}
}
return super.dispatchKeyEvent(event);
}

}

0 comments on commit ae4ea11

Please sign in to comment.