From 883641076ed5826cad0ef467a883c6ca1400c891 Mon Sep 17 00:00:00 2001 From: Sean Mac Gillicuddy Date: Mon, 30 Mar 2020 14:13:20 +0100 Subject: [PATCH] #1659 Autoload next video - fix instrumentation compilation - use constant for comparing urls - update constant to now longer be content provider related --- .../java/org/kiwix/kiwixmobile/NetworkTest.java | 3 --- .../kiwixmobile/core/main/CoreMainActivity.java | 4 ++-- .../kiwixmobile/core/main/CoreWebViewClient.java | 9 +++++---- .../kiwix/kiwixmobile/core/reader/ZimFileReader.kt | 12 +++++------- 4 files changed, 12 insertions(+), 16 deletions(-) diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/NetworkTest.java b/app/src/androidTest/java/org/kiwix/kiwixmobile/NetworkTest.java index dc874df72..7beefa3a1 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/NetworkTest.java +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/NetworkTest.java @@ -39,7 +39,6 @@ import org.junit.runner.RunWith; import org.kiwix.kiwixmobile.core.CoreApp; import org.kiwix.kiwixmobile.core.di.components.DaggerTestComponent; import org.kiwix.kiwixmobile.core.di.components.TestComponent; -import org.kiwix.kiwixmobile.core.reader.ZimContentProvider; import org.kiwix.kiwixmobile.main.KiwixMainActivity; import org.kiwix.kiwixmobile.testutils.TestUtils; import org.kiwix.kiwixmobile.utils.KiwixIdlingResource; @@ -92,8 +91,6 @@ public class NetworkTest { CoreApp.setCoreComponent(component); - ZimContentProvider zimContentProvider = new ZimContentProvider(); - CoreApp.getCoreComponent().inject(zimContentProvider); component.inject(this); InputStream library = NetworkTest.class.getClassLoader().getResourceAsStream("library.xml"); InputStream metalinks = diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreMainActivity.java b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreMainActivity.java index 9d0b22d44..080dd9595 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreMainActivity.java +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreMainActivity.java @@ -1390,7 +1390,7 @@ public abstract class CoreMainActivity extends BaseActivity @NotNull private String contentUrl(String articleUrl) { - return Uri.parse(ZimFileReader.CONTENT_URI + articleUrl).toString(); + return Uri.parse(ZimFileReader.CONTENT_PREFIX + articleUrl).toString(); } @NotNull @@ -1689,7 +1689,7 @@ public abstract class CoreMainActivity extends BaseActivity @Override public void webViewLongClick(final String url) { boolean handleEvent = false; - if (url.startsWith(ZimFileReader.CONTENT_URI.toString())) { + if (url.startsWith(ZimFileReader.CONTENT_PREFIX)) { // This is my web site, so do not override; let my WebView load the page handleEvent = true; } else if (url.startsWith("file://")) { diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreWebViewClient.java b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreWebViewClient.java index 89d0c71e9..936cd0ca4 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreWebViewClient.java +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreWebViewClient.java @@ -31,11 +31,12 @@ import androidx.annotation.Nullable; import java.util.HashMap; import org.kiwix.kiwixmobile.core.CoreApp; import org.kiwix.kiwixmobile.core.R; -import org.kiwix.kiwixmobile.core.reader.ZimFileReader; import org.kiwix.kiwixmobile.core.reader.ZimReaderContainer; import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil; import static org.kiwix.kiwixmobile.core.main.CoreMainActivity.HOME_URL; +import static org.kiwix.kiwixmobile.core.reader.ZimFileReader.CONTENT_PREFIX; +import static org.kiwix.kiwixmobile.core.reader.ZimFileReader.UI_URI; import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.EXTRA_EXTERNAL_LINK; import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.TAG_KIWIX; @@ -67,7 +68,7 @@ public abstract class CoreWebViewClient extends WebViewClient { view.loadUrl(zimReaderContainer.getRedirect(url)); return true; } - if (url.startsWith(ZimFileReader.CONTENT_URI.toString())) { + if (url.startsWith(CONTENT_PREFIX)) { return handleEpubAndPdf(url); } if (url.startsWith("file://")) { @@ -78,7 +79,7 @@ public abstract class CoreWebViewClient extends WebViewClient { // Allow javascript for HTML functions and code execution (EX: night mode) return true; } - if (url.startsWith(ZimFileReader.UI_URI.toString())) { + if (url.startsWith(UI_URI.toString())) { Log.e("KiwixWebViewClient", "UI Url " + url + " not supported."); //TODO: Document this code - what's a UI_URL? return true; @@ -143,7 +144,7 @@ public abstract class CoreWebViewClient extends WebViewClient { @Nullable @Override public WebResourceResponse shouldInterceptRequest(WebView view, String url) { - if (url.startsWith("content")) { + if (url.startsWith(CONTENT_PREFIX)) { return zimReaderContainer.load(url); } else { return super.shouldInterceptRequest(view, url); diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/reader/ZimFileReader.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/reader/ZimFileReader.kt index 6caf3a161..d8b095e0b 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/reader/ZimFileReader.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/reader/ZimFileReader.kt @@ -33,7 +33,7 @@ import org.kiwix.kiwixlib.Pair import org.kiwix.kiwixmobile.core.CoreApp import org.kiwix.kiwixmobile.core.NightModeConfig import org.kiwix.kiwixmobile.core.entity.LibraryNetworkEntity.Book -import org.kiwix.kiwixmobile.core.reader.ZimFileReader.Companion.CONTENT_URI +import org.kiwix.kiwixmobile.core.reader.ZimFileReader.Companion.CONTENT_PREFIX import org.kiwix.kiwixmobile.core.search.SearchSuggestion import org.kiwix.kiwixmobile.core.utils.files.FileUtils import java.io.File @@ -135,10 +135,10 @@ class ZimFileReader constructor( fun getRedirect(url: String) = "${toRedirect(url)}" fun isRedirect(url: String) = - url.startsWith("$CONTENT_URI") && url != getRedirect(url) + url.startsWith(CONTENT_PREFIX) && url != getRedirect(url) private fun toRedirect(url: String) = - "$CONTENT_URI${jniKiwixReader.checkUrl(url.toUri().filePath)}".toUri() + "$CONTENT_PREFIX${jniKiwixReader.checkUrl(url.toUri().filePath)}".toUri() private fun loadContent(uri: String) = try { @@ -234,9 +234,7 @@ class ZimFileReader constructor( @JvmField val UI_URI: Uri? = Uri.parse("content://org.kiwix.ui/") - @JvmField - val CONTENT_URI: Uri? = - Uri.parse("content://${CoreApp.getInstance().packageName}.zim.base/") + const val CONTENT_PREFIX: String = "zim://content/" private val INVERT_IMAGES_VIDEO = """ img, video, div[poster], div#header { @@ -260,7 +258,7 @@ private fun String.removeArguments() = substringBefore("?") private val Uri.filePath: String get() = toString().filePath private val String.filePath: String - get() = substringAfter("$CONTENT_URI").substringBefore("#") + get() = substringAfter(CONTENT_PREFIX).substringBefore("#") private val String.mimeType: String? get() = MimeTypeMap.getSingleton().getMimeTypeFromExtension( MimeTypeMap.getFileExtensionFromUrl(this)