Skip to content

Commit

Permalink
Merge branch 'Expensify:main' into krishna2323/issue/51504
Browse files Browse the repository at this point in the history
  • Loading branch information
Krishna2323 authored Nov 25, 2024
2 parents 57cdb7e + 0354bae commit dda2aed
Show file tree
Hide file tree
Showing 112 changed files with 1,628 additions and 405 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,7 @@ Often times in order to write a unit test, you may need to mock data, a componen
to help run our Unit tests.

* To run the **Jest unit tests**: `npm run test`
* UI tests guidelines can be found [here](tests/ui/README.md)

## Performance tests
We use Reassure for monitoring performance regression. More detailed information can be found [here](tests/perf-test/README.md):
Expand Down
4 changes: 2 additions & 2 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,8 @@ android {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
multiDexEnabled rootProject.ext.multiDexEnabled
versionCode 1009006600
versionName "9.0.66-0"
versionCode 1009006606
versionName "9.0.66-6"
// Supported language variants must be declared here to avoid from being removed during the compilation.
// This also helps us to not include unnecessary language variants in the APK.
resConfigs "en", "es"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import android.database.CursorWindow
import android.os.Process
import androidx.multidex.MultiDexApplication
import com.expensify.chat.bootsplash.BootSplashPackage
import com.expensify.chat.navbar.NavBarManagerPackage
import com.expensify.chat.shortcutManagerModule.ShortcutManagerPackage
import com.facebook.react.PackageList
import com.facebook.react.ReactApplication
Expand Down Expand Up @@ -36,6 +37,7 @@ class MainApplication : MultiDexApplication(), ReactApplication {
add(BootSplashPackage())
add(ExpensifyAppPackage())
add(RNTextInputResetPackage())
add(NavBarManagerPackage())
}

override fun getJSMainModuleName() = ".expo/.virtual-metro-entry"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.expensify.chat.navbar

import androidx.core.view.WindowInsetsControllerCompat
import com.facebook.react.bridge.ReactApplicationContext
import com.facebook.react.bridge.ReactContextBaseJavaModule
import com.facebook.react.bridge.ReactMethod
import com.facebook.react.bridge.UiThreadUtil;

class NavBarManagerModule(
private val mReactContext: ReactApplicationContext,
) : ReactContextBaseJavaModule(mReactContext) {
override fun getName(): String = "RNNavBarManager"

@ReactMethod
fun setButtonStyle(style: String) {
UiThreadUtil.runOnUiThread {
mReactContext.currentActivity?.window?.let {
WindowInsetsControllerCompat(it, it.decorView).let { controller ->
when (style) {
"light" -> controller.isAppearanceLightNavigationBars = false
"dark" -> controller.isAppearanceLightNavigationBars = true
}
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.expensify.chat.navbar

import com.facebook.react.ReactPackage
import com.facebook.react.bridge.NativeModule
import com.facebook.react.bridge.ReactApplicationContext
import com.facebook.react.uimanager.ViewManager

class NavBarManagerPackage : ReactPackage {
override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
return emptyList()
}

override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> {
val modules: MutableList<NativeModule> = ArrayList()
modules.add(NavBarManagerModule(reactContext))
return modules
}
}
4 changes: 4 additions & 0 deletions android/app/src/main/res/values/styles.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
<style name="BaseAppTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:colorEdgeEffect">@color/gray4</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:navigationBarColor">@android:color/transparent</item>
<item name="android:enforceNavigationBarContrast">false</item>
<item name="colorAccent">@color/accent</item>
<item name="android:editTextBackground">@drawable/rn_edit_text_material</item>
<item name="popupTheme">@style/AppTheme.Popup</item>
Expand Down Expand Up @@ -59,6 +61,8 @@

<style name="BootTheme" parent="Theme.SplashScreen">
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:navigationBarColor">@android:color/transparent</item>
<item name="android:enforceNavigationBarContrast">false</item>
<item name="windowSplashScreenAnimatedIcon">@drawable/bootsplash_logo</item>
<item name="windowSplashScreenBackground">@color/bootsplash_background</item>
</style>
Expand Down
7 changes: 4 additions & 3 deletions contributingGuides/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,10 @@ You can create as many accounts as needed in order to test your changes directly

**Notes**:

1. When testing chat functionality in the app please do this between accounts you or your fellow contributors own - **do not test chatting with Concierge**, as this diverts to our customer support team. Thank you.
2. A member of our customer onboarding team gets auto-assigned to every new policy created by a non-paying account to help them set up. Please **do not interact with these teams, ask for calls, or support on your issues.** If you do need to test functionality inside the defaultRooms (#admins & #announce) for any issues you’re working on, please let them know that you are a contributor and don’t need assistance. They will proceed to ignore the chat.
3. Please **do not post in any Expensify owned public room for testing** (e.g #exfy-roadmap, #new-expensify-feedback). These rooms include real customers and investors. You can create your own public rooms, or [use this test public room](https://staging.new.expensify.com/r/2091104345528462) on either staging or production. Thanks!
1. When creating test accounts, include a `+` (plus sign) in the email address (e.g., [email protected]). This marks the account and their associated workspaces as test accounts in Expensify, ensuring Expensify Guides are not assigned to help with account setup.
2. When testing chat functionality in the app please do this between accounts you or your fellow contributors own - **do not test chatting with Concierge**, as this diverts to our customer support team. Thank you.
3. A member of our customer onboarding team gets auto-assigned to every new policy created by a non-paying account to help them set up. Please **do not interact with these teams, ask for calls, or support on your issues.** If you do need to test functionality inside the defaultRooms (#admins & #announce) for any issues you’re working on, please let them know that you are a contributor and don’t need assistance. They will proceed to ignore the chat.
4. Please **do not post in any Expensify owned public room for testing** (e.g #exfy-roadmap, #new-expensify-feedback). These rooms include real customers and investors. You can create your own public rooms, or [use this test public room](https://staging.new.expensify.com/r/2091104345528462) on either staging or production. Thanks!

#### Generating Multiple Test Accounts
You can generate multiple test accounts by using a `+` postfix, for example if your email is [email protected], you can create multiple New Expensify accounts connected to the same email address by using [email protected], [email protected], etc.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,34 @@ The primary email address on your Expensify account is the email that receives e
Before you can remove a primary email address, you must add a new one to your Expensify account and make it the primary using the steps below. Email addresses must be added as a secondary login before they can be made the primary.
{% include end-info.html %}

# Adding a new Secondary Login
*Note: This process is currently not available from the mobile app and must be completed from the Expensify website.*

1. Hover over Settings, then click **Account**.
2. Under the Account Details tab, scroll down to the Secondary Logins section and click **Add Secondary Login**.
2. Under the Account Details > Secondary Logins > click **Add Secondary Login**.
3. Enter the email address or phone number you wish to use as a secondary login. For phone numbers, be sure to include the international code, if applicable.
4. Find the email or text message from Expensify containing the Magic Code and enter it into the field.
5. To make the new email address the primary address for your account, click **Make Primary**.

# Changing your Primary Login
If you already have multiple email addresses linked to your account, you can change which one is listed as the Primary Login.

1. Settings > Account > Secondary Logins.
2. Click **Make Primary** next to the email address you want to appear on your account.

You can keep both logins, or you can click **Remove** next to the old email address to delete it from your account.

# Unlinking an email from your old account
If you at one point added your personal email address as a Secondary Login to your account, and then the account was closed - for example if you had a company account and then left the company - you may want to unlink your personal email to use it with a new Expensify account. You can do this with the following steps:

1. Navigate to the sign in page at expensify.com.
2. Enter your personal email address into the email field.
3. Click **Unlink Accounts**.
4. You will recieve a verification email to complete the unlinking of your personal address.

# FAQ
**What does changing the primary login do?**
When you change your primary login this will update the email address that appears on your reports (old and new), in workspace account settings, and on your account.

**Can I have multiple Seconary Logins?**
Yes, you can have an unlimited number of logins attached to your account.
</div>
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ When an expense is submitted to a workspace, your approver will receive an email

# How to Create an Expense

# SmartScan a receipt
## SmartScan a receipt

{% include selector.html values="desktop, mobile" %}

Expand Down Expand Up @@ -55,7 +55,7 @@ When an expense is submitted to a workspace, your approver will receive an email
You can also forward receipts to [email protected] using your primary or secondary email address. SmartScan will automatically extract all the details from the receipt and add them to your expenses.
{% include end-info.html %}

# Manually add an expense
## Manually add an expense

{% include selector.html values="desktop, mobile" %}

Expand Down Expand Up @@ -83,7 +83,7 @@ You can also forward receipts to [email protected] using your primary or se

{% include end-selector.html %}

# Create a distance expense
## Create a distance expense

{% include selector.html values="desktop, mobile" %}

Expand Down Expand Up @@ -115,6 +115,28 @@ You can also forward receipts to [email protected] using your primary or se

{% include end-selector.html %}

# How to Delete an Expense

{% include selector.html values="desktop, mobile" %}

{% include option.html value="desktop or WebApp" %}
1. Click **Search > Expenses** and locate your expense.
2. Click the checkbox next to the expense(s) you wish to delete.
3. Click **# selected** in the top right corner.
4. Choose **Delete**.
5. Confirm that you wish to delete it by clicking the red **Delete** button in the popup.
{% include end-option.html %}

{% include option.html value="mobile" %}
1. Tap **Search**.
2. Tap and hold on the expense you wish to delete.
3. Tap **# selected**.
4. Tap **Delete**.
5. Confirm that you wish to delete it by clicking the red **Delete** button in the popup.
{% include end-option.html %}

{% include end-selector.html %}

# Next Steps for expenses sent to an Individual

- Expenses submitted to an individual are instantly sent.
Expand Down
2 changes: 1 addition & 1 deletion ios/NewExpensify/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>9.0.66.0</string>
<string>9.0.66.6</string>
<key>FullStory</key>
<dict>
<key>OrgId</key>
Expand Down
2 changes: 1 addition & 1 deletion ios/NewExpensifyTests/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>9.0.66.0</string>
<string>9.0.66.6</string>
</dict>
</plist>
2 changes: 1 addition & 1 deletion ios/NotificationServiceExtension/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<key>CFBundleShortVersionString</key>
<string>9.0.66</string>
<key>CFBundleVersion</key>
<string>9.0.66.0</string>
<string>9.0.66.6</string>
<key>NSExtension</key>
<dict>
<key>NSExtensionPointIdentifier</key>
Expand Down
9 changes: 5 additions & 4 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "new.expensify",
"version": "9.0.66-0",
"version": "9.0.66-6",
"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.",
Expand Down Expand Up @@ -160,7 +160,7 @@
"react-native-picker-select": "git+https://github.com/Expensify/react-native-picker-select.git#da50d2c5c54e268499047f9cc98b8df4196c1ddf",
"react-native-plaid-link-sdk": "11.11.0",
"react-native-qrcode-svg": "6.3.11",
"react-native-quick-sqlite": "git+https://github.com/margelo/react-native-quick-sqlite#99f34ebefa91698945f3ed26622e002bd79489e0",
"react-native-quick-sqlite": "git+https://github.com/margelo/react-native-nitro-sqlite#99f34ebefa91698945f3ed26622e002bd79489e0",
"react-native-reanimated": "3.16.1",
"react-native-release-profiler": "^0.2.1",
"react-native-render-html": "6.3.1",
Expand Down
Loading

0 comments on commit dda2aed

Please sign in to comment.