Extract maptiler's map ids (#926)
Maptiler custom map ids are only useable by the account that create them. So if we hardcode them forkers won't be able to use the maps even if the bring in their own api key (because they can't access our maps with their api key). Requires to set our map ids in `local.properties` for local development: ``` services.maptiler.lightMapId=9bc819c8-e627-474a-a348-ec144fe3d810 services.maptiler.darkMapId=dea61faf-292b-4774-9660-58fcef89a7f3 ```
This commit is contained in:
parent
f7e7339777
commit
e8e4542a75
6 changed files with 32 additions and 8 deletions
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
|
|
@ -40,6 +40,8 @@ jobs:
|
|||
- name: Assemble debug APK
|
||||
env:
|
||||
ELEMENT_ANDROID_MAPTILER_API_KEY: ${{ secrets.MAPTILER_KEY }}
|
||||
ELEMENT_ANDROID_MAPTILER_LIGHT_MAP_ID: ${{ secrets.MAPTILER_LIGHT_MAP_ID }}
|
||||
ELEMENT_ANDROID_MAPTILER_DARK_MAP_ID: ${{ secrets.MAPTILER_DARK_MAP_ID }}
|
||||
run: ./gradlew assembleDebug $CI_GRADLE_ARG_PROPERTIES
|
||||
- name: Upload debug APKs
|
||||
uses: actions/upload-artifact@v3
|
||||
|
|
|
|||
2
.github/workflows/maestro.yml
vendored
2
.github/workflows/maestro.yml
vendored
|
|
@ -38,6 +38,8 @@ jobs:
|
|||
run: ./gradlew assembleDebug $CI_GRADLE_ARG_PROPERTIES
|
||||
env:
|
||||
ELEMENT_ANDROID_MAPTILER_API_KEY: ${{ secrets.MAPTILER_KEY }}
|
||||
ELEMENT_ANDROID_MAPTILER_LIGHT_MAP_ID: ${{ secrets.MAPTILER_LIGHT_MAP_ID }}
|
||||
ELEMENT_ANDROID_MAPTILER_DARK_MAP_ID: ${{ secrets.MAPTILER_DARK_MAP_ID }}
|
||||
- name: Upload debug APKs
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
|
|
|
|||
2
.github/workflows/nightly.yml
vendored
2
.github/workflows/nightly.yml
vendored
|
|
@ -36,6 +36,8 @@ jobs:
|
|||
./gradlew assembleNightly appDistributionUploadNightly $CI_GRADLE_ARG_PROPERTIES
|
||||
env:
|
||||
ELEMENT_ANDROID_MAPTILER_API_KEY: ${{ secrets.MAPTILER_KEY }}
|
||||
ELEMENT_ANDROID_MAPTILER_LIGHT_MAP_ID: ${{ secrets.MAPTILER_LIGHT_MAP_ID }}
|
||||
ELEMENT_ANDROID_MAPTILER_DARK_MAP_ID: ${{ secrets.MAPTILER_DARK_MAP_ID }}
|
||||
ELEMENT_ANDROID_NIGHTLY_KEYID: ${{ secrets.ELEMENT_ANDROID_NIGHTLY_KEYID }}
|
||||
ELEMENT_ANDROID_NIGHTLY_KEYPASSWORD: ${{ secrets.ELEMENT_ANDROID_NIGHTLY_KEYPASSWORD }}
|
||||
ELEMENT_ANDROID_NIGHTLY_STOREPASSWORD: ${{ secrets.ELEMENT_ANDROID_NIGHTLY_STOREPASSWORD }}
|
||||
|
|
|
|||
4
.github/workflows/release.yml
vendored
4
.github/workflows/release.yml
vendored
|
|
@ -27,6 +27,10 @@ jobs:
|
|||
- name: Configure gradle
|
||||
uses: gradle/gradle-build-action@v2.6.1
|
||||
- name: Create app bundle
|
||||
env:
|
||||
ELEMENT_ANDROID_MAPTILER_API_KEY: ${{ secrets.MAPTILER_KEY }}
|
||||
ELEMENT_ANDROID_MAPTILER_LIGHT_MAP_ID: ${{ secrets.MAPTILER_LIGHT_MAP_ID }}
|
||||
ELEMENT_ANDROID_MAPTILER_DARK_MAP_ID: ${{ secrets.MAPTILER_DARK_MAP_ID }}
|
||||
run: ./gradlew bundleRelease $CI_GRADLE_ARG_PROPERTIES
|
||||
- name: Upload bundle as artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
|
|
|
|||
|
|
@ -22,12 +22,12 @@ plugins {
|
|||
id("kotlin-parcelize")
|
||||
}
|
||||
|
||||
fun readLocalProperty(name: String) = Properties().apply {
|
||||
fun readLocalProperty(name: String): String? = Properties().apply {
|
||||
try {
|
||||
load(rootProject.file("local.properties").reader())
|
||||
} catch (ignored: java.io.IOException) {
|
||||
}
|
||||
}[name]
|
||||
}.getProperty(name)
|
||||
|
||||
android {
|
||||
namespace = "io.element.android.features.location.api"
|
||||
|
|
@ -37,9 +37,23 @@ android {
|
|||
type = "string",
|
||||
name = "maptiler_api_key",
|
||||
value = System.getenv("ELEMENT_ANDROID_MAPTILER_API_KEY")
|
||||
?: readLocalProperty("services.maptiler.apikey") as? String
|
||||
?: readLocalProperty("services.maptiler.apikey")
|
||||
?: ""
|
||||
)
|
||||
resValue(
|
||||
type = "string",
|
||||
name = "maptiler_light_map_id",
|
||||
value = System.getenv("ELEMENT_ANDROID_MAPTILER_LIGHT_MAP_ID")
|
||||
?: readLocalProperty("services.maptiler.lightMapId")
|
||||
?: "basic-v2" // fall back to maptiler's default light map.
|
||||
)
|
||||
resValue(
|
||||
type = "string",
|
||||
name = "maptiler_dark_map_id",
|
||||
value = System.getenv("ELEMENT_ANDROID_MAPTILER_DARK_MAP_ID")
|
||||
?: readLocalProperty("services.maptiler.darkMapId")
|
||||
?: "basic-v2-dark" // fall back to maptiler's default dark map.
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ fun staticMapUrl(
|
|||
height: Int,
|
||||
darkMode: Boolean,
|
||||
): String {
|
||||
return "${baseUrl(darkMode)}/static/${lon},${lat},${zoom}/${width}x${height}@2x.webp?key=${context.apiKey}&attribution=bottomleft"
|
||||
return "${context.baseUrl(darkMode)}/static/${lon},${lat},${zoom}/${width}x${height}@2x.webp?key=${context.apiKey}&attribution=bottomleft"
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -60,15 +60,15 @@ private fun tileStyleUrl(
|
|||
context: Context,
|
||||
darkMode: Boolean,
|
||||
): String {
|
||||
return "${baseUrl(darkMode)}/style.json?key=${context.apiKey}"
|
||||
return "${context.baseUrl(darkMode)}/style.json?key=${context.apiKey}"
|
||||
}
|
||||
|
||||
private fun baseUrl(darkMode: Boolean) =
|
||||
private fun Context.baseUrl(darkMode: Boolean) =
|
||||
"https://api.maptiler.com/maps/" +
|
||||
if (darkMode)
|
||||
"dea61faf-292b-4774-9660-58fcef89a7f3"
|
||||
getString(R.string.maptiler_dark_map_id)
|
||||
else
|
||||
"9bc819c8-e627-474a-a348-ec144fe3d810"
|
||||
getString(R.string.maptiler_light_map_id)
|
||||
|
||||
private val Context.apiKey: String
|
||||
get() = getString(R.string.maptiler_api_key)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue