diff --git a/app/src/main/java/com/example/timert/AllTraining.kt b/app/src/main/java/com/example/timert/AllTraining.kt
index 15b5e70..db2b385 100644
--- a/app/src/main/java/com/example/timert/AllTraining.kt
+++ b/app/src/main/java/com/example/timert/AllTraining.kt
@@ -23,7 +23,7 @@ class AllTraining : AppCompatActivity() {
}
val buttonSaveAll: Button = findViewById(R.id.btn_save_all_vse)
buttonSaveAll.setOnClickListener {
- val intent = Intent(this, MainActivity::class.java)
+ val intent = Intent(this, CreatingTraining::class.java)
startActivity(intent)
isSave = true
diff --git a/app/src/main/java/com/example/timert/CreatingTraining.kt b/app/src/main/java/com/example/timert/CreatingTraining.kt
index 1f6cdaa..5b6d0a7 100644
--- a/app/src/main/java/com/example/timert/CreatingTraining.kt
+++ b/app/src/main/java/com/example/timert/CreatingTraining.kt
@@ -25,6 +25,8 @@ class CreatingTraining : AppCompatActivity() {
buttonSave.setOnClickListener {
isSave=true
+ val intent = Intent(this, MainActivity::class.java)
+ startActivity(intent)
}
val button_on_main: Button = findViewById(R.id.btn_on_main)
@@ -48,6 +50,11 @@ class CreatingTraining : AppCompatActivity() {
}
}
+ val button_add: Button = findViewById(R.id.add_workout)
+ button_add.setOnClickListener {
+ val intent = Intent(this, AllTraining::class.java)
+ startActivity(intent)
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/timert/MainActivity.kt b/app/src/main/java/com/example/timert/MainActivity.kt
index ab134be..b365dcf 100644
--- a/app/src/main/java/com/example/timert/MainActivity.kt
+++ b/app/src/main/java/com/example/timert/MainActivity.kt
@@ -31,18 +31,24 @@ class MainActivity : AppCompatActivity() {
startTrainingButton.setOnClickListener {
Toast.makeText(this, "Запуск тренировки!", Toast.LENGTH_SHORT).show() // Заглушка
//TODO: Intent для запуска Activity тренировки (форма 5)
+ val intent = Intent(this, timer::class.java)
+ startActivity(intent)
}
val templatesButton: Button = findViewById(R.id.templatesButton)
templatesButton.setOnClickListener {
- Toast.makeText(this, "Открытие шаблонов!", Toast.LENGTH_SHORT).show() // Заглушка
+ //Toast.makeText(this, "Открытие шаблонов!", Toast.LENGTH_SHORT).show() // Заглушка
//TODO: Intent для открытия Activity шаблонов (форма 3)
+ val intent = Intent(this, AddWorkout::class.java)
+ startActivity(intent)
}
val newTemplateButton: Button = findViewById(R.id.newTemplateButton)
newTemplateButton.setOnClickListener {
- Toast.makeText(this, "Создание нового шаблона!", Toast.LENGTH_SHORT).show() // Заглушка
+ //Toast.makeText(this, "Создание нового шаблона!", Toast.LENGTH_SHORT).show() // Заглушка
//TODO: Intent для открытия Activity создания шаблона (форма 3)
+
+
}
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/timert/SettingsActivity.kt b/app/src/main/java/com/example/timert/SettingsActivity.kt
index b7b5df6..d156f5a 100644
--- a/app/src/main/java/com/example/timert/SettingsActivity.kt
+++ b/app/src/main/java/com/example/timert/SettingsActivity.kt
@@ -1,6 +1,7 @@
package com.example.timert
import android.content.Context
+import android.content.Intent
import android.content.pm.PackageManager
import android.os.Bundle
import android.widget.Switch
@@ -16,61 +17,17 @@ class SettingsActivity : AppCompatActivity() {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_settings2)
- val versionTextView: TextView = findViewById(R.id.versionTextView)
- val darkModeSwitch: Switch = findViewById(R.id.darkModeSwitch)
- val aboutButton: Button = findViewById(R.id.aboutButton)
+
+
val developersButton: Button = findViewById(R.id.developersButton)
- // Получаем сохраненное состояние темы из SharedPreferences
- val sharedPreferences = getSharedPreferences("AppSettings", Context.MODE_PRIVATE)
- val isDarkMode = sharedPreferences.getBoolean("DarkMode", false) // По умолчанию - светлая тема
- darkModeSwitch.isChecked = isDarkMode
-
- // Применяем тему
- if (isDarkMode) {
- AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
- } else {
- AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
- }
-
- try {
- val packageInfo = packageManager.getPackageInfo(packageName, 0)
- val versionName = packageInfo.versionName
- versionTextView.text = "Версия: $versionName"
- } catch (e: PackageManager.NameNotFoundException) {
- versionTextView.text = "Версия: Неизвестно"
- }
-
- // Устанавливаем слушатель для Switch
- darkModeSwitch.setOnCheckedChangeListener { _, isChecked ->
- // Сохраняем состояние темы в SharedPreferences
- val editor = sharedPreferences.edit()
- editor.putBoolean("DarkMode", isChecked)
- editor.apply()
-
- // Применяем тему
- if (isChecked) {
- AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
- } else {
- AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
- }
- }
-
- // Обработчик нажатия на кнопку "О программе"
- aboutButton.setOnClickListener {
- AlertDialog.Builder(this)
- .setTitle("О программе")
- .setMessage("Краткое описание пользования приложением.\n\nНапример: Это приложение позволяет тренироваться, чтобы быть как арнольдшварцнигер 😄")
- .setPositiveButton("ОК", null)
- .show()
- }
// Обработчик нажатия на кнопку "Разработчики"
developersButton.setOnClickListener {
AlertDialog.Builder(this)
.setTitle("Разработчики")
.setMessage(HtmlCompat.fromHtml(
- "Вятский государственный университет
" +
+ "Программу разработали:
" +
"Емцова Надежда Александровна
" +
"Новиков Николай Алексеевич
" +
"Пискун Алёна Викторовна
",
@@ -79,5 +36,10 @@ class SettingsActivity : AppCompatActivity() {
.setPositiveButton("ОК", null)
.show()
}
+ val on_main: Button = findViewById(R.id.btn_on_main)
+ on_main.setOnClickListener {
+ val intent = Intent(this, MainActivity::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
index b4679a9..26277ba 100644
--- a/app/src/main/java/com/example/timert/timer.kt
+++ b/app/src/main/java/com/example/timert/timer.kt
@@ -4,15 +4,30 @@ import android.app.AlertDialog
import android.content.Intent
import android.media.Image
import android.os.Bundle
+import android.os.CountDownTimer
import android.widget.Button
import android.widget.ImageButton
+import android.widget.TextView
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
+import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
class timer : AppCompatActivity() {
private var isPlay = false
+
+ private lateinit var statusText: TextView
+ private lateinit var timerText: TextView
+ private lateinit var statusSet: TextView
+ private lateinit var statusExercise: TextView
+ private var numApproaches = 3
+ private var numExercises = 5
+ private var restBetweenExercises = 30
+ private var restBetweenApproaches = 60
+ private var exerciseDuration = 45 // например, 45 секунд упражнение
+ private var currentTimer: CountDownTimer? = null
+ private var timeLeftInMillis: Long = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
@@ -22,6 +37,18 @@ class timer : AppCompatActivity() {
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
insets
}
+ statusText = findViewById(R.id.statusText)
+ timerText = findViewById(R.id.timerText)
+ statusSet = findViewById(R.id.number_set)
+ statusExercise = findViewById(R.id.num_exercise)
+ numApproaches = intent.getIntExtra("numApproaches", numApproaches)
+ numExercises = intent.getIntExtra("numExercises", numExercises)
+ restBetweenExercises = intent.getIntExtra("restBetweenExercises", restBetweenExercises)
+ restBetweenApproaches = intent.getIntExtra("restBetweenApproaches", restBetweenApproaches)
+ exerciseDuration = intent.getIntExtra("exerciseDuration", exerciseDuration)
+
+ startTraining()
+
val button: ImageButton = findViewById(R.id.stop)
button.setOnClickListener {
AlertDialog.Builder(this)
@@ -58,5 +85,90 @@ class timer : AppCompatActivity() {
}
+ private fun resumeTimer(onFinish: () -> Unit) {
+ currentTimer = object : CountDownTimer(timeLeftInMillis, 1000) {
+ override fun onTick(millisUntilFinished: Long) {
+ timeLeftInMillis = millisUntilFinished
+ timerText.text = "${millisUntilFinished / 1000}"
+ }
+
+ override fun onFinish() {
+ onFinish()
+ }
+ }.start()
+ }
+
+ private fun startTraining() {
+ var currentApproach = 1
+ val rootLayout = findViewById(R.id.main)
+ fun nextApproach() {
+ if (currentApproach > numApproaches) {
+ statusText.text = "Тренировка завершена!"
+ rootLayout.setBackgroundResource(R.drawable.blue_gradient)
+ timerText.text = "00:00"
+ return
+ }
+
+ var currentExercise = 1
+
+ fun nextExercise() {
+ if (currentExercise > numExercises) {
+ statusText.text = "Отдых между подходами"
+ rootLayout.setBackgroundResource(R.drawable.green_gradient)
+ startRest(restBetweenApproaches) {
+ currentApproach++
+ nextApproach()
+ }
+ return
+ }
+ rootLayout.setBackgroundResource(R.drawable.gradient_pink)
+ statusText.text="Работа"
+
+ statusExercise.text = "$currentExercise / $numExercises"
+ statusSet.text="$currentApproach"
+ startTimer(exerciseDuration) {
+ statusText.text = "Отдых"
+ rootLayout.setBackgroundResource(R.drawable.green_gradient)
+ startRest(restBetweenExercises) {
+ currentExercise++
+ nextExercise()
+ }
+ }
+ }
+
+ nextExercise()
+ }
+
+ nextApproach()
+ }
+
+ private fun startTimer(seconds: Int, onFinish: () -> Unit) {
+ timeLeftInMillis = seconds * 1000L
+ object : CountDownTimer(seconds * 1000L, 1000) {
+ override fun onTick(millisUntilFinished: Long) {
+ timerText.text = "${millisUntilFinished / 1000}"
+ }
+
+ override fun onFinish() {
+ onFinish()
+ }
+ }.start()
+ }
+
+ private fun startRest(seconds: Int, onFinish: () -> Unit) {
+ val rootLayout = findViewById(R.id.main)
+ rootLayout.setBackgroundResource(R.drawable.green_gradient)
+ object : CountDownTimer(seconds * 1000L, 1000) {
+ override fun onTick(millisUntilFinished: Long) {
+ timerText.text = "${millisUntilFinished / 1000}"
+ statusText.text = "Отдых"
+
+ }
+
+ override fun onFinish() {
+ onFinish()
+ }
+ }.start()
+ }
}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_all_training.xml b/app/src/main/res/layout/activity_all_training.xml
index 30314e2..7446484 100644
--- a/app/src/main/res/layout/activity_all_training.xml
+++ b/app/src/main/res/layout/activity_all_training.xml
@@ -20,7 +20,7 @@
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:text="Тренировка"
+ android:text="Добавить упражнение"
android:textAlignment="center"
android:textSize="34sp" />
@@ -88,7 +88,7 @@
android:id="@+id/textView8_all"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:text="Отдых между подходами"
+ android:text="Отдых между упражнениями"
android:textAlignment="center"
android:textSize="24sp" />
@@ -131,21 +131,6 @@
app:layout_constraintBottom_toBottomOf="parent"
tools:layout_editor_absoluteX="7dp">
-
-
+
+
\ 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 6f70a08..df3301b 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -19,15 +19,15 @@
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
-
-
-
-
-
-
-
+ android:layout_height="match_parent">
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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
index 6a36635..7997b79 100644
--- a/app/src/main/res/layout/activity_timer.xml
+++ b/app/src/main/res/layout/activity_timer.xml
@@ -69,9 +69,9 @@
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
- android:text="Подход №"
+ android:text="Подход № "
android:textAlignment="textEnd"
- android:textColor="#D0CBCB"
+ android:textColor="@color/black"
android:textSize="34sp" />
@@ -96,9 +96,9 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
- android:text="Упражнение"
+ android:text="Упражнение "
android:textAlignment="textEnd"
- android:textColor="#D0CBCB"
+ android:textColor="@color/black"
android:textSize="34sp" />