Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit c08beef6 authored by Wolf-Martell Montwé's avatar Wolf-Martell Montwé Committed by GitHub
Browse files

Merge pull request #8519 from wmontwe/add-foss-and-full-k9-flavors

Add foss and full K-9 Mail flavors
parents 1bee950f bd5aa117
Loading
Loading
Loading
Loading
+12 −12
Original line number Diff line number Diff line
@@ -106,7 +106,7 @@ jobs:
                ],
                ...matrixFull.map(item => [
                  { data: item.appName },
                  { data: item.packageFlavor || "default" },
                  { data: item.packageFlavor },
                  { data: item.packageFormat },
                  { data: item.releaseTarget?.replace(/\|/g, ", ") || "artifact only" },
                  { data: item.playTargetTrack || "none" },
@@ -477,7 +477,7 @@ jobs:
          elif [[ "$APP_NAME" = "thunderbird" && "${PACKAGE_FORMAT}" = "aab" ]]; then
            BUILD_COMMAND="bundle${PACKAGE_FLAVOR^}${RELEASE_TYPE^}"
          elif [[ "$APP_NAME" = "k9mail" ]]; then
            BUILD_COMMAND="assembleRelease"
            BUILD_COMMAND="assemble${PACKAGE_FLAVOR^}Release"
          fi

          echo "BUILDING: :app-${APP_NAME}:${BUILD_COMMAND}"
@@ -509,9 +509,9 @@ jobs:
            OUT_FILE="app-${APP_NAME}-${PACKAGE_FLAVOR}-${RELEASE_TYPE}.aab"
            UPLOAD_FILE="${APP_NAME}-${PACKAGE_FLAVOR}-${RELEASE_TYPE}.aab"
          elif [[ "$APP_NAME" = "k9mail" ]]; then
            OUT_PATH="${OUT_BASE}/apk/release"
            OUT_FILE="app-${APP_NAME}-release-unsigned.apk"
            UPLOAD_FILE="${APP_NAME}-default-${RELEASE_TYPE}.apk"
            OUT_PATH="${OUT_BASE}/apk/${PACKAGE_FLAVOR}/release"
            OUT_FILE="app-${APP_NAME}-${PACKAGE_FLAVOR}-release-unsigned.apk"
            UPLOAD_FILE="${APP_NAME}-${PACKAGE_FLAVOR}-${RELEASE_TYPE}.apk"
          else
            echo "PACKAGE_FORMAT $PACKAGE_FORMAT is unknown. Exiting."
            exit 23
@@ -534,7 +534,7 @@ jobs:
        env:
          UPLOAD_PATH: "uploads"
        with:
          name: unsigned-${{ matrix.appName }}-${{ matrix.packageFormat }}-${{ matrix.packageFlavor || 'default' }}
          name: unsigned-${{ matrix.appName }}-${{ matrix.packageFormat }}-${{ matrix.packageFlavor }}
          path: ${{ env.UPLOAD_PATH }}/
          if-no-files-found: error

@@ -546,13 +546,13 @@ jobs:
    strategy:
      matrix:
        include: "${{ fromJSON(needs.dump_config.outputs.matrixInclude) }}"
    environment: ${{ matrix.appName }}_${{ needs.dump_config.outputs.releaseType }}_${{ matrix.packageFlavor || 'default' }}
    environment: ${{ matrix.appName }}_${{ needs.dump_config.outputs.releaseType }}_${{ matrix.packageFlavor }}
    env:
      RELEASE_TYPE: ${{ needs.dump_config.outputs.releaseType }}
    steps:
      - uses: actions/download-artifact@v4
        with:
          name: unsigned-${{ matrix.appName }}-${{ matrix.packageFormat }}-${{ matrix.packageFlavor || 'default' }}
          name: unsigned-${{ matrix.appName }}-${{ matrix.packageFormat }}-${{ matrix.packageFlavor }}
          path: uploads/

      - uses: noriban/sign-android-release@5f144321d3c7c2233266e78b42360345d8bbe403   # v5.1
@@ -568,7 +568,7 @@ jobs:
        if: ${{ matrix.packageFormat == 'apk' }}
        env:
          APP_NAME: ${{ matrix.appName }}
          PACKAGE_FLAVOR: ${{ matrix.packageFlavor || 'default' }}
          PACKAGE_FLAVOR: ${{ matrix.packageFlavor }}
        run: |
          mv uploads/${APP_NAME}-${PACKAGE_FLAVOR}-${RELEASE_TYPE}-signed.apk uploads/${APP_NAME}-${PACKAGE_FLAVOR}-${RELEASE_TYPE}.apk
          rm uploads/*-aligned.apk
@@ -581,7 +581,7 @@ jobs:
      - name: Upload signed
        uses: actions/upload-artifact@v4
        with:
          name: signed-${{ matrix.appName }}-${{ matrix.packageFormat }}-${{ matrix.packageFlavor || 'default' }}
          name: signed-${{ matrix.appName }}-${{ matrix.packageFormat }}-${{ matrix.packageFlavor }}
          if-no-files-found: error
          path: |
            uploads/*.apk
@@ -635,12 +635,12 @@ jobs:
    env:
      RELEASE_TYPE: ${{ needs.dump_config.outputs.releaseType }}
      APP_NAME: ${{ matrix.appName }}
      PACKAGE_FLAVOR: ${{ matrix.packageFlavor || 'default' }}
      PACKAGE_FLAVOR: ${{ matrix.packageFlavor}}
      PACKAGE_FORMAT: ${{ matrix.packageFormat }}
    steps:
      - uses: actions/download-artifact@v4
        with:
          name: signed-${{ matrix.appName }}-${{ matrix.packageFormat }}-${{ matrix.packageFlavor || 'default' }}
          name: signed-${{ matrix.appName }}-${{ matrix.packageFormat }}-${{ matrix.packageFlavor }}
          path: "uploads/"

      - name: Get Package Info
+94 −0
Original line number Diff line number Diff line
package: name='com.fsck.k9' platformBuildVersionName='14' platformBuildVersionCode='34' compileSdkVersion='34' compileSdkVersionCodename='14'
install-location:'auto'
sdkVersion:'21'
targetSdkVersion:'34'
uses-permission: name='android.permission.READ_CONTACTS'
uses-permission: name='android.permission.POST_NOTIFICATIONS'
uses-permission: name='android.permission.RECEIVE_BOOT_COMPLETED'
uses-permission: name='android.permission.READ_SYNC_SETTINGS'
uses-permission: name='android.permission.ACCESS_NETWORK_STATE'
uses-permission: name='android.permission.INTERNET'
uses-permission: name='android.permission.VIBRATE'
uses-permission: name='android.permission.WAKE_LOCK'
uses-permission: name='android.permission.FOREGROUND_SERVICE'
uses-permission: name='android.permission.FOREGROUND_SERVICE_DATA_SYNC'
uses-permission: name='android.permission.SCHEDULE_EXACT_ALARM'
uses-permission: name='android.permission.USE_BIOMETRIC'
uses-permission: name='android.permission.USE_FINGERPRINT'
uses-permission: name='com.fsck.k9.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION'
application-label:'K-9 Mail'
application-label-ar:'بريد K-9'
application-label-be:'Пошта K-9'
application-label-bg:'K-9 Mail'
application-label-ca:'K-9 Mail'
application-label-co:'K-9 Mail'
application-label-cs:'K-9 Mail'
application-label-cy:'K-9 Mail'
application-label-da:'K-9 Mail'
application-label-de:'K-9 Mail'
application-label-el:'K-9 Mail'
application-label-en:'K-9 Mail'
application-label-en-GB:'K-9 Mail'
application-label-eo:'K-9 Retpoŝtilo'
application-label-es:'K-9 Mail'
application-label-et:'K-9 Mail'
application-label-eu:'K-9 Mail'
application-label-fa:'نامهٔ کی۹'
application-label-fi:'K-9 Mail'
application-label-fr:'Courriel K-9 Mail'
application-label-fy:'K-9 Mail'
application-label-ga:'K-9 Post'
application-label-gl:'K-9 Mail'
application-label-hr:'K-9 Mail'
application-label-hu:'K-9 Mail'
application-label-in:'K-9 Mail'
application-label-is:'K-9 - Póstur'
application-label-it:'K-9 Mail'
application-label-iw:'K-9 דוא\"ל'
application-label-ja:'K-9 Mail'
application-label-ko:'K-9 메일'
application-label-lt:'K-9 paštas'
application-label-lv:'K-9 pasts'
application-label-nb:'K-9 e-post'
application-label-nl:'K-9 Mail'
application-label-nn:'K-9 e-post'
application-label-pl:'K-9 Mail'
application-label-pt:'K-9 Mail'
application-label-pt-BR:'K-9 Mail'
application-label-pt-PT:'K-9 Mail'
application-label-ro:'K-9 Mail'
application-label-ru:'Почта K-9'
application-label-sl:'Pošta K-9'
application-label-sq:'K-9 Mail'
application-label-sr:'К-9 Пошта'
application-label-sv:'K-9 Mail'
application-label-tr:'K-9 Posta'
application-label-uk:'K-9 Mail'
application-label-vi:'Thư K-9'
application-label-zh:'K-9 Mail'
application-label-zh-CN:'K-9 Mail'
application-label-zh-TW:'K-9 Mail'
application-icon-120:'res/drawable-v26/ic_launcher.xml'
application-icon-160:'res/drawable-v26/ic_launcher.xml'
application-icon-240:'res/drawable-v26/ic_launcher.xml'
application-icon-320:'res/drawable-v26/ic_launcher.xml'
application-icon-480:'res/drawable-v26/ic_launcher.xml'
application-icon-640:'res/drawable-v26/ic_launcher.xml'
application-icon-65534:'res/drawable-v26/ic_launcher.xml'
application: label='K-9 Mail' icon='res/drawable-v26/ic_launcher.xml'
uses-library-not-required:'com.sec.android.app.multiwindow'
launchable-activity: name='com.fsck.k9.activity.MessageList'  label='' icon=''
uses-library-not-required:'androidx.window.extensions'
uses-library-not-required:'androidx.window.sidecar'
feature-group: label=''
  uses-feature-not-required: name='android.hardware.touchscreen'
provides-component:'app-widget'
main
other-activities
other-receivers
other-services
supports-screens: 'small' 'normal' 'large' 'xlarge'
supports-any-density: 'true'
locales: '--_--' 'ar' 'be' 'bg' 'ca' 'co' 'cs' 'cy' 'da' 'de' 'el' 'en' 'en-GB' 'eo' 'es' 'et' 'eu' 'fa' 'fi' 'fr' 'fy' 'ga' 'gl' 'hr' 'hu' 'in' 'is' 'it' 'iw' 'ja' 'ko' 'lt' 'lv' 'nb' 'nl' 'nn' 'pl' 'pt' 'pt-BR' 'pt-PT' 'ro' 'ru' 'sl' 'sq' 'sr' 'sv' 'tr' 'uk' 'vi' 'zh' 'zh-CN' 'zh-TW'
densities: '120' '160' '240' '320' '480' '640' '65534'
native-code: 'arm64-v8a' 'armeabi-v7a' 'x86' 'x86_64'
+48 −33
Original line number Diff line number Diff line
@@ -13,38 +13,6 @@ if (testCoverageEnabled) {
    apply(plugin = "jacoco")
}

dependencies {
    implementation(projects.appCommon)
    implementation(projects.core.ui.compose.theme2.k9mail)
    implementation(projects.core.ui.legacy.theme2.k9mail)
    implementation(projects.feature.launcher)

    implementation(projects.legacy.core)
    implementation(projects.legacy.ui.legacy)

    implementation(projects.core.featureflags)

    implementation(projects.feature.widget.messageList)
    implementation(projects.feature.widget.shortcut)
    implementation(projects.feature.widget.unread)
    implementation(projects.feature.telemetry.noop)
    implementation(projects.feature.funding.noop)
    implementation(projects.feature.onboarding.migration.noop)
    implementation(projects.feature.migration.launcher.noop)

    implementation(libs.androidx.work.runtime)

    implementation(projects.feature.autodiscovery.api)
    debugImplementation(projects.backend.demo)
    debugImplementation(projects.feature.autodiscovery.demo)

    testImplementation(libs.robolectric)

    // Required for DependencyInjectionTest to be able to resolve OpenPgpApiManager
    testImplementation(projects.plugins.openpgpApiLib.openpgpApi)
    testImplementation(projects.feature.account.setup)
}

android {
    namespace = "com.fsck.k9"

@@ -138,6 +106,19 @@ android {
        }
    }

    flavorDimensions += listOf("app")
    productFlavors {
        create("foss") {
            dimension = "app"
            buildConfigField("String", "PRODUCT_FLAVOR_APP", "\"foss\"")
        }

        create("full") {
            dimension = "app"
            buildConfigField("String", "PRODUCT_FLAVOR_APP", "\"full\"")
        }
    }

    packaging {
        jniLibs {
            excludes += listOf("kotlin/**")
@@ -154,8 +135,42 @@ android {
    }
}

dependencies {
    implementation(projects.appCommon)
    implementation(projects.core.ui.compose.theme2.k9mail)
    implementation(projects.core.ui.legacy.theme2.k9mail)
    implementation(projects.feature.launcher)

    implementation(projects.legacy.core)
    implementation(projects.legacy.ui.legacy)

    implementation(projects.core.featureflags)

    "fossImplementation"(projects.feature.funding.noop)
    "fullImplementation"(projects.feature.funding.noop)
    implementation(projects.feature.migration.launcher.noop)
    implementation(projects.feature.onboarding.migration.noop)
    implementation(projects.feature.telemetry.noop)
    implementation(projects.feature.widget.messageList)
    implementation(projects.feature.widget.shortcut)
    implementation(projects.feature.widget.unread)

    implementation(libs.androidx.work.runtime)

    implementation(projects.feature.autodiscovery.api)
    debugImplementation(projects.backend.demo)
    debugImplementation(projects.feature.autodiscovery.demo)

    testImplementation(libs.robolectric)

    // Required for DependencyInjectionTest to be able to resolve OpenPgpApiManager
    testImplementation(projects.plugins.openpgpApiLib.openpgpApi)
    testImplementation(projects.feature.account.setup)
}

dependencyGuard {
    configuration("releaseRuntimeClasspath")
    configuration("fossReleaseRuntimeClasspath")
    configuration("fullReleaseRuntimeClasspath")
}

tasks.create("printVersionInfo") {
Loading