diff --git a/_scss/pages/home.scss b/_scss/pages/home.scss index 39d98c6..9eedfaa 100644 --- a/_scss/pages/home.scss +++ b/_scss/pages/home.scss @@ -223,11 +223,16 @@ h1.homepage-title { } // Apply/Remove this class to conditionally -// display the card +// display the card using main.js .hidden-card { display: none; } +// Generic hidden class +.hidden { + display: none; +} + .card-icon { width: 60px; height: 60px; diff --git a/assets/js/maps.js b/assets/js/maps.js index 409269a..a0e016d 100644 --- a/assets/js/maps.js +++ b/assets/js/maps.js @@ -1,6 +1,8 @@ // Checks to see what map files exist at /usb-butter/osm-map-files/ and displays them // using the template hidden in the page +OSM_PACKAGE = "net.osmand"; + const getMaps = async (folder_href) => { async function populateSpan(response) { if (!response.ok) { @@ -44,4 +46,28 @@ function renderMaps(files) { } } +// If OSM is in the F-Droid repo, show the download button +// and point to proper apk with proper size. +const getOsm = async () => { + repoRoot = '/usb-butter/appstore/fdroid/repo/'; + json_url = repoRoot + 'index-v1.json'; + const response = fetch(json_url).then(async (response) => { + const ix = await response.json(); + if (ix.packages && ix.packages[OSM_PACKAGE] && ix.packages[OSM_PACKAGE].length > 0) { + const button = document.getElementById('osm-dl-button'); + const links = button.querySelectorAll('a'); + const apkName = ix.packages[OSM_PACKAGE][0]['apkName']; + const size = ix.packages[OSM_PACKAGE][0]['size']; + const sizeInMB = Math.floor(size / 1024 / 1024); + for (let link of links) { + link.href = repoRoot + apkName; + } + const cta = button.querySelector('.button-sub-text'); + cta.textContent = `${sizeInMB} MB`; + button.classList.remove('hidden'); + } + }); +} + +getOsm() getMaps('/usb-butter/osm-map-files/'); \ No newline at end of file diff --git a/maps/index.html b/maps/index.html index 1e697b1..456ec19 100644 --- a/maps/index.html +++ b/maps/index.html @@ -15,7 +15,7 @@ custom_scripts: ["maps.js", "butter-dir-listing.js"]