1818import android .webkit .WebViewClient ;
1919import android .widget .TextView ;
2020
21+ import com .devgrapher .ocebook .readium .TocManager ;
2122import com .devgrapher .ocebook .readium .ScriptProcessor ;
2223import com .devgrapher .ocebook .readium .ReadiumServer ;
2324import com .devgrapher .ocebook .model .ContainerHolder ;
3031import org .readium .sdk .android .Container ;
3132import org .readium .sdk .android .Package ;
3233import org .readium .sdk .android .SpineItem ;
33- import org .readium .sdk .android .components .navigation .NavigationElement ;
34- import org .readium .sdk .android .components .navigation .NavigationPoint ;
3534
3635import java .io .IOException ;
3736import java .io .InputStream ;
3837import java .util .List ;
3938import 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
0 commit comments