diff --git a/app/build.gradle b/app/build.gradle
index 0579b10..c6daed3 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -4,12 +4,12 @@ plugins {
}
android {
- compileSdk 32
+ compileSdk 34
defaultConfig {
applicationId "otus.gpb.homework.activities"
minSdk 23
- targetSdk 32
+ targetSdk 34
versionCode 1
versionName "1.0"
@@ -29,10 +29,13 @@ android {
kotlinOptions {
jvmTarget = '1.8'
}
+ namespace 'otus.gpb.homework.activities'
}
dependencies {
- implementation 'androidx.core:core-ktx:1.8.0'
- implementation 'androidx.appcompat:appcompat:1.5.0'
- implementation 'com.google.android.material:material:1.6.1'
+ implementation 'androidx.core:core-ktx:1.13.0'
+ implementation 'androidx.appcompat:appcompat:1.6.1'
+ implementation 'com.google.android.material:material:1.11.0'
+ implementation 'androidx.activity:activity:1.9.0'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f318e6c..c1c9939 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,7 +1,6 @@
+ xmlns:tools="http://schemas.android.com/tools" >
+ 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 0000000..7edfdd1
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/activities/ActivityA.kt
@@ -0,0 +1,29 @@
+package otus.gpb.homework.activities
+
+import android.content.Intent
+import android.os.Bundle
+import android.util.Log
+import android.widget.Button
+import androidx.appcompat.app.AppCompatActivity
+
+class ActivityA : AppCompatActivity() {
+
+ private var button: Button? = null
+ private val tag = "OnNewIntent"
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_a)
+ button = findViewById(R.id.button)
+ button?.setOnClickListener {
+ val intent = Intent(this, ActivityB::class.java)
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_MULTIPLE_TASK)
+ startActivity(intent)
+ }
+ }
+
+
+ override fun onNewIntent(intent: Intent) {
+ super.onNewIntent(intent)
+ Log.d(tag, "On new intent call")
+ }
+}
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 0000000..2e5b786
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/activities/ActivityB.kt
@@ -0,0 +1,22 @@
+package otus.gpb.homework.activities
+
+import android.content.Intent
+import android.os.Bundle
+import android.widget.Button
+import androidx.appcompat.app.AppCompatActivity
+
+
+class ActivityB : AppCompatActivity() {
+
+ private var button: Button? = null
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_b)
+ button = findViewById(R.id.button2)
+ button?.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 0000000..898e005
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/activities/ActivityC.kt
@@ -0,0 +1,43 @@
+package otus.gpb.homework.activities
+
+import android.content.Intent
+import android.os.Bundle
+import android.widget.Button
+import androidx.appcompat.app.AppCompatActivity
+
+class ActivityC : AppCompatActivity() {
+
+ private var button1: Button? = null
+ private var button2: Button? = null
+ private var button3: Button? = null
+ private var button4: Button? = null
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_c)
+
+ button1 = findViewById(R.id.openA)
+ button1?.setOnClickListener {
+ val intent = Intent(this, ActivityA::class.java)
+ onNewIntent(intent)
+ startActivity(intent)
+ }
+ button2 = findViewById(R.id.openD)
+ button2?.setOnClickListener {
+ val intent = Intent(this, ActivityD::class.java)
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
+ startActivity(intent)
+ }
+ button3 = findViewById(R.id.closeC)
+ button3?.setOnClickListener {
+ val intent = Intent(this, ActivityB::class.java)
+ startActivity(intent)
+
+ }
+ button4 = findViewById(R.id.closeStack)
+ button4?.setOnClickListener {
+ finishAffinity()
+ }
+ }
+}
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 0000000..6854679
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/activities/ActivityD.kt
@@ -0,0 +1,14 @@
+package otus.gpb.homework.activities
+
+
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+
+
+class ActivityD : AppCompatActivity() {
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_d)
+ }
+}
\ 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 0000000..53f8b38
--- /dev/null
+++ b/app/src/main/res/layout/activity_a.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
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 0000000..0dde522
--- /dev/null
+++ b/app/src/main/res/layout/activity_b.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
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 0000000..9382424
--- /dev/null
+++ b/app/src/main/res/layout/activity_c.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000..b95c4e3
--- /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 62d0e4c..17883cf 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,8 +1,8 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
- id 'com.android.application' version '7.2.0' apply false
- id 'com.android.library' version '7.2.0' apply false
- id 'org.jetbrains.kotlin.android' version '1.6.21' apply false
+ 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.8.0' apply false
}
task clean(type: Delete) {
diff --git a/gradle.properties b/gradle.properties
index cd0519b..2a7ec69 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -20,4 +20,5 @@ kotlin.code.style=official
# Enables namespacing of each library's R class so that its R class includes only the
# resources declared in the library itself and none from the library's dependencies,
# thereby reducing the size of the R class for that library
-android.nonTransitiveRClass=true
\ No newline at end of file
+android.nonTransitiveRClass=true
+android.nonFinalResIds=false
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index a577dba..fb9e5b8 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
#Sat Aug 27 13:57:30 MSK 2022
distributionBase=GRADLE_USER_HOME
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME