134 lines
3.7 KiB
Plaintext
Raw Permalink Normal View History

2023-05-08 00:50:03 +02:00
plugins {
alias(libs.plugins.android.library)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.plugin.serialization)
2024-02-04 02:28:00 +01:00
alias(libs.plugins.dokka)
2023-11-05 19:01:57 +01:00
`maven-publish`
signing
2023-05-08 00:50:03 +02:00
}
android {
compileSdk = libs.versions.compileSdk.get().toInt()
2023-05-08 00:50:03 +02:00
defaultConfig {
minSdk = libs.versions.minSdk.get().toInt()
2023-11-05 19:01:57 +01:00
2023-05-08 00:50:03 +02:00
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
2025-07-15 16:09:50 +09:00
//consumerProguardFiles("consumer-rules.pro")
2023-05-08 00:50:03 +02:00
}
buildFeatures {
viewBinding = true
}
2023-05-08 00:50:03 +02:00
buildTypes {
release {
2025-07-15 16:09:50 +09:00
isMinifyEnabled = false
isShrinkResources = false
// proguardFiles(
// getDefaultProguardFile("proguard-android-optimize.txt"),
// "proguard-rules.pro"
// )
}
debug {
isMinifyEnabled = false
isShrinkResources = false
2023-05-08 00:50:03 +02:00
}
create("nightly") {
initWith(getByName("release"))
matchingFallbacks += "release"
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
2023-11-05 19:01:57 +01:00
namespace = "de.mm20.launcher2.sdk"
publishing {
singleVariant("release") {
withSourcesJar()
}
}
2023-05-08 00:50:03 +02:00
}
dependencies {
2023-11-05 19:01:57 +01:00
api(project(":core:shared"))
implementation(libs.androidx.datastore)
implementation(libs.kotlinx.serialization.json)
2023-11-05 19:01:57 +01:00
implementation(libs.bundles.kotlin)
}
2024-02-04 02:28:00 +01:00
tasks.dokkaHtml {
outputDirectory.set(layout.buildDirectory.dir("dokka"))
}
val javadocJar by tasks.registering(Jar::class) {
archiveClassifier.set("javadoc")
from(tasks.dokkaHtml)
}
2023-11-05 19:01:57 +01:00
publishing {
publications {
register<MavenPublication>("release") {
groupId = "de.mm20.launcher2"
artifactId = "plugin-sdk"
version = libs.versions.pluginSdk.get()
2023-11-05 19:01:57 +01:00
2024-02-04 02:28:00 +01:00
artifact(javadocJar)
2023-11-05 19:01:57 +01:00
pom {
2024-02-04 02:28:00 +01:00
name = "Kvaesitso SDK"
description = "Plugin SDK for the Kvaesitso launcher"
url = "https://kvaesitso.mm20.de"
2023-11-05 19:01:57 +01:00
licenses {
license {
name = "The Apache License, Version 2.0"
url = "http://www.apache.org/licenses/LICENSE-2.0.txt"
}
}
developers {
developer {
id = "MM2-0"
name = "MM2-0"
url = "https://github.com/MM2-0"
2023-11-05 19:01:57 +01:00
}
}
scm {
connection = "scm:git:git://github.com/MM2-0/Kvaesitso.git"
developerConnection = "scm:git:ssh://github.com:MM2-0/Kvaesitso.git"
url = "https://github.com/MM2-0/Kvaesitso/tree/main/plugins/sdk"
}
2023-11-05 19:01:57 +01:00
}
afterEvaluate {
from(components["release"])
}
}
}
repositories {
mavenLocal()
Add support for location plugins (#772) * Cherry pick location refactor * Refactor :data:openstreetmaps to :data:locations * contract, plugin sdk * Implement serialization, module tweaks * Include check for out-of-date departures in SearchableItemVM.requestUpdatedSearchable() * settings for location plugins * Try not to be too lazy * more fiddling with the plugin SDK * add departures in MapView with mock data for debug builds * change icons * add boats * animate departure lazycolumn * Add MarqueeText for text overflow handling * Define height for Departures in case there is no map to display * Don't inclure railway / highway tags for OSM since there will be location plugins for that * sort by time * - Apply pre-merge changes to LocationSettings - Add banner warning about slowed down location search for large search radii * ditch `showLocationOnMap` * LocationItem: make `showOpeningSchedule` toggleable * LocationItem: make Navigation AssistChip work for people that don't have google maps installed * LocationItem: resolve TODOs * MapTiles: ditch unused code, animate userIndicator * Reintroduce departure list * Add LineColor * Add osm tag `stars` as `userRating` https://taginfo.openstreetmap.org/keys/stars#overview * typealias -> import * Don't add Navigation Chip when there is no way to resolve navigation intents * Add settings migration * Set plugin SDK version to 1.2.0-SNAPSHOT * Deduplicate shared plugin classes, use kotlinx.serialization * Fix imports * Use ZonedDateTime for depature times * Add more line types * Rewrite location serialization * Replace street/houseNumber with address * Add attribution field * Add plugin config * Reject location search requests without lat lon parameters * Add default values to plugin location class * Don't crash if column value is null * Add docs comments to LocationCategory values * Refactor OpeningSchedule as polymorphic * remove dead corpse *ahem* code * Split LocationCategory into category and icon (Also update to Kotlin 2.0, please don't do this at home) * Add more location icons * Fix (?) location deserializer * Add more location icons * More icons * Meh * Add Pub * Disable Github Maven repo if credentials are missing * Add location search specific settings to plugin details screen * Add language parameter * Unbreak the build * Refactor plugin SDK (with breaking changes) * Set plugin SDK version to 2.0.0-SNAPSHOT * Document SDK breaking changes * Implement LocationProvider.getQuery * Add a typesafe cursor API * Oops I did it again next time maybe check if the code is actually compiling before pushing * Add missing return statement * Fix list serialization * Departure time UI adjustment * Use typesafe cursor for weather plugins * Add userRatingCount and emailAddress fields * grrr * Rename and extend LineTypes * Add default lineType to Departure to fix serialization errors * Fix refreshing stored plugin locations * Adapt line name column width to available departures * Fix plugin settings screen category overlap * add LocationItem.GenericTransit * Fix crash during deserialization of locations * Update SDK docs * Replace plugin "official" mark with "verified developer" mark before anyone gets sued * show 'now' when departure is in less than one minute * Add typesafe Bundle API * Implement plugin API changes * Plugin SDK: Fix refresh result not being returned * Update docs * apply alpha to departures that have departured * better (maybe): reduce saturation instead of alpha * Add default values for Attribution * Display attribution * Rearrange location result layout * Reduce searchable update interval to 1 minute * Pass last update time to refresh function * Change refresh path and ensure that timestamp is only update when the item was updated * categorize osm location * Update docs * Optimize location search - run providers in parallel - flatten code * add experimental address parsing for OSM * add poi_category_townhall * Fix popup closing when favorites items are updated * Revert "Fix popup closing when favorites items are updated" This reverts commit fc517fd066c7f8109b6d6df2d4f536af66398207. * Fork AndroidAddressFormatter to `:libs:address-formatter` * migrate `:libs:address-formatter` dependencies to version catalog and update them * also consider addr:{suburb,hamlet} for `Address.city` if city tag is missing * Move poi strings back to strings.xml * Update Jetpack Compose * Move address-formatter back to its original package, add license and readme * Move address-formatter back to its original package --------- Co-authored-by: MM20 <15646950+MM2-0@users.noreply.github.com>
2024-06-14 11:57:03 +02:00
val ghUser = project.findProperty("gpr.user") as String? ?: System.getenv("USERNAME")
if (ghUser == "MM2-0") {
maven {
name = "GitHubPackages"
url = uri("https://maven.pkg.github.com/MM2-0/Kvaesitso")
credentials {
username =
project.findProperty("gpr.user") as String? ?: System.getenv("USERNAME")
password = project.findProperty("gpr.key") as String? ?: System.getenv("TOKEN")
}
2023-11-05 19:01:57 +01:00
}
}
}
}
signing {
useGpgCmd()
sign(publishing.publications["release"])
2023-05-08 00:50:03 +02:00
}