From 978bf81af092031670fd8809911e5274b08f41f6 Mon Sep 17 00:00:00 2001 From: Gideon Okuro Date: Wed, 16 Oct 2024 18:56:14 +0300 Subject: [PATCH] display image in services --- .../planet/myplanet/model/RealmMyCourse.kt | 19 +------------------ .../ole/planet/myplanet/model/RealmMyTeam.kt | 11 +++++++++++ .../myplanet/ui/community/ServicesFragment.kt | 14 +++++++++----- .../myplanet/utilities/DownloadUtils.kt | 19 +++++++++++++++++++ app/src/main/res/layout/fragment_services.xml | 19 +++++++++---------- 5 files changed, 49 insertions(+), 33 deletions(-) diff --git a/app/src/main/java/org/ole/planet/myplanet/model/RealmMyCourse.kt b/app/src/main/java/org/ole/planet/myplanet/model/RealmMyCourse.kt index 7b2c7441f..e0e04b1de 100644 --- a/app/src/main/java/org/ole/planet/myplanet/model/RealmMyCourse.kt +++ b/app/src/main/java/org/ole/planet/myplanet/model/RealmMyCourse.kt @@ -18,12 +18,12 @@ import org.ole.planet.myplanet.MainApplication.Companion.context import org.ole.planet.myplanet.model.RealmMyLibrary.Companion.createStepResource import org.ole.planet.myplanet.model.RealmStepExam.Companion.insertCourseStepsExams import org.ole.planet.myplanet.utilities.Constants.PREFS_NAME +import org.ole.planet.myplanet.utilities.DownloadUtils.extractLinks import org.ole.planet.myplanet.utilities.JsonUtils import org.ole.planet.myplanet.utilities.Utilities import java.io.File import java.io.FileWriter import java.io.IOException -import java.util.regex.Pattern open class RealmMyCourse : RealmObject() { @JvmField @@ -183,23 +183,6 @@ open class RealmMyCourse : RealmObject() { writeCsv("${context.getExternalFilesDir(null)}/ole/course.csv", courseDataList) } - private fun extractLinks(text: String?): ArrayList { - val links = ArrayList() - val pattern = Pattern.compile("!\\[.*?]\\((.*?)\\)") - val matcher = text?.let { pattern.matcher(it) } - if (matcher != null) { - while (matcher.find()) { - val link = matcher.group(1) - if (link != null) { - if (link.isNotEmpty()) { - links.add(link) - } - } - } - } - return links - } - @JvmStatic fun saveConcatenatedLinksToPrefs() { val settings: SharedPreferences = context.getSharedPreferences(PREFS_NAME, MODE_PRIVATE) diff --git a/app/src/main/java/org/ole/planet/myplanet/model/RealmMyTeam.kt b/app/src/main/java/org/ole/planet/myplanet/model/RealmMyTeam.kt index 7233749d9..61441d202 100644 --- a/app/src/main/java/org/ole/planet/myplanet/model/RealmMyTeam.kt +++ b/app/src/main/java/org/ole/planet/myplanet/model/RealmMyTeam.kt @@ -12,7 +12,10 @@ import io.realm.RealmResults import io.realm.annotations.PrimaryKey import org.ole.planet.myplanet.MainApplication.Companion.context import org.ole.planet.myplanet.utilities.AndroidDecrypter +import org.ole.planet.myplanet.utilities.DownloadUtils.extractLinks import org.ole.planet.myplanet.utilities.JsonUtils +import org.ole.planet.myplanet.utilities.Utilities.getUrl +import org.ole.planet.myplanet.utilities.Utilities.openDownloadService import java.io.File import java.io.FileWriter import java.io.IOException @@ -98,6 +101,7 @@ open class RealmMyTeam : RealmObject() { companion object { private val teamDataList: MutableList> = mutableListOf() val reportsDataList: MutableList> = mutableListOf() + private val concatenatedLinks = ArrayList() @JvmStatic fun insertMyTeams(doc: JsonObject, mRealm: Realm) { @@ -114,6 +118,13 @@ open class RealmMyTeam : RealmObject() { myTeams.sourcePlanet = JsonUtils.getString("sourcePlanet", doc) myTeams.title = JsonUtils.getString("title", doc) myTeams.description = JsonUtils.getString("description", doc) + val links = extractLinks(JsonUtils.getString("description", doc)) + val baseUrl = getUrl() + for (link in links) { + val concatenatedLink = "$baseUrl/$link" + concatenatedLinks.add(concatenatedLink) + } + openDownloadService(context, concatenatedLinks, true) myTeams.limit = JsonUtils.getInt("limit", doc) myTeams.status = JsonUtils.getString("status", doc) myTeams.teamPlanetCode = JsonUtils.getString("teamPlanetCode", doc) diff --git a/app/src/main/java/org/ole/planet/myplanet/ui/community/ServicesFragment.kt b/app/src/main/java/org/ole/planet/myplanet/ui/community/ServicesFragment.kt index 4cfb5e6b5..1eb4515e9 100644 --- a/app/src/main/java/org/ole/planet/myplanet/ui/community/ServicesFragment.kt +++ b/app/src/main/java/org/ole/planet/myplanet/ui/community/ServicesFragment.kt @@ -9,6 +9,7 @@ import android.view.ViewGroup import android.widget.TextView import com.google.android.material.bottomsheet.BottomSheetDialogFragment import io.realm.RealmResults +import org.ole.planet.myplanet.MainApplication import org.ole.planet.myplanet.R import org.ole.planet.myplanet.callback.OnHomeItemClickListener import org.ole.planet.myplanet.databinding.FragmentServicesBinding @@ -16,6 +17,7 @@ import org.ole.planet.myplanet.datamanager.DatabaseService import org.ole.planet.myplanet.model.RealmMyTeam import org.ole.planet.myplanet.model.RealmNews import org.ole.planet.myplanet.service.UserProfileDbHandler +import org.ole.planet.myplanet.ui.courses.CourseStepFragment import org.ole.planet.myplanet.ui.team.BaseTeamFragment import org.ole.planet.myplanet.ui.team.TeamDetailFragment import org.ole.planet.myplanet.utilities.Markdown.setMarkdownText @@ -47,14 +49,16 @@ class ServicesFragment : BaseTeamFragment() { } if (links?.size == 0) { - val description = team?.description ?: "" fragmentServicesBinding.llServices.visibility = View.GONE - fragmentServicesBinding.tvDescription.visibility = View.VISIBLE - setMarkdownText(fragmentServicesBinding.tvDescription, description) - } else { - setRecyclerView(links) } + val description = team?.description ?: "" + fragmentServicesBinding.llServices.visibility = View.VISIBLE + fragmentServicesBinding.tvDescription.visibility = View.VISIBLE + val markdownContentWithLocalPaths = CourseStepFragment.prependBaseUrlToImages(description, "file://${MainApplication.context.getExternalFilesDir(null)}/ole/") + setMarkdownText(fragmentServicesBinding.tvDescription, markdownContentWithLocalPaths) + setRecyclerView(links) + if (user?.isManager() == true || user?.isLeader() == true) { fragmentServicesBinding.fab.show() } else { diff --git a/app/src/main/java/org/ole/planet/myplanet/utilities/DownloadUtils.kt b/app/src/main/java/org/ole/planet/myplanet/utilities/DownloadUtils.kt index 5c18518dd..1157052b2 100644 --- a/app/src/main/java/org/ole/planet/myplanet/utilities/DownloadUtils.kt +++ b/app/src/main/java/org/ole/planet/myplanet/utilities/DownloadUtils.kt @@ -1,6 +1,8 @@ package org.ole.planet.myplanet.utilities import org.ole.planet.myplanet.model.RealmMyLibrary +import java.util.regex.Pattern +import kotlin.text.isNotEmpty object DownloadUtils { @JvmStatic @@ -20,4 +22,21 @@ object DownloadUtils { } return urls } + + fun extractLinks(text: String?): ArrayList { + val links = ArrayList() + val pattern = Pattern.compile("!\\[.*?]\\((.*?)\\)") + val matcher = text?.let { pattern.matcher(it) } + if (matcher != null) { + while (matcher.find()) { + val link = matcher.group(1) + if (link != null) { + if (link.isNotEmpty()) { + links.add(link) + } + } + } + } + return links + } } diff --git a/app/src/main/res/layout/fragment_services.xml b/app/src/main/res/layout/fragment_services.xml index 0e88ee094..9dcf947f1 100644 --- a/app/src/main/res/layout/fragment_services.xml +++ b/app/src/main/res/layout/fragment_services.xml @@ -14,15 +14,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content"> - - + +