diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/AndroidProjectSystem.xml b/.idea/AndroidProjectSystem.xml new file mode 100644 index 0000000..4a53bee --- /dev/null +++ b/.idea/AndroidProjectSystem.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="AndroidProjectSystem"> + <option name="providerId" value="com.android.tools.idea.GradleProjectSystem" /> + </component> +</project> \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..b86273d --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="CompilerConfiguration"> + <bytecodeTargetLevel target="21" /> + </component> +</project> \ No newline at end of file diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml new file mode 100644 index 0000000..b268ef3 --- /dev/null +++ b/.idea/deploymentTargetSelector.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="deploymentTargetSelector"> + <selectionStates> + <SelectionState runConfigName="app"> + <option name="selectionMode" value="DROPDOWN" /> + </SelectionState> + </selectionStates> + </component> +</project> \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..639c779 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="GradleMigrationSettings" migrationVersion="1" /> + <component name="GradleSettings"> + <option name="linkedExternalProjectsSettings"> + <GradleProjectSettings> + <option name="testRunner" value="CHOOSE_PER_TEST" /> + <option name="externalProjectPath" value="$PROJECT_DIR$" /> + <option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" /> + <option name="modules"> + <set> + <option value="$PROJECT_DIR$" /> + <option value="$PROJECT_DIR$/app" /> + </set> + </option> + </GradleProjectSettings> + </option> + </component> +</project> \ No newline at end of file diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml new file mode 100644 index 0000000..c224ad5 --- /dev/null +++ b/.idea/kotlinc.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="KotlinJpsPluginSettings"> + <option name="version" value="2.0.21" /> + </component> +</project> \ No newline at end of file diff --git a/.idea/migrations.xml b/.idea/migrations.xml new file mode 100644 index 0000000..f8051a6 --- /dev/null +++ b/.idea/migrations.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectMigrations"> + <option name="MigrateToGradleLocalJavaHome"> + <set> + <option value="$PROJECT_DIR$" /> + </set> + </option> + </component> +</project> \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..74dd639 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ExternalStorageConfigurationManager" enabled="true" /> + <component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="jbr-21" project-jdk-type="JavaSDK"> + <output url="file://$PROJECT_DIR$/build/classes" /> + </component> + <component name="ProjectType"> + <option name="id" value="Android" /> + </component> +</project> \ No newline at end of file diff --git a/.idea/render.experimental.xml b/.idea/render.experimental.xml new file mode 100644 index 0000000..8ec256a --- /dev/null +++ b/.idea/render.experimental.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="RenderSettings"> + <option name="showDecorations" value="true" /> + </component> +</project> \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 0000000..16660f1 --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="RunConfigurationProducerService"> + <option name="ignoredProducers"> + <set> + <option value="com.intellij.execution.junit.AbstractAllInDirectoryConfigurationProducer" /> + <option value="com.intellij.execution.junit.AllInPackageConfigurationProducer" /> + <option value="com.intellij.execution.junit.PatternConfigurationProducer" /> + <option value="com.intellij.execution.junit.TestInClassConfigurationProducer" /> + <option value="com.intellij.execution.junit.UniqueIdConfigurationProducer" /> + <option value="com.intellij.execution.junit.testDiscovery.JUnitTestDiscoveryConfigurationProducer" /> + <option value="org.jetbrains.kotlin.idea.junit.KotlinJUnitRunConfigurationProducer" /> + <option value="org.jetbrains.kotlin.idea.junit.KotlinPatternConfigurationProducer" /> + </set> + </option> + </component> +</project> \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$" vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1fbfd72..94a7c18 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -12,6 +12,9 @@ android:supportsRtl="true" android:theme="@style/Theme.TimerT" tools:targetApi="31"> + <activity + android:name=".timer" + android:exported="false" /> <activity android:name=".MainActivity" android:exported="true"> diff --git a/app/src/main/java/com/example/timert/MainActivity.kt b/app/src/main/java/com/example/timert/MainActivity.kt index 5de3e5b..64aa7df 100644 --- a/app/src/main/java/com/example/timert/MainActivity.kt +++ b/app/src/main/java/com/example/timert/MainActivity.kt @@ -1,6 +1,8 @@ package com.example.timert +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 @@ -16,5 +18,12 @@ class MainActivity : AppCompatActivity() { v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) insets } + var button: Button = findViewById(R.id.button2) + + button.setOnClickListener{ + val intent = Intent(this,timer::class.java) + startActivity(intent) + } } + } \ No newline at end of file diff --git a/app/src/main/java/com/example/timert/timer.kt b/app/src/main/java/com/example/timert/timer.kt new file mode 100644 index 0000000..b056dd2 --- /dev/null +++ b/app/src/main/java/com/example/timert/timer.kt @@ -0,0 +1,62 @@ +package com.example.timert + +import android.app.AlertDialog +import android.content.Intent +import android.media.Image +import android.os.Bundle +import android.widget.Button +import android.widget.ImageButton +import androidx.activity.enableEdgeToEdge +import androidx.appcompat.app.AppCompatActivity +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat + +class timer : AppCompatActivity() { + private var isPlay = false + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + enableEdgeToEdge() + setContentView(R.layout.activity_timer) + 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 + } + val button: ImageButton = findViewById(R.id.stop) + button.setOnClickListener { + AlertDialog.Builder(this) + .setTitle("Сброс таймера") + .setMessage("Закрыть таймер и перейти на главную страницу?") + .setPositiveButton("Да") { _, _ -> + + val intent = Intent(this, MainActivity::class.java) + startActivity(intent) + } + .setNegativeButton("Нет") { dialog, _ -> + dialog.dismiss() + } + .show() + } + + + + val pauseButton: ImageButton = findViewById(R.id.play) + + pauseButton.setOnClickListener { + if (isPlay) { + + pauseButton.setImageResource(R.drawable.icon_play) + // здесь ещё можно возобновить таймер + } else { + + pauseButton.setImageResource(R.drawable.icon_pause) + // здесь можно остановить таймер + } + isPlay = !isPlay + } + + + + } + +} \ No newline at end of file diff --git a/app/src/main/res/drawable/blue_gradient.xml b/app/src/main/res/drawable/blue_gradient.xml new file mode 100644 index 0000000..c8a862e --- /dev/null +++ b/app/src/main/res/drawable/blue_gradient.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape + xmlns:android="http://schemas.android.com/apk/res/android" + android:shape="rectangle"> + <gradient + android:startColor="@color/colorGradientBlueStart" + android:endColor="@color/colorGradientBlueStop" + android:angle="270" /> +</shape> \ No newline at end of file diff --git a/app/src/main/res/drawable/gradient_pink.xml b/app/src/main/res/drawable/gradient_pink.xml new file mode 100644 index 0000000..a037506 --- /dev/null +++ b/app/src/main/res/drawable/gradient_pink.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape + xmlns:android="http://schemas.android.com/apk/res/android" + android:shape="rectangle"> + <gradient + android:startColor="@color/colorGradientPinkStart" + android:endColor="@color/colorGradientPinkStop" + android:angle="270" /> +</shape> \ No newline at end of file diff --git a/app/src/main/res/drawable/green_gradient.xml b/app/src/main/res/drawable/green_gradient.xml new file mode 100644 index 0000000..692f367 --- /dev/null +++ b/app/src/main/res/drawable/green_gradient.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape + xmlns:android="http://schemas.android.com/apk/res/android" + android:shape="rectangle"> + <gradient + android:startColor="@color/colorGradientGreenStart" + android:endColor="@color/colorGradientGreenStop" + android:angle="270" /> +</shape> \ No newline at end of file diff --git a/app/src/main/res/drawable/icon_pause.xml b/app/src/main/res/drawable/icon_pause.xml new file mode 100644 index 0000000..57477a9 --- /dev/null +++ b/app/src/main/res/drawable/icon_pause.xml @@ -0,0 +1,10 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24" + android:tint="?attr/colorControlNormal"> +<path + android:fillColor="@android:color/white" + android:pathData="M6,19h4L10,5L6,5v14zM14,5v14h4L18,5h-4z"/> + </vector> \ No newline at end of file diff --git a/app/src/main/res/drawable/icon_play.xml b/app/src/main/res/drawable/icon_play.xml new file mode 100644 index 0000000..13c137a --- /dev/null +++ b/app/src/main/res/drawable/icon_play.xml @@ -0,0 +1,10 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24" + android:tint="?attr/colorControlNormal"> + <path + android:fillColor="@android:color/white" + android:pathData="M8,5v14l11,-7z"/> +</vector> diff --git a/app/src/main/res/drawable/icon_stop.xml b/app/src/main/res/drawable/icon_stop.xml new file mode 100644 index 0000000..34bd28f --- /dev/null +++ b/app/src/main/res/drawable/icon_stop.xml @@ -0,0 +1,10 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24" + android:tint="?attr/colorControlNormal"> + <path + android:fillColor="@android:color/white" + android:pathData="M6,6h12v12H6z"/> +</vector> \ No newline at end of file diff --git a/app/src/main/res/drawable/pink_gradient.xml b/app/src/main/res/drawable/pink_gradient.xml new file mode 100644 index 0000000..a037506 --- /dev/null +++ b/app/src/main/res/drawable/pink_gradient.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape + xmlns:android="http://schemas.android.com/apk/res/android" + android:shape="rectangle"> + <gradient + android:startColor="@color/colorGradientPinkStart" + android:endColor="@color/colorGradientPinkStop" + android:angle="270" /> +</shape> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 86a5d97..667c9ae 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -7,13 +7,17 @@ android:layout_height="match_parent" tools:context=".MainActivity"> - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="Hello World!" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" /> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="horizontal"> + + <Button + android:id="@+id/button2" + android:layout_width="382dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:text="Button" /> + </LinearLayout> +</androidx.constraintlayout.widget.ConstraintLayout> -</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_timer.xml b/app/src/main/res/layout/activity_timer.xml new file mode 100644 index 0000000..6a36635 --- /dev/null +++ b/app/src/main/res/layout/activity_timer.xml @@ -0,0 +1,137 @@ +<?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:id="@+id/main" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@drawable/gradient_pink" + tools:context=".timer"> + + <TextView + android:id="@+id/textView" + android:layout_width="409dp" + android:layout_height="57dp" + android:layout_marginTop="50dp" + android:gravity="center" + android:text="Тренировка" + android:textAlignment="center" + android:textColor="#040405" + android:textSize="34sp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.0" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + <LinearLayout + android:id="@+id/actions" + android:layout_width="match_parent" + android:layout_height="60dp" + android:layout_marginBottom="100dp" + android:gravity="center" + android:orientation="horizontal" + app:layout_constraintBottom_toBottomOf="parent" + tools:layout_editor_absoluteX="16dp"> + + <ImageButton + android:id="@+id/play" + android:layout_width="60dp" + android:layout_height="60dp" + android:background="#00FFFFFF" + app:srcCompat="@drawable/icon_play" /> + + <ImageButton + android:id="@+id/stop" + android:layout_width="60dp" + android:layout_height="60dp" + android:background="#00FFFFFF" + app:srcCompat="@drawable/icon_stop" /> + </LinearLayout> + + <LinearLayout + android:id="@+id/main_timer" + android:layout_width="match_parent" + android:layout_height="360dp" + android:layout_marginBottom="99dp" + android:gravity="center" + android:orientation="vertical" + app:layout_constraintBottom_toTopOf="@+id/actions" + tools:layout_editor_absoluteX="0dp"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="54dp" + android:orientation="horizontal"> + + <TextView + android:id="@+id/textView10" + android:layout_width="548dp" + android:layout_height="match_parent" + android:layout_weight="1" + android:gravity="center" + android:text="Подход №" + android:textAlignment="textEnd" + android:textColor="#D0CBCB" + android:textSize="34sp" /> + + <TextView + android:id="@+id/number_set" + android:layout_width="400dp" + android:layout_height="match_parent" + android:layout_weight="1" + android:gravity="center" + android:text=" 1" + android:textAlignment="viewStart" + android:textColor="#D0CBCB" + android:textSize="34sp" /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="71dp" + android:orientation="horizontal"> + + <TextView + android:id="@+id/textView11" + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:layout_weight="1" + android:text="Упражнение" + android:textAlignment="textEnd" + android:textColor="#D0CBCB" + android:textSize="34sp" /> + + <TextView + android:id="@+id/num_exercise" + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:layout_weight="1" + android:text=" 1" + android:textAlignment="viewStart" + android:textColor="#D0CBCB" + android:textSize="34sp" /> + </LinearLayout> + + <TextView + android:id="@+id/time" + android:layout_width="163dp" + android:layout_height="153dp" + android:layout_gravity="center" + android:gravity="center" + android:text="00:00" + android:textColor="#FFFFFF" + android:textSize="60sp" /> + + <TextView + android:id="@+id/work" + android:layout_width="match_parent" + android:layout_height="70dp" + android:gravity="center" + android:text="Работа" + android:textAlignment="center" + android:textColor="#D0CBCB" + android:textSize="34sp" /> + + </LinearLayout> + +</androidx.constraintlayout.widget.ConstraintLayout> diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index c8524cd..95fc093 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -2,4 +2,14 @@ <resources> <color name="black">#FF000000</color> <color name="white">#FFFFFFFF</color> + + <color name="colorGradientPinkStart">#F54EA2</color> + <color name="colorGradientPinkStop">#FF7676</color> + + <color name="colorGradientGreenStart">#42E695</color> + <color name="colorGradientGreenStop">#3BB2B8</color> + + <color name="colorGradientBlueStart">#17EAD9</color> + <color name="colorGradientBlueStop">#6078EA</color> + </resources> \ No newline at end of file