diff --git a/.circleci/config.yml b/.circleci/config.yml index 182e64339..0f72a02c9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -290,6 +290,23 @@ commands: command: bundle exec fastlane android beta official:<< parameters.official >> working_directory: android + # EXPERIMENTAL ONLY + upload-to-internal-app-sharing: + description: "Upload to Internal App Sharing" + steps: + - checkout + - attach_workspace: + at: android + - run: + name: Store the google service account key + command: echo "$FASTLANE_GOOGLE_SERVICE_ACCOUNT" | base64 --decode > service_account.json + working_directory: android + - run: *update-fastlane-android + - run: + name: Fastlane Play Store Upload + command: bundle exec fastlane android internal_app_sharing + working_directory: android + # EXPERIMENTAL ONLY # No plans to do it for Official upload-to-google-play-production: @@ -391,6 +408,14 @@ jobs: steps: - android-build + android-internal-app-sharing-experimental: + <<: *defaults + docker: + - image: circleci/android:api-28-node + + steps: + - upload-to-internal-app-sharing + android-google-play-beta-experimental: <<: *defaults docker: @@ -452,13 +477,9 @@ workflows: - ios-build-experimental: requires: - ios-hold-build-experimental - - ios-hold-testflight-experimental: - type: approval - requires: - - ios-build-experimental - ios-testflight-experimental: requires: - - ios-hold-testflight-experimental + - ios-build-experimental # iOS Official - ios-hold-build-official: @@ -484,6 +505,9 @@ workflows: - android-build-experimental: requires: - android-hold-build-experimental + - android-internal-app-sharing-experimental: + requires: + - android-build-experimental - android-hold-google-play-beta-experimental: type: approval requires: diff --git a/android/fastlane/Fastfile b/android/fastlane/Fastfile index a1c5bd70c..0f600c36c 100644 --- a/android/fastlane/Fastfile +++ b/android/fastlane/Fastfile @@ -33,6 +33,14 @@ platform :android do end end + desc "Upload App to Internal App Sharing" + lane :internal_app_sharing do + upload_to_play_store_internal_app_sharing( + package_name: 'chat.rocket.reactnative', + aab: 'android/app/build/outputs/bundle/experimentalPlayRelease/app-experimental-play-release.aab' + ) + end + desc "Upload App to Play Store Production" lane :production do |options| upload_to_play_store( diff --git a/android/fastlane/README.md b/android/fastlane/README.md index 32a0f12c2..8c4626025 100644 --- a/android/fastlane/README.md +++ b/android/fastlane/README.md @@ -12,33 +12,28 @@ Install _fastlane_ using ``` [sudo] gem install fastlane -NV ``` -or alternatively using `brew cask install fastlane` +or alternatively using `brew install fastlane` # Available Actions ## Android -### android playBuild +### android beta ``` -fastlane android playBuild +fastlane android beta ``` -Play build for development -### android fossRelease +Upload App to Play Store Internal +### android internal_app_sharing ``` -fastlane android fossRelease +fastlane android internal_app_sharing ``` -Foss build for release -### android playRelease +Upload App to Internal App Sharing +### android production ``` -fastlane android playRelease +fastlane android production ``` -Play build for release -### android playAlpha -``` -fastlane android playAlpha -``` -Upload App to Play store +Upload App to Play Store Production ---- -This README.md is auto-generated and will be re-generated every time [fastlane](https://fastlane.tools) is run. +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). diff --git a/app/containers/markdown/Link.js b/app/containers/markdown/Link.js index 008dc0ba8..615b66128 100644 --- a/app/containers/markdown/Link.js +++ b/app/containers/markdown/Link.js @@ -7,15 +7,19 @@ import { themes } from '../../constants/colors'; import { LISTENER } from '../Toast'; import EventEmitter from '../../utils/events'; import I18n from '../../i18n'; +import openLink from '../../utils/openLink'; const Link = React.memo(({ children, link, theme, onLinkPress }) => { const handlePress = () => { - if (!link || !onLinkPress) { + if (!link) { return; } - onLinkPress(link); + if (onLinkPress) { + return onLinkPress(link); + } + openLink(link, theme); }; const childLength = React.Children.toArray(children).filter(o => o).length; diff --git a/app/lib/methods/getSettings.js b/app/lib/methods/getSettings.js index c51ac4068..be6ef1ee3 100644 --- a/app/lib/methods/getSettings.js +++ b/app/lib/methods/getSettings.js @@ -138,9 +138,10 @@ export function subscribeSettings() { export default async function() { try { const db = database.active; - const settingsParams = JSON.stringify(Object.keys(settings).filter(key => !loginSettings.includes(key))); + const settingsParams = Object.keys(settings).filter(key => !loginSettings.includes(key)); // RC 0.60.0 - const result = await fetch(`${ this.sdk.client.host }/api/v1/settings.public?query={"_id":{"$in":${ settingsParams }}}`).then(response => response.json()); + const result = await fetch(`${ this.sdk.client.host }/api/v1/settings.public?query={"_id":{"$in":${ JSON.stringify(settingsParams) }}}&count=${ settingsParams.length }`) + .then(response => response.json()); if (!result.success) { return;