From e40a7cb4c8e9a2e3c25e69044c5d583efc0a69cf Mon Sep 17 00:00:00 2001 From: KarinaDavtyan Date: Tue, 5 Nov 2019 14:42:42 +0100 Subject: [PATCH 1/5] Add ancillaryFactoryFragment --- .../AncillaryFactoryAcivity.kt | 4 ++++ .../AncillaryFactoryFragment.kt | 4 ++++ .../com/kiwi/rnkiwimobile/RNKiwiFragment.kt | 2 +- .../ancillaries/RNAncillaryFactoryFragment.kt | 9 +++++++++ .../RNAncillaryFactoryInitialProperties.kt | 7 +++++++ .../ancillaries/RNAncillaryFactoryModule.kt | 18 ++++++++++++++++++ 6 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 android/playground/src/main/java/com/kiwi/mobile/rnandroidplayground/AncillaryFactoryAcivity.kt create mode 100644 android/playground/src/main/java/com/kiwi/mobile/rnandroidplayground/AncillaryFactoryFragment.kt create mode 100644 android/rnkiwimobile/src/main/java/com/kiwi/rnkiwimobile/ancillaries/RNAncillaryFactoryFragment.kt create mode 100644 android/rnkiwimobile/src/main/java/com/kiwi/rnkiwimobile/ancillaries/RNAncillaryFactoryInitialProperties.kt create mode 100644 android/rnkiwimobile/src/main/java/com/kiwi/rnkiwimobile/ancillaries/RNAncillaryFactoryModule.kt diff --git a/android/playground/src/main/java/com/kiwi/mobile/rnandroidplayground/AncillaryFactoryAcivity.kt b/android/playground/src/main/java/com/kiwi/mobile/rnandroidplayground/AncillaryFactoryAcivity.kt new file mode 100644 index 00000000..04ade4dd --- /dev/null +++ b/android/playground/src/main/java/com/kiwi/mobile/rnandroidplayground/AncillaryFactoryAcivity.kt @@ -0,0 +1,4 @@ +package com.kiwi.mobile.rnandroidplayground + +class AncillaryFactoryAcivity { +} \ No newline at end of file diff --git a/android/playground/src/main/java/com/kiwi/mobile/rnandroidplayground/AncillaryFactoryFragment.kt b/android/playground/src/main/java/com/kiwi/mobile/rnandroidplayground/AncillaryFactoryFragment.kt new file mode 100644 index 00000000..5a18f32e --- /dev/null +++ b/android/playground/src/main/java/com/kiwi/mobile/rnandroidplayground/AncillaryFactoryFragment.kt @@ -0,0 +1,4 @@ +package com.kiwi.mobile.rnandroidplayground + +class AncillaryFactoryFragment { +} \ No newline at end of file diff --git a/android/rnkiwimobile/src/main/java/com/kiwi/rnkiwimobile/RNKiwiFragment.kt b/android/rnkiwimobile/src/main/java/com/kiwi/rnkiwimobile/RNKiwiFragment.kt index f4c48b15..b8cfdccf 100644 --- a/android/rnkiwimobile/src/main/java/com/kiwi/rnkiwimobile/RNKiwiFragment.kt +++ b/android/rnkiwimobile/src/main/java/com/kiwi/rnkiwimobile/RNKiwiFragment.kt @@ -6,11 +6,11 @@ package com.kiwi.rnkiwimobile * Copyright 2017 Agile Sports Technologies, Inc. */ -import android.app.Fragment import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.fragment.app.Fragment import com.facebook.react.ReactNativeHost import com.facebook.react.ReactRootView import com.facebook.react.devsupport.DoubleTapReloadRecognizer diff --git a/android/rnkiwimobile/src/main/java/com/kiwi/rnkiwimobile/ancillaries/RNAncillaryFactoryFragment.kt b/android/rnkiwimobile/src/main/java/com/kiwi/rnkiwimobile/ancillaries/RNAncillaryFactoryFragment.kt new file mode 100644 index 00000000..eb1d3929 --- /dev/null +++ b/android/rnkiwimobile/src/main/java/com/kiwi/rnkiwimobile/ancillaries/RNAncillaryFactoryFragment.kt @@ -0,0 +1,9 @@ +package com.kiwi.rnkiwimobile.ancillaries + +import com.kiwi.rnkiwimobile.RNKiwiFragment; + +abstract class RNAncillaryFactoryFragment(initialProperties: RNAncillaryFactoryInitialProperties) : RNKiwiFragment(RNAncillaryFactoryModule.getInitialProperties(initialProperties)) { + override fun getModuleName(): String { + return RNAncillaryFactoryModule.moduleName + } +} \ No newline at end of file diff --git a/android/rnkiwimobile/src/main/java/com/kiwi/rnkiwimobile/ancillaries/RNAncillaryFactoryInitialProperties.kt b/android/rnkiwimobile/src/main/java/com/kiwi/rnkiwimobile/ancillaries/RNAncillaryFactoryInitialProperties.kt new file mode 100644 index 00000000..cfef7efb --- /dev/null +++ b/android/rnkiwimobile/src/main/java/com/kiwi/rnkiwimobile/ancillaries/RNAncillaryFactoryInitialProperties.kt @@ -0,0 +1,7 @@ +package com.kiwi.rnkiwimobile.ancillaries + +data class RNAncillaryFactoryInitialProperties( + val service: String, + val bookingId: Int, + val kwAuthToken: String +) \ No newline at end of file diff --git a/android/rnkiwimobile/src/main/java/com/kiwi/rnkiwimobile/ancillaries/RNAncillaryFactoryModule.kt b/android/rnkiwimobile/src/main/java/com/kiwi/rnkiwimobile/ancillaries/RNAncillaryFactoryModule.kt new file mode 100644 index 00000000..f8cbf348 --- /dev/null +++ b/android/rnkiwimobile/src/main/java/com/kiwi/rnkiwimobile/ancillaries/RNAncillaryFactoryModule.kt @@ -0,0 +1,18 @@ +package com.kiwi.rnkiwimobile.ancillaries + +import android.os.Bundle + +object RNAncillaryFactoryModule { + const val jsEntryPoint = "app/native" + const val moduleName = "AncillaryFactory" + + fun getInitialProperties(initialProperties: RNAncillaryFactoryInitialProperties): Bundle? { + return Bundle().apply { + putString("service", initialProperties.service) + putInt("bookingId", initialProperties.bookingId) + putString("kwAuthToken", initialProperties.kwAuthToken) + } + + } + +} From bb4ed88831f94ba29328fdb56227dc8cf29be611 Mon Sep 17 00:00:00 2001 From: KarinaDavtyan Date: Tue, 5 Nov 2019 14:45:16 +0100 Subject: [PATCH 2/5] Add ancillaryFactory Activity to Playground to test Fragment --- .../playground/src/main/AndroidManifest.xml | 2 + .../AncillaryFactoryAcivity.kt | 57 ++++++++++++++++++- .../AncillaryFactoryFragment.kt | 8 ++- .../rnandroidplayground/MainActivity.kt | 4 ++ .../src/main/res/layout/activity_main.xml | 6 ++ 5 files changed, 75 insertions(+), 2 deletions(-) diff --git a/android/playground/src/main/AndroidManifest.xml b/android/playground/src/main/AndroidManifest.xml index a2596c96..f9b0de0e 100644 --- a/android/playground/src/main/AndroidManifest.xml +++ b/android/playground/src/main/AndroidManifest.xml @@ -35,6 +35,8 @@ + + diff --git a/android/playground/src/main/java/com/kiwi/mobile/rnandroidplayground/AncillaryFactoryAcivity.kt b/android/playground/src/main/java/com/kiwi/mobile/rnandroidplayground/AncillaryFactoryAcivity.kt index 04ade4dd..afc3b44e 100644 --- a/android/playground/src/main/java/com/kiwi/mobile/rnandroidplayground/AncillaryFactoryAcivity.kt +++ b/android/playground/src/main/java/com/kiwi/mobile/rnandroidplayground/AncillaryFactoryAcivity.kt @@ -1,4 +1,59 @@ package com.kiwi.mobile.rnandroidplayground -class AncillaryFactoryAcivity { +import android.annotation.TargetApi +import android.os.Build +import android.os.Bundle +import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler +import com.facebook.react.modules.core.PermissionAwareActivity +import androidx.appcompat.app.AppCompatActivity +import com.facebook.react.modules.core.PermissionListener + + +class AncillaryFactoryAcivity : AppCompatActivity(), DefaultHardwareBackBtnHandler, PermissionAwareActivity { + + private var mPermissionListener: PermissionListener? = null + + companion object { + fun getViewModelClass(): Class = + AncillaryFactoryAcivity::class.java + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_fragment) + + if (savedInstanceState == null) { + addFragment() + } + } + + private fun addFragment() { + val fragmentManager = getSupportFragmentManager() + fragmentManager.beginTransaction().add(R.id.container_main, AncillaryFactoryFragment()).commit() + } + + // region BackButton + override fun invokeDefaultOnBackPressed() { + super.onBackPressed() + } + + override fun onBackPressed() { + (application as PlaygroundApplication).reactNativeHost.reactInstanceManager.onBackPressed() + } + // endregion + + // region PermissionAwareActivity + override fun onRequestPermissionsResult(requestCode: Int, permissions: Array, grantResults: IntArray) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults) + if (mPermissionListener != null && mPermissionListener!!.onRequestPermissionsResult(requestCode, permissions, grantResults)) { + mPermissionListener = null + } + } + + @TargetApi(Build.VERSION_CODES.M) + override fun requestPermissions(permissions: Array, requestCode: Int, listener: PermissionListener) { + mPermissionListener = listener + requestPermissions(permissions, requestCode) + } + // endregion } \ No newline at end of file diff --git a/android/playground/src/main/java/com/kiwi/mobile/rnandroidplayground/AncillaryFactoryFragment.kt b/android/playground/src/main/java/com/kiwi/mobile/rnandroidplayground/AncillaryFactoryFragment.kt index 5a18f32e..c1e112c9 100644 --- a/android/playground/src/main/java/com/kiwi/mobile/rnandroidplayground/AncillaryFactoryFragment.kt +++ b/android/playground/src/main/java/com/kiwi/mobile/rnandroidplayground/AncillaryFactoryFragment.kt @@ -1,4 +1,10 @@ package com.kiwi.mobile.rnandroidplayground -class AncillaryFactoryFragment { +import com.facebook.react.ReactNativeHost +import com.kiwi.rnkiwimobile.ancillaries.RNAncillaryFactoryFragment +import com.kiwi.rnkiwimobile.ancillaries.RNAncillaryFactoryInitialProperties + + +class AncillaryFactoryFragment: RNAncillaryFactoryFragment(RNAncillaryFactoryInitialProperties(service = "fast_track", bookingId = 123, kwAuthToken = "mock")) { + override fun getReactNativeHost(): ReactNativeHost = (activity?.application as PlaygroundApplication).reactNativeHost } \ No newline at end of file diff --git a/android/playground/src/main/java/com/kiwi/mobile/rnandroidplayground/MainActivity.kt b/android/playground/src/main/java/com/kiwi/mobile/rnandroidplayground/MainActivity.kt index f9141bbd..2bb45f22 100644 --- a/android/playground/src/main/java/com/kiwi/mobile/rnandroidplayground/MainActivity.kt +++ b/android/playground/src/main/java/com/kiwi/mobile/rnandroidplayground/MainActivity.kt @@ -31,6 +31,10 @@ class MainActivity : AppCompatActivity() { button_account_price_alerts.setOnClickListener { startActivity(Intent(this, AccountPriceAlertsActivity.getViewModelClass())) } + + button_ancillary_factory.setOnClickListener { + startActivity(Intent(this, AncillaryFactoryAcivity.getViewModelClass())) + } } override fun onDestroy() { diff --git a/android/playground/src/main/res/layout/activity_main.xml b/android/playground/src/main/res/layout/activity_main.xml index 332b97a9..bd7eb8e3 100644 --- a/android/playground/src/main/res/layout/activity_main.xml +++ b/android/playground/src/main/res/layout/activity_main.xml @@ -39,4 +39,10 @@ android:layout_height="wrap_content" android:text="Account price alerts" /> +