diff --git a/app/build.gradle b/app/build.gradle
index c5cf1b8..fc757c4 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'
}
+ viewBinding {
+ enabled = 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.activity:activity:1.9.3'
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..46bc072 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -12,6 +12,12 @@
android:supportsRtl="true"
android:theme="@style/Theme.Fragments"
tools:targetApi="31">
+
+
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..87491f3
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/fragments/ActivityA.kt
@@ -0,0 +1,28 @@
+package otus.gpb.homework.fragments
+
+import android.os.Bundle
+import android.window.OnBackInvokedDispatcher
+import androidx.activity.enableEdgeToEdge
+import androidx.appcompat.app.AppCompatActivity
+import androidx.core.view.ViewCompat
+import androidx.core.view.WindowInsetsCompat
+import otus.gpb.homework.fragments.databinding.ActivityABinding
+import otus.gpb.homework.fragments.databinding.ActivityMainBinding
+import otus.gpb.homework.fragments.fragments.FragmentA
+
+class ActivityA : AppCompatActivity() {
+
+ private lateinit var binding: ActivityABinding
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ enableEdgeToEdge()
+ binding = ActivityABinding.inflate(layoutInflater)
+ setContentView(binding.root)
+
+ supportFragmentManager.beginTransaction()
+ .replace(R.id.fragmentContainer, FragmentA())
+ .addToBackStack("FragmentA")
+ .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..1023342
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/fragments/ActivityB.kt
@@ -0,0 +1,44 @@
+package otus.gpb.homework.fragments
+
+import android.os.Bundle
+import androidx.activity.enableEdgeToEdge
+import androidx.appcompat.app.AppCompatActivity
+import androidx.core.view.isVisible
+import otus.gpb.homework.fragments.databinding.ActivityBBinding
+import otus.gpb.homework.fragments.fragments.FragmentBA
+import otus.gpb.homework.fragments.fragments.FragmentBB
+
+class ActivityB : AppCompatActivity() {
+
+ private lateinit var binding: ActivityBBinding
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ enableEdgeToEdge()
+ binding = ActivityBBinding.inflate(layoutInflater)
+ setContentView(binding.root)
+
+ supportFragmentManager.beginTransaction()
+ .replace(R.id.fragmentContainerBA, FragmentBA())
+ .replace(R.id.fragmentContainerBB, FragmentBB())
+ .commit()
+
+ switchFragments()
+ }
+
+ private fun switchFragments() {
+
+ if (ScreenOrientationHelper.getScreenOrientation(resources) == "PORTRAIT") {
+ with(binding) {
+ fragmentContainerBA.isVisible = true
+ fragmentContainerBB.isVisible = false
+ }
+
+ } else {
+ with(binding) {
+ fragmentContainerBA.isVisible = true
+ fragmentContainerBB.isVisible = true
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/otus/gpb/homework/fragments/MainActivity.kt b/app/src/main/java/otus/gpb/homework/fragments/MainActivity.kt
index 5e89c44..3d02473 100644
--- a/app/src/main/java/otus/gpb/homework/fragments/MainActivity.kt
+++ b/app/src/main/java/otus/gpb/homework/fragments/MainActivity.kt
@@ -1,12 +1,28 @@
package otus.gpb.homework.fragments
+import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
+import otus.gpb.homework.fragments.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
+ private lateinit var binding: ActivityMainBinding
+
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_main)
+
+ binding = ActivityMainBinding.inflate(layoutInflater)
+ setContentView(binding.root)
+
+ with(binding) {
+ openActivityA.setOnClickListener {
+ startActivity(Intent(applicationContext, ActivityA::class.java))
+ }
+ openActivityB.setOnClickListener {
+ startActivity(Intent(applicationContext, ActivityB::class.java))
+ }
+ }
}
-}
\ No newline at end of file
+}
+
diff --git a/app/src/main/java/otus/gpb/homework/fragments/ScreenOrientationHelper.kt b/app/src/main/java/otus/gpb/homework/fragments/ScreenOrientationHelper.kt
new file mode 100644
index 0000000..1522e7d
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/fragments/ScreenOrientationHelper.kt
@@ -0,0 +1,15 @@
+package otus.gpb.homework.fragments
+
+import android.content.res.Configuration
+import android.content.res.Resources
+
+object ScreenOrientationHelper {
+
+ fun getScreenOrientation(resources: Resources): String {
+ return when (resources.configuration.orientation) {
+ Configuration.ORIENTATION_PORTRAIT -> "PORTRAIT"
+ Configuration.ORIENTATION_LANDSCAPE -> "LANDSCAPE"
+ else -> ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/otus/gpb/homework/fragments/fragments/FragmentA.kt b/app/src/main/java/otus/gpb/homework/fragments/fragments/FragmentA.kt
new file mode 100644
index 0000000..796b7f4
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/fragments/fragments/FragmentA.kt
@@ -0,0 +1,34 @@
+package otus.gpb.homework.fragments.fragments
+
+import android.os.Bundle
+import android.view.View
+import android.widget.Button
+import androidx.activity.OnBackPressedCallback
+import androidx.fragment.app.Fragment
+import otus.gpb.homework.fragments.ColorGenerator
+import otus.gpb.homework.fragments.R
+
+class FragmentA : Fragment(R.layout.fragment_a) {
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+
+ val bundle = Bundle()
+ bundle.putInt("color", ColorGenerator.generateColor())
+ val fragmentAA = FragmentAA()
+ fragmentAA.arguments = bundle
+
+ view.findViewById