From de0b295d3b613d26b73e8d2123a3de08689d0a67 Mon Sep 17 00:00:00 2001 From: Aditya-Sood Date: Thu, 26 Sep 2019 14:01:42 +0530 Subject: [PATCH 1/7] Increment: Use the url returning alternative of getNextSuggestion() provided by kiwix-lib --- .../kiwixmobile/search/AutoCompleteAdapter.java | 8 ++++++-- .../kiwix/kiwixmobile/zim_manager/ZimFileReader.kt | 14 ++++++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/kiwix/kiwixmobile/search/AutoCompleteAdapter.java b/app/src/main/java/org/kiwix/kiwixmobile/search/AutoCompleteAdapter.java index 4a939aac3..da4f223eb 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/search/AutoCompleteAdapter.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/search/AutoCompleteAdapter.java @@ -26,6 +26,7 @@ import android.widget.Filter; import android.widget.Filterable; import android.widget.TextView; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import javax.inject.Inject; import org.kiwix.kiwixlib.JNIKiwix; @@ -117,9 +118,12 @@ public class AutoCompleteAdapter extends ArrayAdapter implements Filtera zimReaderContainer.searchSuggestions(query, 200); String suggestion; String suggestionUrl; + HashMap results; List alreadyAdded = new ArrayList<>(); - while ((suggestion = zimReaderContainer.getNextSuggestion()) != null) { - suggestionUrl = zimReaderContainer.getPageUrlFromTitle(suggestion); + while ((results = zimReaderContainer.getNextSuggestion()) != null) { + suggestion = results.get("title"); + suggestionUrl = results.get("url"); + if (!alreadyAdded.contains(suggestionUrl)) { alreadyAdded.add(suggestionUrl); data.add(suggestion); diff --git a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/ZimFileReader.kt b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/ZimFileReader.kt index eecfea347..93f92714f 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/ZimFileReader.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/ZimFileReader.kt @@ -90,8 +90,18 @@ class ZimFileReader( fun searchSuggestions(prefix: String, count: Int) = jniKiwixReader.searchSuggestions(prefix, count) - fun getNextSuggestion(): String? = - valueOfJniStringAfter(jniKiwixReader::getNextSuggestion) + fun getNextSuggestion(): HashMap? { + val title = JNIKiwixString() + val url = JNIKiwixString() + if (jniKiwixReader.getNextSuggestion(title, url)) { + val results = HashMap() + results.put("title", title.value) + results.put("url", url.value) + return results + } else { + return null + } + } fun getPageUrlFrom(title: String): String? = valueOfJniStringAfter { jniKiwixReader.getPageUrlFromTitle(title, it) } From 24969014cee55603a0df2ee3712eed9a46a8d72d Mon Sep 17 00:00:00 2001 From: Aditya-Sood Date: Thu, 24 Oct 2019 00:49:45 +0530 Subject: [PATCH 2/7] Replace HashMap with a data class for search results --- .../kiwix/kiwixmobile/search/AutoCompleteAdapter.java | 8 ++++---- .../org/kiwix/kiwixmobile/zim_manager/ZimFileReader.kt | 9 ++++----- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/org/kiwix/kiwixmobile/search/AutoCompleteAdapter.java b/app/src/main/java/org/kiwix/kiwixmobile/search/AutoCompleteAdapter.java index da4f223eb..5f90ef0e2 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/search/AutoCompleteAdapter.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/search/AutoCompleteAdapter.java @@ -26,13 +26,13 @@ import android.widget.Filter; import android.widget.Filterable; import android.widget.TextView; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; import javax.inject.Inject; import org.kiwix.kiwixlib.JNIKiwix; import org.kiwix.kiwixlib.JNIKiwixSearcher; import org.kiwix.kiwixmobile.KiwixApplication; import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil; +import org.kiwix.kiwixmobile.zim_manager.NextSuggestion; import org.kiwix.kiwixmobile.zim_manager.ZimReaderContainer; public class AutoCompleteAdapter extends ArrayAdapter implements Filterable { @@ -118,11 +118,11 @@ public class AutoCompleteAdapter extends ArrayAdapter implements Filtera zimReaderContainer.searchSuggestions(query, 200); String suggestion; String suggestionUrl; - HashMap results; + NextSuggestion results; List alreadyAdded = new ArrayList<>(); while ((results = zimReaderContainer.getNextSuggestion()) != null) { - suggestion = results.get("title"); - suggestionUrl = results.get("url"); + suggestion = results.getTitle(); + suggestionUrl = results.getUrl(); if (!alreadyAdded.contains(suggestionUrl)) { alreadyAdded.add(suggestionUrl); diff --git a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/ZimFileReader.kt b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/ZimFileReader.kt index 93f92714f..59d7a4c91 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/ZimFileReader.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/ZimFileReader.kt @@ -90,14 +90,11 @@ class ZimFileReader( fun searchSuggestions(prefix: String, count: Int) = jniKiwixReader.searchSuggestions(prefix, count) - fun getNextSuggestion(): HashMap? { + fun getNextSuggestion(): NextSuggestion? { val title = JNIKiwixString() val url = JNIKiwixString() if (jniKiwixReader.getNextSuggestion(title, url)) { - val results = HashMap() - results.put("title", title.value) - results.put("url", url.value) - return results + return NextSuggestion(title.value, url.value) } else { return null } @@ -248,3 +245,5 @@ private val String.mimeType: String? get() = MimeTypeMap.getSingleton().getMimeTypeFromExtension( MimeTypeMap.getFileExtensionFromUrl(this) ) + +data class NextSuggestion(val title: String, val url: String) From 78cba41b81c3da82f37b9883132aac39e05db023 Mon Sep 17 00:00:00 2001 From: Aditya-Sood Date: Thu, 7 Nov 2019 20:09:42 +0530 Subject: [PATCH 3/7] Solves issue #765 on updated develop --- .../kiwixmobile/core/reader/ZimFileReader.kt | 13 ++++++- .../core/search/AutoCompleteAdapter.java | 10 +++-- .../core/search/NextSearchSuggestion.java | 37 +++++++++++++++++++ 3 files changed, 55 insertions(+), 5 deletions(-) create mode 100644 core/src/main/java/org/kiwix/kiwixmobile/core/search/NextSearchSuggestion.java 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 f14da94fc..673ec0b1f 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 @@ -36,6 +36,7 @@ import org.kiwix.kiwixmobile.core.entity.LibraryNetworkEntity.Book import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil import org.kiwix.kiwixmobile.core.utils.files.FileUtils import org.kiwix.kiwixmobile.core.reader.ZimFileReader.Companion.CONTENT_URI +import org.kiwix.kiwixmobile.core.search.NextSearchSuggestion import java.io.File import java.io.FileDescriptor import java.io.FileOutputStream @@ -98,8 +99,16 @@ class ZimFileReader( fun searchSuggestions(prefix: String, count: Int) = jniKiwixReader.searchSuggestions(prefix, count) - fun getNextSuggestion(): String? = - valueOfJniStringAfter(jniKiwixReader::getNextSuggestion) + fun getNextSuggestion(): NextSearchSuggestion? { + val title = JNIKiwixString() + val url = JNIKiwixString() + if (jniKiwixReader.getNextSuggestion(title, url)) { + val results = NextSearchSuggestion(title.value, url.value) + return results + } else { + return null + } + } fun getPageUrlFrom(title: String): String? = valueOfJniStringAfter { jniKiwixReader.getPageUrlFromTitle(title, it) } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/search/AutoCompleteAdapter.java b/core/src/main/java/org/kiwix/kiwixmobile/core/search/AutoCompleteAdapter.java index c7275ace3..78d027c9a 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/search/AutoCompleteAdapter.java +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/search/AutoCompleteAdapter.java @@ -26,6 +26,7 @@ import android.widget.Filter; import android.widget.Filterable; import android.widget.TextView; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import javax.inject.Inject; import org.kiwix.kiwixlib.JNIKiwix; @@ -117,10 +118,13 @@ public class AutoCompleteAdapter extends ArrayAdapter implements Filtera zimReaderContainer.searchSuggestions(query, 200); String suggestion; String suggestionUrl; + NextSearchSuggestion results; List alreadyAdded = new ArrayList<>(); - while ((suggestion = zimReaderContainer.getNextSuggestion()) != null) { - suggestionUrl = zimReaderContainer.getPageUrlFromTitle(suggestion); - if (!alreadyAdded.contains(suggestionUrl)) { + while ((results = zimReaderContainer.getNextSuggestion()) != null) { + suggestion = results.getTitle(); + suggestionUrl = results.getUrl(); + + if (!alreadyAdded.contains(suggestionUrl)) { alreadyAdded.add(suggestionUrl); data.add(suggestion); } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/search/NextSearchSuggestion.java b/core/src/main/java/org/kiwix/kiwixmobile/core/search/NextSearchSuggestion.java new file mode 100644 index 000000000..9a50a66fe --- /dev/null +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/search/NextSearchSuggestion.java @@ -0,0 +1,37 @@ +/* + * Kiwix Android + * Copyright (c) 2019 Kiwix + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +package org.kiwix.kiwixmobile.core.search; + +public class NextSearchSuggestion { + private String title; + private String url; + + public NextSearchSuggestion(String title, String url) { + this.title = title; + this.url = url; + } + + public String getTitle() { + return title; + } + + public String getUrl() { + return url; + } +} From 4307565c5267416201b17ab3d62a569770b01d6b Mon Sep 17 00:00:00 2001 From: Aditya-Sood Date: Thu, 7 Nov 2019 20:22:36 +0530 Subject: [PATCH 4/7] Fix code style --- .../java/org/kiwix/kiwixmobile/core/reader/ZimFileReader.kt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) 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 673ec0b1f..5f313e5a0 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 @@ -103,11 +103,9 @@ class ZimFileReader( val title = JNIKiwixString() val url = JNIKiwixString() if (jniKiwixReader.getNextSuggestion(title, url)) { - val results = NextSearchSuggestion(title.value, url.value) - return results - } else { - return null + return NextSearchSuggestion(title.value, url.value) } + return null } fun getPageUrlFrom(title: String): String? = From 04371325adc3e44110355b8bd998c68bb5a4dd57 Mon Sep 17 00:00:00 2001 From: Aditya-Sood Date: Tue, 12 Nov 2019 15:05:02 +0530 Subject: [PATCH 5/7] Refactor: Use data class for search-suggestions --- .../kiwixmobile/core/reader/ZimFileReader.kt | 8 +++----- .../core/search/AutoCompleteAdapter.java | 2 +- ...rchSuggestion.java => SearchSuggestion.kt} | 20 ++----------------- 3 files changed, 6 insertions(+), 24 deletions(-) rename core/src/main/java/org/kiwix/kiwixmobile/core/search/{NextSearchSuggestion.java => SearchSuggestion.kt} (68%) 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 5fb8572f9..d755903e4 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 @@ -36,7 +36,7 @@ import org.kiwix.kiwixmobile.core.entity.LibraryNetworkEntity.Book import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil import org.kiwix.kiwixmobile.core.utils.files.FileUtils import org.kiwix.kiwixmobile.core.reader.ZimFileReader.Companion.CONTENT_URI -import org.kiwix.kiwixmobile.core.search.NextSearchSuggestion +import org.kiwix.kiwixmobile.core.search.SearchSuggestion import java.io.File import java.io.FileDescriptor import java.io.FileOutputStream @@ -99,11 +99,11 @@ class ZimFileReader( fun searchSuggestions(prefix: String, count: Int) = jniKiwixReader.searchSuggestions(prefix, count) - fun getNextSuggestion(): NextSearchSuggestion? { + fun getNextSuggestion(): SearchSuggestion? { val title = JNIKiwixString() val url = JNIKiwixString() if (jniKiwixReader.getNextSuggestion(title, url)) { - return NextSearchSuggestion(title.value, url.value) + return SearchSuggestion(title.value, url.value) } return null } @@ -254,5 +254,3 @@ private val String.mimeType: String? get() = MimeTypeMap.getSingleton().getMimeTypeFromExtension( MimeTypeMap.getFileExtensionFromUrl(this) ) - -data class NextSuggestion(val title: String, val url: String) diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/search/AutoCompleteAdapter.java b/core/src/main/java/org/kiwix/kiwixmobile/core/search/AutoCompleteAdapter.java index 78d027c9a..311410c16 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/search/AutoCompleteAdapter.java +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/search/AutoCompleteAdapter.java @@ -118,7 +118,7 @@ public class AutoCompleteAdapter extends ArrayAdapter implements Filtera zimReaderContainer.searchSuggestions(query, 200); String suggestion; String suggestionUrl; - NextSearchSuggestion results; + SearchSuggestion results; List alreadyAdded = new ArrayList<>(); while ((results = zimReaderContainer.getNextSuggestion()) != null) { suggestion = results.getTitle(); diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/search/NextSearchSuggestion.java b/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchSuggestion.kt similarity index 68% rename from core/src/main/java/org/kiwix/kiwixmobile/core/search/NextSearchSuggestion.java rename to core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchSuggestion.kt index 9a50a66fe..335d4ee32 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/search/NextSearchSuggestion.java +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchSuggestion.kt @@ -16,22 +16,6 @@ * */ -package org.kiwix.kiwixmobile.core.search; +package org.kiwix.kiwixmobile.core.search -public class NextSearchSuggestion { - private String title; - private String url; - - public NextSearchSuggestion(String title, String url) { - this.title = title; - this.url = url; - } - - public String getTitle() { - return title; - } - - public String getUrl() { - return url; - } -} +data class SearchSuggestion(val title: String, val url: String) From c2412dee6c2569136d1beb77a9435b6600625f82 Mon Sep 17 00:00:00 2001 From: Aditya-Sood Date: Tue, 12 Nov 2019 23:14:55 +0530 Subject: [PATCH 6/7] Refactor code --- .../org/kiwix/kiwixmobile/core/reader/ZimFileReader.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 d755903e4..a0ce553a4 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 @@ -102,10 +102,10 @@ class ZimFileReader( fun getNextSuggestion(): SearchSuggestion? { val title = JNIKiwixString() val url = JNIKiwixString() - if (jniKiwixReader.getNextSuggestion(title, url)) { - return SearchSuggestion(title.value, url.value) - } - return null + + return if (jniKiwixReader.getNextSuggestion(title, url)) + SearchSuggestion(title.value, url.value) + else null } fun getPageUrlFrom(title: String): String? = From 42a53e36c956019e7d230360b6ef3bd76fb55f72 Mon Sep 17 00:00:00 2001 From: Aditya-Sood Date: Fri, 29 Nov 2019 09:50:31 +0530 Subject: [PATCH 7/7] Update kiwix-lib version to 8.2.1 --- buildSrc/src/main/kotlin/Versions.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index 41df994d7..4955fd4ff 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -128,7 +128,7 @@ object Versions { const val io_mockk: String = "1.9" // available: "1.9.3" - const val kiwixlib: String = "8.1.0" + const val kiwixlib: String = "8.2.1" const val material: String = "1.0.0"