diff --git a/android/app/build.gradle b/android/app/build.gradle index efe2f6ec3..28437b71d 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -1,10 +1,10 @@ -def taskRequests = getGradle().getStartParameter().getTaskRequests().toString() -def isPlay = !(taskRequests.contains("Foss") || taskRequests.contains("foss")) +def taskRequests = getGradle().getStartParameter().getTaskRequests().toString().toLowerCase() +def isPlay = !taskRequests.contains("foss") apply plugin: "com.android.application" apply plugin: 'kotlin-android' -if(isPlay){ +if (isPlay) { apply plugin: "io.fabric" apply plugin: "com.google.firebase.firebase-perf" apply plugin: 'com.bugsnag.android.gradle' @@ -271,6 +271,6 @@ task copyDownloadableDepsToLibs(type: Copy) { } apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) -if(isPlay) { +if (isPlay) { apply plugin: 'com.google.gms.google-services' } diff --git a/android/app/src/main/java/chat/rocket/reactnative/MainApplication.java b/android/app/src/main/java/chat/rocket/reactnative/MainApplication.java index 58b68aef6..b6bfa317b 100644 --- a/android/app/src/main/java/chat/rocket/reactnative/MainApplication.java +++ b/android/app/src/main/java/chat/rocket/reactnative/MainApplication.java @@ -53,7 +53,7 @@ public class MainApplication extends Application implements ReactApplication, IN protected List getPackages() { @SuppressWarnings("UnnecessaryLocalVariable") List packages = new PackageList(this).getPackages(); - if(BuildConfig.PLAY_BUILD) { + if (BuildConfig.PLAY_BUILD) { packages.add(new RNFirebaseCrashlyticsPackage()); packages.add(new RNFirebaseAnalyticsPackage()); packages.add(new RNFirebasePerformancePackage()); diff --git a/android/build.gradle b/android/build.gradle index 62ca2a4fe..f8ba12ada 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -17,11 +17,12 @@ buildscript { url 'https://maven.fabric.io/public' } } - - def taskRequests = getGradle().getStartParameter().getTaskRequests().toString() - def isPlay = !(taskRequests.contains("Foss") || taskRequests.contains("foss")) + + def taskRequests = getGradle().getStartParameter().getTaskRequests().toString().toLowerCase() + def isPlay = !taskRequests.contains("foss") + dependencies { - if(isPlay){ + if (isPlay) { classpath 'com.google.gms:google-services:4.2.0' classpath 'io.fabric.tools:gradle:1.28.1' classpath 'com.google.firebase:perf-plugin:1.2.1' diff --git a/app/constants/environment.js b/app/constants/environment.js new file mode 100644 index 000000000..15f70a619 --- /dev/null +++ b/app/constants/environment.js @@ -0,0 +1,3 @@ +import RNConfigReader from 'react-native-config-reader'; + +export const isGooglePlayBuild = RNConfigReader.PLAY_BUILD; diff --git a/app/index.js b/app/index.js index 809cfe228..d93fa2185 100644 --- a/app/index.js +++ b/app/index.js @@ -6,7 +6,6 @@ import RNUserDefaults from 'rn-user-defaults'; import { KeyCommandsEmitter } from 'react-native-keycommands'; import RNScreens from 'react-native-screens'; import { SafeAreaProvider, initialWindowMetrics } from 'react-native-safe-area-context'; -import RNConfigReader from 'react-native-config-reader'; import { defaultTheme, @@ -37,12 +36,11 @@ import Toast from './containers/Toast'; import InAppNotification from './containers/InAppNotification'; import { ActionSheetProvider } from './containers/ActionSheet'; import debounce from './utils/debounce'; +import { isGooglePlayBuild } from './constants/environment'; RNScreens.enableScreens(); -const isPlayBuild = RNConfigReader.PLAY_BUILD; - const parseDeepLinking = (url) => { if (url) { url = url.replace(/rocketchat:\/\/|https:\/\/go.rocket.chat\//, ''); @@ -61,7 +59,9 @@ export default class Root extends React.Component { constructor(props) { super(props); this.init(); - this.initCrashReport(); + if (isGooglePlayBuild) { + this.initCrashReport(); + } const { width, height, scale } = Dimensions.get('window'); this.state = { theme: defaultTheme(), @@ -163,9 +163,7 @@ export default class Root extends React.Component { if (!allowCrashReport) { loggerConfig.autoNotify = false; loggerConfig.registerBeforeSendCallback(() => false); - if (isPlayBuild) { - analytics().setAnalyticsCollectionEnabled(false); - } + analytics().setAnalyticsCollectionEnabled(false); } }); } diff --git a/app/notifications/push/index.js b/app/notifications/push/index.js index b1511f2bd..fc232e06a 100644 --- a/app/notifications/push/index.js +++ b/app/notifications/push/index.js @@ -1,8 +1,8 @@ import EJSON from 'ejson'; -import RNConfigReader from 'react-native-config-reader'; import PushNotification from './push'; import store from '../../lib/createStore'; import { deepLinkingOpen } from '../../actions/deepLinking'; +import { isGooglePlayBuild } from '../../constants/environment'; export const onNotification = (notification) => { if (notification) { @@ -37,8 +37,7 @@ export const onNotification = (notification) => { export const getDeviceToken = () => PushNotification.getDeviceToken(); export const setBadgeCount = count => PushNotification.setBadgeCount(count); export const initializePushNotifications = () => { - const isPlayBuild = RNConfigReader.PLAY_BUILD; - if (isPlayBuild) { + if (isGooglePlayBuild) { setBadgeCount(); return PushNotification.configure({ onNotification diff --git a/app/utils/log.js b/app/utils/log.js index 1011b8842..c3f357d0b 100644 --- a/app/utils/log.js +++ b/app/utils/log.js @@ -1,12 +1,14 @@ import { Client } from 'bugsnag-react-native'; import firebase from 'react-native-firebase'; -import RNConfigReader from 'react-native-config-reader'; +import { isGooglePlayBuild } from '../constants/environment'; import config from '../../config'; -const isPlayBuild = RNConfigReader.PLAY_BUILD; const bugsnag = new Client(config.BUGSNAG_API_KEY); -export const { analytics } = firebase != null; +export const analytics = isGooglePlayBuild ? firebase.analytics : ({ + logEvent: () => { } +}); + export const loggerConfig = bugsnag.config; export const { leaveBreadcrumb } = bugsnag; @@ -19,7 +21,7 @@ export const logServerVersion = (serverVersion) => { }; export const setCurrentScreen = (currentScreen) => { - if (isPlayBuild) { + if (isGooglePlayBuild) { analytics().setCurrentScreen(currentScreen); } leaveBreadcrumb(currentScreen, { type: 'navigation' }); diff --git a/app/utils/review.js b/app/utils/review.js index 1c38f67c8..378cc65eb 100644 --- a/app/utils/review.js +++ b/app/utils/review.js @@ -5,6 +5,7 @@ import { isIOS } from './deviceInfo'; import I18n from '../i18n'; import { showErrorAlert } from './info'; import { STORE_REVIEW_LINK } from '../constants/links'; +import { isGooglePlayBuild } from '../constants/environment'; const store = isIOS ? 'App Store' : 'Play Store'; @@ -75,7 +76,7 @@ const tryReview = async() => { // if ask me later was pressed earlier, we can ask for review only after {{numberOfDays}} days // if there's no review and it wasn't dismissed by the user - if (daysBetween(lastReviewDate, new Date()) >= numberOfDays && !doneReview) { + if (daysBetween(lastReviewDate, new Date()) >= numberOfDays && !doneReview && isGooglePlayBuild) { setTimeout(askReview, reviewDelay); } }; diff --git a/app/views/LoginView.js b/app/views/LoginView.js index 826314463..fe7587d9c 100644 --- a/app/views/LoginView.js +++ b/app/views/LoginView.js @@ -5,7 +5,6 @@ import { } from 'react-native'; import { connect } from 'react-redux'; import equal from 'deep-equal'; -import RNConfigReader from 'react-native-config-reader'; import { analytics } from '../utils/log'; import sharedStyles from './Styles'; @@ -18,8 +17,7 @@ import FormContainer, { FormContainerInner } from '../containers/FormContainer'; import TextInput from '../containers/TextInput'; import { loginRequest as loginRequestAction } from '../actions/login'; import LoginServices from '../containers/LoginServices'; - -const configValue = RNConfigReader.PLAY_BUILD; +import { isGooglePlayBuild } from '../constants/environment'; const styles = StyleSheet.create({ registerDisabled: { @@ -124,7 +122,7 @@ class LoginView extends React.Component { const { loginRequest } = this.props; Keyboard.dismiss(); loginRequest({ user, password }); - if (configValue) { + if (isGooglePlayBuild) { analytics().logEvent('login'); } } diff --git a/app/views/SettingsView/index.js b/app/views/SettingsView/index.js index e5c07a22e..3c9916651 100644 --- a/app/views/SettingsView/index.js +++ b/app/views/SettingsView/index.js @@ -5,7 +5,6 @@ import { import PropTypes from 'prop-types'; import { connect } from 'react-redux'; import AsyncStorage from '@react-native-community/async-storage'; -import RNConfigReader from 'react-native-config-reader'; import { logout as logoutAction } from '../../actions/login'; import { selectServerRequest as selectServerRequestAction } from '../../actions/server'; @@ -36,8 +35,8 @@ import { appStart as appStartAction, ROOT_LOADING } from '../../actions/app'; import { onReviewPress } from '../../utils/review'; import { getUserSelector } from '../../selectors/login'; import SafeAreaView from '../../containers/SafeAreaView'; +import { isGooglePlayBuild } from '../../constants/environment'; -const isPlayBuild = RNConfigReader.PLAY_BUILD; const SectionSeparator = React.memo(({ theme }) => ( - + {isGooglePlayBuild ? ( + <> + + + ) : null} ) : null} - this.renderCrashReportSwitch()} - theme={theme} - /> - - + {isGooglePlayBuild ? ( + <> + this.renderCrashReportSwitch()} + theme={theme} + /> + + + + ) : null}