diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..5e8478d77 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,19 @@ +version: 2 +updates: + - package-ecosystem: "bundler" + directory: "/" + schedule: + interval: "weekly" + commit-message: + prefix: "chore" + prefix-development: "chore" + include: "scope" + + - package-ecosystem: "gradle" + directory: "/" + schedule: + interval: "weekly" + commit-message: + prefix: "chore" + prefix-development: "chore" + include: "scope" diff --git a/.github/workflows/foss-release.yml b/.github/workflows/foss-release.yml new file mode 100644 index 000000000..fb3e52afd --- /dev/null +++ b/.github/workflows/foss-release.yml @@ -0,0 +1,25 @@ +name: Github Release + +on: + push: + tags: + - "*.*.*" + +permissions: + contents: read + +jobs: + call-release-workflow: + uses: FossifyOrg/.github/.github/workflows/release.yml@main + with: + tag: ${{ github.ref_name }} + flavor: "foss" + package_name: "org.fossify.phone" + + secrets: + ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }} + SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }} + SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }} + SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_STORE_PASSWORD }} + SERVICE_ACCOUNT_JSON_KEY_BASE64: "" + FOSSIFYBOT_TOKEN: ${{ secrets.FOSSIFYBOT_TOKEN }} diff --git a/.github/workflows/gplay-release.yml b/.github/workflows/gplay-release.yml new file mode 100644 index 000000000..cafcad38c --- /dev/null +++ b/.github/workflows/gplay-release.yml @@ -0,0 +1,46 @@ +name: Google Play Release + +on: + workflow_dispatch: + inputs: + track: + description: "Google Play Store release track" + required: false + type: choice + default: "beta" + options: + - internal + - alpha + - beta + - production + rollout: + description: "Rollout fraction (0.0-1.0)" + required: false + type: string + default: "0.05" + validate_only: + description: "Fastlane dry-run?" + required: false + type: boolean + default: false + +permissions: + contents: read + +jobs: + call-release-workflow: + uses: FossifyOrg/.github/.github/workflows/release.yml@main + with: + flavor: "gplay" + package_name: "org.fossify.phone" + track: ${{ github.event.inputs.track }} + rollout: ${{ github.event.inputs.rollout }} + validate_only: ${{ github.event.inputs.validate_only == 'true' }} + + secrets: + ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }} + SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }} + SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }} + SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_STORE_PASSWORD }} + SERVICE_ACCOUNT_JSON_KEY_BASE64: ${{ secrets.SERVICE_ACCOUNT_JSON_KEY_BASE64 }} + FOSSIFYBOT_TOKEN: "" diff --git a/.gitignore b/.gitignore index 21da4996b..d209458ca 100644 --- a/.gitignore +++ b/.gitignore @@ -9,5 +9,4 @@ keystore.jks keystore.properties fastlane/fastlane.json -Gemfile -Gemfile.lock +fastlane/report.xml diff --git a/CHANGELOG.md b/CHANGELOG.md index 5bc585d67..021565983 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,80 +1,140 @@ -Changelog -========== - -Version 1.4.0 *(2025-04-01)* ----------------------------- - -* Added support for caller location (state/country) in call history (#39) -* Added option to open contact details when contact photo is tapped (#35) -* Removed storage permission requirement -* Other minor bug fixes and improvements -* Added more translations - -Version 1.3.1 *(2025-01-14)* ----------------------------- - -* Fixed an issue where call history wasn't refreshing (https://github.com/FossifyOrg/Phone/issues/183) -* Fixed index letter sorting in the contacts list (https://github.com/FossifyOrg/Phone/issues/186) -* Fixed dialpad search for some characters (https://github.com/FossifyOrg/Phone/issues/139) -* Fixed an issues where call hangs up immediately after back press (https://github.com/FossifyOrg/Phone/issues/237) -* Other minor bug fixes and improvements -* Added more translations - -Version 1.3.0 *(2024-10-30)* ----------------------------- - -* Fixed issue with contacts not displaying on Android 14 and above -* Replaced checkboxes with switches -* Removed support for Android 7 and older versions -* Other minor bug fixes and improvements -* Added more translations - -Version 1.2.0 *(2024-05-08)* ----------------------------- - -* Fixed an issue where call history wasn't refreshing (https://github.com/FossifyOrg/Phone/issues/146). -* Fixed a problem where search items would disappear (https://github.com/FossifyOrg/Phone/issues/98). -* Fixed UI freeze that happened when loading call history. -* Fixed a bug that caused search not to find older call logs (https://github.com/FossifyOrg/Phone/issues/97). -* Fixed a crash that occurred when using the dialpad quick callback feature. -* Missed call notifications are now automatically dismissed when you view your call history (https://github.com/FossifyOrg/Phone/issues/88). -* Moved some actions back into the popup menu to reduce visual clutter (https://github.com/FossifyOrg/General-Discussion/issues/67). -* Updated menu design for better UI/UX. -* Disabled call action buttons after a call ends for better UI/UX (https://github.com/FossifyOrg/Phone/issues/181). -* Grouped call history entries by date (https://github.com/FossifyOrg/Phone/issues/96). -* Added an option to format phone numbers in the call log (https://github.com/FossifyOrg/Contacts/issues/15). -* Always show the date in the call details dialog (https://github.com/FossifyOrg/Phone/issues/133). -* Updated call direction icons and colors in the call history for better clarity (https://github.com/FossifyOrg/Phone/issues/81). -* Restructured the in-call UI to be more responsive to different screen sizes (https://github.com/FossifyOrg/Phone/issues/147). -* Added some translations. - -Version 1.1.1 *(2024-03-21)* ----------------------------- - -* Removed call history limit (https://github.com/FossifyOrg/Phone/issues/125). -* Added quick dial-back feature (https://github.com/FossifyOrg/Phone/issues/60). -* The hang-up button is now always visible in the call UI (https://github.com/FossifyOrg/Phone/issues/9). -* Enhanced the size of caller avatar and buttons in the call UI (https://github.com/FossifyOrg/Phone/issues/118). -* Reorganized dialpad preferences into their own dedicated section (https://github.com/FossifyOrg/Phone/issues/116). -* Added placeholder avatar for unknown numbers and contacts without photo. -* Added a progress indicator to indicate call history retrieval. -* Added bottom padding in lists to allow scrolling above the floating action button. -* Added some translations. - -Version 1.1.0 *(2024-03-21)* ----------------------------- - -* Removed call history limit (https://github.com/FossifyOrg/Phone/issues/125). -* Added quick dial-back feature (https://github.com/FossifyOrg/Phone/issues/60). -* The hang-up button is now always visible in the call UI (https://github.com/FossifyOrg/Phone/issues/9). -* Enhanced the size of caller avatar and buttons in the call UI (https://github.com/FossifyOrg/Phone/issues/118). -* Reorganized dialpad preferences into their own dedicated section (https://github.com/FossifyOrg/Phone/issues/116). -* Added placeholder avatar for unknown numbers and contacts without photo. -* Added a progress indicator to indicate call history retrieval. -* Added bottom padding in lists to allow scrolling above the floating action button. -* Added some translations. - -Version 1.0.0 *(2024-01-15)* ----------------------------- - -* Initial release +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [1.4.0] - 2025-04-01 + +### Added +- Added support for caller location (state/country) in call history (#39) +- Added option to open contact details when contact photo is tapped (#35) + +### Changed +- Other minor bug fixes and improvements +- Added more translations + +### Removed +- Removed storage permission requirement + +## [1.3.1] - 2025-01-14 + +### Changed +- Other minor bug fixes and improvements +- Added more translations + +### Fixed +- Fixed an issue where call history wasn't refreshing (https://github.com/FossifyOrg/Phone/issues/183) +- Fixed index letter sorting in the contacts list (https://github.com/FossifyOrg/Phone/issues/186) +- Fixed dialpad search for some characters (https://github.com/FossifyOrg/Phone/issues/139) +- Fixed an issues where call hangs up immediately after back press (https://github.com/FossifyOrg/Phone/issues/237) + +## [1.3.0] - 2024-10-30 + +### Changed +- Replaced checkboxes with switches +- Other minor bug fixes and improvements +- Added more translations + +### Fixed +- Fixed issue with contacts not displaying on Android 14 and above + +### Removed +- Removed support for Android 7 and older versions + +## [1.2.0] - 2024-05-08 + +### Added +- Grouped call history entries by date (https://github.com/FossifyOrg/Phone/issues/96). +- Added an option to format phone numbers in the call log (https://github.com/FossifyOrg/Contacts/issues/15). + +### Changed +- Missed call notifications are now automatically dismissed when you view your call history (https://github.com/FossifyOrg/Phone/issues/88). +- Moved some actions back into the popup menu to reduce visual clutter (https://github.com/FossifyOrg/General-Discussion/issues/67). +- Updated menu design for better UI/UX. +- Disabled call action buttons after a call ends for better UI/UX (https://github.com/FossifyOrg/Phone/issues/181). +- Always show the date in the call details dialog (https://github.com/FossifyOrg/Phone/issues/133). +- Updated call direction icons and colors in the call history for better clarity (https://github.com/FossifyOrg/Phone/issues/81). +- Restructured the in-call UI to be more responsive to different screen sizes (https://github.com/FossifyOrg/Phone/issues/147). +- Added some translations. + +### Fixed +- Fixed an issue where call history wasn't refreshing (https://github.com/FossifyOrg/Phone/issues/146). +- Fixed a problem where search items would disappear (https://github.com/FossifyOrg/Phone/issues/98). +- Fixed UI freeze that happened when loading call history. +- Fixed a bug that caused search not to find older call logs (https://github.com/FossifyOrg/Phone/issues/97). +- Fixed a crash that occurred when using the dialpad quick callback feature. + +## [1.1.1] - 2024-03-21 + +### Added +- Added quick dial-back feature (https://github.com/FossifyOrg/Phone/issues/60). +- Added placeholder avatar for unknown numbers and contacts without photo. +- Added a progress indicator to indicate call history retrieval. +- Added bottom padding in lists to allow scrolling above the floating action button. + +### Changed +- The hang-up button is now always visible in the call UI (https://github.com/FossifyOrg/Phone/issues/9). +- Enhanced the size of caller avatar and buttons in the call UI (https://github.com/FossifyOrg/Phone/issues/118). +- Reorganized dialpad preferences into their own dedicated section (https://github.com/FossifyOrg/Phone/issues/116). +- Added some translations. + +### Removed +- Removed call history limit (https://github.com/FossifyOrg/Phone/issues/125). + +## [1.1.0] - 2024-03-21 + +### Added +- Added quick dial-back feature (https://github.com/FossifyOrg/Phone/issues/60). +- Added placeholder avatar for unknown numbers and contacts without photo. +- Added a progress indicator to indicate call history retrieval. +- Added bottom padding in lists to allow scrolling above the floating action button. + +### Changed +- The hang-up button is now always visible in the call UI (https://github.com/FossifyOrg/Phone/issues/9). +- Enhanced the size of caller avatar and buttons in the call UI (https://github.com/FossifyOrg/Phone/issues/118). +- Reorganized dialpad preferences into their own dedicated section (https://github.com/FossifyOrg/Phone/issues/116). +- Added some translations. + +### Removed +- Removed call history limit (https://github.com/FossifyOrg/Phone/issues/125). + +## [1.0.0] - 2024-01-15 + +### Added +- Initial release + +[Unreleased]: https://github.com/FossifyOrg/Phone/compare/1.4.0...HEAD +[1.4.0]: https://github.com/FossifyOrg/Phone/compare/1.3.1...1.4.0 +[1.3.1]: https://github.com/FossifyOrg/Phone/compare/1.3.0...1.3.1 +[1.3.0]: https://github.com/FossifyOrg/Phone/compare/1.2.0...1.3.0 +[1.2.0]: https://github.com/FossifyOrg/Phone/compare/1.1.1...1.2.0 +[1.1.1]: https://github.com/FossifyOrg/Phone/compare/1.1.0...1.1.1 +[1.1.0]: https://github.com/FossifyOrg/Phone/compare/1.0.0...1.1.0 +[1.0.0]: https://github.com/FossifyOrg/Phone/releases/tag/1.0.0 + +[#9]: https://github.com/FossifyOrg/Phone/issues/9 +[#15]: https://github.com/FossifyOrg/Contacts/issues/15 +[#35]: https://github.com/FossifyOrg/Phone/issues/35 +[#39]: https://github.com/FossifyOrg/Phone/issues/39 +[#60]: https://github.com/FossifyOrg/Phone/issues/60 +[#67]: https://github.com/FossifyOrg/General-Discussion/issues/67 +[#81]: https://github.com/FossifyOrg/Phone/issues/81 +[#88]: https://github.com/FossifyOrg/Phone/issues/88 +[#96]: https://github.com/FossifyOrg/Phone/issues/96 +[#97]: https://github.com/FossifyOrg/Phone/issues/97 +[#98]: https://github.com/FossifyOrg/Phone/issues/98 +[#116]: https://github.com/FossifyOrg/Phone/issues/116 +[#118]: https://github.com/FossifyOrg/Phone/issues/118 +[#125]: https://github.com/FossifyOrg/Phone/issues/125 +[#133]: https://github.com/FossifyOrg/Phone/issues/133 +[#139]: https://github.com/FossifyOrg/Phone/issues/139 +[#146]: https://github.com/FossifyOrg/Phone/issues/146 +[#147]: https://github.com/FossifyOrg/Phone/issues/147 +[#181]: https://github.com/FossifyOrg/Phone/issues/181 +[#183]: https://github.com/FossifyOrg/Phone/issues/183 +[#186]: https://github.com/FossifyOrg/Phone/issues/186 +[#237]: https://github.com/FossifyOrg/Phone/issues/237 diff --git a/Gemfile b/Gemfile new file mode 100644 index 000000000..34b057362 --- /dev/null +++ b/Gemfile @@ -0,0 +1,4 @@ +source "https://rubygems.org" + +gem "fastlane" +gem "fastlane-plugin-fossify", "~> 1.0" diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 000000000..d4ed537ad --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,231 @@ +GEM + remote: https://rubygems.org/ + specs: + CFPropertyList (3.0.7) + base64 + nkf + rexml + abbrev (0.1.2) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + artifactory (3.0.17) + atomos (0.1.3) + aws-eventstream (1.3.2) + aws-partitions (1.1095.0) + aws-sdk-core (3.222.3) + aws-eventstream (~> 1, >= 1.3.0) + aws-partitions (~> 1, >= 1.992.0) + aws-sigv4 (~> 1.9) + base64 + jmespath (~> 1, >= 1.6.1) + logger + aws-sdk-kms (1.99.0) + aws-sdk-core (~> 3, >= 3.216.0) + aws-sigv4 (~> 1.5) + aws-sdk-s3 (1.184.0) + aws-sdk-core (~> 3, >= 3.216.0) + aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.5) + aws-sigv4 (1.11.0) + aws-eventstream (~> 1, >= 1.0.2) + babosa (1.0.4) + base64 (0.2.0) + claide (1.1.0) + colored (1.2) + colored2 (3.1.2) + commander (4.6.0) + highline (~> 2.0.0) + declarative (0.0.20) + digest-crc (0.7.0) + rake (>= 12.0.0, < 14.0.0) + domain_name (0.6.20240107) + dotenv (2.8.1) + emoji_regex (3.2.3) + excon (0.112.0) + faraday (1.10.4) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0) + faraday-multipart (~> 1.0) + faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.0) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) + faraday-retry (~> 1.0) + ruby2_keywords (>= 0.0.4) + faraday-cookie_jar (0.0.7) + faraday (>= 0.8.0) + http-cookie (~> 1.0.0) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) + faraday-httpclient (1.0.1) + faraday-multipart (1.1.0) + multipart-post (~> 2.0) + faraday-net_http (1.0.2) + faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + faraday-retry (1.0.3) + faraday_middleware (1.2.1) + faraday (~> 1.0) + fastimage (2.4.0) + fastlane (2.227.1) + CFPropertyList (>= 2.3, < 4.0.0) + addressable (>= 2.8, < 3.0.0) + artifactory (~> 3.0) + aws-sdk-s3 (~> 1.0) + babosa (>= 1.0.3, < 2.0.0) + bundler (>= 1.12.0, < 3.0.0) + colored (~> 1.2) + commander (~> 4.6) + dotenv (>= 2.1.1, < 3.0.0) + emoji_regex (>= 0.1, < 4.0) + excon (>= 0.71.0, < 1.0.0) + faraday (~> 1.0) + faraday-cookie_jar (~> 0.0.6) + faraday_middleware (~> 1.0) + fastimage (>= 2.1.0, < 3.0.0) + fastlane-sirp (>= 1.0.0) + gh_inspector (>= 1.1.2, < 2.0.0) + google-apis-androidpublisher_v3 (~> 0.3) + google-apis-playcustomapp_v1 (~> 0.1) + google-cloud-env (>= 1.6.0, < 2.0.0) + google-cloud-storage (~> 1.31) + highline (~> 2.0) + http-cookie (~> 1.0.5) + json (< 3.0.0) + jwt (>= 2.1.0, < 3) + mini_magick (>= 4.9.4, < 5.0.0) + multipart-post (>= 2.0.0, < 3.0.0) + naturally (~> 2.2) + optparse (>= 0.1.1, < 1.0.0) + plist (>= 3.1.0, < 4.0.0) + rubyzip (>= 2.0.0, < 3.0.0) + security (= 0.1.5) + simctl (~> 1.6.3) + terminal-notifier (>= 2.0.0, < 3.0.0) + terminal-table (~> 3) + tty-screen (>= 0.6.3, < 1.0.0) + tty-spinner (>= 0.8.0, < 1.0.0) + word_wrap (~> 1.0.0) + xcodeproj (>= 1.13.0, < 2.0.0) + xcpretty (~> 0.4.1) + xcpretty-travis-formatter (>= 0.0.3, < 2.0.0) + fastlane-plugin-fossify (1.0.0) + abbrev + fastlane-sirp (1.0.0) + sysrandom (~> 1.0) + gh_inspector (1.1.3) + google-apis-androidpublisher_v3 (0.54.0) + google-apis-core (>= 0.11.0, < 2.a) + google-apis-core (0.11.3) + addressable (~> 2.5, >= 2.5.1) + googleauth (>= 0.16.2, < 2.a) + httpclient (>= 2.8.1, < 3.a) + mini_mime (~> 1.0) + representable (~> 3.0) + retriable (>= 2.0, < 4.a) + rexml + google-apis-iamcredentials_v1 (0.17.0) + google-apis-core (>= 0.11.0, < 2.a) + google-apis-playcustomapp_v1 (0.13.0) + google-apis-core (>= 0.11.0, < 2.a) + google-apis-storage_v1 (0.31.0) + google-apis-core (>= 0.11.0, < 2.a) + google-cloud-core (1.8.0) + google-cloud-env (>= 1.0, < 3.a) + google-cloud-errors (~> 1.0) + google-cloud-env (1.6.0) + faraday (>= 0.17.3, < 3.0) + google-cloud-errors (1.5.0) + google-cloud-storage (1.47.0) + addressable (~> 2.8) + digest-crc (~> 0.4) + google-apis-iamcredentials_v1 (~> 0.1) + google-apis-storage_v1 (~> 0.31.0) + google-cloud-core (~> 1.6) + googleauth (>= 0.16.2, < 2.a) + mini_mime (~> 1.0) + googleauth (1.8.1) + faraday (>= 0.17.3, < 3.a) + jwt (>= 1.4, < 3.0) + multi_json (~> 1.11) + os (>= 0.9, < 2.0) + signet (>= 0.16, < 2.a) + highline (2.0.3) + http-cookie (1.0.8) + domain_name (~> 0.5) + httpclient (2.9.0) + mutex_m + jmespath (1.6.2) + json (2.11.3) + jwt (2.10.1) + base64 + logger (1.7.0) + mini_magick (4.13.2) + mini_mime (1.1.5) + multi_json (1.15.0) + multipart-post (2.4.1) + mutex_m (0.3.0) + nanaimo (0.4.0) + naturally (2.2.1) + nkf (0.2.0) + optparse (0.6.0) + os (1.1.4) + plist (3.7.2) + public_suffix (6.0.2) + rake (13.2.1) + representable (3.2.0) + declarative (< 0.1.0) + trailblazer-option (>= 0.1.1, < 0.2.0) + uber (< 0.2.0) + retriable (3.1.2) + rexml (3.4.1) + rouge (3.28.0) + ruby2_keywords (0.0.5) + rubyzip (2.4.1) + security (0.1.5) + signet (0.20.0) + addressable (~> 2.8) + faraday (>= 0.17.5, < 3.a) + jwt (>= 1.5, < 3.0) + multi_json (~> 1.10) + simctl (1.6.10) + CFPropertyList + naturally + sysrandom (1.0.5) + terminal-notifier (2.0.0) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + trailblazer-option (0.1.2) + tty-cursor (0.7.1) + tty-screen (0.8.2) + tty-spinner (0.9.3) + tty-cursor (~> 0.7) + uber (0.1.0) + unicode-display_width (2.6.0) + word_wrap (1.0.0) + xcodeproj (1.27.0) + CFPropertyList (>= 2.3.3, < 4.0) + atomos (~> 0.1.3) + claide (>= 1.0.2, < 2.0) + colored2 (~> 3.1) + nanaimo (~> 0.4.0) + rexml (>= 3.3.6, < 4.0) + xcpretty (0.4.1) + rouge (~> 3.28.0) + xcpretty-travis-formatter (1.0.1) + xcpretty (~> 0.2, >= 0.0.7) + +PLATFORMS + ruby + x86_64-linux + +DEPENDENCIES + fastlane + fastlane-plugin-fossify (~> 1.0) + +BUNDLED WITH + 2.6.8 diff --git a/app/.gitignore b/app/.gitignore index 22e709d89..cfdd28e13 100644 --- a/app/.gitignore +++ b/app/.gitignore @@ -1,3 +1,3 @@ /build /foss -/prepaid +/gplay diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 27596b3e8..1afa3f97e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -15,6 +15,13 @@ if (keystorePropertiesFile.exists()) { keystoreProperties.load(FileInputStream(keystorePropertiesFile)) } +fun hasSigningVars(): Boolean { + return providers.environmentVariable("SIGNING_KEY_ALIAS").orNull != null + && providers.environmentVariable("SIGNING_KEY_PASSWORD").orNull != null + && providers.environmentVariable("SIGNING_STORE_FILE").orNull != null + && providers.environmentVariable("SIGNING_STORE_PASSWORD").orNull != null +} + android { compileSdk = project.libs.versions.app.build.compileSDKVersion.get().toInt() @@ -35,6 +42,15 @@ android { storeFile = file(keystoreProperties.getProperty("storeFile")) storePassword = keystoreProperties.getProperty("storePassword") } + } else if (hasSigningVars()) { + register("release") { + keyAlias = providers.environmentVariable("SIGNING_KEY_ALIAS").get() + keyPassword = providers.environmentVariable("SIGNING_KEY_PASSWORD").get() + storeFile = file(providers.environmentVariable("SIGNING_STORE_FILE").get()) + storePassword = providers.environmentVariable("SIGNING_STORE_PASSWORD").get() + } + } else { + logger.warn("Warning: No signing config found. Build will be unsigned.") } } @@ -54,7 +70,7 @@ android { getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) - if (keystorePropertiesFile.exists()) { + if (keystorePropertiesFile.exists() || hasSigningVars()) { signingConfig = signingConfigs.getByName("release") } } @@ -64,7 +80,7 @@ android { productFlavors { register("core") register("foss") - register("prepaid") + register("gplay") } sourceSets { @@ -72,7 +88,8 @@ android { } compileOptions { - val currentJavaVersionFromLibs = JavaVersion.valueOf(libs.versions.app.build.javaVersion.get()) + val currentJavaVersionFromLibs = + JavaVersion.valueOf(libs.versions.app.build.javaVersion.get()) sourceCompatibility = currentJavaVersionFromLibs targetCompatibility = currentJavaVersionFromLibs } @@ -96,7 +113,6 @@ android { bundle { language { - @Suppress("UnstableApiUsage") enableSplit = false } } diff --git a/app/src/prepaid/res/values/bools.xml b/app/src/gplay/res/values/bools.xml similarity index 100% rename from app/src/prepaid/res/values/bools.xml rename to app/src/gplay/res/values/bools.xml diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 19c557cc6..947a642ca 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -1,38 +1,12 @@ -# This file contains the fastlane.tools configuration -# You can find the documentation at https://docs.fastlane.tools -# -# For a list of all available actions, check out -# -# https://docs.fastlane.tools/actions -# -# For a list of all available plugins, check out -# -# https://docs.fastlane.tools/plugins/available-plugins -# - -# Uncomment the line if you want fastlane to automatically update itself -# update_fastlane - default_platform(:android) platform :android do - desc "Runs all the tests" - lane :test do - gradle(task: "test") - end + desc 'Run unit & instrumentation tests' + lane(:test) { test_android } - desc "Submit a new Beta Build to Crashlytics Beta" - lane :beta do - gradle(task: "clean assembleRelease") - crashlytics - - # sh "your_script.sh" - # You can also use other beta testing services here - end + desc 'Build & deploy AAB to Google Play (includes metadata)' + lane(:deploy) { deploy_android } - desc "Deploy a new version to the Google Play" - lane :deploy do - gradle(task: "clean assembleRelease") - upload_to_play_store - end + desc 'Push Play Store metadata' + lane(:metadata) { metadata_android } end diff --git a/fastlane/README.md b/fastlane/README.md new file mode 100644 index 000000000..29777e784 --- /dev/null +++ b/fastlane/README.md @@ -0,0 +1,48 @@ +fastlane documentation +---- + +# Installation + +Make sure you have the latest version of the Xcode command line tools installed: + +```sh +xcode-select --install +``` + +For _fastlane_ installation instructions, see [Installing _fastlane_](https://docs.fastlane.tools/#installing-fastlane) + +# Available Actions + +## Android + +### android test + +```sh +[bundle exec] fastlane android test +``` + +Run unit & instrumentation tests + +### android deploy + +```sh +[bundle exec] fastlane android deploy +``` + +Build & deploy AAB to Google Play (includes metadata) + +### android metadata + +```sh +[bundle exec] fastlane android metadata +``` + +Push Play Store metadata + +---- + +This README.md is auto-generated and will be re-generated every time [_fastlane_](https://fastlane.tools) is run. + +More information about _fastlane_ can be found on [fastlane.tools](https://fastlane.tools). + +The documentation of _fastlane_ can be found on [docs.fastlane.tools](https://docs.fastlane.tools).