Skip to content

Commit 22cc8cc

Browse files
committed
Find the first page from spine item instead of toc
1 parent 1c197f3 commit 22cc8cc

File tree

2 files changed

+12
-27
lines changed

2 files changed

+12
-27
lines changed

OCEBook/app/src/main/java/com/devgrapher/ocebook/WebViewFragment.java

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import android.webkit.WebViewClient;
1919
import android.widget.TextView;
2020

21+
import com.devgrapher.ocebook.readium.TocManager;
2122
import com.devgrapher.ocebook.readium.ScriptProcessor;
2223
import com.devgrapher.ocebook.readium.ReadiumServer;
2324
import com.devgrapher.ocebook.model.ContainerHolder;
@@ -30,15 +31,11 @@
3031
import org.readium.sdk.android.Container;
3132
import org.readium.sdk.android.Package;
3233
import org.readium.sdk.android.SpineItem;
33-
import org.readium.sdk.android.components.navigation.NavigationElement;
34-
import org.readium.sdk.android.components.navigation.NavigationPoint;
3534

3635
import java.io.IOException;
3736
import java.io.InputStream;
3837
import java.util.List;
3938
import java.util.Locale;
40-
import java.util.stream.Collectors;
41-
import java.util.stream.Stream;
4239

4340

4441
/**
@@ -59,7 +56,7 @@ public class WebViewFragment extends Fragment {
5956
private ViewerSettings mViewerSettings;
6057
private ReadiumJSApi mReadiumJSApi;
6158
private ReadiumServer mReadiumServer;
62-
private List<NavigationPoint> mNavPoints;
59+
private TocManager mTocManager;
6360

6461
private WebView mWebView;
6562
private TextView mPageInfoTextView;
@@ -109,11 +106,6 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
109106
initWebView();
110107
intReadium();
111108

112-
//TODO: TEST 작성
113-
mNavPoints = flatNavigationElement(mPackage.getTableOfContents())
114-
.filter(e -> e instanceof NavigationPoint)
115-
.map(e -> (NavigationPoint)e)
116-
.collect(Collectors.toList());
117109

118110
mViewerSettings = new ViewerSettings(
119111
ViewerSettings.SyntheticSpreadMode.AUTO,
@@ -128,14 +120,10 @@ public void loadJS(String javascript) {
128120

129121
mReadiumServer.start();
130122

123+
mTocManager = new TocManager(mPackage);
131124
return view;
132125
}
133126

134-
public Stream<NavigationElement> flatNavigationElement(final NavigationElement elem) {
135-
return Stream.concat(
136-
Stream.of(elem),
137-
elem.getChildren().stream().flatMap(e -> flatNavigationElement(e)));
138-
}
139127

140128
private void initWebView() {
141129
if ((getContext().getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE)
@@ -307,15 +295,12 @@ public final class ReadiumJsEventListener implements ScriptProcessor.JsEventList
307295
@Override
308296
public void onReaderInitialized() {
309297
getActivity().runOnUiThread(() -> {
310-
if (mNavPoints.size() == 0)
311-
return;
312-
313-
NavigationPoint nav = mNavPoints.get(0);
314-
OpenPageRequest openPageRequest =
315-
OpenPageRequest.fromContentUrl(nav.getContent(),
316-
mPackage.getTableOfContents().getSourceHref());
317-
318-
mReadiumJSApi.openBook(mPackage, mViewerSettings, openPageRequest);
298+
mPackage.getSpineItems().stream()
299+
.findAny()
300+
.ifPresent(item -> {
301+
mReadiumJSApi.openBook(mPackage, mViewerSettings,
302+
OpenPageRequest.fromIdref(item.getIdRef()));
303+
});
319304
});
320305
}
321306

OCEBook/app/src/main/java/com/devgrapher/ocebook/readium/ReadiumServer.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111

1212
public class ReadiumServer {
1313
private static final String TAG = ReadiumServer.class.toString();
14-
private WebServer mServer;
15-
private ScriptProcessor mScriptProcessor;
16-
private Package mPackage;
14+
private final WebServer mServer;
15+
private final ScriptProcessor mScriptProcessor;
16+
private final Package mPackage;
1717

1818
private final WebServer.DataPreProcessor dataPreProcessor =
1919
new WebServer.DataPreProcessor() {

0 commit comments

Comments
 (0)