From c1dbae8722b2405e1639061304bb0b55be24cd99 Mon Sep 17 00:00:00 2001 From: Pumpet Date: Fri, 17 May 2024 02:13:30 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=94=D0=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 1 + app/src/main/AndroidManifest.xml | 24 ++++++- .../otus/gpb/homework/activities/ActivityA.kt | 49 ++++++++++++++ .../otus/gpb/homework/activities/ActivityB.kt | 46 +++++++++++++ .../otus/gpb/homework/activities/ActivityC.kt | 67 +++++++++++++++++++ .../otus/gpb/homework/activities/ActivityD.kt | 40 +++++++++++ app/src/main/res/layout/activity_a.xml | 24 +++++++ app/src/main/res/layout/activity_b.xml | 25 +++++++ app/src/main/res/layout/activity_c.xml | 61 +++++++++++++++++ app/src/main/res/layout/activity_d.xml | 14 ++++ app/src/main/res/values/dimens.xml | 4 ++ app/src/main/res/values/strings.xml | 7 ++ 12 files changed, 361 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/otus/gpb/homework/activities/ActivityA.kt create mode 100644 app/src/main/java/otus/gpb/homework/activities/ActivityB.kt create mode 100644 app/src/main/java/otus/gpb/homework/activities/ActivityC.kt create mode 100644 app/src/main/java/otus/gpb/homework/activities/ActivityD.kt 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/activity_c.xml create mode 100644 app/src/main/res/layout/activity_d.xml create mode 100644 app/src/main/res/values/dimens.xml diff --git a/app/build.gradle b/app/build.gradle index 3c3711b..0c342bd 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -52,4 +52,5 @@ 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.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..f0ed115 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -12,6 +12,28 @@ 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 0000000..3157920 --- /dev/null +++ b/app/src/main/java/otus/gpb/homework/activities/ActivityA.kt @@ -0,0 +1,49 @@ +package otus.gpb.homework.activities + +import android.content.Intent +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import android.util.Log +import android.widget.Button + +const val tag = "TAG" + +class ActivityA : AppCompatActivity() { + private var button: Button? = null + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + Log.i(tag, "onCreate A ${hashCode()}") + setContentView(R.layout.activity_a) + button = findViewById(R.id.open_b) + button?.setOnClickListener { + startActivity(Intent(this, ActivityB::class.java).apply { + flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK + }) + } + } + + override fun onStart() { + super.onStart() + Log.i(tag, "onStart A ${hashCode()}") + } + + override fun onStop() { + super.onStop() + Log.i(tag, "onStop A ${hashCode()}") + } + + override fun onResume() { + super.onResume() + Log.i(tag, "onResume A ${hashCode()}") + } + + override fun onNewIntent(intent: Intent?) { + super.onNewIntent(intent) + Log.i(tag, "onNewIntent A ${hashCode()}") + } + + override fun onDestroy() { + super.onDestroy() + Log.i(tag, "onDestroy A ${hashCode()}") + } +} \ 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 0000000..0bae8bd --- /dev/null +++ b/app/src/main/java/otus/gpb/homework/activities/ActivityB.kt @@ -0,0 +1,46 @@ +package otus.gpb.homework.activities + +import android.content.Intent +import android.content.pm.ActivityInfo +import android.os.Bundle +import android.util.Log +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) + Log.i(tag, "onCreate B") + setContentView(R.layout.activity_b) + button = findViewById(R.id.open_c) + button?.setOnClickListener { + startActivity(Intent(this, ActivityC::class.java)) + } + } + + override fun onStart() { + super.onStart() + Log.i(tag, "onStart B") + } + + override fun onStop() { + super.onStop() + Log.i(tag, "onStop B") + } + + override fun onResume() { + super.onResume() + Log.i(tag, "onResume B") + } + + override fun onNewIntent(intent: Intent?) { + super.onNewIntent(intent) + Log.i(tag, "onNewIntent B") + } + + override fun onDestroy() { + super.onDestroy() + Log.i(tag, "onDestroy B") + } +} \ 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..9d4f6b1 --- /dev/null +++ b/app/src/main/java/otus/gpb/homework/activities/ActivityC.kt @@ -0,0 +1,67 @@ +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 ActivityC : AppCompatActivity() { + private var buttonOpenA: Button? = null + private var buttonOpenD: Button? = null + private var buttonCloseC: Button? = null + private var buttonCloseStack: Button? = null + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + Log.i(tag, "onCreate C") + setContentView(R.layout.activity_c) + buttonOpenA = findViewById(R.id.open_a) + buttonOpenD = findViewById(R.id.open_d) + buttonCloseC = findViewById(R.id.close_c) + buttonCloseStack = findViewById(R.id.close_stack) + + buttonOpenA?.setOnClickListener { + startActivity(Intent(this, ActivityA::class.java)) + } + + buttonOpenD?.setOnClickListener { + startActivity(Intent(this, ActivityD::class.java).apply { + flags = Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK + }) + } + + buttonCloseC?.setOnClickListener { + finish() + } + + buttonCloseStack?.setOnClickListener { + finishAffinity() + } + } + + override fun onStart() { + super.onStart() + Log.i(tag, "onStart C") + } + + override fun onStop() { + super.onStop() + Log.i(tag, "onStop C") + } + + override fun onResume() { + super.onResume() + Log.i(tag, "onResume C") + } + + override fun onNewIntent(intent: Intent?) { + super.onNewIntent(intent) + Log.i(tag, "onNewIntent C") + } + + override fun onDestroy() { + super.onDestroy() + Log.i(tag, "onDestroy C") + } + +} \ 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 0000000..4f012d1 --- /dev/null +++ b/app/src/main/java/otus/gpb/homework/activities/ActivityD.kt @@ -0,0 +1,40 @@ +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 ActivityD : AppCompatActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + Log.i(tag, "onCreate D") + setContentView(R.layout.activity_d) + } + + override fun onStart() { + super.onStart() + Log.i(tag, "onStart D") + } + + override fun onStop() { + super.onStop() + Log.i(tag, "onStop D") + } + + override fun onResume() { + super.onResume() + Log.i(tag, "onResume D") + } + + override fun onNewIntent(intent: Intent?) { + super.onNewIntent(intent) + Log.i(tag, "onNewIntent D") + } + + override fun onDestroy() { + super.onDestroy() + Log.i(tag, "onDestroy 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..9bbf0e3 --- /dev/null +++ b/app/src/main/res/layout/activity_a.xml @@ -0,0 +1,24 @@ + + + +