mirror of
https://github.com/geometer/FBReaderJ.git
synced 2025-10-04 10:19:33 +02:00
cosmetic changes
This commit is contained in:
parent
eb8539c9c6
commit
445617aef1
3 changed files with 76 additions and 76 deletions
2
TODO.1.5
2
TODO.1.5
|
@ -6,7 +6,7 @@ Amazon store: issues
|
||||||
|
|
||||||
1.5.6:
|
1.5.6:
|
||||||
|
|
||||||
DELAYED something wrong with epubbud catalog
|
* something wrong with epubbud catalog
|
||||||
* duplicates: *.epub vs. *.epub:xxx.opf
|
* duplicates: *.epub vs. *.epub:xxx.opf
|
||||||
|
|
||||||
1.5.*:
|
1.5.*:
|
||||||
|
|
|
@ -39,7 +39,7 @@ public class FileTypeCollection {
|
||||||
addType(new SimpleFileType("PDF", "pdf", MimeType.TYPES_PDF));
|
addType(new SimpleFileType("PDF", "pdf", MimeType.TYPES_PDF));
|
||||||
addType(new FileTypeDjVu());
|
addType(new FileTypeDjVu());
|
||||||
addType(new SimpleFileType("ZIP archive", "zip", Collections.singletonList(MimeType.APP_ZIP)));
|
addType(new SimpleFileType("ZIP archive", "zip", Collections.singletonList(MimeType.APP_ZIP)));
|
||||||
addType(new SimpleFileType("DOC", "doc", MimeType.TYPES_DOC));
|
addType(new SimpleFileType("MS Word document", "doc", MimeType.TYPES_DOC));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addType(FileType type) {
|
private void addType(FileType type) {
|
||||||
|
|
|
@ -23,85 +23,85 @@ import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
|
||||||
public class MergedInputStream extends InputStream {
|
public class MergedInputStream extends InputStream {
|
||||||
private final InputStream[] myStreams;
|
private final InputStream[] myStreams;
|
||||||
private InputStream myCurrentStream;
|
private InputStream myCurrentStream;
|
||||||
private int myCurrentStreamNumber;
|
private int myCurrentStreamNumber;
|
||||||
|
|
||||||
public MergedInputStream(InputStream[] streams) throws IOException {
|
public MergedInputStream(InputStream[] streams) throws IOException {
|
||||||
myStreams = streams;
|
myStreams = streams;
|
||||||
myCurrentStream = streams[0];
|
myCurrentStream = streams[0];
|
||||||
myCurrentStreamNumber = 0;
|
myCurrentStreamNumber = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int read() throws IOException {
|
public int read() throws IOException {
|
||||||
int readed = -1;
|
int readed = -1;
|
||||||
boolean streamIsAvailable = true;
|
boolean streamIsAvailable = true;
|
||||||
while (readed == -1 && streamIsAvailable) {
|
while (readed == -1 && streamIsAvailable) {
|
||||||
readed = myCurrentStream.read();
|
readed = myCurrentStream.read();
|
||||||
if (readed == -1) {
|
if (readed == -1) {
|
||||||
streamIsAvailable = nextStream();
|
streamIsAvailable = nextStream();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return readed;
|
return readed;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int read(byte[] b, int off, int len) throws IOException {
|
public int read(byte[] b, int off, int len) throws IOException {
|
||||||
int bytesToRead = len;
|
int bytesToRead = len;
|
||||||
int bytesReaded = 0;
|
int bytesReaded = 0;
|
||||||
boolean streamIsAvailable = true;
|
boolean streamIsAvailable = true;
|
||||||
while (bytesToRead > 0 && streamIsAvailable) {
|
while (bytesToRead > 0 && streamIsAvailable) {
|
||||||
int readed = myCurrentStream.read(b, off, bytesToRead);
|
int readed = myCurrentStream.read(b, off, bytesToRead);
|
||||||
if (readed != -1) {
|
if (readed != -1) {
|
||||||
bytesToRead -= readed;
|
bytesToRead -= readed;
|
||||||
off += readed;
|
off += readed;
|
||||||
bytesReaded += readed;
|
bytesReaded += readed;
|
||||||
}
|
}
|
||||||
if (bytesToRead != 0) {
|
if (bytesToRead != 0) {
|
||||||
streamIsAvailable = nextStream();
|
streamIsAvailable = nextStream();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return bytesReaded == 0 ? -1 : bytesReaded;
|
return bytesReaded == 0 ? -1 : bytesReaded;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long skip(long n) throws IOException {
|
public long skip(long n) throws IOException {
|
||||||
long skipped = myCurrentStream.skip(n);
|
long skipped = myCurrentStream.skip(n);
|
||||||
boolean streamIsAvailable = true;
|
boolean streamIsAvailable = true;
|
||||||
while (skipped < n && streamIsAvailable) {
|
while (skipped < n && streamIsAvailable) {
|
||||||
streamIsAvailable = nextStream();
|
streamIsAvailable = nextStream();
|
||||||
if (streamIsAvailable) {
|
if (streamIsAvailable) {
|
||||||
skipped += myCurrentStream.skip(n - skipped);
|
skipped += myCurrentStream.skip(n - skipped);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return skipped;
|
return skipped;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int available() throws IOException {
|
public int available() throws IOException {
|
||||||
int total = 0;
|
int total = 0;
|
||||||
for (int i = myCurrentStreamNumber; i < myStreams.length; ++i) {
|
for (int i = myCurrentStreamNumber; i < myStreams.length; ++i) {
|
||||||
total += myStreams[i].available();
|
total += myStreams[i].available();
|
||||||
}
|
}
|
||||||
return total;
|
return total;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void reset() throws IOException {
|
public void reset() throws IOException {
|
||||||
myCurrentStream = myStreams[0];
|
myCurrentStream = myStreams[0];
|
||||||
myCurrentStreamNumber = 0;
|
myCurrentStreamNumber = 0;
|
||||||
for (InputStream stream : myStreams) {
|
for (InputStream stream : myStreams) {
|
||||||
stream.reset();
|
stream.reset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean nextStream() {
|
private boolean nextStream() {
|
||||||
if (myCurrentStreamNumber + 1 >= myStreams.length) {
|
if (myCurrentStreamNumber + 1 >= myStreams.length) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
++myCurrentStreamNumber;
|
++myCurrentStreamNumber;
|
||||||
myCurrentStream = myStreams[myCurrentStreamNumber];
|
myCurrentStream = myStreams[myCurrentStreamNumber];
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue