Skip to content

Commit 88379ac

Browse files
Merge pull request #228 from mendix/moo/MOO-2316-upgrade-rn-v084
[MOO-2316]: Upgrade RN to 0.84.1 (and dependencies)
2 parents 86853c6 + 8a233ea commit 88379ac

14 files changed

Lines changed: 848 additions & 785 deletions

File tree

android/app/src/production/java/com/mendix/developerapp/MainActivity.kt

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import android.os.Build
77
import android.os.Bundle
88
import android.util.Log
99
import android.view.KeyEvent
10-
import android.view.MotionEvent
1110
import android.view.View
1211
import android.view.WindowManager
1312
import android.widget.Toast
@@ -29,7 +28,6 @@ import com.mendix.developerapp.firebase.FCMNotificationHandler
2928
import com.mendix.developerapp.firebase.MENDIX_AD_CAMPAIGN_CHANNEL
3029
import com.mendix.developerapp.home.HomeViewModel
3130
import com.mendix.developerapp.mendixapp.MendixProjectFragment
32-
import com.mendix.developerapp.utilities.GlobalTouchEventListener
3331
import com.mendix.developerapp.utilities.getWarningFilterValue
3432
import com.mendix.developerapp.utilities.supportsAR
3533
import com.mendix.mendixnative.fragment.BackButtonHandler
@@ -209,12 +207,6 @@ class MainActivity : AppCompatActivity(), DefaultHardwareBackBtnHandler, LaunchS
209207
})
210208
}
211209

212-
override fun dispatchTouchEvent(ev: MotionEvent?): Boolean {
213-
return if ((currentFragment as? GlobalTouchEventListener)?.dispatchTouchEvent(ev) == true) {
214-
true
215-
} else super.dispatchTouchEvent(ev)
216-
}
217-
218210
override fun onBackPressed() {
219211
if ((currentFragment as? BackButtonHandler)?.onBackPressed() != true) {
220212
super.onBackPressed()

android/app/src/production/java/com/mendix/developerapp/MainApplication.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.mendix.developerapp
22

3+
import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener
4+
import com.mendix.developerapp.loading.BundleDownloadListenerHolder
35
import com.mendix.developerapp.sampelapps.SampleAppsManager
46
import com.mendix.developerapp.splashscreen.SplashScreenPresenter
57
import com.mendix.developerapp.util.imageBackground
@@ -16,6 +18,11 @@ class MainApplication : BaseApplication() {
1618
var splashImagePath = splashBackground(backgroundImage)
1719
}
1820

21+
val bundleDownloadListenerHolder = BundleDownloadListenerHolder()
22+
23+
override val devBundleDownloadListener: DevBundleDownloadListener
24+
get() = bundleDownloadListenerHolder
25+
1926
override fun getUseDeveloperSupport(): Boolean {
2027
return SampleAppsManager.sampleAppJSBundlePath == null
2128
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.mendix.developerapp.loading
2+
3+
import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener
4+
5+
/**
6+
* A delegating [DevBundleDownloadListener] that forwards calls to a mutable [delegate].
7+
*
8+
* This holder is set at ReactHost creation time (Application init). The actual delegate
9+
* is wired up later when the Fragment/ViewModel is created, and cleared on destroy.
10+
*/
11+
class BundleDownloadListenerHolder : DevBundleDownloadListener {
12+
var delegate: DevBundleDownloadListener? = null
13+
14+
override fun onSuccess() {
15+
delegate?.onSuccess()
16+
}
17+
18+
override fun onProgress(status: String?, done: Int?, total: Int?) {
19+
delegate?.onProgress(status, done, total)
20+
}
21+
22+
override fun onFailure(cause: Exception) {
23+
delegate?.onFailure(cause)
24+
}
25+
}

android/app/src/production/java/com/mendix/developerapp/mendixapp/MendixProjectFragment.kt

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@ package com.mendix.developerapp.mendixapp
22

33
import android.os.Bundle
44
import androidx.navigation.fragment.findNavController
5-
import com.facebook.react.devsupport.DefaultDevLoadingViewImplementation
6-
import com.facebook.react.devsupport.setBundleDownloadListener
5+
import com.mendix.developerapp.MainApplication
76
import com.mendix.mendixnative.react.MxConfiguration
87

98
class MendixProjectFragment : MendixProjectFragmentBase() {
@@ -19,11 +18,16 @@ class MendixProjectFragment : MendixProjectFragmentBase() {
1918

2019
super.onCreate(savedInstanceState)
2120

22-
// Setting up our download listener
23-
setBundleDownloadListener(reactHost?.devSupportManager, viewModel.devServerCallback)
21+
// Wire the ViewModel's download listener into the application-level holder.
22+
// The holder was injected into the DevSupportManager at ReactHost creation time.
23+
(requireActivity().application as MainApplication)
24+
.bundleDownloadListenerHolder.delegate = viewModel.devServerCallback
25+
}
2426

25-
// This now uses built-in RN mechanism to show bundling progress.
26-
DefaultDevLoadingViewImplementation.setDevLoadingEnabled(true);
27+
override fun onDestroy() {
28+
(requireActivity().application as? MainApplication)
29+
?.bundleDownloadListenerHolder?.delegate = null
30+
super.onDestroy()
2731
}
2832

2933
override fun onCloseProjectSelected() {

android/app/src/production/java/com/mendix/developerapp/mendixapp/MendixProjectFragmentBase.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,10 @@ import android.widget.FrameLayout
88
import androidx.fragment.app.viewModels
99
import com.mendix.developerapp.MendixBaseFragment
1010
import com.mendix.developerapp.loading.ProjectLoaderViewModel
11-
import com.mendix.developerapp.utilities.GlobalTouchEventListener
1211
import com.zoontek.rnbootsplash.RNBootSplash
1312
import com.mendix.developerapp.R
1413

15-
open class MendixProjectFragmentBase : MendixBaseFragment(), GlobalTouchEventListener {
14+
open class MendixProjectFragmentBase : MendixBaseFragment() {
1615
protected val viewModel: ProjectLoaderViewModel by viewModels()
1716

1817
override fun onCreateView(

ios/DeveloperApp/AppDelegate.swift

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,17 @@ import UIKit
22
import Firebase
33
import GoogleMaps
44
import UserNotifications
5-
import React_RCTAppDelegate
6-
import ReactAppDependencyProvider
75
import MendixNative
8-
import React
96

10-
@UIApplicationMain
7+
@main
118
class AppDelegate: ReactAppProvider {
129

1310
var shouldLaunchLastApp: Bool = false
1411
var previewingSampleApp: Bool = false
1512

1613
override func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
1714
SessionCookieStore.restore() //iOS does not persist session cookies across app restarts, this helps persisting session cookies to match behaviour with Android
18-
setUpProvider(dependencyProvider: RCTAppDependencyProvider())
15+
setUpProvider()
1916
clearKeychainIfNecessary()
2017
setUpDevice()
2118
setUpGoogleMaps()
@@ -72,7 +69,7 @@ extension AppDelegate {
7269
//RootView
7370
extension AppDelegate {
7471
private func updateRootViewController(_ storyboard: UIStoryboard) {
75-
window = MendixReactWindow(frame: UIScreen.main.bounds)
72+
window = UIWindow(frame: UIScreen.main.bounds)
7673
window?.rootViewController = storyboard.instantiateInitialViewController()
7774
window?.makeKeyAndVisible()
7875
window?.overrideUserInterfaceStyle = .light // Force Light Mode

ios/DeveloperApp/Extension/MendixReactWindow+Extension.swift

Lines changed: 0 additions & 13 deletions
This file was deleted.

ios/DeveloperApp/Info.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@
8484
<key>NSPhotoLibraryUsageDescription</key>
8585
<string>To use that feature the app needs access to your photo library.</string>
8686
<key>Native Binary Version</key>
87-
<integer>31</integer>
87+
<integer>32</integer>
8888
<key>NativeOTAEnabled</key>
8989
<true/>
9090
<key>RCTNewArchEnabled</key>

ios/DeveloperApp/MendixApp/MendixAppViewController.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import UIKit
22
import MendixNative
3-
import React_RCTAppDelegate
43

5-
class MendixAppViewController: UIViewController, ReactNativeDelegate {
4+
class MendixAppViewController: UIViewController, ReactNativeDelegateInternal {
65
override func becomeFirstResponder() -> Bool {
76
return true
87
}

0 commit comments

Comments
 (0)