diff --git a/.idea/.name b/.idea/.name
index 1b6f5c1..ab502a6 100644
--- a/.idea/.name
+++ b/.idea/.name
@@ -1 +1 @@
-Реабилитация
\ No newline at end of file
+Rehabilitation
\ No newline at end of file
diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
index 52814fd..c2779f7 100644
--- a/.idea/deploymentTargetDropDown.xml
+++ b/.idea/deploymentTargetDropDown.xml
@@ -7,11 +7,11 @@
-
+
-
+
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 8f684dc..1a1a6dd 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -8,7 +8,7 @@
-
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 1e1b85f..7445cf5 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/app/build.gradle b/app/build.gradle
index 5441837..aa4187e 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -41,15 +41,9 @@ dependencies {
implementation 'androidx.room:room-ktx:2.5.2'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.6.1'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1'
+ implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.6.1"
- implementation platform('com.google.firebase:firebase-bom:31.2.0')
- implementation 'com.google.firebase:firebase-database-ktx:20.2.2'
- implementation 'com.google.firebase:firebase-auth-ktx:22.1.0'
- implementation 'com.google.firebase:firebase-analytics'
- implementation 'com.google.firebase:firebase-messaging'
- implementation 'com.google.firebase:firebase-messaging-ktx:23.2.0'
- kapt 'androidx.room:room-compiler:2.5.2'
implementation 'androidx.fragment:fragment-ktx:1.5.5'
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.1.17'
@@ -67,17 +61,22 @@ dependencies {
implementation group: 'org.apache.poi', name: 'poi-ooxml', version: '5.2.3'
implementation group: 'org.apache.poi', name: 'poi', version: '5.2.3'
- //Календарь
- // implementation 'com.github.appmonkey8010:amcalendar:[RELEASE]' //e.g.: 1.0.0
- //implementation 'ru.cleverpumpkin:crunchycalendar:2.6.0'
- //implementation 'com.applandeo:material-calendar-view:1.9.0-rc03'
- //implementation 'com.github.tejpratap46:RecyclerCalendarAndroid:LATEST_RELEASE_TAG'
- //implementation 'com.github.tejpratap46:RecyclerCalendarAndroid:LATEST_RELEASE_TAG'
+ coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.3'
+ implementation 'com.kizitonwose.calendar:view:2.0.0'
+ implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.6.1"
+
+ //Retrofit
+ implementation "com.squareup.retrofit2:retrofit:2.9.0"
+ implementation "com.squareup.retrofit2:converter-gson:2.9.0"
+
+ //OkHttp
+ implementation "com.squareup.okhttp3:logging-interceptor:4.7.2"
+ implementation "com.squareup.okhttp3:okhttp:4.7.2"
+
+ implementation 'com.squareup.picasso:picasso:2.71828'
- //implementation 'com.sun.mail:android-mail:1.6.2'
- //implementation 'com.sun.mail:android-activation:1.6.2'
- //implementation 'com.archit.calendar:awesome-calendar:2.0.0'
- //implementation 'com.andrewjapar.rangedatepicker:rangedatepicker:0.3'
+ coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.3'
+ implementation 'com.kizitonwose.calendar:view:2.0.0'
}
\ No newline at end of file
diff --git a/app/release/VMedA.Rehabilitation.apk b/app/release/VMedA.Rehabilitation.apk
deleted file mode 100644
index 5d0b732..0000000
Binary files a/app/release/VMedA.Rehabilitation.apk and /dev/null differ
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 805b52f..dff9da2 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -31,12 +31,8 @@
android:usesCleartextTraffic="true"
tools:targetApi="31">
-
-
+
-
-
-
- }
- builder.setPositiveButton("Подтвердить") { dialogInterface, i ->
- createPatient(
- nameCreate,
- surnameCreate,
- //patronymicCreate,
- diagnosisCreate,
- //emailCreate,
- loginCreate,
- passwordCreate
- )
- }
- builder.show()
- }
-
- //Создание нового пациента
- private fun createPatient(
- nameCreate: String,
- surnameCreate: String,
- //patronymicCreate: String,
- diagnosisCreate: String,
- //emailCreate: String,
- loginCreate: String,
- passwordCreate: String
- ) {
- val db = MainDB.getDB(requireContext())
- val item = ItemPatient(
- null,
- nameCreate,
- surnameCreate,
- "",
- diagnosisCreate,
- //emailCreate,
- 0,
- loginCreate,
- passwordCreate,
- )
- Thread {
- db.getDaoPatient().insertItemPatient(item)
- }.start()
- visible3()
- savePatientDoctorNew(1)
- clearPatientED()
- Toast(requireContext()).showCustomNiceToast("Пользователь создан", requireActivity())
- //Сохраняем то что пациент создан
-
- }
-
-
- //Функция для очистки полей
- private fun clearPatientED() = with(binding) {
- edCreateName.setText("")
- edCreateSurname.setText("")
- edDiagnosis.setText("")
- edCreateEmail.setText("")
- edCreateLogin.setText("")
- edCreatePassword.setText("")
- }
- //Удаление определенного пациента
- private fun deleteBtnPatient() = with(binding) {
- binding.btnDeletePatient.setOnClickListener {
- createAlеrtDialogDelete()
- }
- }
- private fun createAlеrtDialogDelete() {
- val db = MainDB.getDB(requireContext())
-
- val edException = EditText(requireContext())
- val builder = AlertDialog.Builder(requireContext())
- builder.setTitle("Удаление")
- builder.setMessage("Введите login пользователя для удаления")
- builder.setView(edException)
- builder.setNegativeButton("Назад") { dialogInterface, i ->
-
- }
- builder.setPositiveButton("Подтвердить") { dialogInterface, i ->
- if(EmailPatient == edException.text.toString()){
- deletePatient(edException.text.toString())
- clearFIO()
- clearEmailPatient()
- clearDate()
- clearSportCursDay()
- clearSportCursDayDangerBefore()
- clearSportCursDayDangerAfter()
- clearPauseDay()
- clearBlock()
- clearDayBefore()
- clearDayAfter()
- clearSportPlusCount()
- clearSportMaxCount()
- clearSportDateStart()
- clearCursDayNumber()
- //Сохраняем то что пациент создан
- clearPatientDoctorNew()
- clearUserPatientToken()
- Thread {
- db.getDaoDaySport().deleteItemDaySport()
- db.getDao().deleteItem()
- db.getDaoQB().deleteBQ()
- db.getDaoQA().deleteAQ()
- }.start()
- }
- else{
- Toast(requireContext()).showCustomInfoToast("Такого пользователя нету", requireActivity())
- }
-
- }
- builder.show()
- }
-
- //Функция удаления пользователя
- private fun deletePatient(login: String) {
- val db = MainDB.getDB(requireContext())
- Thread {
- db.getDaoPatient().deletePatient(login)
- }.start()
- Toast(requireContext()).showCustomInfoToast("Аккаунт пациента был удален", requireActivity())
-
- }
-
- //Создание пациеанта
- private fun createBtnPatient() {
-
- binding.btnSaveCreatePatient.setOnClickListener {
- addSave = 1
- val db = MainDB.getDB(requireContext())
- db.getDaoPatient().getAllItemPatient().asLiveData().observe(requireActivity()){
- val listPatient = it.size
- if(listPatient == 0){
- val item = PatientModel(
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- )
-
- model.liveLookPatientCurrent.value = item
- }
- else{
- it.forEach(){
- val item = PatientModel(
- it.id.toString(),
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- )
-
- model.liveLookPatientCurrent.value = item
- }
- }
-
- }
- }
- }
-
-
- private fun liveLookPatientCurrent() = with(binding) {
- model.liveLookPatientCurrent.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
- if(addSave == 1){
- Log.d("id","id123 = ${it.id}")
-
- if(it.id != "" || it.id == null || it.id.isNotBlank()){
- Toast(requireContext()).showCustomInfoToast("Аккаунт присутсвует", requireActivity())
- }
- else{
- val nameCreate = binding.edCreateName.text.toString()
- val surnameCreate = binding.edCreateSurname.text.toString()
- val diagnosisCreate = binding.edDiagnosis.text.toString()
- val emailCreate = binding.edCreateEmail.text.toString()
- val loginCreate = binding.edCreateLogin.text.toString()
- val passwordCreate = binding.edCreatePassword.text.toString()
-
-
- if (nameCreate != "" && surnameCreate != "" && diagnosisCreate != "" && loginCreate != "" && passwordCreate != "") {
- createAlеrtDialogCreate(
- nameCreate,
- surnameCreate,
- //patronymicCreate,
- diagnosisCreate,
- //emailCreate,
- loginCreate,
- passwordCreate
- )
- saveFIO(surnameCreate+" "+nameCreate)
- saveEmailPatient(loginCreate)
-
- } else {
- Toast(requireContext()).showCustomInfoToast("Не все поля заполнены", requireActivity())
- }
- }
-
- //Сбрасываем нажатие
- addSave=0
- }
-
- }
-
- }
-
- fun clearUserPatientToken() {
- val edit = prefUserPatientToken?.edit()
- edit?.clear()
- edit?.apply()
- UserPatientToken = ""
- }
- fun clearCursDayNumber() {
- val edit = prefSportCursDayNumber?.edit()
- edit?.clear()
- edit?.apply()
- SportCursDayNumber = 0
- }
-
-
- fun clearSportDateStart() {
- val edit = prefSportDateStart?.edit()
- edit?.clear()
- edit?.apply()
- SportDateStart = "0"
- }
-
-
- fun clearSportPlusCount() {
- val edit = prefSportPlusCount?.edit()
- edit?.clear()
- edit?.apply()
- SportPlusCount = 0
- }
-
-
-
-
- fun clearSportMaxCount() {
- val edit = prefSportMaxCount?.edit()
- edit?.clear()
- edit?.apply()
- SportMaxCount = 0
- }
-
- fun clearDayBefore() {
- val edit = prefDayBefore?.edit()
- edit?.clear()
- edit?.apply()
- DayBefore = ""
- }
- fun clearDayAfter() {
- val edit = prefDayAfter?.edit()
- edit?.clear()
- edit?.apply()
- DayAfter = ""
- }
-
-
- fun clearBlock() {
- val edit = prefBlock?.edit()
- edit?.clear()
- edit?.apply()
- Block = ""
- }
-
- fun clearPauseDay() {
- val edit = prefPauseDay?.edit()
- edit?.clear()
- edit?.apply()
- PauseDay = ""
- }
-
-
- fun clearDate() {
- val edit = prefSport?.edit()
- edit?.clear()
- edit?.apply()
- SportUserTrue = 0
- }
-
- fun clearSportCursDay() {
- val edit = prefCursDay?.edit()
- edit?.clear()
- edit?.apply()
- SportCursDay = 0
- }
-
-
- fun clearSportCursDayDangerBefore() {
- val edit = prefCursDangerDayBefore?.edit()
- edit?.clear()
- edit?.apply()
- SportCursDayDangerBefore = 0
- }
-
-
- fun clearSportCursDayDangerAfter() {
- val edit = prefCursDangerDayAfter?.edit()
- edit?.clear()
- edit?.apply()
- SportCursDayDangerAfter = 0
- }
-
-
- companion object {
-
- fun newInstance() = CreatePatientFragment()
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Admin/fragmrntAdmin/SettingDoctor/EditPatientFragment.kt b/app/src/main/java/com/example/rehabilitation/Admin/fragmrntAdmin/SettingDoctor/EditPatientFragment.kt
deleted file mode 100644
index 9a06032..0000000
--- a/app/src/main/java/com/example/rehabilitation/Admin/fragmrntAdmin/SettingDoctor/EditPatientFragment.kt
+++ /dev/null
@@ -1,219 +0,0 @@
-package com.example.rehabilitation.Admin.fragmrntAdmin.SettingDoctor
-
-import android.content.Context
-import android.os.Bundle
-import android.util.Log
-import androidx.fragment.app.Fragment
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import android.widget.Toast
-import androidx.fragment.app.activityViewModels
-import androidx.lifecycle.asLiveData
-import com.example.admin.Toast.showCustomInfoToast
-import com.example.admin.Toast.showCustomNiceToast
-import com.example.rehabilitation.DayBefore
-import com.example.rehabilitation.EmailPatient
-import com.example.rehabilitation.FIO
-import com.example.rehabilitation.R
-import com.example.rehabilitation.Room.MainDB
-import com.example.rehabilitation.SportCursDayDangerBefore
-import com.example.rehabilitation.databinding.FragmentEditPatientBinding
-import com.example.rehabilitation.model_adapter.Patient.PatientModel
-import com.example.rehabilitation.prefCursDangerDayBefore
-import com.example.rehabilitation.prefDayBefore
-import com.example.rehabilitation.prefEmailPatient
-import com.example.rehabilitation.prefFIO
-import com.example.sqlitework.dip.MainViewModel
-
-
-class EditPatientFragment : Fragment() {
- private lateinit var binding: FragmentEditPatientBinding
- private val model: MainViewModel by activityViewModels()//Инициализировали класс
-
- var loginPatient = ""
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
- binding = FragmentEditPatientBinding.inflate(layoutInflater,container,false)
- return binding.root
- }
-
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
- enabledPatient()
- editBtnSavePatient()
- liveSettingPatientCurrent()
-
- outputOfDataParient()
- //Выход из редактирвоания данных пациента
- binding.btnBackPatientSetting.setOnClickListener {
- visible3()
- }
-
- prefFIO = activity?.getSharedPreferences("FIO", Context.MODE_PRIVATE)
- FIO = prefFIO?.getString("fio", "")!!
-
- prefEmailPatient = activity?.getSharedPreferences("EmailPatient", Context.MODE_PRIVATE)
- EmailPatient = prefEmailPatient?.getString("emailPatient", "")!!
-
- }
-
- override fun onResume() {
- super.onResume()
-
- }
- fun saveFIO(fio: String) {
- val edit = prefFIO?.edit()
- edit?.putString("fio", fio)
- edit?.apply()
- FIO = fio
- }
- fun clearFIO() {
- val edit = prefFIO?.edit()
- edit?.clear()
- edit?.apply()
- FIO = ""
- }
-
- fun saveEmailPatient(emailPatient: String) {
- val edit = prefEmailPatient?.edit()
- edit?.putString("emailPatient", emailPatient)
- edit?.apply()
- EmailPatient = emailPatient
- }
- fun clearEmailPatient() {
- val edit = prefEmailPatient?.edit()
- edit?.clear()
- edit?.apply()
- EmailPatient = ""
- }
-
- //Экран о пациенте
- fun visible3() {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLMainSettinDoctor,MainPatientFragment.newInstance())?.addToBackStack(null)?.commit()
- }
-
- //Функция отключающая поля для ввода редактирования пациента
- private fun enabledPatient() = with(binding) {
- edEditNamePatient.setEnabled(false)
- edEditSurnamePatient.setEnabled(false)
- //edEditPatronymicPatient.setEnabled(false)
- edEditDiagnosisPatient.setEnabled(false)
- edEditLoginPatient.setEnabled(false)
- //edEditEmailPatient.setEnabled(false)
- edEditPasswordPatient.setEnabled(false)
- enabledPatientBtn()
- }
-
- //Функция активации полей при редактирование пациента
- private fun enabledPatientBtn() = with(binding) {
- btnEditNamePatient.setOnClickListener { edEditNamePatient.setEnabled(true) }
- btnEditSurnamePatient.setOnClickListener { edEditSurnamePatient.setEnabled(true) }
- //btnEditPatronymicPatient.setOnClickListener { edEditPatronymicPatient.setEnabled(true) }
- btnEditDiagnosisPatient.setOnClickListener { edEditDiagnosisPatient.setEnabled(true) }
- btnEditLoginPatient.setOnClickListener { edEditLoginPatient.setEnabled(true) }
- //btnEditEmailPatient.setOnClickListener { edEditEmailPatient.setEnabled(true) }
- btnEditPasswordPatient.setOnClickListener { edEditPasswordPatient.setEnabled(true) }
- }
-
- //Сохранение измененных данных для пациента
- private fun editBtnSavePatient() = with(binding) {
- binding.btnSaveEditPatient.setOnClickListener {
- val name = edEditNamePatient.text.toString()
- val surname = edEditSurnamePatient.text.toString()
- // val patronymic = edEditPatronymicPatient.text.toString()
- val diagnosis = edEditDiagnosisPatient.text.toString()
- val login = edEditLoginPatient.text.toString()
- //val email = edEditEmailPatient.text.toString()
- val password = edEditPasswordPatient.text.toString()
- if (name != "" && surname != "" && login != "" && password != "" && diagnosis != "") {
- saveFIO(surname +" "+ name)
- saveEmailPatient(login)
- val db = MainDB.getDB(requireContext())
- Thread {
- db.getDaoPatient().updatePatient(
- loginPatient,
- name,
- surname,
- "",
- diagnosis,
- login,
- password
- )
- }.start()
- Toast(requireContext()).showCustomNiceToast(
- "Данные обновлены",
- requireActivity()
- )
-
- } else {
- Toast(requireContext()).showCustomInfoToast(
- "Не все поля заполнены",
- requireActivity()
- )
- }
- }
- }
-
- private fun liveSettingPatientCurrent() = with(binding) {
- model.liveSettingPatientCurrent.observe(viewLifecycleOwner) {
- //viewLifecycleOwner - следит за циклом жизни fragment
- Log.i("liveSettingPatientCurrent","liveSettingPatientCurrent")
- binding.edEditNamePatient.setText(it.name)
- binding.edEditSurnamePatient.setText(it.surname)
- //binding.edEditPatronymicPatient.setText(it.patronymic)
- binding.edEditDiagnosisPatient.setText(it.diagnosis)
- //binding.edEditEmailPatient.setText("")
- binding.edEditLoginPatient.setText(it.login)
- binding.edEditPasswordPatient.setText(it.password)
- loginPatient = it.login
- visible5()
- }
-
-
- }
-
- //Экран редактировани данных пациента
- fun visible5() {
- Log.i("visible5","visible5")
- binding.CLLoad.visibility = View.GONE
-
- binding.CLEditPatien.visibility = View.VISIBLE
- }
-
- private fun outputOfDataParient() {
- Log.i("outputOfDataParient","outputOfDataParient")
- visibleLoad()
- val db = MainDB.getDB(requireContext())
- db.getDaoPatient().getAuthItemPatientOutput(EmailPatient).asLiveData().observe(requireActivity()) { itList ->
- itList.forEach {
- val item = PatientModel(
- it.id.toString(),
- it.name.toString(),
- it.surname.toString(),
- it.patronymic.toString(),
- it.diagnosis.toString(),
- it.number_of_courses.toString(),
- it.login.toString(),
- it.password.toString(),
- )
- model.liveSettingPatientCurrent.value = item
- }
- }
- }
-
-
-
- //Экран создания пациенат
- fun visibleLoad() {
- binding.CLLoad.visibility = View.VISIBLE
- binding.CLEditPatien.visibility = View.GONE
- }
-
- companion object {
-
- fun newInstance() = EditPatientFragment()
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Admin/fragmrntAdmin/SettingDoctor/MainPatientFragment.kt b/app/src/main/java/com/example/rehabilitation/Admin/fragmrntAdmin/SettingDoctor/MainPatientFragment.kt
deleted file mode 100644
index ac09f84..0000000
--- a/app/src/main/java/com/example/rehabilitation/Admin/fragmrntAdmin/SettingDoctor/MainPatientFragment.kt
+++ /dev/null
@@ -1,153 +0,0 @@
-package com.example.rehabilitation.Admin.fragmrntAdmin.SettingDoctor
-
-import android.content.Context
-import android.os.Bundle
-import androidx.fragment.app.Fragment
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import android.widget.Toast
-import androidx.lifecycle.asLiveData
-import com.example.admin.Toast.showCustomInfoToast
-import com.example.admin.Toast.showCustomNiceToast
-import com.example.rehabilitation.EmailPatient
-import com.example.rehabilitation.FIO
-import com.example.rehabilitation.MainActivity
-import com.example.rehabilitation.R
-import com.example.rehabilitation.Room.MainDB
-import com.example.rehabilitation.databinding.FragmentMainPatientBinding
-import com.example.rehabilitation.fragment.InfoFragment.MedicalReabilitationFragment
-import com.example.rehabilitation.model_adapter.Patient.PatientModel
-import com.example.rehabilitation.prefEmailPatient
-import com.example.rehabilitation.prefFIO
-
-
-class MainPatientFragment : Fragment()/*, MainActivity.IOnBackPressed*/ {
- private lateinit var binding: FragmentMainPatientBinding
-// override fun onBackPressed(): Boolean {
-// return if (true) {
-// Toast(requireContext()).showCustomInfoToast("123123213", requireActivity())
-// true
-// } else {
-// false
-// }
-// }
-
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
- binding = FragmentMainPatientBinding.inflate(layoutInflater,container,false)
- return binding.root
- }
-
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
-
- prefFIO = activity?.getSharedPreferences("FIO", Context.MODE_PRIVATE)
- FIO = prefFIO?.getString("fio", "")!!
-
- prefEmailPatient = activity?.getSharedPreferences("EmailPatient", Context.MODE_PRIVATE)
- EmailPatient = prefEmailPatient?.getString("emailPatient", "")!!
-
-
- //Выход из мею настроек пациента
- binding.btnExitMainPAtient.setOnClickListener {
- visible1()
- }
-
- binding.btnSportPatient.setOnClickListener {
- if(FIO !=""){
- visible4()
- }
- else{
- Toast(requireContext()).showCustomInfoToast("Создайте аккаунт пациенту", requireActivity())
- }
-
- }
-
- binding.btnCreatePatient.setOnClickListener {
- visible7()
- }
- binding.btnEditPatient.setOnClickListener {
- if(FIO !=""){
- visible5()
- }
- else{
- Toast(requireContext()).showCustomInfoToast("Создайте аккаунт пациенту", requireActivity())
- }
- }
-
- }
-
-
-// override fun onBackPressed(): Boolean {
-// return if (myCondition) {
-// //action not popBackStack
-// true
-// } else {
-// false
-// }
-// }
-
-
- fun saveFIO(fio: String) {
- val edit = prefFIO?.edit()
- edit?.putString("fio", fio)
- edit?.apply()
- FIO = fio
- }
- fun clearFIO() {
- val edit = prefFIO?.edit()
- edit?.clear()
- edit?.apply()
- FIO = ""
- }
-
- fun saveEmailPatient(emailPatient: String) {
- val edit = prefEmailPatient?.edit()
- edit?.putString("emailPatient", emailPatient)
- edit?.apply()
- EmailPatient = emailPatient
- }
- fun clearEmailPatient() {
- val edit = prefEmailPatient?.edit()
- edit?.clear()
- edit?.apply()
- EmailPatient = ""
- }
- //Экран создания пациенат
- fun visibleLoad() {
- binding.CLLoad.visibility = View.VISIBLE
- binding.CLMainPatient.visibility = View.GONE
- }
-
- //Основной экран
- fun visible1() {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLMainSettinDoctor,MainSettingDoctorFragment.newInstance())?.addToBackStack(null)?.commit()
- }
- //Экран тренировок пациента
- fun visible4() {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLMainSettinDoctor,PatientSportFragment.newInstance())?.addToBackStack(null)?.commit()
-// val infoFrag = activity?.supportFragmentManager?.beginTransaction()
-// infoFrag?.replace(R.id.CLMainSettinDoctor, PatientSportFragment.newInstance())
-// infoFrag?.addToBackStack(null)
-// infoFrag?.commit()
-
- }
- //Экран редактировани данных пациента
- fun visible5() {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLMainSettinDoctor,EditPatientFragment.newInstance())?.addToBackStack(null)?.commit()
-
- }
-
-
- //Экран создания пациенат
- fun visible7() {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLMainSettinDoctor,CreatePatientFragment.newInstance())?.addToBackStack(null)?.commit()
- }
- companion object {
-
- fun newInstance() = MainPatientFragment()
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Admin/fragmrntAdmin/SettingDoctor/MainSettingDoctorFragment.kt b/app/src/main/java/com/example/rehabilitation/Admin/fragmrntAdmin/SettingDoctor/MainSettingDoctorFragment.kt
deleted file mode 100644
index 085988b..0000000
--- a/app/src/main/java/com/example/rehabilitation/Admin/fragmrntAdmin/SettingDoctor/MainSettingDoctorFragment.kt
+++ /dev/null
@@ -1,336 +0,0 @@
-package com.example.rehabilitation.Admin.fragmrntAdmin.SettingDoctor
-
-import android.content.Context
-import android.content.Intent
-import android.graphics.Color
-import android.os.Bundle
-import android.util.Log
-import androidx.fragment.app.Fragment
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import android.widget.Toast
-import androidx.appcompat.app.AlertDialog
-import androidx.fragment.app.activityViewModels
-import androidx.lifecycle.asLiveData
-import com.example.admin.Toast.showCustomInfoToast
-import com.example.rehabilitation.Auth.AuthDoctorActivity
-import com.example.rehabilitation.Auth.AuthorizationActivity
-import com.example.rehabilitation.Block
-import com.example.rehabilitation.EmailPatient
-import com.example.rehabilitation.FIO
-import com.example.rehabilitation.PauseDay
-import com.example.rehabilitation.R
-import com.example.rehabilitation.Room.MainDB
-import com.example.rehabilitation.SettingActivity
-import com.example.rehabilitation.SportDateStart
-import com.example.rehabilitation.SportPlusCount
-import com.example.rehabilitation.User.fragmentUser.SceduleFragment
-import com.example.rehabilitation.UserDoctorToken
-import com.example.rehabilitation.counter2
-import com.example.rehabilitation.databinding.FragmentMainSettingDoctorBinding
-import com.example.rehabilitation.model_adapter.Patient.PatientModel
-import com.example.rehabilitation.prefBlock
-import com.example.rehabilitation.prefDoctor
-import com.example.rehabilitation.prefEmailPatient
-import com.example.rehabilitation.prefFIO
-import com.example.rehabilitation.prefPauseDay
-import com.example.rehabilitation.prefSportDateStart
-import com.example.rehabilitation.prefUserDoctorToken
-import com.example.rehabilitation.tokenClassDoctor
-import com.example.sqlitework.dip.MainViewModel
-import java.time.LocalDate
-
-class MainSettingDoctorFragment : Fragment() {
- private lateinit var binding: FragmentMainSettingDoctorBinding
- private val model: MainViewModel by activityViewModels()//Инициализировали класс
-
- private var addPatient = false
-
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
- binding = FragmentMainSettingDoctorBinding.inflate(layoutInflater,container,false)
- return binding.root
- }
-
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
-
- prefFIO = activity?.getSharedPreferences("FIO", Context.MODE_PRIVATE)
- FIO = prefFIO?.getString("fio", "")!!
-
- prefEmailPatient = activity?.getSharedPreferences("EmailPatient", Context.MODE_PRIVATE)
- EmailPatient = prefEmailPatient?.getString("emailPatient", "")!!
-
- prefSportDateStart = activity?.getSharedPreferences("SportDateStart", Context.MODE_PRIVATE)
- SportDateStart = prefSportDateStart?.getString("sportdatestart", "")!!
-
- //Для пауз и блоков
- prefPauseDay = activity?.getSharedPreferences("PauseDay", Context.MODE_PRIVATE)
- PauseDay = prefPauseDay?.getString("pd", "")!!
- prefBlock = activity?.getSharedPreferences("Block", Context.MODE_PRIVATE)
- Block = prefBlock?.getString("b", "")!!
-
- data_prefDoctorPatientToken()
-
- //Вызываем вывод данных пациента
- outputOfDataPatient()
-
- //Получаем данные пациента
- liveSettingPatientCurrent()
-
- binding.btnPatient.setOnClickListener {
- visible3()
- }
-
- //Выход из раздела врача
- binding.btnExitDoctorProfil.setOnClickListener {
- clearUserDoctorToken()
- val intetn = Intent(requireContext(), SettingActivity::class.java)
- activity?.finish()
- startActivity(intetn)
- }
-
- //Выход из аккаунта врача
- binding.btnExitAuthDoctor.setOnClickListener {
- createAlеrtDialogExitAuth()
- }
-
- if(SportDateStart !=""){
- binding.txtDateSport.setText("Дата назначения: ${SportDateStart}")
- binding.cardViewSportDay.setCardBackgroundColor(Color.parseColor("#9CD57E"))
-
- }
- else{
- binding.txtDateSport.setText("Курс отсуствует")
- binding.cardViewSportDay.setCardBackgroundColor(Color.parseColor("#D57E7E"))
-
- }
-
- if(FIO ==""){
- visibleLoad()
- binding.txtSurname.setText("")
- binding.txtName.setText("")
- binding.txtPatronymic.setText("")
- binding.txtEmail.setText("")
- binding.txtDiagnoz.setText("")
- }
-
- //Цвет кнопок в зависимоти паузы и блока
- colorBtnBlockPause()
-
- binding.cardViewBan.setOnClickListener {
- if(FIO !=""){
- if(Block <= LocalDate.now().toString() || Block == ""){
- saveBlock(LocalDate.now().plusDays(3).toString())
- Toast(requireContext()).showCustomInfoToast("Курс заблокирован", requireActivity())
- binding.cardViewBan.setCardBackgroundColor(Color.parseColor("#FF3F3F"))
- }
- else{
- clearBlock()
- Toast(requireContext()).showCustomInfoToast("Курс разблокирован", requireActivity())
- binding.cardViewBan.setCardBackgroundColor(Color.parseColor("#8FF174"))
-
- }
- }
- else{
- Toast(requireContext()).showCustomInfoToast("Создайте аккаунт пациенту", requireActivity())
- }
-
- }
-
- binding.cardViewPause.setOnClickListener {
- if(FIO !=""){
- if(PauseDay <= LocalDate.now().toString() || PauseDay == ""){
- savePauseDay(LocalDate.now().plusDays(1).toString())
- Toast(requireContext()).showCustomInfoToast("Пауза на 3 дня", requireActivity())
- binding.cardViewPause.setCardBackgroundColor(Color.parseColor("#FF3F3F"))
- }
- else{
- clearPauseDay()
- Toast(requireContext()).showCustomInfoToast("Пауза снята", requireActivity())
- binding.cardViewPause.setCardBackgroundColor(Color.parseColor("#8FF174"))
- }
- }
- else{
- Toast(requireContext()).showCustomInfoToast("Создайте аккаунт пациенту", requireActivity())
- }
-
- }
-
-
- }
-
-
- private fun colorBtnBlockPause() {
- //Цвет кнопки в зависимоти от включен ли блок
- if(Block==""){
- binding.cardViewBan.setCardBackgroundColor(Color.parseColor("#8FF174"))
- }
- else{
- binding.cardViewBan.setCardBackgroundColor(Color.parseColor("#FF3F3F"))
- }
-
- //Цвет кнопки в зависимоти от включена ли пацза
- if(PauseDay==""){
- binding.cardViewPause.setCardBackgroundColor(Color.parseColor("#8FF174"))
- }
- else{
- binding.cardViewPause.setCardBackgroundColor(Color.parseColor("#FF3F3F"))
- }
- }
-
- fun saveBlock(b: String) {
- val edit = prefBlock?.edit()
- edit?.putString("b", b)
- edit?.apply()
- Block = b
- }
-
- fun clearBlock() {
- val edit = prefBlock?.edit()
- edit?.clear()
- edit?.apply()
- Block = ""
- }
- fun savePauseDay(pd: String) {
- val edit = prefPauseDay?.edit()
- edit?.putString("pd", pd)
- edit?.apply()
- PauseDay = pd
- }
- fun clearPauseDay() {
- val edit = prefPauseDay?.edit()
- edit?.clear()
- edit?.apply()
- PauseDay = ""
- }
-
- override fun onDestroy() {
- super.onDestroy()
-
- clearUserDoctorToken()
- }
-
-
-
- override fun onResume() {
- super.onResume()
- if(FIO ==""){
- visibleLoad()
- binding.txtSurname.setText("")
- binding.txtName.setText("")
- binding.txtPatronymic.setText("")
- binding.txtEmail.setText("")
- binding.txtDiagnoz.setText("")
- }
- //Цвет кнопок в зависимоти паузы и блока
- colorBtnBlockPause()
- }
-
- //Диалоговое окно
- private fun createAlеrtDialogExitAuth() {
- val builder = AlertDialog.Builder(requireContext())
- builder.setTitle("Выход")
- builder.setMessage("Вы уверены что хотите выйти из аккаунта")
- builder.setNegativeButton("Назад") { dialogInterface, i ->
-
- }
- builder.setPositiveButton("Подтвердить") { dialogInterface, i ->
- clearUserDoctorToken()
- val intetn = Intent(requireContext(), SettingActivity::class.java)
- activity?.finish()
- startActivity(intetn)
- }
- builder.show()
- }
- //Фиксируем токен врача
- private fun data_prefDoctorPatientToken() {
- prefUserDoctorToken = activity?.getSharedPreferences("UserDoctorToken", Context.MODE_PRIVATE)
- UserDoctorToken = prefUserDoctorToken?.getString("userdoctortoken", "")!! //Передаем при запуске страницы в counter данные по ключевому слову "counter", вс лучае если будет пусто то передастся 0
- if(UserDoctorToken == ""){
- val intetn = Intent(requireContext(), AuthDoctorActivity::class.java)
- activity?.finish()
- startActivity(intetn)
- }
- }
-
- //Записываем число
- fun saveUserDoctorToken(userdoctortoken: String) {
- val editer = prefUserDoctorToken?.edit()
- editer?.putString("userdoctortoken", userdoctortoken)
- editer?.apply()
- UserDoctorToken = userdoctortoken
- }
- //Функция очистки данных
- fun clearUserDoctorToken() {
- val edit = prefUserDoctorToken?.edit()
- edit?.clear()
- edit?.apply()
- UserDoctorToken = ""
- }
-
- //Получение из базы данных пациента
- private fun outputOfDataPatient() {
- Log.i("111","111")
- visibleLoad()
- Log.i("122","122")
- val db = MainDB.getDB(requireContext())
- db.getDaoPatient().getAuthItemPatientOutput(EmailPatient).asLiveData().observe(requireActivity()) { itList ->
- itList.forEach {
- val item = PatientModel(
- it.id.toString(),
- it.name,
- it.surname,
- it.patronymic,
- it.diagnosis,
- it.number_of_courses.toString(),
- it.login,
- it.password,
- )
- model.liveSettingPatientCurrent.value = item
- }
- }
- }
-
- //ВЫводим данные пациента
- private fun liveSettingPatientCurrent() = with(binding) {
- model.liveSettingPatientCurrent.observe(viewLifecycleOwner) {
- Log.i("333","333")
- binding.txtSurname.setText(it.surname)
- binding.txtName.setText(it.name)
- binding.txtPatronymic.setText(it.patronymic)
- binding.txtEmail.setText(it.login)
- binding.txtDiagnoz.setText(it.diagnosis)
- visible5()
- }
-
-
- }
-
- //Экран загрузки
- fun visibleLoad() {
- Log.i("222","222")
- binding.cardLoad.visibility = View.VISIBLE
- binding.CLMainSetting.visibility = View.VISIBLE
- }
- //Экран с данными пациента и кнопками
- fun visible5() {
- Log.i("444","444")
- binding.cardLoad.visibility = View.GONE
- binding.CLMainSetting.visibility = View.VISIBLE
- }
-
-
-
- //Экран о пациенте
- fun visible3() {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLMainSettinDoctor,MainPatientFragment.newInstance())?.addToBackStack(null)?.commit()
- }
-
- companion object {
- fun newInstance() = MainSettingDoctorFragment()
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Admin/fragmrntAdmin/SettingDoctor/PatientSportFragment.kt b/app/src/main/java/com/example/rehabilitation/Admin/fragmrntAdmin/SettingDoctor/PatientSportFragment.kt
deleted file mode 100644
index 13c1f3b..0000000
--- a/app/src/main/java/com/example/rehabilitation/Admin/fragmrntAdmin/SettingDoctor/PatientSportFragment.kt
+++ /dev/null
@@ -1,1453 +0,0 @@
-package com.example.rehabilitation.Admin.fragmrntAdmin.SettingDoctor
-
-import android.annotation.SuppressLint
-import android.content.Context
-import android.content.SharedPreferences
-import android.graphics.Color
-import android.os.Bundle
-import android.util.Log
-import androidx.fragment.app.Fragment
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import android.widget.Toast
-import androidx.fragment.app.activityViewModels
-import androidx.lifecycle.asLiveData
-import androidx.recyclerview.widget.GridLayoutManager
-import com.example.admin.Toast.showCustomInfoToast
-import com.example.admin.Toast.showCustomNiceToast
-import com.example.rehabilitation.Block
-import com.example.rehabilitation.CursDayNull
-import com.example.rehabilitation.DayAfter
-import com.example.rehabilitation.DayBefore
-import com.example.rehabilitation.FIO
-import com.example.rehabilitation.PauseDay
-import com.example.rehabilitation.R
-import com.example.rehabilitation.Room.Item
-import com.example.rehabilitation.Room.ItemDaySport
-import com.example.rehabilitation.Room.ItemImage
-import com.example.rehabilitation.Room.ItemSportCategory
-import com.example.rehabilitation.Room.MainDB
-import com.example.rehabilitation.SportCursDay
-import com.example.rehabilitation.SportCursDayNumber
-import com.example.rehabilitation.SportDateStart
-import com.example.rehabilitation.SportMaxCount
-import com.example.rehabilitation.SportPlusCount
-import com.example.rehabilitation.SportUserTrue
-import com.example.rehabilitation.countCategory
-import com.example.rehabilitation.databinding.FragmentPatientSportBinding
-import com.example.rehabilitation.model_adapter.Day.DayListModel
-import com.example.rehabilitation.model_adapter.Day.DayListOneModel
-import com.example.rehabilitation.model_adapter.Edit.EditSportAdapter
-import com.example.rehabilitation.model_adapter.Edit.EditSportModel
-import com.example.rehabilitation.model_adapter.Image.Category.CountNameCategoryModel
-import com.example.rehabilitation.prefBlock
-import com.example.rehabilitation.prefCursDangerDayAfter
-import com.example.rehabilitation.prefCursDangerDayBefore
-import com.example.rehabilitation.prefCursDay
-import com.example.rehabilitation.prefCursDayNull
-import com.example.rehabilitation.prefDayAfter
-import com.example.rehabilitation.prefDayBefore
-import com.example.rehabilitation.prefFIO
-import com.example.rehabilitation.prefPauseDay
-import com.example.rehabilitation.prefSport
-import com.example.rehabilitation.prefSportCursDayNumber
-import com.example.rehabilitation.prefSportDateStart
-import com.example.rehabilitation.prefSportMaxCount
-import com.example.rehabilitation.prefSportPlusCount
-import com.example.sqlitework.dip.MainViewModel
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.GlobalScope
-import kotlinx.coroutines.launch
-import java.time.LocalDate
-
-
-class PatientSportFragment : Fragment(), EditSportAdapter.Listener, EditSportAdapter.ListenerEdit {
- private lateinit var binding: FragmentPatientSportBinding
-
- private val model: MainViewModel by activityViewModels()//Инициализировали класс
- lateinit var editAdapter: EditSportAdapter
-
- var SportCursDayDangerBefore = 0
- var SportCursDayDangerAfter = 0
-
- var visibleListCyrs = false
-
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
- binding = FragmentPatientSportBinding.inflate(layoutInflater, container, false)
- return binding.root
- }
-
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
-
- liveListDaySportOneCurrent()
-
- prefSport = activity?.getSharedPreferences("SportUserTrue", Context.MODE_PRIVATE)
- SportUserTrue = prefSport?.getInt("spt", 0)!!
-
- //Какой сегодня курс
- prefSportCursDayNumber = activity?.getSharedPreferences("SportCursDayNumber", Context.MODE_PRIVATE)
- SportCursDayNumber = prefSportCursDayNumber?.getInt("scdn", 0)!!
-
-
- prefCursDay = activity?.getSharedPreferences("SportCursDay", Context.MODE_PRIVATE)
- SportCursDay = prefCursDay?.getInt("scd", 0)!!
-
- prefCursDangerDayBefore = activity?.getSharedPreferences("CursDangerDayBefore", Context.MODE_PRIVATE)
- SportCursDayDangerBefore = prefCursDangerDayBefore?.getInt("cddb", 0)!!
- prefCursDangerDayAfter = activity?.getSharedPreferences("CursDangerDayAfter", Context.MODE_PRIVATE)
- SportCursDayDangerAfter = prefCursDangerDayAfter?.getInt("cdda", 0)!!
-
- prefCursDayNull = activity?.getSharedPreferences("CursDayNull", Context.MODE_PRIVATE)
- CursDayNull = prefCursDayNull?.getString("cdn", "")!!
-
- //Для пауз и блоков
- prefPauseDay = activity?.getSharedPreferences("PauseDay", Context.MODE_PRIVATE)
- PauseDay = prefPauseDay?.getString("pd", "")!!
- prefBlock = activity?.getSharedPreferences("Block", Context.MODE_PRIVATE)
- Block = prefBlock?.getString("b", "")!!
-
- //ДАнные пациента
- prefFIO = activity?.getSharedPreferences("FIO", Context.MODE_PRIVATE)
- FIO = prefFIO?.getString("fio", "")!!
-
- //Дата старта тренировки
- prefSportDateStart = activity?.getSharedPreferences("SportDateStart", Context.MODE_PRIVATE)
- SportDateStart = prefSportDateStart?.getString("sportdatestart", "")!!
-
-
- binding.txtPatientSportandFIO.setText("Настройка курса для \n ${FIO}")
-
- //Выход из настроек спорта пациента
- binding.btnExitPatientSport.setOnClickListener {
- visible3()
- }
-
- binding.btnExitEditSportPatient.setOnClickListener {
- visible4()
- }
-
- binding.btnExitEditSportVisible.setOnClickListener {
- visible4()
- }
-
- binding.btnEdit.setOnClickListener {
- itemDAySportOne()
- }
-
- //Цвет кнопок в зависимоти паузы и блока
- colorBtnBlockPause()
-
- binding.btnBlockFalse.setOnClickListener {
- if(FIO !=""){
- if(Block<=LocalDate.now().toString() || Block == ""){
- saveBlock(LocalDate.now().plusDays(3).toString())
- Toast(requireContext()).showCustomInfoToast("Курс заблокирован", requireActivity())
- binding.btnBlockFalse.setCardBackgroundColor(Color.parseColor("#FF3F3F"))
- }
- else{
- clearBlock()
- Toast(requireContext()).showCustomInfoToast("Курс разблокирован", requireActivity())
- binding.btnBlockFalse.setCardBackgroundColor(Color.parseColor("#8FF174"))
-
- }
- }
- else{
- Toast(requireContext()).showCustomInfoToast("Создайте аккаунт пациенту", requireActivity())
- }
-
- }
-
- binding.btnPauseFalse.setOnClickListener {
- if(FIO !=""){
- if(PauseDay<=LocalDate.now().toString() || PauseDay == ""){
- savePauseDay(LocalDate.now().plusDays(1).toString())
- Toast(requireContext()).showCustomInfoToast("Пауза на 3 дня", requireActivity())
- binding.btnPauseFalse.setCardBackgroundColor(Color.parseColor("#FF3F3F"))
- }
- else{
- clearPauseDay()
- Toast(requireContext()).showCustomInfoToast("Пауза снята", requireActivity())
- binding.btnPauseFalse.setCardBackgroundColor(Color.parseColor("#8FF174"))
- }
- }
- else{
- Toast(requireContext()).showCustomInfoToast("Создайте аккаунт пациенту", requireActivity())
- }
-
- }
-
-
- sportAddPacient()
- createCyrs()
- liveCountNameCategoryCurrent()
-
- model.liveEditSportList.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
- editAdapter.submitList(it)//Напрямую переадем созданный список в adapter(ProductAdapter)
- }
- initRcViewDay()
- liveEditSportCurrent()
- }
-
- override fun onResume() {
- super.onResume()
- //Цвет кнопок в зависимоти паузы и блока
- colorBtnBlockPause()
- }
-
- private fun colorBtnBlockPause() {
- //Цвет кнопки в зависимоти от включен ли блок
- if(Block==""){
- binding.btnBlockFalse.setCardBackgroundColor(Color.parseColor("#8FF174"))
- }
- else{
- binding.btnBlockFalse.setCardBackgroundColor(Color.parseColor("#FF3F3F"))
- }
-
- //Цвет кнопки в зависимоти от включена ли пацза
- if(PauseDay==""){
- binding.btnPauseFalse.setCardBackgroundColor(Color.parseColor("#8FF174"))
- }
- else{
- binding.btnPauseFalse.setCardBackgroundColor(Color.parseColor("#FF3F3F"))
- }
- }
-
- private fun addSportCyrs() {
-
-// if (SportUserTrue == 0) {
-// visibleLoad()
-// val db = MainDB.getDB(requireContext())
-// db.getDaoSportCategory().getAllItemsSportCategoryCountSport(category).asLiveData()
-// .observe(requireActivity()) { itCount ->
-// itCount.forEach() {
-// val item = CountNameCategoryModel(
-// it.count.toString(),
-// it.image.toString()
-// )
-// model.liveCountNameCategoryCurrent.value = item
-// }
-// }
-// Thread {
-// //Создаем карточки на 30 дней
-// for (i in 1..30) {
-// val item = Item(
-// null,
-// LocalDate.now().plusDays(i.toLong()).toString(),
-// //getDateTomorrow(i, "c"),//"11/11/2023",
-// i.toString(),
-// 0
-// )
-// db.getDao().insertItem(item)
-// }
-// }.start()
-//
-// } else {
-// Toast(requireContext()).showCustomInfoToast("Удалите предыдуший курс", requireActivity())
-// }
-
- }
-
- fun itemDAySportOne() {
-// visibleLoad()
-// val db = MainDB.getDB(requireContext())
-// db.getDaoDaySport().getItemDaySportRandomOne().asLiveData()
-// .observe(requireActivity()) { itCount ->
-// itCount.forEach() {
-// val item = DayListOneModel(
-// it.day,
-// )
-// model.liveListDaySportOneCurrent.value = item
-// }
-// }
- }
-
-
- private fun liveListDaySportOneCurrent() = with(binding) {
- model.liveListDaySportOneCurrent.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
- addSportList(it.day)
- }
- }
-
- //Функции для добавления курса тренеровок пациенту и офиска старого или неудачного курса
- @SuppressLint("SuspiciousIndentation")
- private fun sportAddPacient() {
- binding.btnCardC.setOnClickListener {
- //visible8()
- //addSportCategory("b")
- addSportCategory("c")
- }
- binding.btnCardB.setOnClickListener {
-
- //addSportCategory("b")
- addSportCategory("b")
- }
- binding.btnCardJ.setOnClickListener {
-// visible8()
-// //addSportCategory("j")
- addSportCategory("j")
- }
-
- binding.btnAddCyrc1.setOnClickListener {
- if(FIO !=""){
- addSportCategoryDay()
- binding.btnAddCyrc1.setCardBackgroundColor(Color.parseColor("#FD5ADC7B"))
-
- }
- else{
- Toast(requireContext()).showCustomInfoToast("Создайте аккаунт пациенту", requireActivity())
- }
- }
-
-
- if(SportUserTrue == 0){
- binding.btnAddCyrc1.setCardBackgroundColor(Color.parseColor("#BFBFBF"))
- }
- else{
- binding.btnAddCyrc1.setCardBackgroundColor(Color.parseColor("#FD5ADC7B"))
- }
-
- if(visibleListCyrs == true){
- binding.cardViewLIstSportCurs.visibility = View.VISIBLE
- }
- else{
- binding.cardViewLIstSportCurs.visibility = View.GONE
- }
-
- binding.btnAddListCyrc.setOnClickListener {
- if (visibleListCyrs == false){
- binding.cardViewLIstSportCurs.visibility = View.VISIBLE
- visibleListCyrs = true
- }
- else{
- binding.cardViewLIstSportCurs.visibility = View.GONE
- visibleListCyrs = false
- }
- }
-
- //Очистка курса
- binding.cvClearDayUser.setOnClickListener {
- if(FIO !=""){
- if (SportUserTrue == 1) {
- val db = MainDB.getDB(requireContext())
- Thread {
- db.getDaoDaySport().deleteItemDaySport()
- db.getDao().deleteItem()
- db.getDaoQB().deleteBQ()
- db.getDaoQA().deleteAQ()
- }.start()
- clearDate()
- clearSportCursDay()
- clearSportCursDayDangerBefore()
- clearSportCursDayDangerAfter()
- clearPauseDay()
- clearBlock()
- clearDayBefore()
- clearDayAfter()
- clearSportPlusCount()
- clearSportMaxCount()
- clearSportDateStart()
- clearCursDayNumber()
- binding.btnAddCyrc1.setCardBackgroundColor(Color.parseColor("#BFBFBF"))
- Log.i("SportUserTrue","${SportUserTrue}")
- Log.i("SportCursDay","${SportCursDay}")
- Log.i("SportCursDayDangerBefore","${SportCursDayDangerBefore}")
- Log.i("SportCursDayDangerAfter","${SportCursDayDangerAfter}")
- Log.i("Block", Block.toString())
- Log.i("Pause","${PauseDay}")
- Log.i("DayAfter", DayAfter.toString())
- Log.i("DayBefore","${DayBefore}")
- Log.i("SportMaxCount", SportMaxCount.toString())
-
-
- Toast(requireContext()).showCustomInfoToast(
- "Курс пациента был очишен",
- requireActivity()
- )
-
- //Очишаем хранилища
-// clearNameSport()
-// clearCountSport()
-// clearQA_QB()
- } else {
- Toast(requireContext()).showCustomInfoToast(
- "У пациента нету курса",
- requireActivity()
- )
- }
- }
- else{
- Toast(requireContext()).showCustomInfoToast("Создайте аккаунт пациенту", requireActivity())
- }
-
- }
-
- }
-
- fun saveCursDayNumber(scdn: Int) {
- val edit = prefSportCursDayNumber?.edit()
- edit?.putInt("scdn", scdn)
- edit?.apply()
- SportCursDayNumber = scdn
- }
- fun clearCursDayNumber() {
- val edit = prefSportCursDayNumber?.edit()
- edit?.clear()
- edit?.apply()
- SportCursDayNumber = 0
- }
-
- fun saveSportDateStart(sportdatestart: String) {
- val edit = prefSportDateStart?.edit()
- edit?.putString("sportdatestart", sportdatestart)
- edit?.apply()
- SportDateStart = sportdatestart
- }
- fun clearSportDateStart() {
- val edit = prefSportDateStart?.edit()
- edit?.clear()
- edit?.apply()
- SportDateStart = "0"
- }
-
- fun saveSportPlusCount(spc: Int) {
- val edit = prefSportPlusCount?.edit()
- edit?.putInt("spc", spc)
- edit?.apply()
- SportPlusCount = spc
- }
- fun clearSportPlusCount() {
- val edit = prefSportPlusCount?.edit()
- edit?.clear()
- edit?.apply()
- SportPlusCount = 0
- }
-
-
- fun saveSportMaxCount(smc: Int) {
- val edit = prefSportMaxCount?.edit()
- edit?.putInt("smc", smc)
- edit?.apply()
- SportPlusCount = smc
- }
-
- fun clearSportMaxCount() {
- val edit = prefSportMaxCount?.edit()
- edit?.clear()
- edit?.apply()
- SportMaxCount = 0
- }
-
- fun clearDayBefore() {
- val edit = prefDayBefore?.edit()
- edit?.clear()
- edit?.apply()
- DayBefore = ""
- }
- fun clearDayAfter() {
- val edit = prefDayAfter?.edit()
- edit?.clear()
- edit?.apply()
- DayAfter = ""
- }
- fun saveBlock(b: String) {
- val edit = prefBlock?.edit()
- edit?.putString("b", b)
- edit?.apply()
- Block = b
- }
-
- fun clearBlock() {
- val edit = prefBlock?.edit()
- edit?.clear()
- edit?.apply()
- Block = ""
- }
- fun savePauseDay(pd: String) {
- val edit = prefPauseDay?.edit()
- edit?.putString("pd", pd)
- edit?.apply()
- PauseDay = pd
- }
- fun clearPauseDay() {
- val edit = prefPauseDay?.edit()
- edit?.clear()
- edit?.apply()
- PauseDay = ""
- }
-
- //Ести ли курс
- fun saveDate(spt: Int) {
- val edit = prefSport?.edit()
- edit?.putInt("spt", spt)
- edit?.apply()
- SportUserTrue = spt
- }
- fun clearDate() {
- val edit = prefSport?.edit()
- edit?.clear()
- edit?.apply()
- SportUserTrue = 0
- }
-
- //Какой день
- fun saveSportCursDay(scd: Int) {
- val edit = prefCursDay?.edit()
- edit?.putInt("scd", scd)
- edit?.apply()
- SportCursDay = scd
- }
- fun clearSportCursDay() {
- val edit = prefCursDay?.edit()
- edit?.clear()
- edit?.apply()
- SportCursDay = 0
- }
- fun saveSportCursDayDangerBefore(cddb: Int) {
- val edit = prefCursDangerDayBefore?.edit()
- edit?.putInt("cddb", cddb)
- edit?.apply()
- SportCursDayDangerBefore = cddb
- }
-
- fun clearSportCursDayDangerBefore() {
- val edit = prefCursDangerDayBefore?.edit()
- edit?.clear()
- edit?.apply()
- SportCursDayDangerBefore = 0
- }
- fun saveSportCursDayDangerAfter(cdda: Int) {
- val edit = prefCursDangerDayAfter?.edit()
- edit?.putInt("cdda", cdda)
- edit?.apply()
- SportCursDayDangerAfter = cdda
- }
-
- fun clearSportCursDayDangerAfter() {
- val edit = prefCursDangerDayAfter?.edit()
- edit?.clear()
- edit?.apply()
- SportCursDayDangerAfter = 0
- }
-
-
- fun getDaySport(
- i: Int,
- description: String,
- categoryImage: String,
- categorySport: String,
- visible: Int,
- article: String,
- check: Int,
- ): String {
- val db = MainDB.getDB(requireContext())
- val tomorrow = LocalDate.now().plusDays(i.toLong())
- val item = ItemSportCategory(null, i.toString(), description, "3", categoryImage, categorySport, article,check)
- Thread {
- db.getDaoSportCategory().insertItemSportCategory(item)
- }.start()
-
- return tomorrow.toString()
- }
-
-
- //Экран создания пациенат
- fun visible8() {
- binding.CLPatientSport.visibility = View.GONE
- binding.CLLoad.visibility = View.GONE
- binding.CLEditSportPatient.visibility = View.VISIBLE
- //addSportListView()
- }
-
- //Функция для вывода списка
- private fun addSportListView() {
-
- }
-
- //Функция создания тренеровок и фотографий
- private fun createCyrs() {
- binding.btnImage.setOnClickListener {
- createImageBD()
- }
-
- binding.btnCategorySport.setOnClickListener {
- createSportCategory()
- }
- }
-
- //Экран о пациенте
- fun visible3() {
- activity?.supportFragmentManager?.beginTransaction()
- ?.replace(R.id.CLMainSettinDoctor, MainPatientFragment.newInstance())?.addToBackStack(null)?.commit()
- }
-
- private fun liveCountNameCategoryCurrent() = with(binding) {
- model.liveCountNameCategoryCurrent.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
- countCategory = it.count
- //getDateTomorrow(countCategory.toInt(), it.name)
- getDateTomorrow()
-
- }
- }
-
- //ЗАполняем списки о дням и на месяц
- fun getDateTomorrow() {
- val db = MainDB.getDB(requireContext())
- var day = 1
- var tomorrow = LocalDate.now()
-
-
- val arr1 = arrayOf("c1","c2","c3","c4","c8","c10","c14","c16","c15","c7","b1","b2","b3","j1","j2","j4","j3","j5","j6","j8")
- for (j in 0..19) {
- val item = ItemDaySport(
- null,
- tomorrow.toString(),
- arr1[j],
- 0,
- 1
- )
- Thread {
- db.getDaoDaySport().insertItemDaySport(item)
- }.start()
- }
-
- val arr2 = arrayOf("c1","c2","c3","c4","c8","c9","c5","c10","c14","c16","c15","c12","c7","b1","b2","b3","j1","j2","j4","j3","j5","j6","j8")
-
- day++
- tomorrow = LocalDate.now().plusDays(day.toLong())
- for (j in 0..22) {
- val item = ItemDaySport(
- null,
- tomorrow.toString(),
- arr2[j],
- 0,
- 1
- )
- Thread {
- db.getDaoDaySport().insertItemDaySport(item)
- }.start()
- }
-
- val arr3 = arrayOf("c1","c2","c3","c4","c8","c9","c5","c6","c14","c16","c15","c12","c13","c10","c7","b1","b2","b3","j1","j2","j4","j3","j5","j6","j8")
- day++
- tomorrow = LocalDate.now().plusDays(day.toLong())
- for (j in 0..24) {
- val item = ItemDaySport(
- null,
- tomorrow.toString(),
- arr3[j],
- 0,
- 1
- )
- Thread {
- db.getDaoDaySport().insertItemDaySport(item)
- }.start()
- }
-
-
- val arr4 = arrayOf("c1","c2","c3","c4","c8","c9","c5","c6","c14","c16","с17","c18","с15","с12","c13","c10","c7","b1","b2","b3","j1","j2","j4","j3","j5","j6","j8")
- day++
- tomorrow = LocalDate.now().plusDays(day.toLong())
- for (j in 0..26) {
- val item = ItemDaySport(
- null,
- tomorrow.toString(),
- arr4[j],
- 0,
- 1
- )
- Thread {
- db.getDaoDaySport().insertItemDaySport(item)
- }.start()
- }
-
- val arr5 = arrayOf("c1","c2","c3","c4","c8","c9","c5","c6","c14","c16","с17","c18","с15","с12","c13","c10","c7","b1","b2","b3","b4","j1","j2","j4","j3","j5","j6","j8","j9")
- day++
- tomorrow = LocalDate.now().plusDays(day.toLong())
- for (j in 0..28) {
- val item = ItemDaySport(
- null,
- tomorrow.toString(),
- arr5[j],
- 0,
- 1
- )
- Thread {
- db.getDaoDaySport().insertItemDaySport(item)
- }.start()
- }
-
- val arr6 = arrayOf("c1","c2","c3","c4","c8","c9","c5","c6","c14","c16","с17","c18","с15","с12","c13","c10","c7","b1","b2","b3","b4","j1","j2","j4","j3","j5","j6","j8","j10","j9")
- day++
- tomorrow = LocalDate.now().plusDays(day.toLong())
- for (j in 0..29) {
- val item = ItemDaySport(
- null,
- tomorrow.toString(),
- arr6[j],
- 0,
- 1
- )
- Thread {
- db.getDaoDaySport().insertItemDaySport(item)
- }.start()
- }
-
-
- val arr7 = arrayOf("c1","c2","c3","c4","c8","c9","c5","c6","c7","c10","c14","c16","с17","c18","с15","с12","c13","c11","c7","b1","b2","b3","b4","j1","j2","j4","j3","j5","j6","j8","j10","j9")
- day++
- tomorrow = LocalDate.now().plusDays(day.toLong())
- for (i in 1..7) {
- for (j in 0..31) {
- val item = ItemDaySport(
- null,
- tomorrow.toString(),
- arr7[j],
- 0,
- 1
- )
- Thread {
- db.getDaoDaySport().insertItemDaySport(item)
- }.start()
-
- }
- day++
- tomorrow = LocalDate.now().plusDays(day.toLong())
- }
-
-
- //saveCountSport(countCategory.toString())
- saveDate(0)
- Log.i("SportUserTrue", SportUserTrue.toString())
- Toast(requireContext()).showCustomNiceToast("Курс был добавлен", requireActivity())
-
- }
-
- //Экран тренировок пациента
- fun visible4() {
- binding.CLPatientSport.visibility = View.VISIBLE
- binding.CLLoad.visibility = View.GONE
- binding.CLEditSportPatient.visibility = View.GONE
- }
-
-
- fun addSportCategoryDay() {
-
- if (SportUserTrue == 0) {
- visibleLoad()
- val db = MainDB.getDB(requireContext())
- Thread {
- //Создаем карточки на 30 дней
- for (i in 1..15) {
- val item = Item(
- null,
- "",
- //LocalDate.now().plusDays(i.toLong()).toString(),
- //getDateTomorrow(i, "c"),//"11/11/2023",
- i.toString(),
- 0
- )
- db.getDao().insertItem(item)
- }
- }.start()
-
- saveSportDateStart(LocalDate.now().toString())
- saveDate(1)
- saveSportCursDay(0)
- Log.i("SportUserTrue","${SportUserTrue}")
- Log.i("SportCursDay","${SportCursDay}")
- Log.i("SportCursDayDangerBefore","${SportCursDayDangerBefore}")
- Log.i("SportCursDayDangerAfter","${SportCursDayDangerAfter}")
- //addSportCategoryCyrs("1cbjSport07082003")
- visible4()
- Toast(requireContext()).showCustomNiceToast("Курс был добавлен", requireActivity())
- } else {
- Toast(requireContext()).showCustomInfoToast(
- "Удалите предыдуший курс",
- requireActivity()
- )
- }
-
- }
-
- fun addSportCategoryCyrs(article: String) {
- val articleArr = arrayOf(
- "1cbjSport07082003",
- "2cbjSport07082003",
- "3cbjSport07082003",
- "4cbjSport07082003",
- "5cbjSport07082003",
- "6cbjSport07082003",
- "7cbjSport07082003"
- )
- if (SportUserTrue == 0) {
- visibleLoad()
-// for (i in 0..6) {
-// val db = MainDB.getDB(requireContext())
-// db.getDaoSportCategory().getSportArticle(articleArr[i]).asLiveData()
-// .observe(requireActivity()) { itCount ->
-// itCount.forEach() {
-// val item = CountNameCategoryModel(
-// it.count.toString(),
-// it.category.toString(),
-// )
-// model.liveCountNameCategoryCurrent.value = item
-// }
-// }
-// }
- getDateTomorrow()
- } else {
- Toast(requireContext()).showCustomInfoToast(
- "Удалите предыдуший курс",
- requireActivity()
- )
- }
-
- }
-
- private fun addSportCategory(category: String) {
-
- if (SportUserTrue == 0) {
- visibleLoad()
- val db = MainDB.getDB(requireContext())
- db.getDaoSportCategory().getAllItemsSportCategoryCountSport(category).asLiveData()
- .observe(requireActivity()) { itCount ->
- itCount.forEach() {
- val item = CountNameCategoryModel(
- it.count.toString(),
- it.image.toString()
- )
- model.liveCountNameCategoryCurrent.value = item
- }
- }
- Thread {
- //Создаем карточки на 30 дней
- for (i in 1..30) {
- val item = Item(
- null,
- LocalDate.now().plusDays(i.toLong()).toString(),
- //getDateTomorrow(i, "c"),//"11/11/2023",
- i.toString(),
- 0
- )
- db.getDao().insertItem(item)
- }
- }.start()
-
- } else {
- Toast(requireContext()).showCustomInfoToast(
- "Удалите предыдуший курс",
- requireActivity()
- )
- }
-
- }
-
- private fun liveEditSportCurrent() = with(binding) {
- model.liveEditSportCurrent.observe(requireActivity()) {//viewLifecycleOwner - следит за циклом жизни fragment
-
- }
- }
-
-
- override fun onClickExceptionOrder(item: EditSportModel) {
-
- }
-
- override fun onClickEditCard(item: EditSportModel) {
- visibleLoad()
- val date = LocalDate.now().toString()
- val db = MainDB.getDB(requireContext())
- if (item.visible == 0) {
- GlobalScope.launch(Dispatchers.IO) {
- db.getDaoDaySport().updateVisibleDaySportTrue(item.category, date)
- }
- //visible8()
- itemDAySportOne()
- Toast(requireContext()).showCustomInfoToast(
- "Упражнение включено",
- requireActivity()
- )
-
- } else if (item.visible == 1) {
- GlobalScope.launch(Dispatchers.IO) {
- db.getDaoDaySport().updateVisibleDaySportFalse(item.category, date)
- }
- //visible8()
- itemDAySportOne()
- Toast(requireContext()).showCustomInfoToast(
- "Упражнение отключено",
- requireActivity()
- )
- }
- }
-
-// private fun addListModelCardsDay(day: String) {
-//
-// val db = MainDB.getDB(requireContext())
-// val list = ArrayList()
-// db.getDaoDaySport().getAllItemDaySport(day).asLiveData()
-// .observe(requireActivity()) { itList ->
-// var number = 1;
-//
-// itList.forEach {
-// Log.d("123", it.category)
-// //db.getDaoSportCategory().getAllItemsSportCategory(it.category).asLiveData().observe(requireActivity()){itSport->
-// val itemDay = EditSportModel(
-// it.id.toString(),
-// it,
-//
-// day,
-// it.category.toString(),
-// it.check.toString(),
-// )
-// list.add(itemDay)//Передали заполненый список
-// model.liveEditSportList.value = list
-// //}
-// }
-//
-// Log.d("sadas", list.toString())
-// }
-// visible8()
-// }
-
- //Функция для вывода списка
- private fun addSportList(date: String) {
- val db = MainDB.getDB(requireContext())
- val list = ArrayList()
- var number = 1
-
- db.getDaoDaySport().getListJoinDaySportAndSportCategory(date).asLiveData()
- .observe(requireActivity()) { itList ->
-
- itList.forEach {
- Log.d("123", it.category)
- val itemDay = EditSportModel(
- number++,
- it.day,
- it.category,
- it.check,
- it.visible,
- it.desc,
- it.categoryImage,
- false
- )
- list.add(itemDay)//Передали заполненый список
- model.liveEditSportList.value = list
- //}
- }
- }
- visible8()
- }
-
- private fun initRcViewDay() = with(binding) {
- rcViewSportEdit.layoutManager =
- GridLayoutManager(requireContext(), 1)//По вертикали будет выводить по умолчанию
- editAdapter = EditSportAdapter(this@PatientSportFragment, this@PatientSportFragment)
- rcViewSportEdit.adapter = editAdapter
- }
-
- //Экран создания пациенат
- fun visibleLoad() {
- binding.CLLoad.visibility = View.VISIBLE
- binding.CLPatientSport.visibility = View.GONE
- binding.CLEditSportPatient.visibility = View.GONE
- }
-
- //Спина
- val c1 = arrayOf("c1_1", "c1_2")
- val c2 = arrayOf("c2_1", "c2_2")
- val c3 = arrayOf("c3_1", "c3_2")
- val c4 = arrayOf("c4_1", "c4_2")
- val c5 = arrayOf("c5_1", "c5_2")
- val c6 = arrayOf("c6_1", "c6_2", "c6_3")
- val c7 = arrayOf("c7_1")
- val c8 = arrayOf("c8_1", "c8_2")
- val c9 = arrayOf("c9_1", "c9_2", "c9_3")
- val c10 = arrayOf("c10_1", "c10_2", "c10_3")
- val c11 = arrayOf("c11_1")
- val c12 = arrayOf("c12_1", "c12_2")
- val c13 = arrayOf("c13_1", "c13_2")
- val c14 = arrayOf("c14_1", "c14_2")
- val c15 = arrayOf("c15_1", "c15_2")
- val c16 = arrayOf("c16_1", "c16_2")
- val c17 = arrayOf("c17_1", "c17_2")
- val c18 = arrayOf("c18_1", "c18_2", "c18_3")
-
- //Бок
- val b1 = arrayOf("b1_1", "b1_2")
- val b2 = arrayOf("b2_1", "b2_2")
- val b3 = arrayOf("b3_1", "b3_2", "b3_3")
- val b4 = arrayOf("b4_1", "b4_2")
-
- //Живот
- val j1 = arrayOf("j1_1", "j1_2")
- val j2 = arrayOf("j2_1", "j2_2")
- val j3 = arrayOf("j3_1", "j3_2")
- val j4 = arrayOf("j4_1", "j4_2", "j4_3")
- val j5 = arrayOf("j5_1")
- val j6 = arrayOf("j6_1", "j6_2", "j6_3", "j6_4")
- val j7 = arrayOf("j7_1", "j7_2", "j7_3", "j7_4", "j7_5", "j7_6", "j7_7")
- val j8 = arrayOf("j8_1", "j8_2", "j8_3")
- val j9 = arrayOf("j9_1")
- val j10 = arrayOf("j10_1", "j10_2", "j10_3")
- val j11 = arrayOf("j11_1", "j11_2", "j11_3", "j11_4")
- val j12 = arrayOf("j12_1", "j12_2")
-
- val C1 = "Исходное положение, положить руки вверх.\n" +
- "Счет \n" +
- "1-2-3 - потянуться руками вверх, а пятками — в противоположную сторону;\n" +
- "4 – Расслабиться\n" +
- "Повторить 5—6 раз. Дыхание свободное.\n"
- val C2 =
- "Исходное положение, руки лежат под головой или направлены вниз, вдоль туловища.\n" +
- "Счет\n" +
- "1 - поднять одну прямую ногу на 45°;\n" +
- "2-3 - удерживать ее;\n" +
- "4 - опустить в исходное положение.\n" +
- "То же повторить с другой ноги. С каждой ноги повторить по 4—б раз. Дыхание свободное.\n"
- val C3 = "Исходное положение, руки лежат вверху.\n" +
- "Счет\n" +
- "1 - поднять вперед прямые правую руку и левую ногу; \n" +
- "2- опустить их в исходное положение;\n" +
- "3 - поднять вперед левую руку и правую ногу;\n" +
- "4 - вернуться в исходное положение.\n" +
- "Повторить 4-6 раз с каждой стороны, опустить их в исходное положение;\n"
- val C4 =
- "Исходное положение, руки лежат под головой или направлены вниз, вдоль туловища.\n" +
- "Счет\n" +
- "1 – напрячь оба бедра, как при выпрямлении колена;\n" +
- "2-3 – удерживать в напряжении;\n" +
- "4 - расслабиться.\n" +
- "Повторить 6-10 раз. Дыхание произвольное. При ампутации на уровне голени можно подложить под нижнюю треть бедра валик, если есть сгибательная контрактура колена, или если пациент так лучше ощущает работу мышц.\n"
- val C5 =
- "Исходное положение, руки лежат вниз вдоль туловища, под культю и под аналогичный сегмент сохранной конечности подложить мячи. \n" +
- "Счет\n" +
- "1 — опереться на ноги, поднять таз вверх;\n" +
- "2-3 — удерживать это положение;\n" +
- "4 — опуститься в исходное положение. \n" +
- "Повторить 4-8 раз. Дыхание произвольное, или подъем таза осуществлять на выдохе через рот, губы сложены «трубочкой».\n"
- val C6 =
- "Исходное положение, руки лежат вниз вдоль туловища, под культю и под аналогичный сегмент сохранной конечности подложить мячи. \n" +
- "Счет\n" +
- "1 — опереться на ноги и поднять таз вверх;\n" +
- " 2 — поднять одну прямую ногу вверх на 30°—45% \n" +
- "3 — опустить ногу на мяч;\n" +
- " 4 — опустить таз и вернуться в исходное положение. Повторить упражнение по 4-8 раз с каждой ноги. Дыхание произвольное. При значительных трудностях с удержанием баланса на мячах данное упражнение можно выполнять на валике или любых стабильных опорах.\n"
- val C7 = "Дыхательное упражнение — диафрагмальное дыхание. \n" +
- "Сохранную ногу поставить согнутую, вторая нога или свободно лежит на полу, или бедро закинуто на другое бедро (фото), одна ладонь лежит на животе, а другая — на груди. На вдох носом надуть животом «шарик», на выдох через рот опустить переднюю стенку живота (и втянуть ее) и расслабиться. \n" +
- "Повторить дыхательный цикл не более 4-6 раз. Дышать глубоко, в комфортном темпе.\n"
- val C8 =
- "Исходное положение, руки лежат вниз вдоль туловища, под ноги подложен большой гимнастический мяч.\n" +
- "Счет\n" +
- "1 – упереться ногами в мяч, поднять таз вверх;\n" +
- "2-3 — удерживать это положение;\n" +
- "4 - опустить таз и вернуться B исходное положение.\n" +
- "Дыхание произвольное. Повторить упражнение 6-8 раз.\n"
- val C9 =
- "Исходное положение, руки лежат вниз вдоль туловища, под ноги подложен большой гимнастический мяч. \n" +
- "Счет\n" +
- "1 - поднять таз с опорой на обе ноги;\n" +
- "2 - поднять сохранную ногу вверх от опоры и остаться стоять на одной культе;\n" +
- "3 - опустить на опору сохранную ногу;\n" +
- "4 - опустить таз и вернуться в исходное положение. Повторить упражнение для каждой ноги по 4—6 раз. Дыхание произвольное.\n"
- val C10 =
- "Исходное положение, руки лежат вниз вдоль туловища или под головой (усложненный вариант). \n" +
- "Имитация велосипедных движений. По 6-10 движений сначала одной ногой, затем второй. Усложненный вариант упражнения (фото) — выполнение упражнения одновременно двумя ногами.\n" +
- "Сначала движение ногами выполняется в направлении движения вперед, а затем — назад. \n" +
- "Следить за дыханием и за тем, чтобы поясница была прижата к полу.\n"
- val C11 = "Дыхательное упражнение — диафрагмальное дыхание.\n" +
- "Повторить дыхательный цикл не более 4-6 раз. В необходимости повторения дыхательного упражнения — ориентироваться на самочувствие пациента.\n"
- val C12 =
- "Исходное положение, руки вытянуты перед собой, B руках — резиновая лента-амортизатор.\n" +
- "Счет\n" +
- "1 - развести в стороны прямые руки и коснуться кулачками пола, свести лопатки;\n" +
- "2-3 — удерживать это положение;\n" +
- "4 — свести руки перед собой и вернуться в исходное положение.\n" +
- "При выполнении упражнения акцент делать на сведение лопаток в момент растяжения резинового амортизатора.\n"
- val C13 =
- "Исходное положение, в руках — резиновый амортизатор; одна рука лежит вниз вдоль туловища, вторая согнута в локте на 90° и отведена от туловища (локоть на уровне плеча), ее плечо лежит на полу. \n" +
- "Счет\n" +
- "1 - не разгибая локтя, разворачивая лопатку, положить кисть согнутой руки на пол;\n" +
- "2-3 — удерживать это положение;\n" +
- "4 - вернуться в исходное положение. Повторить 10—15-20 раз. Не меняя длины хвата амортизатора, повторить с другой руки. Дыхание произвольное.\n"
- val C14 =
- "Исходное положение, поставить руки B упоре на локти, немного отведя их от туловища.\n" +
- "1 - надавить локтями на пол, свести лопатки прогнуть грудную клетку;\n" +
- "2-3 — удерживать это напряжение;\n" +
- "4 - расслабиться и вернуться в исходное положение \n" +
- "Повторить 4-8 раз. Дыхание ровное, без задержек.\n"
- val C15 =
- "Исходное положение, на бедра надета резиновая петля, ногу со стороны ампутации ротировать внутрь (cкосолапить). \n" +
- "Счет\n" +
- "1 - скользя по поверхности, отвести ногу со стороны ампутации в сторону; \n" +
- "2-3 - удерживать ногу в этом положении;\n" +
- "4 - вернуть ногу в исходное положение.\n" +
- "Повторить упражнение 10-15-20 раз.\n" +
- "Повторить 10-15-20 раз. После короткого отдыха сделать второй подход. Дыхание произвольное. Следить, чтобы мышцы плечевого пояса не вовлекались в напряжение, а таз оставался неподвижным. Для улучшения самоконтроля можно руки ставить на пояс и таким 0бразом следить за неподвижностью таза.\n"
- val C16 = "Исходное положение, бедрами удерживать мяч.\n" +
- "Счет\n" +
- "1 - сжать мяч между бедрами; \n" +
- "2-3 - удерживать это положение; \n" +
- "4 - расслабиться.\n" +
- "Повторить упражнение 10-15-20 раз. \n" +
- "Со временем возможно усложнение упражнения: удерживать сжатие не на счет 2-3, а на 2-3-4-5-6-7, и только на счет 8 — расслабиться. Дыхание произвольное. Следить, чтобы мышцы плечевого пояса не вовлекались B напряжение, и пациент не затаивал дыхание.\n"
- val C17 =
- "Исходное положение, руки лежат под головой, на ногу со стороны ампутации надета манжета-утяжелитель.\n" +
- "Счет\n" +
- "1 - поднять прямую ногу на 45°; \n" +
- "2-3 - удерживать ногу в этом положении; \n" +
- "4 - опустить ногу и вернуться в исходное положение. \n" +
- "Повторить 10—15—20 раз.\n" +
- "Усложнение упражнения:\n" +
- "1 - поднять ногу; \n" +
- "2-3-4-5-6-7 - держать ногу; \n" +
- "8 - опустить ногу и вернуться в исходное положение.\n" +
- "Со временем можно выполнять два подхода к упражнению.\n"
- val C18 =
- "Исходное положение, руки лежат под головой, на ногу со стороны ампутации надета манжета-утяжелитель. \n" +
- "Счет\n" +
- "1 - поднять прямую ногу на 45°;\n" +
- "2 - согнуть ногу в бедре и колене до 90°; \n" +
- "3 - выпрямить ногу обратно; \n" +
- "4 - опустить ногу и вернуться в исходное положение. \n" +
- "Повторить упражнение 10—15 раз. \n" +
- "Усложнение упражнения: \n" +
- "сгибание и разгибание колена и бедра можно осуществлять не один, а несколько раз подряд, и только потом. опускать ногу. Также можно делать имитацию велосипедных движений вперед, а потом B обратную сторону. \n" +
- "Со временем весь комплекс упражнений можно выполнять с утяжелителем в постоянном режиме. Со стороны ампутации делать больше подходов и количество повторений предлагаемых упражнений.\n"
-
- val B1 = "Исходное положение. \n" +
- "Счет\n" +
- "1 - поднять верхнюю ногу на 10—35° точно в сторону;\n" +
- "2-3 - удерживать это положение; \n" +
- "4 - опустить ногу в исходное положение. \n" +
- "Повторить упражнение 10—15-20 раз и положить согнутую ногу вперед — для растяжки и отдыха мышц. Во время выполнения упражнения следить за точностью направления движения — отведения.\n"
- val B2 = "Исходное положение, верхняя нога согнута в колене и лежит впереди. \n" +
- "Счет \n" +
- "1 - поднять прямую нижнюю ногу точно вверх (приведение), стопу тянуть на себя;\n" +
- "2-3 - удерживать ногу в верхней точке.\n" +
- "4 - опустить ногу в исходное положение \n" +
- "Повторить 10—15-20 раз. Следить за тем, чтобы нога не уходила вперед или назад, колено было всегда выпрямлено. Дыхание произвольное.\n"
- val B3 = "Исходное положение. \n" +
- "Счет\n" +
- "1 — поднять верхнюю ногу на 10—35° точно в сторону; \n" +
- "2 — согнуть в колене, не смещая бедро; \n" +
- "3 — выпрямить колено, не смещая бедро; \n" +
- "4 — опустить ногу в исходное положение. \n" +
- "Повторить 10—15—20 раз. Дыхание произвольное. \n" +
- "Повторяйте те же упражнения, лежа на другом боку.\n"
- val B4 = "Исходное положение, на уровне бедра надета манжета с утяжелителем. \n" +
- "Счет \n" +
- "1 - поднять верхнюю ногу на 10—35° точно в сторону; \n" +
- "2-3 — удерживать это положение \n" +
- "4 - опустить ногу в исходное положение.\n" +
- "Повторить 10—15-20 раз и положить согнутую ногу вперед для отдыха. Следить за точностью направления движения (отведение). \n" +
- "Подобным образом — с утяжелителем — можно выполнять все упражнения в исходном положении лежа на боку.\n"
-
-
- val J1 = "Исходное положение, руки лежат под головой, опираясь на лоб. \n" +
- "1 - поднять плечевой пояс, руки и голову; \n" +
- "2-3 - удерживать это положение;\n" +
- "4 — опуститься в исходное положение и расслабиться. Повторить упражнение 6-10 раз. Следить за дыханием. \n" +
- "Можно при подъеме туловища сводить лопатки, приводя локти к туловищу на все время удержания корпуса.\n"
- val J2 = "Исходное положение, руки лежат под головой, голова опирается на лоб. \n" +
- "1 - поднять правую прямую ногу вверх;\n" +
- "2-3 - удерживать ногу; 4 - опустить ногу в исходное положение. \n" +
- "С каждой стороны повторить упражнение по 6-10 раз. Следить за дыханием.\n"
- val J3 = "Исходное положение, ноги лежат чуть шире плеч, руки под головой. \n" +
- "1 — поднять плечевой пояс, руки и голову, и развести руки в стороны (ладонями вперед); \n" +
- "2-3 — удерживать это положение;\n" +
- "4 - опуститься в исходное положение. \n" +
- "Повторить упражнение 6-10 раз. \n" +
- "Усложнение: \n" +
- "можно одновременно с подъемом корпуса поднимать поочередно то одну HOTY, то другую, или две ноги одновременно (фото). Следить за дыханием.\n"
- val J4 = "Исходное положение, руки лежат наверху, голова опирается на лоб. \n" +
- "Счет\n" +
- "1 — поднять вверх одновременно прямые правую руку и левую ногу; \n" +
- "2-3 - удерживать это положение; \n" +
- "4 — опуститься в исходное положение. \n" +
- "С каждой стороны повторить упражнение по 4-8 раз. Следить за дыханием.\n"
- val J5 =
- "Дыхательное упражнение. Исходное положение, голова опирается на лоб, руки под толовой. Глубокий вдох HOCOM, долгий выдох через рот, губы сложены «трубочкой». Повторить 4-6 раз.\n"
- val J6 = "Исходное положение, голова опирается на лоб. Рисуем ногой медленно букву «П».\n" +
- "Счет\n" +
- "1 – поднять прямую правую ногу вверх;\n" +
- "2 – отвести eё B сторону на 30°;\n" +
- "3 – опустить ногу в стороне на пол;\n" +
- "4 – поднять правую ногу;\n" +
- "5 – привести ноту к центру;\n" +
- "6 – опустить ногу в исходное положение;\n" +
- "7-12 – повторить то же с левой ноги.\n" +
- "Упражнение сделать по 4-8 раз на каждую ногу. Следить за дыханием."
- val J7 = "Предыдущее упражнение можно немного усложнить. \n" +
- "Счет\n" +
- "1 — поднять одну ногу; \n" +
- "2 — отвести ногу в сторону; \n" +
- "3 — опустить ногу в стороне; \n" +
- "4 — поднять вверх другую ногу;\n" +
- "5 - отвести и ее в сторону; \n" +
- "6 - опустить на пол в стороне; \n" +
- "7-8 -скользя по опоре, соединить на полу ноги. \n" +
- "Повторить упражнение с каждой ноги по 4-6 раз. Следить за дыханием.\n"
- val J8 = "Исходное положение, две ноги поднять поочередно вверх. \n" +
- "1 - развести ноги в стороны; \n" +
- "2 - свести ноги вместе, и повторять 10—15-20 раз. \n" +
- "Следить за дыханием. После небольшой паузы, со временем, можно выполнять второй подход. \n" +
- "Также возможны следующие варианты:\n" +
- "1 - развести ноги в стороны;\n" +
- "2 - свести ноги вместе с перекрестом (одна нога выше, и нижнюю ноги. другая ниже);\n" +
- "3 - развести ноги в стороны;\n" +
- "4 - свести ноги и перекрестить их, поменяв верхнюю и нижнюю ноги.\n" +
- "Упражнение сделать по 4-8 раз на каждую ногу. Следить за дыханием.\n"
- val J9 =
- "Дыхательное упражнение. Исходное положение, голова опирается на лоб, руки под головой. Глубокий вдох носом, долгий выдох через POT, губы сложены «трубочкой». Повторить 4-6 раз.\n"
- val J10 =
- "Исходное положение, голова опирается на лоб, руки лежат наверху на ширине, в руках — резиновый амортизатор. \n" +
- "1 — поднять туловище, руки и голову вверх; \n" +
- "2 — развести руки в стороны так, чтобы амортизатор лег на лопатки; \n" +
- "3 — свести руки наверху до ширины плеч; \n" +
- "4 — опуститься в исходное положение. \n" +
- "Повторить упражнение 6-10 раз. Дыхание произвольное.\n" +
- " Со временем можно усложнить упражнение: разводить руки в стороны не один раз, а несколько раз подряд; также можно сделать паузу в момент, когда руки разведены в стороны. Дыхание произвольное. Можно одновременно с подъемом туловища поднимать поочередно то одну, то вторую ногу.\n"
- val J11 =
- "Исходное положение, руки под головой. Поднять плечевой пояс и согнутые к плечам руки. Имитация плавания брассом. Дыхание ровное. \n" +
- "Два подхода по 10-15-20 движений. Следить за полным выпрямлением рук наверх, разведением прямых рук B стороны, сведением лопаток B момент приведения плеч, а также за тем, чтобы корпус при выпрямлении рук наверх не опускался. Дыхание произвольное.\n"
- val J12 =
- "Исходное положение, руки лежат под головой, голова опирается на лоб. На ноге со стороны ампутации надета манжета с утяжелителем.\n" +
- "Счет\n" +
- "1 - поднять ногу с утяжелителем;\n" +
- "2-3 — удерживать ногу; \n" +
- "4 — опустить ногу в исходное положение. \n" +
- "Повторить 10-15-20 раз.\n" +
- "Усложнение: можно на счет 2 - отвести ногу в сторону, на счет 3 - вернуть ногу к центру, счет 4 — опуститься в исходное положение. Также можно отводить в сторону не один раз, а несколько раз подряд. Дыхание свободное. \n" +
- "Со временем все упражнения можно выполнять с утяжелителем."
-
- private fun createImageBD() {
- val db = MainDB.getDB(requireContext())
-
- val itemС1_1 = ItemImage(null, "c1_1", "c1", "c")
- val itemС1_2 = ItemImage(null, "c1_2", "c1", "c")
- val itemС2_1 = ItemImage(null, "c2_1", "c2", "c")
- val itemС2_2 = ItemImage(null, "c2_2", "c2", "c")
- val itemС3_1 = ItemImage(null, "c3_1", "c3", "c")
- val itemС3_2 = ItemImage(null, "c3_2", "c3", "c")
- val itemС4_1 = ItemImage(null, "c4_1", "c4", "c")
- val itemС4_2 = ItemImage(null, "c4_1", "c4", "c")
- val itemС5_1 = ItemImage(null, "c5_1", "c5", "c")
- val itemС5_2 = ItemImage(null, "c5_2", "c5", "c")
- val itemС6_1 = ItemImage(null, "c6_1", "c6", "c")
- val itemС6_2 = ItemImage(null, "c6_2", "c6", "c")
- val itemС6_3 = ItemImage(null, "c6_3", "c6", "c")
- val itemС7_1 = ItemImage(null, "c7_1", "c7", "c")
- val itemС8_1 = ItemImage(null, "c8_1", "c8", "c")
- val itemС8_2 = ItemImage(null, "c8_2", "c8", "c")
- val itemС9_1 = ItemImage(null, "c9_1", "c9", "c")
- val itemС9_2 = ItemImage(null, "c9_2", "c9", "c")
- val itemС9_3 = ItemImage(null, "c9_3", "c9", "c")
- val itemС10_1 = ItemImage(null, "c10_1", "c10", "c")
- val itemС10_2 = ItemImage(null, "c10_2", "c10", "c")
- val itemС10_3 = ItemImage(null, "c10_3", "c10", "c")
- val itemС11_1 = ItemImage(null, "c11_1", "c11", "c")
- val itemС12_1 = ItemImage(null, "c12_1", "c12", "c")
- val itemС12_2 = ItemImage(null, "c12_2", "c12", "c")
- val itemС13_1 = ItemImage(null, "c13_1", "c13", "c")
- val itemС13_2 = ItemImage(null, "c13_2", "c13", "c")
- val itemС14_1 = ItemImage(null, "c14_1", "c14", "c")
- val itemС14_2 = ItemImage(null, "c14_2", "c14", "c")
- val itemС15_1 = ItemImage(null, "c15_1", "c15", "c")
- val itemС15_2 = ItemImage(null, "c15_2", "c15", "c")
- val itemС16_1 = ItemImage(null, "c16_1", "c16", "c")
- val itemС16_2 = ItemImage(null, "c16_2", "c16", "c")
- val itemС17_1 = ItemImage(null, "c17_1", "c17", "c")
- val itemС17_2 = ItemImage(null, "c17_2", "c17", "c")
- val itemС18_1 = ItemImage(null, "c18_1", "c18", "c")
- val itemС18_2 = ItemImage(null, "c18_2", "c18", "c")
- val itemС18_3 = ItemImage(null, "c18_3", "c18", "c")
-
- val itemB1_1 = ItemImage(null, "b1_1", "b1", "b")
- val itemB1_2 = ItemImage(null, "b1_2", "b1", "b")
- val itemB2_1 = ItemImage(null, "b2_1", "b2", "b")
- val itemB2_2 = ItemImage(null, "b2_2", "b2", "b")
- val itemB3_1 = ItemImage(null, "b3_1", "b3", "b")
- val itemB3_2 = ItemImage(null, "b3_2", "b3", "b")
- val itemB3_3 = ItemImage(null, "b3_3", "b3", "b")
- val itemB4_1 = ItemImage(null, "b4_1", "b4", "b")
- val itemB4_2 = ItemImage(null, "b4_2", "b4", "b")
-
- val itemJ1_1 = ItemImage(null, "j1_1", "j1", "j")
- val itemJ1_2 = ItemImage(null, "j1_2", "j1", "j")
- val itemJ2_1 = ItemImage(null, "j2_1", "j2", "j")
- val itemJ2_2 = ItemImage(null, "j2_2", "j2", "j")
- val itemJ3_1 = ItemImage(null, "j3_1", "j3", "j")
- val itemJ3_2 = ItemImage(null, "j3_2", "j3", "j")
- val itemJ4_1 = ItemImage(null, "j4_1", "j4", "j")
- val itemJ4_2 = ItemImage(null, "j4_2", "j4", "j")
- val itemJ4_3 = ItemImage(null, "j4_3", "j4", "j")
- val itemJ5_1 = ItemImage(null, "j5_1", "j5", "j")
- val itemJ6_1 = ItemImage(null, "j6_1", "j6", "j")
- val itemJ6_2 = ItemImage(null, "j6_2", "j6", "j")
- val itemJ6_3 = ItemImage(null, "j6_3", "j6", "j")
- val itemJ6_4 = ItemImage(null, "j6_4", "j6", "j")
- val itemJ7_1 = ItemImage(null, "j7_1", "j7", "j")
- val itemJ7_2 = ItemImage(null, "j7_2", "j7", "j")
- val itemJ7_3 = ItemImage(null, "j7_3", "j7", "j")
- val itemJ7_4 = ItemImage(null, "j7_4", "j7", "j")
- val itemJ7_5 = ItemImage(null, "j7_5", "j7", "j")
- val itemJ7_6 = ItemImage(null, "j7_6", "j7", "j")
- val itemJ7_7 = ItemImage(null, "j7_7", "j7", "j")
- val itemJ8_1 = ItemImage(null, "j8_1", "j8", "j")
- val itemJ8_2 = ItemImage(null, "j8_2", "j8", "j")
- val itemJ8_3 = ItemImage(null, "j8_3", "j8", "j")
- val itemJ9_1 = ItemImage(null, "j9_1", "j9", "j")
- val itemJ10_1 = ItemImage(null, "j10_1", "j10", "j")
- val itemJ10_2 = ItemImage(null, "j10_2", "j10", "j")
- val itemJ10_3 = ItemImage(null, "j10_2", "j10", "j")
- val itemJ11_1 = ItemImage(null, "j11_1", "j11", "j")
- val itemJ11_2 = ItemImage(null, "j11_2", "j11", "j")
- val itemJ11_3 = ItemImage(null, "j11_3", "j11", "j")
- val itemJ11_4 = ItemImage(null, "j11_4", "j11", "j")
- val itemJ12_1 = ItemImage(null, "j12_1", "j12", "j")
- val itemJ12_2 = ItemImage(null, "j12_2", "j12", "j")
-
- Thread {
- db.getDaoImage().insertItemImage(itemС1_1)
- db.getDaoImage().insertItemImage(itemС1_2)
- db.getDaoImage().insertItemImage(itemС2_1)
- db.getDaoImage().insertItemImage(itemС2_2)
- db.getDaoImage().insertItemImage(itemС3_1)
- db.getDaoImage().insertItemImage(itemС3_2)
- db.getDaoImage().insertItemImage(itemС4_1)
- db.getDaoImage().insertItemImage(itemС4_2)
- db.getDaoImage().insertItemImage(itemС5_1)
- db.getDaoImage().insertItemImage(itemС5_2)
- db.getDaoImage().insertItemImage(itemС6_1)
- db.getDaoImage().insertItemImage(itemС6_2)
- db.getDaoImage().insertItemImage(itemС6_3)
- db.getDaoImage().insertItemImage(itemС7_1)
- db.getDaoImage().insertItemImage(itemС8_1)
- db.getDaoImage().insertItemImage(itemС8_2)
- db.getDaoImage().insertItemImage(itemС9_1)
- db.getDaoImage().insertItemImage(itemС9_2)
- db.getDaoImage().insertItemImage(itemС9_3)
- db.getDaoImage().insertItemImage(itemС10_1)
- db.getDaoImage().insertItemImage(itemС10_2)
- db.getDaoImage().insertItemImage(itemС10_3)
- db.getDaoImage().insertItemImage(itemС11_1)
- db.getDaoImage().insertItemImage(itemС12_1)
- db.getDaoImage().insertItemImage(itemС12_2)
- db.getDaoImage().insertItemImage(itemС13_1)
- db.getDaoImage().insertItemImage(itemС13_2)
- db.getDaoImage().insertItemImage(itemС14_1)
- db.getDaoImage().insertItemImage(itemС14_2)
- db.getDaoImage().insertItemImage(itemС15_1)
- db.getDaoImage().insertItemImage(itemС15_2)
- db.getDaoImage().insertItemImage(itemС16_1)
- db.getDaoImage().insertItemImage(itemС16_2)
- db.getDaoImage().insertItemImage(itemС17_1)
- db.getDaoImage().insertItemImage(itemС17_2)
- db.getDaoImage().insertItemImage(itemС18_1)
- db.getDaoImage().insertItemImage(itemС18_2)
- db.getDaoImage().insertItemImage(itemС18_3)
-
- db.getDaoImage().insertItemImage(itemB1_1)
- db.getDaoImage().insertItemImage(itemB1_2)
- db.getDaoImage().insertItemImage(itemB2_1)
- db.getDaoImage().insertItemImage(itemB2_2)
- db.getDaoImage().insertItemImage(itemB3_1)
- db.getDaoImage().insertItemImage(itemB3_2)
- db.getDaoImage().insertItemImage(itemB3_3)
- db.getDaoImage().insertItemImage(itemB4_1)
- db.getDaoImage().insertItemImage(itemB4_2)
-
- db.getDaoImage().insertItemImage(itemJ1_1)
- db.getDaoImage().insertItemImage(itemJ1_2)
- db.getDaoImage().insertItemImage(itemJ2_1)
- db.getDaoImage().insertItemImage(itemJ2_2)
- db.getDaoImage().insertItemImage(itemJ3_1)
- db.getDaoImage().insertItemImage(itemJ3_2)
- db.getDaoImage().insertItemImage(itemJ4_1)
- db.getDaoImage().insertItemImage(itemJ4_2)
- db.getDaoImage().insertItemImage(itemJ4_3)
- db.getDaoImage().insertItemImage(itemJ5_1)
- db.getDaoImage().insertItemImage(itemJ6_1)
- db.getDaoImage().insertItemImage(itemJ6_2)
- db.getDaoImage().insertItemImage(itemJ6_3)
- db.getDaoImage().insertItemImage(itemJ6_4)
- db.getDaoImage().insertItemImage(itemJ7_1)
- db.getDaoImage().insertItemImage(itemJ7_2)
- db.getDaoImage().insertItemImage(itemJ7_3)
- db.getDaoImage().insertItemImage(itemJ7_4)
- db.getDaoImage().insertItemImage(itemJ7_5)
- db.getDaoImage().insertItemImage(itemJ7_6)
- db.getDaoImage().insertItemImage(itemJ7_7)
- db.getDaoImage().insertItemImage(itemJ8_1)
- db.getDaoImage().insertItemImage(itemJ8_2)
- db.getDaoImage().insertItemImage(itemJ8_3)
- db.getDaoImage().insertItemImage(itemJ9_1)
- db.getDaoImage().insertItemImage(itemJ10_1)
- db.getDaoImage().insertItemImage(itemJ10_2)
- db.getDaoImage().insertItemImage(itemJ10_3)
- db.getDaoImage().insertItemImage(itemJ11_1)
- db.getDaoImage().insertItemImage(itemJ11_2)
- db.getDaoImage().insertItemImage(itemJ11_3)
- db.getDaoImage().insertItemImage(itemJ11_4)
- db.getDaoImage().insertItemImage(itemJ12_1)
- db.getDaoImage().insertItemImage(itemJ12_2)
-
- }.start()
-
-
- }
-
- fun createSportCategory() {
-// getDaySport(1, C1, "c", "c1", 0)
-// getDaySport(2, C2, "c", "c2", 0)
-// getDaySport(3, C3, "c", "c3", 0)
-// getDaySport(4, C4, "c", "c4", 0)
-// getDaySport(5, C5, "c", "c5", 0)
-// getDaySport(6, C6, "c", "c6", 0)
-// getDaySport(7, C7, "c", "c7", 0)
-// getDaySport(8, C8, "c", "c8", 0)
-// getDaySport(9, C9, "c", "c9", 0)
-// getDaySport(10, C10, "c", "c10", 0)
-// getDaySport(11, C11, "c", "c11", 0)
-// getDaySport(12, C12, "c", "c12", 0)
-// getDaySport(13, C13, "c", "c13", 0)
-// getDaySport(14, C14, "c", "c14", 0)
-// getDaySport(15, C15, "c", "c15", 0)
-// getDaySport(16, C16, "c", "c16", 0)
-// getDaySport(17, C17, "c", "c17", 0)
-// getDaySport(18, C18, "c", "c18", 0)
-//
-//
-// getDaySport(19, B1, "b", "b1", 0)
-// getDaySport(20, B2, "b", "b2", 0)
-// getDaySport(21, B3, "b", "b3", 0)
-// getDaySport(22, B4, "b", "b4", 0)
-//
-// getDaySport(23, J1, "j", "j1", 0)
-// getDaySport(24, J2, "j", "j2", 0)
-// getDaySport(25, J3, "j", "j3", 0)
-// getDaySport(26, C4, "j", "j4", 0)
-// getDaySport(27, J5, "j", "j5", 0)
-// getDaySport(28, J6, "j", "j6", 0)
-// getDaySport(29, J7, "j", "j7", 0)
-// getDaySport(30, J8, "j", "j8", 0)
-// getDaySport(31, J9, "j", "j9", 0)
-// getDaySport(32, J10, "j", "j10", 0)
-// getDaySport(33, J11, "j", "j11", 0)
-// getDaySport(34, J12, "j", "j12", 0,0)
-
- }
-
- companion object {
-
- fun newInstance() = PatientSportFragment()
- }
-
-
- }
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Auth/AuthDoctorActivity.kt b/app/src/main/java/com/example/rehabilitation/Auth/AuthDoctorActivity.kt
deleted file mode 100644
index 5af2f9e..0000000
--- a/app/src/main/java/com/example/rehabilitation/Auth/AuthDoctorActivity.kt
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.example.rehabilitation.Auth
-
-import androidx.appcompat.app.AppCompatActivity
-import android.os.Bundle
-import com.example.rehabilitation.R
-import com.example.rehabilitation.User.fragmentUser.HomeFragment
-import com.example.rehabilitation.databinding.ActivityAuthDoctorBinding
-
-class AuthDoctorActivity : AppCompatActivity() {
- lateinit var binding: ActivityAuthDoctorBinding
-
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- binding = ActivityAuthDoctorBinding.inflate(layoutInflater)
- setContentView(binding.root)
-
- //Вывод фрагмента на активити при первоначальной загрузке
- supportFragmentManager.beginTransaction()
- .replace(R.id.CLAutDoctor, AuthDoctorFragment.newInstance())
- .commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
-
- }
-
- override fun onDestroy() {
- super.onDestroy()
- finish()
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Auth/AuthDoctorFragment.kt b/app/src/main/java/com/example/rehabilitation/Auth/AuthDoctorFragment.kt
deleted file mode 100644
index 7e304c2..0000000
--- a/app/src/main/java/com/example/rehabilitation/Auth/AuthDoctorFragment.kt
+++ /dev/null
@@ -1,157 +0,0 @@
-package com.example.rehabilitation.Auth
-
-import android.content.Context
-import android.content.Intent
-import android.os.Bundle
-import android.util.Log
-import androidx.fragment.app.Fragment
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import android.widget.Toast
-import androidx.fragment.app.activityViewModels
-import androidx.lifecycle.asLiveData
-import com.example.admin.Toast.showCustomDangerToast
-import com.example.admin.Toast.showCustomInfoToast
-import com.example.rehabilitation.Admin.activityAdmin.UserSettingActivity
-import com.example.rehabilitation.MainActivity
-import com.example.rehabilitation.R
-import com.example.rehabilitation.Room.MainDB
-import com.example.rehabilitation.UserDoctorToken
-import com.example.rehabilitation.databinding.ActivityAuthDoctorBinding
-import com.example.rehabilitation.databinding.FragmentAuthDoctorBinding
-import com.example.rehabilitation.model_adapter.Doctor.DoctorModel
-import com.example.rehabilitation.prefUserDoctorToken
-import com.example.sqlitework.dip.MainViewModel
-
-class AuthDoctorFragment : Fragment() {
- lateinit var binding: FragmentAuthDoctorBinding
- private val model: MainViewModel by activityViewModels()//Инициализировали класс
-
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
- binding = FragmentAuthDoctorBinding.inflate(layoutInflater,container,false)
- return binding.root
- }
-
-
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
- data_prefDoctorPatientToken()
- liveDoctorAuthCurrent()
-
- //Авторизация врача
- //Нажатие на кнопку авторизации
- binding.buttonAuthorizationDoctor.setOnClickListener{
- var email = binding.editTextEmailDoctor.text.toString()
- var password = binding.editTextPasswordDoctor.text.toString()
- if(email !="" || password !=""){
- AuthorizationDoctor(email,password)
- Log.d("Result","email email - $email")
- Log.d("Result","password password - $password")
- }
- else{
- Toast(requireContext()).showCustomInfoToast("Не все поля заполнены", requireActivity())
- }
- }
-
- //Переход от авторизации врача к пациенту
- binding.btnAutPatient.setOnClickListener{
- val intent = Intent(requireContext(), AuthorizationActivity::class.java)
- activity?.finish()//Закрываем старый экран, для того чтобы очитсить оперативную память от лишнего хранения экрана
- startActivity(intent)
- }
-
-
-
-
- }
-
- private fun liveDoctorAuthCurrent() = with(binding) {
- model.liveAuthDoctorCurrent.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
- if(it.id == "0"){
- Toast(requireContext()).showCustomDangerToast("Такого аккаунта нету", requireActivity())
- }
- else{
- saveUserDoctorToken(it.login)
-
- if(UserDoctorToken !=""){
- val intent = Intent(requireContext(), UserSettingActivity::class.java)
- activity?.finish()//Закрываем старый экран, для того чтобы очитсить оперативную память от лишнего хранения экрана
- startActivity(intent)
- }
- }
-
- }
-
- }
-
- //Фиксируем токен врача
- private fun data_prefDoctorPatientToken() {
- prefUserDoctorToken = activity?.getSharedPreferences("UserDoctorToken", Context.MODE_PRIVATE)
- UserDoctorToken = prefUserDoctorToken?.getString("userdoctortoken", "")!! //Передаем при запуске страницы в counter данные по ключевому слову "counter", вс лучае если будет пусто то передастся 0
- }
-
- //Записываем число
- fun saveUserDoctorToken(userdoctortoken: String) {
- val editer = prefUserDoctorToken?.edit()
- editer?.putString("userdoctortoken", userdoctortoken)
- editer?.apply()
- UserDoctorToken = userdoctortoken
- }
- //Функция очистки данных
- fun clearUserDoctorToken() {
- val edit = prefUserDoctorToken?.edit()
- edit?.clear()
- edit?.apply()
- UserDoctorToken = ""
- }
-
-
-
- private fun AuthorizationDoctor(login:String,password:String){
- val db = MainDB.getDB(requireContext())
-
- db.getDaoDoctor().getAuthItemDoctor(login,password).asLiveData().observe(requireActivity()) {itPatient->
- if (itPatient.isNullOrEmpty()) {
- val item = DoctorModel(
- "0",
- "",
- "",
- "",
- // it.email,
- login,
- ""
- )
-
- model.liveAuthDoctorCurrent.value = item
-
- }
- else{
- val item = DoctorModel(
- itPatient[0].id.toString(),
- "",
- "",
- "",
- // it.email,
- login,
- ""
- )
-
- model.liveAuthDoctorCurrent.value = item
- }
- }
- }
-
-
- override fun onDestroy() {
- super.onDestroy()
- activity?.finish()
- }
-
- companion object {
- fun newInstance() = AuthDoctorFragment()
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Auth/AuthFragment.kt b/app/src/main/java/com/example/rehabilitation/Auth/AuthFragment.kt
index 92a37fc..6dac35a 100644
--- a/app/src/main/java/com/example/rehabilitation/Auth/AuthFragment.kt
+++ b/app/src/main/java/com/example/rehabilitation/Auth/AuthFragment.kt
@@ -10,31 +10,43 @@ import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.fragment.app.activityViewModels
-import androidx.lifecycle.asLiveData
import com.example.admin.Toast.showCustomDangerToast
import com.example.admin.Toast.showCustomInfoToast
-import com.example.rehabilitation.Admin.activityAdmin.UserSettingActivity
+import com.example.rehabilitation.Auth.Model.AuthModel
import com.example.rehabilitation.MainActivity
-import com.example.rehabilitation.counter1
-import com.example.rehabilitation.counter2
import com.example.rehabilitation.databinding.FragmentAuthBinding
-import com.example.rehabilitation.Room.MainDB
-import com.example.rehabilitation.UserDoctorToken
import com.example.rehabilitation.UserPatientToken
-import com.example.rehabilitation.model_adapter.Doctor.DoctorModel
-import com.example.rehabilitation.model_adapter.Patient.PatientModel
-import com.example.rehabilitation.pref
-import com.example.rehabilitation.prefDoctor
-import com.example.rehabilitation.prefUserDoctorToken
+import com.example.rehabilitation.Auth.Model.PatientModel
+import com.example.rehabilitation.MainFragment
+import com.example.rehabilitation.PatientViewModel
+import com.example.rehabilitation.Pref.ConclusionPref
+import com.example.rehabilitation.Pref.SavePref
+import com.example.rehabilitation.Questionnaire.Model.BeforeQuestionnaireModel
+import com.example.rehabilitation.R
+import com.example.rehabilitation.Retrofit.PatientApi
+import com.example.rehabilitation.Sport.SceduleFragment
import com.example.rehabilitation.prefUserPatientToken
-import com.example.rehabilitation.tokenClass
-import com.example.rehabilitation.tokenClassDoctor
import com.example.sqlitework.dip.MainViewModel
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import okhttp3.OkHttpClient
+import okhttp3.logging.HttpLoggingInterceptor
+import org.json.JSONObject
+import retrofit2.Retrofit
+import retrofit2.converter.gson.GsonConverterFactory
class AuthFragment : Fragment() {
private lateinit var binding: FragmentAuthBinding
private val model: MainViewModel by activityViewModels()//Инициализировали класс
+ private lateinit var patientApi: PatientApi
+ private val PatientVewModel: PatientViewModel by activityViewModels()
+
+ //Токен
+ private var Token = ""
+ val prefPatientSave = SavePref()
+ val prefPatientConclusion = ConclusionPref()
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
@@ -47,21 +59,20 @@ class AuthFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
- data_prefUserPatientToken()
-
-
- livePatientAuthCurrent()
-
+ binding.txtError.text = ""
+ Token = prefPatientConclusion.conclusionToken(requireContext())
//Авиризация пациента
binding.buttonAuthorizationPatient.setOnClickListener {
- var email = binding.editTextEmailPatient.text.toString()
- var password = binding.editTextPasswordPatient.text.toString()
- if (email != "" || password != "") {
- AuthorizationPatient(email, password)
- Log.d("Result", "email email - $email")
- Log.d("Result", "password password - $password")
-
+ val login = binding.editTextLoginPatient.text.toString()
+ val password = binding.editTextPasswordPatient.text.toString()
+ if (login != "" || password != "") {
+ AuthorizationPatient(
+ AuthModel(
+ login,
+ password,
+ )
+ )
} else {
Toast(requireContext()).showCustomInfoToast(
"Не все поля заполнены",
@@ -73,126 +84,101 @@ class AuthFragment : Fragment() {
//Если пользователь решил зайти в аккаунт врача и не подумал о том что не сможет вернуться со страницы авторизации, то он может нажать данную кнопку, и в случае если он был авторизован, то его вернет в приложение
binding.btnBack.setOnClickListener {
if (UserPatientToken != "") {
- val intent = Intent(requireContext(), MainActivity::class.java)
- startActivity(intent)
- activity?.finish()//Закрываем старый экран, для того чтобы очитсить оперативную память от лишнего хранения экрана
-
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.CLMain, MainFragment.newInstance())
+ ?.commit()
} else {
Toast(requireContext()).showCustomInfoToast("Авторизуйтесь", requireActivity())
}
}
+ }
- //Переход вход для врача
- binding.txtDoctor.setOnClickListener {
- val intent = Intent(requireContext(), AuthDoctorActivity::class.java)
- startActivity(intent)
- activity?.finish()//Закрываем старый экран, для того чтобы очитсить оперативную память от лишнего хранения экрана
+
+ //Инициализация подлючения к серверу
+ private fun initRetrofit() {
+ val interceptor = HttpLoggingInterceptor()
+ interceptor.level = HttpLoggingInterceptor.Level.BODY
+
+ val client = OkHttpClient
+ .Builder()
+ .addInterceptor(interceptor)
+ .build()
+
+ val retrofit = Retrofit.Builder()
+ .baseUrl("http://mobileapp.vmeda.org/api/")
+ .client(client)
+ .addConverterFactory(GsonConverterFactory.create())
+ .build()
+
+ patientApi = retrofit.create(PatientApi::class.java)
+
+ }
+
+ //Получения списка пациентов
+ fun BeforeQuestionnaire(item: BeforeQuestionnaireModel) {
+ initRetrofit()
+ val Tokens = prefPatientConclusion.conclusionToken(requireContext())
+ CoroutineScope(Dispatchers.IO).launch {
+ val QA = patientApi.AddBeforeQuestionnaire2("Bearer $Tokens",item)
+ requireActivity().runOnUiThread {
+
+ //Фиксируем полученные данные
+ val AQList = QA.body()
+
+ //Если нету ошибок
+ if (AQList != null) {
+ Toast(requireContext()).showCustomInfoToast(AQList.message, requireActivity())
+ }
+ else{
+ Toast(requireContext()).showCustomInfoToast("Ошибка при отправке", requireActivity())
+
+ }
+
+ //Вывод фрагмента на активити при первоначальной загрузке
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.CLMain, SceduleFragment.newInstance())?.commit()
+ }
}
-
-
}
+ private fun AuthorizationPatient(authModel: AuthModel) {
+ initRetrofit()
+ CoroutineScope(Dispatchers.IO).launch {
- //Инициализация хранилища(для токена) и проверяем есть ли аккаунт и или перекидываем в авторизацую или остаемся на данном экране
- fun data_prefUserPatientToken() {
- prefUserPatientToken =
- activity?.getSharedPreferences("UserPatientToken", Context.MODE_PRIVATE)
- UserPatientToken = prefUserPatientToken?.getString(
- "userpatienttoken",
- ""
- )!! //Передаем при запуске страницы в counter данные по ключевому слову "counter", вс лучае если будет пусто то передастся 0
- }
+ val response = patientApi.LoginPatient(authModel)
+ requireActivity().runOnUiThread {
+ val user = response.body()
+ //Если есть такой пользователь
+ if (user != null) {
- //Записываем число
- fun saveUserPatientToken(userpatienttoken: String) {
- val editer = prefUserPatientToken?.edit()
- editer?.putString("userpatienttoken", userpatienttoken)
- editer?.apply()
- UserPatientToken = userpatienttoken
- }
+ //PatientVewModel.token.value = user.token
+ prefPatientSave.saveToken(requireContext(),user.token)
- //Функция очистки данных
- fun clearUserPatientToken() {
- val edit = prefUserPatientToken?.edit()
- edit?.clear()
- edit?.apply()
- UserPatientToken = ""
- }
-
-
- private fun AuthorizationPatient(login: String, password: String) {
- val db = MainDB.getDB(requireContext())
- Log.d("Ressadsdasdasda3", "sadsdasdasda")
- db.getDaoPatient().getAuthItemPatient(login, password).asLiveData()
- .observe(requireActivity()) { itPatient ->
-
- if (itPatient.isNullOrEmpty()) {
- val item = PatientModel(
- "0",
- "",
- "",
- "",
- "",
- "",
- //it.email,
- login,
- "",
+ val intetn = Intent(requireContext(), MainActivity::class.java)
+ startActivity(intetn)
+ activity?.finish()
+ }
+ else{
+ Toast(requireContext()).showCustomInfoToast(
+ "Такого пользователя нету",
+ requireActivity()
)
- model.liveAuthPatientCurrent.value = item
-
- } else {
- val item = PatientModel(
- itPatient[0].id.toString(),
- "",
- "",
- "",
- "",
- "",
- //it.email,
- login,
- "",
- )
- model.liveAuthPatientCurrent.value = item
-
}
}
- }
-
-
- private fun livePatientAuthCurrent() = with(binding) {
- model.liveAuthPatientCurrent.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
- Log.i("12312", "sadas")
- if (it.id == "0") {
- Log.i("4444", "4444")
- Toast(requireContext()).showCustomDangerToast(
- "Такого аккаунта нету",
- requireActivity()
- )
- } else {
- Log.i("5555", "5555")
- UserPatientToken = it.login
- saveUserPatientToken(it.login)
-
- if (UserPatientToken != "") {
- val intent = Intent(requireContext(), MainActivity::class.java)
- activity?.finish()//Закрываем старый экран, для того чтобы очитсить оперативную память от лишнего хранения экрана
- startActivity(intent)
- }
- }
-
-
}
}
+
+
override fun onDestroy() {
super.onDestroy()
activity?.finish()
}
- companion object {
+ companion object {
fun newInstance() = AuthFragment()
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Auth/AuthorizationActivity.kt b/app/src/main/java/com/example/rehabilitation/Auth/AuthorizationActivity.kt
index e9cfa63..be26faa 100644
--- a/app/src/main/java/com/example/rehabilitation/Auth/AuthorizationActivity.kt
+++ b/app/src/main/java/com/example/rehabilitation/Auth/AuthorizationActivity.kt
@@ -15,10 +15,6 @@ class AuthorizationActivity : AppCompatActivity() {
binding = ActivityAuthorizationBinding.inflate(layoutInflater)
setContentView(binding.root)
- supportFragmentManager.beginTransaction().replace(R.id.constraintLayoutAuth, AuthFragment.newInstance()).commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
-
-
-
}
diff --git a/app/src/main/java/com/example/rehabilitation/Auth/Model/AuthModel.kt b/app/src/main/java/com/example/rehabilitation/Auth/Model/AuthModel.kt
new file mode 100644
index 0000000..8e76370
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Auth/Model/AuthModel.kt
@@ -0,0 +1,7 @@
+package com.example.rehabilitation.Auth.Model
+
+data class AuthModel(
+ val login: String,
+ val password: String,
+)
+
diff --git a/app/src/main/java/com/example/rehabilitation/Auth/Model/CheckTokenModel.kt b/app/src/main/java/com/example/rehabilitation/Auth/Model/CheckTokenModel.kt
new file mode 100644
index 0000000..fcd6770
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Auth/Model/CheckTokenModel.kt
@@ -0,0 +1,5 @@
+package com.example.rehabilitation.Auth.Model
+
+data class CheckTokenModel(
+ val status:String,
+)
diff --git a/app/src/main/java/com/example/rehabilitation/model_adapter/Patient/PatientModel.kt b/app/src/main/java/com/example/rehabilitation/Auth/Model/PatientModel.kt
similarity index 81%
rename from app/src/main/java/com/example/rehabilitation/model_adapter/Patient/PatientModel.kt
rename to app/src/main/java/com/example/rehabilitation/Auth/Model/PatientModel.kt
index d4ca0de..4d61dca 100644
--- a/app/src/main/java/com/example/rehabilitation/model_adapter/Patient/PatientModel.kt
+++ b/app/src/main/java/com/example/rehabilitation/Auth/Model/PatientModel.kt
@@ -1,4 +1,4 @@
-package com.example.rehabilitation.model_adapter.Patient
+package com.example.rehabilitation.Auth.Model
data class PatientModel(
val id: String,
diff --git a/app/src/main/java/com/example/rehabilitation/Auth/Model/UserModel.kt b/app/src/main/java/com/example/rehabilitation/Auth/Model/UserModel.kt
new file mode 100644
index 0000000..20619d3
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Auth/Model/UserModel.kt
@@ -0,0 +1,7 @@
+package com.example.rehabilitation.Auth.Model
+
+data class UserModel(
+ val id: String,
+ val token: String,
+)
+
diff --git a/app/src/main/java/com/example/rehabilitation/Calendare/CalendarFragment.kt b/app/src/main/java/com/example/rehabilitation/Calendare/CalendarFragment.kt
new file mode 100644
index 0000000..a9497b1
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Calendare/CalendarFragment.kt
@@ -0,0 +1,309 @@
+package com.example.rehabilitation.Calendare
+
+import android.annotation.SuppressLint
+import android.graphics.Typeface
+import android.os.Bundle
+import android.os.Handler
+import android.util.Log
+import android.util.TypedValue
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import androidx.core.view.children
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.activityViewModels
+import androidx.recyclerview.widget.GridLayoutManager
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import com.example.rehabilitation.Calendare.Calendare.CalendareAdapter
+import com.example.rehabilitation.Calendare.Calendare.getColorCompat
+import com.example.rehabilitation.Calendare.Calendare.setTextColorRes
+import com.example.rehabilitation.Calendare.Calendare.shared.displayText
+import com.example.rehabilitation.Calendare.Calendare.shared.generateFlights
+import com.example.rehabilitation.Pref.ConclusionPref
+import com.example.rehabilitation.R
+import com.example.rehabilitation.Retrofit.PatientApi
+import com.example.rehabilitation.Sport.DayAdapter
+import com.example.rehabilitation.databinding.Example5CalendarDayBinding
+import com.example.rehabilitation.databinding.Example5CalendarHeaderBinding
+import com.example.rehabilitation.databinding.FragmentCalendarBinding
+import com.example.rehabilitation.listCalendare
+import com.example.sqlitework.dip.MainViewModel
+import com.kizitonwose.calendar.core.CalendarDay
+import com.kizitonwose.calendar.core.CalendarMonth
+import com.kizitonwose.calendar.core.DayPosition
+import com.kizitonwose.calendar.core.daysOfWeek
+import com.kizitonwose.calendar.core.nextMonth
+import com.kizitonwose.calendar.core.previousMonth
+import com.kizitonwose.calendar.view.MonthDayBinder
+import com.kizitonwose.calendar.view.MonthHeaderFooterBinder
+import com.kizitonwose.calendar.view.ViewContainer
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import okhttp3.OkHttpClient
+import okhttp3.logging.HttpLoggingInterceptor
+import retrofit2.Retrofit
+import retrofit2.converter.gson.GsonConverterFactory
+import java.time.DayOfWeek
+import java.time.LocalDate
+import java.time.YearMonth
+import java.util.Timer
+import kotlin.concurrent.timerTask
+
+
+class CalendarFragment : Fragment() {
+ private lateinit var binding: FragmentCalendarBinding
+ lateinit var adapterDay: DayAdapter
+ private val model: MainViewModel by activityViewModels()//Инициализировали класс
+ private lateinit var patientApi: PatientApi
+ private var selectedDate: LocalDate? = null
+ val prefPatientConclusion = ConclusionPref()
+ private val flightsAdapter = CalendareAdapter()
+ //Для разрешения проверки количества дней
+ var lookDateSportMax = false
+
+ @SuppressLint("NewApi")
+
+ //Загрузка данных для календаря
+ var calendare = false
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentCalendarBinding.inflate(layoutInflater, container, false)
+ return binding.root
+ }
+
+ @SuppressLint("NewApi")
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ if(isAdded) {
+ calendare = false
+ initRcViewCalendareMoment()
+ APIliveCountCalendareCurrent()
+ }
+
+ }
+
+ fun visibleCalendare(){
+ binding.CLCalendare.visibility = View.VISIBLE
+ binding.CLLoad.visibility = View.GONE
+ }
+
+ fun visibleLoad(){
+ binding.CLCalendare.visibility = View.GONE
+ binding.CLLoad.visibility = View.VISIBLE
+
+ }
+
+
+
+ @SuppressLint("NotifyDataSetChanged")
+ private fun calendareTwoAdd() {
+ if(calendare == false) {
+ calendare = true
+// binding.exFiveRv.apply {
+// layoutManager = LinearLayoutManager(requireContext(), RecyclerView.VERTICAL, false)
+// adapter = flightsAdapter
+// }
+ Log.i("listCalendare1", listCalendare.toString())
+ flightsAdapter.notifyDataSetChanged()
+
+ val daysOfWeek = daysOfWeek()
+ val currentMonth = YearMonth.now()
+ val startMonth = currentMonth.minusMonths(200)
+ val endMonth = currentMonth.plusMonths(200)
+ configureBinders(daysOfWeek)
+ binding.exFiveCalendar.setup(startMonth, endMonth, daysOfWeek.first())
+ binding.exFiveCalendar.scrollToMonth(currentMonth)
+
+ binding.exFiveCalendar.monthScrollListener = { month ->
+ binding.exFiveMonthYearText.text = month.yearMonth.displayText()
+
+ selectedDate?.let {
+ // Clear selection if we scroll to a new month.
+ selectedDate = null
+ binding.exFiveCalendar.notifyDateChanged(it)
+ updateAdapterForDate(null)
+ }
+ }
+
+ binding.exFiveNextMonthImage.setOnClickListener {
+ binding.exFiveCalendar.findFirstVisibleMonth()?.let {
+ binding.exFiveCalendar.smoothScrollToMonth(it.yearMonth.nextMonth)
+ }
+ }
+
+ binding.exFivePreviousMonthImage.setOnClickListener {
+ binding.exFiveCalendar.findFirstVisibleMonth()?.let {
+ binding.exFiveCalendar.smoothScrollToMonth(it.yearMonth.previousMonth)
+ }
+ }
+ visibleCalendare()
+ }
+ }
+
+ private fun initRcViewCalendareMoment() = with(binding) {
+ exFiveRv.layoutManager = GridLayoutManager(requireContext(), 1)//По вертикали будет выводить по умолчанию
+ exFiveRv.adapter = flightsAdapter
+ }
+
+
+ //Инициализация запроса
+ private fun initRetrofit() {
+ val interceptor = HttpLoggingInterceptor()
+ interceptor.level = HttpLoggingInterceptor.Level.BODY
+
+ val client = OkHttpClient
+ .Builder()
+ .addInterceptor(interceptor)
+ .build()
+
+ //Базовая ссылка
+ val retrofit = Retrofit.Builder()
+ .baseUrl("http://mobileapp.vmeda.org/api/").client(client)
+ .addConverterFactory(GsonConverterFactory.create())
+ .build()
+ patientApi = retrofit.create(PatientApi::class.java)//Экземпляр
+ }
+
+ //Функция получения данных для заполнения календаря
+ private fun APIliveCountCalendareCurrent() {
+ visibleLoad()
+ initRetrofit()
+
+ val Tokens = prefPatientConclusion.conclusionToken(requireContext())
+ CoroutineScope(Dispatchers.IO).launch {
+ val Calendare = patientApi.PatientCalendareDay("Bearer $Tokens")
+
+ activity?.runOnUiThread {
+ //Фиксируем полученные данные
+ val CalendareList = Calendare.body()
+ Log.i("1111111111111111111",CalendareList.toString())
+ //Если нету ошибок
+ if (CalendareList != null) {
+ Log.i("2222","2222")
+ listCalendare = CalendareList.сalendare
+ Log.i("listCalendare",listCalendare.toString())
+ calendareTwoAdd()
+
+ }
+ else{
+ timerCalendare()
+ }
+ }
+ }
+ }
+ private fun timerCalendare() {
+ Log.i("asdasdasdasd444444444", "23231x2wswqxsxsas")
+ calendare = false
+ CoroutineScope(Dispatchers.IO).launch {
+ Timer().schedule(timerTask {
+ activity?.runOnUiThread {
+ APIliveCountCalendareCurrent()
+ }
+ }, 15000)
+ }
+
+ }
+
+
+ private fun updateAdapterForDate(date: LocalDate?) {
+ val flightss = generateFlights().groupBy { it.time.toLocalDate() }
+ flightsAdapter.flights.clear()
+ flightsAdapter.flights.addAll(flightss[date].orEmpty())
+ flightsAdapter.notifyDataSetChanged()
+ }
+
+ private fun configureBinders(daysOfWeek: List) {
+ class DayViewContainer(view: View) : ViewContainer(view) {
+ lateinit var day: CalendarDay // Will be set when this container is bound.
+ val binding = Example5CalendarDayBinding.bind(view)
+
+ init {
+ view.setOnClickListener {
+ if (day.position == DayPosition.MonthDate) {
+ if (selectedDate != day.date) {
+ val oldDate = selectedDate
+ selectedDate = day.date
+ val binding = this@CalendarFragment.binding
+ binding.exFiveCalendar.notifyDateChanged(day.date)
+ oldDate?.let { binding.exFiveCalendar.notifyDateChanged(it) }
+ updateAdapterForDate(day.date)
+ }
+ }
+ }
+ }
+ }
+ binding.exFiveCalendar.dayBinder = object : MonthDayBinder {
+ override fun create(view: View) = DayViewContainer(view)
+
+ @SuppressLint("NewApi")
+ override fun bind(container: DayViewContainer, data: CalendarDay) {
+ container.day = data
+ val context = container.binding.root.context
+ val textView = container.binding.exFiveDayText
+ val layout = container.binding.exFiveDayLayout
+ textView.text = data.date.dayOfMonth.toString()
+
+ val flightTopView = container.binding.exFiveDayFlightTop
+ val flightBottomView = container.binding.exFiveDayFlightBottom
+ flightTopView.background = null
+ flightBottomView.background = null
+
+ if (data.position == DayPosition.MonthDate) {
+ textView.setTextColorRes(R.color.black)
+ layout.setBackgroundResource(if (selectedDate == data.date) R.drawable.example_5_selected_bg else 0)
+ val flightss = generateFlights().groupBy { it.time.toLocalDate() }
+ val flights = flightss[data.date]
+ if (flights != null) {
+ if (flights.count() == 1) {
+ flightBottomView.setBackgroundColor(context.getColorCompat(flights[0].color))
+ } else {
+ flightTopView.setBackgroundColor(context.getColorCompat(flights[0].color))
+ flightBottomView.setBackgroundColor(context.getColorCompat(flights[1].color))
+ }
+ }
+ } else {
+ textView.setTextColorRes(R.color.blue)
+ layout.background = null
+ }
+ }
+ }
+
+ class MonthViewContainer(view: View) : ViewContainer(view) {
+ val legendLayout = Example5CalendarHeaderBinding.bind(view).legendLayout.root
+ }
+
+ val typeFace = Typeface.create("sans-serif-light", Typeface.NORMAL)
+ binding.exFiveCalendar.monthHeaderBinder =
+ object : MonthHeaderFooterBinder {
+ override fun create(view: View) = MonthViewContainer(view)
+ override fun bind(container: MonthViewContainer, data: CalendarMonth) {
+ // Setup each header day text if we have not done that already.
+ if (container.legendLayout.tag == null) {
+ container.legendLayout.tag = data.yearMonth
+ container.legendLayout.children.map { it as TextView }
+ .forEachIndexed { index, tv ->
+ tv.text = daysOfWeek[index].displayText(uppercase = true)
+ tv.setTextColorRes(R.color.black)
+ tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12f)
+ tv.typeface = typeFace
+ }
+ }
+ }
+ }
+ }
+
+
+ companion object {
+
+ fun newInstance() = CalendarFragment()
+ }
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/Calendare/Utils.kt b/app/src/main/java/com/example/rehabilitation/Calendare/Calendare/Utils.kt
similarity index 91%
rename from app/src/main/java/com/example/rehabilitation/User/fragmentUser/Calendare/Utils.kt
rename to app/src/main/java/com/example/rehabilitation/Calendare/Calendare/Utils.kt
index 78a7b69..9551c1a 100644
--- a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/Calendare/Utils.kt
+++ b/app/src/main/java/com/example/rehabilitation/Calendare/Calendare/Utils.kt
@@ -1,4 +1,4 @@
-package com.example.calendarev2
+package com.example.rehabilitation.Calendare.Calendare
import android.content.Context
import android.graphics.drawable.Drawable
@@ -12,7 +12,8 @@ import androidx.annotation.DrawableRes
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import androidx.lifecycle.findViewTreeLifecycleOwner
-import com.example.calendarev2.sample.shared.StatusBarColorLifecycleObserver
+import com.example.rehabilitation.Calendare.Calendare.shared.StatusBarColorLifecycleObserver
+
fun View.makeVisible() {
visibility = View.VISIBLE
diff --git a/app/src/main/java/com/example/rehabilitation/Calendare/Calendare/shared/Flight.kt b/app/src/main/java/com/example/rehabilitation/Calendare/Calendare/shared/Flight.kt
new file mode 100644
index 0000000..0d90212
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Calendare/Calendare/shared/Flight.kt
@@ -0,0 +1,67 @@
+package com.example.rehabilitation.Calendare.Calendare.shared
+
+import android.annotation.SuppressLint
+import android.icu.text.SimpleDateFormat
+import android.util.Log
+import androidx.annotation.ColorRes
+import com.example.rehabilitation.R
+import com.example.rehabilitation.listCalendare
+import java.time.LocalDate
+import java.time.LocalDateTime
+import java.time.Month
+import java.time.YearMonth
+import java.time.format.DateTimeFormatter
+import kotlin.time.Duration.Companion.days
+
+
+data class Flight(
+ val time: LocalDateTime,
+ val item: String,
+ @ColorRes val color: Int,
+) {
+ data class Airport(val city: String, val code: String)
+}
+
+@SuppressLint("NewApi")
+fun generateFlights(): List = buildList {
+ //val currentMonth = LocalDate.now()
+ Log.i("listCalendare.size",listCalendare.size.toString())
+ Log.i("listCalendare.toString()",listCalendare.toString())
+ if(listCalendare.size>0){
+ for (i in 0..listCalendare.size-1) {
+ Log.i("listCalendare[i-1].date",listCalendare[0].day.toString())
+// val day = "${date[3]}"+"${date[4]}"//День
+// val mount = "${date[0]}"+"${date[1]}"//Месяц
+ var date = listCalendare[i].date
+ var dateDay = date[8]+""+date[9]
+ var dateMonth = date[5]+""+date[6]
+ var dateYear = date[0]+""+date[1]+""+date[2]+""+date[3]
+ Log.i("dateDay",dateDay)
+
+
+ LocalDate.of(dateYear.toInt(), dateMonth.toInt(), dateDay.toInt()).plusMonths(0).also { date ->
+ if(listCalendare[i].block != null){
+ Log.i("listCalendare[i].block",listCalendare[i].block)
+ add(Flight(date.atTime(0, 0), "Блокировка", R.color.red_800))
+ }
+ else if(listCalendare[i].pause != null){
+ add(Flight(date.atTime(0, 0), "Пауза", R.color.example_7_yellow))
+ }
+ if(listCalendare[i].id_after_questionnaire != null){
+ add(Flight(date.atTime(0, 0), "Выполнена тренировка", R.color.green_700))
+ }
+ else{
+ if(listCalendare[i].block == null){
+ add(Flight(date.atTime(0, 0), "День комплекса", R.color.blue_800))
+ }
+ }
+
+
+ }
+ }
+ }
+}
+
+@SuppressLint("NewApi")
+val flightDateTimeFormatter: DateTimeFormatter =
+ DateTimeFormatter.ofPattern("EEE'\n'dd MMM'\n'HH:mm")
diff --git a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/Calendare/shared/StatusBarColorLifecycleObserver.kt b/app/src/main/java/com/example/rehabilitation/Calendare/Calendare/shared/StatusBarColorLifecycleObserver.kt
similarity index 93%
rename from app/src/main/java/com/example/rehabilitation/User/fragmentUser/Calendare/shared/StatusBarColorLifecycleObserver.kt
rename to app/src/main/java/com/example/rehabilitation/Calendare/Calendare/shared/StatusBarColorLifecycleObserver.kt
index 285065b..2852497 100644
--- a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/Calendare/shared/StatusBarColorLifecycleObserver.kt
+++ b/app/src/main/java/com/example/rehabilitation/Calendare/Calendare/shared/StatusBarColorLifecycleObserver.kt
@@ -1,4 +1,4 @@
-package com.example.calendarev2.sample.shared
+package com.example.rehabilitation.Calendare.Calendare.shared
import android.annotation.SuppressLint
import android.app.Activity
@@ -10,7 +10,7 @@ import androidx.core.content.ContextCompat
import androidx.core.graphics.ColorUtils
import androidx.lifecycle.DefaultLifecycleObserver
import androidx.lifecycle.LifecycleOwner
-import com.example.calendarev2.R
+import com.example.rehabilitation.R
import java.lang.ref.WeakReference
diff --git a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/Calendare/shared/Utils.kt b/app/src/main/java/com/example/rehabilitation/Calendare/Calendare/shared/Utils.kt
similarity index 96%
rename from app/src/main/java/com/example/rehabilitation/User/fragmentUser/Calendare/shared/Utils.kt
rename to app/src/main/java/com/example/rehabilitation/Calendare/Calendare/shared/Utils.kt
index ec09abe..5ccf09a 100644
--- a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/Calendare/shared/Utils.kt
+++ b/app/src/main/java/com/example/rehabilitation/Calendare/Calendare/shared/Utils.kt
@@ -1,4 +1,4 @@
-package com.example.calendarev2.sample.shared
+package com.example.rehabilitation.Calendare.Calendare.shared
import android.annotation.SuppressLint
import android.app.Activity
diff --git a/app/src/main/java/com/example/rehabilitation/Calendare/CalendareAdapter.kt b/app/src/main/java/com/example/rehabilitation/Calendare/CalendareAdapter.kt
index a185dac..456a0f3 100644
--- a/app/src/main/java/com/example/rehabilitation/Calendare/CalendareAdapter.kt
+++ b/app/src/main/java/com/example/rehabilitation/Calendare/CalendareAdapter.kt
@@ -1,9 +1,13 @@
-package com.example.calendarev2
+package com.example.rehabilitation.Calendare.Calendare
import android.annotation.SuppressLint
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
-import com.example.calendarev2.databinding.Example5EventItemViewv2Binding
+import com.example.rehabilitation.Calendare.Calendare.getColorCompat
+import com.example.rehabilitation.Calendare.Calendare.layoutInflater
+import com.example.rehabilitation.Calendare.Calendare.shared.Flight
+import com.example.rehabilitation.Calendare.Calendare.shared.flightDateTimeFormatter
+import com.example.rehabilitation.databinding.Example5EventItemViewv2Binding
class CalendareAdapter :
diff --git a/app/src/main/java/com/example/rehabilitation/Calendare/CalendareListModel.kt b/app/src/main/java/com/example/rehabilitation/Calendare/CalendareListModel.kt
new file mode 100644
index 0000000..4179e58
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Calendare/CalendareListModel.kt
@@ -0,0 +1,5 @@
+package com.example.rehabilitation.Calendare
+
+data class CalendareListModel(
+ val сalendare: List
+)
diff --git a/app/src/main/java/com/example/rehabilitation/Calendare/CalendareModel.kt b/app/src/main/java/com/example/rehabilitation/Calendare/CalendareModel.kt
new file mode 100644
index 0000000..346af85
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Calendare/CalendareModel.kt
@@ -0,0 +1,19 @@
+package com.example.rehabilitation.Calendare
+
+data class CalendareModel(
+ val id: Int,
+ val id_patient : Int,
+ val day: String,
+ val date: String,
+ val count_workout_max:Int,
+ val count_workout_make: Int,
+ val id_sets_of_sports_activities : Int,
+ val article_sport_for_day: String,
+ val id_sport_patient :Int,
+ val block: String,
+ val pause: String,
+ val id_before_questionnaire : String,
+ val id_after_questionnaire : String,
+ val created_at : String,
+ val updated_at : String,
+)
diff --git a/app/src/main/java/com/example/rehabilitation/Hranilihe.kt b/app/src/main/java/com/example/rehabilitation/Hranilihe.kt
index 16a3c66..1f817c5 100644
--- a/app/src/main/java/com/example/rehabilitation/Hranilihe.kt
+++ b/app/src/main/java/com/example/rehabilitation/Hranilihe.kt
@@ -1,10 +1,11 @@
package com.example.rehabilitation
import android.content.SharedPreferences
-import com.example.rehabilitation.model_adapter.Month.MonthModel
-import com.example.rehabilitation.model_adapter.Progress.AfterListModel
-import com.example.rehabilitation.model_adapter.Progress.BeforeListModel
-import com.example.rehabilitation.model_adapter.Progress.ProgressModel
+import com.example.rehabilitation.Calendare.CalendareModel
+import com.example.rehabilitation.Sport.Image.ImageSportModel
+import com.example.rehabilitation.Progress.AfterListModel
+import com.example.rehabilitation.Progress.BeforeListModel
+import com.example.rehabilitation.Progress.ProgressModel
import java.io.File
import java.io.FileOutputStream
@@ -12,18 +13,20 @@ import java.io.FileOutputStream
var prefUserPatientToken: SharedPreferences? = null
var UserPatientToken:String = ""
-var prefUserDoctorToken: SharedPreferences? = null
-var UserDoctorToken:String = ""
-var prefPatientDoctorNew: SharedPreferences? = null
-var PatientDoctorNew:Int = 0
var pref: SharedPreferences? = null
-var prefDoctor: SharedPreferences? = null
+
+//Общее количество дней курса
+var prefSportCursDayAll: SharedPreferences? = null
+var SportCursDayAll :Int = 0
+var prefSportCursDayLast: SharedPreferences? = null
+var SportCursDayLast :String = ""
var prefSportCursNumber: SharedPreferences? = null
var prefCursDay: SharedPreferences? = null
var SportCursDay :Int = 0
+
//7 дней пройдено
var prefSport7Day: SharedPreferences? = null
var Sport7Day :Int = 0
@@ -127,11 +130,14 @@ var listAfter:List = listOf()
//Прогрес
var listProgressAll:List = listOf()
var listProgressCheck:List = listOf()
-
+var listImageSport:List = listOf()
var uriFileEF: File? =null
var fileUri2: FileOutputStream? =null
//Переменная для хранения дня, чтобы при нажатие на главной тсранице или в календаре
var dateHomeCalendare:String = ""
+
+//Календарь
+var listCalendare:List = listOf()
class Hranilihe {
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/CommonInfoFragment.kt b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/CommonInfoFragment.kt
similarity index 68%
rename from app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/CommonInfoFragment.kt
rename to app/src/main/java/com/example/rehabilitation/Information/InfoFragment/CommonInfoFragment.kt
index 3ae4b1e..57f2027 100644
--- a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/CommonInfoFragment.kt
+++ b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/CommonInfoFragment.kt
@@ -6,6 +6,7 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.rehabilitation.R
+import com.example.rehabilitation.Information.InformationFragment
import com.example.rehabilitation.databinding.FragmentCommonInfoBinding
class CommonInfoFragment : Fragment() {
@@ -17,6 +18,18 @@ class CommonInfoFragment : Fragment() {
): View? {
binding = FragmentCommonInfoBinding.inflate(inflater, container, false)
return binding.root
+
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+
+ binding.btnExit.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InformationFragment.newInstance())?.addToBackStack(null)?.commit()
+
+ }
}
// override fun onResume() {
diff --git a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MedicalReabilitationFragment.kt b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MedicalReabilitationFragment.kt
similarity index 62%
rename from app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MedicalReabilitationFragment.kt
rename to app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MedicalReabilitationFragment.kt
index 281d789..173203d 100644
--- a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MedicalReabilitationFragment.kt
+++ b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MedicalReabilitationFragment.kt
@@ -6,6 +6,7 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.rehabilitation.R
+import com.example.rehabilitation.Information.InformationFragment
import com.example.rehabilitation.databinding.FragmentMedicalReabilitationBinding
class MedicalReabilitationFragment : Fragment() {
@@ -15,8 +16,18 @@ class MedicalReabilitationFragment : Fragment() {
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
- binding = FragmentMedicalReabilitationBinding.inflate(inflater, container, false)
- return inflater.inflate(R.layout.fragment_medical_reabilitation, container, false)
+ binding = FragmentMedicalReabilitationBinding.inflate(layoutInflater, container, false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ binding.btnExit.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InformationFragment.newInstance())?.addToBackStack(null)?.commit()
+
+ }
}
// override fun onResume() {
diff --git a/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/BreathingExercisesFragment.kt b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/BreathingExercisesFragment.kt
new file mode 100644
index 0000000..a18fc0e
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/BreathingExercisesFragment.kt
@@ -0,0 +1,43 @@
+package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.example.rehabilitation.R
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment
+import com.example.rehabilitation.databinding.FragmentBreathingExercisesBinding
+
+class BreathingExercisesFragment : Fragment() {
+ private lateinit var binding:FragmentBreathingExercisesBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentBreathingExercisesBinding.inflate(layoutInflater, container, false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ binding.btnExit.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+
+ binding.DecongestantTherapy.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.DecongestantTherapyFragment.Companion.newInstance()
+ )?.addToBackStack(null)?.commit()
+ }
+
+ }
+
+ companion object {
+
+ fun newInstance() =
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.BreathingExercisesFragment()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/ContourPreventionFragment.kt b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/ContourPreventionFragment.kt
new file mode 100644
index 0000000..6d5d5a0
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/ContourPreventionFragment.kt
@@ -0,0 +1,42 @@
+package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.example.rehabilitation.R
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment
+import com.example.rehabilitation.databinding.FragmentContourPreventionBinding
+
+
+class ContourPreventionFragment : Fragment() {
+ private lateinit var binding:FragmentContourPreventionBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentContourPreventionBinding.inflate(layoutInflater, container, false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ binding.btnExit.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+
+ binding.btnPhantomPains.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.PhantomPainsFragment.Companion.newInstance()
+ )?.addToBackStack(null)?.commit()
+ }
+ }
+
+ companion object {
+ fun newInstance() =
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.ContourPreventionFragment()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/DecongestantTherapyFragment.kt b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/DecongestantTherapyFragment.kt
new file mode 100644
index 0000000..782c4e5
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/DecongestantTherapyFragment.kt
@@ -0,0 +1,41 @@
+package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.example.rehabilitation.R
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment
+import com.example.rehabilitation.databinding.FragmentDecongestantTherapyBinding
+
+class DecongestantTherapyFragment : Fragment() {
+ private lateinit var binding: FragmentDecongestantTherapyBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentDecongestantTherapyBinding.inflate(layoutInflater, container, false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ binding.btnExit.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+
+ binding.btnContracturesPrevention.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.ContourPreventionFragment.Companion.newInstance()
+ )?.addToBackStack(null)?.commit()
+ }
+ }
+
+ companion object {
+ fun newInstance() =
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.DecongestantTherapyFragment()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/FormationOfTheStumpFragment.kt b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/FormationOfTheStumpFragment.kt
new file mode 100644
index 0000000..84f6142
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/FormationOfTheStumpFragment.kt
@@ -0,0 +1,42 @@
+package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.example.rehabilitation.R
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment
+import com.example.rehabilitation.databinding.FragmentFormationOfTheStumpBinding
+
+
+class FormationOfTheStumpFragment : Fragment() {
+ private lateinit var binding:FragmentFormationOfTheStumpBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentFormationOfTheStumpBinding.inflate(layoutInflater,container,false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ binding.btnExit.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+ binding.btnPhysicalExercises.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.PhysicalExercisesFragment.Companion.newInstance()
+ )?.addToBackStack(null)?.commit()
+ }
+ }
+
+ companion object {
+ fun newInstance() =
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.FormationOfTheStumpFragment()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/MotorModeFragment.kt b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/MotorModeFragment.kt
new file mode 100644
index 0000000..11665a2
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/MotorModeFragment.kt
@@ -0,0 +1,42 @@
+package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.example.rehabilitation.R
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment
+import com.example.rehabilitation.databinding.FragmentMotorModeBinding
+
+class MotorModeFragment : Fragment() {
+ private lateinit var binding: FragmentMotorModeBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentMotorModeBinding.inflate(layoutInflater,container,false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ binding.btnExit.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+
+ binding.btnStumpCare.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.StumpCareFragment.Companion.newInstance()
+ )?.addToBackStack(null)?.commit()
+ }
+ }
+
+ companion object {
+ fun newInstance() =
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.MotorModeFragment()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/OrganizationOfTheDailyRoutineAfterSurgeryFragment.kt b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/OrganizationOfTheDailyRoutineAfterSurgeryFragment.kt
new file mode 100644
index 0000000..f93e177
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/OrganizationOfTheDailyRoutineAfterSurgeryFragment.kt
@@ -0,0 +1,41 @@
+package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.example.rehabilitation.R
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment
+import com.example.rehabilitation.databinding.FragmentOrganizationOfTheDailyRoutineAfterSurgeryBinding
+
+
+class OrganizationOfTheDailyRoutineAfterSurgeryFragment : Fragment() {
+ private lateinit var binding: FragmentOrganizationOfTheDailyRoutineAfterSurgeryBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentOrganizationOfTheDailyRoutineAfterSurgeryBinding.inflate(layoutInflater,container,false)
+ return binding.root
+ }
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ binding.btnExit.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+ binding.btnOrganizationOfTheDayRegimeOfTheSecondWeekAfterAmputation.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.OrganizationOfTheDayRegimeOfTheSecondWeekAfterAmputationFragment.Companion.newInstance()
+ )?.addToBackStack(null)?.commit()
+ }
+ }
+
+ companion object {
+
+ fun newInstance() =
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.OrganizationOfTheDailyRoutineAfterSurgeryFragment()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/OrganizationOfTheDayRegimeOfTheSecondWeekAfterAmputationFragment.kt b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/OrganizationOfTheDayRegimeOfTheSecondWeekAfterAmputationFragment.kt
new file mode 100644
index 0000000..2c06856
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/OrganizationOfTheDayRegimeOfTheSecondWeekAfterAmputationFragment.kt
@@ -0,0 +1,36 @@
+package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.example.rehabilitation.R
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment
+import com.example.rehabilitation.databinding.FragmentOrganizationOfTheDayRegimeOfTheSecondWeekAfterAmputationBinding
+
+class OrganizationOfTheDayRegimeOfTheSecondWeekAfterAmputationFragment : Fragment() {
+ private lateinit var binding: FragmentOrganizationOfTheDayRegimeOfTheSecondWeekAfterAmputationBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentOrganizationOfTheDayRegimeOfTheSecondWeekAfterAmputationBinding.inflate(layoutInflater,container,false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ binding.btnExit.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+ }
+
+ companion object {
+
+ fun newInstance() =
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.OrganizationOfTheDayRegimeOfTheSecondWeekAfterAmputationFragment()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/PhantomPainsFragment.kt b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/PhantomPainsFragment.kt
new file mode 100644
index 0000000..ba7415c
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/PhantomPainsFragment.kt
@@ -0,0 +1,41 @@
+package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.example.rehabilitation.R
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment
+import com.example.rehabilitation.databinding.FragmentPhantomPainsBinding
+
+class PhantomPainsFragment : Fragment() {
+ private lateinit var binding:FragmentPhantomPainsBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentPhantomPainsBinding.inflate(layoutInflater, container, false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ binding.btnExit.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+ binding.btnSurfaceSensitivity.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.SurfaceSensitivityFragment.Companion.newInstance()
+ )?.addToBackStack(null)?.commit()
+ }
+ }
+
+ companion object {
+
+ fun newInstance() =
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.PhantomPainsFragment()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/PhysicalExercisesFragment.kt b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/PhysicalExercisesFragment.kt
new file mode 100644
index 0000000..afc5dbb
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/PhysicalExercisesFragment.kt
@@ -0,0 +1,41 @@
+package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.example.rehabilitation.R
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment
+import com.example.rehabilitation.databinding.FragmentPhysicalExercisesBinding
+
+class PhysicalExercisesFragment : Fragment() {
+ private lateinit var binding: FragmentPhysicalExercisesBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentPhysicalExercisesBinding.inflate(layoutInflater,container,false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ binding.btnExit.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+ binding.btnOrganizationOfTheDailyRoutineAfterSurgery.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.OrganizationOfTheDailyRoutineAfterSurgeryFragment.Companion.newInstance()
+ )?.addToBackStack(null)?.commit()
+ }
+ }
+
+ companion object {
+
+ fun newInstance() =
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.PhysicalExercisesFragment()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/StumpCareFragment.kt b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/StumpCareFragment.kt
new file mode 100644
index 0000000..a1f6924
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/StumpCareFragment.kt
@@ -0,0 +1,43 @@
+package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.example.rehabilitation.R
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment
+import com.example.rehabilitation.databinding.FragmentStumpCareBinding
+
+
+class StumpCareFragment : Fragment() {
+ private lateinit var binding: FragmentStumpCareBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentStumpCareBinding.inflate(layoutInflater,container,false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ binding.btnExit.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+
+ binding.btnBreathingExercises.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.BreathingExercisesFragment.Companion.newInstance()
+ )?.addToBackStack(null)?.commit()
+ }
+ }
+
+ companion object {
+
+ fun newInstance() =
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.StumpCareFragment()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/SurfaceSensitivityFragment.kt b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/SurfaceSensitivityFragment.kt
new file mode 100644
index 0000000..39b1606
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/SurfaceSensitivityFragment.kt
@@ -0,0 +1,42 @@
+package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.example.rehabilitation.R
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment
+import com.example.rehabilitation.databinding.FragmentSurfaceSensitivityBinding
+
+class SurfaceSensitivityFragment : Fragment() {
+ private lateinit var binding:FragmentSurfaceSensitivityBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentSurfaceSensitivityBinding.inflate(layoutInflater,container,false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ binding.btnExit.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+ binding.btnFormationOfTheStump.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.FormationOfTheStumpFragment.Companion.newInstance()
+ )?.addToBackStack(null)?.commit()
+ }
+
+ }
+
+ companion object {
+ fun newInstance() =
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.SurfaceSensitivityFragment()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriodFragment.kt b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriodFragment.kt
new file mode 100644
index 0000000..6905177
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriodFragment.kt
@@ -0,0 +1,111 @@
+package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.example.rehabilitation.R
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.BreathingExercisesFragment
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.ContourPreventionFragment
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.DecongestantTherapyFragment
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.FormationOfTheStumpFragment
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.MotorModeFragment
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.OrganizationOfTheDailyRoutineAfterSurgeryFragment
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.OrganizationOfTheDayRegimeOfTheSecondWeekAfterAmputationFragment
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.PhantomPainsFragment
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.PhysicalExercisesFragment
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.StumpCareFragment
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.SurfaceSensitivityFragment
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendationsFragment
+import com.example.rehabilitation.databinding.FragmentEarlyPostoperativePeriodBinding
+
+class EarlyPostoperativePeriodFragment : Fragment() {
+ private lateinit var binding:FragmentEarlyPostoperativePeriodBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentEarlyPostoperativePeriodBinding.inflate(layoutInflater,container,false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ binding.btnMotorMode.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.MotorModeFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+
+ binding.btnStumpCare.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.StumpCareFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+
+ binding.btnBreathingExercises.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.BreathingExercisesFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+
+ binding.DecongestantTherapy.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.DecongestantTherapyFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+
+ binding.btnContracturesPrevention.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.ContourPreventionFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+
+ binding.btnPhantomPains.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.PhantomPainsFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+
+ binding.btnExit.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendationsFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+
+ binding.btnFurther.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment.Companion.newInstance()
+ )?.addToBackStack(null)?.commit()
+ }
+
+ binding.btnSurfaceSensitivity.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.SurfaceSensitivityFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+
+ binding.btnFormationOfTheStump.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.FormationOfTheStumpFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+
+ binding.btnPhysicalExercises.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.PhysicalExercisesFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+
+ binding.btnOrganizationOfTheDailyRoutineAfterSurgery.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.OrganizationOfTheDailyRoutineAfterSurgeryFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+
+ binding.btnOrganizationOfTheDayRegimeOfTheSecondWeekAfterAmputation.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.OrganizationOfTheDayRegimeOfTheSecondWeekAfterAmputationFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+
+
+ }
+
+ companion object {
+
+ fun newInstance() =
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/LatePostoperativePeriod/DecongestantTherapyLateFragment.kt b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/LatePostoperativePeriod/DecongestantTherapyLateFragment.kt
new file mode 100644
index 0000000..01e2dde
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/LatePostoperativePeriod/DecongestantTherapyLateFragment.kt
@@ -0,0 +1,42 @@
+package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.example.rehabilitation.R
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment
+import com.example.rehabilitation.databinding.FragmentDecongestantTherapyLateBinding
+
+class DecongestantTherapyLateFragment : Fragment() {
+ private lateinit var binding: FragmentDecongestantTherapyLateBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentDecongestantTherapyLateBinding.inflate(layoutInflater,container,false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ binding.btnExit.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(
+ R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+ binding.btnMassageTechniqueLate.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.MassageTechniqueLateFragment.Companion.newInstance()
+ )?.addToBackStack(null)?.commit()
+ }
+ }
+
+ companion object {
+
+ fun newInstance() =
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.DecongestantTherapyLateFragment()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/LatePostoperativePeriod/MassageTechniqueLateFragment.kt b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/LatePostoperativePeriod/MassageTechniqueLateFragment.kt
new file mode 100644
index 0000000..5f89062
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/LatePostoperativePeriod/MassageTechniqueLateFragment.kt
@@ -0,0 +1,42 @@
+package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.example.rehabilitation.R
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment
+import com.example.rehabilitation.databinding.FragmentMassageTechniqueLateBinding
+
+
+class MassageTechniqueLateFragment : Fragment() {
+ private lateinit var binding: FragmentMassageTechniqueLateBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentMassageTechniqueLateBinding.inflate(layoutInflater,container,false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ binding.btnExit.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+ binding.btnPreventionOfContracturesLate.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.PreventionOfContracturesLateFragment.Companion.newInstance()
+ )?.addToBackStack(null)?.commit()
+ }
+ }
+
+ companion object {
+
+ fun newInstance() =
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.MassageTechniqueLateFragment()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/LatePostoperativePeriod/PhantomPainsLateFragment.kt b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/LatePostoperativePeriod/PhantomPainsLateFragment.kt
new file mode 100644
index 0000000..9a88986
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/LatePostoperativePeriod/PhantomPainsLateFragment.kt
@@ -0,0 +1,38 @@
+package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.example.rehabilitation.R
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment
+import com.example.rehabilitation.databinding.FragmentPhantomPainsLateBinding
+
+
+class PhantomPainsLateFragment : Fragment() {
+ private lateinit var binding:FragmentPhantomPainsLateBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentPhantomPainsLateBinding.inflate(layoutInflater,container,false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ binding.btnExit.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(
+ R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+ }
+
+ companion object {
+
+ fun newInstance() =
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.PhantomPainsLateFragment()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/LatePostoperativePeriod/PreparationForProstheticsLateFragment.kt b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/LatePostoperativePeriod/PreparationForProstheticsLateFragment.kt
new file mode 100644
index 0000000..bc10cfd
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/LatePostoperativePeriod/PreparationForProstheticsLateFragment.kt
@@ -0,0 +1,43 @@
+package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.example.rehabilitation.R
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment
+import com.example.rehabilitation.databinding.FragmentPreparationForProstheticsLateBinding
+
+
+class PreparationForProstheticsLateFragment : Fragment() {
+ private lateinit var binding: FragmentPreparationForProstheticsLateBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentPreparationForProstheticsLateBinding.inflate(layoutInflater,container,false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ binding.btnExit.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(
+ R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+ binding.btnDecongestantTherapyLate.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.DecongestantTherapyLateFragment.Companion.newInstance()
+ )?.addToBackStack(null)?.commit()
+ }
+ }
+
+ companion object {
+
+ fun newInstance() =
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.PreparationForProstheticsLateFragment()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/LatePostoperativePeriod/PreventionOfContracturesLateFragment.kt b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/LatePostoperativePeriod/PreventionOfContracturesLateFragment.kt
new file mode 100644
index 0000000..cac380f
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/LatePostoperativePeriod/PreventionOfContracturesLateFragment.kt
@@ -0,0 +1,41 @@
+package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.example.rehabilitation.R
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment
+import com.example.rehabilitation.databinding.FragmentPreventionOfContracturesLateBinding
+
+class PreventionOfContracturesLateFragment : Fragment() {
+ private lateinit var binding: FragmentPreventionOfContracturesLateBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentPreventionOfContracturesLateBinding.inflate(layoutInflater,container,false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ binding.btnExit.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+ binding.btnPhantomPainsLate.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.PhantomPainsLateFragment.Companion.newInstance()
+ )?.addToBackStack(null)?.commit()
+ }
+ }
+
+ companion object {
+
+ fun newInstance() =
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.PreventionOfContracturesLateFragment()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/LatePostoperativePeriodFragment.kt b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/LatePostoperativePeriodFragment.kt
new file mode 100644
index 0000000..9627728
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendations/LatePostoperativePeriodFragment.kt
@@ -0,0 +1,63 @@
+package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.example.rehabilitation.R
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.DecongestantTherapyLateFragment
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.MassageTechniqueLateFragment
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.PhantomPainsLateFragment
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.PreparationForProstheticsLateFragment
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.PreventionOfContracturesLateFragment
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendationsFragment
+import com.example.rehabilitation.databinding.FragmentLatePostoperativePeriodBinding
+
+class LatePostoperativePeriodFragment : Fragment() {
+ private lateinit var binding: FragmentLatePostoperativePeriodBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentLatePostoperativePeriodBinding.inflate(layoutInflater,container,false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ binding.btnExit.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendationsFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+
+ binding.btnPreparationForProstheticsLate.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.PreparationForProstheticsLateFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+ binding.btnDecongestantTherapyLate.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.DecongestantTherapyLateFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+ binding.btnMassageTechniqueLate.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.MassageTechniqueLateFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+ binding.btnPreventionOfContracturesLate.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.PreventionOfContracturesLateFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+ binding.btnPhantomPainsLate.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.PhantomPainsLateFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+ }
+
+ companion object {
+
+ fun newInstance() =
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendationsFragment.kt b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendationsFragment.kt
new file mode 100644
index 0000000..943275a
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendationsFragment.kt
@@ -0,0 +1,48 @@
+package com.example.rehabilitation.Information.InfoFragment
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.example.rehabilitation.R
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment
+import com.example.rehabilitation.Information.InformationFragment
+import com.example.rehabilitation.databinding.FragmentMethodologicalRecommendationsBinding
+
+class MethodologicalRecommendationsFragment : Fragment() {
+ private lateinit var binding: FragmentMethodologicalRecommendationsBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentMethodologicalRecommendationsBinding.inflate(layoutInflater,container,false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ binding.btnExit.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InformationFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+
+ binding.btnEarlyPostoperativePeriod.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+
+ binding.btnLatePostoperativePeriod.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
+ }
+
+ }
+
+ companion object {
+ fun newInstance() =
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendationsFragment()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/faqFragment.kt b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/faqFragment.kt
similarity index 68%
rename from app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/faqFragment.kt
rename to app/src/main/java/com/example/rehabilitation/Information/InfoFragment/faqFragment.kt
index 52f1c02..efbc690 100644
--- a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/faqFragment.kt
+++ b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/faqFragment.kt
@@ -6,6 +6,7 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.rehabilitation.R
+import com.example.rehabilitation.Information.InformationFragment
import com.example.rehabilitation.databinding.FragmentFaqBinding
class faqFragment : Fragment() {
@@ -22,6 +23,15 @@ class faqFragment : Fragment() {
return binding.root
}
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ binding.btnExit.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ com.example.rehabilitation.Information.InformationFragment.newInstance())?.addToBackStack(null)?.commit()
+
+ }
+ }
+
// override fun onResume() {
// super.onResume()
// binding.CLFaq.visibility = View.VISIBLE
diff --git a/app/src/main/java/com/example/rehabilitation/InformationActivity.kt b/app/src/main/java/com/example/rehabilitation/Information/InformationActivity.kt
similarity index 83%
rename from app/src/main/java/com/example/rehabilitation/InformationActivity.kt
rename to app/src/main/java/com/example/rehabilitation/Information/InformationActivity.kt
index 24cc224..2265942 100644
--- a/app/src/main/java/com/example/rehabilitation/InformationActivity.kt
+++ b/app/src/main/java/com/example/rehabilitation/Information/InformationActivity.kt
@@ -1,11 +1,10 @@
-package com.example.rehabilitation
+package com.example.rehabilitation.Information
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
-import androidx.appcompat.app.AlertDialog
-import com.example.rehabilitation.User.fragmentUser.InformationFragment
-import com.example.rehabilitation.User.fragmentUser.SceduleFragment
+import com.example.rehabilitation.MainActivity
+import com.example.rehabilitation.R
import com.example.rehabilitation.databinding.ActivityInformationBinding
class InformationActivity : AppCompatActivity() {
diff --git a/app/src/main/java/com/example/rehabilitation/Information/InformationFragment.kt b/app/src/main/java/com/example/rehabilitation/Information/InformationFragment.kt
new file mode 100644
index 0000000..0cdb1ac
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Information/InformationFragment.kt
@@ -0,0 +1,105 @@
+package com.example.rehabilitation.Information
+
+import android.content.Intent
+import android.net.Uri
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.example.rehabilitation.MainActivity
+import com.example.rehabilitation.R
+import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendationsFragment
+import com.example.rehabilitation.MainFragment
+import com.example.rehabilitation.Setting.SettingFragment
+import com.example.rehabilitation.databinding.FragmentInformationBinding
+import com.example.rehabilitation.fragment.InfoFragment.CommonInfoFragment
+import com.example.rehabilitation.fragment.InfoFragment.MedicalReabilitationFragment
+import com.example.rehabilitation.fragment.InfoFragment.faqFragment
+
+
+class InformationFragment : Fragment() {
+ private lateinit var binding: FragmentInformationBinding
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentInformationBinding.inflate(layoutInflater, container, false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ if(isAdded()) {
+ //Выход со страницы
+ binding.btnExitInformation.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.CLMain, MainFragment.newInstance())
+ ?.commit()
+ }
+
+ binding.methodologicalRecommendationsButton.setOnClickListener {
+ val infoFrag = activity?.supportFragmentManager?.beginTransaction()
+ infoFrag?.replace(
+ R.id.CLInformation,
+ com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendationsFragment.newInstance()
+ )
+ infoFrag?.addToBackStack(null)
+ infoFrag?.commit()
+
+ }
+
+ binding.commonInformationButton.setOnClickListener {
+ val infoFrag = activity?.supportFragmentManager?.beginTransaction()
+ infoFrag?.replace(R.id.CLInformation, CommonInfoFragment.newInstance())
+ infoFrag?.addToBackStack(null)
+ infoFrag?.commit()
+
+ }
+
+ binding.frequentlyAskedQuestionsButton.setOnClickListener {
+ val infoFrag = activity?.supportFragmentManager?.beginTransaction()
+ infoFrag?.replace(R.id.CLInformation, faqFragment.newInstance())
+ infoFrag?.addToBackStack(null)
+ infoFrag?.commit()
+
+ }
+
+ binding.medicalReabilitationButton.setOnClickListener {
+ val infoFrag = activity?.supportFragmentManager?.beginTransaction()
+ infoFrag?.replace(R.id.CLInformation, MedicalReabilitationFragment.newInstance())
+ infoFrag?.addToBackStack(null)
+ infoFrag?.commit()
+
+ }
+
+ binding.fondButton.setOnClickListener {
+ val i = Intent(
+ Intent.ACTION_VIEW,
+ Uri.parse("https://фонд-защитники-отечества.рф/filials")
+ )
+ startActivity(i)
+ }
+ }
+ }
+
+// override fun onDestroy() {
+// super.onDestroy()
+// activity?.finish()
+//
+// binding.CLFragmentInformation.visibility = View.GONE
+// }
+//
+// override fun onResume() {
+// super.onResume()
+// binding.CLFragmentInformation.visibility = View.VISIBLE
+//
+// }
+
+
+
+ companion object {
+
+ fun newInstance() = com.example.rehabilitation.Information.InformationFragment()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/MainActivity.kt b/app/src/main/java/com/example/rehabilitation/MainActivity.kt
index c40cc58..efec030 100644
--- a/app/src/main/java/com/example/rehabilitation/MainActivity.kt
+++ b/app/src/main/java/com/example/rehabilitation/MainActivity.kt
@@ -1,45 +1,31 @@
package com.example.rehabilitation
import android.annotation.SuppressLint
-import android.content.Context
-import android.content.Intent
-import android.icu.text.SimpleDateFormat
-import android.icu.util.Calendar
import android.os.Bundle
import android.util.Log
-import android.widget.Toast
-import androidx.activity.viewModels
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
-import androidx.core.app.ActivityCompat
-import androidx.core.view.GravityCompat
-import androidx.lifecycle.LifecycleOwner
-import com.example.rehabilitation.Auth.AuthDoctorActivity
-import com.example.rehabilitation.Auth.AuthorizationActivity
-import com.example.rehabilitation.User.fragmentUser.CalendarFragment
-import com.example.rehabilitation.User.fragmentUser.HomeFragment
-import com.example.rehabilitation.User.fragmentUser.InformationFragment
-import com.example.rehabilitation.User.fragmentUser.ProgresFragment
-import com.example.rehabilitation.User.fragmentUser.SceduleFragment
+import com.example.rehabilitation.Auth.AuthFragment
+import com.example.rehabilitation.Pref.ConclusionPref
+import com.example.rehabilitation.Retrofit.PatientApi
import com.example.rehabilitation.databinding.ActivityMainBinding
-import com.example.rehabilitation.model_adapter.DataModel
-import com.google.firebase.database.ktx.database
-import com.google.firebase.ktx.Firebase
-import java.time.LocalDate
-import java.util.Date
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import okhttp3.OkHttpClient
+import okhttp3.logging.HttpLoggingInterceptor
+import retrofit2.Retrofit
+import retrofit2.converter.gson.GsonConverterFactory
class MainActivity : AppCompatActivity() {
-
- var backPressedTime: Long = 0
-
private lateinit var binding: ActivityMainBinding
- //Для постоянного охаранения данных(для токена)
- //var pref: SharedPreferences? = null
- private val dataModel: DataModel by viewModels()//Для передачи данных
- var sdf: SimpleDateFormat = SimpleDateFormat("EEEE")
- var d: Date = Date()
- var dayOfTheWeek: String = sdf.format(d)
+ private lateinit var patientApi: PatientApi
+
+ //Токен
+ private var Token = ""
+ val prefPatientConclusion = ConclusionPref()
+ var backPressedTime: Long = 0
@SuppressLint("DiscouragedApi")
@@ -48,188 +34,105 @@ class MainActivity : AppCompatActivity() {
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
- //Функция инициализации хранилиша для токена
- data_prefUserPatientToken()
-
-
- dataModel.fragmentMenu.observe(this as LifecycleOwner, {
- binding.buttonNavigation.selectedItemId = it
- })
-
-
- //Функция инициализации фрагметов
- fragment_inicializ()
-
- /*binding.button.setOnClickListener {
- val intent = Intent(this,MainActivity2::class.java)//Открытие окна
- startActivity(intent)
- }*/
-
- binding.btnSetting.setOnClickListener {
- val intent = Intent(this, SettingActivity::class.java)
- startActivity(intent)
- finish()
- }
-
- binding.btnInformation.setOnClickListener {
- val intent = Intent(this, InformationActivity::class.java)
- startActivity(intent)
- finish()
- }
-
-
- val database = Firebase.database
- val myRef = database.getReference("message1235322")
-
- myRef.setValue("Hello, World!")
- //binding.imageView3.resources.getIdentifier("b3_1","drawable",this.packageName);
-
-
- //Выводим сегоднящнюю дату
- addDate()
-
+ initRetrofit()
+ MainAndAuth()
}
- override fun onBackPressed() {
- if (backPressedTime + 3000 > System.currentTimeMillis()) {
- super.onBackPressed()
- finish()
+
+ fun MainAndAuth() {
+ Token = prefPatientConclusion.conclusionToken(this)
+ Log.i("sadasdsadsd",Token)
+ //CheckTokenAuth(Token)
+ if (Token == "") {
+ Auth()
} else {
- AlertDialog.Builder(this@MainActivity)
- .setTitle("Выйти")
- .setMessage("Вы точно хотите выйти из приложения?")
- .setPositiveButton("Да") { dialog, whichButton ->
- super.onBackPressed()
- }
- .setNegativeButton("Нет") { dialog, whichButton ->
-
- }
- .show()
+ CheckTokenAuth(Token)
}
- backPressedTime = System.currentTimeMillis()
}
- private fun addDate() {
- val calendar: Calendar = Calendar.getInstance()
- val sdf: SimpleDateFormat = SimpleDateFormat("EEEE")
- val d: Date = Date()
- val DayOfTheWeek: String = sdf.format(d)
- val Day = calendar.get(Calendar.DATE)
- val Month = calendar.get(Calendar.MONTH).plus(1)
- var day = Day.toString()
- var month = ""
- var date_of_the_week = ""
+ fun Auth() {
+ //Вывод фрагмента на активити при первоначальной загрузке
+ supportFragmentManager.beginTransaction()
+ .replace(R.id.CLMain, AuthFragment.newInstance())
+ .commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
- when (Month) {
- 1 -> month="Январь"
- 2 -> month="Февраль"
- 3 -> month="Март"
- 4 -> month="Апрель"
- 5 -> month="Май"
- 6 -> month="Июнь"
- 7 -> month="Июль"
- 8 -> month="Август"
- 9 -> month="Сентябрь"
- 10 -> month="Октябрь"
- 11 -> month="Ноябрь"
- 12 -> month="Декабрь"
- else -> { // обратите внимание на блок
- month=""
- }
- }
-
- when (dayOfTheWeek) {
- "Monday" -> date_of_the_week="Пн"
- "Tuesday" -> date_of_the_week="Вт"
- "Wednesday" -> date_of_the_week="Ср"
- "Thursday" -> date_of_the_week="Чт"
- "Friday" -> date_of_the_week="Пт"
- "Saturday" -> date_of_the_week="Сб"
- "Sunday" -> date_of_the_week="Вс"
- "Понедельник" -> date_of_the_week="Пн"
- "Вторник" -> date_of_the_week="Вт"
- "Стреда" -> date_of_the_week="Ср"
- "Четверг" -> date_of_the_week="Чт"
- "Пятница" -> date_of_the_week="Пт"
- "Суббота" -> date_of_the_week="Сб"
- "Воскресенье" -> date_of_the_week="Вс"
- else -> {
- date_of_the_week=""
- }
- }
-
-
-
-
- System.out.println(calendar.get(Calendar.DATE))
-
- //binding.txtDate.setText("${day}" +" "+ "${month}" +" "+ "(${date_of_the_week})")
- binding.txtDate.setText("${day}" +" "+ "${month}")
}
-// interface IOnBackPressed {
-// fun onBackPressed(): Boolean
-// }
-//
+ fun Main() {
+ fragment_inicializ()
+ }
+
+ @SuppressLint("SuspiciousIndentation")
+ private fun CheckTokenAuth(token: String) {
+ CoroutineScope(Dispatchers.IO).launch {
+ val response = patientApi.CheckToken("Bearer $token")
+ runOnUiThread {
+ val checkToken = response.body()
+ val user1 = response.code()
+ val userCode = response.isSuccessful()
+ Log.i("12213213213", user1.toString())
+
+ if (userCode) {
+ Main()
+ } else {
+ Auth()
+ }
+ }
+
+ }
+
+ }
+
+
+ //Инициализируем Retrofit
+ private fun initRetrofit() {
+ val interceptor = HttpLoggingInterceptor()
+ interceptor.level = HttpLoggingInterceptor.Level.BODY
+
+ val client = OkHttpClient
+ .Builder()
+ .addInterceptor(interceptor)
+ .build()
+
+ val retrofit = Retrofit.Builder()
+ .baseUrl("http://mobileapp.vmeda.org/api/")
+ .client(client)
+ .addConverterFactory(GsonConverterFactory.create())
+ .build()
+
+ patientApi = retrofit.create(PatientApi::class.java)
+
+ }
+
+ private fun fragment_inicializ() {
+ //Вывод фрагмента на активити при первоначальной загрузке
+ supportFragmentManager.beginTransaction()
+ .replace(R.id.CLMain, MainFragment.newInstance())
+ .commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
+
+ }
// override fun onBackPressed() {
-// val fragment =
-// this.supportFragmentManager.findFragmentById(R.id.placeHolderFragment)
-// (fragment as? IOnBackPressed)?.onBackPressed()?.not()?.let {
+// if (backPressedTime + 3000 > System.currentTimeMillis()) {
// super.onBackPressed()
+// finish()
+// } else {
+// AlertDialog.Builder(this@MainActivity)
+// .setTitle("Выйти")
+// .setMessage("Вы точно хотите выйти из приложения?")
+// .setPositiveButton("Да") { dialog, whichButton ->
+// super.onBackPressed()
+// }
+// .setNegativeButton("Нет") { dialog, whichButton ->
+//
+// }
+// .show()
// }
-// }
-
-// override fun onBackPressed() {
-// AlertDialog.Builder(this).apply {
-// setTitle("Подтверждение")
-// setMessage("Вы уверены, что хотите выйти из программы?")
-//
-// setPositiveButton("Таки да") { _, _ ->
-// super.onBackPressed()
-// }
-//
-// setNegativeButton("Нет"){_, _ ->
-// // if user press no, then return the activity
-// Toast.makeText(this@MainActivity, "Thank you",
-// Toast.LENGTH_LONG).show()
-// }
-// setCancelable(true)
-// }.create().show()
+// backPressedTime = System.currentTimeMillis()
// }
- //Инициализация хранилища(для токена) и проверяем есть ли аккаунт и или перекидываем в авторизацую или остаемся на данном экране
- fun data_prefUserPatientToken() {
- prefUserPatientToken = getSharedPreferences("UserPatientToken", Context.MODE_PRIVATE)
- UserPatientToken = prefUserPatientToken?.getString("userpatienttoken", "")!! //Передаем при запуске страницы в counter данные по ключевому слову "counter", вс лучае если будет пусто то передастся 0
-
- prefPatientDoctorNew = getSharedPreferences("PatientDoctorNew", Context.MODE_PRIVATE)
- PatientDoctorNew = prefPatientDoctorNew?.getInt("patientdoctornew", 0)!! //Передаем при запуске страницы в counter данные по ключевому слову "counter", вс лучае если будет пусто то передастся 0
-
- if (UserPatientToken == ""){
- if(PatientDoctorNew == 1){
- val intetn = Intent(this, AuthorizationActivity::class.java)
- startActivity(intetn)
- }
- else{
- val intetn = Intent(this, AuthDoctorActivity::class.java)
- startActivity(intetn)
- }
-
- }
- else{
- //Toast.makeText(this, "Добро пожаловать", Toast.LENGTH_SHORT).show()
- }
- }
- //Записываем число
- fun saveUserPatientToken(userpatienttoken: String) {
- val editer = prefUserPatientToken?.edit()
- editer?.putString("userpatienttoken", userpatienttoken)
- editer?.apply()
- UserPatientToken = userpatienttoken
- }
override fun onDestroy() {
super.onDestroy()
finish()
@@ -240,40 +143,8 @@ class MainActivity : AppCompatActivity() {
}
- //Инициализация фрагментов
- fun fragment_inicializ() {
- //Вывод фрагмента на активити при первоначальной загрузке
- supportFragmentManager.beginTransaction()
- .replace(R.id.placeHolderFragment, SceduleFragment.newInstance())
- .commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
- //Эран который будет выбран по умолчанию(кнопка которая будет прожата по умолчанию)
- binding.buttonNavigation.selectedItemId = R.id.schedule//По умолчанию и так первая, но на всякий случай выберу еще програмным путем первую ячейку
-
- //Нажатие на bottom navigation
- binding.buttonNavigation.setOnItemSelectedListener {
-
- when (it.itemId) {//it.itemId - это id нажатого элемента
- R.id.schedule -> {
- supportFragmentManager.beginTransaction().replace(R.id.placeHolderFragment, SceduleFragment.newInstance()).commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
- }
- R.id.calendar -> {
- supportFragmentManager.beginTransaction().replace(R.id.placeHolderFragment, CalendarFragment.newInstance()).commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
- }
-// R.id.home -> {//Если вы не авторизованный пользваотель то вам не будет доступен доступ к данном фрагменту
-// supportFragmentManager.beginTransaction().replace(R.id.placeHolderFragment, HomeFragment.newInstance()).commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
-// }
- R.id.progress -> {//Если вы не авторизованный пользваотель то вам не будет доступен доступ к данном фрагменту
- supportFragmentManager.beginTransaction().replace(R.id.placeHolderFragment, ProgresFragment.newInstance()).commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
- }
-// R.id.information -> {//Если вы не авторизованный пользваотель то вам не будет доступен доступ к данном фрагменту
-// supportFragmentManager.beginTransaction().replace(R.id.placeHolderFragment, InformationFragment.newInstance()).commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
-// }
- }
- true
- }
- }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/MainFragment.kt b/app/src/main/java/com/example/rehabilitation/MainFragment.kt
new file mode 100644
index 0000000..d3d2775
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/MainFragment.kt
@@ -0,0 +1,168 @@
+package com.example.rehabilitation
+
+import android.annotation.SuppressLint
+import android.icu.text.SimpleDateFormat
+import android.icu.util.Calendar
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.viewModels
+import androidx.lifecycle.LifecycleOwner
+import com.example.rehabilitation.Calendare.CalendarFragment
+import com.example.rehabilitation.Information.InformationFragment
+import com.example.rehabilitation.Progress.ProgresFragment
+import com.example.rehabilitation.Setting.SettingFragment
+import com.example.rehabilitation.Sport.SceduleFragment
+import com.example.rehabilitation.databinding.FragmentMainBinding
+import com.example.rehabilitation.model_adapter.DataModel
+import java.util.Date
+
+
+class MainFragment : Fragment() {
+ private lateinit var binding: FragmentMainBinding
+
+ private val dataModel: DataModel by viewModels()//Для передачи данных
+ @SuppressLint("SimpleDateFormat")
+ var sdf: SimpleDateFormat = SimpleDateFormat("EEEE")
+ var d: Date = Date()
+ var dayOfTheWeek: String = sdf.format(d)
+
+
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentMainBinding.inflate(layoutInflater,container,false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ if(isAdded) {
+ main_inicializ()
+ }
+ }
+
+
+ fun main_inicializ(){
+
+ dataModel.fragmentMenu.observe(this as LifecycleOwner, {
+ binding.buttonNavigation.selectedItemId = it
+ })
+
+ //Функция инициализации фрагметов
+ fragment_inicializ()
+
+ binding.btnSetting.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.CLMain, SettingFragment.newInstance())
+ //?.addToBackStack(null)
+ ?.commit()
+ }
+
+ binding.btnInformation.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.CLMain, InformationFragment.newInstance())
+ //?.addToBackStack(null)
+ ?.commit()
+ }
+
+ //Выводим сегоднящнюю дату
+ addDate()
+ }
+
+
+
+
+ //Инициализация фрагментов
+ fun fragment_inicializ() {
+ //Вывод фрагмента на активити при первоначальной загрузке
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.placeHolderFragment, SceduleFragment.newInstance())
+ ?.commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
+
+
+ //Эран который будет выбран по умолчанию(кнопка которая будет прожата по умолчанию)
+ binding.buttonNavigation.selectedItemId = R.id.schedule//По умолчанию и так первая, но на всякий случай выберу еще програмным путем первую ячейку
+
+ //Нажатие на bottom navigation
+ binding.buttonNavigation.setOnItemSelectedListener {
+
+ when (it.itemId) {//it.itemId - это id нажатого элемента
+ R.id.schedule -> {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.placeHolderFragment, SceduleFragment.newInstance())?.commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
+ }
+ R.id.calendar -> {
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.placeHolderFragment, CalendarFragment.newInstance())?.commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
+ }
+ R.id.progress -> {//Если вы не авторизованный пользваотель то вам не будет доступен доступ к данном фрагменту
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.placeHolderFragment, ProgresFragment.newInstance())?.commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
+ }
+
+ }
+ true
+ }
+ }
+
+
+ private fun addDate() {
+ val calendar: Calendar = Calendar.getInstance()
+ val sdf: SimpleDateFormat = SimpleDateFormat("EEEE")
+ val d: Date = Date()
+ val DayOfTheWeek: String = sdf.format(d)
+ val Day = calendar.get(Calendar.DATE)
+ val Month = calendar.get(Calendar.MONTH).plus(1)
+ var day = Day.toString()
+ var month = ""
+ var date_of_the_week = ""
+
+ when (Month) {
+ 1 -> month="Январь"
+ 2 -> month="Февраль"
+ 3 -> month="Март"
+ 4 -> month="Апрель"
+ 5 -> month="Май"
+ 6 -> month="Июнь"
+ 7 -> month="Июль"
+ 8 -> month="Август"
+ 9 -> month="Сентябрь"
+ 10 -> month="Октябрь"
+ 11 -> month="Ноябрь"
+ 12 -> month="Декабрь"
+ else -> { // обратите внимание на блок
+ month=""
+ }
+ }
+
+ when (dayOfTheWeek) {
+ "Monday" -> date_of_the_week="Пн"
+ "Tuesday" -> date_of_the_week="Вт"
+ "Wednesday" -> date_of_the_week="Ср"
+ "Thursday" -> date_of_the_week="Чт"
+ "Friday" -> date_of_the_week="Пт"
+ "Saturday" -> date_of_the_week="Сб"
+ "Sunday" -> date_of_the_week="Вс"
+ "Понедельник" -> date_of_the_week="Пн"
+ "Вторник" -> date_of_the_week="Вт"
+ "Стреда" -> date_of_the_week="Ср"
+ "Четверг" -> date_of_the_week="Чт"
+ "Пятница" -> date_of_the_week="Пт"
+ "Суббота" -> date_of_the_week="Сб"
+ "Воскресенье" -> date_of_the_week="Вс"
+ else -> {
+ date_of_the_week=""
+ }
+ }
+
+ System.out.println(calendar.get(Calendar.DATE))
+ binding.txtDate.setText("${day}" +" "+ "${month}")
+ }
+
+
+ companion object {
+ fun newInstance() = MainFragment()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/MessageModel.kt b/app/src/main/java/com/example/rehabilitation/MessageModel.kt
new file mode 100644
index 0000000..db10594
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/MessageModel.kt
@@ -0,0 +1,6 @@
+package com.example.rehabilitation
+
+data class MessageModel(
+ val message: String,
+)
+
diff --git a/app/src/main/java/com/example/rehabilitation/Mysorka/HomeFragment.kt b/app/src/main/java/com/example/rehabilitation/Mysorka/HomeFragment.kt
new file mode 100644
index 0000000..0256235
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Mysorka/HomeFragment.kt
@@ -0,0 +1,141 @@
+package com.example.rehabilitation.Mysorka
+
+import android.os.Bundle
+import android.util.Log
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.activityViewModels
+import androidx.lifecycle.asLiveData
+import androidx.recyclerview.widget.GridLayoutManager
+import com.example.rehabilitation.R
+import com.example.rehabilitation.databinding.FragmentHomeBinding
+import com.example.rehabilitation.dateHomeCalendare
+import com.example.rehabilitation.model_adapter.DataModel
+import com.example.rehabilitation.Sport.DayAdapter
+import com.example.rehabilitation.Sport.DayListModel
+import com.example.rehabilitation.Sport.SportForDayModel
+import com.example.rehabilitation.model_adapter.modelCount.CountDayModel
+import com.example.sqlitework.dip.MainViewModel
+import java.time.LocalDate
+
+class HomeFragment : Fragment()/*, DayAdapter.Listener*/ {
+ private lateinit var binding: FragmentHomeBinding
+// private val model: MainViewModel by activityViewModels()//Инициализировали класс
+// lateinit var adapterDay: DayAdapter
+// //private val dataModel: DataModel by activityViewModels()//Для передачи данных
+// private val dataModel: DataModel by activityViewModels()//Для передачи данных
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentHomeBinding.inflate(layoutInflater,container,false)
+ return binding.root
+ }
+//
+// override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+// super.onViewCreated(view, savedInstanceState)
+// initRcViewDay()
+//
+// model.liveDayList.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
+// adapterDay.submitList(it)//Напрямую переадем созданный список в adapter(ProductAdapter)
+// }
+//
+// progresMonthAndDay()
+// liveCountDayCurrent()
+// addListModelCardsDay(LocalDate.now().toString())
+// }
+//
+// //Инициализация экрана уведобляющего о том что курса нету
+// fun viewSportNo(){
+//
+// }
+//
+//
+// //Заполнения модели и списка
+// private fun addListModelCardsDay(day:String){
+//
+//// val db = MainDB.getDB(requireContext())
+//// val list = ArrayList()
+//// db.getDaoDaySport().getAllItemDaySport(day).asLiveData().observe(requireActivity()){itList->
+//// var number = 1;
+////
+//// itList.forEach{
+//// Log.d("123",it.category)
+//// //db.getDaoSportCategory().getAllItemsSportCategory(it.category).asLiveData().observe(requireActivity()){itSport->
+//// val itemDay = DayListModel(
+//// it.id.toString(),
+//// number++.toString(),
+//// day,
+//// it.category.toString(),
+//// it.check.toString(),
+//// )
+//// list.add(itemDay)//Передали заполненый список
+//// model.liveDayList.value = list
+//// //}
+//// }
+////
+//// Log.d("sadas",list.toString())
+//// }
+// }
+// private fun progresMonthAndDay() {
+//// val db = MainDB.getDB(requireContext())
+//// val data= LocalDate.now().toString()
+////
+//// var listDayDown =0
+//// var listDayAll =0
+//// var name = ""
+//// //Прогрес за в течение данного дня
+//// db.getDaoDaySport().getAllItemDaySport(LocalDate.now().toString()).asLiveData().observe(requireActivity()){itList->
+//// var number = 1;
+////
+//// itList.forEach{
+////
+//// if(it.check ==1){
+//// listDayDown=listDayDown+1
+//// listDayAll=listDayAll+1
+//// }
+//// else{
+//// listDayAll=listDayAll+1
+//// }
+//// }
+//// val item = CountDayModel(
+//// listDayDown,
+//// listDayAll
+//// )
+//// model.liveCountDayCurrent.value = item
+////
+//// }
+// }
+//
+// //Вывод прогресса на один день
+// private fun liveCountDayCurrent() = with(binding) {
+// model.liveCountDayCurrent.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
+// binding.txtSportToday.setText(it.countDown.toString())
+// binding.txtSportTodayAll.setText(it.countAll.toString())
+// }
+//
+// }
+//
+//
+// //Инициализация списка
+// private fun initRcViewDay() = with(binding) {
+// rcVIewDayList.layoutManager = GridLayoutManager(requireContext(),1)//По вертикали будет выводить по умолчанию
+// adapterDay = DayAdapter(this@HomeFragment)
+// rcVIewDayList.adapter = adapterDay
+// }
+ companion object {
+
+ fun newInstance() = HomeFragment()
+ }
+//
+// override fun onClickDay(item: SportForDayModel) {
+// //Передаем фрагмент на вывод(это фрагмент страницы с продукцией)
+// //parentFragmentManager.beginTransaction() .replace(R.id.placeHolderFragment, SceduleFragment()).commit()
+// dataModel.fragmentMenu.value = R.id.schedule
+// // dateHomeCalendare = item.day
+// }
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/PatientViewModel.kt b/app/src/main/java/com/example/rehabilitation/PatientViewModel.kt
new file mode 100644
index 0000000..5bb9656
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/PatientViewModel.kt
@@ -0,0 +1,14 @@
+package com.example.rehabilitation
+
+import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.ViewModel
+import com.example.rehabilitation.Sport.SportDayOneModel
+
+class PatientViewModel: ViewModel() {
+ val token = MutableLiveData()
+
+
+ val liveDaySportOne = MutableLiveData()
+ // val productList = MutableLiveData>()
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Pref/ClearPref.kt b/app/src/main/java/com/example/rehabilitation/Pref/ClearPref.kt
new file mode 100644
index 0000000..1445fce
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Pref/ClearPref.kt
@@ -0,0 +1,14 @@
+package com.example.rehabilitation.Pref
+
+import android.content.Context
+import android.content.SharedPreferences
+
+class ClearPref() {
+
+ fun clearToken(context: Context) {
+ val prefDoctor: SharedPreferences = context.getSharedPreferences("PATIENT", Context.MODE_PRIVATE)
+ val edit = prefDoctor.edit()
+ edit?.clear()
+ edit?.apply()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Pref/ConclusionPref.kt b/app/src/main/java/com/example/rehabilitation/Pref/ConclusionPref.kt
new file mode 100644
index 0000000..3065f47
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Pref/ConclusionPref.kt
@@ -0,0 +1,13 @@
+package com.example.rehabilitation.Pref
+
+import android.content.Context
+import android.content.SharedPreferences
+
+class ConclusionPref() {
+
+ fun conclusionToken(context: Context):String {
+ val prefDoctor: SharedPreferences = context.getSharedPreferences("PATIENT", Context.MODE_PRIVATE)
+ val token = prefDoctor.getString("token", "")
+ return token.toString()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Pref/SavePref.kt b/app/src/main/java/com/example/rehabilitation/Pref/SavePref.kt
new file mode 100644
index 0000000..b86a730
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Pref/SavePref.kt
@@ -0,0 +1,14 @@
+package com.example.rehabilitation.Pref
+
+import android.content.Context
+import android.content.SharedPreferences
+
+class SavePref (){
+
+ fun saveToken(context: Context,token: String) {
+ val prefPatient: SharedPreferences = context.getSharedPreferences("PATIENT", Context.MODE_PRIVATE)
+ val edit = prefPatient.edit()
+ prefPatient.edit().putString("token", token).apply()
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/model_adapter/Progress/AfterListModel.kt b/app/src/main/java/com/example/rehabilitation/Progress/AfterListModel.kt
similarity index 85%
rename from app/src/main/java/com/example/rehabilitation/model_adapter/Progress/AfterListModel.kt
rename to app/src/main/java/com/example/rehabilitation/Progress/AfterListModel.kt
index 195a433..fa3f94d 100644
--- a/app/src/main/java/com/example/rehabilitation/model_adapter/Progress/AfterListModel.kt
+++ b/app/src/main/java/com/example/rehabilitation/Progress/AfterListModel.kt
@@ -1,4 +1,4 @@
-package com.example.rehabilitation.model_adapter.Progress
+package com.example.rehabilitation.Progress
data class AfterListModel(
val id: Int,
diff --git a/app/src/main/java/com/example/rehabilitation/model_adapter/Progress/BeforeListModel.kt b/app/src/main/java/com/example/rehabilitation/Progress/BeforeListModel.kt
similarity index 82%
rename from app/src/main/java/com/example/rehabilitation/model_adapter/Progress/BeforeListModel.kt
rename to app/src/main/java/com/example/rehabilitation/Progress/BeforeListModel.kt
index 2a0a53b..07b7cc3 100644
--- a/app/src/main/java/com/example/rehabilitation/model_adapter/Progress/BeforeListModel.kt
+++ b/app/src/main/java/com/example/rehabilitation/Progress/BeforeListModel.kt
@@ -1,4 +1,4 @@
-package com.example.rehabilitation.model_adapter.Progress
+package com.example.rehabilitation.Progress
data class BeforeListModel(
val id: Int,
diff --git a/app/src/main/java/com/example/rehabilitation/Progress/ProgresFragment.kt b/app/src/main/java/com/example/rehabilitation/Progress/ProgresFragment.kt
new file mode 100644
index 0000000..11cab48
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Progress/ProgresFragment.kt
@@ -0,0 +1,142 @@
+package com.example.rehabilitation.Progress
+
+import android.content.Context
+import android.content.SharedPreferences
+import android.os.Bundle
+import android.util.Log
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.activityViewModels
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.example.rehabilitation.Pref.ConclusionPref
+import com.example.rehabilitation.Retrofit.PatientApi
+import com.example.rehabilitation.databinding.FragmentProgresBinding
+import com.example.rehabilitation.listCalendare
+import com.example.rehabilitation.listProgressCheck
+import com.example.sqlitework.dip.MainViewModel
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import okhttp3.OkHttpClient
+import okhttp3.logging.HttpLoggingInterceptor
+import org.json.JSONObject
+import retrofit2.Retrofit
+import retrofit2.converter.gson.GsonConverterFactory
+
+class ProgresFragment : Fragment() {
+ private lateinit var binding: FragmentProgresBinding
+ private val model: MainViewModel by activityViewModels()//Инициализировали класс
+
+ //Хранинение токена
+ private var prefToken: SharedPreferences? = null
+ private var Token = ""
+ private lateinit var patientApi: PatientApi
+ lateinit var adapterProgress: ProgressAdapter
+ var view_progress = false
+
+ val prefPatientConclusion = ConclusionPref()
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentProgresBinding.inflate(layoutInflater, container, false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ prefToken = activity?.getSharedPreferences("token", Context.MODE_PRIVATE)
+ Token = prefToken?.getString("token", "")!!
+
+ model.liveProgressCheckList.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
+ adapterProgress.submitList(it)//Напрямую переадем созданный список в adapter(ProductAdapter)
+ visible1()
+ }
+
+ initRetrofit()
+ initRCView()
+ visibleLoad()
+ AddProgresSportDayList()
+ }
+
+
+ //Функция получения данных для заполнения списка прогресса
+
+ private fun initRetrofit() {
+ val interceptor = HttpLoggingInterceptor()
+ interceptor.level = HttpLoggingInterceptor.Level.BODY
+
+ val client = OkHttpClient
+ .Builder()
+ .addInterceptor(interceptor)
+ .build()
+
+ val retrofit = Retrofit.Builder()
+ .baseUrl("http://mobileapp.vmeda.org/api/")
+ .client(client)
+ .addConverterFactory(GsonConverterFactory.create())
+ .build()
+
+ patientApi = retrofit.create(PatientApi::class.java)
+
+ }
+
+
+
+ //Инициализация подлючения к серверу
+ fun AddProgresSportDayList() {
+ if (view_progress == false) {
+ view_progress = true
+ visibleLoad()
+ initRetrofit()
+ val Tokens = prefPatientConclusion.conclusionToken(requireContext())
+ CoroutineScope(Dispatchers.IO).launch {
+ val progress = patientApi.ProgressPatientCourses("Bearer $Tokens")
+
+ activity?.runOnUiThread {
+
+ //Фиксируем полученные данные
+ val progressMes = progress.body()
+ val progressMesCode = progress.isSuccessful()
+ //Если нету ошибок
+ if (progressMesCode) {
+ model.liveProgressCheckList.value = progressMes?.search_check_sport
+ binding.txtLoadProgres.visibility = View.GONE
+ }
+ else{
+ binding.txtLoadProgres.visibility = View.VISIBLE
+ visible1()
+ }
+ }
+ }
+ }
+ }
+ private fun initRCView() = with(binding) {
+ rcViewProgress.layoutManager = LinearLayoutManager(
+ requireContext(),
+ LinearLayoutManager.VERTICAL,
+ false
+ )//По вертикали будет выводить по умолчанию
+ adapterProgress = ProgressAdapter()
+ rcViewProgress.adapter = adapterProgress
+ }
+
+ fun visible1() {
+ binding.CLMainProgres.visibility = View.VISIBLE
+ binding.CLLoad.visibility = View.GONE
+ }
+
+
+ fun visibleLoad() {
+ binding.CLMainProgres.visibility = View.GONE
+ binding.CLLoad.visibility = View.VISIBLE
+ }
+
+ companion object {
+ fun newInstance() = ProgresFragment()
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Progress/ProgressAdapter.kt b/app/src/main/java/com/example/rehabilitation/Progress/ProgressAdapter.kt
new file mode 100644
index 0000000..87ad10c
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Progress/ProgressAdapter.kt
@@ -0,0 +1,75 @@
+package com.example.rehabilitation.Progress
+
+import android.annotation.SuppressLint
+import android.graphics.Color
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.recyclerview.widget.DiffUtil
+import androidx.recyclerview.widget.ListAdapter
+import androidx.recyclerview.widget.RecyclerView
+import com.example.rehabilitation.R
+import com.example.rehabilitation.databinding.RcItemProgressBinding
+
+
+class ProgressAdapter() : ListAdapter(Comparator()) {//Productitem - по этой форме будем заполнять.//ProductAdapter.holder - это создаваемый holder который хранит логику как нужно заполнять карточку
+
+
+ //В holder создаетс код с помошью которого мы будем заполнять и сохронять разметку
+ class Holder(view: View) :
+ RecyclerView.ViewHolder(view) {//Класс который будет хранить сссылки на элементы, и отвечает за один элемент за 1 раз, то есть сначсало нулевой элемент заполнит, потом первый, потом второй и т.д.
+ //Для передачи данных
+
+ val binding =
+ RcItemProgressBinding.bind(view)//view - здесь храянтся элементы и мы их bind заполним в ListItemBinding//ListItemBinding - это клласс даннйо разметки(карточки) которую мы будем заполнять, а нужна дання переменная(binding), чтобы мжно было при заполнение обращатся к элементам карточки
+
+ var itemTemp: ProgressModel? =
+ null//Глобальная переменная для нашего item, чтобы можно было передать данные для нажатия
+
+ @SuppressLint("SuspiciousIndentation", "SetTextI18n")
+ fun bind(item: ProgressModel) = with(binding) {//Productitem - перпедаем данные
+ itemTemp = item
+ txtDate.text = item.id.toString() + ". " + item.day + ": "
+ txtProgress.text = item.count.toString() + "/" + item.count_workout_max.toString()
+ if (item.count_workout_max != item.count) {
+ CardViewDay.setCardBackgroundColor(Color.parseColor("#1993FF"))
+ } else {
+ CardViewDay.setCardBackgroundColor(Color.parseColor("#98EA88"))
+ }
+ }
+ }
+
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Holder {
+ val view = LayoutInflater.from(parent.context)
+ .inflate(R.layout.rc_item_progress, parent, false)//Создаем(надуваем) list_item
+ return Holder(view)//Через Holder возврощаем view
+ }
+
+ override fun onBindViewHolder(holder: Holder, position: Int) {
+ val view = holder.bind(getItem(position))//Заполняем по позиции карточку
+ }
+
+
+ //Comparator - сравнивает старый список и новый и если что-то изменилось, то работает с конкретным изменением списке, а не весь список переписывает
+ class Comparator : DiffUtil.ItemCallback() {
+ override fun areItemsTheSame(
+ oldItem: ProgressModel,
+ newItem: ProgressModel
+ ): Boolean {//Тут лучше всего сравнивать по id//oldItem - элементы старого списка, newItem - элементы нового списка//Возврощает Boolean, тоесть есть изменения или нет
+ return oldItem.id == newItem.id//Сравниваем полностью весь список новы и старый, по очередно по одной карточке и по элементно, то есть нулевой элемент, первый, второй и т.д.. Но лучше сравнивать по id списки, а не просто весь список, так как это эфективнее, так как id уникальный(oldItem.id == newItem.id)
+ }
+
+ override fun areContentsTheSame(
+ oldItem: ProgressModel,
+ newItem: ProgressModel
+ ): Boolean {//Утут нужно сравнивать весь спсок старых элементов и новых
+ return oldItem == newItem//Сравниваем полностью весь список новы и старый
+ }
+ }
+
+}
+
+
+
+
diff --git a/app/src/main/java/com/example/rehabilitation/Progress/ProgressListModel.kt b/app/src/main/java/com/example/rehabilitation/Progress/ProgressListModel.kt
new file mode 100644
index 0000000..612a898
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Progress/ProgressListModel.kt
@@ -0,0 +1,6 @@
+package com.example.rehabilitation.Progress
+
+data class ProgressListModel(
+ val search_check_sport: List,
+)
+
diff --git a/app/src/main/java/com/example/rehabilitation/Progress/ProgressModel.kt b/app/src/main/java/com/example/rehabilitation/Progress/ProgressModel.kt
new file mode 100644
index 0000000..079e6dc
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Progress/ProgressModel.kt
@@ -0,0 +1,12 @@
+package com.example.rehabilitation.Progress
+
+data class ProgressModel(
+ val number: Int,
+ val id: Int,
+ val day: String,
+ var count_workout_max: Int,
+ var count: Int,
+ val finish: Int,
+
+)
+
diff --git a/app/src/main/java/com/example/rehabilitation/Questionnaire/Model/AfterQuestionnaireMessage.kt b/app/src/main/java/com/example/rehabilitation/Questionnaire/Model/AfterQuestionnaireMessage.kt
new file mode 100644
index 0000000..2bf1b6f
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Questionnaire/Model/AfterQuestionnaireMessage.kt
@@ -0,0 +1,6 @@
+package com.example.rehabilitation.Questionnaire.Model
+
+data class AfterQuestionnaireMessage(
+ val message: Int,
+)
+
diff --git a/app/src/main/java/com/example/rehabilitation/Questionnaire/Model/AfterQuestionnaireModel.kt b/app/src/main/java/com/example/rehabilitation/Questionnaire/Model/AfterQuestionnaireModel.kt
new file mode 100644
index 0000000..b7a2085
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Questionnaire/Model/AfterQuestionnaireModel.kt
@@ -0,0 +1,17 @@
+package com.example.rehabilitation.Questionnaire.Model
+
+data class AfterQuestionnaireModel(
+ val one: Int,
+ val two: Int,
+ val thee: Int,
+ val four: Int,
+ val five: Int,
+ val six: Int,
+ val seven: Int,
+ val eight: Int,
+ val nine: Int,
+ val ten: Int,
+ val eleven: Int,
+ val twelve: Int,
+)
+
diff --git a/app/src/main/java/com/example/rehabilitation/Questionnaire/Model/BeforeQuestionnaireMessage.kt b/app/src/main/java/com/example/rehabilitation/Questionnaire/Model/BeforeQuestionnaireMessage.kt
new file mode 100644
index 0000000..0bb1392
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Questionnaire/Model/BeforeQuestionnaireMessage.kt
@@ -0,0 +1,6 @@
+package com.example.rehabilitation.Questionnaire.Model
+
+data class BeforeQuestionnaireMessage(
+ val message: Int,
+)
+
diff --git a/app/src/main/java/com/example/rehabilitation/Questionnaire/Model/BeforeQuestionnaireModel.kt b/app/src/main/java/com/example/rehabilitation/Questionnaire/Model/BeforeQuestionnaireModel.kt
new file mode 100644
index 0000000..7dec521
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Questionnaire/Model/BeforeQuestionnaireModel.kt
@@ -0,0 +1,14 @@
+package com.example.rehabilitation.Questionnaire.Model
+
+data class BeforeQuestionnaireModel(
+ val one: Int,
+ val two: Int,
+ val thee: Int,
+ val four: Int,
+ val five: Int,
+ val six: Int,
+ val seven: Int,
+ val eight: Int,
+ val nine: Int,
+)
+
diff --git a/app/src/main/java/com/example/rehabilitation/Questionnaire/Model/QuestionnaireModel.kt b/app/src/main/java/com/example/rehabilitation/Questionnaire/Model/QuestionnaireModel.kt
new file mode 100644
index 0000000..b2249ff
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Questionnaire/Model/QuestionnaireModel.kt
@@ -0,0 +1,6 @@
+package com.example.rehabilitation.Questionnaire.Model
+
+data class QuestionnaireModel(
+ val massage: String,
+)
+
diff --git a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/QuestionnaireFragment/QAfterFragment.kt b/app/src/main/java/com/example/rehabilitation/Questionnaire/QuestionnaireFragment/QAfterFragment.kt
similarity index 64%
rename from app/src/main/java/com/example/rehabilitation/User/fragmentUser/QuestionnaireFragment/QAfterFragment.kt
rename to app/src/main/java/com/example/rehabilitation/Questionnaire/QuestionnaireFragment/QAfterFragment.kt
index 33c9edd..7f8fc54 100644
--- a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/QuestionnaireFragment/QAfterFragment.kt
+++ b/app/src/main/java/com/example/rehabilitation/Questionnaire/QuestionnaireFragment/QAfterFragment.kt
@@ -1,71 +1,51 @@
-package com.example.rehabilitation.User.fragmentUser.QuestionnaireFragment
+package com.example.rehabilitation.Questionnaire.QuestionnaireFragment
import android.app.AlertDialog
-import android.content.Context
-import android.content.Intent
import android.graphics.Color
-import android.net.Uri
import android.os.Bundle
-import android.provider.Settings
import android.util.Log
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
+import com.example.admin.Toast.showCustomDangerToast
import com.example.admin.Toast.showCustomInfoToast
-import com.example.admin.Toast.showCustomNiceToast
-import com.example.rehabilitation.Block
-import com.example.rehabilitation.DayAfter
-import com.example.rehabilitation.DayBefore
-import com.example.rehabilitation.PauseDay
+import com.example.rehabilitation.Pref.ConclusionPref
+import com.example.rehabilitation.Questionnaire.Model.AfterQuestionnaireModel
import com.example.rehabilitation.R
-import com.example.rehabilitation.Room.MainDB
-import com.example.rehabilitation.Room.Questionnaire.After.ItemAfterQuestionnaire
-import com.example.rehabilitation.Room.Questionnaire.Before.ItemBeforeQuestionnaire
-import com.example.rehabilitation.Sport15Day
-import com.example.rehabilitation.Sport15DayAll
-import com.example.rehabilitation.Sport7Day
-import com.example.rehabilitation.SportCursDay
-import com.example.rehabilitation.SportCursDayDangerAfter
-import com.example.rehabilitation.SportCursDayDangerBefore
-import com.example.rehabilitation.SportCursDayNumber
-import com.example.rehabilitation.SportPlusCount
-import com.example.rehabilitation.User.fragmentUser.SceduleFragment
-import com.example.rehabilitation.countSport
+import com.example.rehabilitation.Retrofit.PatientApi
+import com.example.rehabilitation.Sport.SceduleFragment
import com.example.rehabilitation.databinding.FragmentQAfterBinding
-import com.example.rehabilitation.prefBlock
-import com.example.rehabilitation.prefCursDangerDayAfter
-import com.example.rehabilitation.prefCursDangerDayBefore
-import com.example.rehabilitation.prefCursDay
-import com.example.rehabilitation.prefDayAfter
-import com.example.rehabilitation.prefDayBefore
-import com.example.rehabilitation.prefPauseDay
-import com.example.rehabilitation.prefSport15Day
-import com.example.rehabilitation.prefSport15DayAll
-import com.example.rehabilitation.prefSport7Day
-import com.example.rehabilitation.prefSportCursDayNumber
-import com.example.rehabilitation.questionnaire_after
-import com.example.rehabilitation.questionnaire_before
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import okhttp3.OkHttpClient
+import okhttp3.logging.HttpLoggingInterceptor
+import org.json.JSONObject
+import retrofit2.Retrofit
+import retrofit2.converter.gson.GsonConverterFactory
import java.time.LocalDate
class QAfterFragment : Fragment() {
private lateinit var binding: FragmentQAfterBinding
+ private lateinit var patientApi: PatientApi
+ val prefPatientConclusion = ConclusionPref()
- var one = ""
- var two = ""
- var thee = ""
- var four = ""
- var five = ""
- var six = ""
- var seven = ""
- var eight = ""
- var nine = ""
- var ten = ""
- var eleven = ""
- var twelve = ""
+ var one = 100
+ var two = 100
+ var thee = 100
+ var four =100
+ var five =100
+ var six =100
+ var seven = 100
+ var eight = 100
+ var nine = 100
+ var ten =100
+ var eleven = 100
+ var twelve = 100
override fun onCreateView(
@@ -82,51 +62,8 @@ class QAfterFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
- Log.d("lookDanger", "lookDanger")
- Log.d("SportCursDayDangerAfter", "${SportCursDayDangerAfter}")
- Log.d("SportCursDay", "${SportCursDay}")
- Log.d("SportCursDayDangerBefore", "${SportCursDayDangerBefore}")
- prefCursDay = activity?.getSharedPreferences("SportCursDay", Context.MODE_PRIVATE)
- SportCursDay = prefCursDay?.getInt("scd", 0)!!
- prefCursDangerDayAfter =
- activity?.getSharedPreferences("CursDangerDayAfter", Context.MODE_PRIVATE)
- SportCursDayDangerAfter = prefCursDangerDayAfter?.getInt("cdda", 0)!!
-
- prefCursDangerDayBefore =
- activity?.getSharedPreferences("CursDangerDayBefore", Context.MODE_PRIVATE)
- SportCursDayDangerBefore = prefCursDangerDayBefore?.getInt("cddb", 0)!!
-
- //Какой сегодня курс
- prefSportCursDayNumber =
- activity?.getSharedPreferences("SportCursDayNumber", Context.MODE_PRIVATE)
- SportCursDayNumber = prefSportCursDayNumber?.getInt("scdn", 0)!!
-
-
- //Для анкет, какие выполнены
- prefPauseDay = activity?.getSharedPreferences("PauseDay", Context.MODE_PRIVATE)
- PauseDay = prefPauseDay?.getString("pd", "")!!
- prefBlock = activity?.getSharedPreferences("Block", Context.MODE_PRIVATE)
- Block = prefBlock?.getString("b", "")!!
-
- //Для анкет, какие выполнены
- prefDayBefore = activity?.getSharedPreferences("DayBefore", Context.MODE_PRIVATE)
- DayBefore = prefDayBefore?.getString("db", "")!!
- prefDayAfter = activity?.getSharedPreferences("DayAfter", Context.MODE_PRIVATE)
- DayAfter = prefDayAfter?.getString("da", "")!!
-
- //Пройдено ли 15 дне и отправен отчет
- prefSport15DayAll = activity?.getSharedPreferences("Sport15DayAll", Context.MODE_PRIVATE)
- Sport15DayAll = prefSport15DayAll?.getInt("s15da", 0)!!
-
- //Отчет на 15 день
- prefSport15Day = activity?.getSharedPreferences("Sport15Day", Context.MODE_PRIVATE)
- Sport15Day = prefSport15Day?.getInt("s15d", 0)!!
-
- //Отчет на 7 день
- prefSport7Day = activity?.getSharedPreferences("Sport7Day", Context.MODE_PRIVATE)
- Sport7Day = prefSport7Day?.getInt("s7d", 0)!!
buttenAdd()
@@ -138,14 +75,26 @@ class QAfterFragment : Fragment() {
//Сохраняем результат
binding.btnSaveQuestionnaire.setOnClickListener {
- if (one != "" && two != "" && thee != "" && four != "" && five != "" && six != "" && seven != "" && eight != "" && nine != "" && ten != "" && eleven != "" && twelve != "") {
+ if (one != 100 && two != 100 && thee != 100 && four != 100 && five != 100 && six != 100 && seven != 100 && eight != 100 && nine != 100 && ten != 100 && eleven != 100 && twelve != 100) {
- if(ten == "1"){
+ if(nine == 1){
AlertDialog.Builder(requireContext())
.setTitle("Анкета")
.setMessage("Уверены ли Вы в выбранных ответах на вопросы анкеты? Халатное отношение к вопросам анкеты приведет к блокировке комплекса")
.setNeutralButton("Подтвердить") { dialog, whichButton ->
- addQuestionnaire()
+ addQuestionAfter()
+ }
+ .setNegativeButton("Отмена") { dialog, whichButton ->
+
+ }
+ .show()
+ }
+ else if(one >=6 && thee == 0 && six == 1 && eight == 1 && eleven == 1){
+ AlertDialog.Builder(requireContext())
+ .setTitle("Анкета")
+ .setMessage("Уверены ли Вы в выбранных ответах на вопросы анкеты? Халатное отношение к вопросам анкеты приведет к паузе комплекса")
+ .setNeutralButton("Подтвердить") { dialog, whichButton ->
+ addQuestionAfter()
}
.setNegativeButton("Отмена") { dialog, whichButton ->
@@ -153,10 +102,8 @@ class QAfterFragment : Fragment() {
.show()
}
else{
- addQuestionnaire()
+ addQuestionAfter()
}
-
-
} else {
Toast(requireContext()).showCustomInfoToast(
"Не все пункты выбраны",
@@ -164,37 +111,11 @@ class QAfterFragment : Fragment() {
)
}
}
-
- }
-
- //Функция
- fun addQuestionnaire(){
- clearSportCursDayDangerBefore()
- if(ten == "1"){
- saveBlock(LocalDate.now().plusDays(3).toString())
- saveSportCursDayDangerAfter(2)
- Log.d("saveSportCursDayDangerAfter","${2}")
- addQuestionAfter()
- }
- else if (one >= "6" || thee == "0"||six == "1"||eight == "1"||eleven == "1") {
- savePauseDay(LocalDate.now().plusDays(1).toString())
- saveSportCursDayDangerAfter(1)
- addQuestionAfter()
- }
- else{
- clearSportCursDayDangerBefore()
- clearSportCursDayDangerAfter()
- addQuestionAfter()
-
- }
-
}
fun addQuestionAfter() {
- val db = MainDB.getDB(requireContext())
- val item = ItemAfterQuestionnaire(
- null,
+ val item = AfterQuestionnaireModel(
one,
two,
thee,
@@ -207,157 +128,60 @@ class QAfterFragment : Fragment() {
ten,
eleven,
twelve,
- LocalDate.now().toString()
)
- Thread {
- db.getDaoQA().insertAQ(item)
- db.getDao().updateDay(LocalDate.now().toString(), (SportCursDay - 1).toString())
- }.start()
- saveDayAfter(LocalDate.now().toString())
+ AfterQuestionnaire(item)
+ }
+
+ //Инициализация подлючения к серверу
+ private fun initRetrofit() {
+ val interceptor = HttpLoggingInterceptor()
+ interceptor.level = HttpLoggingInterceptor.Level.BODY
+
+ val client = OkHttpClient
+ .Builder()
+ .addInterceptor(interceptor)
+ .build()
+
+ val retrofit = Retrofit.Builder()
+ .baseUrl("http://mobileapp.vmeda.org/api/")
+ .client(client)
+ .addConverterFactory(GsonConverterFactory.create())
+ .build()
+
+ patientApi = retrofit.create(PatientApi::class.java)
+
+ }
+
+ //Получения списка пациентов
+ fun AfterQuestionnaire(item:AfterQuestionnaireModel) {
+ initRetrofit()
+ val Tokens = prefPatientConclusion.conclusionToken(requireContext())
+ CoroutineScope(Dispatchers.IO).launch {
+ val QA = patientApi.AddAfterQuestionnaire2("Bearer $Tokens",item)
+ requireActivity().runOnUiThread {
+
+ //Фиксируем полученные данные
+ val AQList = QA.body()
+
+ //Если нету ошибок
+ if (AQList != null) {
+ Toast(requireContext()).showCustomInfoToast(AQList.message, requireActivity())
+ }
+ else{
+ if (AQList != null) {
+ Toast(requireContext()).showCustomInfoToast(AQList.message, requireActivity())
+ }
+
+ }
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.placeHolderFragment, SceduleFragment.newInstance())?.commit()
+ }
- if (SportCursDay == 7 && Sport7Day == 0) {
- saveSport7Day(1)
- } else if (SportCursDay == 15 && Sport15Day == 0) {
- saveSport15Day(1)
}
-
-// questionnaire_after = LocalDate.now().toString()
-// questionnaire_before = LocalDate.now().toString()
-// //QBSaveDataB(LocalDate.now().toString())
-// //Log.d("aaaaaa",questionnaire?.getString("QB", "")!!.toString())
- activity?.supportFragmentManager?.beginTransaction()
- ?.replace(R.id.placeHolderFragment, SceduleFragment.newInstance())?.commit()
}
- fun saveSport15Day(s15d: Int) {
- val edit = prefSport15Day?.edit()
- edit?.putInt("s15d", s15d)
- edit?.apply()
- Sport15Day = s15d
- }
-
- fun clearSport15Day() {
- val edit = prefSport15Day?.edit()
- edit?.clear()
- edit?.apply()
- Sport15Day = 0
- }
-
- fun saveSport7Day(s7d: Int) {
- val edit = prefSport7Day?.edit()
- edit?.putInt("s7d", s7d)
- edit?.apply()
- Sport7Day = s7d
- }
-
- fun clearSport7Day() {
- val edit = prefSport7Day?.edit()
- edit?.clear()
- edit?.apply()
- Sport7Day = 0
- }
-
- fun savePauseDay(pd: String) {
- val edit = prefPauseDay?.edit()
- edit?.putString("pd", pd)
- edit?.apply()
- PauseDay = pd
- }
-
- fun clearPauseDay() {
- val edit = prefPauseDay?.edit()
- edit?.clear()
- edit?.apply()
- PauseDay = ""
- }
-
- fun saveBlock(b: String) {
- val edit = prefBlock?.edit()
- edit?.putString("b", b)
- edit?.apply()
- Block = b
- }
-
- fun clearBlock() {
- val edit = prefBlock?.edit()
- edit?.clear()
- edit?.apply()
- Block = ""
- }
-
-
- fun saveDayBefore(db: String) {
- val edit = prefDayBefore?.edit()
- edit?.putString("db", db)
- edit?.apply()
- DayBefore = db
- }
-
- fun clearDayBefore() {
- val edit = prefDayBefore?.edit()
- edit?.clear()
- edit?.apply()
- DayBefore = ""
- }
-
- fun saveDayAfter(da: String) {
- val edit = prefDayAfter?.edit()
- edit?.putString("da", da)
- edit?.apply()
- DayAfter = da
- }
-
- fun clearDayAfter() {
- val edit = prefDayAfter?.edit()
- edit?.clear()
- edit?.apply()
- DayAfter = ""
- }
-
-
- fun saveSportCursDay(scd: Int) {
- val edit = prefCursDay?.edit()
- edit?.putInt("scd", scd)
- edit?.apply()
- SportCursDay = scd
- }
-
- fun clearSportCursDay() {
- val edit = prefCursDay?.edit()
- edit?.clear()
- edit?.apply()
- SportCursDay = 0
- }
-
- fun saveSportCursDayDangerBefore(cddb: Int) {
- val edit = prefCursDangerDayBefore?.edit()
- edit?.putInt("cddb", cddb)
- edit?.apply()
- SportCursDayDangerBefore = cddb
- }
-
- fun clearSportCursDayDangerBefore() {
- val edit = prefCursDangerDayBefore?.edit()
- edit?.clear()
- edit?.apply()
- SportCursDayDangerBefore = 0
- }
-
- fun saveSportCursDayDangerAfter(cdda: Int) {
- val edit = prefCursDangerDayAfter?.edit()
- edit?.putInt("cdda", cdda)
- edit?.apply()
- SportCursDayDangerAfter = cdda
- }
-
- fun clearSportCursDayDangerAfter() {
- val edit = prefCursDangerDayAfter?.edit()
- edit?.clear()
- edit?.apply()
- SportCursDayDangerAfter = 0
- }
private fun buttenAdd() {
buttenAdd1()
@@ -386,7 +210,7 @@ class QAfterFragment : Fragment() {
binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- one = "0"
+ one = 0
}
binding.CVQ11.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
@@ -399,7 +223,7 @@ class QAfterFragment : Fragment() {
binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- one = "1"
+ one = 1
}
binding.CVQ12.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
@@ -412,7 +236,7 @@ class QAfterFragment : Fragment() {
binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- one = "2"
+ one = 2
}
binding.CVQ13.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
@@ -425,7 +249,7 @@ class QAfterFragment : Fragment() {
binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- one = "3"
+ one = 3
}
binding.CVQ14.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
@@ -439,7 +263,7 @@ class QAfterFragment : Fragment() {
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- one = "4"
+ one = 4
}
binding.CVQ15.setOnClickListener {
@@ -454,7 +278,7 @@ class QAfterFragment : Fragment() {
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- one = "5"
+ one = 5
}
binding.CVQ16.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
@@ -468,7 +292,7 @@ class QAfterFragment : Fragment() {
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- one = "6"
+ one = 6
}
binding.CVQ17.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
@@ -482,7 +306,7 @@ class QAfterFragment : Fragment() {
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- one = "7"
+ one = 7
}
binding.CVQ18.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
@@ -496,7 +320,7 @@ class QAfterFragment : Fragment() {
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- one = "8"
+ one = 8
}
binding.CVQ19.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
@@ -510,7 +334,7 @@ class QAfterFragment : Fragment() {
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- one = "9"
+ one = 9
}
binding.CVQ110.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
@@ -524,7 +348,7 @@ class QAfterFragment : Fragment() {
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ110.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- one = "10"
+ one = 10
}
}
@@ -532,12 +356,12 @@ class QAfterFragment : Fragment() {
binding.CVQyes2.setOnClickListener {
binding.CVQyes2.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno2.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- two = "1"
+ two = 1
}
binding.CVQno2.setOnClickListener {
binding.CVQyes2.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno2.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- two = "0"
+ two = 0
}
}
@@ -546,12 +370,12 @@ class QAfterFragment : Fragment() {
Log.d("CVQyes3", "CVQyes3")
binding.CVQyes3.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno3.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- thee = "1"
+ thee = 1
}
binding.CVQno3.setOnClickListener {
binding.CVQyes3.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno3.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- thee = "0"
+ thee = 0
}
}
@@ -559,12 +383,12 @@ class QAfterFragment : Fragment() {
binding.CVQyes4.setOnClickListener {
binding.CVQyes4.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno4.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- four = "1"
+ four = 1
}
binding.CVQno4.setOnClickListener {
binding.CVQyes4.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno4.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- four = "0"
+ four = 0
}
}
@@ -572,12 +396,12 @@ class QAfterFragment : Fragment() {
binding.CVQyes5.setOnClickListener {
binding.CVQyes5.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno5.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- five = "1"
+ five = 1
}
binding.CVQno5.setOnClickListener {
binding.CVQyes5.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno5.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- five = "0"
+ five = 0
}
}
@@ -585,12 +409,12 @@ class QAfterFragment : Fragment() {
binding.CVQyes6.setOnClickListener {
binding.CVQyes6.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno6.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- six = "1"
+ six = 1
}
binding.CVQno6.setOnClickListener {
binding.CVQyes6.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno6.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- six = "0"
+ six =0
}
}
@@ -598,12 +422,12 @@ class QAfterFragment : Fragment() {
binding.CVQyes7.setOnClickListener {
binding.CVQyes7.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno7.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- seven = "1"
+ seven = 1
}
binding.CVQno7.setOnClickListener {
binding.CVQyes7.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno7.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- seven = "0"
+ seven =0
}
}
@@ -611,12 +435,12 @@ class QAfterFragment : Fragment() {
binding.CVQyes8.setOnClickListener {
binding.CVQyes8.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno8.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- eight = "1"
+ eight = 1
}
binding.CVQno8.setOnClickListener {
binding.CVQyes8.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno8.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- eight = "0"
+ eight = 0
}
}
@@ -624,12 +448,12 @@ class QAfterFragment : Fragment() {
binding.CVQyes9.setOnClickListener {
binding.CVQyes9.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno9.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- nine = "1"
+ nine = 1
}
binding.CVQno9.setOnClickListener {
binding.CVQyes9.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno9.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- nine = "0"
+ nine = 0
}
}
@@ -637,12 +461,12 @@ class QAfterFragment : Fragment() {
binding.CVQyes10.setOnClickListener {
binding.CVQyes10.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- ten = "1"
+ ten = 1
}
binding.CVQno10.setOnClickListener {
binding.CVQyes10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno10.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- ten = "0"
+ ten = 0
}
}
@@ -650,12 +474,12 @@ class QAfterFragment : Fragment() {
binding.CVQyes11.setOnClickListener {
binding.CVQyes11.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- eleven = "1"
+ eleven = 1
}
binding.CVQno11.setOnClickListener {
binding.CVQyes11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno11.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- eleven = "0"
+ eleven = 0
}
}
@@ -663,12 +487,12 @@ class QAfterFragment : Fragment() {
binding.CVQyes12.setOnClickListener {
binding.CVQyes12.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- twelve = "1"
+ twelve = 1
}
binding.CVQno12.setOnClickListener {
binding.CVQyes12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno12.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- twelve = "0"
+ twelve = 0
}
}
diff --git a/app/src/main/java/com/example/rehabilitation/Questionnaire/QuestionnaireFragment/QBeforeFragment.kt b/app/src/main/java/com/example/rehabilitation/Questionnaire/QuestionnaireFragment/QBeforeFragment.kt
new file mode 100644
index 0000000..36dff5f
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Questionnaire/QuestionnaireFragment/QBeforeFragment.kt
@@ -0,0 +1,471 @@
+package com.example.rehabilitation.Questionnaire.QuestionnaireFragment
+
+import android.app.AlertDialog
+import android.graphics.Color
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.Toast
+import androidx.fragment.app.activityViewModels
+import com.example.admin.Toast.showCustomDangerToast
+import com.example.admin.Toast.showCustomInfoToast
+import com.example.rehabilitation.Pref.ConclusionPref
+import com.example.rehabilitation.Questionnaire.Model.AfterQuestionnaireModel
+import com.example.rehabilitation.Questionnaire.Model.BeforeQuestionnaireModel
+import com.example.rehabilitation.R
+import com.example.rehabilitation.Retrofit.PatientApi
+import com.example.rehabilitation.Sport.SceduleFragment
+import com.example.rehabilitation.databinding.FragmentQBeforeBinding
+import com.example.sqlitework.dip.MainViewModel
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import okhttp3.OkHttpClient
+import okhttp3.logging.HttpLoggingInterceptor
+import org.json.JSONObject
+import retrofit2.Retrofit
+import retrofit2.converter.gson.GsonConverterFactory
+
+
+class QBeforeFragment : Fragment() {
+ private lateinit var binding: FragmentQBeforeBinding
+ private val model: MainViewModel by activityViewModels()//Инициализировали класс
+ private lateinit var patientApi: PatientApi
+ val prefPatientConclusion = ConclusionPref()
+
+ var one = 100
+ var two = 100
+ var thee = 100
+ var four = 100
+ var five = 100
+ var six = 100
+ var seven = 100
+ var eight = 100
+ var nine = 100
+
+
+ var calendareDate = false
+ var countDay = 0
+
+ //Для разрешения проверки количества дней
+ var lookDateSportMax = false
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View {
+ // Inflate the layout for this fragment
+ binding = FragmentQBeforeBinding.inflate(layoutInflater, container, false)
+ return binding.root
+ }
+
+ companion object {
+ fun newInstance() = QBeforeFragment()
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+
+ buttenAdd()
+
+ //Выход
+ binding.btnExitQB.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.placeHolderFragment, SceduleFragment.newInstance())?.commit()
+ }
+
+ //Сохраняем результат
+ binding.btnSaveQuestionnaire.setOnClickListener {
+
+ if (one != 100 && two != 100 && thee != 100 && four != 100 && five != 100 && six != 100 && seven != 100 && eight != 100 && nine != 100) {
+ if(one >= 6) {
+ AlertDialog.Builder(requireContext())
+ .setTitle("Анкета")
+ .setMessage("Уверены ли Вы в выбранных ответах на вопросы анкеты? Халатное отношение к вопросам анкеты приведет к блокировке комплекса")
+ .setNeutralButton("Подтвердить") { dialog, whichButton ->
+ addQuestionnaire()
+ }
+ .setNegativeButton("Отмена") { dialog, whichButton ->
+ }.show()
+ }
+ else if(four == 1 && five == 1 && six == 1 && seven == 1 && nine == 1){
+ AlertDialog.Builder(requireContext())
+ .setTitle("Анкета")
+ .setMessage("Уверены ли Вы в выбранных ответах на вопросы анкеты? Халатное отношение к вопросам анкеты приведет к паузе комплекса")
+ .setNeutralButton("Подтвердить") { dialog, whichButton ->
+ addQuestionnaire()
+ }
+ .setNegativeButton("Отмена") { dialog, whichButton ->
+ }.show()
+ }
+ else{
+ addQuestionnaire()
+ }
+
+ } else {
+ Toast(requireContext()).showCustomInfoToast(
+ "Не все пункты выбраны",
+ requireActivity()
+ )
+ }
+ }
+ }
+
+ //Функция
+ fun addQuestionnaire(){
+ val item = BeforeQuestionnaireModel(
+ one,
+ two,
+ thee,
+ four,
+ five,
+ six,
+ seven,
+ eight,
+ nine,
+ )
+ BeforeQuestionnaire(item)
+
+ }
+
+ //Инициализация подлючения к серверу
+ private fun initRetrofit() {
+ val interceptor = HttpLoggingInterceptor()
+ interceptor.level = HttpLoggingInterceptor.Level.BODY
+
+ val client = OkHttpClient
+ .Builder()
+ .addInterceptor(interceptor)
+ .build()
+
+ val retrofit = Retrofit.Builder()
+ .baseUrl("http://mobileapp.vmeda.org/api/")
+ .client(client)
+ .addConverterFactory(GsonConverterFactory.create())
+ .build()
+
+ patientApi = retrofit.create(PatientApi::class.java)
+
+ }
+
+ //Получения списка пациентов
+ fun BeforeQuestionnaire(item: BeforeQuestionnaireModel) {
+ initRetrofit()
+ val Tokens = prefPatientConclusion.conclusionToken(requireContext())
+ CoroutineScope(Dispatchers.IO).launch {
+ val QA = patientApi.AddBeforeQuestionnaire2("Bearer $Tokens",item)
+ requireActivity().runOnUiThread {
+
+ //Фиксируем полученные данные
+ val AQList = QA.body()
+
+ //Если нету ошибок
+ if (AQList != null) {
+ Toast(requireContext()).showCustomInfoToast(AQList.message, requireActivity())
+ }
+ else{
+ Toast(requireContext()).showCustomInfoToast("Ошибка при отправке", requireActivity())
+
+ }
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.placeHolderFragment, SceduleFragment.newInstance())?.commit()
+ }
+
+ }
+ }
+
+
+ private fun buttenAdd() {
+ buttenAdd1()
+ buttenAdd1_2()
+ buttenAdd2()
+ buttenAdd3()
+ buttenAdd4()
+ buttenAdd5()
+ buttenAdd6()
+ buttenAdd7()
+ buttenAdd8()
+ buttenAdd9()
+
+ }
+
+
+ private fun buttenAdd1() {
+ binding.CVQyes1.setOnClickListener {
+ binding.CLQ112.visibility = View.VISIBLE
+ binding.CVQyes1.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno1.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+
+ }
+ binding.CVQno1.setOnClickListener {
+ binding.CLQ112.visibility = View.GONE
+ binding.CVQyes1.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno1.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ one = 0
+ }
+ }
+
+
+ private fun buttenAdd1_2() {
+ binding.CVQ10.setOnClickListener {
+ binding.CVQ10.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ one = 0
+ }
+ binding.CVQ11.setOnClickListener {
+ binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ one = 1
+ }
+ binding.CVQ12.setOnClickListener {
+ binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ one = 2
+ }
+ binding.CVQ13.setOnClickListener {
+ binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ one = 3
+ }
+ binding.CVQ14.setOnClickListener {
+ binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ one = 4
+
+ }
+ binding.CVQ15.setOnClickListener {
+ binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ one = 5
+ }
+ binding.CVQ16.setOnClickListener {
+ binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ one = 6
+ }
+ binding.CVQ17.setOnClickListener {
+ binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ one = 7
+ }
+ binding.CVQ18.setOnClickListener {
+ binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ one = 8
+ }
+ binding.CVQ19.setOnClickListener {
+ binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ one = 9
+ }
+ binding.CVQ110.setOnClickListener {
+ binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ110.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ one = 10
+ }
+ }
+
+ private fun buttenAdd2() {
+ binding.CVQyes2.setOnClickListener {
+ binding.CVQyes2.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno2.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ two = 1
+ }
+ binding.CVQno2.setOnClickListener {
+ binding.CVQyes2.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno2.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ two = 0
+ }
+ }
+
+ private fun buttenAdd3() {
+ binding.CVQyes3.setOnClickListener {
+ binding.CVQyes3.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno3.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ thee = 1
+ }
+ binding.CVQno3.setOnClickListener {
+ binding.CVQyes3.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno3.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ thee = 0
+ }
+ }
+
+ private fun buttenAdd4() {
+ binding.CVQyes4.setOnClickListener {
+ binding.CVQyes4.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno4.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ four = 1
+ }
+ binding.CVQno4.setOnClickListener {
+ binding.CVQyes4.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno4.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ four = 0
+ }
+ }
+
+ private fun buttenAdd5() {
+ binding.CVQyes5.setOnClickListener {
+ binding.CVQyes5.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno5.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ five = 1
+ }
+ binding.CVQno5.setOnClickListener {
+ binding.CVQyes5.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno5.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ five = 0
+ }
+ }
+
+ private fun buttenAdd6() {
+ binding.CVQyes6.setOnClickListener {
+ binding.CVQyes6.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno6.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ six = 1
+ }
+ binding.CVQno6.setOnClickListener {
+ binding.CVQyes6.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno6.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ six = 0
+ }
+ }
+
+ private fun buttenAdd7() {
+ binding.CVQyes7.setOnClickListener {
+ binding.CVQyes7.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno7.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ seven = 1
+ }
+ binding.CVQno7.setOnClickListener {
+ binding.CVQyes7.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno7.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ seven = 0
+ }
+ }
+
+ private fun buttenAdd8() {
+ binding.CVQyes8.setOnClickListener {
+ binding.CVQyes8.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno8.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ eight = 1
+ }
+ binding.CVQno8.setOnClickListener {
+ binding.CVQyes8.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno8.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ eight = 0
+ }
+ }
+
+ private fun buttenAdd9() {
+ binding.CVQyes9.setOnClickListener {
+ binding.CVQyes9.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno9.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ nine = 1
+ }
+ binding.CVQno9.setOnClickListener {
+ binding.CVQyes9.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno9.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ nine = 0
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Retrofit/PatientApi.kt b/app/src/main/java/com/example/rehabilitation/Retrofit/PatientApi.kt
new file mode 100644
index 0000000..c4d1eb8
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Retrofit/PatientApi.kt
@@ -0,0 +1,99 @@
+package com.example.rehabilitation.Retrofit
+
+import com.example.rehabilitation.Auth.Model.AuthModel
+import com.example.rehabilitation.Auth.Model.CheckTokenModel
+import com.example.rehabilitation.Auth.Model.UserModel
+import com.example.rehabilitation.Calendare.CalendareListModel
+import com.example.rehabilitation.MessageModel
+import com.example.rehabilitation.Progress.ProgressListModel
+import com.example.rehabilitation.Progress.ProgressModel
+import com.example.rehabilitation.Questionnaire.Model.AfterQuestionnaireMessage
+import com.example.rehabilitation.Questionnaire.Model.AfterQuestionnaireModel
+import com.example.rehabilitation.Questionnaire.Model.BeforeQuestionnaireMessage
+import com.example.rehabilitation.Questionnaire.Model.BeforeQuestionnaireModel
+import com.example.rehabilitation.Questionnaire.Model.QuestionnaireModel
+import com.example.rehabilitation.Sport.DayListModel
+import com.example.rehabilitation.Sport.DayModel
+import com.example.rehabilitation.Sport.SportDayOneModel
+import com.example.rehabilitation.Sport.SportForDayListModel
+import com.example.rehabilitation.Sport.SportForDayModel
+import com.example.rehabilitation.Sport.SportListModel
+import com.example.rehabilitation.Sport.UpdateSportTrueFalseModel
+import com.example.rehabilitation.Sport.ViewFragmentModel
+import com.example.rehabilitation.Sport.ViewVisibleModel
+import retrofit2.Response
+import retrofit2.http.Body
+import retrofit2.http.GET
+import retrofit2.http.Header
+import retrofit2.http.Headers
+import retrofit2.http.POST
+import retrofit2.http.PUT
+import retrofit2.http.Query
+
+interface PatientApi {
+
+ //Проверка токена
+ @Headers("Content-Type: application/json")
+ @GET("CheckTokenPatient")
+ suspend fun CheckToken(@Header("Authorization") token:String): Response
+
+ //Авторизация
+ @Headers("Content-Type: application/json")
+ @POST("LoginPatient")
+ suspend fun LoginPatient(@Body authModel: AuthModel): Response
+
+ //Выход из аккаунта
+ @Headers("Content-Type: application/json")
+ @POST("LogoutPatient")
+ suspend fun LogoutPatient(@Header("Authorization") token:String):Response
+
+ //Заполнение анкеты ДО
+ @Headers("Content-Type: application/json")
+ @POST("AddBeforeQuestionnaire2")
+ suspend fun AddBeforeQuestionnaire2(@Header("Authorization") token:String,@Body beforeQuestionnaireModel: BeforeQuestionnaireModel): Response
+
+ //Заполнение анкеты ПОСЛЕ
+ @Headers("Content-Type: application/json")
+ @POST("AddAfterQuestionnaire2")
+ suspend fun AddAfterQuestionnaire2(@Header("Authorization") token:String,@Body afterQuestionnaireModel: AfterQuestionnaireModel) : Response
+
+ //Добавление курса на сегодня
+ @Headers("Content-Type: application/json")
+ @POST("AddCourses2")
+ suspend fun AddCourses2(@Header("Authorization") token:String)
+
+ //Вывод списка спортивных задания на 1 день
+ @Headers("Content-Type: application/json")
+ @GET("CoutSportCourses")
+ suspend fun CoutSportCourses(@Header("Authorization") token:String)
+
+ //Вывод нужного экрана
+ @Headers("Content-Type: application/json")
+ @GET("VisibleView3")
+ suspend fun VisibleView3(@Header("Authorization") token:String) :Response
+
+ //Вывод календаря
+ @Headers("Content-Type: application/json")
+ @GET("PatientCalendareDay")
+ suspend fun PatientCalendareDay(@Header("Authorization") token:String):Response
+
+ //Вывод списка упражнений
+ @Headers("Content-Type: application/json")
+ @GET("GetSportDay")
+ suspend fun GetSportDay(@Header("Authorization") token:String):Response
+
+ //Вывод определенного упражнения
+ @Headers("Content-Type: application/json")
+ @GET("GetSportDayOne")
+ suspend fun GetSportDayOne(@Header("Authorization") token:String,@Query("id") id:Int):Response
+
+ //Подтвержденеи упражнения
+ @Headers("Content-Type: application/json")
+ @PUT("AddSportCheck")
+ suspend fun AddSportCheck(@Header("Authorization") token:String,@Query("id") id:Int, @Query("check") check:Int):Response
+
+ //Список прогресса по дням
+ @Headers("Content-Type: application/json")
+ @GET("ProgressPatientCourses")
+ suspend fun ProgressPatientCourses(@Header("Authorization") token:String):Response
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Room/Dao.kt b/app/src/main/java/com/example/rehabilitation/Room/Dao.kt
deleted file mode 100644
index 0c0ac5a..0000000
--- a/app/src/main/java/com/example/rehabilitation/Room/Dao.kt
+++ /dev/null
@@ -1,35 +0,0 @@
-package com.example.rehabilitation.Room
-
-import androidx.room.Dao
-import androidx.room.Insert
-import androidx.room.Query
-import kotlinx.coroutines.flow.Flow
-
-@Dao
-interface Dao {
- //Таблица по по дням
- @Insert
- fun insertItem(item:Item)
- //Таблица определенного дня
-
-
- //Список по дням
- @Query("SELECT * FROM items ORDER BY id ASC")
- fun getAllItems(): Flow>
-
- //Список определенного дня
-// @Query("SELECT * FROM itemDay")
-// fun getAllItemDay(): Flow>
-
- //Обновление по переднному параметру
- @Query("UPDATE items SET `check` = 1 WHERE id = :id")
- fun updateItems(id : String)
-
- @Query("UPDATE items SET `day` = :day WHERE date = :date")
- fun updateDay(day:String,date : String)
-
- //Очистка таблицы
- @Query("DELETE FROM items")
- fun deleteItem()
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Room/DaoDaySport.kt b/app/src/main/java/com/example/rehabilitation/Room/DaoDaySport.kt
deleted file mode 100644
index f5d8834..0000000
--- a/app/src/main/java/com/example/rehabilitation/Room/DaoDaySport.kt
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.example.rehabilitation.Room
-
-import androidx.room.Dao
-import androidx.room.Insert
-import androidx.room.Query
-import androidx.room.Update
-import kotlinx.coroutines.flow.Flow
-
-
-@Dao
-interface DaoDaySport {
- //Таблица определенного дня
- @Insert
- fun insertItemDaySport(itemDaySport:ItemDaySport)
-
- //Список определенного дня
- @Query("SELECT * FROM DaySport ORDER BY day ASC")
- fun getAllItemDaySportDay(): Flow>
-
- //Список определенного дня
- @Query("SELECT * FROM DaySport WHERE day = :day AND visible = 1")
- fun getAllItemDaySport(day:String): Flow>
-
-
- //Список определенного дня
- @Query("SELECT id,day,category, `check`,COUNT(*) as visible FROM DaySport WHERE visible='1' GROUP BY day ORDER BY day ASC")
- fun getAllProgres(): Flow>
-
- //Список определенного дня
- @Query("SELECT id,day,category, COUNT(*) as `check`, visible FROM DaySport WHERE `check`='1' and visible='1' GROUP BY day ORDER BY day ASC")
- fun getcheckProgress(): Flow>
- //Получаем любую рандомну строку для того чтобы использовать его дату в редактирование списка
- @Query("SELECT * FROM DaySport ORDER BY day DESC LIMIT 1")
- fun getItemDaySportRandomOne(): Flow>
-
- @Update
- fun updateCheckDaySport(itemDaySport: ItemDaySport)
-
- @Query("SELECT DaySport.id as id ,DaySport.day as day,DaySport.category as category, DaySport.`check` as `check`,DaySport.visible as visible, SportCategory.`desc` as `desc`, SportCategory.image as categoryImage FROM DaySport JOIN SportCategory ON DaySport.category = SportCategory.category WHERE DaySport.day == :date ORDER BY day ASC")
- fun getListJoinDaySportAndSportCategory(date:String): Flow>
-
- //Обновляем видимость у записей с данным
- @Query("UPDATE DaySport SET visible = 1 WHERE category = :category AND day>=:date")
- fun updateVisibleDaySportTrue(category:String,date :String)
- @Query("UPDATE DaySport SET visible = 0 WHERE category = :category AND day>=:date")
- fun updateVisibleDaySportFalse(category:String,date :String)
-
-
- //Обновление что выполнил упражнение
- @Query("UPDATE DaySport SET `check` = 1 WHERE id = :id")
- fun updateCheckDaySport(id:Int)
-
- @Query("UPDATE DaySport SET `check` = 2 WHERE id = :id")
- fun updateNoCheckDaySport(id:Int)
-
- //Очистка таблицы
- @Query("DELETE FROM DaySport")
- fun deleteItemDaySport()
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Room/DaoImage.kt b/app/src/main/java/com/example/rehabilitation/Room/DaoImage.kt
deleted file mode 100644
index 6c58912..0000000
--- a/app/src/main/java/com/example/rehabilitation/Room/DaoImage.kt
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.example.rehabilitation.Room
-
-import androidx.room.Dao
-import androidx.room.Insert
-import androidx.room.Query
-import kotlinx.coroutines.flow.Flow
-
-@Dao
-interface DaoImage {
- //Таблица определенного дня
- @Insert
- fun insertItemImage(itemImage:ItemImage)
-
- //Список определенного дня
- @Query("SELECT * FROM Image")
- fun getAllItemImage(): Flow>
-
- //Список определенного дня
- @Query("SELECT * FROM Image WHERE article = :article ORDER BY id ASC")
- fun getAllItemImage(article:String): Flow>
-
- //Очистка таблицы
- @Query("DELETE FROM Image")
- fun deleteItemImage()
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Room/DaoSportCategory.kt b/app/src/main/java/com/example/rehabilitation/Room/DaoSportCategory.kt
deleted file mode 100644
index d335f36..0000000
--- a/app/src/main/java/com/example/rehabilitation/Room/DaoSportCategory.kt
+++ /dev/null
@@ -1,53 +0,0 @@
-package com.example.rehabilitation.Room
-
-import androidx.room.Dao
-import androidx.room.Insert
-import androidx.room.Query
-import kotlinx.coroutines.flow.Flow
-
-@Dao
-interface DaoSportCategory {
- //Таблица по по дням
- @Insert
- fun insertItemSportCategory(item:ItemSportCategory)
- //Таблица определенного дня
-
-
- //Список по дням
- @Query("SELECT * FROM SportCategory WHERE category = :category")
- fun getAllItemsSportCategory(category:String): Flow>
-
-
-
-// @Query("SELECT * FROM SportCategory WHERE image = :category")
-// fun getAllItemsSportCategoryEdit(category:String): Flow>
-//
-
- @Query("SELECT id, name, `desc`, count,COUNT(*) as image,category,article,`check` FROM SportCategory WHERE image = :category and `check`=0")
- fun getAllItemsSportCategoryCount(category:String): Flow>
-
- @Query("SELECT id, name, `desc`,COUNT(*) as count,image,category,article,`check` FROM SportCategory WHERE image = :category and `check`=0")
- fun getAllItemsSportCategoryCountSport(category:String): Flow>
-
- //По артикулу
- @Query("SELECT id, name, `desc`,COUNT(*) as count,image,category,article,`check` FROM SportCategory WHERE article = :article")
- fun getSportArticle(article:String): Flow>
-
- //Rjkbxtcndj eghf;ytybq
- @Query("SELECT id, COUNT(*) as name, `desc`, count, image,category,article,`check` FROM SportCategory WHERE article = :article and `check` = 0")
- fun getCountSportCategory(article:String): Flow>
-
-
- //Список определенного дня
-// @Query("SELECT * FROM itemDay")
-// fun getAllItemDay(): Flow>
-
- //Обновление по переднному параметру
-// @Query("UPDATE itemSportCategory SET `check` = 1 WHERE id = :id")
-// fun updateItemsSportCategory(id : String)
-
- //Очистка таблицы
-// @Query("DELETE FROM SportCategory")
-// fun deleteItemSportCategory()
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Room/DaoSportPatient.kt b/app/src/main/java/com/example/rehabilitation/Room/DaoSportPatient.kt
deleted file mode 100644
index dfe8a4c..0000000
--- a/app/src/main/java/com/example/rehabilitation/Room/DaoSportPatient.kt
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.example.rehabilitation.Room
-
-import androidx.room.Dao
-import androidx.room.Insert
-import androidx.room.Query
-import kotlinx.coroutines.flow.Flow
-
-@Dao
-interface DaoSportPatient {
- //Таблица по по дням
- @Insert
- fun insertItemSportPatient(item:ItemSportPatient)
- //Таблица определенного дня
-
-
- //Список по дням
- @Query("SELECT * FROM SportPatient WHERE image = :category")
- fun getAllItemsSportPatient(category:String): Flow>
-
- //Список определенного дня
-// @Query("SELECT * FROM itemDay")
-// fun getAllItemDay(): Flow>
-
- //Обновление по переднному параметру
-// @Query("UPDATE itemSportCategory SET `check` = 1 WHERE id = :id")
-// fun updateItemsSportCategory(id : String)
-
- //Очистка таблицы
-// @Query("DELETE FROM SportPatient")
-// fun deleteItemSportPatient()
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Room/Item.kt b/app/src/main/java/com/example/rehabilitation/Room/Item.kt
deleted file mode 100644
index c3a7b82..0000000
--- a/app/src/main/java/com/example/rehabilitation/Room/Item.kt
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.example.rehabilitation.Room
-
-import androidx.room.ColumnInfo
-import androidx.room.Entity
-import androidx.room.PrimaryKey
-
-@Entity(tableName = "Items")
-data class Item(
- @PrimaryKey(autoGenerate = true)
- var id:Int? = null,
- @ColumnInfo(name = "day")
- var day: String,
- @ColumnInfo(name = "date")
- var date: String,
- @ColumnInfo(name = "check")
- var check:Int
- )
-
diff --git a/app/src/main/java/com/example/rehabilitation/Room/ItemDaySport.kt b/app/src/main/java/com/example/rehabilitation/Room/ItemDaySport.kt
deleted file mode 100644
index 4ad6d72..0000000
--- a/app/src/main/java/com/example/rehabilitation/Room/ItemDaySport.kt
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.example.rehabilitation.Room
-
-import androidx.room.ColumnInfo
-import androidx.room.Entity
-import androidx.room.PrimaryKey
-
-@Entity(tableName = "DaySport")
-data class ItemDaySport(
- @PrimaryKey(autoGenerate = true)
- var id:Int? = null,
- @ColumnInfo(name = "day")
- var day:String,
- @ColumnInfo(name = "category")
- var category:String,
- @ColumnInfo(name = "check")
- var check:Int,
- @ColumnInfo(name = "visible")
- var visible:Int,
-
-)
diff --git a/app/src/main/java/com/example/rehabilitation/Room/ItemDaySportAndSportCategory.kt b/app/src/main/java/com/example/rehabilitation/Room/ItemDaySportAndSportCategory.kt
deleted file mode 100644
index 0bc434e..0000000
--- a/app/src/main/java/com/example/rehabilitation/Room/ItemDaySportAndSportCategory.kt
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.example.rehabilitation.Room
-
-import androidx.room.ColumnInfo
-import androidx.room.Entity
-import androidx.room.PrimaryKey
-
-@Entity(tableName = "ItemDaySportAndSportCategory")
-data class ItemDaySportAndSportCategory(
- @ColumnInfo(name = "id")
- var id:Int,
- @ColumnInfo(name = "day")
- var day:String,
- @ColumnInfo(name = "category")
- var category:String,
- @ColumnInfo(name = "check")
- var check:Int,
- @ColumnInfo(name = "visible")
- var visible:Int,
- @ColumnInfo(name = "desc")
- var desc:String,
- @ColumnInfo(name = "categoryImage")
- var categoryImage:String,
-)
-
diff --git a/app/src/main/java/com/example/rehabilitation/Room/ItemImage.kt b/app/src/main/java/com/example/rehabilitation/Room/ItemImage.kt
deleted file mode 100644
index 98dbadf..0000000
--- a/app/src/main/java/com/example/rehabilitation/Room/ItemImage.kt
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.example.rehabilitation.Room
-
-import androidx.room.ColumnInfo
-import androidx.room.Entity
-import androidx.room.PrimaryKey
-
-@Entity(tableName = "Image")
-data class ItemImage(
- @PrimaryKey(autoGenerate = true)
- var id:Int? = null,
- @ColumnInfo(name = "nameImage")
- var image:String,
- @ColumnInfo(name = "article")
- var name:String,
- @ColumnInfo(name = "category")
- var category:String,
-)
diff --git a/app/src/main/java/com/example/rehabilitation/Room/ItemProgressAll.kt b/app/src/main/java/com/example/rehabilitation/Room/ItemProgressAll.kt
deleted file mode 100644
index 419dff9..0000000
--- a/app/src/main/java/com/example/rehabilitation/Room/ItemProgressAll.kt
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.example.rehabilitation.Room
-
-import androidx.room.ColumnInfo
-import androidx.room.Entity
-import androidx.room.PrimaryKey
-
-@Entity(tableName = "ItemProgressAll")
-data class ItemProgressAll(
- @ColumnInfo(name = "date")
- var date:String,
- @ColumnInfo(name = "countAll")
- var countAll:Int,
- @ColumnInfo(name = "category")
- var category:String,
-
-)
diff --git a/app/src/main/java/com/example/rehabilitation/Room/ItemProgressCheck.kt b/app/src/main/java/com/example/rehabilitation/Room/ItemProgressCheck.kt
deleted file mode 100644
index 438fe0f..0000000
--- a/app/src/main/java/com/example/rehabilitation/Room/ItemProgressCheck.kt
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.example.rehabilitation.Room
-
-import androidx.room.ColumnInfo
-import androidx.room.Entity
-import androidx.room.PrimaryKey
-
-@Entity(tableName = "ItemProgressCheck")
-data class ItemProgressCheck(
- @ColumnInfo(name = "date")
- var date:String,
- @ColumnInfo(name = "countCheck")
- var countCheck:Int,
- @ColumnInfo(name = "category")
- var category:String,
-
-)
diff --git a/app/src/main/java/com/example/rehabilitation/Room/ItemProgressDay.kt b/app/src/main/java/com/example/rehabilitation/Room/ItemProgressDay.kt
deleted file mode 100644
index 0ab75ad..0000000
--- a/app/src/main/java/com/example/rehabilitation/Room/ItemProgressDay.kt
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.example.rehabilitation.Room
-
-import androidx.room.ColumnInfo
-import androidx.room.Entity
-import androidx.room.PrimaryKey
-
-@Entity(tableName = "ItemProgressDay")
-data class ItemProgressDay(
- @PrimaryKey(autoGenerate = true)
- var id:Int? = null,
- @ColumnInfo(name = "countAll")
- var countAll:Int,
- @ColumnInfo(name = "CountCheckTrue")
- var CountCheckTrue:Int,
- @ColumnInfo(name = "category")
- var category:String,
- @ColumnInfo(name = "date")
- var date:Int,
-
-)
diff --git a/app/src/main/java/com/example/rehabilitation/Room/ItemSportCategory.kt b/app/src/main/java/com/example/rehabilitation/Room/ItemSportCategory.kt
deleted file mode 100644
index 37a14a2..0000000
--- a/app/src/main/java/com/example/rehabilitation/Room/ItemSportCategory.kt
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.example.rehabilitation.Room
-
-import androidx.room.ColumnInfo
-import androidx.room.Entity
-import androidx.room.PrimaryKey
-
-@Entity(tableName = "SportCategory")
-data class ItemSportCategory(
- @PrimaryKey(autoGenerate = true)
- var id: Int? = null,
- @ColumnInfo(name = "name")
- var name: String,
- @ColumnInfo(name = "desc")
- var desc: String,
- @ColumnInfo(name = "count")
- var count: String,
- @ColumnInfo(name = "image")
- var image: String,
- @ColumnInfo(name = "category")
- var category: String,
- @ColumnInfo(name = "article")
- var article: String,
- @ColumnInfo(name = "check")
- var check: Int
-)
-
diff --git a/app/src/main/java/com/example/rehabilitation/Room/ItemSportCategoryCount.kt b/app/src/main/java/com/example/rehabilitation/Room/ItemSportCategoryCount.kt
deleted file mode 100644
index da4ef55..0000000
--- a/app/src/main/java/com/example/rehabilitation/Room/ItemSportCategoryCount.kt
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.example.rehabilitation.Room
-
-import androidx.room.ColumnInfo
-
-data class ItemSportCategoryCount(
- @ColumnInfo(name = "count")
- var count:String,
-)
-
diff --git a/app/src/main/java/com/example/rehabilitation/Room/ItemSportPatient.kt b/app/src/main/java/com/example/rehabilitation/Room/ItemSportPatient.kt
deleted file mode 100644
index be32033..0000000
--- a/app/src/main/java/com/example/rehabilitation/Room/ItemSportPatient.kt
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.example.rehabilitation.Room
-
-import androidx.room.ColumnInfo
-import androidx.room.Entity
-import androidx.room.PrimaryKey
-
-@Entity(tableName = "SportPatient")
-data class ItemSportPatient(
- @PrimaryKey(autoGenerate = true)
- var id:Int? = null,
- @ColumnInfo(name = "name")
- var name:String,
- @ColumnInfo(name = "desc")
- var desc:String,
- @ColumnInfo(name = "count")
- var count:String,
- @ColumnInfo(name = "image")
- var image:String,
- @ColumnInfo(name = "day")
- var day:String
-)
-
diff --git a/app/src/main/java/com/example/rehabilitation/Room/MainDB.kt b/app/src/main/java/com/example/rehabilitation/Room/MainDB.kt
deleted file mode 100644
index 6e8d922..0000000
--- a/app/src/main/java/com/example/rehabilitation/Room/MainDB.kt
+++ /dev/null
@@ -1,162 +0,0 @@
-package com.example.rehabilitation.Room
-
-import android.content.Context
-import androidx.room.Database
-import androidx.room.Room.databaseBuilder
-import androidx.room.RoomDatabase
-import com.example.rehabilitation.Room.Questionnaire.After.DaoAfterQuestionnaire
-import com.example.rehabilitation.Room.Questionnaire.After.ItemAfterQuestionnaire
-import com.example.rehabilitation.Room.Questionnaire.Before.DaoBeforeQuestionnaire
-import com.example.rehabilitation.Room.Questionnaire.Before.ItemBeforeQuestionnaire
-import com.example.rehabilitation.Room.dbUser.dbDoctor.DaoDoctor
-import com.example.rehabilitation.Room.dbUser.dbDoctor.ItemDoctor
-import com.example.rehabilitation.Room.dbUser.dbPatient.DaoPatient
-import com.example.rehabilitation.Room.dbUser.dbPatient.ItemPatient
-
-
-@Database(entities = [
- Item::class,
- ItemDaySport::class,
- ItemImage::class,
- ItemSportCategory::class,
- ItemSportPatient::class,
- ItemDoctor::class,
- ItemPatient::class,
- ItemBeforeQuestionnaire::class,
- ItemAfterQuestionnaire::class,
-], version = 12)
-abstract class MainDB: RoomDatabase() {
-
- abstract fun getDao(): Dao
- abstract fun getDaoDaySport(): DaoDaySport
- abstract fun getDaoImage(): DaoImage
- abstract fun getDaoSportCategory(): DaoSportCategory
- abstract fun getDaoSportPatient(): DaoSportPatient
- abstract fun getDaoDoctor(): DaoDoctor
- abstract fun getDaoPatient(): DaoPatient
- abstract fun getDaoQB(): DaoBeforeQuestionnaire
- abstract fun getDaoQA(): DaoAfterQuestionnaire
- //
-
- companion object{
-// fun getDB(context: Context):MainDB{
-// return Room.databaseBuilder(
-// context.applicationContext,
-// MainDB::class.java,
-// "ClogonV22.db"
-// ).build()
-//
-// }
-//private val DB_NAME: String? = "ReabilitationV2.db"
-//
-// fun buildDatabase(context: Context): MainDB? {
-// val dbFile = context.getDatabasePath(DB_NAME)
-// if (!dbFile.exists()) {
-// copyDatabaseFile(dbFile.absolutePath)
-// }
-// return databaseBuilder(
-// context.applicationContext,
-// MainDB::class.java, DB_NAME
-// )
-// .build()
-// }
-//
-// private fun copyDatabaseFile(destinationPath: String) {
-// // code to copy the file from assets/database directory to destinationPath
-// }
- fun getDB(context: Context):MainDB{
- return databaseBuilder(context, MainDB::class.java,"ReabilitationV4.db")
- .createFromAsset("ReabilitationV4.db")
- .fallbackToDestructiveMigration()
- .build()
- }
-
- }
-}
-
-/*abstract class MainDB: RoomDatabase(){
- abstract fun getDao(): Dao
- abstract fun getDaoDaySport(): DaoDaySport
- abstract fun getDaoImage(): DaoImage
- abstract fun getDaoSportCategory(): DaoSportCategory
- abstract fun getDaoSportPatient(): DaoSportPatient
- override fun init(configuration: DatabaseConfiguration) {
- importExistingDatabase(
- configuration.context,
- true
- ) //<<<<<<<<<< Invokes the Import of the Exisiting Database.
- super.init(configuration)
- }
-
- private fun importExistingDatabase(context: Context, throw_exception: Boolean) {
- val buffer_size = 32768
- val dbpath = context.getDatabasePath(DBNAME)
- if (dbpath.exists()) {
- return // Database already exists
- }
- // Just in case make the directories
- val dirs = File(dbpath.parent)
- dirs.mkdirs()
- var stage = 0
- val buffer = ByteArray(buffer_size)
- var total_bytes_read: Long = 0
- var total_bytes_written: Long = 0
- var bytes_read = 0
- try {
- val assetdb = context.assets.open(DBNAME)
- stage++
- dbpath.createNewFile()
- stage++
- val realdb: OutputStream = FileOutputStream(dbpath)
- stage++
- while (assetdb.read(buffer).also { bytes_read = it } > 0) {
- total_bytes_read = total_bytes_read + bytes_read
- realdb.write(buffer, 0, bytes_read)
- total_bytes_written = total_bytes_written + bytes_read
- }
- stage++
- realdb.flush()
- stage++
- assetdb.close()
- stage++
- realdb.close()
- stage++
- } catch (e: IOException) {
- var failed_at = ""
- when (stage) {
- 0 -> failed_at = "Opening Asset " + DBNAME
- 1 -> failed_at = "Creating Output Database " + dbpath.absolutePath
- 2 -> failed_at = "Genreating Database OutputStream " + dbpath.absolutePath
- 3 -> failed_at = "Copying Data from Asset Database to Output Database. " +
- " Bytes read=" + total_bytes_read.toString() +
- " Bytes written=" + total_bytes_written.toString()
-
- 4 -> failed_at = "Flushing Written Data ($total_bytes_written bytes written)"
- 5 -> failed_at = "Closing Asset Database File."
- 6 -> failed_at = "Closing Created Database File."
- }
- val msg =
- """An error was encountered copying the Database from the asset file to New Database. The error was encountered whilst :-
- $failed_at"""
- Log.e("IMPORTDATABASE", msg)
- e.printStackTrace()
- if (throw_exception) {
- throw RuntimeException(msg)
- }
- }
- }
-
- companion object {
- const val DBNAME = "ClogonV3.db"
- const val TB_MYTABLE = "mytable"
- const val TB_MYOTHERTABLE = "myothertable"
- const val TB_MYMAPPINGTABLE = "mymappingtable"
- const val COL_MYTABLE_ID = BaseColumns._ID
- const val COL_MYTABLE_NAME = "_name"
- const val COL_MYTABLE_DESCRIPTION = "_description"
- const val COL_MYOTHERTABLE_ID = BaseColumns._ID
- const val COL_MYOTHERTABLE_OTHERDETAILS = "_otherdetails"
- const val COL_MYMAPPINGTABLE_MYTABLEREFERENCE = "_mytable_reference"
- const val COL_MYMAPPINGTABLE_MYOTEHERTABLEREFERENCE = "_myothertable_reference"
- }
-}*/
diff --git a/app/src/main/java/com/example/rehabilitation/Room/Questionnaire/After/DaoAfterQuestionnaire.kt b/app/src/main/java/com/example/rehabilitation/Room/Questionnaire/After/DaoAfterQuestionnaire.kt
deleted file mode 100644
index 090bf99..0000000
--- a/app/src/main/java/com/example/rehabilitation/Room/Questionnaire/After/DaoAfterQuestionnaire.kt
+++ /dev/null
@@ -1,44 +0,0 @@
-package com.example.rehabilitation.Room.Questionnaire.After
-
-import androidx.room.Dao
-import androidx.room.Insert
-import androidx.room.Query
-import com.example.rehabilitation.Room.Item
-import com.example.rehabilitation.Room.Questionnaire.Before.ItemBeforeQuestionnaire
-import kotlinx.coroutines.flow.Flow
-
-@Dao
-interface DaoAfterQuestionnaire {
- //Таблица по по дням
- @Insert
- fun insertAQ(itemAfterQuestionnaire: ItemAfterQuestionnaire)
- //Таблица определенного дня
-
-
-//// //Список по дням
-// @Query("SELECT * FROM AfterQuestionnaire ORDER BY date ASC")
-// fun getAllAQ(): Flow>
-
-
- //Весь список
- @Query("SELECT * FROM AfterQuestionnaire ORDER BY date ASC")
- fun getAllAQProgress(): Flow>
-
-
- //Список определенного дня
- @Query("SELECT * FROM AfterQuestionnaire WHERE date = :date")
- fun getAllAQDay(date:String): Flow>
-
- //Список определенного дня
- @Query("SELECT * FROM AfterQuestionnaire WHERE date = :date")
- fun getAllProgress(date:String): Flow>
-
- //Обновление по переднному параметру
- //@Query("UPDATE AfterQuestionnaire SET `check` = 1 WHERE id = :id")
- //fun updateAQ(id : String)
-
- //Очистка таблицы
- @Query("DELETE FROM AfterQuestionnaire")
- fun deleteAQ()
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Room/Questionnaire/After/ItemAfterQuestionnaire.kt b/app/src/main/java/com/example/rehabilitation/Room/Questionnaire/After/ItemAfterQuestionnaire.kt
deleted file mode 100644
index 54740d9..0000000
--- a/app/src/main/java/com/example/rehabilitation/Room/Questionnaire/After/ItemAfterQuestionnaire.kt
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.example.rehabilitation.Room.Questionnaire.After
-
-import androidx.room.ColumnInfo
-import androidx.room.Entity
-import androidx.room.PrimaryKey
-
-@Entity(tableName = "AfterQuestionnaire")
-data class ItemAfterQuestionnaire(
- @PrimaryKey(autoGenerate = true)
- var id:Int? = null,
- @ColumnInfo(name = "one")
- var one: String,
- @ColumnInfo(name = "two")
- var two: String,
- @ColumnInfo(name = "three")
- var three: String,
- @ColumnInfo(name = "four")
- var four:String,
- @ColumnInfo(name = "five")
- var five:String,
- @ColumnInfo(name = "six")
- var six:String,
- @ColumnInfo(name = "seven")
- var seven:String,
- @ColumnInfo(name = "eight")
- var eight:String,
- @ColumnInfo(name = "nine")
- var nine:String,
- @ColumnInfo(name = "ten")
- var ten:String,
- @ColumnInfo(name = "eleven")
- var elevenInt:String,
- @ColumnInfo(name = "twelve")
- var twelve:String,
- @ColumnInfo(name = "date")
- var date:String,
- )
-
diff --git a/app/src/main/java/com/example/rehabilitation/Room/Questionnaire/Before/DaoBeforeQuestionnaire.kt b/app/src/main/java/com/example/rehabilitation/Room/Questionnaire/Before/DaoBeforeQuestionnaire.kt
deleted file mode 100644
index cfaa9c3..0000000
--- a/app/src/main/java/com/example/rehabilitation/Room/Questionnaire/Before/DaoBeforeQuestionnaire.kt
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.example.rehabilitation.Room.Questionnaire.Before
-
-import androidx.room.Dao
-import androidx.room.Insert
-import androidx.room.Query
-import com.example.rehabilitation.Room.Item
-import com.example.rehabilitation.Room.Questionnaire.After.ItemAfterQuestionnaire
-import kotlinx.coroutines.flow.Flow
-
-@Dao
-interface DaoBeforeQuestionnaire {
- //Таблица по по дням
- @Insert
- fun insertBQ(item: ItemBeforeQuestionnaire)
- //Таблица определенного дня
-
-
-// // //Список по дням
-// @Query("SELECT * FROM BeforeQuestionnaire ORDER BY date ASC")
-// fun getAllBQ(): Flow>
-
- //Весь список
- @Query("SELECT * FROM BeforeQuestionnaire ORDER BY date ASC")
- fun getAllBQProgress(): Flow>
-
- //Список определенного дня
- @Query("SELECT * FROM BeforeQuestionnaire WHERE date = :date")
- fun getAllBQDay(date:String): Flow>
-
- //Обновление по переднному параметру
- //@Query("UPDATE BeforeQuestionnaire SET `check` = 1 WHERE id = :id")
- //fun updateBQ(id : String)
-
- //Очистка таблицы
- @Query("DELETE FROM BeforeQuestionnaire")
- fun deleteBQ()
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Room/Questionnaire/Before/ItemBeforeQuestionnaire.kt b/app/src/main/java/com/example/rehabilitation/Room/Questionnaire/Before/ItemBeforeQuestionnaire.kt
deleted file mode 100644
index 36c9bb0..0000000
--- a/app/src/main/java/com/example/rehabilitation/Room/Questionnaire/Before/ItemBeforeQuestionnaire.kt
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.example.rehabilitation.Room.Questionnaire.Before
-
-import androidx.room.ColumnInfo
-import androidx.room.Entity
-import androidx.room.PrimaryKey
-
-@Entity(tableName = "BeforeQuestionnaire")
-data class ItemBeforeQuestionnaire(
- @PrimaryKey(autoGenerate = true)
- var id:Int? = null,
- @ColumnInfo(name = "one")
- var one: String,
- @ColumnInfo(name = "two")
- var two: String,
- @ColumnInfo(name = "three")
- var three: String,
- @ColumnInfo(name = "four")
- var four:String,
- @ColumnInfo(name = "five")
- var five:String,
- @ColumnInfo(name = "six")
- var six:String,
- @ColumnInfo(name = "seven")
- var seven:String,
- @ColumnInfo(name = "eight")
- var eight:String,
- @ColumnInfo(name = "nine")
- var nine:String,
-
- @ColumnInfo(name = "date")
- var date:String,
- )
-
diff --git a/app/src/main/java/com/example/rehabilitation/Room/dbUser/dbDoctor/DaoDoctor.kt b/app/src/main/java/com/example/rehabilitation/Room/dbUser/dbDoctor/DaoDoctor.kt
deleted file mode 100644
index 7619fa6..0000000
--- a/app/src/main/java/com/example/rehabilitation/Room/dbUser/dbDoctor/DaoDoctor.kt
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.example.rehabilitation.Room.dbUser.dbDoctor
-
-import androidx.room.Dao
-import androidx.room.Insert
-import androidx.room.Query
-import androidx.room.Update
-import com.example.rehabilitation.Room.dbUser.dbPatient.ItemPatient
-import kotlinx.coroutines.flow.Flow
-
-
-@Dao
-interface DaoDoctor {
- //Таблица определенного дня
- @Insert
- fun insertItemDoctor(itemDoctor:ItemDoctor)
-
- //Список врачей
- @Query("SELECT * FROM Doctor ORDER BY id ASC")
- fun getAllItemDoctor(): Flow>
-
- //Список врачей
- @Query("SELECT * FROM Doctor WHERE login")
- fun getItemDoctor(): Flow>
-
- //Опредеоение авторизованного врача
- @Query("SELECT * FROM Doctor WHERE login = :login AND password = :password")
- fun getAuthItemDoctor(login:String, password:String): Flow>
-
- //Опредеоение авторизованного пациента
- @Query("SELECT * FROM Doctor WHERE login = :login")
- fun getAuthItemDoctorOutput(login:String): Flow>
-
- //Список определенного дня
-// @Query("SELECT * FROM Doctor WHERE day = :day")
-// fun getAllItemDaySport(day:String): Flow>
-
-
- //Обновление что выполнил упражнение
- @Query("UPDATE Doctor SET name = :name, surname = :surname, patronymic= :patronymic,login=:login,password=:password WHERE login =:loginOld")
- fun updateDoctor(loginOld:String, name:String,surname:String,patronymic:String,login:String,password: String)
-
-
- //Обновление что выполнил упражнение
-// @Query("UPDATE Doctor SET `check` = 1 WHERE id = :id")
-// fun updateDoctor(id:Int)
-
- //Очистка таблицы
-// @Query("DELETE FROM Doctor")
-// fun deleteItemDaySport()
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Room/dbUser/dbDoctor/ItemDoctor.kt b/app/src/main/java/com/example/rehabilitation/Room/dbUser/dbDoctor/ItemDoctor.kt
deleted file mode 100644
index 0a4005b..0000000
--- a/app/src/main/java/com/example/rehabilitation/Room/dbUser/dbDoctor/ItemDoctor.kt
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.example.rehabilitation.Room.dbUser.dbDoctor
-
-import androidx.room.ColumnInfo
-import androidx.room.Entity
-import androidx.room.PrimaryKey
-
-@Entity(tableName = "Doctor")
-data class ItemDoctor(
- @PrimaryKey(autoGenerate = true)
- var id:Int? = null,
- @ColumnInfo(name = "name")//Имя
- var name:String,
- @ColumnInfo(name = "surname")//Фамилия
- var surname:String,
- @ColumnInfo(name = "patronymic")//Отчество
- var patronymic:String,
-// @ColumnInfo(name = "email")//Логин
-// var email:String,
- @ColumnInfo(name = "login")//Логин
- var login:String,
- @ColumnInfo(name = "password")//Пароль
- var password:String,
-)
diff --git a/app/src/main/java/com/example/rehabilitation/Room/dbUser/dbPatient/DaoPatient.kt b/app/src/main/java/com/example/rehabilitation/Room/dbUser/dbPatient/DaoPatient.kt
deleted file mode 100644
index f434217..0000000
--- a/app/src/main/java/com/example/rehabilitation/Room/dbUser/dbPatient/DaoPatient.kt
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.example.rehabilitation.Room.dbUser.dbPatient
-
-import androidx.room.Dao
-import androidx.room.Insert
-import androidx.room.Query
-import kotlinx.coroutines.flow.Flow
-
-
-@Dao
-interface DaoPatient {
- //Таблица определенного дня
- @Insert
- fun insertItemPatient(itemPatient:ItemPatient)
-
- //Список пациентов
- @Query("SELECT * FROM Patient ORDER BY id ASC")
- fun getAllItemPatient(): Flow>
-
- //Опредеоение авторизованного пациента
- @Query("SELECT * FROM Patient WHERE login = :login AND password = :password")
- fun getAuthItemPatient(login:String, password:String): Flow>
-
- //Опредеоение авторизованного пациента
- @Query("SELECT count(*)as id,name,surname,patronymic,diagnosis,number_of_courses,login,password FROM Patient WHERE login = :login AND password = :password")
- fun getAuthItemPatient2(login:String, password:String): Flow>
- //Опредеоение авторизованного пациента
- @Query("SELECT * FROM Patient WHERE login = :login")
- fun getAuthItemPatientOutput(login:String): Flow>
-
- //Опредеоение авторизованного пациента
- @Query("DELETE FROM Patient WHERE login = :login")
- fun deletePatient(login:String)
-// @Update
-// fun updateCheckDaySport(itemPatient: ItemPatient)
-
- //Обновление что выполнил упражнение
- @Query("UPDATE Patient SET name = :name, surname = :surname, patronymic= :patronymic,diagnosis=:diagnosis,login=:login,password=:password WHERE login =:loginOld")
- fun updatePatient(loginOld:String, name:String,surname:String,patronymic:String,diagnosis:String,login:String,password: String)
-
- @Query("SELECT (SELECT COUNT(*) FROM Patient) == 0")
- fun isPatientNull(): Boolean
-
- //Очистка таблицы
-// @Query("DELETE FROM Patient")
-// fun deleteItemPatient()
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Room/dbUser/dbPatient/ItemPatient.kt b/app/src/main/java/com/example/rehabilitation/Room/dbUser/dbPatient/ItemPatient.kt
deleted file mode 100644
index 4b096b6..0000000
--- a/app/src/main/java/com/example/rehabilitation/Room/dbUser/dbPatient/ItemPatient.kt
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.example.rehabilitation.Room.dbUser.dbPatient
-
-import androidx.room.ColumnInfo
-import androidx.room.Entity
-import androidx.room.PrimaryKey
-
-@Entity(tableName = "Patient")
-data class ItemPatient(
- @PrimaryKey(autoGenerate = true)
- var id:Int? = null,
- @ColumnInfo(name = "name")//Имя
- var name:String,
- @ColumnInfo(name = "surname")//Фамилия
- var surname:String,
- @ColumnInfo(name = "patronymic")//Отчество
- var patronymic:String,
- @ColumnInfo(name = "diagnosis")//Диагноз
- var diagnosis:String,
- @ColumnInfo(name = "number_of_courses")//Дата рождения
- var number_of_courses:Int,
-// @ColumnInfo(name = "email")//Логин
-// var email:String,
- @ColumnInfo(name = "login")//Логин
- var login:String,
- @ColumnInfo(name = "password")//Пароль
- var password:String,
-
-)
diff --git a/app/src/main/java/com/example/rehabilitation/Setting/SettingFragment.kt b/app/src/main/java/com/example/rehabilitation/Setting/SettingFragment.kt
new file mode 100644
index 0000000..e572735
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Setting/SettingFragment.kt
@@ -0,0 +1,137 @@
+package com.example.rehabilitation.Setting
+
+import android.content.Intent
+import android.os.Bundle
+import android.util.Log
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.Toast
+import androidx.appcompat.app.AlertDialog
+import com.example.admin.Toast.showCustomInfoToast
+import com.example.rehabilitation.Auth.AuthFragment
+import com.example.rehabilitation.Auth.AuthorizationActivity
+import com.example.rehabilitation.Feedback.FeedbackFragment
+import com.example.rehabilitation.MainFragment
+import com.example.rehabilitation.Pref.ClearPref
+import com.example.rehabilitation.Pref.ConclusionPref
+import com.example.rehabilitation.R
+import com.example.rehabilitation.Retrofit.PatientApi
+import com.example.rehabilitation.databinding.FragmentSettingBinding
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import okhttp3.OkHttpClient
+import okhttp3.logging.HttpLoggingInterceptor
+import retrofit2.Retrofit
+import retrofit2.converter.gson.GsonConverterFactory
+
+
+class SettingFragment : Fragment() {
+ private lateinit var binding: FragmentSettingBinding
+ private var Token = ""
+ val prefPatientClear = ClearPref()
+ val prefPatientConclusion = ConclusionPref()
+ private lateinit var patientApi: PatientApi
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentSettingBinding.inflate(layoutInflater, container, false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ if (isAdded()) {
+ binding.btnExitSetting.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.CLMain, MainFragment.newInstance())
+ //?.addToBackStack(null)
+ ?.commit()
+ }
+
+ binding.cvFeedback.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.CLMain, FeedbackFragment.newInstance())
+ //?.addToBackStack(null)
+ ?.commit()
+ }
+
+ //Выход из аккаунта
+ binding.cvExitPatient.setOnClickListener {
+ createAlеrtDialogExitAuth()
+ }
+ }
+ }
+
+ //Диалоговое окно
+ private fun createAlеrtDialogExitAuth() {
+ val builder = AlertDialog.Builder(requireContext())
+ builder.setTitle("Выход")
+ builder.setMessage("Вы уверены что хотите выйти из аккаунта")
+ builder.setNegativeButton("Назад") { dialogInterface, i ->
+
+ }
+ builder.setPositiveButton("Подтвердить") { dialogInterface, i ->
+
+ Logout()
+
+ }
+ builder.show()
+ }
+
+
+ //Инициализация подлючения к серверу
+ private fun initRetrofit() {
+ val interceptor = HttpLoggingInterceptor()
+ interceptor.level = HttpLoggingInterceptor.Level.BODY
+
+ val client = OkHttpClient
+ .Builder()
+ .addInterceptor(interceptor)
+ .build()
+
+ val retrofit = Retrofit.Builder()
+ .baseUrl("http://mobileapp.vmeda.org/api/")
+ .client(client)
+ .addConverterFactory(GsonConverterFactory.create())
+ .build()
+
+ patientApi = retrofit.create(PatientApi::class.java)
+
+ }
+
+ //Получения списка пациентов
+ fun Logout() {
+ initRetrofit()
+ val Tokens = prefPatientConclusion.conclusionToken(requireContext())
+ CoroutineScope(Dispatchers.IO).launch {
+ val listProduct = patientApi.LogoutPatient("Bearer $Tokens")
+
+ activity?.runOnUiThread {
+
+ //Фиксируем полученные данные
+ val visibleviewList = listProduct.body()
+ val visibleviewListCode = listProduct.isSuccessful()
+ //Если нету ошибок
+ if (visibleviewListCode) {
+ Toast(requireContext()).showCustomInfoToast(visibleviewList?.message.toString(), requireActivity())
+ prefPatientClear.clearToken(requireContext())
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.CLMain, AuthFragment.newInstance())
+ ?.commit()
+
+
+ }
+ }
+ }
+ }
+
+ companion object {
+ fun newInstance() = SettingFragment()
+ }
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/SettingActivity.kt b/app/src/main/java/com/example/rehabilitation/SettingActivity.kt
deleted file mode 100644
index edaf587..0000000
--- a/app/src/main/java/com/example/rehabilitation/SettingActivity.kt
+++ /dev/null
@@ -1,104 +0,0 @@
-package com.example.rehabilitation
-
-import android.content.Context
-import android.content.Intent
-import androidx.appcompat.app.AppCompatActivity
-import android.os.Bundle
-import androidx.appcompat.app.AlertDialog
-import com.example.rehabilitation.Admin.activityAdmin.FeedbackActivity
-import com.example.rehabilitation.Admin.activityAdmin.UserSettingActivity
-import com.example.rehabilitation.databinding.ActivitySettingBinding
-import com.example.rehabilitation.Auth.AuthorizationActivity
-
-class SettingActivity : AppCompatActivity() {
- var backPressedTime: Long = 0
- private lateinit var binding: ActivitySettingBinding
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- binding = ActivitySettingBinding.inflate(layoutInflater)
- setContentView(binding.root)
-
- data_prefUserPatientToken()
-
-// //Выводим фрагмент как экран
-// supportFragmentManager.beginTransaction()
-// .replace(R.id.CLMainSetting, MainSettingFragment.newInstance())
-// .commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
-
-
- binding.btnExitSetting.setOnClickListener {
- val intetn = Intent(this, MainActivity::class.java)
- startActivity(intetn)
- finish()
- }
-
- binding.cvSettingUser.setOnClickListener{
- val intent = Intent(this, UserSettingActivity::class.java)
- startActivity(intent)
- }
-
- binding.cvFeedback.setOnClickListener{
- val intent = Intent(this, FeedbackActivity::class.java)
- startActivity(intent)
-
- }
-
-
-
- //Выход из аккаунта
- binding.cvExitPatient.setOnClickListener{
- createAlеrtDialogExitAuth()
- }
-
- }
-
- override fun onDestroy() {
- super.onDestroy()
- finish()
- }
-
- //Диалоговое окно
- private fun createAlеrtDialogExitAuth() {
- val builder = AlertDialog.Builder(this)
- builder.setTitle("Выход")
- builder.setMessage("Вы уверены что хотите выйти из аккаунта")
- builder.setNegativeButton("Назад") { dialogInterface, i ->
-
- }
- builder.setPositiveButton("Подтвердить") { dialogInterface, i ->
- clearUserPatientToken()
- val intetn = Intent(this, AuthorizationActivity::class.java)
- startActivity(intetn)
- finish()
- }
- builder.show()
- }
-
- //Инициализация хранилища(для токена) и проверяем есть ли аккаунт и или перекидываем в авторизацую или остаемся на данном экране
- fun data_prefUserPatientToken() {
- prefUserPatientToken = getSharedPreferences("UserPatientToken", Context.MODE_PRIVATE)
- UserPatientToken = prefUserPatientToken?.getString("userpatienttoken", "")!! //Передаем при запуске страницы в counter данные по ключевому слову "counter", вс лучае если будет пусто то передастся 0
- }
- //Записываем число
- fun saveUserPatientToken(userpatienttoken: String) {
- val editer = prefUserPatientToken?.edit()
- editer?.putString("userpatienttoken", userpatienttoken)
- editer?.apply()
- UserPatientToken = userpatienttoken
- }
- //Функция очистки данных
- fun clearUserPatientToken() {
- val edit = prefUserPatientToken?.edit()
- edit?.clear()
- edit?.apply()
- UserPatientToken = ""
- }
-
-
- override fun onBackPressed() {
- val intetn = Intent(this, MainActivity::class.java)
- startActivity(intetn)
- finish()
- }
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/model_adapter/Day/DayAdapter.kt b/app/src/main/java/com/example/rehabilitation/Sport/DayAdapter.kt
similarity index 69%
rename from app/src/main/java/com/example/rehabilitation/model_adapter/Day/DayAdapter.kt
rename to app/src/main/java/com/example/rehabilitation/Sport/DayAdapter.kt
index 54a23a0..0c855bc 100644
--- a/app/src/main/java/com/example/rehabilitation/model_adapter/Day/DayAdapter.kt
+++ b/app/src/main/java/com/example/rehabilitation/Sport/DayAdapter.kt
@@ -1,8 +1,8 @@
-package com.example.rehabilitation.model_adapter.Day
+package com.example.rehabilitation.Sport
import android.annotation.SuppressLint
import android.graphics.Color
-import android.os.Handler
+import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
@@ -13,7 +13,7 @@ import com.example.rehabilitation.R
import com.example.rehabilitation.databinding.RcItemDayBinding
-class DayAdapter(val listener_zakaz: Listener) : ListAdapter(
+class DayAdapter(val listener_zakaz: Listener) : ListAdapter(
Comparator()
) {//Productitem - по этой форме будем заполнять.//ProductAdapter.holder - это создаваемый holder который хранит логику как нужно заполнять карточку
@@ -24,38 +24,39 @@ class DayAdapter(val listener_zakaz: Listener) : ListAdapter listener_zakaz.onClickDay(it1) }
+ //itemView.setEnabled(false)
+ //timerButtonDoubleButton(itemView)
+ itemTemp?.let { it1 -> listener_zakaz.onClickSport(it1) }
}
}
- //Функция bind для заполнения
-
- //ЗАдержка нажатия на кнопку
- private fun timerButtonDoubleButton(btn: View){
- val updateHandler = Handler()
-
- val runnable = Runnable {
- btn.setEnabled(true)
- }
-
- updateHandler.postDelayed(runnable, 5000)
- }
+// //Функция bind для заполнения
+//
+// //ЗАдержка нажатия на кнопку
+// private fun timerButtonDoubleButton(btn: View){
+// val updateHandler = Handler()
+//
+// val runnable = Runnable {
+// btn.setEnabled(true)
+// }
+//
+// updateHandler.postDelayed(runnable, 5000)
+// }
@SuppressLint("SuspiciousIndentation")
- fun bind(item: DayListModel) = with(binding) {//Productitem - перпедаем данные
+ fun bind(item: SportForDayModel) = with(binding) {//Productitem - перпедаем данные
itemTemp = item
//txtName.text = item.name
//txtCount.text = item.count
//txtImage.text = item.image
- txtName.text = item.number
- txtDay.text = item.day
+ txtName.text = item.number.toString()
+ //txtDay.text = item.day
+ Log.i("asdasdasd",item.category[0].toString())
val category = item.category[0].toString()
if (category == "c"){
binding.imageSport.setImageResource(R.drawable.c_sport)
@@ -67,13 +68,13 @@ class DayAdapter(val listener_zakaz: Listener) : ListAdapter() {
- override fun areItemsTheSame(oldItem: DayListModel, newItem: DayListModel): Boolean {//Тут лучше всего сравнивать по id//oldItem - элементы старого списка, newItem - элементы нового списка//Возврощает Boolean, тоесть есть изменения или нет
+ class Comparator : DiffUtil.ItemCallback() {
+ override fun areItemsTheSame(oldItem: SportForDayModel, newItem: SportForDayModel): Boolean {//Тут лучше всего сравнивать по id//oldItem - элементы старого списка, newItem - элементы нового списка//Возврощает Boolean, тоесть есть изменения или нет
return oldItem.id == newItem.id//Сравниваем полностью весь список новы и старый, по очередно по одной карточке и по элементно, то есть нулевой элемент, первый, второй и т.д.. Но лучше сравнивать по id списки, а не просто весь список, так как это эфективнее, так как id уникальный(oldItem.id == newItem.id)
}
- override fun areContentsTheSame(oldItem: DayListModel, newItem: DayListModel): Boolean {//Утут нужно сравнивать весь спсок старых элементов и новых
+ override fun areContentsTheSame(oldItem: SportForDayModel, newItem: SportForDayModel): Boolean {//Утут нужно сравнивать весь спсок старых элементов и новых
return oldItem == newItem//Сравниваем полностью весь список новы и старый
}
}
//Интерфейс нажатия на кнопку удалить товар из корзины
interface Listener {
- fun onClickDay(item: DayListModel)
+ fun onClickSport(item: SportForDayModel)
}
diff --git a/app/src/main/java/com/example/rehabilitation/model_adapter/Day/DayListModel.kt b/app/src/main/java/com/example/rehabilitation/Sport/DayListModel.kt
similarity index 67%
rename from app/src/main/java/com/example/rehabilitation/model_adapter/Day/DayListModel.kt
rename to app/src/main/java/com/example/rehabilitation/Sport/DayListModel.kt
index 2434d9f..ac017ff 100644
--- a/app/src/main/java/com/example/rehabilitation/model_adapter/Day/DayListModel.kt
+++ b/app/src/main/java/com/example/rehabilitation/Sport/DayListModel.kt
@@ -1,7 +1,7 @@
-package com.example.rehabilitation.model_adapter.Day
+package com.example.rehabilitation.Sport
data class DayListModel(
- val id: String,
+ val id: Int,
val number: String,
val day: String,
val category: String,
diff --git a/app/src/main/java/com/example/rehabilitation/model_adapter/Day/DayListOneModel.kt b/app/src/main/java/com/example/rehabilitation/Sport/DayListOneModel.kt
similarity index 50%
rename from app/src/main/java/com/example/rehabilitation/model_adapter/Day/DayListOneModel.kt
rename to app/src/main/java/com/example/rehabilitation/Sport/DayListOneModel.kt
index b97efb6..de92fbd 100644
--- a/app/src/main/java/com/example/rehabilitation/model_adapter/Day/DayListOneModel.kt
+++ b/app/src/main/java/com/example/rehabilitation/Sport/DayListOneModel.kt
@@ -1,4 +1,4 @@
-package com.example.rehabilitation.model_adapter.Day
+package com.example.rehabilitation.Sport
data class DayListOneModel(
val day: String,
diff --git a/app/src/main/java/com/example/rehabilitation/model_adapter/Day/DayModel.kt b/app/src/main/java/com/example/rehabilitation/Sport/DayModel.kt
similarity index 81%
rename from app/src/main/java/com/example/rehabilitation/model_adapter/Day/DayModel.kt
rename to app/src/main/java/com/example/rehabilitation/Sport/DayModel.kt
index 32924d4..0e00c4a 100644
--- a/app/src/main/java/com/example/rehabilitation/model_adapter/Day/DayModel.kt
+++ b/app/src/main/java/com/example/rehabilitation/Sport/DayModel.kt
@@ -1,4 +1,4 @@
-package com.example.rehabilitation.model_adapter.Day
+package com.example.rehabilitation.Sport
data class DayModel(
val id: String,
diff --git a/app/src/main/java/com/example/rehabilitation/Sport/Image/Category/CountCategoryModel.kt b/app/src/main/java/com/example/rehabilitation/Sport/Image/Category/CountCategoryModel.kt
new file mode 100644
index 0000000..c9bd0de
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Sport/Image/Category/CountCategoryModel.kt
@@ -0,0 +1,6 @@
+package com.example.rehabilitation.Sport.Image.Category
+
+data class CountCategoryModel(
+ val count: String,
+)
+
diff --git a/app/src/main/java/com/example/rehabilitation/model_adapter/Image/Category/CountNameCategoryArticleModel.kt b/app/src/main/java/com/example/rehabilitation/Sport/Image/Category/CountNameCategoryArticleModel.kt
similarity index 64%
rename from app/src/main/java/com/example/rehabilitation/model_adapter/Image/Category/CountNameCategoryArticleModel.kt
rename to app/src/main/java/com/example/rehabilitation/Sport/Image/Category/CountNameCategoryArticleModel.kt
index c12b242..32f810f 100644
--- a/app/src/main/java/com/example/rehabilitation/model_adapter/Image/Category/CountNameCategoryArticleModel.kt
+++ b/app/src/main/java/com/example/rehabilitation/Sport/Image/Category/CountNameCategoryArticleModel.kt
@@ -1,4 +1,4 @@
-package com.example.rehabilitation.model_adapter.Image.Category
+package com.example.rehabilitation.Sport.Image.Category
data class CountNameCategoryArticleModel(
val count: String,
diff --git a/app/src/main/java/com/example/rehabilitation/model_adapter/Image/Category/CountNameCategoryModel.kt b/app/src/main/java/com/example/rehabilitation/Sport/Image/Category/CountNameCategoryModel.kt
similarity index 56%
rename from app/src/main/java/com/example/rehabilitation/model_adapter/Image/Category/CountNameCategoryModel.kt
rename to app/src/main/java/com/example/rehabilitation/Sport/Image/Category/CountNameCategoryModel.kt
index 887ece6..64eb4de 100644
--- a/app/src/main/java/com/example/rehabilitation/model_adapter/Image/Category/CountNameCategoryModel.kt
+++ b/app/src/main/java/com/example/rehabilitation/Sport/Image/Category/CountNameCategoryModel.kt
@@ -1,4 +1,4 @@
-package com.example.rehabilitation.model_adapter.Image.Category
+package com.example.rehabilitation.Sport.Image.Category
data class CountNameCategoryModel(
val count: String,
diff --git a/app/src/main/java/com/example/rehabilitation/model_adapter/Image/Doctor/DoctorModel.kt b/app/src/main/java/com/example/rehabilitation/Sport/Image/Doctor/DoctorModel.kt
similarity index 77%
rename from app/src/main/java/com/example/rehabilitation/model_adapter/Image/Doctor/DoctorModel.kt
rename to app/src/main/java/com/example/rehabilitation/Sport/Image/Doctor/DoctorModel.kt
index a6675ff..3a84aaa 100644
--- a/app/src/main/java/com/example/rehabilitation/model_adapter/Image/Doctor/DoctorModel.kt
+++ b/app/src/main/java/com/example/rehabilitation/Sport/Image/Doctor/DoctorModel.kt
@@ -1,4 +1,4 @@
-package com.example.rehabilitation.model_adapter.Doctor
+package com.example.rehabilitation.Sport.Image.Doctor
data class DoctorModel(
val id: String,
diff --git a/app/src/main/java/com/example/rehabilitation/model_adapter/Image/ImageSportAdapter.kt b/app/src/main/java/com/example/rehabilitation/Sport/Image/ImageSportAdapter.kt
similarity index 95%
rename from app/src/main/java/com/example/rehabilitation/model_adapter/Image/ImageSportAdapter.kt
rename to app/src/main/java/com/example/rehabilitation/Sport/Image/ImageSportAdapter.kt
index cdd72ab..b2edc58 100644
--- a/app/src/main/java/com/example/rehabilitation/model_adapter/Image/ImageSportAdapter.kt
+++ b/app/src/main/java/com/example/rehabilitation/Sport/Image/ImageSportAdapter.kt
@@ -1,13 +1,16 @@
-package com.example.rehabilitation.model_adapter.Image
+package com.example.rehabilitation.Sport.Image
import android.annotation.SuppressLint
+import android.content.ClipData
import android.content.Context
+import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
+import androidx.recyclerview.widget.RecyclerView.ViewHolder
import com.example.rehabilitation.R
import com.example.rehabilitation.databinding.ImageSportCardsBinding
@@ -37,8 +40,9 @@ class ImageSportAdapter(val contextF:Context) : ListAdapter visibleNoSport()
+ 2 -> visibleFinel()
+ 3 -> visibleYesNoSport()
+ 4 -> visibleAfterQ()
+ 5 -> visibleDayList()
+ 6 -> visibleFinalDay()
+ 7 -> visibleAfterQ()
+ 8 -> visibleBeforeQ()
+ 9 -> visibleBlock()
+ 10 -> visiblePause()
+ //616->
+ }
+
+ }
+
+
+// //Функция для вывода тренировок при определенных условиях
+// fun outputSportUnder_the_conditions() {
+// if (SportCursDay == 15 && Sport15DayAll == 1 && Sport7Day == 0 && Sport15Day == 0) {
+// visible15dayall()
+// } else if (SportCursDay == 7 && Sport7Day == 1) {
+// visible7day()
+// } else if (SportCursDay == 15 && Sport15Day == 1) {
+// visible15day()
+// } else if (Block > LocalDate.now().toString() && Block != "") {
+// visibleBlock()
+// } else if (PauseDay > LocalDate.now().toString() && PauseDay != "") {
+// visiblePause()
+// } else if ((PauseDay <= LocalDate.now()
+// .toString() || PauseDay == "") && (Block <= LocalDate.now()
+// .toString() || Block == "")
+// ) {
+// ClearRCView()
+// //Если это первая тренировка
+// if (SportCursDay == 0) {
+// //Очишаем возможные созданенные старе данные
+// visibleLoad()
+// visibleYesNoSport()
+// } else if (SportCursDay in 1..15 && CursDayNull != LocalDate.now().toString()) {
+// visibleYesNoSport()
+// } else if (SportCursDay in 1..15 && CursDayNull == LocalDate.now()
+// .toString() && DayBefore == LocalDate.now()
+// .toString() && DayAfter != LocalDate.now()
+// .toString() && SportPlusCount != SportMaxCount
+// ) {
+// visibleLoad()
+// addListModelCardsDay(LocalDate.now().toString())
+// visibleDayList()
+// } else if (DayBefore == LocalDate.now().toString() && DayAfter == LocalDate.now()
+// .toString() && SportPlusCount == SportMaxCount
+// ) {
+// visibleLoad()
+// addListModelCardsDay(LocalDate.now().toString())
+// visibleDayList()
+// } else if (DayBefore == LocalDate.now().toString() && DayAfter != LocalDate.now()
+// .toString() && SportPlusCount == SportMaxCount
+// ) {
+// activity?.supportFragmentManager?.beginTransaction()
+// ?.replace(R.id.placeHolderFragment, QAfterFragment.newInstance())?.commit()
+// }
+// }
+// }
+
+
+ //Выводим экран с фразой готовы ли вы начать тренировку
+ private fun visibleYesNoSport() {
+ binding.CLListSport.visibility = View.GONE
+ binding.CLDayList.visibility = View.GONE
+ binding.CLCardSport.visibility = View.GONE
+ binding.CLLoad.visibility = View.GONE
+ binding.CLYesNoSport.visibility = View.VISIBLE
+ binding.CLPaus.visibility = View.GONE
+ binding.CLBlock.visibility = View.GONE
+ binding.CL7day.visibility = View.GONE
+ binding.CL15day.visibility = View.GONE
+ binding.CLFinal.visibility = View.GONE
+ binding.CLNoSport.visibility = View.GONE
+ binding.CLFinalDay.visibility = View.GONE
+ binding.btnYesStartSport.setOnClickListener {
+ if (SportUserTrue == 0) {
+ Toast(requireContext()).showCustomInfoToast(
+ "Попросите врача создать вам курс",
+ requireActivity()
+ )
+ } else {
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.placeHolderFragment, QBeforeFragment.newInstance())?.commit()
+ }
+ }
+ }
+
+
+ //Выводим списка тренировок
+ private fun visibleDayList() {
+
+ binding.CLListSport.visibility = View.GONE
+ binding.CLDayList.visibility = View.VISIBLE
+ binding.CLCardSport.visibility = View.GONE
+ binding.CLLoad.visibility = View.GONE
+ binding.CLYesNoSport.visibility = View.GONE
+ binding.CLPaus.visibility = View.GONE
+ binding.CLBlock.visibility = View.GONE
+ binding.CL7day.visibility = View.GONE
+ binding.CL15day.visibility = View.GONE
+ binding.CLFinal.visibility = View.GONE
+ binding.CLNoSport.visibility = View.GONE
+ binding.CLFinalDay.visibility = View.GONE
+
+
+ GetSportDay()
+ binding.rcVIewDayList.smoothScrollToPosition(0);
+ }
+
+
+ //Выводим карточку тренировок
+ private fun visibleDayCard() {
+ Log.i("1231432", "45678978665")
+ binding.CLListSport.visibility = View.GONE
+ binding.CLDayList.visibility = View.GONE
+ binding.CLCardSport.visibility = View.VISIBLE
+ binding.CLLoad.visibility = View.GONE
+ binding.CLYesNoSport.visibility = View.GONE
+ binding.CLPaus.visibility = View.GONE
+ binding.CLBlock.visibility = View.GONE
+ binding.CL7day.visibility = View.GONE
+ binding.CL15day.visibility = View.GONE
+ binding.CLFinal.visibility = View.GONE
+ binding.CLNoSport.visibility = View.GONE
+ binding.CLFinalDay.visibility = View.GONE
+ }
+
+ private fun visibleLoad() {
+ binding.CLListSport.visibility = View.GONE
+ binding.CLDayList.visibility = View.GONE
+ binding.CLCardSport.visibility = View.GONE
+ binding.CLLoad.visibility = View.VISIBLE
+ binding.CLYesNoSport.visibility = View.GONE
+ binding.CLPaus.visibility = View.GONE
+ binding.CLBlock.visibility = View.GONE
+ binding.CL7day.visibility = View.GONE
+ binding.CL15day.visibility = View.GONE
+ binding.CLFinal.visibility = View.GONE
+ binding.CLNoSport.visibility = View.GONE
+ binding.CLFinalDay.visibility = View.GONE
+ }
+
+ private fun visibleLoadNo() {
+ binding.CLLoad.visibility = View.GONE
+ }
+
+
+ //Выводим экран паузы
+ private fun visiblePause() {
+ binding.CLListSport.visibility = View.GONE
+ binding.CLDayList.visibility = View.GONE
+ binding.CLCardSport.visibility = View.GONE
+ binding.CLLoad.visibility = View.GONE
+ binding.CLYesNoSport.visibility = View.GONE
+ binding.CLPaus.visibility = View.VISIBLE
+ binding.CLBlock.visibility = View.GONE
+ binding.txtDatePause.setText("${PauseDay}")
+ binding.CL7day.visibility = View.GONE
+ binding.CL15day.visibility = View.GONE
+ binding.CLFinal.visibility = View.GONE
+ binding.CLNoSport.visibility = View.GONE
+ binding.CLFinalDay.visibility = View.GONE
+ }
+
+
+ //Выводим экран блока
+ private fun visibleBlock() {
+ binding.CLListSport.visibility = View.GONE
+ binding.CLDayList.visibility = View.GONE
+ binding.CLCardSport.visibility = View.GONE
+ binding.CLLoad.visibility = View.GONE
+ binding.CLYesNoSport.visibility = View.GONE
+ binding.CLPaus.visibility = View.GONE
+ binding.txtDateBlock.setText("${Block}")
+ binding.CLBlock.visibility = View.VISIBLE
+ binding.CL7day.visibility = View.GONE
+ binding.CL15day.visibility = View.GONE
+ binding.CLFinal.visibility = View.GONE
+ binding.CLNoSport.visibility = View.GONE
+ binding.CLFinalDay.visibility = View.GONE
+ }
+
+ //Выводим сообщенеи от отправке отчета на 7 день
+ private fun visible7day() {
+ binding.CLListSport.visibility = View.GONE
+ binding.CLDayList.visibility = View.GONE
+ binding.CLCardSport.visibility = View.GONE
+ binding.CLLoad.visibility = View.GONE
+ binding.CLYesNoSport.visibility = View.GONE
+ binding.CLPaus.visibility = View.GONE
+ binding.CLBlock.visibility = View.GONE
+ binding.CL7day.visibility = View.VISIBLE
+ binding.CL15day.visibility = View.GONE
+ binding.CLFinal.visibility = View.GONE
+ binding.CLNoSport.visibility = View.GONE
+ binding.CLFinalDay.visibility = View.GONE
+ }
+
+ //Выводим сообщенеи от отправке отчета на 15 день
+ private fun visible15day() {
+ binding.CLListSport.visibility = View.GONE
+ binding.CLDayList.visibility = View.GONE
+ binding.CLCardSport.visibility = View.GONE
+ binding.CLLoad.visibility = View.GONE
+ binding.CLYesNoSport.visibility = View.GONE
+ binding.CLPaus.visibility = View.GONE
+ binding.CLBlock.visibility = View.GONE
+ binding.CL7day.visibility = View.GONE
+ binding.CL15day.visibility = View.VISIBLE
+ binding.CLFinal.visibility = View.GONE
+ binding.CLNoSport.visibility = View.GONE
+ binding.CLFinalDay.visibility = View.GONE
+ }
+
+ //Выводим экрана окончания курса
+ private fun visibleFinel() {
+ binding.CLListSport.visibility = View.GONE
+ binding.CLDayList.visibility = View.GONE
+ binding.CLCardSport.visibility = View.GONE
+ binding.CLLoad.visibility = View.GONE
+ binding.CLYesNoSport.visibility = View.GONE
+ binding.CLPaus.visibility = View.GONE
+ binding.CLBlock.visibility = View.GONE
+ binding.CL7day.visibility = View.GONE
+ binding.CL15day.visibility = View.GONE
+ binding.CLFinal.visibility = View.VISIBLE
+ binding.CLNoSport.visibility = View.GONE
+ binding.CLFinalDay.visibility = View.GONE
+ }
+
+ //Выводим экрана о том что курса нету
+ private fun visibleNoSport() {
+ binding.CLListSport.visibility = View.GONE
+ binding.CLDayList.visibility = View.GONE
+ binding.CLCardSport.visibility = View.GONE
+ binding.CLLoad.visibility = View.GONE
+ binding.CLYesNoSport.visibility = View.GONE
+ binding.CLPaus.visibility = View.GONE
+ binding.CLBlock.visibility = View.GONE
+ binding.CL7day.visibility = View.GONE
+ binding.CL15day.visibility = View.GONE
+ binding.CLFinal.visibility = View.GONE
+ binding.CLNoSport.visibility = View.VISIBLE
+ binding.CLFinalDay.visibility = View.GONE
+ }
+
+ //Выводим финал дня тренировок
+ private fun visibleFinalDay() {
+ binding.CLListSport.visibility = View.GONE
+ binding.CLDayList.visibility = View.GONE
+ binding.CLCardSport.visibility = View.GONE
+ binding.CLLoad.visibility = View.GONE
+ binding.CLYesNoSport.visibility = View.GONE
+ binding.CLPaus.visibility = View.GONE
+ binding.CLBlock.visibility = View.GONE
+ binding.CL7day.visibility = View.GONE
+ binding.CL15day.visibility = View.GONE
+ binding.CLFinal.visibility = View.GONE
+ binding.CLNoSport.visibility = View.GONE
+ binding.CLFinalDay.visibility = View.VISIBLE
+ }
+
+ //Переход на накету ДО
+ private fun visibleBeforeQ() {
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.placeHolderFragment, QBeforeFragment.newInstance())?.commit()
+ }
+
+ //Переход на накету ПОСЛЕ
+ private fun visibleAfterQ() {
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.placeHolderFragment, QAfterFragment.newInstance())?.commit()
+ }
+
+ //Получения списка пациентов
+ fun GetSportDay() {
+ //initRcViewDay()
+
+ initRetrofit()
+ val Tokens = prefPatientConclusion.conclusionToken(requireContext())
+ CoroutineScope(Dispatchers.IO).launch {
+ val sportDay = patientApi.GetSportDay("Bearer $Tokens")
+ requireActivity().runOnUiThread {
+
+ //Фиксируем полученные данные
+ val sportDayList = sportDay.body()
+ val sportDayListCode = sportDay.isSuccessful()
+
+ //Если нету ошибок
+ if (sportDayList != null) {
+ model.liveDayList.value = sportDayList?.sport_for_day
+ Log.i("asdasdasdasd11111111", "23231x2wswqxsxsas")
+ }
+// else{
+// Log.i("asdasdasdasd22222222","23231x2wswqxsxsas")
+// Handler().postDelayed({
+// GetSportDay()
+// }, 5000)
+// }
+ }
+ }
+ }
+
+ //Подтверждение упражнения
+ fun AddCheckView(id: Int, check: Int) {
+ visibleLoad()
+ initRetrofit()
+ val Tokens = prefPatientConclusion.conclusionToken(requireContext())
+ CoroutineScope(Dispatchers.IO).launch {
+ val checkSport = patientApi.AddSportCheck("Bearer $Tokens",id,check)
+
+ activity?.runOnUiThread {
+
+ //Фиксируем полученные данные
+ val checkSportMes = checkSport.body()
+ val checkSportMesCode = checkSport.isSuccessful()
+ //Если нету ошибок
+ if (checkSportMesCode) {
+ if(check == 1){
+ addCheckYes()
+ }
+ else if(check == 2){
+ addCheckNo()
+ }
+ }
+
+ }
+ }
+
+ }
+
+ //Функция активации кнпок
+ fun addButton() {
+
+ //Закрытие карточки определенного дня
+ binding.btnExitCardSport.setOnClickListener {
+ //visibleLoad()
+ stopSound()
+ binding.btnMp3.setBackgroundResource(android.R.drawable.ic_media_play)
+ //binding.txtNameCard.setText("")
+ binding.txtDescCard.setText("")
+ visibleDayList()
+ }
+
+ binding.btnAddDayCategoryCheck.setOnClickListener {
+ AddCheckView(idCheckDay,1)
+ Log.i("btnAddDayCategoryCheck1","btnAddDayCategoryCheck1")
+ }
+
+ binding.btnNoAddDayCategoryCheck.setOnClickListener {
+ AddCheckView(idCheckDay,2)
+ Log.i("btnAddDayCategoryCheck2","btnAddDayCategoryCheck2")
+ }
+ }
+
+ private fun addCheckNo() {
+ stopSound()
+ binding.btnMp3.setBackgroundResource(android.R.drawable.ic_media_play)
+
+ visibleLoad()
+
+ binding.btnNoAddDayCategoryCheck.isEnabled = false
+ binding.btnNoAddDayCategoryCheck.isClickable = false
+ binding.btnNoAddDayCategoryCheck.setCardBackgroundColor(Color.parseColor("#A3B8A1"))
+ Toast(requireContext()).showCustomInfoToast(
+ "Упражнение было пропушено",
+ requireActivity()
+ )
+
+
+
+ if (SportPlusCount == SportMaxCount && DayBefore == LocalDate.now()
+ .toString() && DayAfter == ""
+ ) {
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.placeHolderFragment, QAfterFragment.newInstance())?.commit()
+ }
+
+ binding.txtDescCard.setText("")
+ visibleDayList()
+ }
+
+ private fun addCheckYes() {
+ stopSound()
+ binding.btnMp3.setBackgroundResource(android.R.drawable.ic_media_play)
+
+ visibleLoad()
+
+
+ binding.btnAddDayCategoryCheck.isEnabled = false
+ binding.btnAddDayCategoryCheck.isClickable = false
+ binding.btnAddDayCategoryCheck.setCardBackgroundColor(Color.parseColor("#A68C78"))
+ Toast(requireContext()).showCustomNiceToast(
+ "Упражнение выполнено",
+ requireActivity()
+ )
+
+
+
+ if (SportPlusCount == SportMaxCount && DayBefore == LocalDate.now()
+ .toString() && DayAfter == ""
+ ) {
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.placeHolderFragment, QAfterFragment.newInstance())?.commit()
+ }
+ binding.txtDescCard.setText("")
+
+ visibleDayList()
+ }
+
+// //Заполнения модели и списка
+// private fun addListModelCardsDay(day: String) {
+//
+// val db = MainDB.getDB(requireContext())
+// val list = ArrayList()
+// db.getDaoDaySport().getAllItemDaySport(day).asLiveData()
+// .observe(requireActivity()) { itList ->
+// var number = 1;
+//
+// itList.forEach {
+// Log.d("123", it.category)
+// val itemDay = DayListModel(
+// it.id.toString(),
+// number++.toString(),
+// day,
+// it.category,
+// it.check.toString(),
+// )
+// list.add(itemDay)//Передали заполненый список
+// }
+// model.liveDayList.value = list
+// Log.d("sadas", list.toString())
+// }
+// visibleDayList()
+// }
+
+ companion object {
+ fun newInstance() = SceduleFragment()
+ }
+
+ //Функция запускающая отслеживания за списком, чтобы вовремя обновлять основную карточку продукта
+ private fun liveReadOrderCurrent() = with(binding) {
+ model.liveListCurrent.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
+ visibleDayList()
+ }
+ }
+
+
+
+ //Инициализация списка
+ private fun initRcViewDay() = with(binding) {
+ rcVIewDayList.layoutManager =
+ GridLayoutManager(requireContext(), 1)//По вертикали будет выводить по умолчанию
+ adapterDay = DayAdapter(this@SceduleFragment)
+ rcVIewDayList.adapter = adapterDay
+ binding.rcVIewDayList.smoothScrollToPosition(0);
+ }
+
+ //Инициализация списка для фотографий
+ private fun initRcViewImage() = with(binding) {
+ rcViewImage.layoutManager = LinearLayoutManager(
+ requireContext(),
+ LinearLayoutManager.HORIZONTAL,
+ false
+ )//По вертикали будет выводить по умолчанию
+ adapterImage = ImageSportAdapter(requireContext())
+ rcViewImage.adapter = adapterImage
+
+ }
+
+ @SuppressLint("NotifyDataSetChanged")
+ fun ClearRCView() {
+ adapterImage.notifyDataSetChanged()
+ adapterDay.notifyDataSetChanged()
+ initRcViewImage()
+ initRcViewDay()
+
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ ClearRCView()
+ }
+
+
+ //Звуковая часть
+ // 1. Plays the water sound
+ fun playSound() {
+ if (mMediaPlayer == null) {
+ mMediaPlayer = MediaPlayer.create(requireContext(), R.raw.sec1_metronom)
+ mMediaPlayer!!.isLooping = true
+ mMediaPlayer!!.start()
+ } else mMediaPlayer!!.start()
+ }
+
+ // 2. Pause playback
+ fun pauseSound() {
+ if (mMediaPlayer?.isPlaying == true) mMediaPlayer?.pause()
+ }
+
+ // 3. Stops playback
+ fun stopSound() {
+ if (mMediaPlayer != null) {
+ mMediaPlayer!!.stop()
+ mMediaPlayer!!.release()
+ mMediaPlayer = null
+ }
+ }
+
+ // 4. Destroys the MediaPlayer instance when the app is closed
+ override fun onStop() {
+ super.onStop()
+ if (mMediaPlayer != null) {
+ mMediaPlayer!!.release()
+ mMediaPlayer = null
+ }
+ }
+
+ override fun onClickSport(item: SportForDayModel) {
+ GetSportDayOne(item.id)
+ idCheckDay=item.id
+ Log.i("GetSportDayOne", item.id.toString())
+ Log.i("111111111", "12312312312321312312")
+ }
+
+ //Получения списка пациентов
+ fun GetSportDayOne(id: Int) {
+ initRetrofit()
+ val Tokens = prefPatientConclusion.conclusionToken(requireContext())
+ CoroutineScope(Dispatchers.IO).launch {
+ val sportDayOne = patientApi.GetSportDayOne("Bearer $Tokens", id)
+ requireActivity().runOnUiThread {
+
+ //Фиксируем полученные данные
+ val sportDayOneList = sportDayOne.body()
+
+ //Если нету ошибок
+ if (sportDayOneList != null) {
+ modelPatient.liveDaySportOne.value = sportDayOneList
+ }
+ }
+
+ }
+ }
+
+ private fun liveDaySportOne() = with(binding) {
+ modelPatient.liveDaySportOne.observe(viewLifecycleOwner) {
+ visibleLoad()
+
+ //Фиксируем id
+ idDaySport = it.id.toInt()
+ Log.i("idDaySport",it.id.toString())
+
+ //Отключаем нажатие на кнопку подтверждения, если упражнени уже выполнено, для того чтобы не тыкали
+ if (it.finish.toInt() == 1 || it.finish.toInt() == 2) {
+ binding.btnAddDayCategoryCheck.isEnabled = false
+ binding.btnAddDayCategoryCheck.isClickable = false
+ binding.btnAddDayCategoryCheck.setCardBackgroundColor(Color.parseColor("#A3B8A1"))
+
+ binding.btnNoAddDayCategoryCheck.isEnabled = false
+ binding.btnNoAddDayCategoryCheck.isClickable = false
+ binding.btnNoAddDayCategoryCheck.setCardBackgroundColor(Color.parseColor("#A68C78"))
+
+ } else {
+
+ binding.btnAddDayCategoryCheck.isEnabled = true
+ binding.btnAddDayCategoryCheck.isClickable = true
+ binding.btnAddDayCategoryCheck.setCardBackgroundColor(Color.parseColor("#53D54A"))
+
+ binding.btnNoAddDayCategoryCheck.isEnabled = true
+ binding.btnNoAddDayCategoryCheck.isClickable = true
+ binding.btnNoAddDayCategoryCheck.setCardBackgroundColor(Color.parseColor("#EDAA76"))
+ }
+
+ Log.i("asdas", it.image_url.toString())
+ model.liveImageList.value = it.image_url
+
+
+ //binding.txtNameCard.setText("")
+ binding.txtDescCard.setText("")
+ binding.txtTitle.setText("")
+ binding.txtTitle.setText("Упражнение " + it.id)
+ //binding.txtNameCard.setText(it.name)
+ binding.txtDescCard.setText(binding.txtDescCard.text.toString() + it.description)
+
+
+ //Выводим экран
+ visibleDayCard()
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Sport/SportDayOneModel.kt b/app/src/main/java/com/example/rehabilitation/Sport/SportDayOneModel.kt
new file mode 100644
index 0000000..71e1b76
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Sport/SportDayOneModel.kt
@@ -0,0 +1,15 @@
+package com.example.rehabilitation.Sport
+
+import com.example.rehabilitation.Sport.Image.ImageSportModel
+
+data class SportDayOneModel(
+ val id: Int,
+ val name: String,
+ val description: String,
+ val count: Int,
+ val image_url:List,
+ val finish:Int,
+ val created_at:String,
+ val updated_at:String,
+)
+
diff --git a/app/src/main/java/com/example/rehabilitation/Sport/SportForDayListModel.kt b/app/src/main/java/com/example/rehabilitation/Sport/SportForDayListModel.kt
new file mode 100644
index 0000000..b9bd398
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Sport/SportForDayListModel.kt
@@ -0,0 +1,6 @@
+package com.example.rehabilitation.Sport
+
+data class SportForDayListModel(
+ val sport_for_day: List
+)
+
diff --git a/app/src/main/java/com/example/rehabilitation/Sport/SportForDayModel.kt b/app/src/main/java/com/example/rehabilitation/Sport/SportForDayModel.kt
new file mode 100644
index 0000000..c135c72
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Sport/SportForDayModel.kt
@@ -0,0 +1,15 @@
+package com.example.rehabilitation.Sport
+
+data class SportForDayModel(
+ val number:Int,
+ val id: Int,
+ val article: String,
+ val category: String,
+ val id_patient:Int,
+ val id_sports_tasks: Int,
+ val id_sport_patient: Int,
+ val finish: Int,
+ val created_at:String,
+ val updated_at:String,
+)
+
diff --git a/app/src/main/java/com/example/rehabilitation/Sport/SportListModel.kt b/app/src/main/java/com/example/rehabilitation/Sport/SportListModel.kt
new file mode 100644
index 0000000..1e34699
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Sport/SportListModel.kt
@@ -0,0 +1,5 @@
+package com.example.rehabilitation.Sport
+
+data class SportListModel(
+ val day: List
+)
diff --git a/app/src/main/java/com/example/rehabilitation/Sport/UpdateSportTrueFalseModel.kt b/app/src/main/java/com/example/rehabilitation/Sport/UpdateSportTrueFalseModel.kt
new file mode 100644
index 0000000..7860647
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Sport/UpdateSportTrueFalseModel.kt
@@ -0,0 +1,5 @@
+package com.example.rehabilitation.Sport
+
+data class UpdateSportTrueFalseModel(
+ val massage: String
+)
diff --git a/app/src/main/java/com/example/rehabilitation/Sport/ViewFragmentModel.kt b/app/src/main/java/com/example/rehabilitation/Sport/ViewFragmentModel.kt
new file mode 100644
index 0000000..e3016bd
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Sport/ViewFragmentModel.kt
@@ -0,0 +1,5 @@
+package com.example.rehabilitation.Sport
+
+data class ViewFragmentModel (
+ val view:Int
+)
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Sport/ViewVisibleModel.kt b/app/src/main/java/com/example/rehabilitation/Sport/ViewVisibleModel.kt
new file mode 100644
index 0000000..f9eece2
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Sport/ViewVisibleModel.kt
@@ -0,0 +1,7 @@
+package com.example.rehabilitation.Sport
+
+data class ViewVisibleModel(
+ val view: Int,
+ val text: String,
+)
+
diff --git a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/CalendarFragment.kt b/app/src/main/java/com/example/rehabilitation/User/fragmentUser/CalendarFragment.kt
deleted file mode 100644
index 9b64def..0000000
--- a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/CalendarFragment.kt
+++ /dev/null
@@ -1,216 +0,0 @@
-package com.example.rehabilitation.User.fragmentUser
-
-//import ru.cleverpumpkin.calendar.CalendarDate
-import android.os.Bundle
-import android.util.Log
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import android.widget.CalendarView
-import android.widget.Toast
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.activityViewModels
-import androidx.lifecycle.asLiveData
-import androidx.recyclerview.widget.GridLayoutManager
-import androidx.recyclerview.widget.RecyclerView
-import com.example.rehabilitation.R
-import com.example.rehabilitation.Room.MainDB
-import com.example.rehabilitation.databinding.FragmentCalendarBinding
-import com.example.rehabilitation.dateHomeCalendare
-import com.example.rehabilitation.model_adapter.DataModel
-import com.example.rehabilitation.model_adapter.Day.DayAdapter
-import com.example.rehabilitation.model_adapter.Day.DayListModel
-import com.example.sqlitework.dip.MainViewModel
-import java.time.LocalDate
-import java.util.Calendar
-
-
-class CalendarFragment : Fragment(), DayAdapter.Listener {
- private lateinit var binding: FragmentCalendarBinding
- lateinit var adapterDay: DayAdapter
- private val model: MainViewModel by activityViewModels()//Инициализировали класс
- private val dataModel: DataModel by activityViewModels()//Для передачи данных
-
- var visibleCalendar = true
-
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
- binding = FragmentCalendarBinding.inflate(layoutInflater, container, false)
- return binding.root
- }
-
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
- initRcViewDay()
- //liveReadOrderDayCurrent()
- model.liveDayList.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
- adapterDay.submitList(it)//Напрямую переадем созданный список в adapter(ProductAdapter)
- }
- addListModelCardsDay("${LocalDate.now()}")
-
- binding.calendarView.setOnDateChangeListener { calView: CalendarView, year: Int, month: Int, dayOfMonth: Int ->
-
- // Create calender object with which will have system date time.
- val calender: Calendar = Calendar.getInstance()
-
- // Set attributes in calender object as per selected date.
- calender.set(year, month, dayOfMonth)
-
- // Now set calenderView with this calender object to highlight selected date on UI.
- calView.setDate(calender.timeInMillis, true, true)
- Log.d("SelectedDate", "${LocalDate.of(year, month + 1, dayOfMonth)}")
- if (LocalDate.of(year, month + 1, dayOfMonth).toString() > LocalDate.now().toString()) {
- Toast.makeText(requireContext(), "Ошибка", Toast.LENGTH_SHORT).show()
- } else {
- addListModelCardsDay("${LocalDate.of(year, month + 1, dayOfMonth)}")
- }
- }
-
- binding.btnVisible.setOnClickListener {
- if (visibleCalendar == true) {
- binding.CLCalendar.visibility = View.GONE
- visibleCalendar = false
- binding.btnVisible.setBackgroundResource(R.drawable.visible_eas_false)
- } else if (visibleCalendar == false){
- binding.CLCalendar.visibility = View.VISIBLE
- visibleCalendar = true
- binding.btnVisible.setBackgroundResource(R.drawable.visible_eas_true)
- }
- }
-
- // calendarV2()
- calendarV3()
-
- }
-
- private fun calendarV3() {
-//
-// binding.fabButton.setOnClickListener { openDatePicker() }
-// binding.calendarViewV3.setOnDayClickListener(requireContext())
-// val view: View = LayoutInflater.from(parent.context).inflate(R.layout.item_calendar_horizontal, parent, false)
-// return MonthCalendarViewHolder(view)
- }
-
- private fun calendarV2() {
-// val calendarView = binding.calendarViewV2
-// val calendar = Calendar.getInstance()
-//// var dates = ArrayList()
-//// dates.add(LocalDate.now().dayOfMonth)
-//// Initial date
-// calendar.set(2023, Calendar.JUNE, 1 )
-// val initialDate = CalendarDate(calendar.time)
-//
-//// Minimum available date
-// calendar.set(2023, Calendar.MAY, 1)
-// val minDate = CalendarDate(calendar.time)
-//
-//// Maximum available date
-// calendar.set(2023, Calendar.JULY, 15)
-// val maxDate = CalendarDate(calendar.time)
-//
-//// List of preselected dates that will be initially selected
-// //val preselectedDates: List = ru.cleverpumpkin.calendar.getPreselectedDates()
-//
-//// The first day of week
-// val firstDayOfWeek = java.util.Calendar.MONDAY
-//
-//// Set up calendar with all available parameters
-// calendarView.setupCalendar(
-// initialDate = initialDate,
-// minDate = minDate,
-// maxDate = maxDate,
-// selectionMode = ru.cleverpumpkin.calendar.CalendarView.SelectionMode.NONE,
-// //selectedDates = preselectedDates,
-// firstDayOfWeek = firstDayOfWeek,
-// showYearSelectionView = true
-// )
-// // Set up calendar
-// calendarView.setupCalendar()
-//// Set up calendar
-// calendarView.setupCalendar()
-//
-//
-// val additionalTexts: List = generateAdditionalTexts()
-//
-//// Set List of additional texts that will be displayed on the calendar
-// calendarView.datesAdditionalTexts = additionalTexts
-//
-//
-//// Set List of indicators that will be displayed on the calendar
-// //calendarView.datesIndicators = indicators
- }
-
- fun ClearRCView(){
- adapterDay.notifyDataSetChanged(); // let your adapter know about the changes and reload view.
- initRcViewDay()
- }
- override fun onResume() {
- super.onResume()
- //ClearRCView()
- //addListModelCardsDay("${LocalDate.now()}")
- }
-
- override fun onDestroy() {
- super.onDestroy()
- adapterDay.notifyDataSetChanged()
- ClearRCView()
-
- }
-
- //Функция запускающая отслеживания за списком, чтобы вовремя обновлять основную карточку продукта
- private fun liveReadOrderDayCurrent() = with(binding) {
- model.liveDayCurrent.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
-
- }
- }
-
- //Инициализация списка
- private fun initRcViewDay() = with(binding) {
- rcViewDayCalendar.layoutManager = GridLayoutManager(requireContext(), 1)//По вертикали будет выводить по умолчанию
- adapterDay = DayAdapter(this@CalendarFragment)
- rcViewDayCalendar.adapter = adapterDay
-
-
-
- }
-
- private fun addListModelCardsDay(day: String) {
-
- val db = MainDB.getDB(requireContext())
- val list = ArrayList()
- db.getDaoDaySport().getAllItemDaySport(day).asLiveData()
- .observe(requireActivity()) { itList ->
- var number = 1;
-
- itList.forEach {
- Log.d("123", it.category)
- //db.getDaoSportCategory().getAllItemsSportCategory(it.category).asLiveData().observe(requireActivity()){itSport->
- val itemDay = DayListModel(
- it.id.toString(),
- number++.toString(),
- day,
- it.category.toString(),
- it.check.toString(),
- )
- list.add(itemDay)//Передали заполненый список
- model.liveDayList.value = list
- //}
- }
-
- Log.d("sadas", list.toString())
- }
- }
-
- companion object {
-
- fun newInstance() = CalendarFragment()
- }
-
-
- override fun onClickDay(item: DayListModel) {
- dataModel.fragmentMenu.value = R.id.schedule
- dateHomeCalendare = item.day
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/Calendare/shared/Flight.kt b/app/src/main/java/com/example/rehabilitation/User/fragmentUser/Calendare/shared/Flight.kt
deleted file mode 100644
index 41510c3..0000000
--- a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/Calendare/shared/Flight.kt
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.example.calendarev2
-
-import android.annotation.SuppressLint
-import androidx.annotation.ColorRes
-import com.example.calendarev2.R
-import java.time.LocalDateTime
-import java.time.YearMonth
-import java.time.format.DateTimeFormatter
-
-
-
-data class Flight(
- val time: LocalDateTime,
- val item: String,
- @ColorRes val color: Int,
-) {
- data class Airport(val city: String, val code: String)
-}
-
-@SuppressLint("NewApi")
-fun generateFlights(): List = buildList {
- val currentMonth = YearMonth.now()
-
- currentMonth.atDay(17).also { date ->
- add(
- Flight(
- date.atTime(14, 0),
- "Lagos",
- R.color.blue_800,
- ),
- )
- add(
- Flight(
- date.atTime(21, 30),
- "Enugu",
- R.color.red_800,
- ),
- )
- }
-
- currentMonth.atDay(22).also { date ->
- add(
- Flight(
- date.atTime(13, 20),
- "Ibadan",
- R.color.brown_700,
- ),
- )
- add(
- Flight(
- date.atTime(17, 40),
- "Sokoto",
- R.color.blue_grey_700,
- ),
- )
- }
-
- currentMonth.atDay(3).also { date ->
- add(
- Flight(
- date.atTime(20, 0),
- "Makurdi",
- R.color.teal_700,
- ),
- )
- }
-
- currentMonth.atDay(12).also { date ->
- add(
- Flight(
- date.atTime(18, 15),
- "Kaduna",
- R.color.cyan_700,
- ),
- )
- }
-
- currentMonth.plusMonths(1).atDay(13).also { date ->
- add(
- Flight(
- date.atTime(7, 30),
- "Kano",
- R.color.pink_700,
- ),
- )
- add(
- Flight(
- date.atTime(10, 50),
- "Minna",
- R.color.green_700,
- ),
- )
- }
-
- currentMonth.minusMonths(1).atDay(9).also { date ->
- add(
- Flight(
- date.atTime(20, 15),
- "Asaba",
- R.color.orange_800,
- ),
- )
- }
-}
-
-@SuppressLint("NewApi")
-val flightDateTimeFormatter: DateTimeFormatter =
- DateTimeFormatter.ofPattern("EEE'\n'dd MMM'\n'HH:mm")
diff --git a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/HomeFragment.kt b/app/src/main/java/com/example/rehabilitation/User/fragmentUser/HomeFragment.kt
deleted file mode 100644
index 58d11a1..0000000
--- a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/HomeFragment.kt
+++ /dev/null
@@ -1,146 +0,0 @@
-package com.example.rehabilitation.User.fragmentUser
-
-import android.os.Bundle
-import android.util.Log
-import androidx.fragment.app.Fragment
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import androidx.activity.viewModels
-import androidx.fragment.app.activityViewModels
-import androidx.lifecycle.asLiveData
-import androidx.recyclerview.widget.GridLayoutManager
-import com.example.rehabilitation.model_adapter.Edit.adapterFirebase.ReportPatient
-import com.example.rehabilitation.R
-import com.example.rehabilitation.Room.MainDB
-import com.example.rehabilitation.checkDaySportString
-import com.example.rehabilitation.countCategory
-import com.example.rehabilitation.databinding.FragmentHomeBinding
-import com.example.rehabilitation.dateHomeCalendare
-import com.example.rehabilitation.loginDoctor
-import com.example.rehabilitation.loginPatient
-import com.example.rehabilitation.model_adapter.DataModel
-import com.example.rehabilitation.model_adapter.Day.DayAdapter
-import com.example.rehabilitation.model_adapter.Day.DayListModel
-import com.example.rehabilitation.model_adapter.modelCount.CountDayModel
-import com.example.rehabilitation.model_adapter.modelCount.CountMonthModel
-import com.example.sqlitework.dip.MainViewModel
-import java.time.LocalDate
-
-class HomeFragment : Fragment(),DayAdapter.Listener {
- private lateinit var binding: FragmentHomeBinding
- private val model: MainViewModel by activityViewModels()//Инициализировали класс
- lateinit var adapterDay: DayAdapter
- //private val dataModel: DataModel by activityViewModels()//Для передачи данных
- private val dataModel: DataModel by activityViewModels()//Для передачи данных
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
- binding = FragmentHomeBinding.inflate(layoutInflater,container,false)
- return binding.root
- }
-
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
- initRcViewDay()
-
- model.liveDayList.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
- adapterDay.submitList(it)//Напрямую переадем созданный список в adapter(ProductAdapter)
- }
-
- progresMonthAndDay()
- liveCountDayCurrent()
- addListModelCardsDay(LocalDate.now().toString())
-
-
-
-// dataModel.fragmentMenu.observe(this as LifecycleOwner, {
-// binding.buttonNavigation.selectedItemId = it
-// })
-
- }
- //Заполнения модели и списка
- private fun addListModelCardsDay(day:String){
-
- val db = MainDB.getDB(requireContext())
- val list = ArrayList()
- db.getDaoDaySport().getAllItemDaySport(day).asLiveData().observe(requireActivity()){itList->
- var number = 1;
-
- itList.forEach{
- Log.d("123",it.category)
- //db.getDaoSportCategory().getAllItemsSportCategory(it.category).asLiveData().observe(requireActivity()){itSport->
- val itemDay = DayListModel(
- it.id.toString(),
- number++.toString(),
- day,
- it.category.toString(),
- it.check.toString(),
- )
- list.add(itemDay)//Передали заполненый список
- model.liveDayList.value = list
- //}
- }
-
- Log.d("sadas",list.toString())
- }
- }
- private fun progresMonthAndDay() {
- val db = MainDB.getDB(requireContext())
- val data= LocalDate.now().toString()
-
- var listDayDown =0
- var listDayAll =0
- var name = ""
- //Прогрес за в течение данного дня
- db.getDaoDaySport().getAllItemDaySport(LocalDate.now().toString()).asLiveData().observe(requireActivity()){itList->
- var number = 1;
-
- itList.forEach{
-
- if(it.check ==1){
- listDayDown=listDayDown+1
- listDayAll=listDayAll+1
- }
- else{
- listDayAll=listDayAll+1
- }
- }
- val item = CountDayModel(
- listDayDown,
- listDayAll
- )
- model.liveCountDayCurrent.value = item
-
- }
- }
-
- //Вывод прогресса на один день
- private fun liveCountDayCurrent() = with(binding) {
- model.liveCountDayCurrent.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
- binding.txtSportToday.setText(it.countDown.toString())
- binding.txtSportTodayAll.setText(it.countAll.toString())
- }
-
- }
-
-
- //Инициализация списка
- private fun initRcViewDay() = with(binding) {
- rcVIewDayList.layoutManager = GridLayoutManager(requireContext(),1)//По вертикали будет выводить по умолчанию
- adapterDay = DayAdapter(this@HomeFragment)
- rcVIewDayList.adapter = adapterDay
- }
- companion object {
-
- fun newInstance() = HomeFragment()
- }
-
- override fun onClickDay(item: DayListModel) {
- //Передаем фрагмент на вывод(это фрагмент страницы с продукцией)
- //parentFragmentManager.beginTransaction() .replace(R.id.placeHolderFragment, SceduleFragment()).commit()
- dataModel.fragmentMenu.value = R.id.schedule
- dateHomeCalendare = item.day
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/BreathingExercisesFragment.kt b/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/BreathingExercisesFragment.kt
deleted file mode 100644
index 134d4c3..0000000
--- a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/BreathingExercisesFragment.kt
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.example.rehabilitation.User.fragmentUser.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
-
-import android.os.Bundle
-import androidx.fragment.app.Fragment
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import com.example.rehabilitation.R
-
-// TODO: Rename parameter arguments, choose names that match
-// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
-private const val ARG_PARAM1 = "param1"
-private const val ARG_PARAM2 = "param2"
-
-/**
- * A simple [Fragment] subclass.
- * Use the [BreathingExercisesFragment.newInstance] factory method to
- * create an instance of this fragment.
- */
-class BreathingExercisesFragment : Fragment() {
- // TODO: Rename and change types of parameters
- private var param1: String? = null
- private var param2: String? = null
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- arguments?.let {
- param1 = it.getString(ARG_PARAM1)
- param2 = it.getString(ARG_PARAM2)
- }
- }
-
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
- // Inflate the layout for this fragment
- return inflater.inflate(R.layout.fragment_breathing_exercises, container, false)
- }
-
- companion object {
- /**
- * Use this factory method to create a new instance of
- * this fragment using the provided parameters.
- *
- * @param param1 Parameter 1.
- * @param param2 Parameter 2.
- * @return A new instance of fragment BreathingExercisesFragment.
- */
- // TODO: Rename and change types and number of parameters
- @JvmStatic
- fun newInstance(param1: String, param2: String) =
- BreathingExercisesFragment().apply {
- arguments = Bundle().apply {
- putString(ARG_PARAM1, param1)
- putString(ARG_PARAM2, param2)
- }
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/ContourPreventionFragment.kt b/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/ContourPreventionFragment.kt
deleted file mode 100644
index db0741b..0000000
--- a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/ContourPreventionFragment.kt
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.example.rehabilitation.User.fragmentUser.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
-
-import android.os.Bundle
-import androidx.fragment.app.Fragment
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import com.example.rehabilitation.R
-
-// TODO: Rename parameter arguments, choose names that match
-// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
-private const val ARG_PARAM1 = "param1"
-private const val ARG_PARAM2 = "param2"
-
-/**
- * A simple [Fragment] subclass.
- * Use the [ContourPreventionFragment.newInstance] factory method to
- * create an instance of this fragment.
- */
-class ContourPreventionFragment : Fragment() {
- // TODO: Rename and change types of parameters
- private var param1: String? = null
- private var param2: String? = null
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- arguments?.let {
- param1 = it.getString(ARG_PARAM1)
- param2 = it.getString(ARG_PARAM2)
- }
- }
-
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
- // Inflate the layout for this fragment
- return inflater.inflate(R.layout.fragment_contour_prevention, container, false)
- }
-
- companion object {
- /**
- * Use this factory method to create a new instance of
- * this fragment using the provided parameters.
- *
- * @param param1 Parameter 1.
- * @param param2 Parameter 2.
- * @return A new instance of fragment ContourPreventionFragment.
- */
- // TODO: Rename and change types and number of parameters
- @JvmStatic
- fun newInstance(param1: String, param2: String) =
- ContourPreventionFragment().apply {
- arguments = Bundle().apply {
- putString(ARG_PARAM1, param1)
- putString(ARG_PARAM2, param2)
- }
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/DecongestantTherapyFragment.kt b/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/DecongestantTherapyFragment.kt
deleted file mode 100644
index 79f96b5..0000000
--- a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/DecongestantTherapyFragment.kt
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.example.rehabilitation.User.fragmentUser.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
-
-import android.os.Bundle
-import androidx.fragment.app.Fragment
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import com.example.rehabilitation.R
-
-// TODO: Rename parameter arguments, choose names that match
-// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
-private const val ARG_PARAM1 = "param1"
-private const val ARG_PARAM2 = "param2"
-
-/**
- * A simple [Fragment] subclass.
- * Use the [DecongestantTherapyFragment.newInstance] factory method to
- * create an instance of this fragment.
- */
-class DecongestantTherapyFragment : Fragment() {
- // TODO: Rename and change types of parameters
- private var param1: String? = null
- private var param2: String? = null
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- arguments?.let {
- param1 = it.getString(ARG_PARAM1)
- param2 = it.getString(ARG_PARAM2)
- }
- }
-
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
- // Inflate the layout for this fragment
- return inflater.inflate(R.layout.fragment_decongestant_therapy, container, false)
- }
-
- companion object {
- /**
- * Use this factory method to create a new instance of
- * this fragment using the provided parameters.
- *
- * @param param1 Parameter 1.
- * @param param2 Parameter 2.
- * @return A new instance of fragment DecongestantTherapyFragment.
- */
- // TODO: Rename and change types and number of parameters
- @JvmStatic
- fun newInstance(param1: String, param2: String) =
- DecongestantTherapyFragment().apply {
- arguments = Bundle().apply {
- putString(ARG_PARAM1, param1)
- putString(ARG_PARAM2, param2)
- }
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/MotorModeFragment.kt b/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/MotorModeFragment.kt
deleted file mode 100644
index e32831f..0000000
--- a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/MotorModeFragment.kt
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.example.rehabilitation.User.fragmentUser.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
-
-import android.os.Bundle
-import androidx.fragment.app.Fragment
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import com.example.rehabilitation.R
-
-// TODO: Rename parameter arguments, choose names that match
-// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
-private const val ARG_PARAM1 = "param1"
-private const val ARG_PARAM2 = "param2"
-
-/**
- * A simple [Fragment] subclass.
- * Use the [MotorModeFragment.newInstance] factory method to
- * create an instance of this fragment.
- */
-class MotorModeFragment : Fragment() {
- // TODO: Rename and change types of parameters
- private var param1: String? = null
- private var param2: String? = null
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- arguments?.let {
- param1 = it.getString(ARG_PARAM1)
- param2 = it.getString(ARG_PARAM2)
- }
- }
-
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
- // Inflate the layout for this fragment
- return inflater.inflate(R.layout.fragment_motor_mode, container, false)
- }
-
- companion object {
- /**
- * Use this factory method to create a new instance of
- * this fragment using the provided parameters.
- *
- * @param param1 Parameter 1.
- * @param param2 Parameter 2.
- * @return A new instance of fragment MotorModeFragment.
- */
- // TODO: Rename and change types and number of parameters
- @JvmStatic
- fun newInstance(param1: String, param2: String) =
- MotorModeFragment().apply {
- arguments = Bundle().apply {
- putString(ARG_PARAM1, param1)
- putString(ARG_PARAM2, param2)
- }
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/PhantomPainsFragment.kt b/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/PhantomPainsFragment.kt
deleted file mode 100644
index ae64ae0..0000000
--- a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/PhantomPainsFragment.kt
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.example.rehabilitation.User.fragmentUser.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
-
-import android.os.Bundle
-import androidx.fragment.app.Fragment
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import com.example.rehabilitation.R
-
-// TODO: Rename parameter arguments, choose names that match
-// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
-private const val ARG_PARAM1 = "param1"
-private const val ARG_PARAM2 = "param2"
-
-/**
- * A simple [Fragment] subclass.
- * Use the [PhantomPainsFragment.newInstance] factory method to
- * create an instance of this fragment.
- */
-class PhantomPainsFragment : Fragment() {
- // TODO: Rename and change types of parameters
- private var param1: String? = null
- private var param2: String? = null
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- arguments?.let {
- param1 = it.getString(ARG_PARAM1)
- param2 = it.getString(ARG_PARAM2)
- }
- }
-
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
- // Inflate the layout for this fragment
- return inflater.inflate(R.layout.fragment_phantom_pains, container, false)
- }
-
- companion object {
- /**
- * Use this factory method to create a new instance of
- * this fragment using the provided parameters.
- *
- * @param param1 Parameter 1.
- * @param param2 Parameter 2.
- * @return A new instance of fragment PhantomPainsFragment.
- */
- // TODO: Rename and change types and number of parameters
- @JvmStatic
- fun newInstance(param1: String, param2: String) =
- PhantomPainsFragment().apply {
- arguments = Bundle().apply {
- putString(ARG_PARAM1, param1)
- putString(ARG_PARAM2, param2)
- }
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/StumpCareFragment.kt b/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/StumpCareFragment.kt
deleted file mode 100644
index 3477685..0000000
--- a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriod/StumpCareFragment.kt
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.example.rehabilitation.User.fragmentUser.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
-
-import android.os.Bundle
-import androidx.fragment.app.Fragment
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import com.example.rehabilitation.R
-
-// TODO: Rename parameter arguments, choose names that match
-// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
-private const val ARG_PARAM1 = "param1"
-private const val ARG_PARAM2 = "param2"
-
-/**
- * A simple [Fragment] subclass.
- * Use the [StumpCareFragment.newInstance] factory method to
- * create an instance of this fragment.
- */
-class StumpCareFragment : Fragment() {
- // TODO: Rename and change types of parameters
- private var param1: String? = null
- private var param2: String? = null
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- arguments?.let {
- param1 = it.getString(ARG_PARAM1)
- param2 = it.getString(ARG_PARAM2)
- }
- }
-
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
- // Inflate the layout for this fragment
- return inflater.inflate(R.layout.fragment_stump_care, container, false)
- }
-
- companion object {
- /**
- * Use this factory method to create a new instance of
- * this fragment using the provided parameters.
- *
- * @param param1 Parameter 1.
- * @param param2 Parameter 2.
- * @return A new instance of fragment StumpCareFragment.
- */
- // TODO: Rename and change types and number of parameters
- @JvmStatic
- fun newInstance(param1: String, param2: String) =
- StumpCareFragment().apply {
- arguments = Bundle().apply {
- putString(ARG_PARAM1, param1)
- putString(ARG_PARAM2, param2)
- }
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriodFragment.kt b/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriodFragment.kt
deleted file mode 100644
index 7d6f268..0000000
--- a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MethodologicalRecommendations/EarlyPostoperativePeriodFragment.kt
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.example.rehabilitation.User.fragmentUser.InfoFragment.MethodologicalRecommendations
-
-import android.os.Bundle
-import androidx.fragment.app.Fragment
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import com.example.rehabilitation.R
-
-// TODO: Rename parameter arguments, choose names that match
-// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
-private const val ARG_PARAM1 = "param1"
-private const val ARG_PARAM2 = "param2"
-
-/**
- * A simple [Fragment] subclass.
- * Use the [EarlyPostoperativePeriodFragment.newInstance] factory method to
- * create an instance of this fragment.
- */
-class EarlyPostoperativePeriodFragment : Fragment() {
- // TODO: Rename and change types of parameters
- private var param1: String? = null
- private var param2: String? = null
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- arguments?.let {
- param1 = it.getString(ARG_PARAM1)
- param2 = it.getString(ARG_PARAM2)
- }
- }
-
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
- // Inflate the layout for this fragment
- return inflater.inflate(R.layout.fragment_early_postoperative_period, container, false)
- }
-
- companion object {
- /**
- * Use this factory method to create a new instance of
- * this fragment using the provided parameters.
- *
- * @param param1 Parameter 1.
- * @param param2 Parameter 2.
- * @return A new instance of fragment EarlyPostoperativePeriodFragment.
- */
- // TODO: Rename and change types and number of parameters
- @JvmStatic
- fun newInstance(param1: String, param2: String) =
- EarlyPostoperativePeriodFragment().apply {
- arguments = Bundle().apply {
- putString(ARG_PARAM1, param1)
- putString(ARG_PARAM2, param2)
- }
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MethodologicalRecommendations/LatePostoperativePeriodFragment.kt b/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MethodologicalRecommendations/LatePostoperativePeriodFragment.kt
deleted file mode 100644
index 724eb05..0000000
--- a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MethodologicalRecommendations/LatePostoperativePeriodFragment.kt
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.example.rehabilitation.User.fragmentUser.InfoFragment.MethodologicalRecommendations
-
-import android.os.Bundle
-import androidx.fragment.app.Fragment
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import com.example.rehabilitation.R
-
-// TODO: Rename parameter arguments, choose names that match
-// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
-private const val ARG_PARAM1 = "param1"
-private const val ARG_PARAM2 = "param2"
-
-/**
- * A simple [Fragment] subclass.
- * Use the [LatePostoperativePeriodFragment.newInstance] factory method to
- * create an instance of this fragment.
- */
-class LatePostoperativePeriodFragment : Fragment() {
- // TODO: Rename and change types of parameters
- private var param1: String? = null
- private var param2: String? = null
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- arguments?.let {
- param1 = it.getString(ARG_PARAM1)
- param2 = it.getString(ARG_PARAM2)
- }
- }
-
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
- // Inflate the layout for this fragment
- return inflater.inflate(R.layout.fragment_late_postoperative_period, container, false)
- }
-
- companion object {
- /**
- * Use this factory method to create a new instance of
- * this fragment using the provided parameters.
- *
- * @param param1 Parameter 1.
- * @param param2 Parameter 2.
- * @return A new instance of fragment LatePostoperativePeriodFragment.
- */
- // TODO: Rename and change types and number of parameters
- @JvmStatic
- fun newInstance(param1: String, param2: String) =
- LatePostoperativePeriodFragment().apply {
- arguments = Bundle().apply {
- putString(ARG_PARAM1, param1)
- putString(ARG_PARAM2, param2)
- }
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MethodologicalRecommendationsFragment.kt b/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MethodologicalRecommendationsFragment.kt
deleted file mode 100644
index f0f975d..0000000
--- a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InfoFragment/MethodologicalRecommendationsFragment.kt
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.example.rehabilitation.User.fragmentUser.InfoFragment
-
-import android.os.Bundle
-import androidx.fragment.app.Fragment
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import com.example.rehabilitation.R
-
-// TODO: Rename parameter arguments, choose names that match
-// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
-private const val ARG_PARAM1 = "param1"
-private const val ARG_PARAM2 = "param2"
-
-/**
- * A simple [Fragment] subclass.
- * Use the [MethodologicalRecommendationsFragment.newInstance] factory method to
- * create an instance of this fragment.
- */
-class MethodologicalRecommendationsFragment : Fragment() {
- // TODO: Rename and change types of parameters
- private var param1: String? = null
- private var param2: String? = null
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- arguments?.let {
- param1 = it.getString(ARG_PARAM1)
- param2 = it.getString(ARG_PARAM2)
- }
- }
-
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
- // Inflate the layout for this fragment
- return inflater.inflate(R.layout.fragment_methodological_recommendations, container, false)
- }
-
- companion object {
- /**
- * Use this factory method to create a new instance of
- * this fragment using the provided parameters.
- *
- * @param param1 Parameter 1.
- * @param param2 Parameter 2.
- * @return A new instance of fragment MethodologicalRecommendationsFragment.
- */
- // TODO: Rename and change types and number of parameters
- @JvmStatic
- fun newInstance(param1: String, param2: String) =
- MethodologicalRecommendationsFragment().apply {
- arguments = Bundle().apply {
- putString(ARG_PARAM1, param1)
- putString(ARG_PARAM2, param2)
- }
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InformationFragment.kt b/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InformationFragment.kt
deleted file mode 100644
index 325cba3..0000000
--- a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/InformationFragment.kt
+++ /dev/null
@@ -1,87 +0,0 @@
-package com.example.rehabilitation.User.fragmentUser
-
-import android.content.Intent
-import android.net.Uri
-import android.os.Bundle
-import androidx.fragment.app.Fragment
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import com.example.rehabilitation.Auth.AuthDoctorActivity
-import com.example.rehabilitation.MainActivity
-import com.example.rehabilitation.R
-import com.example.rehabilitation.databinding.FragmentInformationBinding
-import com.example.rehabilitation.fragment.InfoFragment.CommonInfoFragment
-import com.example.rehabilitation.fragment.InfoFragment.MedicalReabilitationFragment
-import com.example.rehabilitation.fragment.InfoFragment.faqFragment
-
-
-class InformationFragment : Fragment() {
- private lateinit var binding: FragmentInformationBinding
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
- binding = FragmentInformationBinding.inflate(layoutInflater, container, false)
- return binding.root
- }
-
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
- binding.commonInformationButton.setOnClickListener {
- val infoFrag = activity?.supportFragmentManager?.beginTransaction()
- infoFrag?.replace(R.id.CLInformation, CommonInfoFragment.newInstance())
- infoFrag?.addToBackStack(null)
- infoFrag?.commit()
-
- }
-
- binding.frequentlyAskedQuestionsButton.setOnClickListener {
- val infoFrag = activity?.supportFragmentManager?.beginTransaction()
- infoFrag?.replace(R.id.CLInformation, faqFragment.newInstance())
- infoFrag?.addToBackStack(null)
- infoFrag?.commit()
-
- }
-
- binding.medicalReabilitationButton.setOnClickListener {
- val infoFrag = activity?.supportFragmentManager?.beginTransaction()
- infoFrag?.replace(R.id.CLInformation, MedicalReabilitationFragment.newInstance())
- infoFrag?.addToBackStack(null)
- infoFrag?.commit()
-
- }
-
- binding.fondButton.setOnClickListener{
- val i = Intent(Intent.ACTION_VIEW, Uri.parse("https://фонд-защитники-отечества.рф/filials"))
- startActivity(i)
- }
-
- //Выход со страницы
- binding.btnExitInformation.setOnClickListener {
- val intetn = Intent(requireContext(), MainActivity::class.java)
- startActivity(intetn)
- activity?.finish()
- }
- }
-
-// override fun onDestroy() {
-// super.onDestroy()
-// activity?.finish()
-//
-// binding.CLFragmentInformation.visibility = View.GONE
-// }
-//
-// override fun onResume() {
-// super.onResume()
-// binding.CLFragmentInformation.visibility = View.VISIBLE
-//
-// }
-
-
-
- companion object {
-
- fun newInstance() = InformationFragment()
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/MonthViewContainer.kt b/app/src/main/java/com/example/rehabilitation/User/fragmentUser/MonthViewContainer.kt
deleted file mode 100644
index fdf81c0..0000000
--- a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/MonthViewContainer.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package com.example.rehabilitation.User.fragmentUser
-
-class MonthViewContainer {
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/ProgresFragment.kt b/app/src/main/java/com/example/rehabilitation/User/fragmentUser/ProgresFragment.kt
deleted file mode 100644
index 282188c..0000000
--- a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/ProgresFragment.kt
+++ /dev/null
@@ -1,1081 +0,0 @@
-package com.example.rehabilitation.User.fragmentUser
-
-import android.Manifest
-import android.annotation.SuppressLint
-import android.app.AlertDialog
-import android.content.ContentValues
-import android.content.Context
-import android.content.Intent
-import android.content.pm.PackageManager
-import android.net.Uri
-import android.os.Build
-import android.os.Bundle
-import android.os.Environment
-import android.os.Handler
-import android.provider.MediaStore
-import android.provider.Settings
-import android.util.Log
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import android.widget.Button
-import android.widget.Toast
-import androidx.activity.result.ActivityResultLauncher
-import androidx.activity.result.contract.ActivityResultContracts
-import androidx.core.app.ActivityCompat
-import androidx.core.content.ContextCompat
-import androidx.core.content.FileProvider
-import androidx.core.net.toFile
-import androidx.core.net.toUri
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.activityViewModels
-import androidx.lifecycle.asLiveData
-import androidx.recyclerview.widget.LinearLayoutManager
-import com.example.admin.Toast.showCustomInfoToast
-import com.example.rehabilitation.BuildConfig
-import com.example.rehabilitation.EmailPatient
-import com.example.rehabilitation.FIO
-import com.example.rehabilitation.model_adapter.Edit.adapterFirebase.ExcelFile
-import com.example.rehabilitation.model_adapter.Edit.adapterFirebase.ReportPatient
-import com.example.rehabilitation.Room.MainDB
-import com.example.rehabilitation.Sport15Day
-import com.example.rehabilitation.Sport15DayAll
-import com.example.rehabilitation.Sport7Day
-import com.example.rehabilitation.SportCursDay
-import com.example.rehabilitation.SportCursDayNumber
-import com.example.rehabilitation.checkDaySportString
-import com.example.rehabilitation.countCategory
-import com.example.rehabilitation.databinding.FragmentProgresBinding
-import com.example.rehabilitation.listAfter
-import com.example.rehabilitation.listBefore
-import com.example.rehabilitation.listProgressAll
-import com.example.rehabilitation.listProgressCheck
-import com.example.rehabilitation.loginDoctor
-import com.example.rehabilitation.loginPatient
-import com.example.rehabilitation.model_adapter.Day.DayListModel
-import com.example.rehabilitation.model_adapter.Image.Category.CountCategoryModel
-import com.example.rehabilitation.model_adapter.Progress.AfterListModel
-import com.example.rehabilitation.model_adapter.Progress.BeforeListModel
-import com.example.rehabilitation.model_adapter.Progress.ProgressAdapter
-import com.example.rehabilitation.model_adapter.Progress.ProgressModel
-import com.example.rehabilitation.model_adapter.modelCount.CountDayModel
-import com.example.rehabilitation.model_adapter.modelCount.CountMonthModel
-import com.example.rehabilitation.prefEmailPatient
-import com.example.rehabilitation.prefFIO
-import com.example.rehabilitation.prefSport15Day
-import com.example.rehabilitation.prefSport15DayAll
-import com.example.rehabilitation.prefSport7Day
-import com.example.rehabilitation.uriFileEF
-import com.example.sqlitework.dip.MainViewModel
-import com.google.firebase.database.DatabaseReference
-import com.google.firebase.database.ktx.database
-import com.google.firebase.ktx.Firebase
-import java.io.File
-import java.io.FileOutputStream
-import java.io.IOException
-import java.io.OutputStream
-import java.time.LocalDate
-import java.time.LocalDateTime
-import kotlin.io.path.Path
-import kotlin.io.path.absolutePathString
-import kotlin.io.path.listDirectoryEntries
-
-
-//import java.util.Properties
-//import javax.mail.Authenticator
-//import javax.mail.Message
-//import javax.mail.MessagingException
-//import javax.mail.PasswordAuthentication
-//import javax.mail.Session
-//import javax.mail.Transport
-//import javax.mail.internet.InternetAddress
-//import javax.mail.internet.MimeMessage
-
-class ProgresFragment : Fragment(), ProgressAdapter.Listener {
- private lateinit var binding: FragmentProgresBinding
-
- private lateinit var pLauncher: ActivityResultLauncher
- lateinit var adapterProgress: ProgressAdapter
-
-
- private val model: MainViewModel by activityViewModels()//Инициализировали класс
- lateinit var uri: Uri
- private val pickFromGallery: Int = 101
-
- var uri2: String? = null
-
- //FireBase
- //Подключение к FireBase
- val database =
- Firebase.database("https://rehabilitationtest-default-rtdb.europe-west1.firebasedatabase.app/")
- var idChat = "azazaza08"
- val myRef: DatabaseReference? = database.getReference(idChat.toString())
-
- //Для анкеты
- var txt = ""
-
- //Кастыль для разрешения отправки сообщений, так как иначе оно отправляет их само и это мешает
- var TrueAddEmail = false
-
-
- private val filePath =
- File(Environment.getExternalStorageDirectory().toString() + "/Demow.xlsx")
-
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
- binding = FragmentProgresBinding.inflate(layoutInflater, container, false)
- return binding.root
- }
-
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
-
- //Пройдено ли 15 дне и отправен отчет
- prefSport15DayAll = activity?.getSharedPreferences("Sport15DayAll", Context.MODE_PRIVATE)
- Sport15DayAll = prefSport15DayAll?.getInt("s15da", 0)!!
-
- //Отчет на 15 день
- prefSport15Day = activity?.getSharedPreferences("Sport15Day", Context.MODE_PRIVATE)
- Sport15Day = prefSport15Day?.getInt("s15d", 0)!!
-
- //Отчет на 7 день
- prefSport7Day = activity?.getSharedPreferences("Sport7Day", Context.MODE_PRIVATE)
- Sport7Day = prefSport7Day?.getInt("s7d", 0)!!
-
-
-// ActivityCompat.requestPermissions(
-// requireActivity(), arrayOf(
-// Manifest.permission.WRITE_EXTERNAL_STORAGE,
-// Manifest.permission.READ_EXTERNAL_STORAGE
-// ), PackageManager.PERMISSION_GRANTED
-// )
-
-
- liveDayListProgres()
- liveDayListProgres2()
- liveCountMonthCurrent()
- liveCountDayCurrent()
- progresMonthAndDay()
- initRcViewProgress()
- //registerPrmissionListener()
- progressList()
- model.liveListProgresBeforeList.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
- Log.i("TrueAddEmailB", "${TrueAddEmail}")
- if (TrueAddEmail == true) {
- listBefore = it
- Log.i("listBefore", listBefore.toString())
- progressListAddEmailAfter()
- }
- }
- model.liveListProgresAfterList.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
- Log.i("TrueAddEmailA", "${TrueAddEmail}")
- if (TrueAddEmail == true) {
- listAfter = it
- if (listAfter.count() >= 2) {
- ActivityCompat.requestPermissions(
- requireActivity(), arrayOf(
- Manifest.permission.WRITE_EXTERNAL_STORAGE,
- Manifest.permission.READ_EXTERNAL_STORAGE
- ), PackageManager.PERMISSION_GRANTED
- )
- if (ContextCompat.checkSelfPermission(
- requireContext(),
- Manifest.permission.READ_EXTERNAL_STORAGE
- ) == PackageManager.PERMISSION_GRANTED
- ) {
- Log.i("listAfter", listAfter.toString())
- formationOfReportsOnQuestionnaires()
- }
- else if (ContextCompat.checkSelfPermission(
- requireContext(),
- Manifest.permission.READ_EXTERNAL_STORAGE
- ) == PackageManager.PERMISSION_DENIED
- ){
- AlertDialog.Builder(requireContext())
- .setTitle("Разрешение")
- .setMessage("Вам необходимо разрешить приложению доступ к файлам, чтобы вам был сохранен отчет по реабилитации")
- .setNeutralButton("Добавить разрешение") { dialog, whichButton ->
- // startActivity(Intent(Settings.ACTION_SETTINGS))
- //Переход в настройки данного приложения
- val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
- intent.data = Uri.parse("package:" + context?.packageName)
- startActivity(intent)
- }
- .setNegativeButton("Отмена") { dialog, whichButton ->
-
- }
- .show()
- Toast(requireContext()).showCustomInfoToast(
- "Вам необходимо разрешить приложению доступ к файлам",
- requireActivity()
- )
- }
-
- } else {
- Toast(requireContext()).showCustomInfoToast(
- "Отчет можно отправить при наличие 2 выполненных дней",
- requireActivity()
- )
-
- }
-
- }
-
- }
-
- model.liveProgressAllList.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
- listProgressAll = it
- progressCheckAdd()
- }
-
- model.liveProgressCheckList.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
- adapterProgress.submitList(it)//Напрямую переадем созданный список в adapter(ProductAdapter)
- listProgressCheck = it
- }
-
-
- //Отправка отчета на почту
- binding.btnPushEmailReport.setOnClickListener {
- progresListAddEmail()
- }
-
- binding.btnPushProgress.setOnClickListener {
-
-
- Log.i("TrueAddEmailfalse", "${TrueAddEmail}")
- TrueAddEmail = true
- Log.i("TrueAddEmailtrue", "${TrueAddEmail}")
- progressListAddEmailBefore()
-
- prefFIO = activity?.getSharedPreferences("FIO", Context.MODE_PRIVATE)
- FIO = prefFIO?.getString("fio", "")!!
-
- prefEmailPatient = activity?.getSharedPreferences("EmailPatient", Context.MODE_PRIVATE)
- EmailPatient = prefEmailPatient?.getString("emailPatient", "")!!
-
-
- }
- fun saveFIO(fio: String) {
- val edit = prefFIO?.edit()
- edit?.putString("fio", fio)
- edit?.apply()
- FIO = fio
- }
-
- fun clearFIO() {
- val edit = prefFIO?.edit()
- edit?.clear()
- edit?.apply()
- FIO = ""
- }
-
-
-// binding.btnPushApi.setOnClickListener {
-// sendEmail()
-// }
-
-
- binding.btnExit.setOnClickListener {
- visible1()
- }
- binding.btnReport.setOnClickListener {
- visible2()
- }
-
- binding.btnAttach.setOnClickListener {
- openFolder()
- }
- binding.btnCreateText.setOnClickListener {
-
- }
-
- }
-
- private fun progressCheckAdd() {
- val db = MainDB.getDB(requireContext())
- val list = ArrayList()
- db.getDaoDaySport().getcheckProgress().asLiveData().observe(requireActivity()) { itList ->
- var number = 1;
- var i = 0
- itList.forEach {
- listProgressAll[i].CountCheckTrue = it.check
- i++
- }
- model.liveProgressCheckList.value = listProgressAll
- Log.d("sadas", list.toString())
- }
- binding.txtLoadProgres.visibility = View.GONE
- }
-
- fun progressList() {
- ClearRCView()
- binding.txtLoadProgres.visibility = View.VISIBLE
- val db = MainDB.getDB(requireContext())
- val list = ArrayList()
- db.getDaoDaySport().getAllProgres().asLiveData().observe(requireActivity()) { itList ->
- var number = 1;
-
- itList.forEach {
- val itemDay = ProgressModel(
- number++.toString(),
- it.visible,
- it.check,
- it.category,
- it.day
-
- )
- list.add(itemDay)//Передали заполненый список
- model.liveProgressAllList.value = list
-
- }
-
- Log.d("sadas", list.toString())
- }
- }
-
- //Инициализация списка для фотографий
- private fun initRcViewProgress() = with(binding) {
- rcViewProgress.layoutManager = LinearLayoutManager(
- requireContext(),
- LinearLayoutManager.VERTICAL,
- false
- )//По вертикали будет выводить по умолчанию
- adapterProgress = ProgressAdapter(this@ProgresFragment)
- rcViewProgress.adapter = adapterProgress
- }
-
- private fun formationOfReportsOnQuestionnaires() {
- Log.i("111111123333", "111111123333")
- Log.i("Questionnaires", listBefore[0].date)
- Log.i("Questionnaires", listBefore.count().toString())
- try {
- Log.i("222222222223333", "222222222223333")
- val excel = ExcelFile(
- FIO,
- listBefore.count(),
- listAfter.count(),
- LocalDate.now().toString(),
- listBefore,
- listAfter
- )
- val fullPath = Path("source.txt")
- Log.i("fullPath", "${fullPath}")
- Log.i("111111123333", "5234234243")
- txt = ""
- Log.i("Questionnaires", listBefore[0].date)
- for (i in 1..listBefore.count()) {
- Log.i("listBefore1", "1")
- excel.addBeforeDay(
- i, 1, if (listBefore[i - 1].one.toInt() == 0) {
- 0
- } else {
- 1
- }
- )
- excel.addBeforeDay(i, 2, listBefore[i - 1].one.toInt())
- excel.addBeforeDay(i, 3, listBefore[i - 1].two.toInt())
- excel.addBeforeDay(i, 4, listBefore[i - 1].thee.toInt())
- excel.addBeforeDay(i, 5, listBefore[i - 1].four.toInt())
- excel.addBeforeDay(i, 6, listBefore[i - 1].five.toInt())
- excel.addBeforeDay(i, 7, listBefore[i - 1].six.toInt())
- excel.addBeforeDay(i, 8, listBefore[i - 1].seven.toInt())
- excel.addBeforeDay(i, 9, listBefore[i - 1].eight.toInt())
- excel.addBeforeDay(i, 10, listBefore[i - 1].nine.toInt())
- }
-
- for (i in 1..listAfter.count()) {
- Log.i("listAfter2", "2")
- excel.addAfterDay(i, 1, listAfter[i - 1].one.toInt())
- excel.addAfterDay(i, 2, listAfter[i - 1].two.toInt())
- excel.addAfterDay(i, 3, listAfter[i - 1].thee.toInt())
- excel.addAfterDay(i, 4, listAfter[i - 1].four.toInt())
- excel.addAfterDay(i, 5, listAfter[i - 1].five.toInt())
- excel.addAfterDay(i, 6, listAfter[i - 1].six.toInt())
- excel.addAfterDay(i, 7, listAfter[i - 1].seven.toInt())
- excel.addAfterDay(i, 8, listAfter[i - 1].eight.toInt())
- excel.addAfterDay(i, 9, listAfter[i - 1].nine.toInt())
- excel.addAfterDay(i, 10, listAfter[i - 1].ten.toInt())
- excel.addAfterDay(i, 11, listAfter[i - 1].eleven.toInt())
- excel.addAfterDay(i, 12, listAfter[i - 1].twelve.toInt())
- }
- Log.i("27654756231231231", "27654756231231231")
- chekStoragePermissio()
- excel.saveTable()
- Log.i("23231231231", "23231231231")
- sendEmailQ()
- } catch (e: Exception) {
- e.printStackTrace()
- }
-
- }
-
- private fun formationOfReportsOnQuestionnaires2() {
- try {
- txt = ""
- var dayPlus = 1
- var afterPlus = 0
- Log.i("Questionnaires", listBefore[0].date)
- for (i in 0..listBefore.count() - 1) {
- if (listBefore[i].date == listAfter[afterPlus].date) {
- txt +=
- "День ${dayPlus++}: ${listBefore[i].date} \n" +
- "Анкета до выполненния: \n" +
- "|1. ${listBefore[i].one}||2. ${listBefore[i].two}||3. ${listBefore[i].thee}||4. ${listBefore[i].four}||5. ${listBefore[i].five}||6. ${listBefore[i].six}||7. ${listBefore[i].seven}||8. ${listBefore[i].eight}||9. ${listBefore[i].nine}|\n" +
- " \n" +
- "Анкета после выполненния: \n" +
- "|1. ${listAfter[afterPlus].one}||2. ${listAfter[afterPlus].two}||3. ${listAfter[afterPlus].thee}||4. ${listAfter[afterPlus].four}||5. ${listAfter[afterPlus].five}||6. ${listAfter[afterPlus].six}||7. ${listAfter[afterPlus].seven}||8. ${listAfter[afterPlus].eight}||9. ${listAfter[afterPlus].nine}||10. ${listAfter[afterPlus].ten}||11. ${listAfter[afterPlus].eleven}||12. ${listAfter[afterPlus].twelve}|\n" +
-
- " \n" +
- "______________\n" +
- " \n"
- afterPlus++
- } else {
- txt +=
- "День ${dayPlus++}: ${listBefore[i].date} \n" +
- "Анкета до выполненния: \n" +
- "|1. ${listBefore[i].one}||2. ${listBefore[i].two}||3. ${listBefore[i].thee}||4. ${listBefore[i].four}||5. ${listBefore[i].five}||6. ${listBefore[i].six}||7. ${listBefore[i].seven}||8. ${listBefore[i].eight}||9. ${listBefore[i].nine}|\n" +
- " \n" +
- "Анкета после выполненния: \n" +
- "ЗАБЫЛ ЗАПОЛНИТЬ" +
- " \n" +
- "____________________________\n" +
- " \n"
- }
-
- }
-
- chekStoragePermissio()
-
- txtFileExport(txt)
-
- } catch (e: Exception) {
- e.printStackTrace()
- }
-
- }
-
-
- fun chekStoragePermissio() {
- //Разрешние
- when {
- ContextCompat.checkSelfPermission(
- requireContext(),
- Manifest.permission.WRITE_EXTERNAL_STORAGE
- )
- == PackageManager.PERMISSION_GRANTED -> {
- //Toast.makeText(requireContext(), "STORAGE run", Toast.LENGTH_LONG).show()
- }
-
- shouldShowRequestPermissionRationale(Manifest.permission.WRITE_EXTERNAL_STORAGE) -> {
- //Toast.makeText(requireContext(), "We need your permission", Toast.LENGTH_LONG) .show()
-
- }
-
- else -> {
- pLauncher.launch(Manifest.permission.WRITE_EXTERNAL_STORAGE)
- }
- }
- }
-
- private fun registerPrmissionListener() {
- pLauncher = registerForActivityResult(ActivityResultContracts.RequestPermission()) {
- if (it) {
- //Toast.makeText(requireContext(), "STORAGE run", Toast.LENGTH_LONG).show()
- } else {
- //Toast.makeText(requireContext(), "Permission denid", Toast.LENGTH_LONG).show()
-
- }
- }
-
- }
-
-
- @Throws(IOException::class)
- private fun saveFile(context: Context, fileName: String, text: String, extension: String) {
- val outputStream: OutputStream? = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
- val values = ContentValues()
- values.put(MediaStore.MediaColumns.DISPLAY_NAME, fileName)
- values.put(MediaStore.MediaColumns.MIME_TYPE, "text/plain")
- values.put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_DOWNLOADS)
- val extVolumeUri: Uri = MediaStore.Files.getContentUri("external")
- val fileUri: Uri? = context.contentResolver.insert(extVolumeUri, values)
- context.contentResolver.openOutputStream(fileUri!!)
- } else {
- val path =
- Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
- .toString()
- val file = File(path, "$fileName.$extension")
- FileOutputStream(file)
- }
-
- val bytes = text.toByteArray()
- outputStream?.write(bytes)
- outputStream?.close()
- }
-
-
- // логика проверки разрешения
- private fun hasWriteStoragePermission(): Boolean {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
- // API version >= 29 (Android 10, 11, ...)
- return true
- } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
- // API version >= 23 (Android 6, 7, ...)
- if (ActivityCompat.checkSelfPermission(
- requireContext(),
- Manifest.permission.WRITE_EXTERNAL_STORAGE
- ) != PackageManager.PERMISSION_GRANTED
- ) {
- requestPermissions(
- arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE),
- TXTWRITEFILE
- )
- return false
- }
- }
- // для более древних API не требуется проверки
- return true
- }
-
- //var uri:Uri
- val TXTWRITEFILE: Int = 2000
-
- @SuppressLint("SuspiciousIndentation")
- fun txtFileExport(txt: String) {
- val fileName = LocalDateTime.now().toString()
-
- val fileContent = txt
-
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
- // API version >= 29 (Android 10, 11, ...)
-
- val contentValues = ContentValues().apply {
- put(MediaStore.Downloads.DISPLAY_NAME, fileName)
- put(MediaStore.Downloads.MIME_TYPE, "text/plain")
- put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_DOWNLOADS)
- }
- val resolver = requireActivity().contentResolver
-
- // регистрация файла
- uri = resolver.insert(MediaStore.Downloads.EXTERNAL_CONTENT_URI, contentValues)!!
- //Toast.makeText(requireContext(), uri.toString(), Toast.LENGTH_LONG).show()
- Log.i("132", uri.toString())
-
- if (uri != null) {
- val fileOutputStream = resolver.openOutputStream(uri)
- fileOutputStream?.write(fileContent.toByteArray())
- fileOutputStream?.close()
-// sendEmail()
- } else {
- //Toast.makeText(requireContext(), "Can\'t resolve media path", Toast.LENGTH_LONG).show()
- }
- } else {
- // API version < 29 (Android ..., 7,8,9)
- val outputFile = File(
- Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS),
- fileName
- )
- outputFile.writeText(fileContent)
- //uri = outputFile
- }
- }
- fun ClearRCView(){
- adapterProgress.notifyDataSetChanged(); // let your adapter know about the changes and reload view.
- initRcViewProgress()
- //progresMonthAndDay()
- }
- override fun onResume() {
- super.onResume()
- //ClearRCView()
- progresMonthAndDay()
- }
-
- override fun onDestroy() {
- super.onDestroy()
- ClearRCView()
- }
- override fun onRequestPermissionsResult(
- requestCode: Int,
- permissions: Array,
- grantResults: IntArray
- ) {
- super.onRequestPermissionsResult(requestCode, permissions, grantResults)
- when (requestCode) {
- TXTWRITEFILE -> {
- if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
- //txtFileExport(txt)
- } else {
- // Toast.makeText(requireContext(), "Feature is not available, because you didn't permit to crate an export file.", Toast.LENGTH_LONG)
- }
- }
- }
- }
-
- fun saveTextFile() {
-
- }
-
- private fun txtEmail() {
- saveTextFile()
- }
-
- private fun openFolder() {
- val intent = Intent()
- intent.type = "image/*"
- intent.action = Intent.ACTION_GET_CONTENT
- intent.putExtra("return-data", true)
- startActivityForResult(
- Intent.createChooser(intent, "Complete action using"),
- pickFromGallery
- )
- }
-
- private fun sendEmailQ() {
-
- Log.i("123111123123123", "123111123123123")
- try {
- TrueAddEmail = false
- Log.i("TrueAddEmailfalse", "${TrueAddEmail}")
- Log.i("123123123123", "123123123123")
- if (SportCursDay == 7 && Sport7Day == 1) {
- clearSport7Day()
- } else if (SportCursDay == 15 && Sport15Day == 1) {
- clearSport15Day()
- saveSport15DayAll(1)
- }
- val filesDir =
- Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
- val uri3 = FileProvider.getUriForFile(
- requireContext(),
- BuildConfig.APPLICATION_ID + ".provider",
- "file://${filesDir}/${LocalDate.now()}.xlsx".toUri().toFile()
- )
-
- //val email = EmailPatient// the id of textview where email is stored
- val email = "Mnv.vmeda@ya.ru"// the id of textview where email is stored
- val subject = "Отчет по тренировкам ${FIO}"// the id of textview where subject is stored
- val message = checkDaySportString // the id of textview where body is stored
- val emailIntent = Intent(Intent.ACTION_SEND)
- emailIntent.type = "application/excel"
- emailIntent.putExtra(Intent.EXTRA_EMAIL, arrayOf(email))
- emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject)
- emailIntent.putExtra(Intent.EXTRA_STREAM, uri3)
- emailIntent.putExtra(Intent.EXTRA_TEXT, message)
- this.startActivity(Intent.createChooser(emailIntent, "Sending email..."))
- //addDownload(uri)
- Log.i("uri", uri.toString())
-
- } catch (t: Throwable) {
- //Toast.makeText(requireContext(), "Request failed try again: $t", Toast.LENGTH_LONG) .show()
- }
- }
-
- fun saveSport15DayAll(s15da: Int) {
- val edit = prefSport15DayAll?.edit()
- edit?.putInt("s15da", s15da)
- edit?.apply()
- Sport15DayAll = s15da
- }
-
- fun saveSport15Day(s15d: Int) {
- val edit = prefSport15Day?.edit()
- edit?.putInt("s15d", s15d)
- edit?.apply()
- Sport15Day = s15d
- }
-
- fun clearSport15Day() {
- val edit = prefSport15Day?.edit()
- edit?.clear()
- edit?.apply()
- Sport15Day = 0
- }
-
- fun saveSport7Day(s7d: Int) {
- val edit = prefSport7Day?.edit()
- edit?.putInt("s7d", s7d)
- edit?.apply()
- Sport7Day = s7d
- }
-
- fun clearSport7Day() {
- val edit = prefSport7Day?.edit()
- edit?.clear()
- edit?.apply()
- Sport7Day = 0
- }
-
-
- override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
- super.onActivityResult(requestCode, resultCode, data)
-// if (requestCode == pickFromGallery && resultCode == RESULT_OK) {
-// if (data != null) {
-// uri = data.data!!
-// }
-// binding.tvAttachment.text = uri.lastPathSegment
-// binding.tvAttachment.visibility = View.VISIBLE
-// }
- }
-
- private fun progresListAdd() {
- val db = MainDB.getDB(requireContext())
- val list = ArrayList()
- liveCountCategoryCurrent()
-
- //Количество тренировок в день
- db.getDaoSportCategory().getAllItemsSportCategoryCount("c").asLiveData()
- .observe(requireActivity()) { itCount ->
- itCount.forEach() {
- val item = CountCategoryModel(
- it.image.toString(),
- )
- model.liveCountCategoryCurrent.value = item
- }
- }
-
- //Список тренировок по дня
- db.getDaoDaySport().getAllItemDaySportDay().asLiveData()
- .observe(requireActivity()) { itList ->
- itList.forEach {
- Log.d("123", it.category)
- //db.getDaoSportCategory().getAllItemsSportCategory(it.category).asLiveData().observe(requireActivity()){itSport->
- val itemDayList = DayListModel(
- it.id.toString(),
- it.id.toString(),
- it.day,
- it.category,
- it.check.toString(),
- )
- list.add(itemDayList)
- }
- Log.d("sada", list.toString())
- model.liveDayListProgres.value = list
- }
- }
-
- private fun progresListAddEmail() {
- val db = MainDB.getDB(requireContext())
- val list = ArrayList()
- liveCountCategoryCurrent()
-
- //Количество тренировок в день
- db.getDaoSportCategory().getAllItemsSportCategoryCount("c").asLiveData()
- .observe(requireActivity()) { itCount ->
- itCount.forEach() {
- val item = CountCategoryModel(
- it.image.toString(),
- )
- model.liveCountCategoryCurrent.value = item
- }
- }
-
- //Список тренировок по дня
- db.getDaoDaySport().getAllItemDaySportDay().asLiveData()
- .observe(requireActivity()) { itList ->
- itList.forEach {
- Log.d("123", it.category)
- //db.getDaoSportCategory().getAllItemsSportCategory(it.category).asLiveData().observe(requireActivity()){itSport->
- val itemDayList = DayListModel(
- it.id.toString(),
- it.id.toString(),
- it.day,
- it.category,
- it.check.toString(),
- )
- list.add(itemDayList)
- }
- Log.d("sada", list.toString())
- model.liveDayListProgres2.value = list
- }
- }
-
- fun progressListAddEmailBefore() {
- val db = MainDB.getDB(requireContext())
- val list = ArrayList()
- //Количество тренировок в день
- db.getDaoQB().getAllBQProgress().asLiveData().observe(requireActivity()) { itCount ->
- itCount.forEach() {
- //val text = "Id: ${it.id} Name: ${it.name} Proce: ${it.price}"
- //binding.txtList.append(text)
- val item = BeforeListModel(
- it.id!!.toInt(),
- it.one,
- it.two,
- it.three,
- it.four,
- it.five,
- it.six,
- it.seven,
- it.eight,
- it.nine,
- it.date
- )
- //model.liveZakazCurrent.value = item//Передаем в liveDataCurrent один из продуктов, чтобы дальше эти данные использовать и передавать их в пробную ячейку
- list.add(item)//Передали заполненый список
- }
- model.liveListProgresBeforeList.value = list
- }
-
- }
-
- fun progressListAddEmailAfter() {
- val db = MainDB.getDB(requireContext())
- val list = ArrayList()
- db.getDaoQA().getAllAQProgress().asLiveData().observe(requireActivity()) { itCount ->
- itCount.forEach() {
- //val text = "Id: ${it.id} Name: ${it.name} Proce: ${it.price}"
- //binding.txtList.append(text)
- val item = AfterListModel(
- it.id!!.toInt(),
- it.one,
- it.two,
- it.three,
- it.four,
- it.five,
- it.six,
- it.seven,
- it.eight,
- it.nine,
- it.ten,
- it.elevenInt,
- it.twelve,
- it.date,
- )
- //model.liveZakazCurrent.value = item//Передаем в liveDataCurrent один из продуктов, чтобы дальше эти данные использовать и передавать их в пробную ячейку
- list.add(item)//Передали заполненый список
- }
- model.liveListProgresAfterList.value = list
- }
- }
-
-
- private fun progresMonthAndDay() {
- //initRcViewProgress()
- val db = MainDB.getDB(requireContext())
- var listMouthDown = 0
- var listMouthAll = 0
- val data = LocalDate.now().toString()
- //Прогрес в течение месяца
- db.getDao().getAllItems().asLiveData().observe(requireActivity()) { itList ->
- itList.forEach {
-
- if (it.day < data) {
- listMouthDown = listMouthDown + 1
- listMouthAll = listMouthAll + 1
- } else {
- listMouthAll = listMouthAll + 1
- }
- }
- val item = CountMonthModel(
- listMouthDown,
- listMouthAll
- )
- model.liveCountMonthCurrent.value = item
- }
-
- var listDayDown = 0
- var listDayAll = 0
- var name = ""
- //Прогрес за в течение данного дня
- db.getDaoDaySport().getAllItemDaySport(data).asLiveData()
- .observe(requireActivity()) { itList ->
-
- itList.forEach {
- if (it.check == 1) {
- listDayDown = listDayDown + 1
- listDayAll = listDayAll + 1
- } else {
- listDayAll = listDayAll + 1
- }
-
- }
- val item = CountDayModel(
- listDayDown,
- listDayAll
- )
- model.liveCountDayCurrent.value = item
-
- }
-
-
- }
-
-
- //Вывод прогресса по дням
- private fun liveCountMonthCurrent() = with(binding) {
- model.liveCountMonthCurrent.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
- binding.txtProgresMonth.setText("Пройдено дней: ${it.countDown}/${it.countAll}")
- }
-
- }
-
- //Вывод прогресса на один день
- private fun liveCountDayCurrent() = with(binding) {
- model.liveCountDayCurrent.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
- binding.txtProgresDay.setText("Выполнено сегодня: ${it.countDown}/${it.countAll}")
- }
-
- }
-
- //Получение количества записей
- private fun liveCountCategoryCurrent() = with(binding) {
- model.liveCountCategoryCurrent.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
- countCategory = it.count
- Log.d("countCategory", countCategory)
- }
- }
-
- //Функция запускающая отслеживания за списком, чтобы вовремя обновлять основную карточку продукта
- private fun liveDayListProgres() = with(binding) {
- val myRef = database.getReference(loginDoctor)
-
- model.liveDayListProgres.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
- checkDaySportString = ""
- var idCheck = 0
- for (i in 0..29) {
- var checkDaySportInt = 0
- checkDaySportString += it[idCheck].day + ": "
- for (j in 0..(countCategory.toInt()) - 1) {
- if (it[idCheck].check == "0") {
- checkDaySportString += it[idCheck].category + ", "
- } else {
- checkDaySportInt++
- }
- idCheck++
- }
- Log.d("checkDaySportInt", checkDaySportInt.toString())
- Log.d("countCategory.toInt())-1", ((countCategory.toInt()) - 1).toString())
- //Если пройдены все тренировки
- if (checkDaySportInt == (countCategory.toInt())) {
- checkDaySportString += "пройден.\n\n"
- }
- //Если пройдены не все тренировки
- else {
- checkDaySportString += ".\n\n"
- }
- }
-
- // binding.txtView.setText(checkDaySportString)
- //Отправляем отчет в на сервер, где его получит врач
- myRef.child(myRef.push().key ?: "blabla")
- .setValue(ReportPatient(loginPatient, checkDaySportString))
-
- }
- }
-
- //Функция запускающая отслеживания за списком, чтобы вовремя обновлять основную карточку продукта
- private fun liveDayListProgres2() = with(binding) {
- val myRef = database.getReference(loginDoctor)
-
- model.liveDayListProgres2.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
- checkDaySportString = ""
- var idCheck = 0
- for (i in 0..29) {
- var checkDaySportInt = 0
- checkDaySportString += it[idCheck].day + ": "
- for (j in 0..(countCategory.toInt()) - 1) {
- if (it[idCheck].check == "0") {
- checkDaySportString += it[idCheck].category + ", "
- } else {
- checkDaySportInt++
- }
- idCheck++
- }
- Log.d("checkDaySportInt", checkDaySportInt.toString())
- Log.d("countCategory.toInt())-1", ((countCategory.toInt()) - 1).toString())
- //Если пройдены все тренировки
- if (checkDaySportInt == (countCategory.toInt())) {
- checkDaySportString += "пройден.\n\n"
- }
- //Если пройдены не все тренировки
- else {
- checkDaySportString += ".\n\n"
- }
- }
-
- // binding.txtView.setText(checkDaySportString)
- //Отправляем отчет в на сервер, где его получит врач
- myRef.child(myRef.push().key ?: "blabla")
- .setValue(ReportPatient(loginPatient, checkDaySportString))
- sendEmail(checkDaySportString)
- }
- }
-
- fun txtProgresEmailCreate() {
-
- }
-
- fun visible1() {
- binding.CLMainProgres.visibility = View.VISIBLE
- binding.CLReportProgres.visibility = View.GONE
- }
-
- fun visible2() {
- binding.CLMainProgres.visibility = View.GONE
- binding.CLReportProgres.visibility = View.VISIBLE
- }
-
- //Открытие приложения Gmail и отправка через него
- @SuppressLint("IntentReset")
- fun sendEmail(checkDaySportString: String) {
- val email = "azazaza08@yandex.ru" // the id of textview where email is stored
- val subject =
- "Отчет по тренировка Олега Игоревича Васильевочвича"// the id of textview where subject is stored
- val message = checkDaySportString // the id of textview where body is stored
- //val addresses = "t.t.maxi05092003@gmail.com" //incase if you are wishing to send it to multiple people
-
-
- val intent = Intent(Intent.ACTION_SEND)
- intent.data = Uri.parse("mailto:")
- intent.type = "text/plain"
- intent.putExtra(Intent.EXTRA_EMAIL, arrayOf(email))// herer adresses is already string
- intent.putExtra(Intent.EXTRA_SUBJECT, subject) // send the values as string
- intent.putExtra(Intent.EXTRA_TEXT, message)// send the values as string
-
-
- try {
- startActivity(Intent.createChooser(intent, "Choose Email Client..."))
- } catch (e: Exception) {
- //Toast.makeText(requireContext(), e.message, Toast.LENGTH_LONG).show()
- }
- }
-
- private fun chatView(idUserChat: String) {
- val database = Firebase.database
- val myRef = database.getReference("message123w52")
-
- myRef.setValue("Hello, World!")
- }
-
- private fun chatView1(idUserChat: String) {
- binding.btnPushProgress.setOnClickListener() {
- //if(binding.editMessage.text != null){
- //myRef.setValue(binding.editMessage.text.toString())
- // }
- }
-
- }
-
- //ЗАдержка нажатия на кнопку
- private fun timerButtonDoubleButton(btn: Button) {
- val updateHandler = Handler()
-
- val runnable = Runnable {
- btn.setEnabled(true)
- }
-
- updateHandler.postDelayed(runnable, 5000)
- }
-
-
- companion object {
-
- fun newInstance() = ProgresFragment()
- }
-
- override fun onClickDay(item: ProgressModel) {
-
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/QuestionnaireFragment/QBeforeFragment.kt b/app/src/main/java/com/example/rehabilitation/User/fragmentUser/QuestionnaireFragment/QBeforeFragment.kt
deleted file mode 100644
index 9727406..0000000
--- a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/QuestionnaireFragment/QBeforeFragment.kt
+++ /dev/null
@@ -1,1068 +0,0 @@
-package com.example.rehabilitation.User.fragmentUser.QuestionnaireFragment
-
-import android.app.AlertDialog
-import android.content.Context
-import android.graphics.Color
-import android.os.Bundle
-import android.util.Log
-import androidx.fragment.app.Fragment
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import android.widget.Toast
-import com.example.admin.Toast.showCustomInfoToast
-import com.example.admin.Toast.showCustomNiceToast
-import com.example.rehabilitation.Block
-import com.example.rehabilitation.CursDayNull
-import com.example.rehabilitation.DayAfter
-import com.example.rehabilitation.DayBefore
-import com.example.rehabilitation.PauseDay
-import com.example.rehabilitation.R
-import com.example.rehabilitation.Room.ItemDaySport
-import com.example.rehabilitation.Room.MainDB
-import com.example.rehabilitation.Room.Questionnaire.Before.ItemBeforeQuestionnaire
-import com.example.rehabilitation.SportCursDay
-import com.example.rehabilitation.SportCursDayDangerAfter
-import com.example.rehabilitation.SportCursDayDangerBefore
-import com.example.rehabilitation.SportCursDayNumber
-import com.example.rehabilitation.SportMaxCount
-import com.example.rehabilitation.SportPlusCount
-import com.example.rehabilitation.User.fragmentUser.SceduleFragment
-import com.example.rehabilitation.databinding.FragmentQBeforeBinding
-import com.example.rehabilitation.daySpoartOpen
-import com.example.rehabilitation.daySpoartOpenKey
-import com.example.rehabilitation.model_adapter.Questionnair.BeforeModel
-import com.example.rehabilitation.prefBlock
-import com.example.rehabilitation.prefCursDangerDayAfter
-import com.example.rehabilitation.prefCursDangerDayBefore
-import com.example.rehabilitation.prefCursDay
-import com.example.rehabilitation.prefCursDayNull
-import com.example.rehabilitation.prefDayAfter
-import com.example.rehabilitation.prefDayBefore
-import com.example.rehabilitation.prefPauseDay
-import com.example.rehabilitation.prefSportCursDayNumber
-import com.example.rehabilitation.prefSportMaxCount
-import com.example.rehabilitation.prefSportPlusCount
-import com.example.rehabilitation.questionnaire_after
-//import com.example.rehabilitation.questionnaire
-import com.example.rehabilitation.questionnaire_before
-import java.time.LocalDate
-
-
-class QBeforeFragment : Fragment() {
- private lateinit var binding: FragmentQBeforeBinding
- var one = ""
- var two = ""
- var thee = ""
- var four = ""
- var five = ""
- var six = ""
- var seven = ""
- var eight = ""
- var nine = ""
-
- var eleven = ""
- var twelve = ""
-
-
-
-
-
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
- // Inflate the layout for this fragment
- binding = FragmentQBeforeBinding.inflate(layoutInflater, container, false)
- return binding.root
- }
-
- companion object {
- fun newInstance() = QBeforeFragment()
- }
-
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
- // data_prefB()
- // onInkrementB()
- saveSportPlusCount(0)
- saveSportMaxCount(0)
- //Количество пройденых дней
- prefCursDay = activity?.getSharedPreferences("SportCursDay", Context.MODE_PRIVATE)
- SportCursDay = prefCursDay?.getInt("scd", 0)!!
-
- //Какой сегодня курс
- prefSportCursDayNumber = activity?.getSharedPreferences("SportCursDayNumber", Context.MODE_PRIVATE)
- SportCursDayNumber = prefSportCursDayNumber?.getInt("scdn", 0)!!
-
- prefCursDangerDayBefore = activity?.getSharedPreferences("CursDangerDayBefore", Context.MODE_PRIVATE)
- SportCursDayDangerBefore = prefCursDangerDayBefore?.getInt("cddb", 0)!!
-
-
- prefCursDayNull = activity?.getSharedPreferences("CursDayNull", Context.MODE_PRIVATE)
- CursDayNull = prefCursDayNull?.getString("cdn", "")!!
-
- prefCursDangerDayAfter = activity?.getSharedPreferences("CursDangerDayAfter", Context.MODE_PRIVATE)
- SportCursDayDangerAfter = prefCursDangerDayAfter?.getInt("cdda", 0)!!
-
- //Для количества тренирвоок
- prefSportPlusCount = activity?.getSharedPreferences("SportPlusCount", Context.MODE_PRIVATE)
- SportPlusCount = prefSportPlusCount?.getInt("spc", 0)!!
- prefSportMaxCount = activity?.getSharedPreferences("SportMaxCount", Context.MODE_PRIVATE)
- SportMaxCount = prefSportMaxCount?.getInt("smc", 0)!!
-
-
- //Для пауз и блоков
- prefPauseDay = activity?.getSharedPreferences("PauseDay", Context.MODE_PRIVATE)
- PauseDay= prefPauseDay?.getString("pd", "")!!
- prefBlock = activity?.getSharedPreferences("Block", Context.MODE_PRIVATE)
- Block = prefBlock?.getString("b", "")!!
-
- //Для анкет, какие выполнены
- prefDayBefore = activity?.getSharedPreferences("DayBefore", Context.MODE_PRIVATE)
- DayBefore = prefDayBefore?.getString("db", "")!!
- prefDayAfter = activity?.getSharedPreferences("DayAfter", Context.MODE_PRIVATE)
- DayAfter = prefDayAfter?.getString("da", "")!!
-
- buttenAdd()
-
- //Выход
- binding.btnExitQB.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()
- ?.replace(R.id.placeHolderFragment, SceduleFragment.newInstance())?.commit()
- }
-
- //Сохраняем результат
- binding.btnSaveQuestionnaire.setOnClickListener {
- Log.d("lookDanger","lookDanger")
- Log.d("SportCursDayDangerAfter","${SportCursDayDangerAfter}")
- Log.d("SportCursDay","${SportCursDay}")
- Log.d("SportCursDayDangerBefore","${SportCursDayDangerBefore}")
- Log.d("btnSaveQuestionnaire","btnSaveQuestionnaire")
- if (one != "" && two != "" && thee != "" && four != "" && five != "" && six != "" && seven != "" && eight != "" && nine != "") {
- if(one >= "6") {
- AlertDialog.Builder(requireContext())
- .setTitle("Анкета")
- .setMessage("Уверены ли Вы в выбранных ответах на вопросы анкеты? Халатное отношение к вопросам анкеты приведет к блокировке комплекса")
- .setNeutralButton("Подтвердить") { dialog, whichButton ->
- addQuestionnaire()
- }
- .setNegativeButton("Отмена") { dialog, whichButton ->
-
- }
- .show()
- }
- else{
- addQuestionnaire()
- }
-
- } else {
- Toast(requireContext()).showCustomInfoToast(
- "Не все пункты выбраны",
- requireActivity()
- )
- }
-
-
- }
-
-
- }
-
- //Функция
- fun addQuestionnaire(){
- visibleLoad()
-
- clearSportPlusCount()
- clearSportMaxCount()
- if(one >= "6"){
- saveBlock(LocalDate.now().plusDays(3).toString())
- saveSportCursDayDangerBefore(2)
- addQuestianBefore()
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.placeHolderFragment, SceduleFragment.newInstance())?.commit()
- }
- else if (four == "1" || five == "1" || six == "1"|| seven == "1"||nine == "1") {
- savePauseDay(LocalDate.now().plusDays(1).toString())
- saveSportCursDayDangerBefore(1)
- addQuestianBefore()
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.placeHolderFragment, SceduleFragment.newInstance())?.commit()
- }
- else {//Если все хорошо
- if(SportCursDayDangerBefore == 0 && SportCursDayDangerAfter == 0){
- Log.i("SportCursDay","${SportCursDay}")
- Log.i("SportCursDayNumber","${SportCursDayNumber}")
-
- saveCursDayNumber(SportCursDayNumber+1)
- saveSportCursDay(SportCursDay+1)
- addDaySport(SportCursDayNumber)
-
- }
- else if(SportCursDayDangerBefore == 2 || SportCursDayDangerAfter == 2 ){
- saveSportCursDay(SportCursDay+1)
- Log.i("SportCursDay","${SportCursDay}")
- Log.i("SportCursDayNumber","${SportCursDayNumber}")
- if(SportCursDayNumber == 0){
- addDaySport(1)
- saveCursDayNumber(SportCursDayNumber+1)
- }
- else if(SportCursDayNumber==1){
- addDaySport(SportCursDayNumber)
- }
- else if(SportCursDayNumber==2){
- saveCursDayNumber(SportCursDayNumber-1)
- addDaySport(SportCursDayNumber)
- }
- else if(SportCursDayNumber==3){
- saveCursDayNumber(SportCursDayNumber-1)
- addDaySport(SportCursDayNumber)
- }
- else if(SportCursDayNumber==4){
- saveCursDayNumber(SportCursDayNumber-1)
- addDaySport(SportCursDayNumber)
- }
- else if(SportCursDayNumber==5){
- saveCursDayNumber(SportCursDayNumber-1)
- addDaySport(SportCursDayNumber)
- }
- else if(SportCursDayNumber==6){
- saveCursDayNumber(SportCursDayNumber-1)
- addDaySport(SportCursDayNumber)
- }
- else if(SportCursDayNumber==7){
- saveCursDayNumber(SportCursDayNumber-1)
- addDaySport(6)
- }
- else if(SportCursDayNumber==8){
- saveCursDayNumber(SportCursDayNumber-1)
- addDaySport(6)
- }
- else if(SportCursDayNumber==9){
- saveCursDayNumber(SportCursDayNumber-1)
- addDaySport(6)
- }
- else if(SportCursDayNumber==10){
- saveCursDayNumber(SportCursDayNumber-1)
- addDaySport(6)
- }
- else if(SportCursDayNumber==11){
- saveCursDayNumber(SportCursDayNumber-1)
- addDaySport(6)
- }
- else if(SportCursDayNumber==12){
- saveCursDayNumber(SportCursDayNumber-1)
- addDaySport(6)
- }
- else if(SportCursDayNumber==13){
- saveCursDayNumber(SportCursDayNumber-1)
- addDaySport(6)
- }
- else if(SportCursDayNumber==14){
- saveCursDayNumber(SportCursDayNumber-1)
- addDaySport(6)
- }
- }
- else if(SportCursDayDangerBefore == 1 || SportCursDayDangerAfter == 1 ){
- Log.i("SportCursDayDangerBefore1","${SportCursDayDangerBefore}")
- Log.i("SportCursDayDangerAfter1","${SportCursDayDangerAfter}")
-
- saveSportCursDay(SportCursDay+1)
- Log.i("SportCursDay","${SportCursDay}")
- Log.i("SportCursDayNumber","${SportCursDayNumber}")
- if(SportCursDayNumber == 0){
- addDaySport(1)
- saveCursDayNumber(SportCursDayNumber+1)
- }
- else if(SportCursDayNumber==1){
- addDaySport(SportCursDayNumber)
- }
- else if(SportCursDayNumber==2){
- saveCursDayNumber(SportCursDayNumber-1)
- addDaySport(SportCursDayNumber)
- }
- else if(SportCursDayNumber==3){
- saveCursDayNumber(SportCursDayNumber-1)
- addDaySport(SportCursDayNumber)
- }
- else if(SportCursDayNumber==4){
- saveCursDayNumber(SportCursDayNumber-1)
- addDaySport(SportCursDayNumber)
- }
- else if(SportCursDayNumber==5){
- saveCursDayNumber(SportCursDayNumber-1)
- addDaySport(SportCursDayNumber)
- }
- else if(SportCursDayNumber==6){
- saveCursDayNumber(SportCursDayNumber-1)
- addDaySport(SportCursDayNumber)
- }
- else if(SportCursDayNumber==7){
- saveCursDayNumber(SportCursDayNumber-1)
- addDaySport(6)
- }
- else if(SportCursDayNumber==8){
- saveCursDayNumber(SportCursDayNumber-1)
- addDaySport(6)
- }
- else if(SportCursDayNumber==9){
- saveCursDayNumber(SportCursDayNumber-1)
- addDaySport(6)
- }
- else if(SportCursDayNumber==10){
- saveCursDayNumber(SportCursDayNumber-1)
- addDaySport(6)
- }
- else if(SportCursDayNumber==11){
- saveCursDayNumber(SportCursDayNumber-1)
- addDaySport(6)
- }
- else if(SportCursDayNumber==12){
- saveCursDayNumber(SportCursDayNumber-1)
- addDaySport(6)
- }
- else if(SportCursDayNumber==13){
- saveCursDayNumber(SportCursDayNumber-1)
- addDaySport(6)
- }
- else if(SportCursDayNumber==14){
- saveCursDayNumber(SportCursDayNumber-1)
- addDaySport(6)
- }
-
- }
-
- }
-
- }
-
-
- fun visibleLoad(){
- binding.CLMainBefore.visibility = View.GONE
- binding.CLLoad.visibility = View.VISIBLE
- }
- fun visibleBefore(){
- binding.CLMainBefore.visibility = View.VISIBLE
- binding.CLLoad.visibility = View.GONE
- }
-
- fun lookDanger(){
-
-
-
- if (SportCursDayDangerBefore == 1) {
- if (SportCursDay == 1) {
- addDaySport(SportCursDay)
- } else if (SportCursDay <= 7) {
- addDaySport(SportCursDay - 1)
- } else if (SportCursDay in 8..15) {
- addDaySport(6)
- }
- }
- else if(SportCursDayDangerAfter == 0 && SportCursDayDangerBefore == 0) {
- addDaySport(SportCursDay)
- }
- else if (SportCursDayDangerAfter == 2) {
- Toast(requireContext()).showCustomInfoToast("Обратитесь к врачу", requireActivity())
- addQuestianBefore()
- }
-
- }
-
-
-
- //Вызываем нужное заполнение данных
- fun addDaySport(DaySport:Int) {
- Log.d("addDaySport","${DaySport}")
- when(DaySport) {
- 1->addSportCyrs1()
- 2->addSportCyrs2()
- 3->addSportCyrs3()
- 4->addSportCyrs4()
- 5->addSportCyrs5()
- 6->addSportCyrs6()
- 7->addSportCyrs7()
- 8->addSportCyrs7()
- 9->addSportCyrs7()
- 10->addSportCyrs7()
- 11->addSportCyrs7()
- 12->addSportCyrs7()
- 13->addSportCyrs7()
- 14->addSportCyrs7()
- 15->addSportCyrs7()
- }
- }
-
- private fun addSportCyrs1() {
- Log.d("addSportCyrs1","addSportCyrs1")
- val db = MainDB.getDB(requireContext())
- val arr1 = arrayOf("c1","c2","c3","c4","c8","c10","c14","c16","c15","c7","b1","b2","b3","j1","j2","j4","j3","j5","j6","j8")
- val max = 19
- for (j in 0..max) {
- val item = ItemDaySport(
- null,
- LocalDate.now().toString(),
- arr1[j],
- 0,
- 1
- )
- Thread {
- db.getDaoDaySport().insertItemDaySport(item)
- }.start()
- }
- saveCursDayNull(LocalDate.now().toString())
- saveSportPlusCount(0)
- saveSportMaxCount(max+1)
- clearDayAfter()
- clearSportCursDayDangerBefore()
- clearSportCursDayDangerAfter()
- addQuestianBefore()
- }
- private fun addSportCyrs2() {
- val db = MainDB.getDB(requireContext())
-
- val arr2 = arrayOf("c1","c2","c3","c4","c8","c9","c5","c10","c14","c16","c15","c12","c7","b1","b2","b3","j1","j2","j4","j3","j5","j6","j8")
- val max = 22
- for (j in 0..max) {
- val item = ItemDaySport(
- null,
- LocalDate.now().toString(),
- arr2[j],
- 0,
- 1
- )
- Thread {
- db.getDaoDaySport().insertItemDaySport(item)
- }.start()
- }
- saveCursDayNull(LocalDate.now().toString())
- saveSportPlusCount(0)
- saveSportMaxCount(max+1)
- clearDayAfter()
- clearSportCursDayDangerBefore()
- clearSportCursDayDangerAfter()
- addQuestianBefore()
- }
-
- private fun addSportCyrs3() {
- val db = MainDB.getDB(requireContext())
- val arr3 = arrayOf("c1","c2","c3","c4","c8","c9","c5","c6","c14","c16","c15","c12","c13","c10","c7","b1","b2","b3","j1","j2","j4","j3","j5","j6","j8")
- val max = 24
- for (j in 0..max) {
- val item = ItemDaySport(
- null,
- LocalDate.now().toString(),
- arr3[j],
- 0,
- 1
- )
- Thread {
- db.getDaoDaySport().insertItemDaySport(item)
- }.start()
- }
- saveCursDayNull(LocalDate.now().toString())
- saveSportPlusCount(0)
- saveSportMaxCount(max+1)
- clearDayAfter()
- clearSportCursDayDangerBefore()
- clearSportCursDayDangerAfter()
- addQuestianBefore()
- }
-
- private fun addSportCyrs4() {
- val db = MainDB.getDB(requireContext())
- val arr4 = arrayOf("c1","c2","c3","c4","c8","c9","c5","c6","c14","c16","c17","c18","c15","c12","c13","c10","c7","b1","b2","b3","j1","j2","j4","j3","j5","j6","j8")
- val max = 26
- for (j in 0..max) {
- val item = ItemDaySport(
- null,
- LocalDate.now().toString(),
- arr4[j],
- 0,
- 1
- )
- Thread {
- db.getDaoDaySport().insertItemDaySport(item)
- }.start()
- }
- saveCursDayNull(LocalDate.now().toString())
- saveSportPlusCount(0)
- saveSportMaxCount(max+1)
- clearDayAfter()
- clearSportCursDayDangerBefore()
- clearSportCursDayDangerAfter()
- addQuestianBefore()
- }
-
- private fun addSportCyrs5() {
- val db = MainDB.getDB(requireContext())
- val arr5 = arrayOf("c1","c2","c3","c4","c8","c9","c5","c6","c14","c16","c17","c18","c15","c12","c13","c10","c7","b1","b2","b3","b4","j1","j2","j4","j3","j5","j6","j8","j9")
- val max = 28
- for (j in 0..max) {
- val item = ItemDaySport(
- null,
- LocalDate.now().toString(),
- arr5[j],
- 0,
- 1
- )
- Thread {
- db.getDaoDaySport().insertItemDaySport(item)
- }.start()
- }
- saveCursDayNull(LocalDate.now().toString())
- saveSportPlusCount(0)
- saveSportMaxCount(max+1)
- clearDayAfter()
- clearSportCursDayDangerBefore()
- clearSportCursDayDangerAfter()
- addQuestianBefore()
- }
-
- private fun addSportCyrs6() {
- val db = MainDB.getDB(requireContext())
- val arr6 = arrayOf("c1","c2","c3","c4","c8","c9","c5","c6","c14","c16","c17","c18","c15","c12","c13","c10","c7","b1","b2","b3","b4","j1","j2","j4","j3","j5","j6","j8","j10","j9")
- val max = 29
- for (j in 0..max) {
- val item = ItemDaySport(
- null,
- LocalDate.now().toString(),
- arr6[j],
- 0,
- 1
- )
- Thread {
- db.getDaoDaySport().insertItemDaySport(item)
- }.start()
- }
- saveCursDayNull(LocalDate.now().toString())
- saveSportPlusCount(0)
- saveSportMaxCount(max+1)
- clearDayAfter()
- clearSportCursDayDangerBefore()
- clearSportCursDayDangerAfter()
- addQuestianBefore()
- }
-
- private fun addSportCyrs7() {
- val db = MainDB.getDB(requireContext())
- val arr7 = arrayOf("c1","c2","c3","c4","c8","c9","c5","c6","c7","c10","c14","c16","c17","c18","c15","c12","c13","c11","b1","b2","b3","b4","j1","j2","j4","j3","j5","j6","j7","j8","j10","j9")
- val max = 31
- for (j in 0..max) {
- val item = ItemDaySport(
- null,
- LocalDate.now().toString(),
- arr7[j],
- 0,
- 1
- )
- Thread {
- db.getDaoDaySport().insertItemDaySport(item)
- }.start()
- }
- saveCursDayNull(LocalDate.now().toString())
- saveSportPlusCount(0)
- saveSportMaxCount(max+1)
- clearDayAfter()
- clearSportCursDayDangerBefore()
- clearSportCursDayDangerAfter()
- addQuestianBefore()
- }
-
- fun saveCursDayNull(cdn: String) {
- val edit = prefCursDayNull?.edit()
- edit?.putString("cdn", cdn)
- edit?.apply()
- CursDayNull = cdn
- }
- fun clearCursDayNull() {
- val edit = prefCursDayNull?.edit()
- edit?.clear()
- edit?.apply()
- CursDayNull = ""
- }
-
- fun addQuestianBefore(){
- val db = MainDB.getDB(requireContext())
-
- val item = ItemBeforeQuestionnaire(
- null,
- one,
- two,
- thee,
- four,
- five,
- six,
- seven,
- eight,
- nine,
- LocalDate.now().toString()
- )
- Thread {
- db.getDaoQB().insertBQ(item)
- }.start()
- questionnaire_before = LocalDate.now().toString()
- saveDayBefore(LocalDate.now().toString())
- //QBSaveDataB(LocalDate.now().toString())
- activity?.supportFragmentManager?.beginTransaction()
- ?.replace(R.id.placeHolderFragment, SceduleFragment.newInstance())?.commit()
- //Log.d("aaaaaa",questionnaire?.getString("QB", "")!!.toString())
- daySpoartOpen = daySpoartOpenKey
- }
-
- fun saveCursDayNumber(scdn: Int) {
- val edit = prefSportCursDayNumber?.edit()
- edit?.putInt("scdn", scdn)
- edit?.apply()
- SportCursDayNumber = scdn
- }
- fun clearCursDayNumber() {
- val edit = prefSportCursDayNumber?.edit()
- edit?.clear()
- edit?.apply()
- SportCursDayNumber = 0
- }
-
- fun saveDayBefore(db: String) {
- val edit = prefDayBefore?.edit()
- edit?.putString("db", db)
- edit?.apply()
- DayBefore = db
- }
- fun clearDayBefore() {
- val edit = prefDayBefore?.edit()
- edit?.clear()
- edit?.apply()
- DayBefore = ""
- }
-
- fun saveDayAfter(da: String) {
- val edit = prefDayAfter?.edit()
- edit?.putString("da", da)
- edit?.apply()
- DayAfter = da
- }
- fun clearDayAfter() {
- val edit = prefDayAfter?.edit()
- edit?.clear()
- edit?.apply()
- DayAfter = ""
- }
-
- fun savePauseDay(pd: String) {
- val edit = prefPauseDay?.edit()
- edit?.putString("pd", pd)
- edit?.apply()
- PauseDay = pd
- }
- fun clearPauseDay() {
- val edit = prefPauseDay?.edit()
- edit?.clear()
- edit?.apply()
- PauseDay = ""
- }
-
- fun saveBlock(b: String) {
- val edit = prefBlock?.edit()
- edit?.putString("b", b)
- edit?.apply()
- Block = b
- }
- fun clearBlock() {
- val edit = prefBlock?.edit()
- edit?.clear()
- edit?.apply()
- Block = ""
- }
-
-
- fun saveSportPlusCount(spc: Int) {
- val edit = prefSportPlusCount?.edit()
- edit?.putInt("spc", spc)
- edit?.apply()
- SportPlusCount = spc
- }
- fun clearSportPlusCount() {
- val edit = prefSportPlusCount?.edit()
- edit?.clear()
- edit?.apply()
- SportPlusCount = 0
- }
-
-
- fun saveSportMaxCount(smc: Int) {
- val edit = prefSportMaxCount?.edit()
- edit?.putInt("smc", smc)
- edit?.apply()
- SportPlusCount = smc
- }
-
- fun clearSportMaxCount() {
- val edit = prefSportMaxCount?.edit()
- edit?.clear()
- edit?.apply()
- SportMaxCount = 0
- }
-
-
-
-
- fun saveSportCursDay(scd: Int) {
- val edit = prefCursDay?.edit()
- edit?.putInt("scd", scd)
- edit?.apply()
- SportCursDay = scd
- }
-
- fun clearSportCursDay() {
- val edit = prefCursDay?.edit()
- edit?.clear()
- edit?.apply()
- SportCursDay = 0
- }
-
- fun saveSportCursDayDangerBefore(cddb: Int) {
- val edit = prefCursDangerDayBefore?.edit()
- edit?.putInt("cddb", cddb)
- edit?.apply()
- SportCursDayDangerBefore = cddb
- }
-
- fun clearSportCursDayDangerBefore() {
- val edit = prefCursDangerDayBefore?.edit()
- edit?.clear()
- edit?.apply()
- SportCursDayDangerBefore = 0
- }
-
- fun saveSportCursDayDangerAfter(cdda: Int) {
- val edit = prefCursDangerDayAfter?.edit()
- edit?.putInt("cdda", cdda)
- edit?.apply()
- SportCursDayDangerAfter = cdda
- }
-
- fun clearSportCursDayDangerAfter() {
- val edit = prefCursDangerDayAfter?.edit()
- edit?.clear()
- edit?.apply()
- SportCursDayDangerAfter = 0
- }
-
- private fun buttenAdd() {
- buttenAdd1()
- buttenAdd1_2()
- buttenAdd2()
- buttenAdd3()
- buttenAdd4()
- buttenAdd5()
- buttenAdd6()
- buttenAdd7()
- buttenAdd8()
- buttenAdd9()
-
- }
-
-
- private fun buttenAdd1() {
- binding.CVQyes1.setOnClickListener {
- binding.CLQ112.visibility = View.VISIBLE
- binding.CVQyes1.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- binding.CVQno1.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
-
- }
- binding.CVQno1.setOnClickListener {
- binding.CLQ112.visibility = View.GONE
- binding.CVQyes1.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQno1.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- one = "0"
- }
- }
-
-
- private fun buttenAdd1_2() {
- binding.CVQ10.setOnClickListener {
- binding.CVQ10.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- one = "0"
- }
- binding.CVQ11.setOnClickListener {
- binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ11.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- one = "1"
- }
- binding.CVQ12.setOnClickListener {
- binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ12.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- one = "2"
- }
- binding.CVQ13.setOnClickListener {
- binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ13.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- one = "3"
- }
- binding.CVQ14.setOnClickListener {
- binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ14.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- one = "4"
-
- }
- binding.CVQ15.setOnClickListener {
- binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ15.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- one = "5"
- }
- binding.CVQ16.setOnClickListener {
- binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ16.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- one = "6"
- }
- binding.CVQ17.setOnClickListener {
- binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ17.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- one = "7"
- }
- binding.CVQ18.setOnClickListener {
- binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ18.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- one = "8"
- }
- binding.CVQ19.setOnClickListener {
- binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ19.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- one = "9"
- }
- binding.CVQ110.setOnClickListener {
- binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQ110.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- one = "10"
- }
- }
-
- private fun buttenAdd2() {
- binding.CVQyes2.setOnClickListener {
- binding.CVQyes2.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- binding.CVQno2.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- two = "1"
- }
- binding.CVQno2.setOnClickListener {
- binding.CVQyes2.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQno2.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- two = "0"
- }
- }
-
- private fun buttenAdd3() {
- binding.CVQyes3.setOnClickListener {
- binding.CVQyes3.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- binding.CVQno3.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- thee = "1"
- }
- binding.CVQno3.setOnClickListener {
- binding.CVQyes3.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQno3.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- thee = "0"
- }
- }
-
- private fun buttenAdd4() {
- binding.CVQyes4.setOnClickListener {
- binding.CVQyes4.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- binding.CVQno4.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- four = "1"
- }
- binding.CVQno4.setOnClickListener {
- binding.CVQyes4.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQno4.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- four = "0"
- }
- }
-
- private fun buttenAdd5() {
- binding.CVQyes5.setOnClickListener {
- binding.CVQyes5.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- binding.CVQno5.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- five = "1"
- }
- binding.CVQno5.setOnClickListener {
- binding.CVQyes5.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQno5.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- five = "0"
- }
- }
-
- private fun buttenAdd6() {
- binding.CVQyes6.setOnClickListener {
- binding.CVQyes6.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- binding.CVQno6.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- six = "1"
- }
- binding.CVQno6.setOnClickListener {
- binding.CVQyes6.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQno6.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- six = "0"
- }
- }
-
- private fun buttenAdd7() {
- binding.CVQyes7.setOnClickListener {
- binding.CVQyes7.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- binding.CVQno7.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- seven = "1"
- }
- binding.CVQno7.setOnClickListener {
- binding.CVQyes7.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQno7.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- seven = "0"
- }
- }
-
- private fun buttenAdd8() {
- binding.CVQyes8.setOnClickListener {
- binding.CVQyes8.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- binding.CVQno8.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- eight = "1"
- }
- binding.CVQno8.setOnClickListener {
- binding.CVQyes8.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQno8.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- eight = "0"
- }
- }
-
- private fun buttenAdd9() {
- binding.CVQyes9.setOnClickListener {
- binding.CVQyes9.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- binding.CVQno9.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- nine = "1"
- }
- binding.CVQno9.setOnClickListener {
- binding.CVQyes9.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- binding.CVQno9.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- nine = "0"
- }
- }
-
-
-// fun QBSaveDataB(date: String) {
-// val QB = questionnaire?.edit()
-// QB?.putString("QB", date)
-// QB?.apply()
-// }
-//
-// //Инициализация хранилища(для токена)
-// fun data_prefB() {
-// questionnaire = activity?.getSharedPreferences("QB", Context.MODE_PRIVATE)
-// QBC = questionnaire?.getString("QB", "")!!
-// QBSaveDataB(QBC)
-// }
-//
-// fun onInkrementB() {
-// Log.d("fsd", "QBC - $QBC")
-// Log.d("fsd", "questionnaire_before - $questionnaire_before")
-// //Не сохранять пустоту если токен уже лежит, так как tokenClass при перезаходе в приложение очишается и нужно проверять если counter равен пустоте, то сохранять токен, иначе не сохранять
-// if (questionnaire_before != "" && QBC == "") {
-// QBC = questionnaire_before
-//
-// //Сохранение результата
-// QBSaveDataB(QBC)
-//
-// } else {//Иначе передаем в общую переменную tokenClass данные храняшиеся в counter
-// questionnaire_before = QBC
-// }
-// }
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/SceduleFragment.kt b/app/src/main/java/com/example/rehabilitation/User/fragmentUser/SceduleFragment.kt
deleted file mode 100644
index c8a7d0f..0000000
--- a/app/src/main/java/com/example/rehabilitation/User/fragmentUser/SceduleFragment.kt
+++ /dev/null
@@ -1,997 +0,0 @@
-package com.example.rehabilitation.User.fragmentUser
-
-import android.annotation.SuppressLint
-import android.content.Context
-import android.graphics.Color
-import android.media.MediaPlayer
-import android.os.Bundle
-import android.os.CountDownTimer
-import android.util.Log
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import android.widget.Toast
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.activityViewModels
-import androidx.lifecycle.asLiveData
-import androidx.recyclerview.widget.GridLayoutManager
-import androidx.recyclerview.widget.LinearLayoutManager
-import androidx.recyclerview.widget.RecyclerView
-import com.example.admin.Toast.showCustomInfoToast
-import com.example.admin.Toast.showCustomNiceToast
-import com.example.rehabilitation.Block
-import com.example.rehabilitation.CursDayNull
-import com.example.rehabilitation.DayAfter
-import com.example.rehabilitation.DayBefore
-import com.example.rehabilitation.PauseDay
-import com.example.rehabilitation.R
-import com.example.rehabilitation.Room.MainDB
-import com.example.rehabilitation.Sport15Day
-import com.example.rehabilitation.Sport15DayAll
-import com.example.rehabilitation.Sport7Day
-import com.example.rehabilitation.SportCursDay
-import com.example.rehabilitation.SportCursDayDangerAfter
-import com.example.rehabilitation.SportCursDayDangerBefore
-import com.example.rehabilitation.SportCursDayNumber
-import com.example.rehabilitation.SportMaxCount
-import com.example.rehabilitation.SportPlusCount
-import com.example.rehabilitation.SportUserTrue
-import com.example.rehabilitation.User.fragmentUser.QuestionnaireFragment.QAfterFragment
-import com.example.rehabilitation.User.fragmentUser.QuestionnaireFragment.QBeforeFragment
-import com.example.rehabilitation.databinding.FragmentSceduleBinding
-import com.example.rehabilitation.listImageSport
-import com.example.rehabilitation.model_adapter.DataModel
-import com.example.rehabilitation.model_adapter.Day.DayAdapter
-import com.example.rehabilitation.model_adapter.Day.DayListModel
-import com.example.rehabilitation.model_adapter.Day.DayModel
-import com.example.rehabilitation.model_adapter.Image.ImageSportAdapter
-import com.example.rehabilitation.model_adapter.Image.ImageSportModel
-import com.example.rehabilitation.model_adapter.Month.MonthModel
-import com.example.rehabilitation.prefBlock
-import com.example.rehabilitation.prefCursDangerDayAfter
-import com.example.rehabilitation.prefCursDangerDayBefore
-import com.example.rehabilitation.prefCursDay
-import com.example.rehabilitation.prefCursDayNull
-import com.example.rehabilitation.prefDayAfter
-import com.example.rehabilitation.prefDayBefore
-import com.example.rehabilitation.prefPauseDay
-import com.example.rehabilitation.prefSport
-import com.example.rehabilitation.prefSport15Day
-import com.example.rehabilitation.prefSport15DayAll
-import com.example.rehabilitation.prefSport7Day
-import com.example.rehabilitation.prefSportCursDayNumber
-import com.example.rehabilitation.prefSportMaxCount
-import com.example.rehabilitation.prefSportPlusCount
-import com.example.sqlitework.dip.MainViewModel
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.GlobalScope
-import kotlinx.coroutines.launch
-import java.time.LocalDate
-
-
-class SceduleFragment(/*var taskItem: TaskItem?*/) : Fragment()/*, MonthAdapter.Listener*/,
- DayAdapter.Listener {
- private lateinit var binding: FragmentSceduleBinding
-
- // private lateinit var taskViewModel: TaskViewModel
- private val model: MainViewModel by activityViewModels()//Инициализировали класс
-
- private val dataModel: DataModel by activityViewModels()//Для передачи данных
-
- // lateinit var adapterMonth: MonthAdapter
- lateinit var adapterDay: DayAdapter
- lateinit var adapterImage: ImageSportAdapter
-
-
- //Количество выполненных тренировок
-
- //Хранение id для подтверждения упражнения
- var idDaySport = 0
-
- //Выбранный день
- var dayCard = ""
-
- //Переключения вида или список или календарь
- var calendar_list = 0
-
- //Сегодняшний день
- var date = LocalDate.now().toString()
-
- //Для хранения при нажатие на один из дней
- var mothModel: MonthModel? = null
-
- //Метроном
- var mMediaPlayer: MediaPlayer? = null
- var metronom = false
-
- //Таймер для открытия упражнения
- var time: Long = 0
- var times = 0
- private lateinit var scrollListener: RecyclerView.OnScrollListener
- private val lastVisibleItemPosition: Int get() = binding.rcViewImage.layoutManager.hashCode()//По вертикали будет выводить по умолчанию)
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
- binding = FragmentSceduleBinding.inflate(layoutInflater, container, false)
- return binding.root
- }
-
-// var adsad = 0
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
- Log.d("111111111", "11111111111111111111111111111")
-
- prefCursDay = activity?.getSharedPreferences("SportCursDay", Context.MODE_PRIVATE)
- SportCursDay = prefCursDay?.getInt("scd", 0)!!
-
- prefCursDangerDayBefore = activity?.getSharedPreferences("CursDangerDayBefore", Context.MODE_PRIVATE)
- SportCursDayDangerBefore = prefCursDangerDayBefore?.getInt("cddb", 0)!!
- prefCursDangerDayAfter = activity?.getSharedPreferences("CursDangerDayAfter", Context.MODE_PRIVATE)
- SportCursDayDangerAfter = prefCursDangerDayAfter?.getInt("cdda", 0)!!
-
- //Какой сегодня курс
- prefSportCursDayNumber = activity?.getSharedPreferences("SportCursDayNumber", Context.MODE_PRIVATE)
- SportCursDayNumber = prefSportCursDayNumber?.getInt("scdn", 0)!!
-
- //Пройдено ли 15 дне и отправен отчет
- prefSport15DayAll = activity?.getSharedPreferences("Sport15DayAll", Context.MODE_PRIVATE)
- Sport15DayAll = prefSport15DayAll?.getInt("s15da", 0)!!
-
- //Отчет на 15 день
- prefSport15Day = activity?.getSharedPreferences("Sport15Day", Context.MODE_PRIVATE)
- Sport15Day = prefSport15Day?.getInt("s15d", 0)!!
-
- //Отчет на 7 день
- prefSport7Day = activity?.getSharedPreferences("Sport7Day", Context.MODE_PRIVATE)
- Sport7Day = prefSport7Day?.getInt("s7d", 0)!!
-
-
- prefCursDayNull = activity?.getSharedPreferences("CursDayNull", Context.MODE_PRIVATE)
- CursDayNull = prefCursDayNull?.getString("cdn", "")!!
-
- //Для количества тренирвоок
- prefSportPlusCount = activity?.getSharedPreferences("SportPlusCount", Context.MODE_PRIVATE)
- SportPlusCount = prefSportPlusCount?.getInt("spc", 0)!!
- prefSportMaxCount = activity?.getSharedPreferences("SportMaxCount", Context.MODE_PRIVATE)
- SportMaxCount = prefSportMaxCount?.getInt("smc", 0)!!
-
-
- //Для пауз и блоков
- prefPauseDay = activity?.getSharedPreferences("PauseDay", Context.MODE_PRIVATE)
- PauseDay = prefPauseDay?.getString("pd", "")!!
- prefBlock = activity?.getSharedPreferences("Block", Context.MODE_PRIVATE)
- Block = prefBlock?.getString("b", "")!!
-
- //Для анкет, какие выполнены
- prefDayBefore = activity?.getSharedPreferences("DayBefore", Context.MODE_PRIVATE)
- DayBefore = prefDayBefore?.getString("db", "")!!
- prefDayAfter = activity?.getSharedPreferences("DayAfter", Context.MODE_PRIVATE)
- DayAfter = prefDayAfter?.getString("da", "")!!
-
- //Разрешение на начинание курса, в случае если создан список на n дней
- prefSport = activity?.getSharedPreferences("SportUserTrue", Context.MODE_PRIVATE)
- SportUserTrue = prefSport?.getInt("spt", 0)!!
- Log.i("SportUserTrue",SportUserTrue.toString())
- Log.d("lookDanger","lookDanger")
- Log.d("SportCursDayDangerAfter","${SportCursDayDangerAfter}")
- Log.d("SportCursDay","${SportCursDay}")
- Log.d("SportCursDayDangerBefore","${SportCursDayDangerBefore}")
- Log.d("btnSaveQuestionnaire","btnSaveQuestionnaire")
- binding.button2.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()
- ?.replace(R.id.placeHolderFragment, QBeforeFragment.newInstance())?.commit()
-
- }
-
- binding.button3.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()
- ?.replace(R.id.placeHolderFragment, QAfterFragment.newInstance())?.commit()
-
- }
-
- initRcViewDay()
- initRcViewImage()
- liveReadOrderCurrent()
-
-
- model.liveDayList.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
- adapterDay.submitList(it)//Напрямую переадем созданный список в adapter(ProductAdapter)
- }
-
- model.liveImageList.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
- adapterImage.submitList(it)//Напрямую переадем созданный список в adapter(ProductAdapter)
- binding.LoadImage.visibility = View.GONE
- listImageSport = it
-
- }
-
- //Drk.xtybt vtnhjyjvf
- binding.btnMp3.setOnClickListener {
- if(metronom == true){
- metronom = false
- stopSound()
- binding.btnMp3.setBackgroundResource(android.R.drawable.ic_media_play)
-
- }
- else{
- metronom = true
- playSound()
- binding.btnMp3.setBackgroundResource(android.R.drawable.ic_media_pause)
- }
-
- }
- //Переход для отправки отчетности за 7 дней
- binding.btnProgres7.setOnClickListener {
- dataModel.fragmentMenu.value = R.id.progress
- }
- //Переход для отправки отчетности за 15 дней
- binding.btnProgres15.setOnClickListener {
- dataModel.fragmentMenu.value = R.id.progress
- }
-
- addButton()
- outputSportUnder_the_conditions()
-
- binding.button5.setOnClickListener {
- ClearRCView()
- }
-
- Log.i("111111212222","111112211111")
- Log.i("DayBefore","${DayBefore}")
- Log.i("DayAfter","${DayAfter}")
- Log.i("SportPlusCount","${SportPlusCount}")
- Log.i("SportMaxCount","${SportMaxCount}")
- Log.i("SportCursDay","${SportCursDay}")
- Log.i("DayBefore","${DayBefore}")
- Log.i("DayAfter","${DayAfter}")
- Log.i("Sport7Day","${Sport7Day}")
- Log.i("Sport15Day","${Sport15Day}")
- Log.i("Sport15DayAll","${Sport15DayAll}")
- Log.i("SportCursDayNumber","${SportCursDayNumber}")
-
- binding.rcViewImage.addOnScrollListener(object : RecyclerView.OnScrollListener() {
- override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
- super.onScrollStateChanged(recyclerView, newState)
- if (newState == RecyclerView.SCROLL_STATE_IDLE) {
- Log.i("listImageSport","${listImageSport}")
- initRcViewImage()
- adapterImage.submitList(listImageSport)
-
- }
- }
- })
-
-// var loading = true
-// var pastItemsVisible: Int
-// var visibleItemCount: Int
-// var totalItemCount: Int
-//
-// binding.rcViewImage.addOnScrollListener(object : RecyclerView.OnScrollListener() {
-// override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
-// if (dy > 0) { //check for scroll down
-// visibleItemCount = binding.rcViewImage.layoutManager!!.getChildCount()
-// totalItemCount = binding.rcViewImage.layoutManager!!.getItemCount()
-// pastItemsVisible = binding.rcViewImage.layoutManager!!.findFirstVisibleItemPosition()
-// if (loading) {
-// if (visibleItemCount + pastItemsVisible >= totalItemCount) {
-// loading = false
-// Log.v("...", "Last Item !")
-//
-// // Do pagination.. i.e. fetch new data
-// loading = true
-// }
-// }
-// }
-// }
-// })
-
-//
-// binding.rcViewImage.addOnScrollListener(object : RecyclerView.OnScrollListener() {
-// override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
-// val layoutManager = LinearLayoutManager::class.java.cast(recyclerView.layoutManager)
-// val totalItemCount = layoutManager.itemCount
-// val lastVisible = layoutManager.findLastVisibleItemPosition()
-// val endHasBeenReached: Boolean = lastVisible + VISIBLE_ITEMS_COUNT >= totalItemCount
-// if (totalItemCount > 0 && endHasBeenReached) {
-// //logic
-// }
-// }
-// })
- }
-
-
- //Функция для вывода тренировок при определенных условиях
- fun outputSportUnder_the_conditions() {
- Log.i("PauseDay","${PauseDay}"+" "+"${LocalDate.now().toString()}")
-
- if(SportCursDay ==15 && Sport15DayAll == 1 && Sport7Day == 0 && Sport15Day == 0){
- visible15dayall()
- }
- else if(SportCursDay ==7 && Sport7Day == 1){
- visible7day()
- }
- else if(SportCursDay ==15 && Sport15Day == 1){
- visible15day()
- }
- else if(Block > LocalDate.now().toString() && Block != ""){
- visibleBlock()
- }
- else if(PauseDay > LocalDate.now().toString() && PauseDay != ""){
- visiblePause()
- }
- else if((PauseDay <= LocalDate.now().toString() || PauseDay == "")&&(Block <= LocalDate.now().toString() || Block == "")){
- ClearRCView()
- //Если это первая тренировка
- if (SportCursDay == 0) {
- //Очишаем возможные созданенные старе данные
- visibleLoad()
- clearBlock()
- clearPauseDay()
- clearCursDayNull()
- visibleYesNoSport()
- }
- else if(SportCursDay in 1..15 && CursDayNull != LocalDate.now().toString()){
- visibleYesNoSport()
- }
- else if(SportCursDay in 1..15 && CursDayNull == LocalDate.now().toString() && DayBefore==LocalDate.now().toString()&&DayAfter!=LocalDate.now().toString() && SportPlusCount != SportMaxCount){
- visibleLoad()
- addListModelCardsDay(LocalDate.now().toString())
- visibleDayList()
- }
- else if(DayBefore==LocalDate.now().toString() && DayAfter==LocalDate.now().toString() && SportPlusCount == SportMaxCount){
- visibleLoad()
- addListModelCardsDay(LocalDate.now().toString())
- visibleDayList()
- }
- else if(DayBefore==LocalDate.now().toString() && DayAfter!=LocalDate.now().toString() && SportPlusCount == SportMaxCount){
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.placeHolderFragment, QAfterFragment.newInstance())?.commit()
- }
-
-
- }
-
-
-
- }
-
- //Выводим экран с фразой готовы ли вы начать тренировку
- private fun visibleYesNoSport() {
- binding.CLListSport.visibility = View.GONE
- binding.CLDayList.visibility = View.GONE
- binding.CLCardSport.visibility = View.GONE
- binding.CLLoad.visibility = View.GONE
- binding.CLYesNoSport.visibility = View.VISIBLE
- binding.CLPaus.visibility = View.GONE
- binding.CLBlock.visibility = View.GONE
- binding.CL7day.visibility = View.GONE
- binding.CL15day.visibility = View.GONE
- binding.CLFinal.visibility = View.GONE
- binding.btnYesStartSport.setOnClickListener {
- if(SportUserTrue == 0){
- Toast(requireContext()).showCustomInfoToast("Попросите врача создать вам курс", requireActivity())
- }
- else {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.placeHolderFragment, QBeforeFragment.newInstance())?.commit()
- }
- }
- }
-
- //Выводим списка тренировок
- private fun visibleDayList() {
- binding.CLListSport.visibility = View.GONE
- binding.CLDayList.visibility = View.VISIBLE
- binding.CLCardSport.visibility = View.GONE
- binding.CLLoad.visibility = View.GONE
- binding.CLYesNoSport.visibility = View.GONE
- binding.CLPaus.visibility = View.GONE
- binding.CLBlock.visibility = View.GONE
- binding.CL7day.visibility = View.GONE
- binding.CL15day.visibility = View.GONE
- binding.CLFinal.visibility = View.GONE
- }
-
-
- //Выводим карточку тренировок
- private fun visibleDayCard() {
- binding.CLListSport.visibility = View.GONE
- binding.CLDayList.visibility = View.GONE
- binding.CLCardSport.visibility = View.VISIBLE
- binding.CLLoad.visibility = View.GONE
- binding.CLYesNoSport.visibility = View.GONE
- binding.CLPaus.visibility = View.GONE
- binding.CLBlock.visibility = View.GONE
- Log.i("visibleDayCard","visibleDayCard")
- binding.CL7day.visibility = View.GONE
- binding.CL15day.visibility = View.GONE
- binding.CLFinal.visibility = View.GONE
- }
-
- private fun visibleLoad() {
- binding.CLListSport.visibility = View.GONE
- binding.CLDayList.visibility = View.GONE
- binding.CLCardSport.visibility = View.GONE
- binding.CLLoad.visibility = View.VISIBLE
- binding.CLYesNoSport.visibility = View.GONE
- binding.CLPaus.visibility = View.GONE
- binding.CLBlock.visibility = View.GONE
- binding.CL7day.visibility = View.GONE
- binding.CL15day.visibility = View.GONE
- binding.CLFinal.visibility = View.GONE
- }
-
-
- //Выводим экран паузы
- private fun visiblePause() {
- binding.CLListSport.visibility = View.GONE
- binding.CLDayList.visibility = View.GONE
- binding.CLCardSport.visibility = View.GONE
- binding.CLLoad.visibility = View.GONE
- binding.CLYesNoSport.visibility = View.GONE
- binding.CLPaus.visibility = View.VISIBLE
- binding.CLBlock.visibility = View.GONE
- binding.txtDatePause.setText("${PauseDay}")
- binding.CL7day.visibility = View.GONE
- binding.CL15day.visibility = View.GONE
- binding.CLFinal.visibility = View.GONE
- }
-
-
- //Выводим экран блока
- private fun visibleBlock() {
- binding.CLListSport.visibility = View.GONE
- binding.CLDayList.visibility = View.GONE
- binding.CLCardSport.visibility = View.GONE
- binding.CLLoad.visibility = View.GONE
- binding.CLYesNoSport.visibility = View.GONE
- binding.CLPaus.visibility = View.GONE
- binding.txtDateBlock.setText("${Block}")
- binding.CLBlock.visibility = View.VISIBLE
- binding.CL7day.visibility = View.GONE
- binding.CL15day.visibility = View.GONE
- binding.CLFinal.visibility = View.GONE
- }
-
- //Выводим сообщенеи от отправке отчета на 7 день
- private fun visible7day() {
- binding.CLListSport.visibility = View.GONE
- binding.CLDayList.visibility = View.GONE
- binding.CLCardSport.visibility = View.GONE
- binding.CLLoad.visibility = View.GONE
- binding.CLYesNoSport.visibility = View.GONE
- binding.CLPaus.visibility = View.GONE
- binding.CLBlock.visibility = View.GONE
- binding.CL7day.visibility = View.VISIBLE
- binding.CL15day.visibility = View.GONE
- binding.CLFinal.visibility = View.GONE
- }
-
- //Выводим сообщенеи от отправке отчета на 15 день
- private fun visible15day() {
- binding.CLListSport.visibility = View.GONE
- binding.CLDayList.visibility = View.GONE
- binding.CLCardSport.visibility = View.GONE
- binding.CLLoad.visibility = View.GONE
- binding.CLYesNoSport.visibility = View.GONE
- binding.CLPaus.visibility = View.GONE
- binding.CLBlock.visibility = View.GONE
- binding.CL7day.visibility = View.GONE
- binding.CL15day.visibility = View.VISIBLE
- binding.CLFinal.visibility = View.GONE
- }
-
- //Выводим экрана окончания курса
- private fun visible15dayall() {
- binding.CLListSport.visibility = View.GONE
- binding.CLDayList.visibility = View.GONE
- binding.CLCardSport.visibility = View.GONE
- binding.CLLoad.visibility = View.GONE
- binding.CLYesNoSport.visibility = View.GONE
- binding.CLPaus.visibility = View.GONE
- binding.CLBlock.visibility = View.GONE
- binding.CL7day.visibility = View.GONE
- binding.CL15day.visibility = View.GONE
- binding.CLFinal.visibility = View.VISIBLE
- }
-
-
-
- //Открытие карточки дня
- override fun onClickDay(item: DayListModel) {
- Log.i("times","${times}")
- Log.i("time","${time}")
- //Если это сегодняшнее упражнение
- if((item.number.toInt() == (SportPlusCount+1))|| (item.number.toInt() < (SportPlusCount+1))) {
-// times = time.toInt()
-// if(times ==0 || times == 1000){
-
- binding.LoadImage.visibility = View.VISIBLE
- liveReadOrderDayCurrent()
- visibleLoad()//Загрузочный экран
- val db = MainDB.getDB(requireContext())
- db.getDaoSportCategory().getAllItemsSportCategory(item.category).asLiveData()
- .observe(requireActivity()) { itList ->
- var number = 1;
- val itemDay = DayModel(
- item.id,
- itList[0].name,
- itList[0].desc,
- item.day,
- item.number,
- itList[0].category,
- item.check
- )
- model.liveDayCurrent.value = itemDay
- //}
-
-
- }
- }
- else{
- Toast(requireContext()).showCustomInfoToast("Пауза в 1 минуту", requireActivity())
-
- }
-// }
-// else{
-// Toast(requireContext()).showCustomInfoToast("Сначало выполните ${SportPlusCount+1} упражнение", requireActivity())
-// }
-
- }
-
- //Функция активации кнпок
- fun addButton(){
- val db = MainDB.getDB(requireContext())
- //Закрытие карточки определенного дня
- binding.btnExitCardSport.setOnClickListener {
- visibleLoad()
- stopSound()
- binding.btnMp3.setBackgroundResource(android.R.drawable.ic_media_play)
- //binding.txtNameCard.setText("")
- binding.txtDescCard.setText("")
- addListModelCardsDay(LocalDate.now().toString())
- }
-
- binding.btnAddDayCategoryCheck.setOnClickListener {
-
- stopSound()
- binding.btnMp3.setBackgroundResource(android.R.drawable.ic_media_play)
-
- visibleLoad()
- GlobalScope.launch(Dispatchers.IO) {
- db.getDaoDaySport().updateCheckDaySport(idDaySport)
- }
- saveSportPlusCount((SportPlusCount+1))
- binding.btnAddDayCategoryCheck.isEnabled = false
- binding.btnAddDayCategoryCheck.isClickable = false
- binding.btnAddDayCategoryCheck.setCardBackgroundColor(Color.parseColor("#A68C78"))
- Toast(requireContext()).showCustomNiceToast(
- "Упражнение выполнено",
- requireActivity()
- )
-
- addListModelCardsDay(LocalDate.now().toString())
-
- if (SportPlusCount == SportMaxCount && DayBefore==LocalDate.now().toString()&& DayAfter =="" ) {
- activity?.supportFragmentManager?.beginTransaction()
- ?.replace(R.id.placeHolderFragment, QAfterFragment.newInstance())?.commit()
- }
-
- binding.txtDescCard.setText("")
- Log.i("DayBefore","${DayBefore}")
- Log.i("DayAfter","${DayAfter}")
- Log.i("SportPlusCount","${SportPlusCount}")
- Log.i("SportMaxCount","${SportMaxCount}")
- Log.i("SportCursDay","${SportCursDay}")
-// val timer = object: CountDownTimer(60000, 1000) {
-// override fun onTick(millisUntilFinished: Long) {
-// time = millisUntilFinished
-// Log.i("asad3444a","${time}")
-// }
-//
-// override fun onFinish() {
-// time = 0
-// }
-// }
-// timer.start()
-
-
- }
-
-
-
- binding.btnNoAddDayCategoryCheck.setOnClickListener {
- stopSound()
- binding.btnMp3.setBackgroundResource(android.R.drawable.ic_media_play)
-
- visibleLoad()
- GlobalScope.launch(Dispatchers.IO) {
- db.getDaoDaySport().updateNoCheckDaySport(idDaySport)
- }
- saveSportPlusCount((SportPlusCount+1))
- binding.btnNoAddDayCategoryCheck.isEnabled = false
- binding.btnNoAddDayCategoryCheck.isClickable = false
- binding.btnNoAddDayCategoryCheck.setCardBackgroundColor(Color.parseColor("#A3B8A1"))
- Toast(requireContext()).showCustomInfoToast(
- "Упражнение было пропушено",
- requireActivity()
- )
-
- addListModelCardsDay(LocalDate.now().toString())
-
- if (SportPlusCount == SportMaxCount && DayBefore==LocalDate.now().toString()&& DayAfter =="" ) {
- activity?.supportFragmentManager?.beginTransaction()
- ?.replace(R.id.placeHolderFragment, QAfterFragment.newInstance())?.commit()
- }
-
- binding.txtDescCard.setText("")
- Log.i("DayBefore","${DayBefore}")
- Log.i("DayAfter","${DayAfter}")
- Log.i("SportPlusCount","${SportPlusCount}")
- Log.i("SportMaxCount","${SportMaxCount}")
- Log.i("SportCursDay","${SportCursDay}")
-
- val timer = object: CountDownTimer(60000, 1000) {
- override fun onTick(millisUntilFinished: Long) {
- time = millisUntilFinished
- Log.i("asad3444a","${time}")
- }
-
- override fun onFinish() {
- time = 0
- }
- }
- timer.start()
- }
-
-
- }
-
- //Заполнения модели и списка
- private fun addListModelCardsDay(day: String) {
-
- val db = MainDB.getDB(requireContext())
- val list = ArrayList()
- db.getDaoDaySport().getAllItemDaySport(day).asLiveData()
- .observe(requireActivity()) { itList ->
- var number = 1;
-
- itList.forEach {
- Log.d("123", it.category)
- //db.getDaoSportCategory().getAllItemsSportCategory(it.category).asLiveData().observe(requireActivity()){itSport->
- val itemDay = DayListModel(
- it.id.toString(),
- number++.toString(),
- day,
- it.category.toString(),
- it.check.toString(),
- )
- list.add(itemDay)//Передали заполненый список
- }
- model.liveDayList.value = list
- Log.d("sadas", list.toString())
- }
- visibleDayList()
- }
-
- companion object {
- fun newInstance() = SceduleFragment(/*null*/)
- }
-
- //Функция запускающая отслеживания за списком, чтобы вовремя обновлять основную карточку продукта
- private fun liveReadOrderCurrent() = with(binding) {
- model.liveListCurrent.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
- visibleDayList()
- }
- }
-
- //Функция запускающая отслеживания за списком, чтобы вовремя обновлять основную карточку продукта
- @SuppressLint("DiscouragedApi")
- private fun liveReadOrderDayCurrent() = with(binding) {
- model.liveDayCurrent.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
- visibleLoad()
-
- //Фиксируем id
- idDaySport = it.id.toInt()
-
- //Отключаем нажатие на кнопку подтверждения, если упражнени уже выполнено, для того чтобы не тыкали
- if (it.check.toInt() == 1 || it.check.toInt() == 2) {
- binding.btnAddDayCategoryCheck.isEnabled = false
- binding.btnAddDayCategoryCheck.isClickable = false
- binding.btnAddDayCategoryCheck.setCardBackgroundColor(Color.parseColor("#A3B8A1"))
-
- binding.btnNoAddDayCategoryCheck.isEnabled = false
- binding.btnNoAddDayCategoryCheck.isClickable = false
- binding.btnNoAddDayCategoryCheck.setCardBackgroundColor(Color.parseColor("#A68C78"))
-
- } else {
-
- binding.btnAddDayCategoryCheck.isEnabled = true
- binding.btnAddDayCategoryCheck.isClickable = true
- binding.btnAddDayCategoryCheck.setCardBackgroundColor(Color.parseColor("#53D54A"))
-
- binding.btnNoAddDayCategoryCheck.isEnabled = true
- binding.btnNoAddDayCategoryCheck.isClickable = true
- binding.btnNoAddDayCategoryCheck.setCardBackgroundColor(Color.parseColor("#EDAA76"))
- }
-
-
- val db = MainDB.getDB(requireContext())
- val listImage = ArrayList()
- db.getDaoImage().getAllItemImage(it.category).asLiveData()
- .observe(requireActivity()) { itList1 ->
- itList1.forEach {
- val item = ImageSportModel(
- it.id.toString(),
- it.image,
- it.name.toString(),
- )
- Log.d("sdaasd", "${item.article}")
- listImage.add(item)//Передали заполненый список
- }
-
- model.liveImageList.value = listImage
-
- }
-
- //binding.txtNameCard.setText("")
- binding.txtDescCard.setText("")
- binding.txtTitle.setText("")
- binding.txtTitle.setText("Упражнение " + it.number)
- //binding.txtNameCard.setText(it.name)
- binding.txtDescCard.setText(binding.txtDescCard.text.toString() + it.desc)
-
-
-
-
- //Выводим экран
- visibleDayCard()
- }
- }
-
-
- //Сохранение и удаление хранилиш
- fun savePauseDay(pd: String) {
- val edit = prefPauseDay?.edit()
- edit?.putString("pd", pd)
- edit?.apply()
- PauseDay = pd
- }
- fun clearPauseDay() {
- val edit = prefPauseDay?.edit()
- edit?.clear()
- edit?.apply()
- PauseDay = ""
- }
-
- fun saveBlock(b: String) {
- val edit = prefBlock?.edit()
- edit?.putString("b", b)
- edit?.apply()
- Block = b
- }
- fun clearBlock() {
- val edit = prefBlock?.edit()
- edit?.clear()
- edit?.apply()
- Block = ""
- }
-
- fun saveSportPlusCount(spc: Int) {
- val edit = prefSportPlusCount?.edit()
- edit?.putInt("spc", spc)
- edit?.apply()
- SportPlusCount = spc
- }
-
- fun clearSportPlusCount() {
- val edit = prefSportPlusCount?.edit()
- edit?.clear()
- edit?.apply()
- SportPlusCount = 0
- }
-
-
-
- fun saveSportCursDay(scd: Int) {
- val edit = prefCursDay?.edit()
- edit?.putInt("scd", scd)
- edit?.apply()
- SportCursDay = scd
- }
-
- fun clearSportCursDay() {
- val edit = prefCursDay?.edit()
- edit?.clear()
- edit?.apply()
- SportCursDay = 0
- }
-
- fun saveSportCursDayDangerBefore(cddb: Int) {
- val edit = prefCursDangerDayBefore?.edit()
- edit?.putInt("cddb", cddb)
- edit?.apply()
- SportCursDayDangerBefore = cddb
- }
-
- fun clearSportCursDayDangerBefore() {
- val edit = prefCursDangerDayBefore?.edit()
- edit?.clear()
- edit?.apply()
- SportCursDayDangerBefore = 0
- }
-
- fun saveSportCursDayDangerAfter(cdda: Int) {
- val edit = prefCursDangerDayAfter?.edit()
- edit?.putInt("cdda", cdda)
- edit?.apply()
- SportCursDayDangerAfter = cdda
- }
-
- fun clearSportCursDayDangerAfter() {
- val edit = prefCursDangerDayAfter?.edit()
- edit?.clear()
- edit?.apply()
- SportCursDayDangerAfter = 0
- }
-
- fun saveCursDayNull(cdn: String) {
- val edit = prefCursDayNull?.edit()
- edit?.putString("cdn", cdn)
- edit?.apply()
- CursDayNull = cdn
- }
-
- fun clearCursDayNull() {
- val edit = prefCursDayNull?.edit()
- edit?.clear()
- edit?.apply()
- CursDayNull = ""
- }
-
- //Инициализация списка
- private fun initRcViewDay() = with(binding) {
- rcVIewDayList.layoutManager =
- GridLayoutManager(requireContext(), 1)//По вертикали будет выводить по умолчанию
- adapterDay = DayAdapter(this@SceduleFragment)
- rcVIewDayList.adapter = adapterDay
-
- }
-
- //Инициализация списка для фотографий
- private fun initRcViewImage() = with(binding) {
- rcViewImage.layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false)//По вертикали будет выводить по умолчанию
- adapterImage = ImageSportAdapter(requireContext())
- rcViewImage.adapter = adapterImage
-
-
-
-// val mLayoutManager: LinearLayoutManager
-// mLayoutManager = LinearLayoutManager(requireContext(),LinearLayoutManager.HORIZONTAL, false)
-// binding.rcViewImage.setLayoutManager(mLayoutManager)
-// adapterImage = ImageSportAdapter(requireContext())
-// rcViewImage.adapter = adapterImage
-//
-// var loading = true
-// var pastVisiblesItems: Int
-// var visibleItemCount: Int
-// var totalItemCount: Int
-//
-// binding.rcViewImage.addOnScrollListener(object : RecyclerView.OnScrollListener() {
-// override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
-// if (dy > 0) //check for scroll down
-// {
-// visibleItemCount = mLayoutManager.getChildCount()
-// totalItemCount = mLayoutManager.getItemCount()
-// pastVisiblesItems = mLayoutManager.findFirstVisibleItemPosition()
-// if (loading) {
-// if (visibleItemCount + pastVisiblesItems >= totalItemCount) {
-// loading = false
-// Log.i("terertert", "Last Item Wow !")
-// //Do pagination.. i.e. fetch new data
-// }
-// }
-// }
-// }
-// })
-
-//
-//
-// Log.i("123112213","${binding.rcViewImage.size.toInt()}")
-//
-// var loading = true
-// var pastVisiblesItems: Int
-// var visibleItemCount: Int
-// var totalItemCount: Int
-//
-// mRecyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {
-// override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
-// if (dy > 0) { //check for scroll down
-// visibleItemCount = mLayoutManager.getChildCount()
-// totalItemCount = mLayoutManager.getItemCount()
-// pastVisiblesItems = mLayoutManager.findFirstVisibleItemPosition()
-// if (loading) {
-// if (visibleItemCount + pastVisiblesItems >= totalItemCount) {
-// loading = false
-// Log.v("...", "Last Item Wow !")
-// // Do pagination.. i.e. fetch new data
-// loading = true
-// }
-// }
-// }
-// }
-// })
-
- }
-
- fun ClearRCView(){
- adapterImage.notifyDataSetChanged(); // let your adapter know about the changes and reload view.
- adapterDay.notifyDataSetChanged(); // let your adapter know about the changes and reload view.
- initRcViewImage()
- initRcViewDay()
-
- }
-// private val lastVisibleItemPosition: Int
-// get() = linearLayoutManager.findLastVisibleItemPosition()
-// private fun setRecyclerViewScrollListener() {
-// var scrollListener = object : RecyclerView.OnScrollListener() {
-// override fun onScrollStateChanged(recyclerView: RecyclerView?, newState: Int) {
-// super.onScrollStateChanged(recyclerView!!, newState)
-// val totalItemCount = recyclerView!!.layoutManager.itemCount
-// if (totalItemCount == lastVisibleItemPosition + 1) {
-// Log.d("MyTAG", "Load new list")
-// binding.rcViewImage.removeOnScrollListener(scrollListener)
-// }
-// }
-// }
-// binding.rcViewImage.addOnScrollListener(scrollListener)
-// }
-
- override fun onResume() {
- super.onResume()
- Log.d("11112222222111111111111", "11111111111111111")
- //ClearRCView()
- //outputSportUnder_the_conditions()
- }
-
- override fun onDestroy() {
- super.onDestroy()
- ClearRCView()
- }
-
- //Звуковая часть
- // 1. Plays the water sound
- fun playSound() {
- if (mMediaPlayer == null) {
- mMediaPlayer = MediaPlayer.create(requireContext(), R.raw.sec1_metronom)
- mMediaPlayer!!.isLooping = true
- mMediaPlayer!!.start()
- } else mMediaPlayer!!.start()
- }
-
- // 2. Pause playback
- fun pauseSound() {
- if (mMediaPlayer?.isPlaying == true) mMediaPlayer?.pause()
- }
-
- // 3. Stops playback
- fun stopSound() {
- if (mMediaPlayer != null) {
- mMediaPlayer!!.stop()
- mMediaPlayer!!.release()
- mMediaPlayer = null
- }
- }
-
- // 4. Destroys the MediaPlayer instance when the app is closed
- override fun onStop() {
- super.onStop()
- if (mMediaPlayer != null) {
- mMediaPlayer!!.release()
- mMediaPlayer = null
- }
- }
-
-
-
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/model_adapter/Calendare/CalendareAdapter.kt b/app/src/main/java/com/example/rehabilitation/model_adapter/Calendare/CalendareAdapter.kt
index a185dac..89b0a40 100644
--- a/app/src/main/java/com/example/rehabilitation/model_adapter/Calendare/CalendareAdapter.kt
+++ b/app/src/main/java/com/example/rehabilitation/model_adapter/Calendare/CalendareAdapter.kt
@@ -1,9 +1,13 @@
-package com.example.calendarev2
+package com.example.rehabilitation.model_adapter.Calendare
import android.annotation.SuppressLint
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
-import com.example.calendarev2.databinding.Example5EventItemViewv2Binding
+import com.example.rehabilitation.Calendare.Calendare.getColorCompat
+import com.example.rehabilitation.Calendare.Calendare.layoutInflater
+import com.example.rehabilitation.Calendare.Calendare.shared.Flight
+import com.example.rehabilitation.Calendare.Calendare.shared.flightDateTimeFormatter
+import com.example.rehabilitation.databinding.Example5EventItemViewv2Binding
class CalendareAdapter :
diff --git a/app/src/main/java/com/example/rehabilitation/model_adapter/Calendare/CalendareModel.kt b/app/src/main/java/com/example/rehabilitation/model_adapter/Calendare/CalendareModel.kt
deleted file mode 100644
index 32924d4..0000000
--- a/app/src/main/java/com/example/rehabilitation/model_adapter/Calendare/CalendareModel.kt
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.example.rehabilitation.model_adapter.Day
-
-data class DayModel(
- val id: String,
- val name: String,
- val desc:String,
- val day: String,
- val number: String,
- // val count: String,
- val category: String,
- // val image: String,
- val check:String,
-)
-
diff --git a/app/src/main/java/com/example/rehabilitation/model_adapter/Edit/adapterFirebase/ExcelFile.kt b/app/src/main/java/com/example/rehabilitation/model_adapter/Edit/adapterFirebase/ExcelFile.kt
index 6e986b5..25521bd 100644
--- a/app/src/main/java/com/example/rehabilitation/model_adapter/Edit/adapterFirebase/ExcelFile.kt
+++ b/app/src/main/java/com/example/rehabilitation/model_adapter/Edit/adapterFirebase/ExcelFile.kt
@@ -3,8 +3,8 @@ package com.example.rehabilitation.model_adapter.Edit.adapterFirebase
import android.os.Environment
import android.util.Log
import com.example.rehabilitation.fileUri2
-import com.example.rehabilitation.model_adapter.Progress.AfterListModel
-import com.example.rehabilitation.model_adapter.Progress.BeforeListModel
+import com.example.rehabilitation.Progress.AfterListModel
+import com.example.rehabilitation.Progress.BeforeListModel
import com.example.rehabilitation.uriFileEF
import org.apache.poi.ss.usermodel.BorderStyle
import org.apache.poi.ss.usermodel.CellStyle
@@ -22,7 +22,7 @@ import java.io.FileNotFoundException
import java.io.FileOutputStream
import java.io.IOException
-class ExcelFile( private val FIO: String, private val numDaysB: Int, private val numDaysA: Int, private val nameFile:String, private val BQDate: List, private val AQDate: List) {
+class ExcelFile(private val FIO: String, private val numDaysB: Int, private val numDaysA: Int, private val nameFile:String, private val BQDate: List, private val AQDate: List) {
private lateinit var sheetAfter: Sheet
private lateinit var sheetBefore: Sheet
diff --git a/app/src/main/java/com/example/rehabilitation/model_adapter/Image/Category/CountCategoryModel.kt b/app/src/main/java/com/example/rehabilitation/model_adapter/Image/Category/CountCategoryModel.kt
deleted file mode 100644
index 101b6f8..0000000
--- a/app/src/main/java/com/example/rehabilitation/model_adapter/Image/Category/CountCategoryModel.kt
+++ /dev/null
@@ -1,6 +0,0 @@
-package com.example.rehabilitation.model_adapter.Image.Category
-
-data class CountCategoryModel(
- val count: String,
-)
-
diff --git a/app/src/main/java/com/example/rehabilitation/model_adapter/Image/ImageSportModel.kt b/app/src/main/java/com/example/rehabilitation/model_adapter/Image/ImageSportModel.kt
deleted file mode 100644
index 6df38b6..0000000
--- a/app/src/main/java/com/example/rehabilitation/model_adapter/Image/ImageSportModel.kt
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.example.rehabilitation.model_adapter.Image
-
-data class ImageSportModel(
- val id: String,
- val imageName: String,
- val article: String,
-)
-
diff --git a/app/src/main/java/com/example/rehabilitation/model_adapter/MainViewModel.kt b/app/src/main/java/com/example/rehabilitation/model_adapter/MainViewModel.kt
index 20cadca..2ca4d53 100644
--- a/app/src/main/java/com/example/rehabilitation/model_adapter/MainViewModel.kt
+++ b/app/src/main/java/com/example/rehabilitation/model_adapter/MainViewModel.kt
@@ -2,19 +2,21 @@ package com.example.sqlitework.dip
import android.app.Application
import androidx.lifecycle.*
-import com.example.rehabilitation.model_adapter.Image.Category.CountCategoryModel
-import com.example.rehabilitation.model_adapter.Day.DayListModel
-import com.example.rehabilitation.model_adapter.Day.DayListOneModel
-import com.example.rehabilitation.model_adapter.Day.DayModel
-import com.example.rehabilitation.model_adapter.Doctor.DoctorModel
+import com.example.rehabilitation.Sport.Image.Category.CountCategoryModel
+import com.example.rehabilitation.Sport.DayListModel
+import com.example.rehabilitation.Sport.DayListOneModel
+import com.example.rehabilitation.Sport.DayModel
+import com.example.rehabilitation.Sport.Image.Doctor.DoctorModel
import com.example.rehabilitation.model_adapter.Edit.EditSportModel
-import com.example.rehabilitation.model_adapter.Image.Category.CountNameCategoryModel
-import com.example.rehabilitation.model_adapter.Image.ImageSportModel
+import com.example.rehabilitation.Sport.Image.Category.CountNameCategoryModel
+import com.example.rehabilitation.Sport.Image.ImageSportModel
import com.example.rehabilitation.model_adapter.Month.MonthModel
-import com.example.rehabilitation.model_adapter.Patient.PatientModel
-import com.example.rehabilitation.model_adapter.Progress.AfterListModel
-import com.example.rehabilitation.model_adapter.Progress.BeforeListModel
-import com.example.rehabilitation.model_adapter.Progress.ProgressModel
+import com.example.rehabilitation.Auth.Model.PatientModel
+import com.example.rehabilitation.Calendare.CalendareModel
+import com.example.rehabilitation.Progress.AfterListModel
+import com.example.rehabilitation.Progress.BeforeListModel
+import com.example.rehabilitation.Progress.ProgressModel
+import com.example.rehabilitation.Sport.SportForDayModel
import com.example.rehabilitation.model_adapter.Questionnair.AfterModel
import com.example.rehabilitation.model_adapter.Questionnair.BeforeModel
import com.example.rehabilitation.model_adapter.Questionnair.CountSportModel
@@ -34,7 +36,7 @@ class MainViewModel(application: Application) :AndroidViewModel(application){
val liveListList= MutableLiveData>()//Сюда передается новая информация на один день(для все продукции - всего списка)
val liveDayCurrent = MutableLiveData()//Сюда передается новая информация на один день(для слайдера)
- val liveDayList= MutableLiveData>()//Сюда передается новая информация на один день(для все продукции - всего списка)
+ val liveDayList= MutableLiveData>()//Сюда передается новая информация на один день(для все продукции - всего списка)
val liveDayListProgres= MutableLiveData>()//Сюда передается новая информация на один день(для все продукции - всего списка)
val liveDayListProgres2= MutableLiveData>()//Сюда передается новая информация на один день(для все продукции - всего списка)
@@ -94,4 +96,9 @@ class MainViewModel(application: Application) :AndroidViewModel(application){
val liveCountSportCategoryCurrent = MutableLiveData()
val liveSportCategoryAllArticleList = MutableLiveData>()
+ //Календарь
+ val liveCountCalendareCurrent = MutableLiveData()
+ val liveCountCalendareCurrent2 = MutableLiveData()
+ val liveAllCalendareList = MutableLiveData>()
+
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/model_adapter/Progress/ProgressAdapter.kt b/app/src/main/java/com/example/rehabilitation/model_adapter/Progress/ProgressAdapter.kt
deleted file mode 100644
index 99cfc19..0000000
--- a/app/src/main/java/com/example/rehabilitation/model_adapter/Progress/ProgressAdapter.kt
+++ /dev/null
@@ -1,102 +0,0 @@
-package com.example.rehabilitation.model_adapter.Progress
-
-import android.annotation.SuppressLint
-import android.graphics.Color
-import android.os.Handler
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import androidx.recyclerview.widget.DiffUtil
-import androidx.recyclerview.widget.ListAdapter
-import androidx.recyclerview.widget.RecyclerView
-import com.example.rehabilitation.R
-import com.example.rehabilitation.databinding.RcItemDayBinding
-import com.example.rehabilitation.databinding.RcItemProgressBinding
-
-
-class ProgressAdapter(val listener_zakaz: Listener) : ListAdapter(
- Comparator()
-) {//Productitem - по этой форме будем заполнять.//ProductAdapter.holder - это создаваемый holder который хранит логику как нужно заполнять карточку
-
-
- //В holder создаетс код с помошью которого мы будем заполнять и сохронять разметку
- class Holder(view: View, val listener_zakaz: Listener): RecyclerView.ViewHolder(view) {//Класс который будет хранить сссылки на элементы, и отвечает за один элемент за 1 раз, то есть сначсало нулевой элемент заполнит, потом первый, потом второй и т.д.
- //Для передачи данных
-
- val binding = RcItemProgressBinding.bind(view)//view - здесь храянтся элементы и мы их bind заполним в ListItemBinding//ListItemBinding - это клласс даннйо разметки(карточки) которую мы будем заполнять, а нужна дання переменная(binding), чтобы мжно было при заполнение обращатся к элементам карточки
-
- var itemTemp: ProgressModel? = null//Глобальная переменная для нашего item, чтобы можно было передать данные для нажатия
-
- //init - дает возможность внутри адаптера обращаться к элементам экрана
- init {
- itemView.setOnClickListener {//Нажатие на ячейку//itemView - это весь элемент карточки из списка
- itemView.setEnabled(false)
- timerButtonDoubleButton(itemView)
- itemTemp?.let { it1 -> listener_zakaz.onClickDay(it1) }
-
- }
- }
-
- //Функция bind для заполнения
-
- //ЗАдержка нажатия на кнопку
- private fun timerButtonDoubleButton(btn: View){
- val updateHandler = Handler()
-
- val runnable = Runnable {
- btn.setEnabled(true)
- }
-
- updateHandler.postDelayed(runnable, 5000)
- }
- @SuppressLint("SuspiciousIndentation")
- fun bind(item: ProgressModel) = with(binding) {//Productitem - перпедаем данные
- itemTemp = item
- txtDate.text = item.id+". " + item.date + ": "
- txtProgress.text = item.CountCheckTrue.toString()+"/"+item.countAll.toString()
- if(item.CountCheckTrue == 0) {
- CardViewDay.setCardBackgroundColor(Color.parseColor("#1993FF"))
- }
- else{
- CardViewDay.setCardBackgroundColor(Color.parseColor("#98EA88"))
-
- }
-
- }
-
- }
-
-
-
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Holder {
- val view = LayoutInflater.from(parent.context).inflate(R.layout.rc_item_progress, parent, false)//Создаем(надуваем) list_item
- return Holder(view, listener_zakaz)//Через Holder возврощаем view
- }
-
- override fun onBindViewHolder(holder: Holder, position: Int) {
- val view = holder.bind(getItem(position))//Заполняем по позиции карточку
- }
-
-
- //Comparator - сравнивает старый список и новый и если что-то изменилось, то работает с конкретным изменением списке, а не весь список переписывает
- class Comparator : DiffUtil.ItemCallback() {
- override fun areItemsTheSame(oldItem: ProgressModel, newItem: ProgressModel): Boolean {//Тут лучше всего сравнивать по id//oldItem - элементы старого списка, newItem - элементы нового списка//Возврощает Boolean, тоесть есть изменения или нет
- return oldItem.id == newItem.id//Сравниваем полностью весь список новы и старый, по очередно по одной карточке и по элементно, то есть нулевой элемент, первый, второй и т.д.. Но лучше сравнивать по id списки, а не просто весь список, так как это эфективнее, так как id уникальный(oldItem.id == newItem.id)
- }
-
- override fun areContentsTheSame(oldItem: ProgressModel, newItem: ProgressModel): Boolean {//Утут нужно сравнивать весь спсок старых элементов и новых
- return oldItem == newItem//Сравниваем полностью весь список новы и старый
- }
- }
-
- //Интерфейс нажатия на кнопку удалить товар из корзины
- interface Listener {
- fun onClickDay(item: ProgressModel)
- }
-
-
-}
-
-
-
-
diff --git a/app/src/main/java/com/example/rehabilitation/model_adapter/Progress/ProgressModel.kt b/app/src/main/java/com/example/rehabilitation/model_adapter/Progress/ProgressModel.kt
deleted file mode 100644
index c6bcae9..0000000
--- a/app/src/main/java/com/example/rehabilitation/model_adapter/Progress/ProgressModel.kt
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.example.rehabilitation.model_adapter.Progress
-
-data class ProgressModel(
- val id: String,
- val countAll: Int,
- var CountCheckTrue: Int,
- val category: String,
- val date:String,
-
- )
-
diff --git a/app/src/main/res/drawable/B1_1.png b/app/src/main/res/drawable/b1_1.png
similarity index 100%
rename from app/src/main/res/drawable/B1_1.png
rename to app/src/main/res/drawable/b1_1.png
diff --git a/app/src/main/res/drawable/B1_2.png b/app/src/main/res/drawable/b1_2.png
similarity index 100%
rename from app/src/main/res/drawable/B1_2.png
rename to app/src/main/res/drawable/b1_2.png
diff --git a/app/src/main/res/drawable/B2_1.png b/app/src/main/res/drawable/b2_1.png
similarity index 100%
rename from app/src/main/res/drawable/B2_1.png
rename to app/src/main/res/drawable/b2_1.png
diff --git a/app/src/main/res/drawable/B2_2.png b/app/src/main/res/drawable/b2_2.png
similarity index 100%
rename from app/src/main/res/drawable/B2_2.png
rename to app/src/main/res/drawable/b2_2.png
diff --git a/app/src/main/res/drawable/B3_1.png b/app/src/main/res/drawable/b3_1.png
similarity index 100%
rename from app/src/main/res/drawable/B3_1.png
rename to app/src/main/res/drawable/b3_1.png
diff --git a/app/src/main/res/drawable/B3_2.png b/app/src/main/res/drawable/b3_2.png
similarity index 100%
rename from app/src/main/res/drawable/B3_2.png
rename to app/src/main/res/drawable/b3_2.png
diff --git a/app/src/main/res/drawable/B3_3.png b/app/src/main/res/drawable/b3_3.png
similarity index 100%
rename from app/src/main/res/drawable/B3_3.png
rename to app/src/main/res/drawable/b3_3.png
diff --git a/app/src/main/res/drawable/B4_1.png b/app/src/main/res/drawable/b4_1.png
similarity index 100%
rename from app/src/main/res/drawable/B4_1.png
rename to app/src/main/res/drawable/b4_1.png
diff --git a/app/src/main/res/drawable/B4_2.png b/app/src/main/res/drawable/b4_2.png
similarity index 100%
rename from app/src/main/res/drawable/B4_2.png
rename to app/src/main/res/drawable/b4_2.png
diff --git a/app/src/main/res/drawable/C10_1.png b/app/src/main/res/drawable/c10_1.png
similarity index 100%
rename from app/src/main/res/drawable/C10_1.png
rename to app/src/main/res/drawable/c10_1.png
diff --git a/app/src/main/res/drawable/C10_2.png b/app/src/main/res/drawable/c10_2.png
similarity index 100%
rename from app/src/main/res/drawable/C10_2.png
rename to app/src/main/res/drawable/c10_2.png
diff --git a/app/src/main/res/drawable/C10_3.png b/app/src/main/res/drawable/c10_3.png
similarity index 100%
rename from app/src/main/res/drawable/C10_3.png
rename to app/src/main/res/drawable/c10_3.png
diff --git a/app/src/main/res/drawable/C11_1.png b/app/src/main/res/drawable/c11_1.png
similarity index 100%
rename from app/src/main/res/drawable/C11_1.png
rename to app/src/main/res/drawable/c11_1.png
diff --git a/app/src/main/res/drawable/C12_1.png b/app/src/main/res/drawable/c12_1.png
similarity index 100%
rename from app/src/main/res/drawable/C12_1.png
rename to app/src/main/res/drawable/c12_1.png
diff --git a/app/src/main/res/drawable/C12_2.png b/app/src/main/res/drawable/c12_2.png
similarity index 100%
rename from app/src/main/res/drawable/C12_2.png
rename to app/src/main/res/drawable/c12_2.png
diff --git a/app/src/main/res/drawable/C13_1.png b/app/src/main/res/drawable/c13_1.png
similarity index 100%
rename from app/src/main/res/drawable/C13_1.png
rename to app/src/main/res/drawable/c13_1.png
diff --git a/app/src/main/res/drawable/C13_2.png b/app/src/main/res/drawable/c13_2.png
similarity index 100%
rename from app/src/main/res/drawable/C13_2.png
rename to app/src/main/res/drawable/c13_2.png
diff --git a/app/src/main/res/drawable/C14_1.png b/app/src/main/res/drawable/c14_1.png
similarity index 100%
rename from app/src/main/res/drawable/C14_1.png
rename to app/src/main/res/drawable/c14_1.png
diff --git a/app/src/main/res/drawable/C14_2.png b/app/src/main/res/drawable/c14_2.png
similarity index 100%
rename from app/src/main/res/drawable/C14_2.png
rename to app/src/main/res/drawable/c14_2.png
diff --git a/app/src/main/res/drawable/C15_1.png b/app/src/main/res/drawable/c15_1.png
similarity index 100%
rename from app/src/main/res/drawable/C15_1.png
rename to app/src/main/res/drawable/c15_1.png
diff --git a/app/src/main/res/drawable/C15_2.png b/app/src/main/res/drawable/c15_2.png
similarity index 100%
rename from app/src/main/res/drawable/C15_2.png
rename to app/src/main/res/drawable/c15_2.png
diff --git a/app/src/main/res/drawable/C16_1.png b/app/src/main/res/drawable/c16_1.png
similarity index 100%
rename from app/src/main/res/drawable/C16_1.png
rename to app/src/main/res/drawable/c16_1.png
diff --git a/app/src/main/res/drawable/C16_2.png b/app/src/main/res/drawable/c16_2.png
similarity index 100%
rename from app/src/main/res/drawable/C16_2.png
rename to app/src/main/res/drawable/c16_2.png
diff --git a/app/src/main/res/drawable/C17_1.png b/app/src/main/res/drawable/c17_1.png
similarity index 100%
rename from app/src/main/res/drawable/C17_1.png
rename to app/src/main/res/drawable/c17_1.png
diff --git a/app/src/main/res/drawable/C17_2.png b/app/src/main/res/drawable/c17_2.png
similarity index 100%
rename from app/src/main/res/drawable/C17_2.png
rename to app/src/main/res/drawable/c17_2.png
diff --git a/app/src/main/res/drawable/C18_1.png b/app/src/main/res/drawable/c18_1.png
similarity index 100%
rename from app/src/main/res/drawable/C18_1.png
rename to app/src/main/res/drawable/c18_1.png
diff --git a/app/src/main/res/drawable/C18_2.png b/app/src/main/res/drawable/c18_2.png
similarity index 100%
rename from app/src/main/res/drawable/C18_2.png
rename to app/src/main/res/drawable/c18_2.png
diff --git a/app/src/main/res/drawable/C18_3.png b/app/src/main/res/drawable/c18_3.png
similarity index 100%
rename from app/src/main/res/drawable/C18_3.png
rename to app/src/main/res/drawable/c18_3.png
diff --git a/app/src/main/res/drawable/C1_1.png b/app/src/main/res/drawable/c1_1.png
similarity index 100%
rename from app/src/main/res/drawable/C1_1.png
rename to app/src/main/res/drawable/c1_1.png
diff --git a/app/src/main/res/drawable/C1_2.png b/app/src/main/res/drawable/c1_2.png
similarity index 100%
rename from app/src/main/res/drawable/C1_2.png
rename to app/src/main/res/drawable/c1_2.png
diff --git a/app/src/main/res/drawable/C2_1.png b/app/src/main/res/drawable/c2_1.png
similarity index 100%
rename from app/src/main/res/drawable/C2_1.png
rename to app/src/main/res/drawable/c2_1.png
diff --git a/app/src/main/res/drawable/C2_2.png b/app/src/main/res/drawable/c2_2.png
similarity index 100%
rename from app/src/main/res/drawable/C2_2.png
rename to app/src/main/res/drawable/c2_2.png
diff --git a/app/src/main/res/drawable/C3_1.png b/app/src/main/res/drawable/c3_1.png
similarity index 100%
rename from app/src/main/res/drawable/C3_1.png
rename to app/src/main/res/drawable/c3_1.png
diff --git a/app/src/main/res/drawable/C3_2.png b/app/src/main/res/drawable/c3_2.png
similarity index 100%
rename from app/src/main/res/drawable/C3_2.png
rename to app/src/main/res/drawable/c3_2.png
diff --git a/app/src/main/res/drawable/C4_1.png b/app/src/main/res/drawable/c4_1.png
similarity index 100%
rename from app/src/main/res/drawable/C4_1.png
rename to app/src/main/res/drawable/c4_1.png
diff --git a/app/src/main/res/drawable/C4_2.png b/app/src/main/res/drawable/c4_2.png
similarity index 100%
rename from app/src/main/res/drawable/C4_2.png
rename to app/src/main/res/drawable/c4_2.png
diff --git a/app/src/main/res/drawable/C5_1.png b/app/src/main/res/drawable/c5_1.png
similarity index 100%
rename from app/src/main/res/drawable/C5_1.png
rename to app/src/main/res/drawable/c5_1.png
diff --git a/app/src/main/res/drawable/C5_2.png b/app/src/main/res/drawable/c5_2.png
similarity index 100%
rename from app/src/main/res/drawable/C5_2.png
rename to app/src/main/res/drawable/c5_2.png
diff --git a/app/src/main/res/drawable/C6_1.png b/app/src/main/res/drawable/c6_1.png
similarity index 100%
rename from app/src/main/res/drawable/C6_1.png
rename to app/src/main/res/drawable/c6_1.png
diff --git a/app/src/main/res/drawable/C6_2.png b/app/src/main/res/drawable/c6_2.png
similarity index 100%
rename from app/src/main/res/drawable/C6_2.png
rename to app/src/main/res/drawable/c6_2.png
diff --git a/app/src/main/res/drawable/C6_3.png b/app/src/main/res/drawable/c6_3.png
similarity index 100%
rename from app/src/main/res/drawable/C6_3.png
rename to app/src/main/res/drawable/c6_3.png
diff --git a/app/src/main/res/drawable/C7_1.png b/app/src/main/res/drawable/c7_1.png
similarity index 100%
rename from app/src/main/res/drawable/C7_1.png
rename to app/src/main/res/drawable/c7_1.png
diff --git a/app/src/main/res/drawable/C8_1.png b/app/src/main/res/drawable/c8_1.png
similarity index 100%
rename from app/src/main/res/drawable/C8_1.png
rename to app/src/main/res/drawable/c8_1.png
diff --git a/app/src/main/res/drawable/C8_2.png b/app/src/main/res/drawable/c8_2.png
similarity index 100%
rename from app/src/main/res/drawable/C8_2.png
rename to app/src/main/res/drawable/c8_2.png
diff --git a/app/src/main/res/drawable/C9_1.png b/app/src/main/res/drawable/c9_1.png
similarity index 100%
rename from app/src/main/res/drawable/C9_1.png
rename to app/src/main/res/drawable/c9_1.png
diff --git a/app/src/main/res/drawable/C9_2.png b/app/src/main/res/drawable/c9_2.png
similarity index 100%
rename from app/src/main/res/drawable/C9_2.png
rename to app/src/main/res/drawable/c9_2.png
diff --git a/app/src/main/res/drawable/C9_3.png b/app/src/main/res/drawable/c9_3.png
similarity index 100%
rename from app/src/main/res/drawable/C9_3.png
rename to app/src/main/res/drawable/c9_3.png
diff --git a/app/src/main/res/drawable/calendar_view_options_item_view.xml b/app/src/main/res/drawable/calendar_view_options_item_view.xml
index dc1a21e..9d08b7d 100644
--- a/app/src/main/res/drawable/calendar_view_options_item_view.xml
+++ b/app/src/main/res/drawable/calendar_view_options_item_view.xml
@@ -3,7 +3,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:background="?attr/selectableItemBackground"
+ android:background="#D3D3D3"
android:orientation="vertical"
android:paddingHorizontal="16dp"
android:paddingVertical="12dp">
diff --git a/app/src/main/res/drawable/decongestant_therapy_late_img_1.jpg b/app/src/main/res/drawable/decongestant_therapy_late_img_1.jpg
new file mode 100644
index 0000000..cff3fdb
Binary files /dev/null and b/app/src/main/res/drawable/decongestant_therapy_late_img_1.jpg differ
diff --git a/app/src/main/res/drawable/decongestant_therapy_late_img_10.jpg b/app/src/main/res/drawable/decongestant_therapy_late_img_10.jpg
new file mode 100644
index 0000000..0ab0b0b
Binary files /dev/null and b/app/src/main/res/drawable/decongestant_therapy_late_img_10.jpg differ
diff --git a/app/src/main/res/drawable/decongestant_therapy_late_img_11.jpg b/app/src/main/res/drawable/decongestant_therapy_late_img_11.jpg
new file mode 100644
index 0000000..572c461
Binary files /dev/null and b/app/src/main/res/drawable/decongestant_therapy_late_img_11.jpg differ
diff --git a/app/src/main/res/drawable/decongestant_therapy_late_img_12.jpg b/app/src/main/res/drawable/decongestant_therapy_late_img_12.jpg
new file mode 100644
index 0000000..8073da7
Binary files /dev/null and b/app/src/main/res/drawable/decongestant_therapy_late_img_12.jpg differ
diff --git a/app/src/main/res/drawable/decongestant_therapy_late_img_13.jpg b/app/src/main/res/drawable/decongestant_therapy_late_img_13.jpg
new file mode 100644
index 0000000..137b36d
Binary files /dev/null and b/app/src/main/res/drawable/decongestant_therapy_late_img_13.jpg differ
diff --git a/app/src/main/res/drawable/decongestant_therapy_late_img_14.jpg b/app/src/main/res/drawable/decongestant_therapy_late_img_14.jpg
new file mode 100644
index 0000000..d9276cb
Binary files /dev/null and b/app/src/main/res/drawable/decongestant_therapy_late_img_14.jpg differ
diff --git a/app/src/main/res/drawable/decongestant_therapy_late_img_2.jpg b/app/src/main/res/drawable/decongestant_therapy_late_img_2.jpg
new file mode 100644
index 0000000..af88fb0
Binary files /dev/null and b/app/src/main/res/drawable/decongestant_therapy_late_img_2.jpg differ
diff --git a/app/src/main/res/drawable/decongestant_therapy_late_img_3.jpg b/app/src/main/res/drawable/decongestant_therapy_late_img_3.jpg
new file mode 100644
index 0000000..67339a4
Binary files /dev/null and b/app/src/main/res/drawable/decongestant_therapy_late_img_3.jpg differ
diff --git a/app/src/main/res/drawable/decongestant_therapy_late_img_4.jpg b/app/src/main/res/drawable/decongestant_therapy_late_img_4.jpg
new file mode 100644
index 0000000..974c794
Binary files /dev/null and b/app/src/main/res/drawable/decongestant_therapy_late_img_4.jpg differ
diff --git a/app/src/main/res/drawable/decongestant_therapy_late_img_5.jpg b/app/src/main/res/drawable/decongestant_therapy_late_img_5.jpg
new file mode 100644
index 0000000..ba37678
Binary files /dev/null and b/app/src/main/res/drawable/decongestant_therapy_late_img_5.jpg differ
diff --git a/app/src/main/res/drawable/decongestant_therapy_late_img_6.jpg b/app/src/main/res/drawable/decongestant_therapy_late_img_6.jpg
new file mode 100644
index 0000000..6baa009
Binary files /dev/null and b/app/src/main/res/drawable/decongestant_therapy_late_img_6.jpg differ
diff --git a/app/src/main/res/drawable/decongestant_therapy_late_img_7.jpg b/app/src/main/res/drawable/decongestant_therapy_late_img_7.jpg
new file mode 100644
index 0000000..d6c8f3d
Binary files /dev/null and b/app/src/main/res/drawable/decongestant_therapy_late_img_7.jpg differ
diff --git a/app/src/main/res/drawable/decongestant_therapy_late_img_8.jpg b/app/src/main/res/drawable/decongestant_therapy_late_img_8.jpg
new file mode 100644
index 0000000..28e12b6
Binary files /dev/null and b/app/src/main/res/drawable/decongestant_therapy_late_img_8.jpg differ
diff --git a/app/src/main/res/drawable/decongestant_therapy_late_img_9.jpg b/app/src/main/res/drawable/decongestant_therapy_late_img_9.jpg
new file mode 100644
index 0000000..a3d6c2f
Binary files /dev/null and b/app/src/main/res/drawable/decongestant_therapy_late_img_9.jpg differ
diff --git a/app/src/main/res/drawable/formation_of_the_stump.jpg b/app/src/main/res/drawable/formation_of_the_stump.jpg
new file mode 100644
index 0000000..71d0045
Binary files /dev/null and b/app/src/main/res/drawable/formation_of_the_stump.jpg differ
diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml
index ca3826a..0d025f9 100644
--- a/app/src/main/res/drawable/ic_launcher_background.xml
+++ b/app/src/main/res/drawable/ic_launcher_background.xml
@@ -1,74 +1,170 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:viewportHeight="108">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/J10_1.png b/app/src/main/res/drawable/j10_1.png
similarity index 100%
rename from app/src/main/res/drawable/J10_1.png
rename to app/src/main/res/drawable/j10_1.png
diff --git a/app/src/main/res/drawable/J10_2.png b/app/src/main/res/drawable/j10_2.png
similarity index 100%
rename from app/src/main/res/drawable/J10_2.png
rename to app/src/main/res/drawable/j10_2.png
diff --git a/app/src/main/res/drawable/J10_3.png b/app/src/main/res/drawable/j10_3.png
similarity index 100%
rename from app/src/main/res/drawable/J10_3.png
rename to app/src/main/res/drawable/j10_3.png
diff --git a/app/src/main/res/drawable/J11_1.png b/app/src/main/res/drawable/j11_1.png
similarity index 100%
rename from app/src/main/res/drawable/J11_1.png
rename to app/src/main/res/drawable/j11_1.png
diff --git a/app/src/main/res/drawable/J11_2.png b/app/src/main/res/drawable/j11_2.png
similarity index 100%
rename from app/src/main/res/drawable/J11_2.png
rename to app/src/main/res/drawable/j11_2.png
diff --git a/app/src/main/res/drawable/J11_3.png b/app/src/main/res/drawable/j11_3.png
similarity index 100%
rename from app/src/main/res/drawable/J11_3.png
rename to app/src/main/res/drawable/j11_3.png
diff --git a/app/src/main/res/drawable/J11_4.png b/app/src/main/res/drawable/j11_4.png
similarity index 100%
rename from app/src/main/res/drawable/J11_4.png
rename to app/src/main/res/drawable/j11_4.png
diff --git a/app/src/main/res/drawable/J12_1.png b/app/src/main/res/drawable/j12_1.png
similarity index 100%
rename from app/src/main/res/drawable/J12_1.png
rename to app/src/main/res/drawable/j12_1.png
diff --git a/app/src/main/res/drawable/J12_2.png b/app/src/main/res/drawable/j12_2.png
similarity index 100%
rename from app/src/main/res/drawable/J12_2.png
rename to app/src/main/res/drawable/j12_2.png
diff --git a/app/src/main/res/drawable/J1_1.png b/app/src/main/res/drawable/j1_1.png
similarity index 100%
rename from app/src/main/res/drawable/J1_1.png
rename to app/src/main/res/drawable/j1_1.png
diff --git a/app/src/main/res/drawable/J1_2.png b/app/src/main/res/drawable/j1_2.png
similarity index 100%
rename from app/src/main/res/drawable/J1_2.png
rename to app/src/main/res/drawable/j1_2.png
diff --git a/app/src/main/res/drawable/J2_1.png b/app/src/main/res/drawable/j2_1.png
similarity index 100%
rename from app/src/main/res/drawable/J2_1.png
rename to app/src/main/res/drawable/j2_1.png
diff --git a/app/src/main/res/drawable/J2_2.png b/app/src/main/res/drawable/j2_2.png
similarity index 100%
rename from app/src/main/res/drawable/J2_2.png
rename to app/src/main/res/drawable/j2_2.png
diff --git a/app/src/main/res/drawable/J3_1.png b/app/src/main/res/drawable/j3_1.png
similarity index 100%
rename from app/src/main/res/drawable/J3_1.png
rename to app/src/main/res/drawable/j3_1.png
diff --git a/app/src/main/res/drawable/J3_2.png b/app/src/main/res/drawable/j3_2.png
similarity index 100%
rename from app/src/main/res/drawable/J3_2.png
rename to app/src/main/res/drawable/j3_2.png
diff --git a/app/src/main/res/drawable/J4_1.png b/app/src/main/res/drawable/j4_1.png
similarity index 100%
rename from app/src/main/res/drawable/J4_1.png
rename to app/src/main/res/drawable/j4_1.png
diff --git a/app/src/main/res/drawable/J4_2.png b/app/src/main/res/drawable/j4_2.png
similarity index 100%
rename from app/src/main/res/drawable/J4_2.png
rename to app/src/main/res/drawable/j4_2.png
diff --git a/app/src/main/res/drawable/J4_3.png b/app/src/main/res/drawable/j4_3.png
similarity index 100%
rename from app/src/main/res/drawable/J4_3.png
rename to app/src/main/res/drawable/j4_3.png
diff --git a/app/src/main/res/drawable/J5_1.png b/app/src/main/res/drawable/j5_1.png
similarity index 100%
rename from app/src/main/res/drawable/J5_1.png
rename to app/src/main/res/drawable/j5_1.png
diff --git a/app/src/main/res/drawable/J6_1.png b/app/src/main/res/drawable/j6_1.png
similarity index 100%
rename from app/src/main/res/drawable/J6_1.png
rename to app/src/main/res/drawable/j6_1.png
diff --git a/app/src/main/res/drawable/J6_2.png b/app/src/main/res/drawable/j6_2.png
similarity index 100%
rename from app/src/main/res/drawable/J6_2.png
rename to app/src/main/res/drawable/j6_2.png
diff --git a/app/src/main/res/drawable/J6_3.png b/app/src/main/res/drawable/j6_3.png
similarity index 100%
rename from app/src/main/res/drawable/J6_3.png
rename to app/src/main/res/drawable/j6_3.png
diff --git a/app/src/main/res/drawable/J6_4.png b/app/src/main/res/drawable/j6_4.png
similarity index 100%
rename from app/src/main/res/drawable/J6_4.png
rename to app/src/main/res/drawable/j6_4.png
diff --git a/app/src/main/res/drawable/J7_1.png b/app/src/main/res/drawable/j7_1.png
similarity index 100%
rename from app/src/main/res/drawable/J7_1.png
rename to app/src/main/res/drawable/j7_1.png
diff --git a/app/src/main/res/drawable/J7_2.png b/app/src/main/res/drawable/j7_2.png
similarity index 100%
rename from app/src/main/res/drawable/J7_2.png
rename to app/src/main/res/drawable/j7_2.png
diff --git a/app/src/main/res/drawable/J7_3.png b/app/src/main/res/drawable/j7_3.png
similarity index 100%
rename from app/src/main/res/drawable/J7_3.png
rename to app/src/main/res/drawable/j7_3.png
diff --git a/app/src/main/res/drawable/J7_4.png b/app/src/main/res/drawable/j7_4.png
similarity index 100%
rename from app/src/main/res/drawable/J7_4.png
rename to app/src/main/res/drawable/j7_4.png
diff --git a/app/src/main/res/drawable/J7_5.png b/app/src/main/res/drawable/j7_5.png
similarity index 100%
rename from app/src/main/res/drawable/J7_5.png
rename to app/src/main/res/drawable/j7_5.png
diff --git a/app/src/main/res/drawable/J7_6.png b/app/src/main/res/drawable/j7_6.png
similarity index 100%
rename from app/src/main/res/drawable/J7_6.png
rename to app/src/main/res/drawable/j7_6.png
diff --git a/app/src/main/res/drawable/J7_7.png b/app/src/main/res/drawable/j7_7.png
similarity index 100%
rename from app/src/main/res/drawable/J7_7.png
rename to app/src/main/res/drawable/j7_7.png
diff --git a/app/src/main/res/drawable/J8_1.png b/app/src/main/res/drawable/j8_1.png
similarity index 100%
rename from app/src/main/res/drawable/J8_1.png
rename to app/src/main/res/drawable/j8_1.png
diff --git a/app/src/main/res/drawable/J8_2.png b/app/src/main/res/drawable/j8_2.png
similarity index 100%
rename from app/src/main/res/drawable/J8_2.png
rename to app/src/main/res/drawable/j8_2.png
diff --git a/app/src/main/res/drawable/J8_3.png b/app/src/main/res/drawable/j8_3.png
similarity index 100%
rename from app/src/main/res/drawable/J8_3.png
rename to app/src/main/res/drawable/j8_3.png
diff --git a/app/src/main/res/drawable/J9_1.png b/app/src/main/res/drawable/j9_1.png
similarity index 100%
rename from app/src/main/res/drawable/J9_1.png
rename to app/src/main/res/drawable/j9_1.png
diff --git a/app/src/main/res/drawable/massage_technique_late_img_1.jpg b/app/src/main/res/drawable/massage_technique_late_img_1.jpg
new file mode 100644
index 0000000..1c1432d
Binary files /dev/null and b/app/src/main/res/drawable/massage_technique_late_img_1.jpg differ
diff --git a/app/src/main/res/drawable/massage_technique_late_img_2.jpg b/app/src/main/res/drawable/massage_technique_late_img_2.jpg
new file mode 100644
index 0000000..fdd1274
Binary files /dev/null and b/app/src/main/res/drawable/massage_technique_late_img_2.jpg differ
diff --git a/app/src/main/res/drawable/massage_technique_late_img_3.jpg b/app/src/main/res/drawable/massage_technique_late_img_3.jpg
new file mode 100644
index 0000000..61cce49
Binary files /dev/null and b/app/src/main/res/drawable/massage_technique_late_img_3.jpg differ
diff --git a/app/src/main/res/drawable/massage_technique_late_img_4.jpg b/app/src/main/res/drawable/massage_technique_late_img_4.jpg
new file mode 100644
index 0000000..091bf15
Binary files /dev/null and b/app/src/main/res/drawable/massage_technique_late_img_4.jpg differ
diff --git a/app/src/main/res/drawable/massage_technique_late_img_5.jpg b/app/src/main/res/drawable/massage_technique_late_img_5.jpg
new file mode 100644
index 0000000..9fb195f
Binary files /dev/null and b/app/src/main/res/drawable/massage_technique_late_img_5.jpg differ
diff --git a/app/src/main/res/drawable/massage_technique_late_img_6.jpg b/app/src/main/res/drawable/massage_technique_late_img_6.jpg
new file mode 100644
index 0000000..69b4d5b
Binary files /dev/null and b/app/src/main/res/drawable/massage_technique_late_img_6.jpg differ
diff --git a/app/src/main/res/drawable/massage_technique_late_img_7.jpg b/app/src/main/res/drawable/massage_technique_late_img_7.jpg
new file mode 100644
index 0000000..000aacb
Binary files /dev/null and b/app/src/main/res/drawable/massage_technique_late_img_7.jpg differ
diff --git a/app/src/main/res/drawable/massage_technique_late_img_8.jpg b/app/src/main/res/drawable/massage_technique_late_img_8.jpg
new file mode 100644
index 0000000..d15e490
Binary files /dev/null and b/app/src/main/res/drawable/massage_technique_late_img_8.jpg differ
diff --git a/app/src/main/res/drawable/prevention_of_contractures.jpg b/app/src/main/res/drawable/prevention_of_contractures.jpg
new file mode 100644
index 0000000..2b5ba65
Binary files /dev/null and b/app/src/main/res/drawable/prevention_of_contractures.jpg differ
diff --git a/app/src/main/res/drawable/prevention_of_contractures1.jpg b/app/src/main/res/drawable/prevention_of_contractures1.jpg
new file mode 100644
index 0000000..8f79a90
Binary files /dev/null and b/app/src/main/res/drawable/prevention_of_contractures1.jpg differ
diff --git a/app/src/main/res/drawable/prevention_of_contractures2.jpg b/app/src/main/res/drawable/prevention_of_contractures2.jpg
new file mode 100644
index 0000000..690ad9e
Binary files /dev/null and b/app/src/main/res/drawable/prevention_of_contractures2.jpg differ
diff --git a/app/src/main/res/drawable/prevention_of_contractures3.jpg b/app/src/main/res/drawable/prevention_of_contractures3.jpg
new file mode 100644
index 0000000..3b2c5af
Binary files /dev/null and b/app/src/main/res/drawable/prevention_of_contractures3.jpg differ
diff --git a/app/src/main/res/drawable/surface_sensitivity1.jpg b/app/src/main/res/drawable/surface_sensitivity1.jpg
new file mode 100644
index 0000000..fb7ecc4
Binary files /dev/null and b/app/src/main/res/drawable/surface_sensitivity1.jpg differ
diff --git a/app/src/main/res/drawable/surface_sensitivity2.jpg b/app/src/main/res/drawable/surface_sensitivity2.jpg
new file mode 100644
index 0000000..190493b
Binary files /dev/null and b/app/src/main/res/drawable/surface_sensitivity2.jpg differ
diff --git a/app/src/main/res/drawable/surface_sensitivity3.jpg b/app/src/main/res/drawable/surface_sensitivity3.jpg
new file mode 100644
index 0000000..81c7562
Binary files /dev/null and b/app/src/main/res/drawable/surface_sensitivity3.jpg differ
diff --git a/app/src/main/res/drawable/surface_sensitivity_2.jpg b/app/src/main/res/drawable/surface_sensitivity_2.jpg
new file mode 100644
index 0000000..aa012e9
Binary files /dev/null and b/app/src/main/res/drawable/surface_sensitivity_2.jpg differ
diff --git a/app/src/main/res/layout/activity_feedback.xml b/app/src/main/res/layout/activity_feedback.xml
index b6f5bac..1b24267 100644
--- a/app/src/main/res/layout/activity_feedback.xml
+++ b/app/src/main/res/layout/activity_feedback.xml
@@ -4,8 +4,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:visibility="visible"
- tools:context=".Admin.activityAdmin.FeedbackActivity">
+ android:visibility="visible">
+ tools:context=".Information.InformationActivity">
\ 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 46e9046..fa5d2d0 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -1,122 +1,13 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_setting.xml b/app/src/main/res/layout/activity_setting.xml
index 7bd8136..5ad6947 100644
--- a/app/src/main/res/layout/activity_setting.xml
+++ b/app/src/main/res/layout/activity_setting.xml
@@ -6,7 +6,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/gradientv1"
- tools:context=".SettingActivity">
+ tools:context=".Setting.SettingActivity">
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/layout/example_5_calendar_day.xml b/app/src/main/res/layout/example_5_calendar_day.xml
index 2de558a..acbe0b9 100644
--- a/app/src/main/res/layout/example_5_calendar_day.xml
+++ b/app/src/main/res/layout/example_5_calendar_day.xml
@@ -9,7 +9,9 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="1dp"
- android:background="@color/example_5_item_view_bg_color">
+ android:background="#FFFFFF"
+ tools:layout_editor_absoluteX="1dp"
+ tools:layout_editor_absoluteY="1dp">
diff --git a/app/src/main/res/layout/fragment_auth.xml b/app/src/main/res/layout/fragment_auth.xml
index cdef649..198de2c 100644
--- a/app/src/main/res/layout/fragment_auth.xml
+++ b/app/src/main/res/layout/fragment_auth.xml
@@ -23,6 +23,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="32dp"
+ android:layout_marginEnd="16dp"
app:cardBackgroundColor="#000000"
app:cardCornerRadius="50dp"
app:cardElevation="0dp"
@@ -100,7 +101,7 @@
android:layout_marginTop="32dp"
android:layout_marginEnd="16dp"
android:gravity="center"
- android:text="Авторизация пациента"
+ android:text="Авторизация"
android:textColor="#000000"
android:textSize="34sp"
app:layout_constraintEnd_toEndOf="parent"
@@ -108,14 +109,14 @@
app:layout_constraintTop_toTopOf="parent" />
@@ -130,9 +131,9 @@
android:hint="Введите пароль"
android:inputType="textPassword"
android:textColor="#000000"
- app:layout_constraintEnd_toEndOf="@+id/editTextEmailPatient"
- app:layout_constraintStart_toStartOf="@+id/editTextEmailPatient"
- app:layout_constraintTop_toBottomOf="@+id/editTextEmailPatient" />
+ app:layout_constraintEnd_toEndOf="@+id/editTextLoginPatient"
+ app:layout_constraintStart_toStartOf="@+id/editTextLoginPatient"
+ app:layout_constraintTop_toBottomOf="@+id/editTextLoginPatient" />
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/btnBack" />
diff --git a/app/src/main/res/layout/fragment_breathing_exercises.xml b/app/src/main/res/layout/fragment_breathing_exercises.xml
index ff711f2..617064e 100644
--- a/app/src/main/res/layout/fragment_breathing_exercises.xml
+++ b/app/src/main/res/layout/fragment_breathing_exercises.xml
@@ -1,14 +1,136 @@
-
+ tools:context=".Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.StumpCareFragment">
-
-
+
+
+ android:layout_height="0dp"
+ android:overScrollMode="never"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/btnExit">
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_calendar.xml b/app/src/main/res/layout/fragment_calendar.xml
index fb85c65..db05322 100644
--- a/app/src/main/res/layout/fragment_calendar.xml
+++ b/app/src/main/res/layout/fragment_calendar.xml
@@ -4,92 +4,152 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- tools:context=".User.fragmentUser.CalendarFragment">
+ android:layout_marginTop="3dp"
+ android:background="#EFEFEF"
+ android:clickable="true"
+ android:focusable="true"
+ android:orientation="vertical">
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ app:layout_constraintTop_toBottomOf="@+id/exFiveAppBarLayout">
-
-
-
-
-
-
-
-
-
+ app:cv_dayViewResource="@layout/example_5_calendar_day"
+ app:cv_monthHeaderResource="@layout/example_5_calendar_header"
+ app:cv_outDateStyle="endOfGrid" />
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_common_info.xml b/app/src/main/res/layout/fragment_common_info.xml
index 80e1273..1cdff5d 100644
--- a/app/src/main/res/layout/fragment_common_info.xml
+++ b/app/src/main/res/layout/fragment_common_info.xml
@@ -7,13 +7,24 @@
android:layout_height="match_parent"
tools:context=".fragment.InfoFragment.CommonInfoFragment">
+
+
+ app:layout_constraintTop_toBottomOf="@+id/btnExit">
-
+ tools:context=".Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.StumpCareFragment">
-
-
+ android:overScrollMode="never">
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_decongestant_therapy.xml b/app/src/main/res/layout/fragment_decongestant_therapy.xml
index aa130db..a16cb28 100644
--- a/app/src/main/res/layout/fragment_decongestant_therapy.xml
+++ b/app/src/main/res/layout/fragment_decongestant_therapy.xml
@@ -1,14 +1,221 @@
-
+ tools:context=".Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.StumpCareFragment">
-
-
+
+
+ android:layout_height="0dp"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/btnExit"
+ android:overScrollMode="never">
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_decongestant_therapy_late.xml b/app/src/main/res/layout/fragment_decongestant_therapy_late.xml
new file mode 100644
index 0000000..9fe1a57
--- /dev/null
+++ b/app/src/main/res/layout/fragment_decongestant_therapy_late.xml
@@ -0,0 +1,420 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_early_postoperative_period.xml b/app/src/main/res/layout/fragment_early_postoperative_period.xml
index 0d52234..cb8aa65 100644
--- a/app/src/main/res/layout/fragment_early_postoperative_period.xml
+++ b/app/src/main/res/layout/fragment_early_postoperative_period.xml
@@ -1,14 +1,680 @@
-
+ tools:context=".Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment">
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+ android:layout_height="0dp"
+ android:overScrollMode="never"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/btnExit">
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_faq.xml b/app/src/main/res/layout/fragment_faq.xml
index ce00133..d89df75 100644
--- a/app/src/main/res/layout/fragment_faq.xml
+++ b/app/src/main/res/layout/fragment_faq.xml
@@ -7,13 +7,23 @@
android:layout_height="match_parent"
tools:context=".fragment.InfoFragment.faqFragment">
+
+
+ app:layout_constraintTop_toBottomOf="@+id/btnExit">
diff --git a/app/src/main/res/layout/fragment_formation_of_the_stump.xml b/app/src/main/res/layout/fragment_formation_of_the_stump.xml
new file mode 100644
index 0000000..f67c5f0
--- /dev/null
+++ b/app/src/main/res/layout/fragment_formation_of_the_stump.xml
@@ -0,0 +1,151 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml
index 3b088d8..3eccad7 100644
--- a/app/src/main/res/layout/fragment_home.xml
+++ b/app/src/main/res/layout/fragment_home.xml
@@ -4,7 +4,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- tools:context=".User.fragmentUser.HomeFragment">
+ tools:context=".Mysorka.HomeFragment">
-
+ android:layout_height="match_parent"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ android:overScrollMode="never">
+ android:overScrollMode="never">
-
-
-
-
-
-
-
-
-
+ android:layout_height="match_parent">
-
+
+
+
+
+ android:layout_marginStart="16dp"
+ android:layout_marginTop="16dp"
+ android:layout_marginEnd="16dp"
+ app:cardCornerRadius="10dp"
+ app:cardElevation="5dp"
+ app:cardMaxElevation="5dp"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/textView24">
-
+
-
-
+
-
-
+
+
+
-
-
-
-
-
+ android:layout_marginTop="16dp"
+ app:cardCornerRadius="10dp"
+ app:cardElevation="5dp"
+ app:cardMaxElevation="5dp"
+ app:layout_constraintEnd_toEndOf="@+id/methodological_recommendations_button"
+ app:layout_constraintStart_toStartOf="@+id/methodological_recommendations_button"
+ app:layout_constraintTop_toBottomOf="@+id/methodological_recommendations_button">
-
+
-
-
+
-
+
+
+
-
-
-
-
-
-
+ android:layout_marginTop="16dp"
+ app:cardCornerRadius="10dp"
+ app:cardElevation="5dp"
+ app:cardMaxElevation="5dp"
+ app:layout_constraintEnd_toEndOf="@+id/common_information_button"
+ app:layout_constraintStart_toStartOf="@+id/common_information_button"
+ app:layout_constraintTop_toBottomOf="@+id/common_information_button">
-
+
-
-
+
-
+
+
+
-
-
-
-
-
+ android:layout_marginTop="16dp"
+ app:cardCornerRadius="10dp"
+ app:cardElevation="5dp"
+ app:cardMaxElevation="5dp"
+ app:layout_constraintEnd_toEndOf="@+id/frequently_asked_questions_button"
+ app:layout_constraintStart_toStartOf="@+id/frequently_asked_questions_button"
+ app:layout_constraintTop_toBottomOf="@+id/frequently_asked_questions_button">
-
+
-
-
+
-
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
-
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_late_postoperative_period.xml b/app/src/main/res/layout/fragment_late_postoperative_period.xml
index 1b51a36..14018fb 100644
--- a/app/src/main/res/layout/fragment_late_postoperative_period.xml
+++ b/app/src/main/res/layout/fragment_late_postoperative_period.xml
@@ -1,14 +1,391 @@
-
+ tools:context=".Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment">
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+ android:layout_height="0dp"
+ android:overScrollMode="never"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/btnExit">
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_main.xml b/app/src/main/res/layout/fragment_main.xml
new file mode 100644
index 0000000..95b266c
--- /dev/null
+++ b/app/src/main/res/layout/fragment_main.xml
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_main_setting_doctor.xml b/app/src/main/res/layout/fragment_main_setting_doctor.xml
index 32f8b9c..bb7d666 100644
--- a/app/src/main/res/layout/fragment_main_setting_doctor.xml
+++ b/app/src/main/res/layout/fragment_main_setting_doctor.xml
@@ -508,7 +508,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
- android:layout_marginTop="5dp"
+ android:layout_marginTop="8dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="5dp"
android:gravity="center"
@@ -517,7 +517,8 @@
app:layout_constraintBottom_toTopOf="@+id/btnExitAuthDoctor"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/cardView25" />
+ app:layout_constraintTop_toBottomOf="@+id/cardView25"
+ app:layout_constraintVertical_bias="0.0" />
diff --git a/app/src/main/res/layout/fragment_massage_technique_late.xml b/app/src/main/res/layout/fragment_massage_technique_late.xml
new file mode 100644
index 0000000..09b99f1
--- /dev/null
+++ b/app/src/main/res/layout/fragment_massage_technique_late.xml
@@ -0,0 +1,401 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_medical_reabilitation.xml b/app/src/main/res/layout/fragment_medical_reabilitation.xml
index 32f5aa8..2ea0997 100644
--- a/app/src/main/res/layout/fragment_medical_reabilitation.xml
+++ b/app/src/main/res/layout/fragment_medical_reabilitation.xml
@@ -7,13 +7,23 @@
android:layout_height="match_parent"
tools:context=".fragment.InfoFragment.MedicalReabilitationFragment">
+
+
+ app:layout_constraintTop_toBottomOf="@+id/btnExit">
-
+ tools:context=".Information.InfoFragment.MethodologicalRecommendationsFragment">
-
-
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ android:overScrollMode="never">
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_motor_mode.xml b/app/src/main/res/layout/fragment_motor_mode.xml
index e59f6bd..484bc08 100644
--- a/app/src/main/res/layout/fragment_motor_mode.xml
+++ b/app/src/main/res/layout/fragment_motor_mode.xml
@@ -1,14 +1,204 @@
-
+ tools:context=".Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.MotorModeFragment">
-
-
+
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_organization_of_the_daily_routine_after_surgery.xml b/app/src/main/res/layout/fragment_organization_of_the_daily_routine_after_surgery.xml
new file mode 100644
index 0000000..0a05ee2
--- /dev/null
+++ b/app/src/main/res/layout/fragment_organization_of_the_daily_routine_after_surgery.xml
@@ -0,0 +1,389 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_organization_of_the_day_regime_of_the_second_week_after_amputation.xml b/app/src/main/res/layout/fragment_organization_of_the_day_regime_of_the_second_week_after_amputation.xml
new file mode 100644
index 0000000..c020855
--- /dev/null
+++ b/app/src/main/res/layout/fragment_organization_of_the_day_regime_of_the_second_week_after_amputation.xml
@@ -0,0 +1,409 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_phantom_pains.xml b/app/src/main/res/layout/fragment_phantom_pains.xml
index b5a2687..cee58de 100644
--- a/app/src/main/res/layout/fragment_phantom_pains.xml
+++ b/app/src/main/res/layout/fragment_phantom_pains.xml
@@ -1,14 +1,206 @@
-
+ tools:context=".Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.StumpCareFragment">
-
-
+
+
+ android:layout_height="0dp"
+ android:overScrollMode="never"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/btnExit">
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_phantom_pains_late.xml b/app/src/main/res/layout/fragment_phantom_pains_late.xml
new file mode 100644
index 0000000..f6b0054
--- /dev/null
+++ b/app/src/main/res/layout/fragment_phantom_pains_late.xml
@@ -0,0 +1,146 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_physical_exercises.xml b/app/src/main/res/layout/fragment_physical_exercises.xml
new file mode 100644
index 0000000..5ffe6f0
--- /dev/null
+++ b/app/src/main/res/layout/fragment_physical_exercises.xml
@@ -0,0 +1,296 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_preparation_for_prosthetics_late.xml b/app/src/main/res/layout/fragment_preparation_for_prosthetics_late.xml
new file mode 100644
index 0000000..8a9ca2a
--- /dev/null
+++ b/app/src/main/res/layout/fragment_preparation_for_prosthetics_late.xml
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_prevention_of_contractures_late.xml b/app/src/main/res/layout/fragment_prevention_of_contractures_late.xml
new file mode 100644
index 0000000..575f2d8
--- /dev/null
+++ b/app/src/main/res/layout/fragment_prevention_of_contractures_late.xml
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_progres.xml b/app/src/main/res/layout/fragment_progres.xml
index 38afedf..b59bca6 100644
--- a/app/src/main/res/layout/fragment_progres.xml
+++ b/app/src/main/res/layout/fragment_progres.xml
@@ -4,7 +4,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- tools:context=".User.fragmentUser.ProgresFragment">
+ tools:context=".Progress.ProgresFragment">
@@ -278,140 +279,54 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ app:layout_constraintTop_toTopOf="parent">
-
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_q_after.xml b/app/src/main/res/layout/fragment_q_after.xml
index d0b0a53..9677633 100644
--- a/app/src/main/res/layout/fragment_q_after.xml
+++ b/app/src/main/res/layout/fragment_q_after.xml
@@ -5,7 +5,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF"
- tools:context=".User.fragmentUser.QuestionnaireFragment.QAfterFragment">
+ tools:context=".Questionnaire.QuestionnaireFragment.QAfterFragment">
+ tools:context=".Questionnaire.QuestionnaireFragment.QBeforeFragment">
@@ -29,7 +30,7 @@
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginStart="32dp"
- android:layout_marginTop="16dp"
+ android:layout_marginTop="32dp"
android:layout_marginEnd="32dp"
android:layout_marginBottom="32dp"
app:cardBackgroundColor="#000000"
@@ -39,7 +40,7 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/btnExitQB">
+ app:layout_constraintTop_toTopOf="parent">
+ tools:context=".Sport.SceduleFragment">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ app:layout_constraintBottom_toBottomOf="@+id/btnNoAddDayCategoryCheck"
+ app:layout_constraintEnd_toStartOf="@+id/cardView29"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="@+id/btnNoAddDayCategoryCheck">
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="@+id/cardView29">
+ tools:layout_editor_absoluteY="71dp" />
@@ -1101,7 +1070,7 @@
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
android:scrollbars="none"
- android:text="Опсание "
+ android:text="Описание "
android:textColor="#000000"
android:textSize="20sp" />
@@ -1148,25 +1117,34 @@
+ app:layout_constraintStart_toEndOf="@+id/textView13"
+ app:layout_constraintTop_toTopOf="@+id/textView13" />
+
+
@@ -1227,5 +1205,109 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_setting.xml b/app/src/main/res/layout/fragment_setting.xml
new file mode 100644
index 0000000..5ad6947
--- /dev/null
+++ b/app/src/main/res/layout/fragment_setting.xml
@@ -0,0 +1,138 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_stump_care.xml b/app/src/main/res/layout/fragment_stump_care.xml
index 1a8ffb6..117305b 100644
--- a/app/src/main/res/layout/fragment_stump_care.xml
+++ b/app/src/main/res/layout/fragment_stump_care.xml
@@ -1,14 +1,207 @@
-
+ tools:context=".Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.StumpCareFragment">
-
-
+
+
+ android:layout_height="0dp"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/btnExit"
+ android:overScrollMode="never">
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_surface_sensitivity.xml b/app/src/main/res/layout/fragment_surface_sensitivity.xml
new file mode 100644
index 0000000..3558803
--- /dev/null
+++ b/app/src/main/res/layout/fragment_surface_sensitivity.xml
@@ -0,0 +1,215 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/start_menu.xml b/app/src/main/res/menu/start_menu.xml
deleted file mode 100644
index 1dd49a3..0000000
--- a/app/src/main/res/menu/start_menu.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
\ No newline at end of file
diff --git a/app/src/main/res/values-v33/style.xml b/app/src/main/res/values-v33/style.xml
index 7cb1ac2..b80c984 100644
--- a/app/src/main/res/values-v33/style.xml
+++ b/app/src/main/res/values-v33/style.xml
@@ -7,4 +7,18 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 5c8e2c3..f97194b 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -22,4 +22,47 @@
#FF3D3D#2999E4
+
+ #3F51B5
+ #303F9F
+ #FF4081
+ #3A284C
+ #433254
+ #51356E
+ #4DFFFFFF
+ #D9FFFFFF
+ #D9000000
+ #D9FFFFFF
+ #F44336
+ #D9000000
+ #D9FFFFFF
+ #1973E8
+ #D2E3FC
+ #607D8B
+ #455A64
+ #474747
+ #008489
+ #0F000000
+ #BEBEBE
+ #0E0E0E
+ #1B1B1B
+ #282828
+ #DCDCDC
+ #616161
+ #b2ebf2
+ #F2C4B2
+ #B2B8F2
+ #5D4037
+ #455A64
+ #EF6C00
+ #388E3C
+ #C2185B
+ #c62828
+ #1565C0
+ #0097A7
+ #BF000000
+ #D9FFFFFF
+ #FFEB3B
+ #FCCA3E
+ #BEBEBE
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 511597f..09e8004 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,7 +1,217 @@
-
+ВМедA.Реабилитация
+
+
Hello blank fragmentЗаголовокПока тут пусто
+
+ Calendar View Sample
+ Example 1
+ Multiple selection, paged horizontal scrolling, shows the \"EndOfRow\" implementation of OutDateStyle property.
+ Example 2
+ Month header view, single selection, vertical scrolling, hides in and out dates.
+ Example 3
+ Event style implementation, day labels as header view, single selection, month scroll listener. Similar to what is in the Google Calendar app.
+ Example 4
+ Continuous selection within one month and across multiple months, dates older than the current day are disabled. Similar to what is in the Airbnb app.
+ Example 5
+ Single selection, programmatic calendar scrolling, generates six rows for all months showing \"EndOfGrid\" implementation of OutDateStyle property. A flight schedule calendar.
+ Example 6
+ Custom date width and height, custom month view, item decoration on the CalendarView, continuous horizontal scrolling style.
+ Example 7
+ Week calendar with single selection, paged scroll and visible item observation.
+ Example 8
+ Fullscreen calendar, header and footer views, paged horizontal scrolling, shows the \"Rectangle\" DaySize option.
+ Save
+ Close
+ Enter event title
+ Text is empty
+ Delete this event?
+ Delete
+ Start date
+ End date
+ Clear
+ Week mode
+ No selections in this month
+
+ @string/example_8_zero_selection
+ %1$d selection in this month
+ %1$d selections in this month
+
+
+
+
+ Этот период - первые две недели после ампутации - многие пациенты называют одним из самых сложных в своей жизни. Здесь пациент впервые видит себя без ноги или ног, и это не сон. Это страшно, больно и тяжело. Родственники тоже в растерянности, и пока плохо представляют свои дальнейшие шаги. И именн сейчас нужно понимать и ежеминутно помнить главное - жизнь спасена! И уже сейчас пора начинать путь по восстановлению своего здоровья и двигательной активности!
+
+ В первые две недели после операции главная задача в уходе за пациентом - профилактика постоперационных осложнений. Одно из наиболее грозных осложнений - пневмония (воспаление легких), поэтому очень важно обучить пациента дыхательной гимнастике. Отдельные дыхательные упражнения можно выполнять уже через несколько часов после операции. В дальнейшем, выполняя регулярно по несколько раз в день эти дыхательные упражнения, пациент сможет избежать застойных явлений и развития воспаления легких.
+
+ Если нет противопоказаний, врачи стараются как можно раньше вертикализировать пациента: поставить его на ходунки или костыли. Садиться и вставать желательно начинать уже на второй день после операции. Первый раз это делают под руководством медперсонала с помощью родственников. Рекомендуется воспользоваться техническими средствами реабилитации - костылями с упором на предплечье или ходунками. Не следует длительно использовать подмышечные костыли: они, оказывая значительное давление на область подмышечной впадины, способны вызывать хроническую травматизацию нервов и сосудов, приучают ходить с основной опорой на руки и не давать должной опоры на нижние конечности, формируют патологический стереотип передвижения с наклоном туловища вперед, а в случае падения лишают возможности быстро и координировано подняться. Если по тем или иным причинам скорая вертикализация временно невозможна, пациента обучают пересаживанию на кресло-коляску.
+
+ С первых дней после операции пациента обучают и другим упражнениям, которые помогают улучшать процессы кровообращения, уменьшать отеки, повышают выносливость кардио-респираторной системы, тренируют сохранные мышцы, нормализуют регулирующую функцию центральной нервной системы. С этой целью для каждого пациента составляется индивидуальный комплекс упражнений.
+
+ В этот комплекс вводят упражнения для мышц сохранных конечностей, плечевого и тазового поясов, и чуть позже - мышцы туловища и мышцы оперированной конечности. Сначала при этих упражнениях сила мышечных напряжений малая и ниже средней, комфортный темп выполнения (медленный или средний), много пауз для отдыха и расслабления, восстановления дыхания, и небольшое количество одновременно работаюших мышечных групп.
+
+ О необходимости и своевременности подобной консольтации специалиста-реабилитолога Вы всегда можете спросить у курирующего пациента врача.
+
+ Очень важно с первых дней после ампутации ориентировать пациента на активный образ жизни. В первую очередь, это относится к лицам трудоспособного возраста. Активизацию пациента сразу после операции следует рассматривать как начальный этап общей подготовки к протезированию.
+
+ Наблюдение за послеоперационным швом в стационаре осуществляют ежедневно врачи и средний медицинский персонал. Пациент следит за всеми проводимыми манипуляциями и запоминает их. После выписки из стационара ему самому необходимо будет соблюдать все рекомендации и самостоятельно выполнять все процедуры. Особенно важным это представляется для пациентов с сахарным диабетом или сосудистыми патологиями, так как именно у них повышен риск развития различных вторичных осложнений и относительно медленного заживления. Как правило, до момента, когда все швы зарастут, имеющиеся ранки перестанут сочиться, отпадут все корочки, никаких других манипуляций, направленных на что-либо, кроме заживления, с культей не совершают. Исключения составляют процедуры по уходу за швом с применением силикона и элементы лимфодренажного массажа в виде поглаживаний культи по путям и в направлении лимфооттока. В целом, чем раньше пройдут процессы заживления, тем раньше рубцовая ткань станет состоятельной, и тем раньше можно будет думать о начале протезирования.
+ Уже в ранний послеоперационный период необходимо строго соблюдать рекомендацииции специалистов по уходу за кожей вокруг шва, формированию культи, восстановленнию и поддержанию подвижности суставов конечности со стороны ампутации, укреплению мышц конечностей, и др.
+
+ Дыхательные упражнения - обязательная и очень важная часть любого комплекса лечебной гимнастики. Эти упражнения решают конкретные задачи, поэтому их правильное и своевременное применение облегчает достижение промежуточных целей в занятиях: они рассеивают нагрузку, помогают насытить кровь и ткани кислородом, выводят углекислый газ, помогают в работе сердцу, улучшают деятельность органов пищеварительного тракта и дают отдых пациенту.
+ В конечном итоге, научиться правильно дышать вашно для любого человека, а если упражнения еще и ощутимо помогут пациенту почувствовать себя лучше, знаючит, польза от них станет очевидна вдвойне. Одним из основных видов дыхания, который необходимо освожить пациенту - это диафрагмальное дыхание. Его выполняют, пребывая в расслабленном положении, например, сидя расслабленно в кресле или лежа. Если упражнение выполнять лежа, то сохранную ногу лучше поставить согнутой, одну руку положить ладонью на грудь, а вторую - на живот; такое положение рук позволит пациенту лучше контролировать движения песредних брюшной и грудной стенок. На вдох носом живот активно выпячивается вперед, на выдох через губы «трубочкой» передняя брюшная стенка опускается. Как правило, подряд делается не больше 4-6 дыхательных циклов; пациент делает относительно медленный вдох, небольшую паузу и продолжительный выдох с последующей паузой.
+
+
+ Важной проблемой, которую необходимо решать своевременно, является отек, возникающий после операции как естественная реакция организма на хирургическое вмешательство. При неосложненном течении послеоперационного периода основной отек спадает через три-четыре недели. Далее, в течение полугода культя так же будет активно худеть. Однако, следует помнить, что культя будет терять в объеме еще в течение года-двух.
+ Отек, который вовремя не ликвидирован, будет мешать качественному протезированию, удлинять сроки и увеличивать финансовые затраты на протезирование, поэтому с отеком нужно начинать работать после того, как отпадут все корочки на швах, а иногда, с разрешения курирующего хирурга, и раньше. Для этого есть несколько вариантов: ношение компрессионного трикотажа на культе, ношение силиконового чехла или бинтование культи эластичным бинтом. Последний способ является наиболее доступным технически, дешевым в денежном отношении и весьма эффективным. Бинтование лучше начинать, когда уже отпали все корочки, или с разрешения лечащего хирурга.
+ Как правило, это происходит уже после выписки из стационара. А в стационаре одним из вариантов лечения отека является лечение положением: придание культе в течение дня правильного - лечащего - положения. Несколько раз в день на 20-30 минут культю укладывают в несколько возвышенное положение, чтобы дистальный конец был выше проксимального. В этом же положении время от времени необходимо напрягать мышцы культи на 3-5 секунд через паузы - для еще большего улучшения оттока крови и лимфы. Такие изометрические напряжения мышц - это первые упражнения, которые разрешается делать на оперированной конечности. Следует отметить, если ампутация ноги произошла ниже колена, то в этом случае правильное положение - это голень выше, чем колено, а колено выше, чем бедро; но валики следует подложить и под голень, и под нижнюю треть бедра, чтобы колено не находилось в провисающем положении.
+ Таким образом, правильно и хорошо организованный день уже в ранний постоперационный период помогает пациенту настроиться на работу над собой с прицелом на скорое дальнейшее протезирование. Времени на длительный пассивный отдых уже нет! Пора готовиться к протезированию и возвращению к активной жизни!
+ Эластичный бинт
+ Силиконовый чехол
+ Лечение положением
+
+
+ Контрактура - это ограничение активных и /или пассивных движений в суставе, возникшие вследствие некоторых внутренних причин.
+ Контрактура бывает мышечно-связочная - так называемая мягкотканевая, - и костно-суставная. С мышечно-связочными ограничениями можно и нужно работать всеми доступными консервативными способами.
+ Если до операции ампутации движения в тазобедренномном суставе были сохранены в полном объеме, а после операции обнаруживается ограничение объема движений без повреждения костно-суставного аппарата, то, вероятнее всего, - это мышечно-связочная мягкотканоевая контрактура.
+ На небольших сроках формирования такая контрактура хорошо поддается коррекции, но с ней необходимо начинать бороться сразу, так как со временем она может перейти в костно-суставную, с которой консервативно самому пациенту не справиться. Чаще всего в подобных ситуациях возникают сгибательные контрактуры (то есть состояние конечности, когда ее трудно или невозможно разогнуть) в тазобедренном и коленном суставах.
+ Прежде всего, необходимо обеспечение правильного положения конечности при ее иммобилизации. Культя не должна находиться в возвышенном (противоотечном) положении постоянно, ее необходимо обязательно время от времени укладывать на один уровень с корпусом, иначе при длительном неменяющемся согнутом состоянии это положение будет способствовать укорочению мышц, и подвижность сустава начнет быстро снижаться. Матрас должен быть достаточно жестким, чтобы корпус не проваливался относительно культи ниже горизонтали.
+ Пациенту рекомендуется ложиться на живот несколькоко раз в день на 20-40 минут, следя за правильным положением культи. Голову при этом нужно повернуть в противоположную от культи сторону, или же строго следить за тем, чтобы корпус и таз не разворачивались в сторону культи. Растягивающее воздействие на мышьцы-сгибатели бедра можно несколько усилить, подложив под дистальный конец культи небольшой валик, например, из махрового полотенца. Таким образом, будет сохраняться амплитуда разгибания бедра, необходимая при ходьбе.
+ После ампутации, если пациент передвигается на коляске и ампутация на уровне голени, ему рекомендуется пользоваться креслом-коляской со специальной подножкой для культи, которая снижает риск контрактуры коленного сустава и помогает избавляться от отека.
+ Вторым важным и решающим пунктом в профилактике и лечении контрактур является лечебная гимнастикака. В стационаре гимнастика проходит под руководством врача или инструктора ЛФК. Упражнения, как правило, начинают на 2-3 сутки после операции. Назначение процедур лечебной гимнастики делает курирующий врач при удовлетворительном стабильном состоянии пациента после операции. Первые занятия включают в себя дыхательные упражнения, упражнения для верхних конечностей и плечевого пояса, спины, мышц живота, сохранной конечности, мышц области таза. Прорабатываются поочередно все мелкие, средние и крупные мышечные группы в медленном или среднем темпе, со слабым или умеренным мышечным напряжением.
+ Через несколько дней при стабильном состоянии и при положительной постоперационной динамике по разрешению оперирующего хирурга прибавляются и упражнения, выполняемые мышцами оперированной ноги.
+ Сначала это изометрические напряжения мышц по группам, без видимого движения. Постепенно прибавявляются упражнения и в динамическом режиме. При составлении комплекса упражнений всегда учитывается наличие формирующейся контрактуры или самой возможности ее появления, поэтому лечение положениеем продолжается (положение, лежа на животе, с валиком под культей). По мере улучшения общего состояния двигательный режим пациента расширяется, вводятся новые упражнения, изменяются исходные положения, характер упражнений, ритм и темп их выполнения, длительность и интенсивность занятий в целом; вводятся упражнения с отягощением и сопротивленияем, на координацию и равновесие.
+ Раннее начало всех реабилитационных мероприятий, ежедневное выполнение всех назначений и систематичность занятий гимнастикой обеспечивают в дальнейшем значительную часть успеха протезирования.
+
+
+ Фантомной болью называют ощущение боли или выраженных неприятных ощущений, возникаютшее в утраченной конечности.
+ Лечение фантомных болей занимается врач(!). Кроме медикаментозной терапии, снижению фантомных болей способствуют: ранняя активизация пациента (сидячее и вертикальное положение); массаж и лимфодренаж культи; равномерное давление в культе, создаваемое за счет бинтования, лайнера или компрессияодного трикотажа; а также физиотерапия, скорейшее начало физических упражнений, фантомно-импульссна гимнастика, зеркальная терапия, раннее протезырование и многое другое.
+ Не следует путать фантомные ощущения и фантомные боли. Фантомные ощущения - это ощущения присутствия конечности, которой нет. Фантомные боли - болевые или иные выраженные неприятные ощущения, которые доставляют человеку страдания.
+ Иногда ампутации предшествует длительное болезненное состояние конечности с травмами и глубокими повреждениями. В этом случае фантомные боли бывают более стойкими, труднее поддаются медикаментозной коррекции, ярче выражены и дольше доставляют пациентам дискомфорт. Фантомно-импульсная гимнастикакак в этом случае тоже затруднена, потому как пациентыплохо чувствуют фантомную конечность и почти не могут ею управлять.
+ Многим пациентам подходит фантомно-импульсная гимнастика. Это комплекс упражнений для отсутствуетбьющей конечности. Большинство пациентов чувствуют свою ампутированную ногу и могут словами описать то положение, в котором она находится. При некотором уровне сосредоточенности сознания пациенты могут мысленно как бы совершать движения в суставах отсутствующей конечности. Амплитуды возможных движений в разных суставах различны. Считается, что чем полнее и легче даются фантомные движения в отсутствующей конечности, тем больше эти упражнения могут помочь в уменьшении фантомных болей.
+ Чтобы пациенту в первый раз было легче услышать свою фантомную ногу, он пробует все предлагаемые движения сделать сначала сохранной ногой, а уже потом - ампутированной. Движения выполняются медленно, так как прочувствовать движение и достигнуть максимально возможной амплитуды в медленном темпе гораздо легче. Каждое движение выполняется по несколько раз, с достаточно длительными паузами отдыха между повторениями для отдыха. Иногда пациентам проще выполнять фантомно-импульсную гимнастику с закрытыми глазами - так легче сосредоточиться на внутренних ощущениях тела. Фантомно-импульсная гимнастика может выполняться как на регулярной основе, так и в качестве «скорой помощи» при возникновении приступов фантомной боли.
+ Возможно, что пациент будет категорически отрицать возможность управления отсутствующей конечностью в голове и станет отказываться от фантомно-импульссной гимнастики. В этом случае настаивать не стоит, так как негативный настрой пациента не позволит почувствовать облегчение болей. Фантомно-импульсная гимнастика не является незаменимой частью гимнастикики в целом, однако, многие пациенты отмечают ее некоторый положительный эффект.
+
+
+ После ампутации конечности кожная чувствительность часто бывает сильно изменена: местами это очаги повышенной чувствительности, когда к коже буквально нельзя прикоснуться, а местами это поля сниженной чувствительности с «онемевшими» участками.
+ Поверхностную чувствительность необходимо восстанаваливать до возможного нормального уровня. На измененную чувствительность кожи необходимо воздействовать массажными движениями: сначала при помощи теплых рук и мягких медленных скользящих движений, а позднее - варежки из махрового полотенца, мягкой щетки или массажного мячика.
+ Восстановить ее очень важно, так как в начальный период привыкания к протезу кожа будет реагировать с культеприемной гильзой, ей нужно будет привыкать к непривычной нагрузке давлением и потертостями, возможными опрелостями и потливостью. Поэтому обязательно нужно привести чувствительность кожи и ее работу в порядок.
+
+
+ Это собирательное понятие, которое объединяет большое количество процедур по подготовке к протезированию. В связи с тем, что культя при протезировании и дальнейшей ходьбе будет подвергаться относительнона высокой непривычной нагрузке, к ней предъявляются определенные требования: она должна быть без болезненной при глубокой пальпации по всем областям, иметь слегка коническую форму, сохранную подвижность во всех имеющихся суставах и хорошее функциональное состояние мышц. Рубец на культе должен быть подвижным, не спаянным с подлежащими тканями, безболезненным, не деформированными без признаков воспаления.
+ Формирование культи начинается уже на операциионном столе, продолжается до самого начала протестирования и включает в себя гимнастику, массаж, противоотечные мероприятия, восстановление чувствительности, работу с рубцовыми тканями.
+
+ Адектватность физической нагрузки
+ Правильное разумное движение необходимо и полезно для всех. Оценить, верно ли подобрана нагрузка, Вам поможет специалист-реабилитолог или врач ЛФК. Есть некоторые общие правила, на которые можно ориентироваться:
+ • Во время занятий не нужно задерживать дыхание, если это не специальное упражнение.
+ • Во время занятий не нужно задерживать дыхание, если это не специальное упражнение.
+ • Более простые и доступные упражнения можно выподнять под произвольное дыхание.
+ • Следует исключить натуживание, которое всегда будет свидетельствовать о чрезмерности нагрузки.
+ • Если есть какие-либо сопутствующие заболевания, при составлении индивидуального комплекса необходимо сообщить о них специалисту-реабилитологу для того, чтобы он мог учесть все особенности организма пациента.
+ • В начале занятий при необходимости контролируют пульс и артериальное давление и следят за тем, чтобы не перегружать кардио-респираторную системуму организма. Реакция сердечно-сосудистой системы на нагрузку у людей различается, поэтому важно определить ее еще до начала занятий и всегда учитывать при построении программы.
+ Во время выполнения упражнений нужно следить за дыханием: его нельзя задерживать. Необходимо также освоить технику диафрагмального дыхания. Кроме насыщения организма кислородом, такое дыхание помогает уменьшать нагрузку на сердце и сосуды, снижать отеки и улучшать кровообращение во всем организме. Диафрагмальное дыхание способствует нормализации функционирования пищеварительного тракта: улучшению отхождения желчи из желчного пузыря, улучшению оттока секретов различных пищеварительных желез, повышению моторики кишечника.
+ В случае ампутации конечности в плановом порядке, упражнения, направленные на укрепление различных групп мышц, необходимо начинать выполнять еще до операции, если позволяет состояние пациента. Они улучшат как функциональное состояние мышц всего тела, что позволит после операции быстрее освоить новые умения, необходимые, например, для перемещения с кровати на кресло-коляску, посещения туалета, так и общее физическое состояние для обучения ходьбе.
+ Программа упражнений и двигательная нагрузка подбирается индивидуально лечащим врачом и врачом ЛФК. При выписке из стационара можно получить ининдивидуальную программу для самостоятельных занятий в домашних условиях на первое время.
+ Комплексы упражнений составляются для каждого поциента, исходя из его состояния, возможностей и с учетом индивидуальных особенностей. Перед выпиской из стационара нужно обратиться к своему лечащему врачуили врачу ЛФК за рекомендациями по организации двигательного режима дня и комплексом рекомендуемых упражнений на первое время самостоятельных занятий после выписки. Прекрасным решением будет прохождениение специальной реабилитации в стационаре в отделении восстановительного лечения или в реабилитационном центре.
+
+
+ Организация режима дня после операции
+ Просыпание
+ • Лечение положением: укладывание культи в возвышенное положение на 20-40 минут.
+ • Дыхательная гимнастика лежа, в том числе диафрагмальное дыхание, 3-5 минут.
+ • Присаживание для гигиенических процедур.
+ Завтрак
+ • Отдых лежа или сидя.
+ • Гимнастика для сохранных конечностей и мышц корпуса в исходном положении лежа на спине и/или сидя.
+ • Отдых. Лечение положением 20-40 минут. Дыхательные упражнения.
+ • Свободное время.
+ Обед
+ • Отдых лежа.
+ Сон
+ • Просыпание. Лечение положением: укладывание культи в возвышенное положение на 20-40 минут.
+ • Дыхательная гимнастика лежа, в том числе диафрагмальное дыхание, 3-5 минут.
+ Полдник
+ • Гимнастика для сохранных конечностей и мышц корпуса в исходном положении лежа на спине и /или сидя.
+ • Свободное время.
+ Ужин
+ • Свободное время.
+ • Гигиена.
+ • Дыхательная гимнастика 3-5 минут.
+ Сон
+ • До засыпания - лечение положением 20-40 минут.
+
+
+
+ Организация режима дня второй недели после ампутации
+ Просыпание
+ • Лечение положением: укладывание культи в возвышенное положение на 20-40 минут.
+ • Дыхательная гимнастика лежа, в том числе диафрагмальное дыхание, 3-5 минут.
+ • Присаживание/вставание, посещение санузла для гигиенических процедур.
+ Завтрак без/с посещением столовой
+ • Отдых лежа или сидя.
+ • Гимнастика для сохранных конечностей, мышц корпуса и оперированной конечности в исходном положении лежа на спине и/или сидя.
+ • Отдых. Лечение положением 20-40 минут. Дыхательные упражнения.
+ • Свободное время.
+ Обед
+ • Отдых лежа.
+ Сон
+ • Просыпание. Лечение положением: укладывание культи в возвышенное положение на 20-40 минут.
+ • Дыхательная гимнастика лежа, в том числе диафрагмальное дыхание, 3-5 минут.
+ Полдник
+ • Гимнастика для сохранных конечностей, мышц корпуса и оперированной конечности в исходном положении лежа на спине и /или сидя.
+ • Свободное время.
+ Ужин
+ • Свободное время.
+ • Гигиена.
+ • Дыхательная гимнастика 3-5 минут.
+ Сон
+ • До засыпания - лечение положением 20-40 минут.
+ В дальнейшем для оптимизации программы реабилитации и подготовки к протезированию нужно обратиться в реабилитационный центр или к врачу ЛФК по месту жительства, или, что гораздо удобнее, сразу к врачу-реабилитологу и технику-протезисту в том месте, где планируется протезирование.
+
+
+
+ Поздний послеоперационный период
+ Период от выписки из стационара до начала протезирования
+ Подготовка к протезированию
+ Через несколько недель или месяцев (все индивидуально!) после ампутации при благоприятном течении послеоперационного периода, соответствующей готовности пациента и отсутствии противопоказаний можно приступать к первичному протезированию. Необходимо помнить, что полноценные рубцы формируются в течение 3-6 месяцев, поэтому сроки возможного протезирования не могут быть определены без учета соответствующих сроков физиологических процессов.
+ До начала протезирования пациенту нужно ежедневно заниматься подготовкой: обработкой швов до тех пор, пока это необходимо, как правило, до отпадания корочек; бинтованием культи или ношением компрессионного трикотажа, восстановлением поверхностной чувствительности, элементами массажа культи и работой с рубцами, упражнениями на все группы мышц. Именно на этот период приходится основная работа по подготовке к протезированию. Основные вышеперечисленные мероприятия в полном объеме возможны, когда все ранки перестали сочиться, все корочки отпали, швы и кожа культи стали сухими и чистыми.
+ Постепенно двигательный режим должен расширяться, включать в себя занятия бытовыми домашними делами, прогулки на свежем воздухе, занятия гимнастикой 2 раза в день. Пациента важно привлекать ко всем семейным делам и нагружать работой, с которой он может справиться самостоятельно или с небольшой помощью. В этот период пациент обычно мало общается с врачами, но еще не общается с протезистом, поэтому главной задачей членов семьи является создание благоприятной активной среды для пациента, чтобы поддерживать его в непростой жизненной ситуации, подчеркивать его важность и нужность для семьи, ценность его хорошего самочувствия и настроения. Активная жизненная позиция семьи и пациента - залог успешного результата реабилитации, в частности, протезирования. Пациент должен находиться в среде, где все вокруг понимают - и он в первую очередь, что трудности временные, которые вскоре закончатся, и пациент сможет вернуться к привычной для себя жизни. И вклад членов семьи в этот период времени является во многом определяющим.
+
+
+ Противоотечная терапия
+ Противоотечные мероприятия, кроме гимнастики - это ношение компрессионного трикотажа, силиконового чехла, элементы лимфодренажного массажа и/или бинтование эластичным бинтом. Последний способ наиболее доступен, весьма прост и финансово необременителен. О допустимых сроках начала бинтования спросите своего курирующего врача.
+ Первый раз бинтуют культю на 10, 15 или 20 минут. Затем разбинтовывают и осматривают ее со всех сторон. Как правило, если бинтование проведено правильно, то дискомфортных ощущений, болей или ощущения усиленной пульсации быть не должно. Если они появляются, то терпеть их не нужно, и необходимо сразу разбинтовать культю и осмотреть ее. Если она покраснела или посинела, нужно дать ей отдых до получаса, или до восстановления физиологического цвета кожных покровов. Появление неприятных ощущений во время нахождения культи в бинте говорит о том, что бинтование было неправильным или слишком тугим, а значит, нужно провести необходимые исправления.
+ Если цвет кожных покровов во время бинтования не изменился, не появилось никаких неприятных ощущений, значит, можно забинтовывать снова и уже на более длительное время, например, на 1-2 часа. Потом снова разбинтовать и проверить состояние культи. Таким образом, можно в первые-третьи сутки бинтования накладывать бинт на несколько часов, возможно, с перерывами на пару часов для отдыха культи.
+ Далее необходимо бинтовать на более длительное время и дойти до режима, когда забинтовали культю утром, а сняли бинты только вечером перед сном. При необходимости в течение дня можно перебинтовать культю заново.
+ Утром перед бинтованием хорошо провести процедуру лечения положением и подержать культю в возвышенном положении около получаса; затем забинтовать, не вставая. Таким образом получится, что культя отдыхала всю ночь, утром остаточный отек поможет снять возвышенное положение, и в этом оптимальном состоянии культя будет зафиксирована бинтом, который будет удерживать ее от быстрого возвращения отека.
+ При правильном бинтовании пациенту комфортнее находиться в бинте, чем без него. Научитесь бентовать правильно! Это поможет сформировать культю и уменьшить фантомные боли.
+
+ Техника массажа
+ Перед бинтованием хорошо провести процедуру не только лечения положением, но и легкого лимфодренирующего массажа. Когда корочки отпадут, и с этого момента пройдет еще 7-10 дней, можно начинать аккуратно работать с рубцом.
+ Поверхностные поглаживания можно включать в ререабилитационные мероприятия уже в постоперационный период. Это относительно медленные, ритмичные движения по ходу путей лимфооттока, которые производятся всей плоскостью ладони без образования мягтканевого валика. Область рубца и прилежащие ткани при этом не затрагиваются.
+ В поздний послеоперационный период возможности воздействия расширяются. Лимфодренажный эффект соответствующего массажа очень полезен и с точки зрения уменьшения отека культи, в том числе, перед процедурой бинтования культи. Постепенно вводится глубокое поглаживание, потом растирание.
+ С учетом того, что отек культи поначалу ярко выражен, хорошо процедуру дренирующего массажа проводить по 5-7 минут несколько раз в день, например, после лечения положением перед бинтованием. Хорошо обучить пациента делать это самостоятельно.
+ 1. Начинаем массаж с поглаживания. Сначала - легкие поверхностные прикосновения (6-8 движений), а затем - обхватывающее глубокие поглаживания с полным контактом всей ладонью по направлению от торца культи к туловищу (6-8 движений).
+ 2. Особое внимание необходимо уделять сгибательным и внутренним поверхностям культи и вышележащих сегментов, потому что именно там проходят основные пути лимфооттока.
+ 3. Далее подушечками пальцев выполняем спиралевидные растирания вдоль мышц. Движения медленные и с равномерным давлением на ткани.
+ 4. Со временем можно добавить и еще один массажный прием - разминание. Это самый сложный по исполнению, но самый глубокий по проработке мышц массажный прием.
+ 5. Поверхностное и глубокое поглаживание мягких тканей области рубца. К самому рубцу нужно подходить медленно и осторожно, без излишнего натягивалния тканей.
+ 6. Затем выполняем спиралевидные растирания мягких тканей области рубца подушечками больших пальцев поочередно с каждой стороны от рубца.
+ 7. Далее - разнонаправленное сдвигание мягких тканей области рубца. Прием выполняется медленно, аккуратно и безболезненно.
+ 8. Сдвигание мягких тканей области торца культи необходимо выполнять для сохранения подвижности этих тканей относительно костного компонента.
+ Кроме воздействия на культю эта процедура для многих пациентов важна с точки зрения самопомощи в принятии изменившегося себя. Скорейшее принятие себя с ампутацией способствует скорейшему выходу из депрессивного состояния, характерного для подавляющего большинства пациентов, которые перенесли эту операцию совсем недавно.
+ Для вышележащих от ампутации сегментов можно, со временем, добавить и такой массажный прием как разминание, так как сохранные, но вынужденно мало функционирующие мышцы нуждаются в поддержке.
+ Отдельного внимания требует область послеоперационного рубца. Пока есть корочки в области швов, к рубцу во время массажа не приближаются. Когда все корочки отпадут, и с этого момента пройдет еще 7-10 дней, можно начинать аккуратно работать с рубцом. С одной стороны, необходимо, чтобы рубец был мягкий и эластичный, безболезненный, не спаянный с подлежащими тканями; с другой стороны, работу нужно начинать осторожно и аккуратно, чтобы не перерастянуть покровные ткани и не повредить свежий нежный рубец.
+
+ Профилактика контрактур
+ С точки зрения работы с контрактурами в этот период активно добавляется большое количество упражнений на укрепление мышц-антагонистов. В первые две недели активно работать этими мышцами пациенту может быть тяжело и может доставлять ему неприятные ощущения. Однако, после заживления это уже необходимо делать. Для чего это нужно? Когда мышцы-сгибатели сокращены и образуют сгибательную контрактуру, соответствующие мышцы-разгибатели растянуты и ослаблены. Поэтому логично работать не только на растяжение сокращенных мышц, но и на укрепление антагонистов (разгибателей, в данном случае), чтобы у этих мышц вновь появилась возможность активно работать и удерживать сустав в необходимом положении. Это особенно важно при работе с нижними конечностями, потому что эти ослабленные растянутые мышцы (разгибатели бедра при ампутации на уровне бедра и разгибатели голени при ампутации на уровне голени) при освоении протеза нужны в очень хорошем функциональном состоянии - для обеспечения правильной стабильной надежной опоры и полноценного шага. В комплексе упражнений на эти группы мышц делают акцент и, освоив правильную технику выполнения упражнений, начинают работать с отягощением, с сопротивлением, с большей кратностью повторений и подходов и т.д.
+
+ Фантомные боли
+ Фантомные боли в этот период времени могут начинать уменьшаться, а могут быть еще очень интенсивными и изматывающими. В этом случае необходимо обратиться к врачам. Комплексное лечение у медицинских специалистов часто обеспечивает хороший результат. Также снижению фантомных болей могут способствовать компрессионная терапия (бинтование культи или компрессионный трикотаж), лечебная гимнастика, фантомно-импульсная гимнастика, массаж, различные физиотерапевтические процедуры. Фантомные боли это большая проблема и ее надо решать только вместе с профессионалами.
+ Недостаточно против контрактур работать только растяжкой, обязательно надо улучшать силовые качества мышц-антагонистов, и как можно больше.
+
+
+
diff --git a/app/src/main/res/values/style.xml b/app/src/main/res/values/style.xml
index ee855cc..205b5c1 100644
--- a/app/src/main/res/values/style.xml
+++ b/app/src/main/res/values/style.xml
@@ -52,5 +52,26 @@
@android:color/white
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/settings.gradle b/settings.gradle
index eca12d4..aba2565 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -17,5 +17,5 @@ dependencyResolutionManagement {
}
}
-rootProject.name = "Реабилитация"
+rootProject.name = "Rehabilitation"
include ':app'