Skip to content

Commit d6dd64c

Browse files
committed
Fix crash on app termiation
1 parent a8a7a7d commit d6dd64c

File tree

5 files changed

+28
-16
lines changed

5 files changed

+28
-16
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ public ReadiumContext.PageEventListener createPageEventListener() {
119119

120120
@Override
121121
public void onReaderInitialized() {
122-
getActivity().runOnUiThread(() -> {
122+
runOnUiThread(() -> {
123123
final Package pckg = mReadiumCtx.getPackage();
124124
if (pckg.getSpineItems().size() > 0) {
125125
SpineItem item = pckg.getSpineItems().get(0);
@@ -144,7 +144,7 @@ public void onPaginationChanged(PaginationInfo currentPagesInfo) {
144144
if (openPages.isEmpty())
145145
return;
146146

147-
getActivity().runOnUiThread(() -> {
147+
runOnUiThread(() -> {
148148
final Page page = openPages.get(0);
149149

150150
int totalSpine = currentPagesInfo.getSpineItemCount();

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

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,15 @@ private boolean PrepareBook() {
126126
@Override
127127
protected void onDestroy() {
128128
super.onDestroy();
129+
130+
if (isFinishing()) {
131+
if (mContainer != null) {
132+
ObjectHolder.getInstance().removeContainer(mContainer.getNativePtr());
133+
EPub3.closeBook(mContainer);
134+
sContainerId = 0;
135+
mContainer = null;
136+
}
137+
}
129138
}
130139

131140
@Override
@@ -136,13 +145,6 @@ public void onBackPressed() {
136145
} else {
137146
super.onBackPressed();
138147
}
139-
140-
if (mContainer != null) {
141-
ObjectHolder.getInstance().removeContainer(mContainer.getNativePtr());
142-
EPub3.closeBook(mContainer);
143-
sContainerId = 0;
144-
mContainer = null;
145-
}
146148
}
147149

148150
@Override

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

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -219,19 +219,29 @@ public void onDetach() {
219219
}
220220

221221
@Override
222-
public void onDestroy() {
223-
super.onDestroy();
224-
222+
public void onDestroyView() {
225223
if (mReadiumCtx != null) {
224+
ObjectHolder.getInstance().removeContext(mReadiumCtx.getId());
226225
mReadiumCtx.dispose();
227226
}
227+
super.onDestroyView();
228+
}
229+
230+
@Override
231+
public void onDestroy() {
232+
super.onDestroy();
233+
228234
((ViewGroup) mWebView.getParent()).removeView(mWebView);
229235
mWebView.removeAllViews();
230236
mWebView.clearCache(true);
231237
mWebView.clearHistory();
232238
mWebView.destroy();
239+
}
233240

234-
ObjectHolder.getInstance().removeContext(mReadiumCtx.getId());
241+
public void runOnUiThread(Runnable action) {
242+
if (getActivity() != null) {
243+
getActivity().runOnUiThread(action);
244+
}
235245
}
236246

237247
/**
@@ -294,7 +304,7 @@ public ReadiumContext.PageEventListener createPageEventListener() {
294304

295305
@Override
296306
public void onReaderInitialized() {
297-
getActivity().runOnUiThread(() -> {
307+
runOnUiThread(() -> {
298308
final Package pckg = mReadiumCtx.getPackage();
299309

300310
// Get last open page number.
@@ -324,7 +334,7 @@ public void onPaginationChanged(PaginationInfo currentPagesInfo) {
324334
if (openPages.isEmpty())
325335
return;
326336

327-
getActivity().runOnUiThread(() -> {
337+
runOnUiThread(() -> {
328338
final Package pckg = mReadiumCtx.getPackage();
329339
final Page page = openPages.get(0);
330340

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,6 @@ public void loadJS(String javascript) {
9090
}
9191

9292
public void dispose() {
93-
mWebViewDelegate.loadUrl(READER_SKELETON);
9493
sWebServer.reset();
9594
}
9695

OCEBook/app/src/main/java/com/devgrapher/ocebook/server/ReadimWebServer.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,5 +45,6 @@ public void start(Package pckg) {
4545

4646
public void reset() {
4747
mWebServer.stop();
48+
Laz.yLog(TAG, "Stop Server");
4849
}
4950
}

0 commit comments

Comments
 (0)