From 25818ac70f983fe59bf240a03fa68be27a5aadab Mon Sep 17 00:00:00 2001 From: Pouya Heydari Date: Sun, 29 Mar 2026 18:41:20 +0200 Subject: [PATCH 1/2] Enhance Maven publishing configuration and update POM properties for AppUpdater modules --- appupdater/build.gradle.kts | 8 +++++--- appupdater/gradle.properties | 1 + compose/gradle.properties | 1 + core/gradle.properties | 1 + directdownload/gradle.properties | 1 + gradle.properties | 7 +++++-- store/gradle.properties | 1 + 7 files changed, 15 insertions(+), 5 deletions(-) diff --git a/appupdater/build.gradle.kts b/appupdater/build.gradle.kts index 2e94abf4..c49cb084 100644 --- a/appupdater/build.gradle.kts +++ b/appupdater/build.gradle.kts @@ -1,4 +1,6 @@ import com.vanniktech.maven.publish.AndroidSingleVariantLibrary +import com.vanniktech.maven.publish.JavadocJar +import com.vanniktech.maven.publish.SourcesJar plugins { alias(libs.plugins.project.androidLibrary) @@ -13,10 +15,10 @@ android { mavenPublishing { configure( AndroidSingleVariantLibrary( + javadocJar = JavadocJar.Empty(), + sourcesJar = SourcesJar.Sources(), variant = "release", - sourcesJar = true, - publishJavadocJar = false, - ) + ), ) } diff --git a/appupdater/gradle.properties b/appupdater/gradle.properties index a0a0fcf6..807b404f 100644 --- a/appupdater/gradle.properties +++ b/appupdater/gradle.properties @@ -1 +1,2 @@ POM_ARTIFACT_ID=main +POM_NAME=AppUpdater diff --git a/compose/gradle.properties b/compose/gradle.properties index 77243bfa..819dfa6d 100644 --- a/compose/gradle.properties +++ b/compose/gradle.properties @@ -1 +1,2 @@ POM_ARTIFACT_ID=compose +POM_NAME=AppUpdater Compose diff --git a/core/gradle.properties b/core/gradle.properties index 7f6a94fe..efd3286c 100644 --- a/core/gradle.properties +++ b/core/gradle.properties @@ -1 +1,2 @@ POM_ARTIFACT_ID=core +POM_NAME=AppUpdater Core diff --git a/directdownload/gradle.properties b/directdownload/gradle.properties index de23aee2..b055d973 100644 --- a/directdownload/gradle.properties +++ b/directdownload/gradle.properties @@ -1 +1,2 @@ POM_ARTIFACT_ID=directdownload +POM_NAME=AppUpdater DirectDownload diff --git a/gradle.properties b/gradle.properties index eab04f6f..a09af600 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,8 +5,8 @@ android.nonTransitiveRClass=true android.nonFinalResIds=true android.useAndroidX=true org.gradle.parallel=true -POM_GROUP_ID=com.pouyaheydari.updater -POM_VERSION=11.1.0 +GROUP=com.pouyaheydari.updater +VERSION_NAME=11.1.0 POM_DESCRIPTION=App Updater is an easy-to-use and fully customizable library to show update dialog to users. POM_URL=https://github.com/HeyPouya/AndroidAppUpdater POM_SCM_URL=https://github.com/HeyPouya/AndroidAppUpdater @@ -17,3 +17,6 @@ POM_LICENCE_URL=https://www.apache.org/licenses/LICENSE-2.0.txt POM_LICENCE_DIST=repo POM_DEVELOPER_ID=HeyPouya POM_DEVELOPER_NAME=Pouya Heydari +POM_DEVELOPER_URL=https://pouyaheydari.dev +mavenCentralPublishing=true +signAllPublications=true diff --git a/store/gradle.properties b/store/gradle.properties index cb0ae8b4..077a00ea 100644 --- a/store/gradle.properties +++ b/store/gradle.properties @@ -1 +1,2 @@ POM_ARTIFACT_ID=store +POM_NAME=AppUpdater Store From 7ca3f48f71165e2f54ce742d9096cd31e597d1a1 Mon Sep 17 00:00:00 2001 From: Pouya Heydari Date: Sun, 29 Mar 2026 18:50:00 +0200 Subject: [PATCH 2/2] Update README to reflect Maven Central publishing and remove JitPack references --- README.md | 128 ++++++++++++++++++++++++------------------------------ 1 file changed, 57 insertions(+), 71 deletions(-) diff --git a/README.md b/README.md index 24951dc1..e63dae50 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@

- JitPack + Maven Central Android Arsenal API 23+ Codacy Badge @@ -39,33 +39,19 @@ ## Installation -### Step 1 — Add the JitPack repository - -In your **settings.gradle.kts**: - -```kotlin -dependencyResolutionManagement { - repositories { - maven("https://jitpack.io") - } -} -``` - -### Step 2 — Add the dependency - -Pick the module that matches your UI toolkit: +Add the dependency for the module that matches your UI toolkit: ```kotlin dependencies { // Jetpack Compose - implementation("com.github.HeyPouya.AndroidAppUpdater:compose:latest_version") + implementation("com.pouyaheydari.updater:compose:latest_version") // XML Views / DialogFragment - implementation("com.github.HeyPouya.AndroidAppUpdater:main:latest_version") + implementation("com.pouyaheydari.updater:main:latest_version") } ``` -> Replace `latest_version` with the latest release tag from [JitPack](https://jitpack.io/#HeyPouya/AndroidAppUpdater). +> Replace `latest_version` with the latest version from [Maven Central](https://central.sonatype.com/search?q=com.pouyaheydari.updater). --- @@ -214,53 +200,53 @@ AndroidAppUpdater(dialogData) ### Fragment `UpdaterDialogData` -| Parameter | Type | Default | Description | -|-----------|------|---------|-------------| -| `title` | `String` | `""` | Title shown at the top of the dialog | -| `description` | `String` | `""` | Description text below the title | -| `storeList` | `List` | `[]` | App stores to show as update options | -| `directDownloadList` | `List` | `[]` | Direct APK download links | -| `isForceUpdate` | `Boolean` | `false` | If `true`, the dialog cannot be dismissed | -| `typeface` | `Typeface?` | `null` | Custom typeface for dialog text | -| `theme` | `Theme` | `SYSTEM_DEFAULT` | `LIGHT`, `DARK`, or `SYSTEM_DEFAULT` | -| `errorWhileOpeningStoreCallback` | `((String) -> Unit)?` | `null` | Called with store name if opening fails | +| Parameter | Type | Default | Description | +|----------------------------------|--------------------------------|------------------|-------------------------------------------| +| `title` | `String` | `""` | Title shown at the top of the dialog | +| `description` | `String` | `""` | Description text below the title | +| `storeList` | `List` | `[]` | App stores to show as update options | +| `directDownloadList` | `List` | `[]` | Direct APK download links | +| `isForceUpdate` | `Boolean` | `false` | If `true`, the dialog cannot be dismissed | +| `typeface` | `Typeface?` | `null` | Custom typeface for dialog text | +| `theme` | `Theme` | `SYSTEM_DEFAULT` | `LIGHT`, `DARK`, or `SYSTEM_DEFAULT` | +| `errorWhileOpeningStoreCallback` | `((String) -> Unit)?` | `null` | Called with store name if opening fails | ### Compose `UpdaterDialogData` -| Parameter | Type | Default | Description | -|-----------|------|---------|-------------| -| `dialogTitle` | `String` | `""` | Title shown at the top of the dialog | -| `dialogDescription` | `String` | `""` | Description text below the title | -| `dividerText` | `String` | `""` | Text on the divider between stores and downloads | -| `storeList` | `List` | `[]` | App stores to show as update options | -| `directDownloadList` | `List` | `[]` | Direct APK download links | -| `onDismissRequested` | `() -> Unit` | `{}` | Called when the user dismisses the dialog | -| `typeface` | `Typeface?` | `null` | Custom typeface for dialog text | -| `theme` | `Theme` | `SYSTEM_DEFAULT` | `LIGHT`, `DARK`, or `SYSTEM_DEFAULT` | -| `errorWhileOpeningStoreCallback` | `(String) -> Unit` | `{}` | Called with store name if opening fails | +| Parameter | Type | Default | Description | +|----------------------------------|--------------------------------|------------------|--------------------------------------------------| +| `dialogTitle` | `String` | `""` | Title shown at the top of the dialog | +| `dialogDescription` | `String` | `""` | Description text below the title | +| `dividerText` | `String` | `""` | Text on the divider between stores and downloads | +| `storeList` | `List` | `[]` | App stores to show as update options | +| `directDownloadList` | `List` | `[]` | Direct APK download links | +| `onDismissRequested` | `() -> Unit` | `{}` | Called when the user dismisses the dialog | +| `typeface` | `Typeface?` | `null` | Custom typeface for dialog text | +| `theme` | `Theme` | `SYSTEM_DEFAULT` | `LIGHT`, `DARK`, or `SYSTEM_DEFAULT` | +| `errorWhileOpeningStoreCallback` | `(String) -> Unit` | `{}` | Called with store name if opening fails | --- ## Supported Stores -| Store | Enum Value | Built-in Icon | -|-------|-----------|---------------| -| Google Play | `GOOGLE_PLAY` | `appupdater_ic_google_play` | -| Cafe Bazaar | `CAFE_BAZAAR` | `appupdater_ic_bazar` | -| Myket | `MYKET` | `appupdater_ic_myket` | -| Huawei AppGallery | `HUAWEI_APP_GALLERY` | `appupdater_ic_app_gallery` | -| Samsung Galaxy Store | `SAMSUNG_GALAXY_STORE` | `appupdater_ic_galaxy_store` | -| Amazon App Store | `AMAZON_APP_STORE` | `appupdater_ic_amazon_app_store` | -| Aptoide | `APTOIDE` | `appupdater_ic_aptoide` | -| F-Droid | `FDROID` | `appupdater_ic_fdroid` | -| Xiaomi GetApps | `MI_GET_APP_STORE` | `appupdater_ic_get_app_store` | -| OneStore | `ONE_STORE_APP_MARKET` | `appupdater_ic_one_store` | -| Oppo App Market | `OPPO_APP_MARKET` | `appupdater_ic_oppo_app_market` | -| Vivo V-AppStore | `V_APP_STORE` | `appupdater_ic_v_app_store` | -| 9Apps | `NINE_APPS_STORE` | `appupdater_ic_nine_apps` | -| Tencent App Store | `TENCENT_APPS_STORE` | `appupdater_ic_tencent_app_store` | -| ZTE App Center | `ZTE_APP_CENTER` | `appupdater_ic_zte_app_center` | -| Lenovo App Center | `LENOVO_APP_CENTER` | `appupdater_ic_lenovo_app_center` | +| Store | Enum Value | Built-in Icon | +|----------------------|------------------------|-----------------------------------| +| Google Play | `GOOGLE_PLAY` | `appupdater_ic_google_play` | +| Cafe Bazaar | `CAFE_BAZAAR` | `appupdater_ic_bazar` | +| Myket | `MYKET` | `appupdater_ic_myket` | +| Huawei AppGallery | `HUAWEI_APP_GALLERY` | `appupdater_ic_app_gallery` | +| Samsung Galaxy Store | `SAMSUNG_GALAXY_STORE` | `appupdater_ic_galaxy_store` | +| Amazon App Store | `AMAZON_APP_STORE` | `appupdater_ic_amazon_app_store` | +| Aptoide | `APTOIDE` | `appupdater_ic_aptoide` | +| F-Droid | `FDROID` | `appupdater_ic_fdroid` | +| Xiaomi GetApps | `MI_GET_APP_STORE` | `appupdater_ic_get_app_store` | +| OneStore | `ONE_STORE_APP_MARKET` | `appupdater_ic_one_store` | +| Oppo App Market | `OPPO_APP_MARKET` | `appupdater_ic_oppo_app_market` | +| Vivo V-AppStore | `V_APP_STORE` | `appupdater_ic_v_app_store` | +| 9Apps | `NINE_APPS_STORE` | `appupdater_ic_nine_apps` | +| Tencent App Store | `TENCENT_APPS_STORE` | `appupdater_ic_tencent_app_store` | +| ZTE App Center | `ZTE_APP_CENTER` | `appupdater_ic_zte_app_center` | +| Lenovo App Center | `LENOVO_APP_CENTER` | `appupdater_ic_lenovo_app_center` | All icons are bundled with the library. Use them via `R.drawable.appupdater_ic_*`. @@ -321,24 +307,24 @@ AndroidAppUpdater/ └── app/ # Sample/demo application ``` -| Module | Artifact | Description | -|--------|----------|-------------| -| `:core` | `core` | Theme enum and constants — no Android dependency | -| `:store` | `store` | All 16 store implementations with built-in icons | -| `:directdownload` | `directdownload` | Download manager, permissions, APK installation | -| `:appupdater` | `main` | DialogFragment-based update dialog | -| `:compose` | `compose` | Jetpack Compose update dialog | +| Module | Artifact | Description | +|-------------------|-------------------------------------------|--------------------------------------------------| +| `:core` | `com.pouyaheydari.updater:core` | Theme enum and constants — no Android dependency | +| `:store` | `com.pouyaheydari.updater:store` | All 16 store implementations with built-in icons | +| `:directdownload` | `com.pouyaheydari.updater:directdownload` | Download manager, permissions, APK installation | +| `:appupdater` | `com.pouyaheydari.updater:main` | DialogFragment-based update dialog | +| `:compose` | `com.pouyaheydari.updater:compose` | Jetpack Compose update dialog | --- ## Requirements -| Requirement | Value | -|------------|-------| -| Min SDK | 23 (Android 6.0) | -| Compile SDK | 36 | -| Kotlin | 2.3+ | -| Java | 17 | +| Requirement | Value | +|-------------|------------------| +| Min SDK | 23 (Android 6.0) | +| Compile SDK | 36 | +| Kotlin | 2.3+ | +| Java | 17 | ---