From 6649d241ef9dfc5f8e0379512176f4c164528a71 Mon Sep 17 00:00:00 2001 From: annaksenova Date: Thu, 1 Jan 2026 20:14:03 +0300 Subject: [PATCH] Homework --- app/build.gradle | 1 + app/src/main/AndroidManifest.xml | 6 ++++ .../otus/gpb/homework/fragments/ActivityA.kt | 29 +++++++++++++++++ .../otus/gpb/homework/fragments/ActivityB.kt | 20 ++++++++++++ .../otus/gpb/homework/fragments/FragmentA.kt | 30 ++++++++++++++++++ .../otus/gpb/homework/fragments/FragmentAA.kt | 28 +++++++++++++++++ .../otus/gpb/homework/fragments/FragmentAB.kt | 13 ++++++++ .../otus/gpb/homework/fragments/FragmentBA.kt | 31 +++++++++++++++++++ .../otus/gpb/homework/fragments/FragmentBB.kt | 26 ++++++++++++++++ .../gpb/homework/fragments/MainActivity.kt | 16 ++++++++++ app/src/main/res/layout-land/activity_b.xml | 27 ++++++++++++++++ app/src/main/res/layout/activity_a.xml | 6 ++++ app/src/main/res/layout/activity_b.xml | 16 ++++++++++ app/src/main/res/layout/activity_main.xml | 21 +++++++++++-- app/src/main/res/layout/fragment_a.xml | 30 ++++++++++++++++++ app/src/main/res/layout/fragment_aa.xml | 24 ++++++++++++++ app/src/main/res/layout/fragment_ab.xml | 15 +++++++++ app/src/main/res/layout/fragment_ba.xml | 31 +++++++++++++++++++ app/src/main/res/layout/fragment_bb.xml | 31 +++++++++++++++++++ app/src/main/res/values/strings.xml | 3 -- 20 files changed, 398 insertions(+), 6 deletions(-) create mode 100644 app/src/main/java/otus/gpb/homework/fragments/ActivityA.kt create mode 100644 app/src/main/java/otus/gpb/homework/fragments/ActivityB.kt create mode 100644 app/src/main/java/otus/gpb/homework/fragments/FragmentA.kt create mode 100644 app/src/main/java/otus/gpb/homework/fragments/FragmentAA.kt create mode 100644 app/src/main/java/otus/gpb/homework/fragments/FragmentAB.kt create mode 100644 app/src/main/java/otus/gpb/homework/fragments/FragmentBA.kt create mode 100644 app/src/main/java/otus/gpb/homework/fragments/FragmentBB.kt create mode 100644 app/src/main/res/layout-land/activity_b.xml create mode 100644 app/src/main/res/layout/activity_a.xml create mode 100644 app/src/main/res/layout/activity_b.xml create mode 100644 app/src/main/res/layout/fragment_a.xml create mode 100644 app/src/main/res/layout/fragment_aa.xml create mode 100644 app/src/main/res/layout/fragment_ab.xml create mode 100644 app/src/main/res/layout/fragment_ba.xml create mode 100644 app/src/main/res/layout/fragment_bb.xml delete mode 100644 app/src/main/res/values/strings.xml diff --git a/app/build.gradle b/app/build.gradle index c5cf1b8..70ba3b5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -42,6 +42,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.8.0' 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..30a2cf9 --- /dev/null +++ b/app/src/main/java/otus/gpb/homework/fragments/ActivityA.kt @@ -0,0 +1,29 @@ +package otus.gpb.homework.fragments + +import android.os.Bundle +import androidx.activity.addCallback +import androidx.appcompat.app.AppCompatActivity + +class ActivityA : AppCompatActivity() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_a) + + if (savedInstanceState == null) { + supportFragmentManager.beginTransaction() + .replace(R.id.container_a, FragmentA(), "FragmentA_Tag").commit() + } + + onBackPressedDispatcher.addCallback(this) { + val fragmentA = supportFragmentManager.findFragmentByTag("FragmentA_Tag") + val childStackCount = fragmentA?.childFragmentManager?.backStackEntryCount ?: 0 + + if (childStackCount > 0) { + fragmentA?.childFragmentManager?.popBackStack() + } else { + finish() + } + } + } +} \ 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..284d615 --- /dev/null +++ b/app/src/main/java/otus/gpb/homework/fragments/ActivityB.kt @@ -0,0 +1,20 @@ +package otus.gpb.homework.fragments + +import android.os.Bundle +import androidx.activity.enableEdgeToEdge +import androidx.appcompat.app.AppCompatActivity +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat + +class ActivityB : AppCompatActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + enableEdgeToEdge() + setContentView(R.layout.activity_b) + ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets -> + val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) + v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) + insets + } + } +} \ 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..d61a2a1 --- /dev/null +++ b/app/src/main/java/otus/gpb/homework/fragments/FragmentA.kt @@ -0,0 +1,30 @@ +package otus.gpb.homework.fragments + +import android.os.Bundle +import android.view.View +import android.widget.Button +import androidx.fragment.app.Fragment + +class FragmentA : Fragment(R.layout.fragment_a) { + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + val buttonOpenAA = view.findViewById