Skip to content
This repository was archived by the owner on May 7, 2025. It is now read-only.

Commit 0d7ae0c

Browse files
committed
Merge branch 'develop'
2 parents 59408c2 + b5f0a49 commit 0d7ae0c

File tree

9 files changed

+75
-39
lines changed

9 files changed

+75
-39
lines changed

SDKLauncher-Android/app/build_experimental.gradle

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ model {
3232
}
3333

3434
android {
35-
compileSdkVersion = 25
36-
buildToolsVersion = "25.0.3"
35+
compileSdkVersion = 26
36+
buildToolsVersion = "27.0.2"
3737

3838
defaultConfig {
3939

@@ -44,13 +44,13 @@ model {
4444
minSdkVersion.apiLevel = 19
4545

4646
// manifest/uses-sdk@android:targetSdkVersion attribute in src/main/AndroidManifest.xml
47-
targetSdkVersion.apiLevel = 25
47+
targetSdkVersion.apiLevel = 26
4848

4949
// manifest@android:versionCode attribute in src/main/AndroidManifest.xml
50-
versionCode 25
50+
versionCode 29
5151

5252
// manifest@android:versionName attribute in src/main/AndroidManifest.xml
53-
versionName "1.25"
53+
versionName "1.29"
5454
} //defaultConfig
5555

5656
sources {

SDKLauncher-Android/app/build_stable.gradle

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ def key_password = (rootProject.hasProperty("readium_sign_key_password") ? root
99
def store_password = (rootProject.hasProperty("readium_sign_store_password") ? rootProject.readium_sign_store_password : "nope")
1010

1111
android {
12-
compileSdkVersion = 25
13-
buildToolsVersion = "25.0.3"
12+
compileSdkVersion = 26
13+
buildToolsVersion = "27.0.2"
1414

1515
lintOptions {
1616
checkReleaseBuilds = false
@@ -38,13 +38,13 @@ android {
3838
minSdkVersion 19
3939

4040
// manifest/uses-sdk@android:targetSdkVersion attribute in src/main/AndroidManifest.xml
41-
targetSdkVersion 25
41+
targetSdkVersion 26
4242

4343
// manifest@android:versionCode attribute in src/main/AndroidManifest.xml
44-
versionCode 25
44+
versionCode 29
4545

4646
// manifest@android:versionName attribute in src/main/AndroidManifest.xml
47-
versionName "1.25"
47+
versionName "1.29"
4848
} //defaultConfig
4949

5050
sourceSets {

SDKLauncher-Android/app/src/main/AndroidManifest.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
33
package="org.readium.sdk.android.launcher"
4-
android:versionCode="28"
5-
android:versionName="1.28" >
4+
android:versionCode="29"
5+
android:versionName="1.29" >
66

77
<uses-sdk
88
android:minSdkVersion="19"
9-
android:targetSdkVersion="25" />
9+
android:targetSdkVersion="26" />
1010

1111
<uses-permission android:name="android.permission.INTERNET" />
1212
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

SDKLauncher-Android/app/src/main/java/org/readium/sdk/android/launcher/WebViewActivity.java

Lines changed: 56 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,13 @@ public class WebViewActivity extends FragmentActivity implements
8989
private final boolean quiet = false;
9090

9191
private static final String TAG = "WebViewActivity";
92-
private static final String ASSET_PREFIX = "file:///android_asset/readium-shared-js/";
93-
private static final String READER_SKELETON = "file:///android_asset/readium-shared-js/reader.html";
92+
93+
private static final String ASSET_PREFIX_FILE = "file:///android_asset/readium-shared-js/";
94+
private static final String READER_SKELETON_FILE = ASSET_PREFIX_FILE + "reader.html";
95+
96+
private static final String ASSET_PREFIX = "http://" + EpubServer.HTTP_HOST + ":" + EpubServer.HTTP_PORT + "/readium-shared-js/";
97+
private static final String READER_SKELETON = ASSET_PREFIX + "reader.html";
98+
9499

95100
// Installs "hook" function so that top-level window (application) can later
96101
// inject the window.navigator.epubReadingSystem into this HTML document's
@@ -109,25 +114,31 @@ public class WebViewActivity extends FragmentActivity implements
109114
// window.navigator.epubReadingSystem if the expected hook function exists (
110115
// readium_set_epubReadingSystem() ).
111116
private static final String INJECT_EPUB_RSO_SCRIPT_2 = ""
112-
+ "var epubRSInject =\nfunction(win) {"
117+
+ "var epubRSInject =\nfunction(win) {" // 1
113118
+ "\nvar ret = '';"
114119
+ "\nret += win.location.href;"
115120
+ "\nret += ' ---- ';"
116-
+
117121
// "\nret += JSON.stringify(win.navigator.epubReadingSystem);" +
118122
// "\nret += ' ---- ';" +
119-
"\nif (win.frames)"
120-
+ "\n{"
123+
+ "\nif (win.frames)"
124+
+ "\n{" // 2
121125
+ "\nfor (var i = 0; i < win.frames.length; i++)"
122-
+ "\n{"
126+
+ "\n{" // 3
123127
+ "\nvar iframe = win.frames[i];"
124128
+ "\nret += ' IFRAME ';"
129+
+ "\ntry {\n" // 4
125130
+ "\nif (iframe.readium_set_epubReadingSystem)"
126-
+ "\n{"
131+
+ "\n{" // 5
127132
+ "\nret += ' EPBRS ';"
128133
+ "\niframe.readium_set_epubReadingSystem(window.navigator.epubReadingSystem);"
129-
+ "\n}" + "\nret += epubRSInject(iframe);" + "\n}" + "\n}"
130-
+ "\nreturn ret;" + "\n};" + "\nepubRSInject(window);";
134+
+ "\n}" // 5
135+
+ "\nret += epubRSInject(iframe);"
136+
+ "\n} catch(err) { console.log(err); }" // 4
137+
+ "\n}" // 3
138+
+ "\n}" // 2
139+
+ "\nreturn ret;"
140+
+ "\n};" // 1
141+
+ "\nepubRSInject(window);";
131142

132143
// Script tag to inject the "hook" function installer script, added to the
133144
// head of every epub iframe document
@@ -276,7 +287,7 @@ public void loadJS(String javascript) {
276287
protected void onDestroy() {
277288
super.onDestroy();
278289
mServer.stop();
279-
mWebview.loadUrl(READER_SKELETON);
290+
mWebview.loadUrl(READER_SKELETON_FILE);
280291
((ViewGroup) mWebview.getParent()).removeView(mWebview);
281292
mWebview.removeAllViews();
282293
mWebview.clearCache(true);
@@ -481,6 +492,40 @@ public WebResourceResponse shouldInterceptRequest(WebView view,
481492
if (!quiet)
482493
Log.d(TAG, url + " => " + cleanedUrl);
483494

495+
String mime = null;
496+
int dot = cleanedUrl.lastIndexOf('.');
497+
if (dot >= 0) {
498+
mime = EpubServer.MIME_TYPES.get(cleanedUrl.substring(
499+
dot + 1).toLowerCase());
500+
}
501+
if (mime == null) {
502+
mime = "application/octet-stream";
503+
}
504+
505+
if (url.startsWith(ASSET_PREFIX)) {
506+
507+
if (!quiet)
508+
Log.d(TAG, "READER ASSET ...");
509+
510+
// reader.html
511+
if (mime.equals("application/xhtml+xml")) {
512+
mime = "text/html";
513+
}
514+
515+
InputStream is = null;
516+
try {
517+
is = getAssets().open(cleanedUrl);
518+
} catch (IOException e) {
519+
520+
Log.e(TAG, "asset fail: " + cleanedUrl);
521+
522+
return new WebResourceResponse(null, UTF_8,
523+
new ByteArrayInputStream("".getBytes()));
524+
}
525+
526+
return new WebResourceResponse(mime, UTF_8, is);
527+
}
528+
484529
if (cleanedUrl
485530
.matches("\\/?\\d*\\/readium_epubReadingSystem_inject.js")) {
486531
if (!quiet)
@@ -535,15 +580,6 @@ public WebResourceResponse shouldInterceptRequest(WebView view,
535580
return new WebResourceResponse("text/css", UTF_8, is);
536581
}
537582

538-
String mime = null;
539-
int dot = cleanedUrl.lastIndexOf('.');
540-
if (dot >= 0) {
541-
mime = EpubServer.MIME_TYPES.get(cleanedUrl.substring(
542-
dot + 1).toLowerCase());
543-
}
544-
if (mime == null) {
545-
mime = "application/octet-stream";
546-
}
547583

548584
ManifestItem item = mPackage.getManifestItem(cleanedUrl);
549585
String contentType = item != null ? item.getMediaType() : null;

SDKLauncher-Android/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,10 @@ buildscript {
4141
// Use stable gradle or experimental gradle
4242
if (ndkExperimental) {
4343
//https://bintray.com/android/android-tools/com.android.tools.build.gradle-experimental/view
44-
classpath "com.android.tools.build:gradle-experimental:0.9.2"
44+
classpath "com.android.tools.build:gradle-experimental:0.9.3"
4545
} else {
4646
//https://bintray.com/android/android-tools/com.android.tools.build.gradle/view
47-
classpath "com.android.tools.build:gradle:2.3.2"
47+
classpath "com.android.tools.build:gradle:2.3.3"
4848
}
4949
}
5050
}

SDKLauncher-Android/gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@ zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
66
#https://services.gradle.org/distributions
77
# GRADLE EXPERIMENTAL requires 3.3
8-
# GRADLE STABLE works with latest (3.5)
8+
# GRADLE STABLE works with latest (4.4)
99
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip

SDKLauncher-Android/project.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@
1111
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
1212

1313
# Project target.
14-
target=android-25
14+
target=android-26
1515
android.library.reference.1=../readium-sdk/Platform/Android

0 commit comments

Comments
 (0)