Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 29 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,23 @@ plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id("io.gitlab.arturbosch.detekt")
id 'kotlin-parcelize'
}

android {
compileSdk 32
compileSdk 34

defaultConfig {
applicationId "otus.gpb.homework.activities"
minSdk 23
targetSdk 32
targetSdk 34
versionCode 1
versionName "1.0"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary true
}
}

buildTypes {
Expand All @@ -30,6 +34,18 @@ android {
kotlinOptions {
jvmTarget = '1.8'
}
buildFeatures {
compose true
}
composeOptions {
kotlinCompilerExtensionVersion '1.4.8'
}
packagingOptions {
resources {
excludes += '/META-INF/{AL2.0,LGPL2.1}'
}
}
namespace 'otus.gpb.homework.activities'
}

detekt {
Expand All @@ -52,4 +68,15 @@ 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.lifecycle:lifecycle-runtime-ktx:2.6.1'
implementation 'androidx.activity:activity-compose:1.7.0'
implementation platform('androidx.compose:compose-bom:2023.03.00')
implementation 'androidx.compose.ui:ui'
implementation 'androidx.compose.ui:ui-graphics'
implementation 'androidx.compose.ui:ui-tooling-preview'
implementation 'androidx.compose.material3:material3'
androidTestImplementation platform('androidx.compose:compose-bom:2023.03.00')
androidTestImplementation 'androidx.compose.ui:ui-test-junit4'
debugImplementation 'androidx.compose.ui:ui-tooling'
debugImplementation 'androidx.compose.ui:ui-test-manifest'
}
45 changes: 41 additions & 4 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="otus.gpb.homework.activities">
xmlns:tools="http://schemas.android.com/tools">

<application
android:allowBackup="true"
Expand All @@ -12,6 +11,44 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Activities"
tools:targetApi="31" />

tools:targetApi="31">
<activity
android:name=".MainActivity"
android:exported="true"
android:label="@string/title_activity_activity"
android:theme="@style/Theme.Activities"
android:taskAffinity=".stackA"
android:launchMode="singleInstance"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ActivityA"
android:label="@string/title_activity_A"
android:launchMode="singleTask"
android:taskAffinity=".stackA"
>
</activity>
<activity
android:name=".ActivityB"
android:label="@string/title_activity_B"
android:taskAffinity=".stackB"
>
</activity>
<activity
android:name=".ActivityC"
android:label="@string/title_activity_C"
android:taskAffinity=".stackB"
>
</activity>
<activity
android:name=".ActivityD"
android:label="@string/title_activity_D"
android:taskAffinity=".stackB"
>
</activity>
</application>
</manifest>
25 changes: 25 additions & 0 deletions app/src/main/java/otus/gpb/homework/activities/ActivityA.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
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(R.layout.activity_a) {
private val tag="ActivityA"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val button=findViewById<Button>(R.id.openb)
button.setOnClickListener {
Log.d(tag,"OpenB clicked")
val intent=Intent(this, ActivityB::class.java)
startActivity(intent)
}
}

override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
Log.d(tag,"On new intent")
}
}
31 changes: 31 additions & 0 deletions app/src/main/java/otus/gpb/homework/activities/ActivityB.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package otus.gpb.homework.activities

import android.content.Intent
import android.os.Bundle
import android.widget.Button
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.appcompat.app.AppCompatActivity
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import android.util.Log

class ActivityB : AppCompatActivity(R.layout.activity_b) {
private val tag="ActivityB"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val button=findViewById<Button>(R.id.openc)
button.setOnClickListener {
Log.d(tag,"OpenC clicked")
val intent= Intent(this, ActivityC::class.java)
startActivity(intent)
}
}


}
51 changes: 51 additions & 0 deletions app/src/main/java/otus/gpb/homework/activities/ActivityC.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package otus.gpb.homework.activities

import android.content.Intent
import android.os.Bundle
import android.widget.Button
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.appcompat.app.AppCompatActivity
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import android.util.Log

class ActivityC : AppCompatActivity(R.layout.activity_c) {
private val tag="ActivityC"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val buttonOpenA=findViewById<Button>(R.id.opena)
buttonOpenA.setOnClickListener {
Log.d(tag,"OpenA clicked")
val intent= Intent(this, ActivityA::class.java)
startActivity(intent)
}

val buttonOpenD=findViewById<Button>(R.id.opend)
buttonOpenD.setOnClickListener {
Log.d(tag,"OpenD clicked")
finishAffinity()
val intent= Intent(this, ActivityD::class.java)
startActivity(intent)
}

val buttonCloseC=findViewById<Button>(R.id.closec)
buttonCloseC.setOnClickListener {
Log.d(tag,"CloseC clicked")
finish()
}

val buttonCloseStack=findViewById<Button>(R.id.closestack)
buttonCloseStack.setOnClickListener {
Log.d(tag,"CloseStack clicked")
finishAffinity()
}
}


}
26 changes: 26 additions & 0 deletions app/src/main/java/otus/gpb/homework/activities/ActivityD.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package otus.gpb.homework.activities

import android.content.Intent
import android.os.Bundle
import android.widget.Button
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.appcompat.app.AppCompatActivity
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import android.util.Log

class ActivityD : AppCompatActivity(R.layout.activity_d) {
private val tag="ActivityD"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Log.d(tag,"Created")
}


}
33 changes: 33 additions & 0 deletions app/src/main/java/otus/gpb/homework/activities/MainActivity.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package otus.gpb.homework.activities

import android.content.Intent
import android.os.Bundle
import android.util.Log
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.appcompat.app.AppCompatActivity
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview

class MainActivity : AppCompatActivity() {
private val tag="MainActivity"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}

override fun onStart() {
super.onStart()
finish()
val intent=Intent(this,ActivityA::class.java)
startActivity(intent)
}
override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
Log.d(tag,"On new intent")
}
}
24 changes: 24 additions & 0 deletions app/src/main/res/layout/activity_a.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/ActivityA_background">

<Button
android:id="@+id/openb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="125dp"
android:layout_marginTop="341dp"
android:layout_marginEnd="126dp"
android:layout_marginBottom="342dp"
android:text="@string/ActivityA_button"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>
24 changes: 24 additions & 0 deletions app/src/main/res/layout/activity_b.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/ActivityB_background">

<Button
android:id="@+id/openc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="125dp"
android:layout_marginTop="341dp"
android:layout_marginEnd="126dp"
android:layout_marginBottom="342dp"
android:text="@string/ActivityB_button"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>
53 changes: 53 additions & 0 deletions app/src/main/res/layout/activity_c.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/ActivityC_background">

<Button
android:id="@+id/opena"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="100dp"
android:layout_marginTop="200dp"
android:text="@string/ActivityC_button_1"
android:visibility="visible"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<Button
android:id="@+id/opend"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="100dp"
android:layout_marginTop="24dp"
android:text="@string/ActivityC_button_2"
android:visibility="visible"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/opena" />

<Button
android:id="@+id/closec"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="100dp"
android:layout_marginTop="24dp"
android:text="@string/ActivityC_button_3"
android:visibility="visible"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/opend" />

<Button
android:id="@+id/closestack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="100dp"
android:layout_marginTop="16dp"
android:text="@string/ActivityC_button_4"
android:visibility="visible"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/closec" />

</androidx.constraintlayout.widget.ConstraintLayout>
Loading