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 @@ + + + +