Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import android.os.Build
import android.os.Bundle
import android.util.Log
import android.view.KeyEvent
import android.view.MotionEvent
import android.view.View
import android.view.WindowManager
import android.widget.Toast
Expand All @@ -29,7 +28,6 @@ import com.mendix.developerapp.firebase.FCMNotificationHandler
import com.mendix.developerapp.firebase.MENDIX_AD_CAMPAIGN_CHANNEL
import com.mendix.developerapp.home.HomeViewModel
import com.mendix.developerapp.mendixapp.MendixProjectFragment
import com.mendix.developerapp.utilities.GlobalTouchEventListener
import com.mendix.developerapp.utilities.getWarningFilterValue
import com.mendix.developerapp.utilities.supportsAR
import com.mendix.mendixnative.fragment.BackButtonHandler
Expand Down Expand Up @@ -209,12 +207,6 @@ class MainActivity : AppCompatActivity(), DefaultHardwareBackBtnHandler, LaunchS
})
}

override fun dispatchTouchEvent(ev: MotionEvent?): Boolean {
return if ((currentFragment as? GlobalTouchEventListener)?.dispatchTouchEvent(ev) == true) {
true
} else super.dispatchTouchEvent(ev)
}

override fun onBackPressed() {
if ((currentFragment as? BackButtonHandler)?.onBackPressed() != true) {
super.onBackPressed()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.mendix.developerapp

import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener
import com.mendix.developerapp.loading.BundleDownloadListenerHolder
import com.mendix.developerapp.sampelapps.SampleAppsManager
import com.mendix.developerapp.splashscreen.SplashScreenPresenter
import com.mendix.developerapp.util.imageBackground
Expand All @@ -16,6 +18,11 @@ class MainApplication : BaseApplication() {
var splashImagePath = splashBackground(backgroundImage)
}

val bundleDownloadListenerHolder = BundleDownloadListenerHolder()

override val devBundleDownloadListener: DevBundleDownloadListener
get() = bundleDownloadListenerHolder

override fun getUseDeveloperSupport(): Boolean {
return SampleAppsManager.sampleAppJSBundlePath == null
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.mendix.developerapp.loading

import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener

/**
* A delegating [DevBundleDownloadListener] that forwards calls to a mutable [delegate].
*
* This holder is set at ReactHost creation time (Application init). The actual delegate
* is wired up later when the Fragment/ViewModel is created, and cleared on destroy.
*/
class BundleDownloadListenerHolder : DevBundleDownloadListener {
var delegate: DevBundleDownloadListener? = null

override fun onSuccess() {
delegate?.onSuccess()
}

override fun onProgress(status: String?, done: Int?, total: Int?) {
delegate?.onProgress(status, done, total)
}

override fun onFailure(cause: Exception) {
delegate?.onFailure(cause)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@ package com.mendix.developerapp.mendixapp

import android.os.Bundle
import androidx.navigation.fragment.findNavController
import com.facebook.react.devsupport.DefaultDevLoadingViewImplementation
import com.facebook.react.devsupport.setBundleDownloadListener
import com.mendix.developerapp.MainApplication
import com.mendix.mendixnative.react.MxConfiguration

class MendixProjectFragment : MendixProjectFragmentBase() {
Expand All @@ -19,11 +18,16 @@ class MendixProjectFragment : MendixProjectFragmentBase() {

super.onCreate(savedInstanceState)

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

// This now uses built-in RN mechanism to show bundling progress.
DefaultDevLoadingViewImplementation.setDevLoadingEnabled(true);
override fun onDestroy() {
(requireActivity().application as? MainApplication)
?.bundleDownloadListenerHolder?.delegate = null
super.onDestroy()
}

override fun onCloseProjectSelected() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,10 @@ import android.widget.FrameLayout
import androidx.fragment.app.viewModels
import com.mendix.developerapp.MendixBaseFragment
import com.mendix.developerapp.loading.ProjectLoaderViewModel
import com.mendix.developerapp.utilities.GlobalTouchEventListener
import com.zoontek.rnbootsplash.RNBootSplash
import com.mendix.developerapp.R

open class MendixProjectFragmentBase : MendixBaseFragment(), GlobalTouchEventListener {
open class MendixProjectFragmentBase : MendixBaseFragment() {
protected val viewModel: ProjectLoaderViewModel by viewModels()

override fun onCreateView(
Expand Down
9 changes: 3 additions & 6 deletions ios/DeveloperApp/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,17 @@ import UIKit
import Firebase
import GoogleMaps
import UserNotifications
import React_RCTAppDelegate
import ReactAppDependencyProvider
import MendixNative
import React

@UIApplicationMain
@main
class AppDelegate: ReactAppProvider {

var shouldLaunchLastApp: Bool = false
var previewingSampleApp: Bool = false

override func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
SessionCookieStore.restore() //iOS does not persist session cookies across app restarts, this helps persisting session cookies to match behaviour with Android
setUpProvider(dependencyProvider: RCTAppDependencyProvider())
setUpProvider()
clearKeychainIfNecessary()
setUpDevice()
setUpGoogleMaps()
Expand Down Expand Up @@ -72,7 +69,7 @@ extension AppDelegate {
//RootView
extension AppDelegate {
private func updateRootViewController(_ storyboard: UIStoryboard) {
window = MendixReactWindow(frame: UIScreen.main.bounds)
window = UIWindow(frame: UIScreen.main.bounds)
window?.rootViewController = storyboard.instantiateInitialViewController()
window?.makeKeyAndVisible()
window?.overrideUserInterfaceStyle = .light // Force Light Mode
Expand Down
13 changes: 0 additions & 13 deletions ios/DeveloperApp/Extension/MendixReactWindow+Extension.swift

This file was deleted.

3 changes: 1 addition & 2 deletions ios/DeveloperApp/MendixApp/MendixAppViewController.swift
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import UIKit
import MendixNative
import React_RCTAppDelegate

class MendixAppViewController: UIViewController, ReactNativeDelegate {
class MendixAppViewController: UIViewController, ReactNativeDelegateInternal {
override func becomeFirstResponder() -> Bool {
return true
}
Expand Down
9 changes: 5 additions & 4 deletions ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,7 @@ PODS:
- React-renderercss
- React-rendererdebug
- React-utils
- ReactAppDependencyProvider
- ReactCodegen
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
Expand Down Expand Up @@ -4239,24 +4240,24 @@ SPEC CHECKSUMS:
FirebaseRemoteConfigInterop: 6efda51fb5e2f15b16585197e26eaa09574e8a4d
FirebaseSessions: dbd14adac65ce996228652c1fc3a3f576bdf3ecc
fmt: 530618a01105dae0fa3a2f27c81ae11fa8f67eac
glog: 5683914934d5b6e4240e497e0f4a3b42d1854183
glog: e56ede4028c4b7418e6b1195a36b1656bb35e225
Google-Maps-iOS-Utils: 66d6de12be1ce6d3742a54661e7a79cb317a9321
GoogleAppMeasurement: f65fc137531af9ad647f1c0a42f3b6a4d3a98049
GoogleDataTransport: 6c09b596d841063d76d4288cc2d2f42cc36e1e2a
GoogleMaps: 8939898920281c649150e0af74aa291c60f2e77d
GoogleUtilities: ea963c370a38a8069cc5f7ba4ca849a60b6d7d15
hermes-engine: 166613ab57f3dde1bf3f24c60212b66a1d585f8b
hermes-engine: 9f6d216d03a4100ed243774d56948a93afc5bae1
IQKeyboardManager: c8665b3396bd0b79402b4c573eac345a31c7d485
libwebp: 02b23773aedb6ff1fd38cec7a77b81414c6842a8
MendixNative: 91822aad01e73d9afe13953415824bd451b809d9
MendixNative: d2d164b7e500184fe8e8eedf101264f77cd43a0e
MultiplatformBleAdapter: b1fddd0d499b96b607e00f0faa8e60648343dc1d
nanopb: 438bc412db1928dac798aa6fd75726007be04262
op-sqlite: 64000c0da2357c4d73faf4d23ff34dd1ddb332d4
OpenSSL-Universal: 9110d21982bb7e8b22a962b6db56a8aa805afde7
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
PromisesSwift: 9d77319bbe72ebf6d872900551f7eeba9bce2851
QRCodeReader.swift: 373a389fe9a22d513c879a32a6f647c58f4ef572
RCT-Folly: b29feb752b08042c62badaef7d453f3bb5e6ae23
RCT-Folly: 36c4f904fb6cd0219dcb76b94e9502d2a72fab0b
RCTDeprecation: 7489702d717ceea80e271eeacb3fbca39fa3c056
RCTRequired: 1cceac389e77dc5826c681cb782d864b0ed623fc
RCTSwiftUI: afc0a0a635860da1040a0b894bfd529da06d7810
Expand Down
Binary file removed package-0.4.1.tgz
Binary file not shown.
5 changes: 2 additions & 3 deletions package-lock.json

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

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
},
"dependencies": {
"@gorhom/bottom-sheet": "5.2.14",
"mendix-native": "file:./package-0.4.1.tgz",
"mendix-native": "github:mendix/mendix-native#moo/MOO-2316-upgrade-rn-v084",
"@notifee/react-native": "9.1.8",
"@octokit/rest": "^21.1.1",
"@op-engineering/op-sqlite": "15.2.5",
Expand Down