From ceba5d391645ca9c81545ddd4e0ea0720efc5167 Mon Sep 17 00:00:00 2001 From: Nika Date: Sun, 14 Sep 2025 18:00:40 +0300 Subject: [PATCH 1/2] test --- app/build.gradle | 2 ++ app/src/main/AndroidManifest.xml | 6 +++++- .../otus/gpb/homework/activities/ActivityA.kt | 20 +++++++++++++++++++ app/src/main/res/layout/activity_activity.xml | 10 ++++++++++ 4 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/otus/gpb/homework/activities/ActivityA.kt create mode 100644 app/src/main/res/layout/activity_activity.xml diff --git a/app/build.gradle b/app/build.gradle index 07e82a52..7e4e831e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -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..e5ec18b0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -11,6 +11,10 @@ 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..92fe328a --- /dev/null +++ b/app/src/main/java/otus/gpb/homework/activities/ActivityA.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 ActivityA : AppCompatActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + enableEdgeToEdge() + setContentView(R.layout.activity_activity) + 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_activity.xml b/app/src/main/res/layout/activity_activity.xml new file mode 100644 index 00000000..53423a90 --- /dev/null +++ b/app/src/main/res/layout/activity_activity.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file From 5462ef4cb7d5079d16b64ab82baf0ad6f92d7bb7 Mon Sep 17 00:00:00 2001 From: Nika Date: Sun, 14 Sep 2025 18:09:50 +0300 Subject: [PATCH 2/2] homework activity 1 --- app/build.gradle | 2 +- app/src/main/AndroidManifest.xml | 25 ++++++++- .../otus/gpb/homework/activities/ActivityA.kt | 17 +++++- .../otus/gpb/homework/activities/ActivityB.kt | 34 ++++++++++++ .../otus/gpb/homework/activities/ActivityC.kt | 54 +++++++++++++++++++ .../otus/gpb/homework/activities/ActivityD.kt | 20 +++++++ app/src/main/res/layout/activity_a.xml | 18 +++++++ app/src/main/res/layout/activity_b.xml | 17 ++++++ app/src/main/res/layout/activity_c.xml | 49 +++++++++++++++++ .../{activity_activity.xml => activity_d.xml} | 3 +- build.gradle | 2 +- 11 files changed, 236 insertions(+), 5 deletions(-) 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 rename app/src/main/res/layout/{activity_activity.xml => activity_d.xml} (86%) diff --git a/app/build.gradle b/app/build.gradle index 7e4e831e..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" diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e5ec18b0..6a95637a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -12,9 +12,32 @@ android:supportsRtl="true" android:theme="@style/Theme.Activities" tools:targetApi="31"> + + + + android:exported="true" + + android:launchMode="singleTask" + android:configChanges="orientation|screenSize|keyboardHidden"> + + + + + + \ 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 index 92fe328a..7effe2bf 100644 --- a/app/src/main/java/otus/gpb/homework/activities/ActivityA.kt +++ b/app/src/main/java/otus/gpb/homework/activities/ActivityA.kt @@ -1,20 +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_activity) + 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 @@ + + + +