@@ -2,9 +2,13 @@ package com.expensify.chat
22
33import com.facebook.react.common.assets.ReactFontManager
44
5+ import android.app.Activity
56import android.app.ActivityManager
7+ import android.app.Application
8+ import android.content.pm.ActivityInfo
69import android.content.res.Configuration
710import android.database.CursorWindow
11+ import android.os.Bundle
812import android.os.Process
913import androidx.multidex.MultiDexApplication
1014import com.expensify.chat.bootsplash.BootSplashPackage
@@ -42,6 +46,24 @@ class MainApplication : MultiDexApplication(), ReactApplication {
4246
4347 override fun onCreate () {
4448 super .onCreate()
49+
50+ // Plaid's LinkActivity calls setRequestedOrientation(PORTRAIT) in its own onCreate(),
51+ // which forces the UI to portrait even when the device is in landscape. We override it
52+ // here so Plaid can render in whichever orientation the device is actually in.
53+ registerActivityLifecycleCallbacks(object : Application .ActivityLifecycleCallbacks {
54+ override fun onActivityCreated (activity : Activity , savedInstanceState : Bundle ? ) {
55+ if (activity.javaClass.name == " com.plaid.internal.link.LinkActivity" ) {
56+ activity.requestedOrientation = ActivityInfo .SCREEN_ORIENTATION_UNSPECIFIED
57+ }
58+ }
59+ override fun onActivityStarted (activity : Activity ) {}
60+ override fun onActivityResumed (activity : Activity ) {}
61+ override fun onActivityPaused (activity : Activity ) {}
62+ override fun onActivityStopped (activity : Activity ) {}
63+ override fun onActivitySaveInstanceState (activity : Activity , outState : Bundle ) {}
64+ override fun onActivityDestroyed (activity : Activity ) {}
65+ })
66+
4567 ReactFontManager .getInstance().addCustomFont(this , " Custom Emoji Font" , R .font.custom_emoji_font)
4668 ReactFontManager .getInstance().addCustomFont(this , " Expensify New Kansas" , R .font.expensify_new_kansas)
4769 ReactFontManager .getInstance().addCustomFont(this , " Expensify Neue" , R .font.expensify_neue)
0 commit comments