Skip to content

Commit cdbd9b2

Browse files
committed
better network library initialization error processing
1 parent 645d2b1 commit cdbd9b2

4 files changed

Lines changed: 21 additions & 6 deletions

File tree

src/org/geometerplus/android/fbreader/ProcessHyperlinkAction.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,17 @@
2323
import android.content.ActivityNotFoundException;
2424
import android.net.Uri;
2525

26-
import org.geometerplus.zlibrary.core.network.QuietNetworkContext;
26+
import org.geometerplus.zlibrary.core.network.ZLNetworkException;
2727
import org.geometerplus.zlibrary.text.view.*;
2828

2929
import org.geometerplus.fbreader.fbreader.FBReaderApp;
3030
import org.geometerplus.fbreader.bookmodel.FBHyperlinkType;
3131
import org.geometerplus.fbreader.network.NetworkLibrary;
3232

3333
import org.geometerplus.android.fbreader.network.*;
34+
import org.geometerplus.android.fbreader.network.auth.ActivityNetworkContext;
3435
import org.geometerplus.android.fbreader.image.ImageViewActivity;
36+
import org.geometerplus.android.util.UIUtil;
3537

3638
class ProcessHyperlinkAction extends FBAndroidAction {
3739
ProcessHyperlinkAction(FBReader baseActivity, FBReaderApp fbreader) {
@@ -103,7 +105,13 @@ private void openInBrowser(final String url) {
103105
new Thread(new Runnable() {
104106
public void run() {
105107
if (!url.startsWith("fbreader-action:")) {
106-
nLibrary.initialize(new QuietNetworkContext());
108+
try {
109+
nLibrary.initialize(new ActivityNetworkContext(BaseActivity));
110+
} catch (ZLNetworkException e) {
111+
e.printStackTrace();
112+
UIUtil.showMessageText(BaseActivity, e.getMessage());
113+
return;
114+
}
107115
}
108116
intent.setData(Util.rewriteUri(Uri.parse(nLibrary.rewriteUrl(url, externalUrl))));
109117
BaseActivity.runOnUiThread(new Runnable() {

src/org/geometerplus/android/fbreader/network/NetworkBookInfoActivity.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,10 @@ public void run() {
124124
if (SQLiteNetworkDatabase.Instance() == null) {
125125
new SQLiteNetworkDatabase(getApplication());
126126
}
127-
library.initialize(myNetworkContext);
127+
try {
128+
library.initialize(myNetworkContext);
129+
} catch (ZLNetworkException e) {
130+
}
128131
}
129132

130133
if (myBook == null) {

src/org/geometerplus/android/fbreader/network/Util.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import android.net.Uri;
2828

2929
import org.geometerplus.zlibrary.core.network.ZLNetworkContext;
30+
import org.geometerplus.zlibrary.core.network.ZLNetworkException;
3031
import org.geometerplus.zlibrary.core.options.Config;
3132

3233
import org.geometerplus.fbreader.network.*;
@@ -65,7 +66,10 @@ public void run() {
6566

6667
final NetworkLibrary library = NetworkLibrary.Instance();
6768
if (!library.isInitialized()) {
68-
library.initialize(nc);
69+
try {
70+
library.initialize(nc);
71+
} catch (ZLNetworkException e) {
72+
}
6973
}
7074
if (action != null) {
7175
action.run();

src/org/geometerplus/fbreader/network/NetworkLibrary.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ public boolean isInitialized() {
277277
return myIsInitialized;
278278
}
279279

280-
public synchronized void initialize(ZLNetworkContext nc) {
280+
public synchronized void initialize(ZLNetworkContext nc) throws ZLNetworkException {
281281
if (myIsInitialized) {
282282
return;
283283
}
@@ -287,7 +287,7 @@ public synchronized void initialize(ZLNetworkContext nc) {
287287
} catch (ZLNetworkException e) {
288288
removeAllLoadedLinks();
289289
fireModelChangedEvent(ChangeListener.Code.InitializationFailed, e.getMessage());
290-
return;
290+
throw e;
291291
}
292292

293293
final NetworkDatabase db = NetworkDatabase.Instance();

0 commit comments

Comments
 (0)