diff --git a/android/app/build.gradle b/android/app/build.gradle
index 3a57b39c9095..5a4bbf49cd76 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -150,8 +150,8 @@ android {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
multiDexEnabled rootProject.ext.multiDexEnabled
- versionCode 1001010110
- versionName "1.1.1-10"
+ versionCode 1001010201
+ versionName "1.1.2-1"
}
splits {
abi {
diff --git a/ios/NewExpensify/Info.plist b/ios/NewExpensify/Info.plist
index d65783a103da..fa35218bc254 100644
--- a/ios/NewExpensify/Info.plist
+++ b/ios/NewExpensify/Info.plist
@@ -31,7 +31,7 @@
CFBundleVersion
- 1.1.1.10
+ 1.1.2.1
ITSAppUsesNonExemptEncryption
LSApplicationQueriesSchemes
diff --git a/ios/NewExpensifyTests/Info.plist b/ios/NewExpensifyTests/Info.plist
index b0f1a538bd57..f154905e7965 100644
--- a/ios/NewExpensifyTests/Info.plist
+++ b/ios/NewExpensifyTests/Info.plist
@@ -19,6 +19,6 @@
CFBundleSignature
????
CFBundleVersion
- 1.1.1.10
+ 1.1.2.1
diff --git a/package-lock.json b/package-lock.json
index be1d65336adb..f081777bc197 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "new.expensify",
- "version": "1.1.1-10",
+ "version": "1.1.2-1",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
diff --git a/package.json b/package.json
index 0747913c3619..af19a2d0c82c 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "new.expensify",
- "version": "1.1.1-10",
+ "version": "1.1.2-1",
"author": "Expensify, Inc.",
"homepage": "https://new.expensify.com",
"description": "New Expensify is the next generation of Expensify: a reimagination of payments based atop a foundation of chat.",
diff --git a/src/CONST.js b/src/CONST.js
index f73743110eb1..13438067fd23 100755
--- a/src/CONST.js
+++ b/src/CONST.js
@@ -88,6 +88,7 @@ const CONST = {
IOU: 'IOU',
PAY_WITH_EXPENSIFY: 'payWithExpensify',
FREE_PLAN: 'freePlan',
+ FREE_PLAN_SOFT_LAUNCH: 'freePlanSoftLaunch',
DEFAULT_ROOMS: 'defaultRooms',
BETA_EXPENSIFY_WALLET: 'expensifyWallet',
INTERNATIONALIZATION: 'internationalization',
diff --git a/src/libs/Navigation/AppNavigator/AuthScreens.js b/src/libs/Navigation/AppNavigator/AuthScreens.js
index 38c3639ce2ad..c879ff794bc7 100644
--- a/src/libs/Navigation/AppNavigator/AuthScreens.js
+++ b/src/libs/Navigation/AppNavigator/AuthScreens.js
@@ -120,7 +120,7 @@ let hasLoadedPolicies = false;
function loadPoliciesBehindBeta(betas) {
// When removing the freePlan beta, simply load the policyList and the policySummaries in componentDidMount().
// Policy info loading should not be blocked behind the defaultRooms beta alone.
- if (!hasLoadedPolicies && (Permissions.canUseFreePlan(betas) || Permissions.canUseDefaultRooms(betas))) {
+ if (!hasLoadedPolicies && (Permissions.canUseFreePlanSoftLaunch(betas) || Permissions.canUseDefaultRooms(betas))) {
getPolicyList();
getPolicySummaries();
hasLoadedPolicies = true;
diff --git a/src/libs/Navigation/Navigation.js b/src/libs/Navigation/Navigation.js
index 12279df62d2e..c4760ad60db6 100644
--- a/src/libs/Navigation/Navigation.js
+++ b/src/libs/Navigation/Navigation.js
@@ -200,7 +200,7 @@ function isActiveRoute(routePath) {
*
* Example:
* ```jsx
- * if (!Permissions.canUseFreePlan(this.props.betas)) {
+ * if (!Permissions.canUseFreePlanSoftLaunch(this.props.betas)) {
* return ;
* }
* ```
diff --git a/src/libs/Permissions.js b/src/libs/Permissions.js
index bf1850cb9b8e..8f654b79b82e 100644
--- a/src/libs/Permissions.js
+++ b/src/libs/Permissions.js
@@ -43,6 +43,14 @@ function canUseFreePlan(betas) {
return _.contains(betas, CONST.BETAS.FREE_PLAN) || canUseAllBetas(betas);
}
+/**
+ * @param {Array} betas
+ * @returns {Boolean}
+ */
+function canUseFreePlanSoftLaunch(betas) {
+ return _.contains(betas, CONST.BETAS.FREE_PLAN_SOFT_LAUNCH) || canUseAllBetas(betas);
+}
+
/**
* @param {Array} betas
* @returns {Boolean}
@@ -72,6 +80,7 @@ export default {
canUseIOU,
canUsePayWithExpensify,
canUseFreePlan,
+ canUseFreePlanSoftLaunch,
canUseDefaultRooms,
canUseInternationalization,
canUseWallet,
diff --git a/src/pages/LoginWithValidateCode2FAPage.js b/src/pages/LoginWithValidateCode2FAPage.js
index 5484242544d7..d71e663ff55b 100644
--- a/src/pages/LoginWithValidateCode2FAPage.js
+++ b/src/pages/LoginWithValidateCode2FAPage.js
@@ -70,7 +70,7 @@ class LoginWithValidateCode2FAPage extends Component {
// and by calling dismissModal(), the /v/... route is removed from history so the user will get taken to `/`
// if they cancel out of the new workspace modal.
Navigation.dismissModal();
- if (Permissions.canUseFreePlan(this.props.betas)) {
+ if (Permissions.canUseFreePlanSoftLaunch(this.props.betas)) {
this.rerouteToRelevantPage();
}
}
@@ -78,7 +78,7 @@ class LoginWithValidateCode2FAPage extends Component {
componentDidUpdate() {
// Betas can be loaded a little after a user is authenticated, so check again if the betas have been updated
- if (this.props.session.authToken && Permissions.canUseFreePlan(this.props.betas)) {
+ if (this.props.session.authToken && Permissions.canUseFreePlanSoftLaunch(this.props.betas)) {
this.rerouteToRelevantPage();
}
}
diff --git a/src/pages/LoginWithValidateCodePage.js b/src/pages/LoginWithValidateCodePage.js
index c01fcbcc52e2..a3eb999741dc 100644
--- a/src/pages/LoginWithValidateCodePage.js
+++ b/src/pages/LoginWithValidateCodePage.js
@@ -47,7 +47,7 @@ class LoginWithValidateCodePage extends Component {
// and by calling dismissModal(), the /v/... route is removed from history so the user will get taken to `/`
// if they cancel out of the new workspace modal.
Navigation.dismissModal();
- if (Permissions.canUseFreePlan(this.props.betas)) {
+ if (Permissions.canUseFreePlanSoftLaunch(this.props.betas)) {
this.rerouteToRelevantPage();
}
return;
@@ -60,7 +60,7 @@ class LoginWithValidateCodePage extends Component {
componentDidUpdate() {
// Betas can be loaded a little after a user is authenticated, so check again if the betas have been updated
- if (this.props.session.authToken && Permissions.canUseFreePlan(this.props.betas)) {
+ if (this.props.session.authToken && Permissions.canUseFreePlanSoftLaunch(this.props.betas)) {
this.rerouteToRelevantPage();
}
}
diff --git a/src/pages/ReimbursementAccount/ReimbursementAccountPage.js b/src/pages/ReimbursementAccount/ReimbursementAccountPage.js
index 3adffd340a27..c0c9bc126521 100644
--- a/src/pages/ReimbursementAccount/ReimbursementAccountPage.js
+++ b/src/pages/ReimbursementAccount/ReimbursementAccountPage.js
@@ -138,7 +138,7 @@ class ReimbursementAccountPage extends React.Component {
}
render() {
- if (!Permissions.canUseFreePlan(this.props.betas)) {
+ if (!Permissions.canUseFreePlanSoftLaunch(this.props.betas)) {
console.debug('Not showing new bank account page because user is not on free plan beta');
Navigation.dismissModal();
return null;
diff --git a/src/pages/home/sidebar/SidebarScreen.js b/src/pages/home/sidebar/SidebarScreen.js
index 725d30e898c1..e93033f6eada 100755
--- a/src/pages/home/sidebar/SidebarScreen.js
+++ b/src/pages/home/sidebar/SidebarScreen.js
@@ -172,7 +172,7 @@ class SidebarScreen extends Component {
onSelected: () => Navigation.navigate(ROUTES.IOU_BILL),
},
] : []),
- ...(Permissions.canUseFreePlan(this.props.betas) && !isAdminOfFreePolicy(this.props.allPolicies) ? [
+ ...(Permissions.canUseFreePlanSoftLaunch(this.props.betas) && !isAdminOfFreePolicy(this.props.allPolicies) ? [
{
icon: NewWorkspace,
iconWidth: 46,
diff --git a/src/pages/workspace/WorkspaceCardPage.js b/src/pages/workspace/WorkspaceCardPage.js
index 4eee5d7f9535..269d2f374684 100644
--- a/src/pages/workspace/WorkspaceCardPage.js
+++ b/src/pages/workspace/WorkspaceCardPage.js
@@ -109,7 +109,7 @@ const WorkspaceCardPage = ({
}
};
- if (!Permissions.canUseFreePlan(betas)) {
+ if (!Permissions.canUseFreePlanSoftLaunch(betas)) {
console.debug('Not showing workspace card page because user is not on free plan beta');
return ;
}
diff --git a/src/pages/workspace/WorkspaceEditorPage.js b/src/pages/workspace/WorkspaceEditorPage.js
index c5f3f77b1967..db84595e5134 100644
--- a/src/pages/workspace/WorkspaceEditorPage.js
+++ b/src/pages/workspace/WorkspaceEditorPage.js
@@ -85,7 +85,7 @@ class WorkspaceEditorPage extends React.Component {
render() {
const {policy} = this.props;
- if (!Permissions.canUseFreePlan(this.props.betas)) {
+ if (!Permissions.canUseFreePlanSoftLaunch(this.props.betas)) {
console.debug('Not showing workspace editor page because user is not on free plan beta');
return ;
}
diff --git a/src/pages/workspace/WorkspacePeoplePage.js b/src/pages/workspace/WorkspacePeoplePage.js
index 843ef6be3728..c652a1dfd1a4 100644
--- a/src/pages/workspace/WorkspacePeoplePage.js
+++ b/src/pages/workspace/WorkspacePeoplePage.js
@@ -208,7 +208,7 @@ class WorkspacePeoplePage extends React.Component {
}
render() {
- if (!Permissions.canUseFreePlan(this.props.betas)) {
+ if (!Permissions.canUseFreePlanSoftLaunch(this.props.betas)) {
console.debug('Not showing workspace people page because user is not on free plan beta');
return ;
}