diff --git a/app/build.gradle b/app/build.gradle
index c5cf1b8..4dda39e 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -3,10 +3,6 @@ plugins {
id 'org.jetbrains.kotlin.android'
}
-kotlin {
- jvmToolchain(17)
-}
-
android {
compileSdk 34
namespace "otus.gpb.homework.fragments"
@@ -34,6 +30,9 @@ android {
kotlinOptions {
jvmTarget = '17'
}
+ buildFeatures {
+ viewBinding true
+ }
}
dependencies {
@@ -42,6 +41,7 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.5.1'
implementation 'com.google.android.material:material:1.6.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
+ implementation 'androidx.fragment:fragment-ktx:1.8.5'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 9604b34..e17e9ba 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -21,6 +21,16 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/otus/gpb/homework/fragments/ActivityA.kt b/app/src/main/java/otus/gpb/homework/fragments/ActivityA.kt
new file mode 100644
index 0000000..550b7a8
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/fragments/ActivityA.kt
@@ -0,0 +1,16 @@
+package otus.gpb.homework.fragments
+
+import android.annotation.SuppressLint
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+
+class ActivityA: AppCompatActivity(R.layout.activity_a) {
+
+ @SuppressLint("ResourceType")
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ supportFragmentManager.beginTransaction()
+ .add(R.id.containerActivityA, FragmentMainActivityA())
+ .commit()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/otus/gpb/homework/fragments/ActivityB.kt b/app/src/main/java/otus/gpb/homework/fragments/ActivityB.kt
new file mode 100644
index 0000000..0990cf4
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/fragments/ActivityB.kt
@@ -0,0 +1,26 @@
+package otus.gpb.homework.fragments
+
+import android.content.res.Configuration
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+
+class ActivityB: AppCompatActivity() {
+
+ private val fragmentBA = FragmentBA()
+ private val fragmentBB = FragmentBB()
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_b)
+ val fm = supportFragmentManager.beginTransaction()
+ fm.add(R.id.containerBA, fragmentBB)
+ fm.add(R.id.containerBB, fragmentBA)
+ if(resources.configuration.orientation == Configuration.ORIENTATION_PORTRAIT) {
+ fm.hide(fragmentBB)
+ }
+ fm.commit()
+ }
+
+ fun getFragmentBA() = fragmentBA
+ fun getFragmentBB() = fragmentBB
+}
\ No newline at end of file
diff --git a/app/src/main/java/otus/gpb/homework/fragments/FragmentA.kt b/app/src/main/java/otus/gpb/homework/fragments/FragmentA.kt
new file mode 100644
index 0000000..900e5df
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/fragments/FragmentA.kt
@@ -0,0 +1,41 @@
+package otus.gpb.homework.fragments
+
+import android.content.Context
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.View
+import android.widget.Button
+import androidx.activity.OnBackPressedCallback
+import androidx.core.os.bundleOf
+import androidx.fragment.app.setFragmentResult
+
+class FragmentA : Fragment(R.layout.fragment_a) {
+
+ override fun onAttach(context: Context) {
+ super.onAttach(context)
+ val backPressedCallBack = object : OnBackPressedCallback(true)
+ {
+ override fun handleOnBackPressed() {
+ if(parentFragmentManager.backStackEntryCount <= 1)
+ requireActivity().finish()
+ }
+ }
+ requireActivity().onBackPressedDispatcher.addCallback(this, backPressedCallBack)
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ val button = view.findViewById