diff --git a/app/build.gradle b/app/build.gradle
index 07e82a52..e6ecf6e1 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -5,7 +5,7 @@ plugins {
}
android {
- compileSdk 34
+ compileSdk 36
defaultConfig {
applicationId "otus.gpb.homework.activities"
@@ -56,4 +56,6 @@ dependencies {
implementation 'androidx.core:core-ktx:1.13.1'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.12.0'
+ implementation 'androidx.activity:activity:1.11.0'
+ implementation 'androidx.constraintlayout:constraintlayout:2.2.1'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 811aafa1..6a95637a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,6 +11,33 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Activities"
- tools:targetApi="31" />
+ tools:targetApi="31">
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/otus/gpb/homework/activities/ActivityA.kt b/app/src/main/java/otus/gpb/homework/activities/ActivityA.kt
new file mode 100644
index 00000000..7effe2bf
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/activities/ActivityA.kt
@@ -0,0 +1,35 @@
+package otus.gpb.homework.activities
+
+import android.annotation.SuppressLint
+import android.content.Intent
+import android.os.Bundle
+import android.widget.Button
+import androidx.activity.enableEdgeToEdge
+import androidx.appcompat.app.AppCompatActivity
+import androidx.core.view.ViewCompat
+import androidx.core.view.WindowInsetsCompat
+import otus.gpb.homework.activities.R.id.buttonBBBB
+
+class ActivityA : AppCompatActivity() {
+ private lateinit var activityBBBtn: Button
+
+
+ @SuppressLint("MissingInflatedId")
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ enableEdgeToEdge()
+ setContentView(R.layout.activity_a)
+ 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
+ }
+
+ activityBBBtn = findViewById(buttonBBBB)
+ activityBBBtn.setOnClickListener {
+ val intent = Intent(this, ActivityB::class.java)
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+ startActivity(intent)
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/otus/gpb/homework/activities/ActivityB.kt b/app/src/main/java/otus/gpb/homework/activities/ActivityB.kt
new file mode 100644
index 00000000..074c5642
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/activities/ActivityB.kt
@@ -0,0 +1,34 @@
+package otus.gpb.homework.activities
+
+import android.annotation.SuppressLint
+import android.content.Intent
+import android.os.Bundle
+import android.widget.Button
+import androidx.activity.enableEdgeToEdge
+import androidx.appcompat.app.AppCompatActivity
+import androidx.core.view.ViewCompat
+import androidx.core.view.WindowInsetsCompat
+import otus.gpb.homework.activities.R.id.buttonBBBB
+
+class ActivityB : AppCompatActivity() {
+ private lateinit var activityCBtn: Button
+
+
+ @SuppressLint("MissingInflatedId")
+ 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
+ }
+
+ activityCBtn = findViewById(R.id.btnB)
+ activityCBtn.setOnClickListener {
+ val intent = Intent(this, ActivityC::class.java)
+ startActivity(intent)
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/otus/gpb/homework/activities/ActivityC.kt b/app/src/main/java/otus/gpb/homework/activities/ActivityC.kt
new file mode 100644
index 00000000..a80f1f78
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/activities/ActivityC.kt
@@ -0,0 +1,54 @@
+package otus.gpb.homework.activities
+
+import android.content.Context
+import android.content.Intent
+import android.os.Bundle
+import android.util.AttributeSet
+import android.view.View
+import android.widget.Button
+import androidx.activity.enableEdgeToEdge
+import androidx.appcompat.app.AppCompatActivity
+import androidx.core.view.ViewCompat
+import androidx.core.view.WindowInsetsCompat
+
+class ActivityC : AppCompatActivity() {
+ private lateinit var activityABtn: Button
+ private lateinit var closeActivityCBtn: Button
+ private lateinit var activityDBtn: Button
+ private lateinit var activityStackBackBtn: Button
+
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ enableEdgeToEdge()
+ setContentView(R.layout.activity_c)
+ 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
+ }
+
+ activityABtn = findViewById(R.id.buttonA)
+ closeActivityCBtn = findViewById(R.id.buttonC)
+ activityDBtn = findViewById(R.id.buttonD)
+ activityStackBackBtn = findViewById(R.id.buttonBackStack)
+
+ activityABtn.setOnClickListener {
+ val intent = Intent(this, ActivityA::class.java)
+ startActivity(intent)
+ }
+ closeActivityCBtn.setOnClickListener {
+ finish()
+ }
+
+ activityDBtn.setOnClickListener {
+ val intent = Intent(this, ActivityD::class.java)
+ startActivity(intent) }
+
+ activityStackBackBtn.setOnClickListener {
+ finishAndRemoveTask()
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/otus/gpb/homework/activities/ActivityD.kt b/app/src/main/java/otus/gpb/homework/activities/ActivityD.kt
new file mode 100644
index 00000000..1c403481
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/activities/ActivityD.kt
@@ -0,0 +1,20 @@
+package otus.gpb.homework.activities
+
+import android.os.Bundle
+import androidx.activity.enableEdgeToEdge
+import androidx.appcompat.app.AppCompatActivity
+import androidx.core.view.ViewCompat
+import androidx.core.view.WindowInsetsCompat
+
+class ActivityD : AppCompatActivity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ enableEdgeToEdge()
+ setContentView(R.layout.activity_d)
+ 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/res/layout/activity_a.xml b/app/src/main/res/layout/activity_a.xml
new file mode 100644
index 00000000..63afd321
--- /dev/null
+++ b/app/src/main/res/layout/activity_a.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_b.xml b/app/src/main/res/layout/activity_b.xml
new file mode 100644
index 00000000..5bbdc79f
--- /dev/null
+++ b/app/src/main/res/layout/activity_b.xml
@@ -0,0 +1,17 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_c.xml b/app/src/main/res/layout/activity_c.xml
new file mode 100644
index 00000000..6331ef86
--- /dev/null
+++ b/app/src/main/res/layout/activity_c.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_d.xml b/app/src/main/res/layout/activity_d.xml
new file mode 100644
index 00000000..001a6299
--- /dev/null
+++ b/app/src/main/res/layout/activity_d.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index 8ec48d7a..22f1e0b2 100644
--- a/build.gradle
+++ b/build.gradle
@@ -2,7 +2,7 @@
plugins {
id 'com.android.application' version '8.4.0' apply false
id 'com.android.library' version '8.4.0' apply false
- id 'org.jetbrains.kotlin.android' version '1.9.23' apply false
+ id 'org.jetbrains.kotlin.android' version '1.9.20' apply false
id "io.gitlab.arturbosch.detekt" version "1.21.0"
}