diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
index c2779f7..3e1e7f3 100644
--- a/.idea/deploymentTargetDropDown.xml
+++ b/.idea/deploymentTargetDropDown.xml
@@ -7,11 +7,11 @@
-
+
-
+
\ No newline at end of file
diff --git a/app/release/app-release.apk b/app/release/app-release.apk
new file mode 100644
index 0000000..bcaf906
Binary files /dev/null and b/app/release/app-release.apk differ
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index dff9da2..63f9d44 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -30,9 +30,7 @@
android:theme="@style/Theme.Rehabilitation"
android:usesCleartextTraffic="true"
tools:targetApi="31">
-
+
-
-
@@ -60,6 +50,24 @@
android:screenOrientation="portrait"
android:value="" />
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Adapter/VpAdapter.kt b/app/src/main/java/com/example/rehabilitation/Adapter/VpAdapter.kt
new file mode 100644
index 0000000..e7a3c8e
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Adapter/VpAdapter.kt
@@ -0,0 +1,17 @@
+package com.example.rehabilitation.Adapter
+
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentActivity
+import androidx.viewpager2.adapter.FragmentStateAdapter
+
+class VpAdapter(fr_act:FragmentActivity, private val list:List):FragmentStateAdapter(fr_act) {//private val list:List - список с фрагментами сюда передастся, тоесть с двумя фрагментами
+ //Возврощаем для createFragment количество элементов(фрагментов) в листе(List)
+ override fun getItemCount(): Int {
+ return list.size//возврощаем количество фрагметов
+ }
+
+ //Позиция фрагмента или 1 или 2, то есть 0 или 1. И по позиции будут выводится фрагмент.
+ override fun createFragment(position: Int): Fragment {
+ return list[position]//Возврощаем фрагмент из листа по позиции
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Appeals/AppealsFragment.kt b/app/src/main/java/com/example/rehabilitation/Appeals/AppealsFragment.kt
new file mode 100644
index 0000000..363a4ff
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Appeals/AppealsFragment.kt
@@ -0,0 +1,245 @@
+package com.example.rehabilitation.Appeals
+
+import android.content.Intent
+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.FragmentActivity
+import androidx.fragment.app.activityViewModels
+import com.example.rehabilitation.Adapter.VpAdapter
+import com.example.rehabilitation.Appeals.TabLayout.NewAppealsFragment
+import com.example.rehabilitation.Appeals.TabLayout.OldAppealsFragment
+import com.example.rehabilitation.Auth.AuthorizationActivity
+import com.example.rehabilitation.CodeError.Code429Activity
+import com.example.rehabilitation.CodeError.Code500Activity
+import com.example.rehabilitation.Enternet.EnternetActivity
+import com.example.rehabilitation.Enternet.EnternetCheck
+import com.example.rehabilitation.PatientViewModel
+import com.example.rehabilitation.Pref.ConclusionPref
+import com.example.rehabilitation.R
+import com.example.rehabilitation.Retrofit.PatientApi
+import com.example.rehabilitation.databinding.FragmentAppealsBinding
+import com.google.android.material.tabs.TabLayoutMediator
+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.util.Timer
+import kotlin.concurrent.fixedRateTimer
+
+
+class AppealsFragment : Fragment() {
+ private lateinit var binding: FragmentAppealsBinding
+
+ private val modelPatient: PatientViewModel by activityViewModels()
+ private lateinit var patientApi: PatientApi
+ private lateinit var timer: Timer
+
+ val prefPatientConclusion = ConclusionPref()
+
+ //Класс проверки интеренета
+ val enternetCheck = EnternetCheck()
+
+ private val tList = listOf(
+ "новые",
+ "обработанные",
+ )
+
+ //Список с фрагментами для переключения
+ private val flist = listOf(
+ NewAppealsFragment.newInstance(),
+ OldAppealsFragment.newInstance(),
+ )
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentAppealsBinding.inflate(layoutInflater, container, false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ init()
+
+ binding.btnAddMessage.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.CLAppeals, CreateMessageFragment.newInstance())?.commit()
+ binding.ConstrainLayoutProductEdit.visibility = View.GONE
+ binding.CLAppeals.visibility = View.VISIBLE
+ }
+
+// fixedRateTimer("timer", false, 0, 10000) {
+// activity?.runOnUiThread {
+//
+// }
+// }
+ }
+
+
+ private fun getOldAppeals() {
+ initRetrofit()
+ val Tokens = prefPatientConclusion.conclusionToken(requireContext())
+ CoroutineScope(Dispatchers.IO).launch {
+ val listAppeals = patientApi.GetAppealsPatientOld("Bearer $Tokens")
+ requireActivity().runOnUiThread {
+
+ //Фиксируем полученные данные
+ val List = listAppeals.body()
+ val Nice = listAppeals.isSuccessful
+ val Code = listAppeals.code()
+ if(Code==429){
+ val intetn = Intent(requireContext(), Code429Activity::class.java)
+
+ startActivity(intetn)
+ }
+ else if(Code==200) {
+ //Если нету ошибок
+ if (Nice) {
+ //Если нету ошибок
+ if (List != null) {
+ if(List.appeals_old != null){
+ modelPatient.appealsOldList.value = List.appeals_old
+ }
+ }
+
+ }
+ getNewAppeals()
+ }
+ else if (Code == 500) {
+ val intetn = Intent(requireContext(), Code500Activity::class.java)
+
+ startActivity(intetn)
+ }
+ else if (Code == 401) {
+ val intetn = Intent(requireContext(), AuthorizationActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
+
+ }
+
+ }
+ }
+
+ //Получение необработанных сообщений
+ private fun getNewAppeals() {
+ if (enternetCheck.isOnline(requireContext())) {
+ initRetrofit()
+ val Tokens = prefPatientConclusion.conclusionToken(requireContext())
+ CoroutineScope(Dispatchers.IO).launch {
+ val listAppeals = patientApi.GetAppealsPatientNew("Bearer $Tokens")
+ requireActivity().runOnUiThread {
+
+ //Фиксируем полученные данные
+ val List = listAppeals.body()
+ val Nice = listAppeals.isSuccessful
+ val Code = listAppeals.code()
+ if(Code==429){
+ val intetn = Intent(requireContext(), Code429Activity::class.java)
+
+ startActivity(intetn)
+ }
+ else if(Code==200) {
+ //Если нету ошибок
+ if (Nice) {
+ //Если нету ошибок
+ if (List != null) {
+ if(List.appeals_new != null){
+ modelPatient.appealsNewList.value = List.appeals_new
+ }
+ }
+ }
+ }
+ else if (Code == 500) {
+ val intetn = Intent(requireContext(), Code500Activity::class.java)
+
+ startActivity(intetn)
+ }
+ else if (Code == 401) {
+ val intetn = Intent(requireContext(), AuthorizationActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
+ }
+
+ }
+ } else {
+ val intetn = Intent(requireContext(), EnternetActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
+
+ }
+
+ //Инициализируем 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 init() = with(binding) {
+ val adapter = VpAdapter(activity as FragmentActivity, flist)
+ vpProduct.adapter = adapter
+
+ //Переключения (связываем таблаяут(переключатель) с viewpager, чтобы переключать фрагменты)
+ TabLayoutMediator(tabLayoutProduct, vpProduct) { tab, pos ->
+ tab.text =
+ tList[pos]//tab - нажатая кнопка, pos - позиция кнопки, tList[pos] - передаем название по полученной позиции
+ }.attach()// attach() - чтобы все переключалось, а не вывадило постоянно один экран
+
+ //Изменения цвета в зависомости на каком из tabLayout вы находитесь
+ binding.tabLayoutProduct.setTabTextColors(getResources().getColor(R.color.black),
+ getResources().getColor(R.color.white));
+ }
+
+ companion object {
+
+ fun newInstance() = AppealsFragment()
+ }
+
+
+ override fun onResume() {
+ super.onResume()
+ checkForUpdates(true)
+ }
+
+ override fun onStop() {
+ super.onStop()
+ timer.cancel()
+ timer.purge()
+ }
+
+ private fun checkForUpdates(daemonIsTrue: Boolean) {
+
+ timer = fixedRateTimer("default", daemonIsTrue, 0, 15000) {
+ activity?.runOnUiThread {
+ getOldAppeals()
+
+ }
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Appeals/AppealsNewAdapter.kt b/app/src/main/java/com/example/rehabilitation/Appeals/AppealsNewAdapter.kt
new file mode 100644
index 0000000..b38ee1a
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Appeals/AppealsNewAdapter.kt
@@ -0,0 +1,118 @@
+package com.example.rehabilitation.Appeals
+
+import android.annotation.SuppressLint
+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.Appeals.TabLayout.Model.AppealsNewModel
+import com.example.rehabilitation.R
+import com.example.rehabilitation.databinding.ItemAppealsNewBinding
+
+
+class AppealsNewAdapter(val listener_check_apeals: Listener, val listener_patient_apeals: Listener2) :
+ ListAdapter(
+ Comparator()
+ ) {//Productitem - по этой форме будем заполнять.//ProductAdapter.holder - это создаваемый holder который хранит логику как нужно заполнять карточку
+
+
+ //В holder создаетс код с помошью которого мы будем заполнять и сохронять разметку
+ class Holder(view: View, val listener_check_apeals: Listener, val listener_patient_apeals: Listener2) :
+ RecyclerView.ViewHolder(view) {//Класс который будет хранить сссылки на элементы, и отвечает за один элемент за 1 раз, то есть сначсало нулевой элемент заполнит, потом первый, потом второй и т.д.
+ //Для передачи данных
+
+ val binding =
+ ItemAppealsNewBinding.bind(view)//view - здесь храянтся элементы и мы их bind заполним в ListItemBinding//ListItemBinding - это клласс даннйо разметки(карточки) которую мы будем заполнять, а нужна дання переменная(binding), чтобы мжно было при заполнение обращатся к элементам карточки
+
+ var itemTemp: AppealsNewModel? =
+ null//Глобальная переменная для нашего item, чтобы можно было передать данные для нажатия
+
+ //init - дает возможность внутри адаптера обращаться к элементам экрана
+ init {
+ binding.btnAdd.setOnClickListener {//Нажатие на ячейку//itemView - это весь элемент карточки из списка
+ //itemView.setEnabled(false)
+ itemTemp?.let { it1 -> listener_check_apeals.onClickAppeals(it1) }
+ }
+ binding.btnPatient.setOnClickListener {//Нажатие на ячейку//itemView - это весь элемент карточки из списка
+ //itemView.setEnabled(false)
+ itemTemp?.let { it2 -> listener_check_apeals.onClickAppeals(it2) }
+ }
+ }
+
+ @SuppressLint("SuspiciousIndentation")
+ fun bind(item: AppealsNewModel) = with(binding) {//Productitem - перпедаем данные
+ itemTemp = item
+ txtNumber.text = item.number.toString()+"."
+ txtAppeals.text = item.text
+ txtLoginPatient.text = item.login
+
+
+ if (item.expand) {
+ txtAppeals.maxLines = 30
+ } else {
+ txtAppeals.maxLines = 1
+ }
+
+ CardViewNew.setOnClickListener {
+ if (item.expand == false) {
+ txtAppeals.maxLines = 100
+
+ item.expand = true
+ } else {
+ txtAppeals.maxLines = 1
+ item.expand = false
+ }
+ }
+
+
+ }
+ }
+
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Holder {
+ val view = LayoutInflater.from(parent.context)
+ .inflate(R.layout.item_appeals_new, parent, false)//Создаем(надуваем) list_item
+ return Holder(view, listener_check_apeals,listener_patient_apeals)//Через Holder возврощаем view
+ }
+
+ override fun onBindViewHolder(holder: Holder, position: Int) {
+ val view = holder.bind(getItem(position))//Заполняем по позиции карточку
+ }
+
+
+ //Comparator - сравнивает старый список и новый и если что-то изменилось, то работает с конкретным изменением списке, а не весь список переписывает
+ class Comparator : DiffUtil.ItemCallback() {
+ override fun areItemsTheSame(
+ oldItem: AppealsNewModel,
+ newItem: AppealsNewModel
+ ): Boolean {//Тут лучше всего сравнивать по id//oldItem - элементы старого списка, newItem - элементы нового списка//Возврощает Boolean, тоесть есть изменения или нет
+ return oldItem.id == newItem.id//Сравниваем полностью весь список новы и старый, по очередно по одной карточке и по элементно, то есть нулевой элемент, первый, второй и т.д.. Но лучше сравнивать по id списки, а не просто весь список, так как это эфективнее, так как id уникальный(oldItem.id == newItem.id)
+ }
+
+ override fun areContentsTheSame(
+ oldItem: AppealsNewModel,
+ newItem: AppealsNewModel
+ ): Boolean {//Утут нужно сравнивать весь спсок старых элементов и новых
+ return oldItem == newItem//Сравниваем полностью весь список новы и старый
+ }
+ }
+
+
+ interface Listener {
+ fun onClickAppeals(item: AppealsNewModel)
+ }
+
+
+ interface Listener2 {
+ fun onClickAppealsPatient(item: AppealsNewModel)
+ }
+
+
+}
+
+
+
+
diff --git a/app/src/main/java/com/example/rehabilitation/Appeals/AppealsOldAdapter.kt b/app/src/main/java/com/example/rehabilitation/Appeals/AppealsOldAdapter.kt
new file mode 100644
index 0000000..64cb0be
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Appeals/AppealsOldAdapter.kt
@@ -0,0 +1,110 @@
+package com.example.rehabilitation.Appeals
+
+import android.annotation.SuppressLint
+import android.opengl.Visibility
+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.Appeals.TabLayout.Model.AppealsOldModel
+import com.example.rehabilitation.R
+import com.example.rehabilitation.databinding.ItemAppealsOldBinding
+
+
+class AppealsOldAdapter(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 =
+ ItemAppealsOldBinding.bind(view)//view - здесь храянтся элементы и мы их bind заполним в ListItemBinding//ListItemBinding - это клласс даннйо разметки(карточки) которую мы будем заполнять, а нужна дання переменная(binding), чтобы мжно было при заполнение обращатся к элементам карточки
+
+ var itemTemp: AppealsOldModel? =
+ null//Глобальная переменная для нашего item, чтобы можно было передать данные для нажатия
+
+ //init - дает возможность внутри адаптера обращаться к элементам экрана
+ init {
+ itemView.setOnClickListener {//Нажатие на ячейку//itemView - это весь элемент карточки из списка
+ itemView.setEnabled(false)
+ itemTemp?.let { it1 -> listener_zakaz.onClickAppeals(it1) }
+ }
+ }
+
+ @SuppressLint("SuspiciousIndentation")
+ fun bind(item: AppealsOldModel) = with(binding) {//Productitem - перпедаем данные
+ itemTemp = item
+ txtNumber.text = item.number.toString()+"."
+ txtAppeals.text = item.text
+ txtLoginPatient.text = item.login
+
+ if (item.expand) {
+ binding.txtAppeals.maxLines = 100
+
+ } else {
+ binding.txtAppeals.maxLines = 1
+
+ }
+
+ binding.CardViewOld.setOnClickListener {
+ if (item.expand == false) {
+ binding.txtAppeals.maxLines = 100
+ item.expand = true
+ } else {
+ binding.txtAppeals.maxLines = 1
+ item.expand = false
+ }
+ }
+
+ }
+
+
+ }
+
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Holder {
+ val view = LayoutInflater.from(parent.context)
+ .inflate(R.layout.item_appeals_old, 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: AppealsOldModel,
+ newItem: AppealsOldModel
+ ): Boolean {//Тут лучше всего сравнивать по id//oldItem - элементы старого списка, newItem - элементы нового списка//Возврощает Boolean, тоесть есть изменения или нет
+ return oldItem.id == newItem.id//Сравниваем полностью весь список новы и старый, по очередно по одной карточке и по элементно, то есть нулевой элемент, первый, второй и т.д.. Но лучше сравнивать по id списки, а не просто весь список, так как это эфективнее, так как id уникальный(oldItem.id == newItem.id)
+ }
+
+ override fun areContentsTheSame(
+ oldItem: AppealsOldModel,
+ newItem: AppealsOldModel
+ ): Boolean {//Утут нужно сравнивать весь спсок старых элементов и новых
+ return oldItem == newItem//Сравниваем полностью весь список новы и старый
+ }
+ }
+
+ //Интерфейс нажатия на кнопку удалить товар из корзины
+ interface Listener {
+ fun onClickAppeals(item: AppealsOldModel)
+ }
+
+
+}
+
+
+
+
diff --git a/app/src/main/java/com/example/rehabilitation/Appeals/CreateMessageFragment.kt b/app/src/main/java/com/example/rehabilitation/Appeals/CreateMessageFragment.kt
new file mode 100644
index 0000000..3d5f51d
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Appeals/CreateMessageFragment.kt
@@ -0,0 +1,153 @@
+package com.example.rehabilitation.Appeals
+
+import android.content.Intent
+import android.os.Bundle
+import android.transition.TransitionInflater
+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.showCustomInfoToast
+import com.example.rehabilitation.Auth.AuthorizationActivity
+import com.example.rehabilitation.CodeError.Code429Activity
+import com.example.rehabilitation.CodeError.Code500Activity
+import com.example.rehabilitation.Enternet.EnternetActivity
+import com.example.rehabilitation.Enternet.EnternetCheck
+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.FragmentCreateMessageBinding
+import com.example.rehabilitation.model_adapter.DataModel
+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 CreateMessageFragment : Fragment() {
+ private lateinit var binding: FragmentCreateMessageBinding
+ private val dataModel: DataModel by activityViewModels()//Для передачи данных
+ private lateinit var patientApi: PatientApi
+ val prefDoctorConclusion = ConclusionPref()
+ val prefDoctorClear = ClearPref()
+
+ //Класс проверки интеренета
+ val enternetCheck = EnternetCheck()
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentCreateMessageBinding.inflate(layoutInflater,container,false)
+ return binding.root
+
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ val inflater = TransitionInflater.from(requireContext())
+ enterTransition = inflater.inflateTransition(R.transition.slide_right)
+ exitTransition = inflater.inflateTransition(R.transition.slide_right)
+
+
+ binding.btnAddMessagePatient.setOnClickListener{
+ val text = binding.edTextMessagePatient.text.toString()
+ if(text!=""){
+ AddMessageDoctor()
+ }
+ else{
+ Toast(requireContext()).showCustomInfoToast("Поле пустое", requireActivity())
+
+ }
+ }
+
+ binding.btnExit.setOnClickListener{
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.placeHolderFragment, AppealsFragment.newInstance())
+ //?.addToBackStack(null)
+ ?.commit()
+ }
+ }
+
+
+ //Отправка сообщения
+ fun AddMessageDoctor() {
+ if (enternetCheck.isOnline(requireContext())) {
+ initRetrofit()
+ val Tokens = prefDoctorConclusion.conclusionToken(requireContext())
+ CoroutineScope(Dispatchers.IO).launch {
+ val message = patientApi.AddMessagePatient("Bearer $Tokens",binding.edTextMessagePatient.text.toString())
+ requireActivity().runOnUiThread {
+
+ //Фиксируем полученные данные
+ val List = message.body()
+ val Nice = message.isSuccessful
+ val Code = message.code()
+ if(Code==429){
+ val intetn = Intent(requireContext(), Code429Activity::class.java)
+
+ startActivity(intetn)
+ }
+ else if(Code==200) {
+ //Если нету ошибок
+ if (Nice) {
+ //Если нету ошибок
+ if (List != null) {
+ Toast(requireContext()).showCustomInfoToast(List.message, requireActivity())
+
+ }
+
+ }
+ }
+ else if (Code == 500) {
+ val intetn = Intent(requireContext(), Code500Activity::class.java)
+
+ startActivity(intetn)
+ }
+ else if (Code == 401) {
+ val intetn = Intent(requireContext(), AuthorizationActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
+ }
+
+ }
+ } else {
+ val intetn = Intent(requireContext(), EnternetActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
+
+ }
+
+
+ //Инициализируем Retrofit
+ private fun initRetrofit() {
+ val interceptor = HttpLoggingInterceptor()
+ interceptor.level = HttpLoggingInterceptor.Level.BODY
+
+ val client = OkHttpClient
+ .Builder()
+ .addInterceptor(interceptor)
+ .build()
+
+ val retrofit = Retrofit.Builder()
+ .baseUrl("https://rehabilitation.vmeda.org/api/")
+ .client(client)
+ .addConverterFactory(GsonConverterFactory.create())
+ .build()
+
+ patientApi = retrofit.create(PatientApi::class.java)
+
+ }
+
+ companion object {
+
+ fun newInstance() = CreateMessageFragment()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Appeals/TabLayout/Model/AppealsNewListModel.kt b/app/src/main/java/com/example/rehabilitation/Appeals/TabLayout/Model/AppealsNewListModel.kt
new file mode 100644
index 0000000..323469a
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Appeals/TabLayout/Model/AppealsNewListModel.kt
@@ -0,0 +1,6 @@
+package com.example.rehabilitation.Appeals.TabLayout.Model
+
+data class AppealsNewListModel(
+ val appeals_new: List
+)
+
diff --git a/app/src/main/java/com/example/rehabilitation/Appeals/TabLayout/Model/AppealsNewModel.kt b/app/src/main/java/com/example/rehabilitation/Appeals/TabLayout/Model/AppealsNewModel.kt
new file mode 100644
index 0000000..6777bd8
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Appeals/TabLayout/Model/AppealsNewModel.kt
@@ -0,0 +1,16 @@
+package com.example.rehabilitation.Appeals.TabLayout.Model
+
+data class AppealsNewModel(
+ val id: Int,
+ val number: Int,
+ val text: String,
+ val id_patient: Int,
+ val id_doctor: Int,
+ val check: Int,
+ val login: String,
+ val created_at: String,
+ val updated_at: String,
+ var expand : Boolean = false,
+
+ )
+
diff --git a/app/src/main/java/com/example/rehabilitation/Appeals/TabLayout/Model/AppealsOldListModel.kt b/app/src/main/java/com/example/rehabilitation/Appeals/TabLayout/Model/AppealsOldListModel.kt
new file mode 100644
index 0000000..2a0bd3d
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Appeals/TabLayout/Model/AppealsOldListModel.kt
@@ -0,0 +1,6 @@
+package com.example.rehabilitation.Appeals.TabLayout.Model
+
+data class AppealsOldListModel(
+ val appeals_old: List
+)
+
diff --git a/app/src/main/java/com/example/rehabilitation/Appeals/TabLayout/Model/AppealsOldModel.kt b/app/src/main/java/com/example/rehabilitation/Appeals/TabLayout/Model/AppealsOldModel.kt
new file mode 100644
index 0000000..4980560
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Appeals/TabLayout/Model/AppealsOldModel.kt
@@ -0,0 +1,16 @@
+package com.example.rehabilitation.Appeals.TabLayout.Model
+
+data class AppealsOldModel(
+ val id: Int,
+ val number: Int,
+ val text: String,
+ val id_patient: Int,
+ val id_doctor: Int,
+ val check: Int,
+ val login: String,
+ val created_at: String,
+ val updated_at: String,
+ var expand : Boolean = false,
+
+ )
+
diff --git a/app/src/main/java/com/example/rehabilitation/Appeals/TabLayout/NewAppealsFragment.kt b/app/src/main/java/com/example/rehabilitation/Appeals/TabLayout/NewAppealsFragment.kt
new file mode 100644
index 0000000..5ecbe32
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Appeals/TabLayout/NewAppealsFragment.kt
@@ -0,0 +1,284 @@
+package com.example.rehabilitation.Appeals.TabLayout
+
+import android.content.Intent
+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 androidx.recyclerview.widget.GridLayoutManager
+import com.example.admin.Toast.showCustomInfoToast
+import com.example.rehabilitation.Appeals.AppealsNewAdapter
+import com.example.rehabilitation.Appeals.TabLayout.Model.AppealsNewModel
+import com.example.rehabilitation.Auth.AuthorizationActivity
+import com.example.rehabilitation.CodeError.Code429Activity
+import com.example.rehabilitation.CodeError.Code500Activity
+import com.example.rehabilitation.Enternet.EnternetActivity
+import com.example.rehabilitation.Enternet.EnternetCheck
+import com.example.rehabilitation.PatientViewModel
+import com.example.rehabilitation.Pref.ConclusionPref
+import com.example.rehabilitation.Retrofit.PatientApi
+import com.example.rehabilitation.databinding.FragmentNewAppealsBinding
+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 NewAppealsFragment : Fragment(), AppealsNewAdapter.Listener, AppealsNewAdapter.Listener2 {
+ private lateinit var binding: FragmentNewAppealsBinding
+ private val modelPatient: PatientViewModel by activityViewModels()
+ lateinit var adapter: AppealsNewAdapter
+ private lateinit var patientApi: PatientApi
+ val prefPatientConclusion = ConclusionPref()
+
+ //Список обрашений новых
+ var appealsNewList: List? = null
+
+ //Класс проверки интеренета
+ val enternetCheck = EnternetCheck()
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentNewAppealsBinding.inflate(layoutInflater,container,false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ initRcViewAppeals()
+ patientListCurrent()
+ modelPatient.appealsNewList.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
+ if(appealsNewList != it){
+ appealsNewList = it
+ adapter.submitList(it)//Напрямую переадем созданный список в adapter(ProductAdapter)
+ }
+ }
+
+ getNewAppeals()
+ }
+
+ //Получение необработанных сообщений
+ private fun getNewAppeals() {
+ if (enternetCheck.isOnline(requireContext())) {
+ initRetrofit()
+ val Tokens = prefPatientConclusion.conclusionToken(requireContext())
+ CoroutineScope(Dispatchers.IO).launch {
+ val listAppeals = patientApi.GetAppealsPatientNew("Bearer $Tokens")
+ requireActivity().runOnUiThread {
+
+ //Фиксируем полученные данные
+ val List = listAppeals.body()
+ val Nice = listAppeals.isSuccessful
+ val Code = listAppeals.code()
+ if(Code==429){
+ val intetn = Intent(requireContext(), Code429Activity::class.java)
+
+ startActivity(intetn)
+ }
+ else if(Code==200) {
+ //Если нету ошибок
+ if (Nice) {
+ //Если нету ошибок
+ if (List != null) {
+ if(List.appeals_new != null){
+ binding.txtNull.visibility = View.GONE
+ modelPatient.appealsNewList.value = List.appeals_new
+ }
+ else{
+ binding.txtNull.visibility = View.VISIBLE
+ }
+ }
+ else{
+ binding.txtNull.visibility = View.VISIBLE
+ }
+ }
+ }
+ else if (Code == 500) {
+ val intetn = Intent(requireContext(), Code500Activity::class.java)
+ startActivity(intetn)
+ }
+ else if (Code == 401) {
+ val intetn = Intent(requireContext(), AuthorizationActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
+
+
+ }
+
+ }
+ } else {
+ val intetn = Intent(requireContext(), EnternetActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
+
+ }
+
+ private fun getOldAppeals() {
+ if (enternetCheck.isOnline(requireContext())) {
+ initRetrofit()
+ val Tokens = prefPatientConclusion.conclusionToken(requireContext())
+ CoroutineScope(Dispatchers.IO).launch {
+ val listAppeals = patientApi.GetAppealsPatientOld("Bearer $Tokens")
+ requireActivity().runOnUiThread {
+
+ //Фиксируем полученные данные
+ val List = listAppeals.body()
+ val Nice = listAppeals.isSuccessful
+ val Code = listAppeals.code()
+ if(Code==429){
+ val intetn = Intent(requireContext(), Code429Activity::class.java)
+
+ startActivity(intetn)
+ }
+ else if(Code==200) {
+ //Если нету ошибок
+ if (Nice) {
+ //Если нету ошибок
+ if (List != null) {
+ if(List.appeals_old != null){
+ // binding.txtNull.visibility = View.GONE
+ modelPatient.appealsOldList.value = List.appeals_old
+ }
+ else{
+ // binding.txtNull.visibility = View.VISIBLE
+ }
+ }else{
+ // binding.txtNull.visibility = View.VISIBLE
+ }
+
+ }
+ }
+ else if (Code == 500) {
+ val intetn = Intent(requireContext(), Code500Activity::class.java)
+
+ startActivity(intetn)
+ }
+ else if (Code == 401) {
+ val intetn = Intent(requireContext(), AuthorizationActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
+
+
+
+ }
+
+ }
+ } else {
+ val intetn = Intent(requireContext(), EnternetActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
+
+ }
+
+ //Получение необработанных сообщений
+ private fun addCheckAppeals(id:Int,id_patient:Int) {
+ if (enternetCheck.isOnline(requireContext())) {
+ initRetrofit()
+ val Tokens = prefPatientConclusion.conclusionToken(requireContext())
+ CoroutineScope(Dispatchers.IO).launch {
+ val listAppeals = patientApi.UpdateMessagePatient("Bearer $Tokens",id)
+ requireActivity().runOnUiThread {
+
+ //Фиксируем полученные данные
+ val List = listAppeals.body()
+ val Nice = listAppeals.isSuccessful
+ val Code = listAppeals.code()
+ if(Code==429){
+ val intetn = Intent(requireContext(), Code429Activity::class.java)
+ startActivity(intetn)
+ }
+ else if(Code==200) {
+ //Если нету ошибок
+ if (Nice) {
+ //Если нету ошибок
+ if (List != null) {
+ Toast(requireContext()).showCustomInfoToast(List.message, requireActivity())
+ getNewAppeals()
+ getOldAppeals()
+ }
+
+ }
+ }
+ else if (Code == 500) {
+ val intetn = Intent(requireContext(), Code500Activity::class.java)
+ startActivity(intetn)
+ }
+ else if (Code == 401) {
+ val intetn = Intent(requireContext(), AuthorizationActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
+
+ }
+
+ }
+ } else {
+ val intetn = Intent(requireContext(), EnternetActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
+
+ }
+
+
+
+ //Инициализируем Retrofit
+ private fun initRetrofit() {
+ val interceptor = HttpLoggingInterceptor()
+ interceptor.level = HttpLoggingInterceptor.Level.BODY
+
+ val client = OkHttpClient
+ .Builder()
+ .addInterceptor(interceptor)
+ .build()
+
+ val retrofit = Retrofit.Builder()
+ .baseUrl("https://rehabilitation.vmeda.org/api/")
+ .client(client)
+ .addConverterFactory(GsonConverterFactory.create())
+ .build()
+
+ patientApi = retrofit.create(PatientApi::class.java)
+
+ }
+
+ //Вывод прогресса на один день
+ private fun patientListCurrent() = with(binding) {
+// model.appealsAllCurrent.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
+//
+// }
+
+ }
+
+ //Инициализация списка
+ private fun initRcViewAppeals() = with(binding) {
+ rcView.layoutManager = GridLayoutManager(requireContext(),1)//По вертикали будет выводить по умолчанию
+ adapter = AppealsNewAdapter(this@NewAppealsFragment,this@NewAppealsFragment)
+ rcView.adapter = adapter
+ }
+
+ companion object {
+
+ fun newInstance() = NewAppealsFragment()
+ }
+
+ override fun onClickAppeals(item: AppealsNewModel) {
+ addCheckAppeals(item.id,item.id_patient)
+ }
+
+ override fun onClickAppealsPatient(item: AppealsNewModel) {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Appeals/TabLayout/OldAppealsFragment.kt b/app/src/main/java/com/example/rehabilitation/Appeals/TabLayout/OldAppealsFragment.kt
new file mode 100644
index 0000000..ddddd57
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Appeals/TabLayout/OldAppealsFragment.kt
@@ -0,0 +1,168 @@
+package com.example.rehabilitation.Appeals.TabLayout
+
+import android.annotation.SuppressLint
+import android.content.Intent
+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.activityViewModels
+import androidx.recyclerview.widget.GridLayoutManager
+import com.example.rehabilitation.Appeals.AppealsOldAdapter
+import com.example.rehabilitation.Appeals.TabLayout.Model.AppealsNewModel
+import com.example.rehabilitation.Appeals.TabLayout.Model.AppealsOldModel
+import com.example.rehabilitation.Auth.AuthorizationActivity
+import com.example.rehabilitation.CodeError.Code429Activity
+import com.example.rehabilitation.CodeError.Code500Activity
+import com.example.rehabilitation.Enternet.EnternetActivity
+import com.example.rehabilitation.Enternet.EnternetCheck
+import com.example.rehabilitation.PatientViewModel
+import com.example.rehabilitation.Pref.ConclusionPref
+import com.example.rehabilitation.Retrofit.PatientApi
+import com.example.rehabilitation.databinding.FragmentOldAppealsBinding
+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 OldAppealsFragment : Fragment(), AppealsOldAdapter.Listener {
+ private lateinit var binding: FragmentOldAppealsBinding
+ private val model: PatientViewModel by activityViewModels()
+ lateinit var adapter: AppealsOldAdapter
+ private lateinit var patientApi: PatientApi
+ val prefPatientConclusion = ConclusionPref()
+
+ //Класс проверки интеренета
+ val enternetCheck = EnternetCheck()
+
+ //Список обрашений старых
+ var appealsOldList: List? = null
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentOldAppealsBinding.inflate(layoutInflater,container,false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ initRcViewAppeals()
+ appealsAllCurrent()
+ model.appealsOldList.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
+ if(appealsOldList != it){
+ appealsOldList = it
+ adapter.submitList(it)//Напрямую переадем созданный список в adapter(ProductAdapter)
+ }
+ }
+
+ getOldAppeals()
+ }
+
+ @SuppressLint("SuspiciousIndentation")
+ private fun getOldAppeals() {
+ if (enternetCheck.isOnline(requireContext())) {
+ initRetrofit()
+ val Tokens = prefPatientConclusion.conclusionToken(requireContext())
+ CoroutineScope(Dispatchers.IO).launch {
+ val listAppeals = patientApi.GetAppealsPatientOld("Bearer $Tokens")
+ requireActivity().runOnUiThread {
+
+ //Фиксируем полученные данные
+ val List = listAppeals.body()
+ val Nice = listAppeals.isSuccessful
+ val Code = listAppeals.code()
+ if(Code==429){
+ val intetn = Intent(requireContext(), Code429Activity::class.java)
+
+ startActivity(intetn)
+ }
+ else if(Code==200) {
+ //Если нету ошибок
+ if (Nice) {
+ //Если нету ошибок
+ if (List != null) {
+ if(List.appeals_old != null){
+ binding.txtNull.visibility = View.GONE
+ model.appealsOldList.value = List.appeals_old
+ }
+ else{
+ binding.txtNull.visibility = View.VISIBLE
+ }
+ }else{
+ binding.txtNull.visibility = View.VISIBLE
+ }
+
+ }
+ }
+ else if (Code == 500) {
+ val intetn = Intent(requireContext(), Code500Activity::class.java)
+
+ startActivity(intetn)
+ }
+ else if (Code == 401) {
+ val intetn = Intent(requireContext(), AuthorizationActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
+
+
+ }
+
+ }
+ } else {
+ val intetn = Intent(requireContext(), EnternetActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
+ }
+
+ //Инициализируем Retrofit
+ private fun initRetrofit() {
+ val interceptor = HttpLoggingInterceptor()
+ interceptor.level = HttpLoggingInterceptor.Level.BODY
+
+ val client = OkHttpClient
+ .Builder()
+ .addInterceptor(interceptor)
+ .build()
+
+ val retrofit = Retrofit.Builder()
+ .baseUrl("https://rehabilitation.vmeda.org/api/")
+ .client(client)
+ .addConverterFactory(GsonConverterFactory.create())
+ .build()
+
+ patientApi = retrofit.create(PatientApi::class.java)
+
+ }
+
+ //Вывод прогресса на один день
+ private fun appealsAllCurrent() = with(binding) {
+// model.appealsAllCurrent.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
+//
+// }
+
+ }
+
+ //Инициализация списка
+ private fun initRcViewAppeals() = with(binding) {
+ rcView.layoutManager = GridLayoutManager(requireContext(),1)//По вертикали будет выводить по умолчанию
+ adapter = AppealsOldAdapter(this@OldAppealsFragment)
+ rcView.adapter = adapter
+ }
+ companion object {
+
+ fun newInstance() = OldAppealsFragment()
+ }
+
+ override fun onClickAppeals(item: AppealsOldModel) {
+
+ }
+}
\ 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 6dac35a..2e7a06d 100644
--- a/app/src/main/java/com/example/rehabilitation/Auth/AuthFragment.kt
+++ b/app/src/main/java/com/example/rehabilitation/Auth/AuthFragment.kt
@@ -1,38 +1,37 @@
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 com.example.admin.Toast.showCustomDangerToast
import com.example.admin.Toast.showCustomInfoToast
import com.example.rehabilitation.Auth.Model.AuthModel
+import com.example.rehabilitation.CodeError.Code429Activity
+import com.example.rehabilitation.CodeError.Code500Activity
import com.example.rehabilitation.MainActivity
import com.example.rehabilitation.databinding.FragmentAuthBinding
import com.example.rehabilitation.UserPatientToken
-import com.example.rehabilitation.Auth.Model.PatientModel
+import com.example.rehabilitation.Enternet.EnternetActivity
+import com.example.rehabilitation.Enternet.EnternetCheck
import com.example.rehabilitation.MainFragment
import com.example.rehabilitation.PatientViewModel
+import com.example.rehabilitation.Pref.ClearPref
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.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
@@ -47,7 +46,9 @@ class AuthFragment : Fragment() {
private var Token = ""
val prefPatientSave = SavePref()
val prefPatientConclusion = ConclusionPref()
-
+ val prefPatientClear = ClearPref()
+ //Класс проверки интеренета
+ val enternetCheck = EnternetCheck()
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
@@ -60,6 +61,7 @@ class AuthFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.txtError.text = ""
+// prefPatientClear.clearToken(requireContext())
Token = prefPatientConclusion.conclusionToken(requireContext())
//Авиризация пациента
@@ -81,16 +83,16 @@ class AuthFragment : Fragment() {
}
}
- //Если пользователь решил зайти в аккаунт врача и не подумал о том что не сможет вернуться со страницы авторизации, то он может нажать данную кнопку, и в случае если он был авторизован, то его вернет в приложение
- binding.btnBack.setOnClickListener {
- if (UserPatientToken != "") {
- activity?.supportFragmentManager?.beginTransaction()
- ?.replace(R.id.CLMain, MainFragment.newInstance())
- ?.commit()
- } else {
- Toast(requireContext()).showCustomInfoToast("Авторизуйтесь", requireActivity())
- }
- }
+// //Если пользователь решил зайти в аккаунт врача и не подумал о том что не сможет вернуться со страницы авторизации, то он может нажать данную кнопку, и в случае если он был авторизован, то его вернет в приложение
+// binding.btnBack.setOnClickListener {
+// if (UserPatientToken != "") {
+// activity?.supportFragmentManager?.beginTransaction()
+// ?.replace(R.id.CLMain, MainFragment.newInstance())
+// ?.commit()
+// } else {
+// Toast(requireContext()).showCustomInfoToast("Авторизуйтесь", requireActivity())
+// }
+// }
}
@@ -106,7 +108,7 @@ class AuthFragment : Fragment() {
.build()
val retrofit = Retrofit.Builder()
- .baseUrl("http://mobileapp.vmeda.org/api/")
+ .baseUrl("https://rehabilitation.vmeda.org/api/")
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build()
@@ -115,60 +117,100 @@ class AuthFragment : Fragment() {
}
- //Получения списка пациентов
- 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()
- }
-
- }
- }
+// //Получения списка пациентов
+// fun BeforeQuestionnaire(item: BeforeQuestionnaireModel) {
+// if (enternetCheck.isOnline(requireContext())) {
+// 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()
+// }
+//
+// }
+// } else {
+// activity?.finish()
+// val intetn = Intent(requireContext(), EnternetActivity::class.java)
+// startActivity(intetn)
+// }
+//
+// }
private fun AuthorizationPatient(authModel: AuthModel) {
- initRetrofit()
- CoroutineScope(Dispatchers.IO).launch {
+ if (enternetCheck.isOnline(requireContext())) {
+ initRetrofit()
+ CoroutineScope(Dispatchers.IO).launch {
- val response = patientApi.LoginPatient(authModel)
- requireActivity().runOnUiThread {
- val user = response.body()
- //Если есть такой пользователь
- if (user != null) {
+ val response = patientApi.LoginPatient(authModel)
+ requireActivity().runOnUiThread {
- //PatientVewModel.token.value = user.token
- prefPatientSave.saveToken(requireContext(),user.token)
- val intetn = Intent(requireContext(), MainActivity::class.java)
- startActivity(intetn)
- activity?.finish()
- }
- else{
- Toast(requireContext()).showCustomInfoToast(
- "Такого пользователя нету",
- requireActivity()
- )
+ //Фиксируем полученные данные
+ val List = response.body()
+ val Nice = response.isSuccessful
+ val Code = response.code()
+ if(Code==429){
+ val intetn = Intent(requireContext(), Code429Activity::class.java)
+
+ startActivity(intetn)
+ }
+ else if(Code==200) {
+ //Если нету ошибок
+ if (Nice) {
+ //Если есть такой пользователь
+ if (List != null) {
+
+ //PatientVewModel.token.value = user.token
+ prefPatientSave.saveToken(requireContext(),List.token)
+ val intetn = Intent(requireContext(), MainActivity::class.java)
+ startActivity(intetn)
+
+ }
+ else{
+ Toast(requireContext()).showCustomInfoToast(
+ "Такого пользователя нету",
+ requireActivity()
+ )
+ }
+
+ }
+ }
+// else if (Code == 500) {
+// val intetn = Intent(requireContext(), Code500Activity::class.java)
+//
+// startActivity(intetn)
+// }
+// else if (Code == 401) {
+// val intetn = Intent(requireContext(), AuthorizationActivity::class.java)
+// activity?.finish()
+// startActivity(intetn)
+// }
}
}
+ } else {
+
+ val intetn = Intent(requireContext(), EnternetActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
}
+
}
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 be26faa..5695cfe 100644
--- a/app/src/main/java/com/example/rehabilitation/Auth/AuthorizationActivity.kt
+++ b/app/src/main/java/com/example/rehabilitation/Auth/AuthorizationActivity.kt
@@ -16,13 +16,15 @@ class AuthorizationActivity : AppCompatActivity() {
binding = ActivityAuthorizationBinding.inflate(layoutInflater)
setContentView(binding.root)
+ //Вывод фрагмента на активити при первоначальной загрузке
+ supportFragmentManager.beginTransaction()
+ .replace(R.id.CLAuth, AuthFragment.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/Calendare/CalendarFragment.kt b/app/src/main/java/com/example/rehabilitation/Calendare/CalendarFragment.kt
index a9497b1..daa3124 100644
--- a/app/src/main/java/com/example/rehabilitation/Calendare/CalendarFragment.kt
+++ b/app/src/main/java/com/example/rehabilitation/Calendare/CalendarFragment.kt
@@ -1,44 +1,26 @@
package com.example.rehabilitation.Calendare
import android.annotation.SuppressLint
-import android.graphics.Typeface
+import android.content.Intent
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.Auth.AuthorizationActivity
+import com.example.rehabilitation.CodeError.Code429Activity
+import com.example.rehabilitation.CodeError.Code500Activity
+import com.example.rehabilitation.Enternet.EnternetActivity
+import com.example.rehabilitation.Enternet.EnternetCheck
+import com.example.rehabilitation.PatientViewModel
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
@@ -46,29 +28,36 @@ 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.fixedRateTimer
import kotlin.concurrent.timerTask
-class CalendarFragment : Fragment() {
+class CalendarFragment : Fragment(),CalendareListAdapter.Listener {
private lateinit var binding: FragmentCalendarBinding
- lateinit var adapterDay: DayAdapter
- private val model: MainViewModel by activityViewModels()//Инициализировали класс
+ lateinit var adapterCalendare: CalendareListAdapter
+ private val modelPatient: PatientViewModel by activityViewModels()//Инициализировали класс
private lateinit var patientApi: PatientApi
- private var selectedDate: LocalDate? = null
+ private lateinit var timer: Timer
+
val prefPatientConclusion = ConclusionPref()
- private val flightsAdapter = CalendareAdapter()
- //Для разрешения проверки количества дней
- var lookDateSportMax = false
+
+
+
+ //Календарь
+ var listCalendare:List? = null
@SuppressLint("NewApi")
//Загрузка данных для календаря
var calendare = false
+ //Класс проверки интеренета
+ val enternetCheck = EnternetCheck()
+
+ var infoVisibleCalendare = false
+
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
@@ -81,14 +70,44 @@ class CalendarFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
+
if(isAdded) {
- calendare = false
- initRcViewCalendareMoment()
+ visibleLoad()
+ initRcView()
+ initRetrofit()
APIliveCountCalendareCurrent()
+
+
+ modelPatient.calendareList.observe(viewLifecycleOwner){
+ if(listCalendare != it){
+ listCalendare = it
+ adapterCalendare.submitList(it)
+ }
+ visibleCalendare()
+ }
+
+// fixedRateTimer("timer", false, 0, 10000) {
+// activity?.runOnUiThread {
+//
+// }
+// }
}
+ binding.btnInfoCalendare.setOnClickListener{
+ if(infoVisibleCalendare == false){
+ infoVisibleCalendare = true
+ binding.CVInfoCalendare.visibility = View.VISIBLE
+ }
+ else{
+ infoVisibleCalendare = false
+ binding.CVInfoCalendare.visibility = View.GONE
+ }
+
+ }
}
+
+
fun visibleCalendare(){
binding.CLCalendare.visibility = View.VISIBLE
binding.CLLoad.visibility = View.GONE
@@ -102,55 +121,15 @@ class CalendarFragment : Fragment() {
- @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 initRcView() = with(binding) {
+ rcView.layoutManager = GridLayoutManager(requireContext(), 1)//По вертикали будет выводить по умолчанию
+ adapterCalendare = CalendareListAdapter(this@CalendarFragment)
+ rcView.adapter = adapterCalendare
+ //binding.rcVIewDayList.smoothScrollToPosition(0);
}
- private fun initRcViewCalendareMoment() = with(binding) {
- exFiveRv.layoutManager = GridLayoutManager(requireContext(), 1)//По вертикали будет выводить по умолчанию
- exFiveRv.adapter = flightsAdapter
- }
//Инициализация запроса
@@ -165,7 +144,8 @@ class CalendarFragment : Fragment() {
//Базовая ссылка
val retrofit = Retrofit.Builder()
- .baseUrl("http://mobileapp.vmeda.org/api/").client(client)
+ .baseUrl("https://rehabilitation.vmeda.org/api/")
+ .client(client)
.addConverterFactory(GsonConverterFactory.create())
.build()
patientApi = retrofit.create(PatientApi::class.java)//Экземпляр
@@ -173,137 +153,92 @@ class CalendarFragment : Fragment() {
//Функция получения данных для заполнения календаря
private fun APIliveCountCalendareCurrent() {
- visibleLoad()
- initRetrofit()
+ if (enternetCheck.isOnline(requireContext())) {
- val Tokens = prefPatientConclusion.conclusionToken(requireContext())
- CoroutineScope(Dispatchers.IO).launch {
- val Calendare = patientApi.PatientCalendareDay("Bearer $Tokens")
+ initRetrofit()
- 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()
+ val Tokens = prefPatientConclusion.conclusionToken(requireContext())
+ CoroutineScope(Dispatchers.IO).launch {
+ val Calendare = patientApi.GetCalendare("Bearer $Tokens")
- }
- 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()
- }
+ //Фиксируем полученные данные
+ val List = Calendare.body()
+ val Nice = Calendare.isSuccessful
+ val Code = Calendare.code()
+ if(Code==429){
+ val intetn = Intent(requireContext(), Code429Activity::class.java)
- 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)
- }
+ startActivity(intetn)
}
- }
- }
- }
- 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
+ else if(Code==200) {
+ //Если нету ошибок
+ if (Nice) {
+ //Если нету ошибок
+ if (List != null) {
+ Log.i("CalendareList_calendare_day", List.calendare_day.toString())
+ modelPatient.calendareList.value = List.calendare_day
}
+
+ }
+ }
+ else if (Code == 500) {
+ val intetn = Intent(requireContext(), Code500Activity::class.java)
+
+ startActivity(intetn)
+ }
+ else if (Code == 401) {
+ val intetn = Intent(requireContext(), AuthorizationActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
}
}
}
+ } else {
+ val intetn = Intent(requireContext(), EnternetActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
}
+
+
+
+
+
companion object {
fun newInstance() = CalendarFragment()
}
+ override fun onClickCalendare(item: CalendareModel) {
+
+ }
+
+
+ override fun onResume() {
+ super.onResume()
+ checkForUpdates(true)
+ }
+
+ override fun onStop() {
+ super.onStop()
+ timer.cancel()
+ timer.purge()
+ }
+
+ private fun checkForUpdates(daemonIsTrue: Boolean) {
+
+ timer = fixedRateTimer("default", daemonIsTrue, 0, 15000) {
+ activity?.runOnUiThread {
+ APIliveCountCalendareCurrent()
+ }
+ }
+
+ }
+
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Calendare/Calendare/Utils.kt b/app/src/main/java/com/example/rehabilitation/Calendare/Calendare/Utils.kt
deleted file mode 100644
index 9551c1a..0000000
--- a/app/src/main/java/com/example/rehabilitation/Calendare/Calendare/Utils.kt
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.example.rehabilitation.Calendare.Calendare
-
-import android.content.Context
-import android.graphics.drawable.Drawable
-import android.util.TypedValue
-import android.view.LayoutInflater
-import android.view.View
-import android.view.inputmethod.InputMethodManager
-import android.widget.TextView
-import androidx.annotation.ColorRes
-import androidx.annotation.DrawableRes
-import androidx.core.content.ContextCompat
-import androidx.fragment.app.Fragment
-import androidx.lifecycle.findViewTreeLifecycleOwner
-import com.example.rehabilitation.Calendare.Calendare.shared.StatusBarColorLifecycleObserver
-
-
-fun View.makeVisible() {
- visibility = View.VISIBLE
-}
-
-fun View.makeInVisible() {
- visibility = View.INVISIBLE
-}
-
-fun View.makeGone() {
- visibility = View.GONE
-}
-
-fun dpToPx(dp: Int, context: Context): Int =
- TypedValue.applyDimension(
- TypedValue.COMPLEX_UNIT_DIP,
- dp.toFloat(),
- context.resources.displayMetrics,
- ).toInt()
-
-internal val Context.layoutInflater: LayoutInflater
- get() = LayoutInflater.from(this)
-
-internal val Context.inputMethodManager
- get() = this.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
-
-internal fun Context.getDrawableCompat(@DrawableRes drawable: Int): Drawable =
- requireNotNull(ContextCompat.getDrawable(this, drawable))
-
-internal fun Context.getColorCompat(@ColorRes color: Int) =
- ContextCompat.getColor(this, color)
-
-internal fun TextView.setTextColorRes(@ColorRes color: Int) =
- setTextColor(context.getColorCompat(color))
-
-fun Fragment.addStatusBarColorUpdate(@ColorRes colorRes: Int) {
- view?.findViewTreeLifecycleOwner()?.lifecycle?.addObserver(
- StatusBarColorLifecycleObserver(
- requireActivity(),
- requireContext().getColorCompat(colorRes),
- ),
- )
-}
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
deleted file mode 100644
index 0d90212..0000000
--- a/app/src/main/java/com/example/rehabilitation/Calendare/Calendare/shared/Flight.kt
+++ /dev/null
@@ -1,67 +0,0 @@
-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/Calendare/Calendare/shared/StatusBarColorLifecycleObserver.kt b/app/src/main/java/com/example/rehabilitation/Calendare/Calendare/shared/StatusBarColorLifecycleObserver.kt
deleted file mode 100644
index 2852497..0000000
--- a/app/src/main/java/com/example/rehabilitation/Calendare/Calendare/shared/StatusBarColorLifecycleObserver.kt
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.example.rehabilitation.Calendare.Calendare.shared
-
-import android.annotation.SuppressLint
-import android.app.Activity
-import android.graphics.Color
-import android.os.Build
-import android.view.View
-import androidx.annotation.ColorInt
-import androidx.core.content.ContextCompat
-import androidx.core.graphics.ColorUtils
-import androidx.lifecycle.DefaultLifecycleObserver
-import androidx.lifecycle.LifecycleOwner
-import com.example.rehabilitation.R
-
-import java.lang.ref.WeakReference
-
-class StatusBarColorLifecycleObserver(
- activity: Activity,
- @ColorInt private val color: Int,
-) : DefaultLifecycleObserver {
- private val isLightColor = ColorUtils.calculateLuminance(color) > 0.5
- private val defaultStatusBarColor = R.color.colorPrimaryDark
- private val activity = WeakReference(activity)
-
- override fun onStart(owner: LifecycleOwner) {
- activity.get()?.window?.apply {
- statusBarColor = color
- if (isLightColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
- decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
- }
- }
- }
-
- @SuppressLint("ResourceAsColor")
- override fun onStop(owner: LifecycleOwner) {
- activity.get()?.window?.apply {
- statusBarColor = defaultStatusBarColor
- if (isLightColor) decorView.systemUiVisibility = 0
- }
- }
-
- override fun onDestroy(owner: LifecycleOwner) = activity.clear()
-}
diff --git a/app/src/main/java/com/example/rehabilitation/Calendare/Calendare/shared/Utils.kt b/app/src/main/java/com/example/rehabilitation/Calendare/Calendare/shared/Utils.kt
deleted file mode 100644
index 5ccf09a..0000000
--- a/app/src/main/java/com/example/rehabilitation/Calendare/Calendare/shared/Utils.kt
+++ /dev/null
@@ -1,57 +0,0 @@
-package com.example.rehabilitation.Calendare.Calendare.shared
-
-import android.annotation.SuppressLint
-import android.app.Activity
-import android.content.Context
-import android.content.ContextWrapper
-import com.kizitonwose.calendar.core.Week
-import com.kizitonwose.calendar.core.yearMonth
-import java.time.DayOfWeek
-import java.time.Month
-import java.time.YearMonth
-import java.time.format.TextStyle
-import java.util.*
-
-@SuppressLint("NewApi")
-fun YearMonth.displayText(short: Boolean = false): String {
- return "${this.month.displayText(short = short)} ${this.year}"
-}
-
-@SuppressLint("NewApi")
-fun Month.displayText(short: Boolean = true): String {
- val style = if (short) TextStyle.SHORT else TextStyle.FULL
- return getDisplayName(style, Locale.ENGLISH)
-}
-
-@SuppressLint("NewApi")
-fun DayOfWeek.displayText(uppercase: Boolean = false): String {
- return getDisplayName(TextStyle.SHORT, Locale.ENGLISH).let { value ->
- if (uppercase) value.uppercase(Locale.ENGLISH) else value
- }
-}
-
-fun Context.findActivity(): Activity {
- var context = this
- while (context is ContextWrapper) {
- if (context is Activity) return context
- context = context.baseContext
- }
- throw IllegalStateException("no activity")
-}
-
-@SuppressLint("NewApi")
-fun getWeekPageTitle(week: Week): String {
- val firstDate = week.days.first().date
- val lastDate = week.days.last().date
- return when {
- firstDate.yearMonth == lastDate.yearMonth -> {
- firstDate.yearMonth.displayText()
- }
- firstDate.year == lastDate.year -> {
- "${firstDate.month.displayText(short = false)} - ${lastDate.yearMonth.displayText()}"
- }
- else -> {
- "${firstDate.yearMonth.displayText()} - ${lastDate.yearMonth.displayText()}"
- }
- }
-}
diff --git a/app/src/main/java/com/example/rehabilitation/Calendare/CalendareAdapter.kt b/app/src/main/java/com/example/rehabilitation/Calendare/CalendareAdapter.kt
deleted file mode 100644
index 456a0f3..0000000
--- a/app/src/main/java/com/example/rehabilitation/Calendare/CalendareAdapter.kt
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.example.rehabilitation.Calendare.Calendare
-
-import android.annotation.SuppressLint
-import android.view.ViewGroup
-import androidx.recyclerview.widget.RecyclerView
-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 :
- RecyclerView.Adapter() {
-
- val flights = mutableListOf()
-
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Example5FlightsViewHolder {
- return Example5FlightsViewHolder(
- Example5EventItemViewv2Binding.inflate(parent.context.layoutInflater, parent, false),
- )
- }
-
- override fun onBindViewHolder(viewHolder: Example5FlightsViewHolder, position: Int) {
- viewHolder.bind(flights[position])
- }
-
- override fun getItemCount(): Int = flights.size
-
- inner class Example5FlightsViewHolder(val binding: Example5EventItemViewv2Binding) :
- RecyclerView.ViewHolder(binding.root) {
-
- @SuppressLint("NewApi")
- fun bind(flight: Flight) {
- binding.itemFlightDateText.apply {
- text = flightDateTimeFormatter.format(flight.time)
- setBackgroundColor(itemView.context.getColorCompat(flight.color))
- }
-
- binding.txtItem.text = flight.item
- }
- }
-}
diff --git a/app/src/main/java/com/example/rehabilitation/Calendare/CalendareListAdapter.kt b/app/src/main/java/com/example/rehabilitation/Calendare/CalendareListAdapter.kt
new file mode 100644
index 0000000..94c957c
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Calendare/CalendareListAdapter.kt
@@ -0,0 +1,123 @@
+package com.example.rehabilitation.Calendare
+
+import android.annotation.SuppressLint
+import android.graphics.Color
+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 com.example.rehabilitation.R
+import com.example.rehabilitation.databinding.ItemCalendareBinding
+import java.time.LocalDate
+
+
+class CalendareListAdapter(val listener: Listener) :
+ ListAdapter(
+ Comparator()
+ ) {//Productitem - по этой форме будем заполнять.//ProductAdapter.holder - это создаваемый holder который хранит логику как нужно заполнять карточку
+
+
+ //В holder создаетс код с помошью которого мы будем заполнять и сохронять разметку
+ class Holder(view: View, val listener: Listener) :
+ RecyclerView.ViewHolder(view) {//Класс который будет хранить сссылки на элементы, и отвечает за один элемент за 1 раз, то есть сначсало нулевой элемент заполнит, потом первый, потом второй и т.д.
+ //Для передачи данных
+
+ val binding = ItemCalendareBinding.bind(view)//view - здесь храянтся элементы и мы их bind заполним в ListItemBinding//ListItemBinding - это клласс даннйо разметки(карточки) которую мы будем заполнять, а нужна дання переменная(binding), чтобы мжно было при заполнение обращатся к элементам карточки
+
+ var itemTemp: CalendareModel? =
+ null//Глобальная переменная для нашего item, чтобы можно было передать данные для нажатия
+
+ //init - дает возможность внутри адаптера обращаться к элементам экрана
+ init {
+ itemView.setOnClickListener {//Нажатие на ячейку//itemView - это весь элемент карточки из списка
+ //itemView.setEnabled(false)
+ itemTemp?.let { it1 -> listener.onClickCalendare(it1) }
+
+ }
+ }
+
+ @SuppressLint("SuspiciousIndentation", "SetTextI18n")
+ fun bind(item: CalendareModel) = with(binding) {//Productitem - перпедаем данные
+ itemTemp = item
+ txtDay.text = item.day
+ val date1 = item.date[8];
+ val date2 = item.date[9];
+ val date3 = item.date[5];
+ val date4 = item.date[6];
+ val date5 = item.date[0];
+ val date6 = item.date[1];
+ val date7 = item.date[2];
+ val date8 = item.date[3];
+ txtDate.text = date1+""+date2+"."+date3+""+date4+"."+date5+""+date6+""+date7+""+date8
+
+
+
+
+ if(item.block != null){
+ binding.CVBlock.setCardBackgroundColor(Color.parseColor("#FF0000"))
+ }
+ else if(item.pause != null){
+ binding.CVPause.setCardBackgroundColor(Color.parseColor("#FFA355"))
+ }
+ if(item.id_after_questionnaire != null){
+ binding.CVDay.setCardBackgroundColor(Color.parseColor("#7FE668"))
+ }
+ else{
+ if(item.block == null){
+ if(item.date >= LocalDate.now().toString()){
+ binding.CVDay.setCardBackgroundColor(Color.parseColor("#55B6FF"))
+ }
+ else{
+ binding.CVDay.setCardBackgroundColor(Color.parseColor("#9C9C9C"))
+
+ }
+ }
+ }
+ }
+
+
+ }
+
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Holder {
+ val view = LayoutInflater.from(parent.context)
+ .inflate(R.layout.item_calendare, parent, false)//Создаем(надуваем) list_item
+ return Holder(view, listener)//Через Holder возврощаем view
+ }
+
+ override fun onBindViewHolder(holder: Holder, position: Int) {
+ val view = holder.bind(getItem(position))//Заполняем по позиции карточку
+ }
+
+
+ //Comparator - сравнивает старый список и новый и если что-то изменилось, то работает с конкретным изменением списке, а не весь список переписывает
+ class Comparator : DiffUtil.ItemCallback() {
+ override fun areItemsTheSame(
+ oldItem: CalendareModel,
+ newItem: CalendareModel
+ ): Boolean {//Тут лучше всего сравнивать по id//oldItem - элементы старого списка, newItem - элементы нового списка//Возврощает Boolean, тоесть есть изменения или нет
+ return oldItem.id == newItem.id//Сравниваем полностью весь список новы и старый, по очередно по одной карточке и по элементно, то есть нулевой элемент, первый, второй и т.д.. Но лучше сравнивать по id списки, а не просто весь список, так как это эфективнее, так как id уникальный(oldItem.id == newItem.id)
+ }
+
+ override fun areContentsTheSame(
+ oldItem: CalendareModel,
+ newItem: CalendareModel
+ ): Boolean {//Утут нужно сравнивать весь спсок старых элементов и новых
+ return oldItem == newItem//Сравниваем полностью весь список новы и старый
+ }
+ }
+
+ //Интерфейс нажатия на кнопку удалить товар из корзины
+ interface Listener {
+ fun onClickCalendare(item: CalendareModel)
+ }
+
+
+}
+
+
+
+
diff --git a/app/src/main/java/com/example/rehabilitation/Calendare/CalendareListModel.kt b/app/src/main/java/com/example/rehabilitation/Calendare/CalendareListModel.kt
index 4179e58..70937c9 100644
--- a/app/src/main/java/com/example/rehabilitation/Calendare/CalendareListModel.kt
+++ b/app/src/main/java/com/example/rehabilitation/Calendare/CalendareListModel.kt
@@ -1,5 +1,5 @@
package com.example.rehabilitation.Calendare
data class CalendareListModel(
- val сalendare: List
+ val calendare_day: List
)
diff --git a/app/src/main/java/com/example/rehabilitation/CodeError/Code429Activity.kt b/app/src/main/java/com/example/rehabilitation/CodeError/Code429Activity.kt
new file mode 100644
index 0000000..8b4eecb
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/CodeError/Code429Activity.kt
@@ -0,0 +1,161 @@
+package com.example.rehabilitation.CodeError
+
+import android.annotation.SuppressLint
+import android.content.Intent
+import androidx.appcompat.app.AppCompatActivity
+import android.os.Bundle
+import android.os.CountDownTimer
+import android.util.Log
+import com.example.rehabilitation.Auth.AuthorizationActivity
+import com.example.rehabilitation.Enternet.EnternetActivity
+import com.example.rehabilitation.Enternet.EnternetCheck
+import com.example.rehabilitation.MainActivity
+import com.example.rehabilitation.Pref.ClearPref
+import com.example.rehabilitation.Pref.ConclusionPref
+import com.example.rehabilitation.Pref.SavePref
+import com.example.rehabilitation.Retrofit.PatientApi
+import com.example.rehabilitation.databinding.ActivityCode429Binding
+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.util.Timer
+import kotlin.concurrent.fixedRateTimer
+
+
+class Code429Activity : AppCompatActivity() {
+ private lateinit var binding:ActivityCode429Binding
+ private lateinit var patientApi: PatientApi
+ private lateinit var timer: Timer
+
+
+ val prefPatientConclusion = ConclusionPref()
+ val prefPatientClear = ClearPref()
+ val prefPatientSave = SavePref()
+
+ //Класс проверки интеренета
+ val enternetCheck = EnternetCheck()
+
+ var checkClose = false
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ binding = ActivityCode429Binding.inflate(layoutInflater)
+ setContentView(binding.root)
+
+// binding.apply {
+// btnBack.isEnabled = false
+// btnBack.isClickable = false
+// val timer = object: CountDownTimer(20000, 1000) {
+// override fun onTick(millisUntilFinished: Long) {
+// txtTime.setText( "${(millisUntilFinished / 1000)} сек");
+// }
+//
+// override fun onFinish() {
+// btnBack.isEnabled = true
+// btnBack.isClickable = true
+// }
+// }
+// timer.start()
+
+// binding.btnBack.setOnClickListener{
+// Log.i("clogon1232222","clogon1232222")
+// finish()
+// }
+ // }
+ }
+
+
+ @SuppressLint("SuspiciousIndentation")
+ fun CheckToken()=with(binding){
+ if (enternetCheck.isOnline(this@Code429Activity)) {
+ initRetrofit()
+ val Tokens = prefPatientConclusion.conclusionToken(this@Code429Activity)
+ CoroutineScope(Dispatchers.IO).launch {
+ val list = patientApi.CheckToken("Bearer $Tokens")
+ runOnUiThread {
+
+
+ //Фиксируем полученные данные
+ val List = list.body()
+ val Nice = list.isSuccessful
+ val Code = list.code()
+ if(Code==500){
+ val intetn = Intent(this@Code429Activity, Code500Activity::class.java)
+ finish()
+ startActivity(intetn)
+ }
+ else if(Code==200) {
+ //Если нету ошибок
+ if (Nice) {
+ //Если нету ошибок
+ if (List != null) {
+
+ Log.i("clogon1231111","clogon1231111")
+ finish()
+ }
+
+ }
+ }
+ else if (Code == 401) {
+ val intetn = Intent(this@Code429Activity, AuthorizationActivity::class.java)
+ finish()
+ startActivity(intetn)
+ }
+ }
+ }
+ } else {
+
+ val intetn = Intent(this@Code429Activity, EnternetActivity::class.java)
+ finish()
+ startActivity(intetn)
+ }
+
+ }
+
+ //Инициализируем Retrofit
+ private fun initRetrofit() {
+ val interceptor = HttpLoggingInterceptor()
+ interceptor.level = HttpLoggingInterceptor.Level.BODY
+
+ val client = OkHttpClient
+ .Builder()
+ .addInterceptor(interceptor)
+ .build()
+
+ val retrofit = Retrofit.Builder()
+ .baseUrl("https://rehabilitation.vmeda.org/api/")
+ .client(client)
+ .addConverterFactory(GsonConverterFactory.create())
+ .build()
+
+ patientApi = retrofit.create(PatientApi::class.java)
+
+ }
+
+
+ override fun onResume() {
+ super.onResume()
+ checkForUpdates(true)
+ }
+
+ override fun onStop() {
+ super.onStop()
+ timer.cancel()
+ timer.purge()
+ }
+
+ private fun checkForUpdates(daemonIsTrue: Boolean) {
+
+ timer = fixedRateTimer("default", daemonIsTrue, 0, 15000) {
+ this@Code429Activity.runOnUiThread {
+ CheckToken()
+ }
+ }
+
+ }
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/CodeError/Code500Activity.kt b/app/src/main/java/com/example/rehabilitation/CodeError/Code500Activity.kt
new file mode 100644
index 0000000..1a8aeb7
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/CodeError/Code500Activity.kt
@@ -0,0 +1,160 @@
+package com.example.rehabilitation.CodeError
+
+import android.annotation.SuppressLint
+import android.content.Intent
+import androidx.appcompat.app.AppCompatActivity
+import android.os.Bundle
+import android.os.CountDownTimer
+import android.util.Log
+import android.view.View
+import android.widget.Toast
+import androidx.core.content.ContentProviderCompat.requireContext
+import com.example.rehabilitation.Auth.AuthorizationActivity
+import com.example.rehabilitation.Enternet.EnternetActivity
+import com.example.rehabilitation.Enternet.EnternetCheck
+import com.example.rehabilitation.MainActivity
+import com.example.rehabilitation.Pref.ClearPref
+import com.example.rehabilitation.Pref.ConclusionPref
+import com.example.rehabilitation.Pref.SavePref
+import com.example.rehabilitation.Retrofit.PatientApi
+import com.example.rehabilitation.databinding.ActivityCode500Binding
+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.util.Timer
+import kotlin.concurrent.fixedRateTimer
+
+class Code500Activity : AppCompatActivity() {
+ private lateinit var binding: ActivityCode500Binding
+ private lateinit var patientApi: PatientApi
+ private lateinit var timer: Timer
+
+
+ val prefPatientConclusion = ConclusionPref()
+ val prefPatientClear = ClearPref()
+ val prefPatientSave = SavePref()
+
+ //Класс проверки интеренета
+ val enternetCheck = EnternetCheck()
+
+ var checkClose = false
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ binding = ActivityCode500Binding.inflate(layoutInflater)
+ setContentView(binding.root)
+
+
+
+ binding.apply {
+
+ val timer = object: CountDownTimer(30000, 1000) {
+ override fun onTick(millisUntilFinished: Long) {
+
+ }
+
+ override fun onFinish() {
+ val intetn = Intent(this@Code500Activity, AuthorizationActivity::class.java)
+ finish()
+ startActivity(intetn)
+ }
+ }
+ timer.start()
+
+ }
+ }
+
+
+ @SuppressLint("SuspiciousIndentation")
+ fun CheckToken()=with(binding){
+ if (enternetCheck.isOnline(this@Code500Activity)) {
+ initRetrofit()
+ val Tokens = prefPatientConclusion.conclusionToken(this@Code500Activity)
+ CoroutineScope(Dispatchers.IO).launch {
+ val list = patientApi.CheckToken("Bearer $Tokens")
+ runOnUiThread {
+
+
+ //Фиксируем полученные данные
+ val List = list.body()
+ val Nice = list.isSuccessful
+ val Code = list.code()
+ if(Code==429){
+ val intetn = Intent(this@Code500Activity, Code429Activity::class.java)
+ finish()
+ startActivity(intetn)
+ }
+ else if(Code==200) {
+ //Если нету ошибок
+ if (Nice) {
+ //Если нету ошибок
+ if (List != null) {
+
+ Log.i("clogon1231111","clogon1231111")
+ finish()
+ }
+
+ }
+ }
+ else if (Code == 401) {
+ val intetn = Intent(this@Code500Activity, AuthorizationActivity::class.java)
+ finish()
+ startActivity(intetn)
+ }
+ }
+ }
+ } else {
+
+ val intetn = Intent(this@Code500Activity, EnternetActivity::class.java)
+ finish()
+ startActivity(intetn)
+ }
+
+ }
+
+ //Инициализируем Retrofit
+ private fun initRetrofit() {
+ val interceptor = HttpLoggingInterceptor()
+ interceptor.level = HttpLoggingInterceptor.Level.BODY
+
+ val client = OkHttpClient
+ .Builder()
+ .addInterceptor(interceptor)
+ .build()
+
+ val retrofit = Retrofit.Builder()
+ .baseUrl("https://rehabilitation.vmeda.org/api/")
+ .client(client)
+ .addConverterFactory(GsonConverterFactory.create())
+ .build()
+
+ patientApi = retrofit.create(PatientApi::class.java)
+
+ }
+
+
+ override fun onResume() {
+ super.onResume()
+ checkForUpdates(true)
+ }
+
+ override fun onStop() {
+ super.onStop()
+ timer.cancel()
+ timer.purge()
+ }
+
+ private fun checkForUpdates(daemonIsTrue: Boolean) {
+
+ timer = fixedRateTimer("default", daemonIsTrue, 0, 10000) {
+ this@Code500Activity.runOnUiThread {
+ CheckToken()
+ }
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Enternet/EnternetActivity.kt b/app/src/main/java/com/example/rehabilitation/Enternet/EnternetActivity.kt
new file mode 100644
index 0000000..5b66731
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Enternet/EnternetActivity.kt
@@ -0,0 +1,23 @@
+package com.example.rehabilitation.Enternet
+
+import androidx.appcompat.app.AppCompatActivity
+import android.os.Bundle
+import com.example.rehabilitation.R
+import com.example.rehabilitation.databinding.ActivityEnternetBinding
+
+
+class EnternetActivity : AppCompatActivity() {
+ private lateinit var binding: ActivityEnternetBinding
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ binding = ActivityEnternetBinding.inflate(layoutInflater)
+ setContentView(binding.root)
+
+ supportFragmentManager.beginTransaction()
+ .replace(R.id.CLEnternet, EnternetFragment.newInstance())
+ .commit()
+ }
+
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Enternet/EnternetCheck.kt b/app/src/main/java/com/example/rehabilitation/Enternet/EnternetCheck.kt
new file mode 100644
index 0000000..30a9135
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Enternet/EnternetCheck.kt
@@ -0,0 +1,41 @@
+package com.example.rehabilitation.Enternet
+
+import android.content.Context
+import android.net.ConnectivityManager
+import android.net.NetworkCapabilities
+import android.os.Build
+
+class EnternetCheck() {
+
+ //Проверка интернета
+ fun isOnline(context: Context): Boolean {
+ if (context == null) return false
+ val connectivityManager =
+ context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
+ val capabilities =
+ connectivityManager.getNetworkCapabilities(connectivityManager.activeNetwork)
+ if (capabilities != null) {
+ when {
+ capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> {
+ return true
+ }
+
+ capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> {
+ return true
+ }
+
+ capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) -> {
+ return true
+ }
+ }
+ }
+ } else {
+ val activeNetworkInfo = connectivityManager.activeNetworkInfo
+ if (activeNetworkInfo != null && activeNetworkInfo.isConnected) {
+ return true
+ }
+ }
+ return false
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Enternet/EnternetFragment.kt b/app/src/main/java/com/example/rehabilitation/Enternet/EnternetFragment.kt
new file mode 100644
index 0000000..29f09b7
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Enternet/EnternetFragment.kt
@@ -0,0 +1,38 @@
+package com.example.rehabilitation.Enternet
+
+import android.content.Intent
+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.databinding.FragmentEnternetBinding
+
+
+class EnternetFragment : Fragment() {
+ private lateinit var binding: FragmentEnternetBinding
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentEnternetBinding.inflate(layoutInflater,container,false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ binding.btnEnternet.setOnClickListener{
+ val intetn = Intent(requireContext(), MainActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
+
+ }
+
+ companion object {
+
+ fun newInstance() = EnternetFragment()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Feedback/FeedbackFragment.kt b/app/src/main/java/com/example/rehabilitation/Feedback/FeedbackFragment.kt
new file mode 100644
index 0000000..26ce897
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Feedback/FeedbackFragment.kt
@@ -0,0 +1,81 @@
+package com.example.rehabilitation.Feedback
+
+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.R
+import com.example.rehabilitation.Setting.SettingFragment
+import com.example.rehabilitation.databinding.FragmentFeedbackBinding
+
+
+class FeedbackFragment : Fragment() {
+ private lateinit var binding: FragmentFeedbackBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentFeedbackBinding.inflate(layoutInflater,container,false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ if(isAdded()) {
+ //Выход
+ binding.btnExit.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.CLMain, SettingFragment.newInstance())
+ ?.commit()
+ }
+
+ //Переход по ссылке на сайт
+ binding.txtUrlVmeda.setOnClickListener {
+ val i = Intent(Intent.ACTION_VIEW, Uri.parse("https://www.vmeda.org/"))
+ startActivity(i)
+ }
+//
+// //Переход на почту
+// binding.txtEmailDoctor.setOnClickListener{
+// val intent = Intent(Intent.ACTION_SEND)
+// intent.data = Uri.parse("mailto:")
+// intent.type = "text/plain"
+// intent.putExtra(Intent.EXTRA_EMAIL, arrayOf(binding.txtEmailDoctor.text.toString()))// herer adresses is already string
+//
+// try{
+// startActivity(Intent.createChooser(intent,"Choose Email Client..."))
+// }
+// catch (e:Exception){
+// Toast.makeText(this,e.message, Toast.LENGTH_LONG).show()
+// }
+// }
+
+// //Номер врача
+// binding.txtNumberDoctor.setOnClickListener{
+// val intent = Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + binding.txtNumberDoctor.text.toString()))
+// startActivity(intent)
+// }
+
+ //Номер регистратуры
+ binding.txtNumberRegister.setOnClickListener {
+ val intent = Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + "+78122923286"))
+ startActivity(intent)
+ }
+
+ //Номер ДМС
+ binding.txtNumberDMS.setOnClickListener {
+ val intent = Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + "+78122923412"))
+ startActivity(intent)
+ }
+ }
+ }
+
+ companion object {
+
+ fun newInstance() = FeedbackFragment()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Hranilihe.kt b/app/src/main/java/com/example/rehabilitation/Hranilihe.kt
index 1f817c5..637713f 100644
--- a/app/src/main/java/com/example/rehabilitation/Hranilihe.kt
+++ b/app/src/main/java/com/example/rehabilitation/Hranilihe.kt
@@ -137,7 +137,6 @@ 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/Information/InfoFragment/CommonInfoFragment.kt b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/CommonInfoFragment.kt
index 57f2027..9153ef7 100644
--- a/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/CommonInfoFragment.kt
+++ b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/CommonInfoFragment.kt
@@ -26,7 +26,7 @@ class CommonInfoFragment : Fragment() {
binding.btnExit.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InformationFragment.newInstance())?.addToBackStack(null)?.commit()
}
diff --git a/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MedicalReabilitationFragment.kt b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MedicalReabilitationFragment.kt
index 173203d..d29e7b4 100644
--- a/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MedicalReabilitationFragment.kt
+++ b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MedicalReabilitationFragment.kt
@@ -24,7 +24,7 @@ class MedicalReabilitationFragment : Fragment() {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InformationFragment.newInstance())?.addToBackStack(null)?.commit()
}
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
index a18fc0e..1f36dfc 100644
--- 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
@@ -1,11 +1,13 @@
package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
import android.os.Bundle
+import android.transition.TransitionInflater
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.R as R_P
+import android.R
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment
import com.example.rehabilitation.databinding.FragmentBreathingExercisesBinding
@@ -23,16 +25,19 @@ class BreathingExercisesFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R_P.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
-
+ val inflater = TransitionInflater.from(requireContext())
binding.DecongestantTherapy.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ exitTransition = inflater.inflateTransition(R.transition.slide_top)
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R_P.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.DecongestantTherapyFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
+ //enterTransition = inflater.inflateTransition(R_P.transition.slide_bottom)
+
}
companion object {
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
index 6d5d5a0..0d8fb72 100644
--- 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
@@ -24,12 +24,12 @@ class ContourPreventionFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnPhantomPains.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.PhantomPainsFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
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
index 782c4e5..f323fb6 100644
--- 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
@@ -23,12 +23,12 @@ class DecongestantTherapyFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnContracturesPrevention.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.ContourPreventionFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
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
index 84f6142..3e69089 100644
--- 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
@@ -25,11 +25,11 @@ class FormationOfTheStumpFragment : Fragment() {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnPhysicalExercises.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.PhysicalExercisesFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
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
index 11665a2..409d598 100644
--- 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
@@ -1,6 +1,7 @@
package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
import android.os.Bundle
+import android.transition.TransitionInflater
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
@@ -24,12 +25,13 @@ class MotorModeFragment : Fragment() {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
-
+// val inflater = TransitionInflater.from(requireContext())
+// exitTransition = inflater.inflateTransition(R.transition.slide_bottom)
binding.btnStumpCare.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.StumpCareFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
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
index f93e177..dd1cf10 100644
--- 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
@@ -23,11 +23,11 @@ class OrganizationOfTheDailyRoutineAfterSurgeryFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnOrganizationOfTheDayRegimeOfTheSecondWeekAfterAmputation.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.OrganizationOfTheDayRegimeOfTheSecondWeekAfterAmputationFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
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
index 2c06856..21a7063 100644
--- 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
@@ -23,7 +23,7 @@ class OrganizationOfTheDayRegimeOfTheSecondWeekAfterAmputationFragment : Fragmen
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
}
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
index ba7415c..0bec47d 100644
--- 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
@@ -23,11 +23,11 @@ class PhantomPainsFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnSurfaceSensitivity.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.SurfaceSensitivityFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
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
index afc5dbb..8de1a6c 100644
--- 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
@@ -23,11 +23,11 @@ class PhysicalExercisesFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnOrganizationOfTheDailyRoutineAfterSurgery.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.OrganizationOfTheDailyRoutineAfterSurgeryFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
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
index a1f6924..bf00eff 100644
--- 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
@@ -24,12 +24,12 @@ class StumpCareFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnBreathingExercises.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.BreathingExercisesFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
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
index 39b1606..20f2648 100644
--- 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
@@ -24,11 +24,11 @@ class SurfaceSensitivityFragment : Fragment() {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnFormationOfTheStump.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.FormationOfTheStumpFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
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
index 6905177..a5f15df 100644
--- 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
@@ -35,68 +35,68 @@ class EarlyPostoperativePeriodFragment : Fragment() {
super.onViewCreated(view, savedInstanceState)
binding.btnMotorMode.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.MotorModeFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnStumpCare.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.StumpCareFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnBreathingExercises.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.BreathingExercisesFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.DecongestantTherapy.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.DecongestantTherapyFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnContracturesPrevention.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.ContourPreventionFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnPhantomPains.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.PhantomPainsFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnExit.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendationsFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnFurther.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
binding.btnSurfaceSensitivity.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.SurfaceSensitivityFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnFormationOfTheStump.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.FormationOfTheStumpFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnPhysicalExercises.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.PhysicalExercisesFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnOrganizationOfTheDailyRoutineAfterSurgery.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.OrganizationOfTheDailyRoutineAfterSurgeryFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnOrganizationOfTheDayRegimeOfTheSecondWeekAfterAmputation.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.OrganizationOfTheDayRegimeOfTheSecondWeekAfterAmputationFragment.newInstance())?.addToBackStack(null)?.commit()
}
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
index 01e2dde..521065d 100644
--- 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
@@ -24,14 +24,15 @@ class DecongestantTherapyLateFragment : Fragment() {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(
- R.id.CLInformation,
+ R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnMassageTechniqueLate.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.MassageTechniqueLateFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
+
}
companion object {
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
index 5f89062..32c3105 100644
--- 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
@@ -24,11 +24,11 @@ class MassageTechniqueLateFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnPreventionOfContracturesLate.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.PreventionOfContracturesLateFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
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
index 9a88986..a91100b 100644
--- 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
@@ -25,7 +25,7 @@ class PhantomPainsLateFragment : Fragment() {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(
- R.id.CLInformation,
+ R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
}
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
index bc10cfd..6773678 100644
--- 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
@@ -25,11 +25,11 @@ class PreparationForProstheticsLateFragment : Fragment() {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(
- R.id.CLInformation,
+ R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnDecongestantTherapyLate.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.DecongestantTherapyLateFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
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
index cac380f..aadf962 100644
--- 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
@@ -23,11 +23,11 @@ class PreventionOfContracturesLateFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnPhantomPainsLate.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.PhantomPainsLateFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
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
index 9627728..59c1a4f 100644
--- 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
@@ -29,28 +29,28 @@ class LatePostoperativePeriodFragment : Fragment() {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendationsFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnPreparationForProstheticsLate.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.PreparationForProstheticsLateFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnDecongestantTherapyLate.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.DecongestantTherapyLateFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnMassageTechniqueLate.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.MassageTechniqueLateFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnPreventionOfContracturesLate.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.PreventionOfContracturesLateFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnPhantomPainsLate.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.PhantomPainsLateFragment.newInstance())?.addToBackStack(null)?.commit()
}
}
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
index 943275a..611267a 100644
--- a/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendationsFragment.kt
+++ b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/MethodologicalRecommendationsFragment.kt
@@ -25,17 +25,17 @@ class MethodologicalRecommendationsFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InformationFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnEarlyPostoperativePeriod.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnLatePostoperativePeriod.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
diff --git a/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/faqFragment.kt b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/faqFragment.kt
index efbc690..a7c793c 100644
--- a/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/faqFragment.kt
+++ b/app/src/main/java/com/example/rehabilitation/Information/InfoFragment/faqFragment.kt
@@ -26,7 +26,7 @@ class faqFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
- activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
+ activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformationMain,
com.example.rehabilitation.Information.InformationFragment.newInstance())?.addToBackStack(null)?.commit()
}
diff --git a/app/src/main/java/com/example/rehabilitation/Information/InformationActivity.kt b/app/src/main/java/com/example/rehabilitation/Information/InformationActivity.kt
deleted file mode 100644
index 2265942..0000000
--- a/app/src/main/java/com/example/rehabilitation/Information/InformationActivity.kt
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.example.rehabilitation.Information
-
-import android.content.Intent
-import androidx.appcompat.app.AppCompatActivity
-import android.os.Bundle
-import com.example.rehabilitation.MainActivity
-import com.example.rehabilitation.R
-import com.example.rehabilitation.databinding.ActivityInformationBinding
-
-class InformationActivity : AppCompatActivity() {
- var backPressedTime: Long = 0
- private lateinit var binding: ActivityInformationBinding
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- binding = ActivityInformationBinding.inflate(layoutInflater)
- setContentView(binding.root)
-
- supportFragmentManager.beginTransaction()
- .replace(R.id.CLInformation, InformationFragment.newInstance())
- .commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
- }
-
- 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/Information/InformationFragment.kt b/app/src/main/java/com/example/rehabilitation/Information/InformationFragment.kt
index 0cdb1ac..24a1556 100644
--- a/app/src/main/java/com/example/rehabilitation/Information/InformationFragment.kt
+++ b/app/src/main/java/com/example/rehabilitation/Information/InformationFragment.kt
@@ -7,6 +7,7 @@ import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import com.example.rehabilitation.Enternet.EnternetCheck
import com.example.rehabilitation.MainActivity
import com.example.rehabilitation.R
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendationsFragment
@@ -20,6 +21,9 @@ import com.example.rehabilitation.fragment.InfoFragment.faqFragment
class InformationFragment : Fragment() {
private lateinit var binding: FragmentInformationBinding
+
+ //Класс проверки интеренета
+ val enternetCheck = EnternetCheck()
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
@@ -36,41 +40,50 @@ class InformationFragment : Fragment() {
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()
+// val infoFrag = activity?.supportFragmentManager?.beginTransaction()
+// infoFrag?.replace(
+// R.id.CLInformation,MethodologicalRecommendationsFragment.newInstance()
+// )
+// infoFrag?.addToBackStack(null)
+// infoFrag?.commit()
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.CLInformationMain, MethodologicalRecommendationsFragment.newInstance())
+ ?.commit()
}
binding.commonInformationButton.setOnClickListener {
- val infoFrag = activity?.supportFragmentManager?.beginTransaction()
- infoFrag?.replace(R.id.CLInformation, CommonInfoFragment.newInstance())
- infoFrag?.addToBackStack(null)
- infoFrag?.commit()
-
+// val infoFrag = activity?.supportFragmentManager?.beginTransaction()
+// infoFrag?.replace(R.id.CLInformation, CommonInfoFragment.newInstance())
+// infoFrag?.addToBackStack(null)
+// infoFrag?.commit()
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.CLInformationMain, CommonInfoFragment.newInstance())
+ ?.commit()
}
binding.frequentlyAskedQuestionsButton.setOnClickListener {
- val infoFrag = activity?.supportFragmentManager?.beginTransaction()
- infoFrag?.replace(R.id.CLInformation, faqFragment.newInstance())
- infoFrag?.addToBackStack(null)
- infoFrag?.commit()
-
+// val infoFrag = activity?.supportFragmentManager?.beginTransaction()
+// infoFrag?.replace(R.id.CLInformation, faqFragment.newInstance())
+// infoFrag?.addToBackStack(null)
+// infoFrag?.commit()
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.CLInformationMain, faqFragment.newInstance())
+ ?.commit()
}
binding.medicalReabilitationButton.setOnClickListener {
- val infoFrag = activity?.supportFragmentManager?.beginTransaction()
- infoFrag?.replace(R.id.CLInformation, MedicalReabilitationFragment.newInstance())
- infoFrag?.addToBackStack(null)
- infoFrag?.commit()
-
+// val infoFrag = activity?.supportFragmentManager?.beginTransaction()
+// infoFrag?.replace(R.id.CLInformation, MedicalReabilitationFragment.newInstance())
+// infoFrag?.addToBackStack(null)
+// infoFrag?.commit()
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.CLInformationMain, MedicalReabilitationFragment.newInstance())
+ ?.commit()
}
binding.fondButton.setOnClickListener {
diff --git a/app/src/main/java/com/example/rehabilitation/Information/InformationMainFragment.kt b/app/src/main/java/com/example/rehabilitation/Information/InformationMainFragment.kt
new file mode 100644
index 0000000..06fa5f5
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Information/InformationMainFragment.kt
@@ -0,0 +1,33 @@
+package com.example.rehabilitation.Information
+
+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.databinding.FragmentInformationMainBinding
+
+
+class InformationMainFragment : Fragment() {
+ private lateinit var binding: FragmentInformationMainBinding
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentInformationMainBinding.inflate(layoutInflater,container,false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.CLInformationMain, InformationFragment.newInstance())
+ ?.commit()
+ }
+
+ companion object {
+ fun newInstance() = InformationMainFragment()
+ }
+}
\ 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 efec030..70dd1cb 100644
--- a/app/src/main/java/com/example/rehabilitation/MainActivity.kt
+++ b/app/src/main/java/com/example/rehabilitation/MainActivity.kt
@@ -1,14 +1,22 @@
package com.example.rehabilitation
import android.annotation.SuppressLint
+import android.content.Intent
import android.os.Bundle
import android.util.Log
-import androidx.appcompat.app.AlertDialog
+import android.view.View
+import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity
import com.example.rehabilitation.Auth.AuthFragment
+import com.example.rehabilitation.Auth.AuthorizationActivity
+import com.example.rehabilitation.CodeError.Code429Activity
+import com.example.rehabilitation.CodeError.Code500Activity
+import com.example.rehabilitation.Enternet.EnternetActivity
+import com.example.rehabilitation.Enternet.EnternetCheck
import com.example.rehabilitation.Pref.ConclusionPref
import com.example.rehabilitation.Retrofit.PatientApi
import com.example.rehabilitation.databinding.ActivityMainBinding
+import com.example.sqlitework.dip.MainViewModel
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
@@ -21,12 +29,16 @@ import retrofit2.converter.gson.GsonConverterFactory
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
private lateinit var patientApi: PatientApi
+ private val modelPatient: PatientViewModel by viewModels()//Инициализировали класс
+ private val model: MainViewModel by viewModels()//Инициализировали класс
//Токен
private var Token = ""
val prefPatientConclusion = ConclusionPref()
var backPressedTime: Long = 0
+ //Класс проверки интеренета
+ val enternetCheck = EnternetCheck()
@SuppressLint("DiscouragedApi")
override fun onCreate(savedInstanceState: Bundle?) {
@@ -34,16 +46,13 @@ class MainActivity : AppCompatActivity() {
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
-
- initRetrofit()
-
MainAndAuth()
- }
+ }
fun MainAndAuth() {
Token = prefPatientConclusion.conclusionToken(this)
- Log.i("sadasdsadsd",Token)
+ Log.i("sadasdsadsd", Token)
//CheckTokenAuth(Token)
if (Token == "") {
Auth()
@@ -53,6 +62,7 @@ class MainActivity : AppCompatActivity() {
}
fun Auth() {
+ binding.CLLoad.visibility = View.GONE
//Вывод фрагмента на активити при первоначальной загрузке
supportFragmentManager.beginTransaction()
.replace(R.id.CLMain, AuthFragment.newInstance())
@@ -61,26 +71,62 @@ class MainActivity : AppCompatActivity() {
}
fun Main() {
+ binding.CLLoad.visibility = View.GONE
fragment_inicializ()
+
+// fixedRateTimer("timer", false, 0, 10000) {
+// this@MainActivity.runOnUiThread {
+// GetVisibleViewList()
+// ProgressPatientCourses()
+// APIliveCountCalendareCurrent()
+// getNewAppeals()
+// getOldAppeals()
+// }
+// }
}
@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 (enternetCheck.isOnline(this)) {
+ initRetrofit()
+ CoroutineScope(Dispatchers.IO).launch {
+ val response = patientApi.CheckToken("Bearer $token")
+ runOnUiThread {
- if (userCode) {
- Main()
- } else {
- Auth()
+ //Фиксируем полученные данные
+ val List = response.body()
+ val Nice = response.isSuccessful
+ val Code = response.code()
+ if(Code==429){
+ val intetn = Intent(this@MainActivity, Code429Activity::class.java)
+
+ startActivity(intetn)
+ }
+ else if(Code==200) {
+ //Если нету ошибок
+ if (Nice) {
+ Main()
+ } else {
+ Auth()
+ }
+
+ }
+ else if (Code == 500) {
+ val intetn = Intent(this@MainActivity, Code500Activity::class.java)
+
+ startActivity(intetn)
+ }
+ else if (Code == 401) {
+ val intetn = Intent(this@MainActivity, AuthorizationActivity::class.java)
+ finish()
+ startActivity(intetn)
+ }
}
}
-
+ } else {
+ val intetn = Intent(this, Code500Activity::class.java)
+ finish()
+ startActivity(intetn)
}
}
@@ -97,7 +143,7 @@ class MainActivity : AppCompatActivity() {
.build()
val retrofit = Retrofit.Builder()
- .baseUrl("http://mobileapp.vmeda.org/api/")
+ .baseUrl("https://rehabilitation.vmeda.org/api/")
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build()
@@ -132,6 +178,139 @@ class MainActivity : AppCompatActivity() {
// backPressedTime = System.currentTimeMillis()
// }
+// //Получения экрана
+// fun GetVisibleViewList() {
+// if (enternetCheck.isOnline(this)) {
+// initRetrofit()
+// val Tokens = prefPatientConclusion.conclusionToken(this)
+// CoroutineScope(Dispatchers.IO).launch {
+// val listProduct = patientApi.VisibleView3("Bearer $Tokens")
+//
+// runOnUiThread {
+//
+// //Фиксируем полученные данные
+// val visibleviewList = listProduct.body()
+// val visibleviewListCode = listProduct.isSuccessful()
+// //Если нету ошибок
+// if (visibleviewListCode) {
+// modelPatient.viewCurrent.value = visibleviewList
+// }
+// }
+// }
+// } else {
+//// val intetn = Intent(this, EnternetActivity::class.java)
+//// finish()
+//// startActivity(intetn)
+// }
+//
+// }
+
+// //Вывод прогресса пациента
+// fun ProgressPatientCourses() {
+// if (enternetCheck.isOnline(this)) {
+// initRetrofit()
+// val Tokens = prefPatientConclusion.conclusionToken(this)
+// CoroutineScope(Dispatchers.IO).launch {
+// val progress = patientApi.ProgressPatientCourses("Bearer $Tokens")
+//
+// runOnUiThread {
+// //Фиксируем полученные данные
+// val progressMes = progress.body()
+// val progressMesCode = progress.isSuccessful()
+// //Если нету ошибок
+// if (progressMesCode) {
+// model.liveProgressCheckList.value = progressMes?.search_check_sport
+// }
+// }
+// }
+// } else {
+//// val intetn = Intent(this, EnternetActivity::class.java)
+//// finish()
+//// startActivity(intetn)
+// }
+//
+// }
+
+// //Функция получения данных для заполнения календаря
+// private fun APIliveCountCalendareCurrent() {
+// if (enternetCheck.isOnline(this)) {
+// val Tokens = prefPatientConclusion.conclusionToken(this)
+// CoroutineScope(Dispatchers.IO).launch {
+// val Calendare = patientApi.GetCalendare("Bearer $Tokens")
+//
+// this@MainActivity?.runOnUiThread {
+// //Фиксируем полученные данные
+// val CalendareList = Calendare.body()
+// //Если нету ошибок
+// if (CalendareList != null) {
+// modelPatient.calendareList.value = CalendareList.calendare_day
+// }
+// }
+// }
+// } else {
+// val intetn = Intent(this, EnternetActivity::class.java)
+// finish()
+// startActivity(intetn)
+// }
+// }
+
+//ввыапваыапыва
+// //Получение необработанных сообщений
+// private fun getNewAppeals() {
+// if (enternetCheck.isOnline(this)) {
+// initRetrofit()
+// val Tokens = prefPatientConclusion.conclusionToken(this)
+// CoroutineScope(Dispatchers.IO).launch {
+// val listAppeals = patientApi.GetAppealsPatientNew("Bearer $Tokens")
+// runOnUiThread {
+//
+// //Фиксируем полученные данные
+// val AppealsMes = listAppeals.body()
+//
+// //Если нету ошибок
+// if (AppealsMes != null) {
+// if (AppealsMes.appeals_new != null) {
+// modelPatient.appealsNewList.value = AppealsMes.appeals_new
+// }
+// }
+// }
+// }
+// } else {
+//// val intetn = Intent(this, EnternetActivity::class.java)
+//// finish()
+//// startActivity(intetn)
+// }
+//
+// }
+
+// //Получение обработанных сообщений
+// private fun getOldAppeals() {
+// if (enternetCheck.isOnline(this)) {
+// initRetrofit()
+// val Tokens = prefPatientConclusion.conclusionToken(this)
+// CoroutineScope(Dispatchers.IO).launch {
+// val listAppeals = patientApi.GetAppealsPatientOld("Bearer $Tokens")
+// runOnUiThread {
+//
+// //Фиксируем полученные данные
+// val AppealsMes = listAppeals.body()
+//
+// //Если нету ошибок
+// if (AppealsMes != null) {
+// if (AppealsMes.appeals_old != null) {
+// modelPatient.appealsOldList.value = AppealsMes.appeals_old
+// }
+// }
+// }
+// }
+// } else {
+//// val intetn = Intent(this, EnternetActivity::class.java)
+//// finish()
+//// startActivity(intetn)
+// }
+//
+// }
+
override fun onDestroy() {
super.onDestroy()
@@ -143,8 +322,4 @@ class MainActivity : AppCompatActivity() {
}
-
-
-
-
}
\ 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
index d3d2775..567e43c 100644
--- a/app/src/main/java/com/example/rehabilitation/MainFragment.kt
+++ b/app/src/main/java/com/example/rehabilitation/MainFragment.kt
@@ -1,53 +1,101 @@
package com.example.rehabilitation
import android.annotation.SuppressLint
+import android.content.Intent
import android.icu.text.SimpleDateFormat
import android.icu.util.Calendar
import android.os.Bundle
+import android.os.SystemClock
+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.fragment.app.viewModels
import androidx.lifecycle.LifecycleOwner
+import androidx.lifecycle.Observer
+import com.example.admin.Toast.showCustomInfoToast
+import com.example.rehabilitation.Appeals.AppealsFragment
+import com.example.rehabilitation.Auth.AuthorizationActivity
import com.example.rehabilitation.Calendare.CalendarFragment
+import com.example.rehabilitation.CodeError.Code429Activity
+import com.example.rehabilitation.CodeError.Code500Activity
+import com.example.rehabilitation.Enternet.EnternetActivity
+import com.example.rehabilitation.Enternet.EnternetCheck
import com.example.rehabilitation.Information.InformationFragment
+import com.example.rehabilitation.Information.InformationMainFragment
+import com.example.rehabilitation.Pref.ConclusionPref
import com.example.rehabilitation.Progress.ProgresFragment
+import com.example.rehabilitation.Retrofit.PatientApi
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 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 retrofit2.Retrofit
+import retrofit2.converter.gson.GsonConverterFactory
import java.util.Date
+import java.util.Timer
+import kotlin.concurrent.fixedRateTimer
class MainFragment : Fragment() {
private lateinit var binding: FragmentMainBinding
private val dataModel: DataModel by viewModels()//Для передачи данных
+ private val model: MainViewModel by activityViewModels()//Инициализировали класс
+ private val modelPatient: PatientViewModel by activityViewModels()//Инициализировали класс
+
+ private lateinit var patientApi: PatientApi
+ private lateinit var timer: Timer
+
+ val prefPatientConclusion = ConclusionPref()
+
+ //Класс проверки интеренета
+ val enternetCheck = EnternetCheck()
+
@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)
+ binding = FragmentMainBinding.inflate(layoutInflater, container, false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
- if(isAdded) {
+
+ Log.d("5645546564","5645546564")
+ if (isAdded) {
main_inicializ()
+ //MainAndAuth()
}
+ dataModel.fragmentMenu.observe(viewLifecycleOwner, Observer {
+ binding.buttonNavigation.selectedItemId = it
+ })
+
+// fixedRateTimer("timer", false, 0, 10000) {
+// activity?.runOnUiThread {
+//
+// }
+// }
}
- fun main_inicializ(){
+ fun main_inicializ() {
dataModel.fragmentMenu.observe(this as LifecycleOwner, {
binding.buttonNavigation.selectedItemId = it
@@ -65,7 +113,7 @@ class MainFragment : Fragment() {
binding.btnInformation.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()
- ?.replace(R.id.CLMain, InformationFragment.newInstance())
+ ?.replace(R.id.CLMain, InformationMainFragment.newInstance())
//?.addToBackStack(null)
?.commit()
}
@@ -75,8 +123,6 @@ class MainFragment : Fragment() {
}
-
-
//Инициализация фрагментов
fun fragment_inicializ() {
//Вывод фрагмента на активити при первоначальной загрузке
@@ -86,22 +132,59 @@ class MainFragment : Fragment() {
//Эран который будет выбран по умолчанию(кнопка которая будет прожата по умолчанию)
- binding.buttonNavigation.selectedItemId = R.id.schedule//По умолчанию и так первая, но на всякий случай выберу еще програмным путем первую ячейку
+ 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() - это то что мы вставляем
+ if (!isClickRecently()) {
+
+ 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() - это то что мы вставляем
+ val view = prefPatientConclusion.conclusionView(requireContext())
+ Log.i("dasda2",view.toString())
+ if(view.toInt()==1 || view.toInt()==2){
+ Toast(requireContext()).showCustomInfoToast("У вас отсутсвует курс", requireActivity())
+ }
+ else{
+ Log.i("dasda22",view.toString())
+ 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() - это то что мы вставляем
+ val view = prefPatientConclusion.conclusionView(requireContext())
+ Log.i("dasda2",view.toString())
+ if(view.toInt()==1 || view.toInt()==2){
+ Toast(requireContext()).showCustomInfoToast("У вас отсутсвует курс", requireActivity())
+ }
+ else{
+ Log.i("dasda22",view.toString())
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.placeHolderFragment, ProgresFragment.newInstance())
+ ?.commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
+ }
}
+ R.id.chat -> {//Если вы не авторизованный пользваотель то вам не будет доступен доступ к данном фрагменту
+ if (!isClickRecently()) {
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.placeHolderFragment, AppealsFragment.newInstance())
+ ?.commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
+ }
+ }
+
+
}
true
}
@@ -120,49 +203,229 @@ class MainFragment : Fragment() {
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="Декабрь"
+ 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=""
+ 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="Вс"
+ "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=""
+ date_of_the_week = ""
}
}
System.out.println(calendar.get(Calendar.DATE))
- binding.txtDate.setText("${day}" +" "+ "${month}")
+ binding.txtDate.setText("${day}" + " " + "${month}")
+ }
+
+ //Получения экрана
+ fun GetVisibleViewListTimer() {
+ if (enternetCheck.isOnline(requireContext())) {
+ initRetrofit()
+ val Tokens = prefPatientConclusion.conclusionToken(requireContext())
+ CoroutineScope(Dispatchers.IO).launch {
+ val listProduct = patientApi.VisibleView3("Bearer $Tokens")
+
+ activity?.runOnUiThread {
+
+ //Фиксируем полученные данные
+ val List = listProduct.body()
+ val Nice = listProduct.isSuccessful
+ val Code = listProduct.code()
+ if(Code==429){
+ val intetn = Intent(requireContext(), Code429Activity::class.java)
+
+ startActivity(intetn)
+ }
+ else if(Code==200) {
+ //Если нету ошибок
+ if (Nice) {
+ //Если нету ошибок
+ if (List != null) {
+ modelPatient.viewCurrent.value = List
+ }
+ }
+
+ //Следующий по счету
+ GetSportDay()
+ }
+ else if (Code == 500) {
+ val intetn = Intent(requireContext(), Code500Activity::class.java)
+
+ startActivity(intetn)
+ }
+
+ }
+ }
+ } else {
+ val intetn = Intent(requireContext(), EnternetActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
+ }
+
+ //Получения списка упражнений
+ fun GetSportDay() {
+
+ if (enternetCheck.isOnline(requireContext())) {
+ initRetrofit()
+ val Tokens = prefPatientConclusion.conclusionToken(requireContext())
+ CoroutineScope(Dispatchers.IO).launch {
+ val sportDay = patientApi.GetSportDay("Bearer $Tokens")
+ requireActivity().runOnUiThread {
+
+ //Фиксируем полученные данные
+ val List = sportDay.body()
+ val Nice = sportDay.isSuccessful
+ val Code = sportDay.code()
+ if(Code==429){
+ val intetn = Intent(requireContext(), Code429Activity::class.java)
+
+ startActivity(intetn)
+ }
+ else if(Code==200) {
+ //Если нету ошибок
+ if (Nice) {
+ //Если нету ошибок
+ if (List != null) {
+ model.liveDayList.value = List?.sport_for_day
+
+ }
+
+ }
+ }
+ else if (Code == 500) {
+ val intetn = Intent(requireContext(), Code500Activity::class.java)
+
+ startActivity(intetn)
+ }
+
+
+// else{
+// Log.i("asdasdasdasd22222222","23231x2wswqxsxsas")
+// Handler().postDelayed({
+// GetSportDay()
+// }, 5000)
+// }
+ }
+ }
+ } else {
+ val intetn = Intent(requireContext(), EnternetActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
+
+ }
+
+// fun ProgressPatientCourses() {
+// if (enternetCheck.isOnline(requireContext())) {
+// 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
+// }
+// }
+// }
+// } else {
+// val intetn = Intent(requireContext(), EnternetActivity::class.java)
+// activity?.finish()
+// startActivity(intetn)
+// }
+//
+// }
+ //Инициализация подлючения к серверу
+ private fun initRetrofit() {
+ val interceptor = HttpLoggingInterceptor()
+ interceptor.level = HttpLoggingInterceptor.Level.BODY
+
+ val client = OkHttpClient
+ .Builder()
+ .addInterceptor(interceptor)
+ .build()
+
+ val retrofit = Retrofit.Builder()
+ .baseUrl("https://rehabilitation.vmeda.org/api/")
+ .client(client)
+ .addConverterFactory(GsonConverterFactory.create())
+ .build()
+
+ patientApi = retrofit.create(PatientApi::class.java)
+
+ }
+
+ //Задержка нажатия
+ var mLastClickTime = 0L
+ fun isClickRecently(): Boolean {
+ if (SystemClock.elapsedRealtime() - mLastClickTime < 500) {
+ return true
+ }
+ mLastClickTime = SystemClock.elapsedRealtime()
+ return false
}
companion object {
fun newInstance() = MainFragment()
}
+
+
+ override fun onResume() {
+ super.onResume()
+ checkForUpdates(true)
+ }
+
+ override fun onPause() {
+ super.onPause()
+ timer.cancel()
+ timer.purge()
+ }
+
+ private fun checkForUpdates(daemonIsTrue: Boolean) {
+
+ timer = fixedRateTimer("default", daemonIsTrue, 0, 15000) {
+ activity?.runOnUiThread {
+ GetVisibleViewListTimer()
+
+ }
+ }
+
+ }
+
+
+
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Message/MessageChatFragment.kt b/app/src/main/java/com/example/rehabilitation/Message/MessageChatFragment.kt
new file mode 100644
index 0000000..ada7a5d
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Message/MessageChatFragment.kt
@@ -0,0 +1,27 @@
+package com.example.rehabilitation.Message
+
+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 as R_P
+import android.R
+import com.example.rehabilitation.databinding.FragmentMessageChatBinding
+
+class MessageChatFragment : Fragment() {
+ private lateinit var binding:FragmentMessageChatBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentMessageChatBinding.inflate(layoutInflater,container,false)
+ return binding.root
+ }
+
+ companion object {
+
+ fun newInstance() = MessageChatFragment()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Mysorka/HomeFragment.kt b/app/src/main/java/com/example/rehabilitation/Mysorka/HomeFragment.kt
deleted file mode 100644
index 0256235..0000000
--- a/app/src/main/java/com/example/rehabilitation/Mysorka/HomeFragment.kt
+++ /dev/null
@@ -1,141 +0,0 @@
-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
index 5bb9656..8abb755 100644
--- a/app/src/main/java/com/example/rehabilitation/PatientViewModel.kt
+++ b/app/src/main/java/com/example/rehabilitation/PatientViewModel.kt
@@ -2,13 +2,36 @@ package com.example.rehabilitation
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
+import com.example.rehabilitation.Appeals.TabLayout.Model.AppealsNewModel
+import com.example.rehabilitation.Appeals.TabLayout.Model.AppealsOldModel
+import com.example.rehabilitation.Calendare.CalendareModel
+import com.example.rehabilitation.Questionnaire.Model.AfterLookModel
+import com.example.rehabilitation.Questionnaire.Model.BeforeLookModel
import com.example.rehabilitation.Sport.SportDayOneModel
+import com.example.rehabilitation.Sport.ViewVisibleModel
class PatientViewModel: ViewModel() {
val token = MutableLiveData()
val liveDaySportOne = MutableLiveData()
- // val productList = MutableLiveData>()
+
+ //Обращения необработанные
+ val appealsNewCurrent = MutableLiveData()
+ val appealsNewList= MutableLiveData>()
+
+ //Обращения обработанные
+ val appealsOldCurrent = MutableLiveData()
+ val appealsOldList= MutableLiveData>()
+
+ //Экраны
+ val viewCurrent = MutableLiveData()
+
+ //Календарь
+ val calendareList = MutableLiveData>()
+
+ val afterLook = MutableLiveData()
+ val beforeLook = MutableLiveData()
+ // val productList = MutableLiveData>()
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Pref/.idea/.gitignore b/app/src/main/java/com/example/rehabilitation/Pref/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Pref/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/app/src/main/java/com/example/rehabilitation/Pref/.idea/misc.xml b/app/src/main/java/com/example/rehabilitation/Pref/.idea/misc.xml
new file mode 100644
index 0000000..639900d
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Pref/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Pref/.idea/modules.xml b/app/src/main/java/com/example/rehabilitation/Pref/.idea/modules.xml
new file mode 100644
index 0000000..07ef4d6
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Pref/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Pref/.idea/vcs.xml b/app/src/main/java/com/example/rehabilitation/Pref/.idea/vcs.xml
new file mode 100644
index 0000000..07117e4
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Pref/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ 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
index 3065f47..0c70a24 100644
--- a/app/src/main/java/com/example/rehabilitation/Pref/ConclusionPref.kt
+++ b/app/src/main/java/com/example/rehabilitation/Pref/ConclusionPref.kt
@@ -10,4 +10,10 @@ class ConclusionPref() {
val token = prefDoctor.getString("token", "")
return token.toString()
}
+
+ fun conclusionView(context: Context):String {
+ val prefDoctor: SharedPreferences = context.getSharedPreferences("VIEW", Context.MODE_PRIVATE)
+ val view = prefDoctor.getString("view","")
+ return view.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
index b86a730..7f0d8fa 100644
--- a/app/src/main/java/com/example/rehabilitation/Pref/SavePref.kt
+++ b/app/src/main/java/com/example/rehabilitation/Pref/SavePref.kt
@@ -11,4 +11,10 @@ class SavePref (){
prefPatient.edit().putString("token", token).apply()
}
+ fun saveView(context: Context,view: String) {
+ val prefPatient: SharedPreferences = context.getSharedPreferences("VIEW", Context.MODE_PRIVATE)
+ val edit = prefPatient.edit()
+ prefPatient.edit().putString("view", view).apply()
+ }
+
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Progress/ProgresFragment.kt b/app/src/main/java/com/example/rehabilitation/Progress/ProgresFragment.kt
index 11cab48..3a20ddd 100644
--- a/app/src/main/java/com/example/rehabilitation/Progress/ProgresFragment.kt
+++ b/app/src/main/java/com/example/rehabilitation/Progress/ProgresFragment.kt
@@ -1,6 +1,7 @@
package com.example.rehabilitation.Progress
import android.content.Context
+import android.content.Intent
import android.content.SharedPreferences
import android.os.Bundle
import android.util.Log
@@ -10,20 +11,25 @@ import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import androidx.recyclerview.widget.LinearLayoutManager
+import com.example.rehabilitation.Auth.AuthorizationActivity
+import com.example.rehabilitation.CodeError.Code429Activity
+import com.example.rehabilitation.CodeError.Code500Activity
+import com.example.rehabilitation.Enternet.EnternetActivity
+import com.example.rehabilitation.Enternet.EnternetCheck
import com.example.rehabilitation.Pref.ConclusionPref
+import com.example.rehabilitation.R
import com.example.rehabilitation.Retrofit.PatientApi
+import com.example.rehabilitation.Sport.SceduleFragment
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
+import kotlin.concurrent.fixedRateTimer
class ProgresFragment : Fragment() {
private lateinit var binding: FragmentProgresBinding
@@ -38,6 +44,10 @@ class ProgresFragment : Fragment() {
val prefPatientConclusion = ConclusionPref()
+ var progresList : List? = null
+
+ //Класс проверки интеренета
+ val enternetCheck = EnternetCheck()
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
@@ -52,14 +62,37 @@ class ProgresFragment : Fragment() {
Token = prefToken?.getString("token", "")!!
model.liveProgressCheckList.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
- adapterProgress.submitList(it)//Напрямую переадем созданный список в adapter(ProductAdapter)
- visible1()
+ if(progresList != it){
+ progresList = it
+ if(it.isEmpty()){
+ binding.txtLoadProgres.visibility = View.VISIBLE
+ visible1()
+ initRCView()
+ }
+ else{
+ adapterProgress.submitList(it)//Напрямую переадем созданный список в adapter(ProductAdapter)
+ binding.txtLoadProgres.visibility = View.GONE
+ visible1()
+ }
+ }
+
}
initRetrofit()
initRCView()
visibleLoad()
- AddProgresSportDayList()
+ ProgressPatientCourses()
+
+// fixedRateTimer("timer", false, 0, 10000) {
+// activity?.runOnUiThread {
+// ProgressPatientCourses()
+// }
+// }
+
+ binding.button7.setOnClickListener {
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.placeHolderFragment, SceduleFragment.newInstance())?.commit()
+ }
}
@@ -75,7 +108,7 @@ class ProgresFragment : Fragment() {
.build()
val retrofit = Retrofit.Builder()
- .baseUrl("http://mobileapp.vmeda.org/api/")
+ .baseUrl("https://rehabilitation.vmeda.org/api/")
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build()
@@ -86,33 +119,60 @@ class ProgresFragment : Fragment() {
- //Инициализация подлючения к серверу
- 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")
+ //Вывод прогресса пациента
+ fun ProgressPatientCourses() {
+ if (enternetCheck.isOnline(requireContext())) {
+ Log.i("sdasd2312","312ewqds")
+ 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 {
+ activity?.runOnUiThread {
+ //Фиксируем полученные данные
+ val List = progress.body()
+ val Nice = progress.isSuccessful
+ val Code = progress.code()
+ if(Code==429){
+ val intetn = Intent(requireContext(), Code429Activity::class.java)
+ startActivity(intetn)
+ }
+ else if(Code==200) {
+ //Если нету ошибок
+ if (Nice) {
+ //Если нету ошибок
+ if (List != null) {
+ model.liveProgressCheckList.value = List?.search_check_sport
+ binding.txtLoadProgres.visibility = View.GONE
+ }
+ }
+ else{
+ binding.txtLoadProgres.visibility = View.VISIBLE
+ visible1()
+ }
+ }
+ else if (Code == 500) {
+ val intetn = Intent(requireContext(), Code500Activity::class.java)
- //Фиксируем полученные данные
- 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()
+ startActivity(intetn)
+ }
+ else if (Code == 401) {
+ val intetn = Intent(requireContext(), AuthorizationActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
}
}
}
+ } else {
+ val intetn = Intent(requireContext(), EnternetActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
}
+
}
private fun initRCView() = with(binding) {
rcViewProgress.layoutManager = LinearLayoutManager(
diff --git a/app/src/main/java/com/example/rehabilitation/Progress/ProgressAdapter.kt b/app/src/main/java/com/example/rehabilitation/Progress/ProgressAdapter.kt
index 87ad10c..22a5f0d 100644
--- a/app/src/main/java/com/example/rehabilitation/Progress/ProgressAdapter.kt
+++ b/app/src/main/java/com/example/rehabilitation/Progress/ProgressAdapter.kt
@@ -29,8 +29,9 @@ class ProgressAdapter() : ListAdapter(Com
@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()
+ txtNumber.text = item.number.toString()+ ". "
+ txtDate.text = item.day + " - " +item.count.toString() + "/" + item.count_workout_max.toString()
+ //txtProgress.text =
if (item.count_workout_max != item.count) {
CardViewDay.setCardBackgroundColor(Color.parseColor("#1993FF"))
} else {
diff --git a/app/src/main/java/com/example/rehabilitation/Questionnaire/Model/AfterLookModel.kt b/app/src/main/java/com/example/rehabilitation/Questionnaire/Model/AfterLookModel.kt
new file mode 100644
index 0000000..9a1fa26
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Questionnaire/Model/AfterLookModel.kt
@@ -0,0 +1,6 @@
+package com.example.rehabilitation.Questionnaire.Model
+
+data class AfterLookModel(
+ val after_look: Int,
+)
+
diff --git a/app/src/main/java/com/example/rehabilitation/Questionnaire/Model/BeforeLookModel.kt b/app/src/main/java/com/example/rehabilitation/Questionnaire/Model/BeforeLookModel.kt
new file mode 100644
index 0000000..bc124f5
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Questionnaire/Model/BeforeLookModel.kt
@@ -0,0 +1,6 @@
+package com.example.rehabilitation.Questionnaire.Model
+
+data class BeforeLookModel(
+ val before_look: Int,
+)
+
diff --git a/app/src/main/java/com/example/rehabilitation/Questionnaire/QuestionnaireFragment/QAfterFragment.kt b/app/src/main/java/com/example/rehabilitation/Questionnaire/QuestionnaireFragment/QAfterFragment.kt
index 7f8fc54..6c7e54d 100644
--- a/app/src/main/java/com/example/rehabilitation/Questionnaire/QuestionnaireFragment/QAfterFragment.kt
+++ b/app/src/main/java/com/example/rehabilitation/Questionnaire/QuestionnaireFragment/QAfterFragment.kt
@@ -1,6 +1,8 @@
package com.example.rehabilitation.Questionnaire.QuestionnaireFragment
+import android.app.Activity
import android.app.AlertDialog
+import android.content.Intent
import android.graphics.Color
import android.os.Bundle
import android.util.Log
@@ -9,9 +11,15 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
-import com.example.admin.Toast.showCustomDangerToast
+import androidx.fragment.app.activityViewModels
import com.example.admin.Toast.showCustomInfoToast
+import com.example.rehabilitation.CodeError.Code429Activity
+import com.example.rehabilitation.CodeError.Code500Activity
+import com.example.rehabilitation.Enternet.EnternetActivity
+import com.example.rehabilitation.Enternet.EnternetCheck
+import com.example.rehabilitation.PatientViewModel
import com.example.rehabilitation.Pref.ConclusionPref
+import com.example.rehabilitation.Questionnaire.Model.AfterLookModel
import com.example.rehabilitation.Questionnaire.Model.AfterQuestionnaireModel
import com.example.rehabilitation.R
import com.example.rehabilitation.Retrofit.PatientApi
@@ -22,21 +30,23 @@ 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
+import java.util.Timer
+import kotlin.concurrent.fixedRateTimer
class QAfterFragment : Fragment() {
private lateinit var binding: FragmentQAfterBinding
private lateinit var patientApi: PatientApi
+ private lateinit var timer: Timer
+
val prefPatientConclusion = ConclusionPref()
+ private val modelPatient: PatientViewModel by activityViewModels()//Инициализировали класс
var one = 100
var two = 100
- var thee = 100
+ var three = 100
var four =100
var five =100
var six =100
@@ -47,7 +57,10 @@ class QAfterFragment : Fragment() {
var eleven = 100
var twelve = 100
+ //Класс проверки интеренета
+ val enternetCheck = EnternetCheck()
+ var AfterLook: AfterLookModel? = null
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
@@ -62,11 +75,30 @@ class QAfterFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
+ viewVisible()
+ if (isAdded()) {
+ LookAfter()
+ modelPatient.afterLook.observe(viewLifecycleOwner) {
+ if( AfterLook != it){
+ if(it.after_look == 1){
+ AfterLook = it
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.placeHolderFragment, SceduleFragment.newInstance())?.commit()
+ }
+ else{
+ AfterLook = it
+ After()
+ }
+ }
+ }
+ }
+ }
+ private fun After() {
+ viewMainAfter()
buttenAdd()
-
//Выход
binding.btnBack.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()
@@ -75,7 +107,7 @@ class QAfterFragment : Fragment() {
//Сохраняем результат
binding.btnSaveQuestionnaire.setOnClickListener {
- 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 (one != 100 && two != 100 && three != 100 && four != 100 && five != 100 && six != 100 && seven != 100 && eight != 100 && nine != 100 && ten != 100 && eleven != 100 && twelve != 100) {
if(nine == 1){
AlertDialog.Builder(requireContext())
@@ -89,7 +121,7 @@ class QAfterFragment : Fragment() {
}
.show()
}
- else if(one >=6 && thee == 0 && six == 1 && eight == 1 && eleven == 1){
+ else if(one >=6 && three == 0 && six == 1 && eight == 1 && eleven == 1){
AlertDialog.Builder(requireContext())
.setTitle("Анкета")
.setMessage("Уверены ли Вы в выбранных ответах на вопросы анкеты? Халатное отношение к вопросам анкеты приведет к паузе комплекса")
@@ -111,6 +143,55 @@ class QAfterFragment : Fragment() {
)
}
}
+// fixedRateTimer("timer", false, 0, 10000) {
+// activity?.runOnUiThread {
+//
+// }
+// }
+ }
+
+ //Проверка анкеты ПОСЛЕ
+ fun LookAfter() {
+ if (enternetCheck.isOnline(requireActivity())) {
+ initRetrofit()
+ val Tokens = prefPatientConclusion.conclusionToken(requireContext())
+ CoroutineScope(Dispatchers.IO).launch {
+ val listAfter = patientApi.LookAfter("Bearer $Tokens")
+
+ activity?.runOnUiThread {
+
+ //Фиксируем полученные данные
+ val List = listAfter.body()
+ val Nice = listAfter.isSuccessful
+ val Code = listAfter.code()
+ if(Code==429){
+ val intetn = Intent(requireContext(), Code429Activity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
+ else if(Code==200) {
+ //Если нету ошибок
+ if (Nice) {
+ //Если нету ошибок
+ if (List != null) {
+ modelPatient.afterLook.value = List
+ }
+
+ }
+ }
+ else if (Code == 500) {
+ val intetn = Intent(requireContext(), Code500Activity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
+ }
+ }
+ } else {
+ val intetn = Intent(requireContext(), EnternetActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
+
}
fun addQuestionAfter() {
@@ -118,7 +199,7 @@ class QAfterFragment : Fragment() {
val item = AfterQuestionnaireModel(
one,
two,
- thee,
+ three,
four,
five,
six,
@@ -144,7 +225,7 @@ class QAfterFragment : Fragment() {
.build()
val retrofit = Retrofit.Builder()
- .baseUrl("http://mobileapp.vmeda.org/api/")
+ .baseUrl("https://rehabilitation.vmeda.org/api/")
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build()
@@ -153,35 +234,67 @@ class QAfterFragment : Fragment() {
}
- //Получения списка пациентов
+ //Отправка анкеты ПОСЛЕ
fun AfterQuestionnaire(item:AfterQuestionnaireModel) {
- initRetrofit()
- val Tokens = prefPatientConclusion.conclusionToken(requireContext())
- CoroutineScope(Dispatchers.IO).launch {
- val QA = patientApi.AddAfterQuestionnaire2("Bearer $Tokens",item)
- requireActivity().runOnUiThread {
+ if (enternetCheck.isOnline(requireContext())) {
+ 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())
+
+ //Фиксируем полученные данные
+ val List = QA.body()
+ val Nice = QA.isSuccessful
+ val Code = QA.code()
+ if(Code==429){
+ val intetn = Intent(requireContext(), Code429Activity::class.java)
+ activity?.finish()
+ startActivity(intetn)
}
+ else if(Code==200) {
+ //Если нету ошибок
+ if (Nice) {
+ //Если нету ошибок
+ if (List != null) {
+ Toast(requireContext()).showCustomInfoToast(List.message, requireActivity())
+ viewVisible()
+ }
+ else{
+ if (List != null) {
+ Toast(requireContext()).showCustomInfoToast(List.message, requireActivity())
+ }
+ }
+ }
+ }
+ else if (Code == 500) {
+ val intetn = Intent(requireContext(), Code500Activity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
}
- activity?.supportFragmentManager?.beginTransaction()
- ?.replace(R.id.placeHolderFragment, SceduleFragment.newInstance())?.commit()
- }
+ }
+ } else {
+ val intetn = Intent(requireContext(), EnternetActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
}
+
}
+ fun viewMainAfter(){
+ binding.CLLoad.visibility = View.GONE
+ binding.CLMainAfter.visibility = View.VISIBLE
+ }
+ fun viewVisible(){
+ binding.CLLoad.visibility = View.VISIBLE
+ binding.CLMainAfter.visibility = View.GONE
+ }
private fun buttenAdd() {
buttenAdd1()
@@ -370,12 +483,12 @@ class QAfterFragment : Fragment() {
Log.d("CVQyes3", "CVQyes3")
binding.CVQyes3.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno3.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- thee = 1
+ three = 1
}
binding.CVQno3.setOnClickListener {
binding.CVQyes3.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno3.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- thee = 0
+ three = 0
}
}
@@ -497,6 +610,27 @@ class QAfterFragment : Fragment() {
}
+ override fun onStart() {
+ super.onStart()
+ checkForUpdates(true)
+ }
+
+ override fun onStop() {
+ super.onStop()
+ timer.cancel()
+ timer.purge()
+ }
+
+ private fun checkForUpdates(daemonIsTrue: Boolean) {
+
+ timer = fixedRateTimer("default", daemonIsTrue, 0, 15000) {
+ activity?.runOnUiThread {
+ LookAfter()
+ }
+ }
+
+ }
+
// fun QBSaveDataA(date: String) {
// val QB = questionnaire?.edit()
// QB?.putString("QA", date)
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
index 36dff5f..1a7e863 100644
--- a/app/src/main/java/com/example/rehabilitation/Questionnaire/QuestionnaireFragment/QBeforeFragment.kt
+++ b/app/src/main/java/com/example/rehabilitation/Questionnaire/QuestionnaireFragment/QBeforeFragment.kt
@@ -1,6 +1,7 @@
package com.example.rehabilitation.Questionnaire.QuestionnaireFragment
import android.app.AlertDialog
+import android.content.Intent
import android.graphics.Color
import android.os.Bundle
import androidx.fragment.app.Fragment
@@ -9,10 +10,15 @@ 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.CodeError.Code429Activity
+import com.example.rehabilitation.CodeError.Code500Activity
+import com.example.rehabilitation.Enternet.EnternetActivity
+import com.example.rehabilitation.Enternet.EnternetCheck
+import com.example.rehabilitation.PatientViewModel
import com.example.rehabilitation.Pref.ConclusionPref
-import com.example.rehabilitation.Questionnaire.Model.AfterQuestionnaireModel
+import com.example.rehabilitation.Questionnaire.Model.AfterLookModel
+import com.example.rehabilitation.Questionnaire.Model.BeforeLookModel
import com.example.rehabilitation.Questionnaire.Model.BeforeQuestionnaireModel
import com.example.rehabilitation.R
import com.example.rehabilitation.Retrofit.PatientApi
@@ -24,20 +30,25 @@ 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.util.Timer
+import kotlin.concurrent.fixedRateTimer
class QBeforeFragment : Fragment() {
private lateinit var binding: FragmentQBeforeBinding
private val model: MainViewModel by activityViewModels()//Инициализировали класс
+ private val modelPatient: PatientViewModel by activityViewModels()//Инициализировали класс
+
private lateinit var patientApi: PatientApi
+ private lateinit var timer: Timer
+
val prefPatientConclusion = ConclusionPref()
var one = 100
var two = 100
- var thee = 100
+ var three = 100
var four = 100
var five = 100
var six = 100
@@ -52,6 +63,11 @@ class QBeforeFragment : Fragment() {
//Для разрешения проверки количества дней
var lookDateSportMax = false
+ //Класс проверки интеренета
+ val enternetCheck = EnternetCheck()
+
+ var BeforeLook: BeforeLookModel? = null
+
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
@@ -68,9 +84,26 @@ class QBeforeFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
-
buttenAdd()
+ if (isAdded()) {
+ LookBefore()
+ modelPatient.beforeLook.observe(viewLifecycleOwner) {
+ if( BeforeLook != it){
+ if(it.before_look == 1){
+ BeforeLook = it
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.placeHolderFragment, SceduleFragment.newInstance())?.commit()
+ }
+ else{
+ BeforeLook = it
+ Before()
+ }
+ }
+ }
+ }
+ }
+ private fun Before() {
//Выход
binding.btnExitQB.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()
@@ -80,7 +113,7 @@ class QBeforeFragment : Fragment() {
//Сохраняем результат
binding.btnSaveQuestionnaire.setOnClickListener {
- if (one != 100 && two != 100 && thee != 100 && four != 100 && five != 100 && six != 100 && seven != 100 && eight != 100 && nine != 100) {
+ if (one != 100 && two != 100 && three != 100 && four != 100 && five != 100 && six != 100 && seven != 100 && eight != 100 && nine != 100) {
if(one >= 6) {
AlertDialog.Builder(requireContext())
.setTitle("Анкета")
@@ -112,6 +145,12 @@ class QBeforeFragment : Fragment() {
)
}
}
+
+// fixedRateTimer("timer", false, 0, 10000) {
+// activity?.runOnUiThread {
+//
+// }
+// }
}
//Функция
@@ -119,7 +158,7 @@ class QBeforeFragment : Fragment() {
val item = BeforeQuestionnaireModel(
one,
two,
- thee,
+ three,
four,
five,
six,
@@ -142,7 +181,7 @@ class QBeforeFragment : Fragment() {
.build()
val retrofit = Retrofit.Builder()
- .baseUrl("http://mobileapp.vmeda.org/api/")
+ .baseUrl("https://rehabilitation.vmeda.org/api/")
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build()
@@ -151,32 +190,102 @@ class QBeforeFragment : Fragment() {
}
- //Получения списка пациентов
+ //Отправка запроса
fun BeforeQuestionnaire(item: BeforeQuestionnaireModel) {
- initRetrofit()
- val Tokens = prefPatientConclusion.conclusionToken(requireContext())
- CoroutineScope(Dispatchers.IO).launch {
- val QA = patientApi.AddBeforeQuestionnaire2("Bearer $Tokens",item)
- requireActivity().runOnUiThread {
+ if (enternetCheck.isOnline(requireContext())) {
+ 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())
+
+ //Фиксируем полученные данные
+ val List = QA.body()
+ val Nice = QA.isSuccessful
+ val Code = QA.code()
+ if(Code==429){
+ val intetn = Intent(requireContext(), Code429Activity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
+ else if(Code==200) {
+ //Если нету ошибок
+ if (Nice) {
+ //Если нету ошибок
+ if (List != null) {
+ Toast(requireContext()).showCustomInfoToast(List.message, requireActivity())
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.placeHolderFragment, SceduleFragment.newInstance())?.commit()
+ }
+ else{
+ Toast(requireContext()).showCustomInfoToast("Ошибка при отправке", requireActivity())
+ }
+
+ }
+ }
+ else if (Code == 500) {
+ val intetn = Intent(requireContext(), Code500Activity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
}
- activity?.supportFragmentManager?.beginTransaction()
- ?.replace(R.id.placeHolderFragment, SceduleFragment.newInstance())?.commit()
+
}
-
+ } else {
+ val intetn = Intent(requireContext(), EnternetActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
}
+
}
+ //Проверка анкеты ПОСЛЕ
+ fun LookBefore() {
+ if (enternetCheck.isOnline(requireActivity())) {
+ initRetrofit()
+ val Tokens = prefPatientConclusion.conclusionToken(requireContext())
+ CoroutineScope(Dispatchers.IO).launch {
+ val listBefore = patientApi.LookBefore("Bearer $Tokens")
+
+ activity?.runOnUiThread {
+
+ //Фиксируем полученные данные
+ val List = listBefore.body()
+ val Nice = listBefore.isSuccessful
+ val Code = listBefore.code()
+ if(Code==429){
+ val intetn = Intent(requireContext(), Code429Activity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
+ else if(Code==200) {
+ //Если нету ошибок
+ if (Nice) {
+ //Если нету ошибок
+ if (List != null) {
+ modelPatient.beforeLook.value = List
+ }
+
+ }
+ }
+ else if (Code == 500) {
+ val intetn = Intent(requireContext(), Code500Activity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
+ }
+
+ }
+ } else {
+ val intetn = Intent(requireContext(), EnternetActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
+
+ }
private fun buttenAdd() {
buttenAdd1()
@@ -192,6 +301,16 @@ class QBeforeFragment : Fragment() {
}
+ fun viewMainBefore(){
+ binding.CLLoad.visibility = View.GONE
+ binding.CLMainBefore.visibility = View.VISIBLE
+ }
+
+ fun viewVisible(){
+ binding.CLLoad.visibility = View.VISIBLE
+ binding.CLMainBefore.visibility = View.GONE
+ }
+
private fun buttenAdd1() {
binding.CVQyes1.setOnClickListener {
@@ -380,12 +499,12 @@ class QBeforeFragment : Fragment() {
binding.CVQyes3.setOnClickListener {
binding.CVQyes3.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno3.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
- thee = 1
+ three = 1
}
binding.CVQno3.setOnClickListener {
binding.CVQyes3.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno3.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
- thee = 0
+ three = 0
}
}
@@ -468,4 +587,26 @@ class QBeforeFragment : Fragment() {
}
+
+ override fun onStart() {
+ super.onStart()
+ checkForUpdates(true)
+ }
+
+ override fun onStop() {
+ super.onStop()
+ timer.cancel()
+ timer.purge()
+ }
+
+ private fun checkForUpdates(daemonIsTrue: Boolean) {
+
+ timer = fixedRateTimer("default", daemonIsTrue, 0, 15000) {
+ activity?.runOnUiThread {
+ LookBefore()
+ }
+ }
+
+ }
+
}
\ 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
index c4d1eb8..e5230e7 100644
--- a/app/src/main/java/com/example/rehabilitation/Retrofit/PatientApi.kt
+++ b/app/src/main/java/com/example/rehabilitation/Retrofit/PatientApi.kt
@@ -1,14 +1,19 @@
package com.example.rehabilitation.Retrofit
+import com.example.rehabilitation.Appeals.TabLayout.Model.AppealsNewListModel
+import com.example.rehabilitation.Appeals.TabLayout.Model.AppealsOldListModel
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.Calendare.CalendareModel
import com.example.rehabilitation.MessageModel
import com.example.rehabilitation.Progress.ProgressListModel
import com.example.rehabilitation.Progress.ProgressModel
+import com.example.rehabilitation.Questionnaire.Model.AfterLookModel
import com.example.rehabilitation.Questionnaire.Model.AfterQuestionnaireMessage
import com.example.rehabilitation.Questionnaire.Model.AfterQuestionnaireModel
+import com.example.rehabilitation.Questionnaire.Model.BeforeLookModel
import com.example.rehabilitation.Questionnaire.Model.BeforeQuestionnaireMessage
import com.example.rehabilitation.Questionnaire.Model.BeforeQuestionnaireModel
import com.example.rehabilitation.Questionnaire.Model.QuestionnaireModel
@@ -35,7 +40,7 @@ interface PatientApi {
//Проверка токена
@Headers("Content-Type: application/json")
@GET("CheckTokenPatient")
- suspend fun CheckToken(@Header("Authorization") token:String): Response
+ suspend fun CheckToken(@Header("Authorization") token:String) :Response
//Авторизация
@Headers("Content-Type: application/json")
@@ -96,4 +101,78 @@ interface PatientApi {
@Headers("Content-Type: application/json")
@GET("ProgressPatientCourses")
suspend fun ProgressPatientCourses(@Header("Authorization") token:String):Response
-}
\ No newline at end of file
+
+ //Вывод необработанных сообщений
+ @Headers("Content-Type: application/json")
+ @GET("GetAppealsPatientNew")
+ suspend fun GetAppealsPatientNew(@Header("Authorization") token:String) :Response
+
+ //Вывод необработанных сообщений
+ @Headers("Content-Type: application/json")
+ @GET("GetAppealsPatientOld")
+ suspend fun GetAppealsPatientOld(@Header("Authorization") token:String) :Response
+
+
+ //Подтверждение необработанных сообщений
+ @Headers("Content-Type: application/json")
+ @PUT("UpdateMessagePatient")
+ suspend fun UpdateMessagePatient(@Header("Authorization") token:String,@Query("id") id:Int) :Response
+
+ //Отправка сообщения пациенту
+ @Headers("Content-Type: application/json")
+ @POST("AddMessagePatient")
+ suspend fun AddMessagePatient(@Header("Authorization") token:String, @Query("text") text:String) :Response
+
+ //Вывод есть ли анкета ДО
+ @Headers("Content-Type: application/json")
+ @GET("LookBefore")
+ suspend fun LookBefore(@Header("Authorization") token:String) :Response
+
+ //Вывод есть ли анкета ПОСЛЕ
+ @Headers("Content-Type: application/json")
+ @GET("LookAfter")
+ suspend fun LookAfter(@Header("Authorization") token:String) :Response
+
+
+ //Вывод есть ли анкета ПОСЛЕ
+ @Headers("Content-Type: application/json")
+ @GET("GetCalendare")
+ suspend fun GetCalendare(@Header("Authorization") token:String) :Response
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/java/com/example/rehabilitation/Setting/SettingFragment.kt b/app/src/main/java/com/example/rehabilitation/Setting/SettingFragment.kt
index e572735..a0e54bd 100644
--- a/app/src/main/java/com/example/rehabilitation/Setting/SettingFragment.kt
+++ b/app/src/main/java/com/example/rehabilitation/Setting/SettingFragment.kt
@@ -2,7 +2,6 @@ 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
@@ -12,6 +11,10 @@ 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.CodeError.Code429Activity
+import com.example.rehabilitation.CodeError.Code500Activity
+import com.example.rehabilitation.Enternet.EnternetActivity
+import com.example.rehabilitation.Enternet.EnternetCheck
import com.example.rehabilitation.Feedback.FeedbackFragment
import com.example.rehabilitation.MainFragment
import com.example.rehabilitation.Pref.ClearPref
@@ -34,6 +37,9 @@ class SettingFragment : Fragment() {
val prefPatientClear = ClearPref()
val prefPatientConclusion = ConclusionPref()
private lateinit var patientApi: PatientApi
+
+ //Класс проверки интеренета
+ val enternetCheck = EnternetCheck()
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
@@ -94,7 +100,7 @@ class SettingFragment : Fragment() {
.build()
val retrofit = Retrofit.Builder()
- .baseUrl("http://mobileapp.vmeda.org/api/")
+ .baseUrl("https://rehabilitation.vmeda.org/api/")
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build()
@@ -105,28 +111,58 @@ class SettingFragment : Fragment() {
//Получения списка пациентов
fun Logout() {
- initRetrofit()
- val Tokens = prefPatientConclusion.conclusionToken(requireContext())
- CoroutineScope(Dispatchers.IO).launch {
- val listProduct = patientApi.LogoutPatient("Bearer $Tokens")
+ if (enternetCheck.isOnline(requireContext())) {
+ 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()
+ activity?.runOnUiThread {
+
+ //Фиксируем полученные данные
+ val List = listProduct.body()
+ val Nice = listProduct.isSuccessful
+ val Code = listProduct.code()
+ if(Code==429){
+ val intetn = Intent(requireContext(), Code429Activity::class.java)
+ startActivity(intetn)
+ }
+ else if(Code==200) {
+ //Если нету ошибок
+ if (Nice) {
+ //Если нету ошибок
+ if (List != null) {
+ Toast(requireContext()).showCustomInfoToast(List?.message.toString(), requireActivity())
+ prefPatientClear.clearToken(requireContext())
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.CLMain, AuthFragment.newInstance())
+ ?.commit()
+
+
+ }
+
+ }
+ }
+ else if (Code == 500) {
+ val intetn = Intent(requireContext(), Code500Activity::class.java)
+
+ startActivity(intetn)
+ }
+ else if (Code == 401) {
+ val intetn = Intent(requireContext(), AuthorizationActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
}
}
+ } else {
+ val intetn = Intent(requireContext(), EnternetActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
}
+
}
companion object {
diff --git a/app/src/main/java/com/example/rehabilitation/Sport/Image/ImageSportAdapter.kt b/app/src/main/java/com/example/rehabilitation/Sport/Image/ImageSportAdapter.kt
index b2edc58..8b688dc 100644
--- a/app/src/main/java/com/example/rehabilitation/Sport/Image/ImageSportAdapter.kt
+++ b/app/src/main/java/com/example/rehabilitation/Sport/Image/ImageSportAdapter.kt
@@ -13,6 +13,7 @@ import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.RecyclerView.ViewHolder
import com.example.rehabilitation.R
import com.example.rehabilitation.databinding.ImageSportCardsBinding
+import com.squareup.picasso.Picasso
class ImageSportAdapter(val contextF:Context) : ListAdapter(
@@ -40,8 +41,8 @@ class ImageSportAdapter(val contextF:Context) : ListAdapter? = null
+
+ //Класс проверки интеренета
+ val enternetCheck = EnternetCheck()
+
+ //Для анкеты ДО
+ var oneB = 100
+ var twoB = 100
+ var threeB = 100
+ var fourB = 100
+ var fiveB = 100
+ var sixB = 100
+ var sevenB = 100
+ var eightB = 100
+ var nineB = 100
+
+
+ var oneA = 100
+ var twoA = 100
+ var threeA = 100
+ var fourA =100
+ var fiveA =100
+ var sixA =100
+ var sevenA = 100
+ var eightA = 100
+ var nineA = 100
+ var tenA =100
+ var elevenA = 100
+ var twelveA = 100
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
@@ -108,65 +133,126 @@ class SceduleFragment() : Fragment(),
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
+ //visibleLoadYes()
if (isAdded()) {
- prefToken = activity?.getSharedPreferences("token", Context.MODE_PRIVATE)
- Token = prefToken?.getString("token", "")!!
+ binding.also {
- 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()
- liveDaySportOne()
-
- 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
- }
-
-
- //Включение звука тиканья
- 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)
+ binding.txtNullSportList.visibility = View.VISIBLE
+ binding.button4.setOnClickListener{
+ activity?.supportFragmentManager?.beginTransaction()
+ ?.replace(R.id.placeHolderFragment, QAfterFragment.newInstance())?.commit()
}
+ prefToken = activity?.getSharedPreferences("token", Context.MODE_PRIVATE)
+ Token = prefToken?.getString("token", "")!!
+
+ 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()
+ liveDaySportOne()
+
+ model.liveDayList.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
+ if(daySportList != it){
+ initRcViewDay()
+ daySportList = it
+ adapterDay.submitList(it)//Напрямую переадем созданный список в adapter(ProductAdapter)
+ //binding.rcVIewDayList.smoothScrollToPosition(lus);
+ binding.txtNullSportList.visibility = View.GONE
+ }
+ }
+
+ model.liveImageList.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
+ adapterImage.submitList(it)//Напрямую переадем созданный список в adapter(ProductAdapter)
+ binding.LoadImage.visibility = View.GONE
+ //listImageSport = it
+ }
+
+
+
+ //Включение звука тиканья
+ 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)
+ }
+ }
+
+ //Функция в которой расположены кнопки
+ addButton()
+
+ binding.button5.setOnClickListener {
+ ClearRCView()
+ }
+
+ binding.CLLoad.setOnClickListener{
+
+ }
+
+
+ //APIliveCountViewCurrent()
+ // view_visible = false
+ GetVisibleViewList()
+
+
+ modelPatient.viewCurrent.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
+ if(viewVisible != it.view){
+
+ viewVisible = it.view
+ prefPatientSave.saveView(requireContext(),viewVisible.toString())
+ VisibleView(it.view,it.text)
+ }
+ }
+
+ clButton()
+// fixedRateTimer("timer", false, 0, 10000) {
+// activity?.runOnUiThread {
+// GetVisibleViewListTimer()
+// GetSportDay()
+// }
+// }
+
}
- //Функция в которой расположены кнопки
- addButton()
-
- binding.button5.setOnClickListener {
- ClearRCView()
- }
-
-
- //APIliveCountViewCurrent()
- view_visible = false
- GetVisibleViewList()
-
-
}
+
+ //Кнопки анкеты ДО
+ Before()
+
+ //Кнопки анкеты GJCKT
+ After()
}
+ private fun clButton() = with(binding) {
+ CLFinal.setOnClickListener{}
+// CL7day.setOnClickListener{}
+// CL15day.setOnClickListener{}
+ CLPaus.setOnClickListener{}
+ CLBlock.setOnClickListener{}
+ CLYesNoSport.setOnClickListener{}
+ CLFinalDay.setOnClickListener{}
+ CLFinal.setOnClickListener{}
+ //CLMainAfter.setOnClickListener{}
+ // CLMainBefore.setOnClickListener{}
+ }
+
+ override fun onResume() {
+ super.onResume()
+ GetVisibleViewList()
+ }
//Инициализация подлючения к серверу
private fun initRetrofit() {
@@ -179,7 +265,7 @@ class SceduleFragment() : Fragment(),
.build()
val retrofit = Retrofit.Builder()
- .baseUrl("http://mobileapp.vmeda.org/api/")
+ .baseUrl("https://rehabilitation.vmeda.org/api/")
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build()
@@ -190,49 +276,89 @@ class SceduleFragment() : Fragment(),
- //Получения списка пациентов
+ //Получения экрана
fun GetVisibleViewList() {
- if (view_visible == false) {
- view_visible = true
- visibleLoad()
- initRetrofit()
- val Tokens = prefPatientConclusion.conclusionToken(requireContext())
- CoroutineScope(Dispatchers.IO).launch {
- val listProduct = patientApi.VisibleView3("Bearer $Tokens")
+ if (enternetCheck.isOnline(requireActivity())) {
+ visibleLoadYes()
+ initRetrofit()
+ val Tokens = prefPatientConclusion.conclusionToken(requireContext())
+ CoroutineScope(Dispatchers.IO).launch {
+ val listProduct = patientApi.VisibleView3("Bearer $Tokens")
- activity?.runOnUiThread {
+ activity?.runOnUiThread {
- //Фиксируем полученные данные
- val visibleviewList = listProduct.body()
- val visibleviewListCode = listProduct.isSuccessful()
- //Если нету ошибок
- if (visibleviewListCode) {
- VisibleView(visibleviewList!!.view)
- Log.i("asdasdasdasd111111111", "23231x2wswqxsxsas")
- } else {
- Log.i("asdasdasdasd22222222", "23231x2wswqxsxsas")
- timerVisibleView()
+ //Фиксируем полученные данные
+ val List = listProduct.body()
+ val Nice = listProduct.isSuccessful
+ val Code = listProduct.code()
+ if(Code==429){
+ val intetn = Intent(requireContext(), Code429Activity::class.java)
+
+ startActivity(intetn)
+ }
+ else if(Code==200) {
+ //Если нету ошибок
+ if (Nice) {
+ //Если нету ошибок
+ if (List != null) {
+ modelPatient.viewCurrent.value = List
+ visibleLoadNo()
+ }
+
+ }
+ }
+ else if (Code == 500) {
+ val intetn = Intent(requireContext(), Code500Activity::class.java)
+
+ startActivity(intetn)
+ }
+ else if (Code == 401) {
+ val intetn = Intent(requireContext(), AuthorizationActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
+
}
- }
+ // }
}
- }
- }
+ } else {
+ val intetn = Intent(requireContext(), EnternetActivity::class.java)
- private fun timerVisibleView() {
- Log.i("asdasdasdasd444444444", "23231x2wswqxsxsas")
- view_visible = false
- CoroutineScope(Dispatchers.IO).launch {
- Timer().schedule(timerTask {
- activity?.runOnUiThread {
- GetVisibleViewList()
- }
- }, 15000)
+ startActivity(intetn)
}
}
+//
+// //Получения экрана
+// fun GetVisibleViewListTimer() {
+// if (enternetCheck.isOnline(requireContext())) {
+// initRetrofit()
+// val Tokens = prefPatientConclusion.conclusionToken(requireContext())
+// CoroutineScope(Dispatchers.IO).launch {
+// val listProduct = patientApi.VisibleView3("Bearer $Tokens")
+//
+// activity?.runOnUiThread {
+//
+// //Фиксируем полученные данные
+// val visibleviewList = listProduct.body()
+// val visibleviewListCode = listProduct.isSuccessful()
+// //Если нету ошибок
+// if (visibleviewListCode) {
+// modelPatient.viewCurrent.value = visibleviewList
+// }
+// }
+// }
+// } else {
+// val intetn = Intent(requireContext(), EnternetActivity::class.java)
+// activity?.finish()
+// startActivity(intetn)
+// }
+// }
- private fun VisibleView(view: Int) {
+
+ private fun VisibleView(view: Int, text:String) {
+ Log.i("123asda213s","a123sdasd123")
when (view) {
1 -> visibleNoSport()
2 -> visibleFinel()
@@ -242,11 +368,16 @@ class SceduleFragment() : Fragment(),
6 -> visibleFinalDay()
7 -> visibleAfterQ()
8 -> visibleBeforeQ()
- 9 -> visibleBlock()
- 10 -> visiblePause()
+ 9 -> visibleBlock(text)
+ 10 -> visiblePause(text)
//616->
+ else ->{
+ visibleLoadYes()
+ }
+
}
+
}
@@ -301,34 +432,35 @@ class SceduleFragment() : Fragment(),
//Выводим экран с фразой готовы ли вы начать тренировку
private fun visibleYesNoSport() {
binding.CLListSport.visibility = View.GONE
- binding.CLDayList.visibility = View.GONE
+ binding.CLDayList.visibility = View.VISIBLE
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.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.CLBefore.visibility = View.GONE
+ binding.CLAfter.visibility = View.GONE
binding.btnYesStartSport.setOnClickListener {
- if (SportUserTrue == 0) {
- Toast(requireContext()).showCustomInfoToast(
- "Попросите врача создать вам курс",
- requireActivity()
- )
- } else {
- activity?.supportFragmentManager?.beginTransaction()
- ?.replace(R.id.placeHolderFragment, QBeforeFragment.newInstance())?.commit()
- }
+// if (SportUserTrue == 0) {
+// Toast(requireContext()).showCustomInfoToast(
+// "Попросите врача создать вам курс",
+// requireActivity()
+// )
+// } else {
+ visibleBeforeQ()
+ // }
}
}
//Выводим списка тренировок
private fun visibleDayList() {
-
+ GetSportDay()
binding.CLListSport.visibility = View.GONE
binding.CLDayList.visibility = View.VISIBLE
binding.CLCardSport.visibility = View.GONE
@@ -336,15 +468,17 @@ class SceduleFragment() : Fragment(),
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.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.CLBefore.visibility = View.GONE
+ binding.CLAfter.visibility = View.GONE
- GetSportDay()
- binding.rcVIewDayList.smoothScrollToPosition(0);
+
+ // binding.rcVIewDayList.smoothScrollToPosition(0);
}
@@ -358,192 +492,264 @@ class SceduleFragment() : Fragment(),
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.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.CLBefore.visibility = View.GONE
+ binding.CLAfter.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 visibleLoadYes() {
+// binding.CLLoad.visibility = View.VISIBLE
+// }
+//
+// private fun visibleLoadNo() {
+// binding.CLLoad.visibility = View.GONE
+// }
//Выводим экран паузы
- private fun visiblePause() {
+ private fun visiblePause(text:String) {
binding.CLListSport.visibility = View.GONE
- binding.CLDayList.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.VISIBLE
binding.CLBlock.visibility = View.GONE
- binding.txtDatePause.setText("${PauseDay}")
- binding.CL7day.visibility = View.GONE
- binding.CL15day.visibility = View.GONE
+ binding.txtDatePause.setText("${text}")
+ // 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.CLBefore.visibility = View.GONE
+ binding.CLAfter.visibility = View.GONE
}
//Выводим экран блока
- private fun visibleBlock() {
+ private fun visibleBlock(text:String) {
binding.CLListSport.visibility = View.GONE
- binding.CLDayList.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.txtDateBlock.setText("${Block}")
+ binding.txtDateBlock.setText("${text}")
binding.CLBlock.visibility = View.VISIBLE
- binding.CL7day.visibility = View.GONE
- binding.CL15day.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.CLBefore.visibility = View.GONE
+ binding.CLAfter.visibility = View.GONE
+
}
//Выводим сообщенеи от отправке отчета на 7 день
private fun visible7day() {
binding.CLListSport.visibility = View.GONE
- binding.CLDayList.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.VISIBLE
- binding.CL15day.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
+ binding.CLBefore.visibility = View.GONE
+ binding.CLAfter.visibility = View.GONE
}
//Выводим сообщенеи от отправке отчета на 15 день
private fun visible15day() {
binding.CLListSport.visibility = View.GONE
- binding.CLDayList.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.VISIBLE
+ // 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
+ binding.CLBefore.visibility = View.GONE
+ binding.CLAfter.visibility = View.GONE
}
//Выводим экрана окончания курса
private fun visibleFinel() {
binding.CLListSport.visibility = View.GONE
- binding.CLDayList.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.CL7day.visibility = View.GONE
+ // binding.CL15day.visibility = View.GONE
binding.CLFinal.visibility = View.VISIBLE
binding.CLNoSport.visibility = View.GONE
binding.CLFinalDay.visibility = View.GONE
+ binding.CLBefore.visibility = View.GONE
+ binding.CLAfter.visibility = View.GONE
}
//Выводим экрана о том что курса нету
private fun visibleNoSport() {
binding.CLListSport.visibility = View.GONE
- binding.CLDayList.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.CL7day.visibility = View.GONE
+ // binding.CL15day.visibility = View.GONE
binding.CLFinal.visibility = View.GONE
binding.CLNoSport.visibility = View.VISIBLE
binding.CLFinalDay.visibility = View.GONE
+ binding.CLBefore.visibility = View.GONE
+ binding.CLAfter.visibility = View.GONE
}
//Выводим финал дня тренировок
private fun visibleFinalDay() {
binding.CLListSport.visibility = View.GONE
- binding.CLDayList.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.CL7day.visibility = View.GONE
+ // binding.CL15day.visibility = View.GONE
binding.CLFinal.visibility = View.GONE
binding.CLNoSport.visibility = View.GONE
binding.CLFinalDay.visibility = View.VISIBLE
+ binding.CLBefore.visibility = View.GONE
+ binding.CLAfter.visibility = View.GONE
}
//Переход на накету ДО
private fun visibleBeforeQ() {
- activity?.supportFragmentManager?.beginTransaction()
- ?.replace(R.id.placeHolderFragment, QBeforeFragment.newInstance())?.commit()
+ 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
+ binding.CLBefore.visibility = View.VISIBLE
+ binding.CLAfter.visibility = View.GONE
}
+
+
//Переход на накету ПОСЛЕ
private fun visibleAfterQ() {
- activity?.supportFragmentManager?.beginTransaction()
- ?.replace(R.id.placeHolderFragment, QAfterFragment.newInstance())?.commit()
+ 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
+ binding.CLBefore.visibility = View.GONE
+ binding.CLAfter.visibility = View.VISIBLE
}
- //Получения списка пациентов
+ //Включение загрузки
+ private fun visibleLoadYes() {
+ viewVisible = 100
+ binding.CLLoad.visibility = View.VISIBLE
+ }
+ //Отключение загрузки
+ private fun visibleLoadNo() {
+ binding.CLLoad.visibility = View.GONE
+ }
+
+
+ //Получения списка упражнений
fun GetSportDay() {
- //initRcViewDay()
- initRetrofit()
- val Tokens = prefPatientConclusion.conclusionToken(requireContext())
- CoroutineScope(Dispatchers.IO).launch {
- val sportDay = patientApi.GetSportDay("Bearer $Tokens")
- requireActivity().runOnUiThread {
+ if (enternetCheck.isOnline(requireContext())) {
+ 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")
- }
+ //Фиксируем полученные данные
+ val List = sportDay.body()
+ val Nice = sportDay.isSuccessful
+ val Code = sportDay.code()
+ if(Code==429){
+ val intetn = Intent(requireContext(), Code429Activity::class.java)
+
+ startActivity(intetn)
+ }
+ else if(Code==200) {
+ //Если нету ошибок
+ if (Nice) {
+ //Если нету ошибок
+ if (List != null) {
+ model.liveDayList.value = List?.sport_for_day
+ }
+
+ }
+ }
+ else if (Code == 500) {
+ val intetn = Intent(requireContext(), Code500Activity::class.java)
+
+ startActivity(intetn)
+ }
+ else if (Code == 401) {
+ val intetn = Intent(requireContext(), AuthorizationActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
// else{
// Log.i("asdasdasdasd22222222","23231x2wswqxsxsas")
// Handler().postDelayed({
// GetSportDay()
// }, 5000)
// }
+ }
}
+ } else {
+ val intetn = Intent(requireContext(), EnternetActivity::class.java)
+
+ startActivity(intetn)
}
+
}
//Подтверждение упражнения
fun AddCheckView(id: Int, check: Int) {
- visibleLoad()
+ if (enternetCheck.isOnline(requireContext())) {
+ visibleLoadYes()
initRetrofit()
val Tokens = prefPatientConclusion.conclusionToken(requireContext())
CoroutineScope(Dispatchers.IO).launch {
@@ -552,21 +758,48 @@ class SceduleFragment() : Fragment(),
activity?.runOnUiThread {
//Фиксируем полученные данные
- val checkSportMes = checkSport.body()
- val checkSportMesCode = checkSport.isSuccessful()
- //Если нету ошибок
- if (checkSportMesCode) {
- if(check == 1){
- addCheckYes()
- }
- else if(check == 2){
- addCheckNo()
+ val List = checkSport.body()
+ val Nice = checkSport.isSuccessful
+ val Code = checkSport.code()
+ if(Code==429){
+ val intetn = Intent(requireContext(), Code429Activity::class.java)
+
+ startActivity(intetn)
+ }
+ else if(Code==200) {
+ //Если нету ошибок
+ if (Nice) {
+ //Если нету ошибок
+ if (List != null) {
+ if(check == 1){
+ addCheckYes()
+ }
+ else if(check == 2){
+ addCheckNo()
+ }
+ visibleDayList()
+ visibleLoadNo()
+ }
+
}
}
+ else if (Code == 500) {
+ val intetn = Intent(requireContext(), Code500Activity::class.java)
+ startActivity(intetn)
+ }
+ else if (Code == 401) {
+ val intetn = Intent(requireContext(), AuthorizationActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
}
}
+ } else {
+ val intetn = Intent(requireContext(), EnternetActivity::class.java)
+ startActivity(intetn)
+ }
}
//Функция активации кнпок
@@ -585,11 +818,14 @@ class SceduleFragment() : Fragment(),
binding.btnAddDayCategoryCheck.setOnClickListener {
AddCheckView(idCheckDay,1)
Log.i("btnAddDayCategoryCheck1","btnAddDayCategoryCheck1")
+
+
}
binding.btnNoAddDayCategoryCheck.setOnClickListener {
AddCheckView(idCheckDay,2)
Log.i("btnAddDayCategoryCheck2","btnAddDayCategoryCheck2")
+
}
}
@@ -597,7 +833,7 @@ class SceduleFragment() : Fragment(),
stopSound()
binding.btnMp3.setBackgroundResource(android.R.drawable.ic_media_play)
- visibleLoad()
+ visibleLoadYes()
binding.btnNoAddDayCategoryCheck.isEnabled = false
binding.btnNoAddDayCategoryCheck.isClickable = false
@@ -624,7 +860,7 @@ class SceduleFragment() : Fragment(),
stopSound()
binding.btnMp3.setBackgroundResource(android.R.drawable.ic_media_play)
- visibleLoad()
+ visibleLoadYes()
binding.btnAddDayCategoryCheck.isEnabled = false
@@ -648,31 +884,7 @@ class SceduleFragment() : Fragment(),
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()
@@ -693,7 +905,7 @@ class SceduleFragment() : Fragment(),
GridLayoutManager(requireContext(), 1)//По вертикали будет выводить по умолчанию
adapterDay = DayAdapter(this@SceduleFragment)
rcVIewDayList.adapter = adapterDay
- binding.rcVIewDayList.smoothScrollToPosition(0);
+ //binding.rcVIewDayList.smoothScrollToPosition(0);
}
//Инициализация списка для фотографий
@@ -754,38 +966,70 @@ class SceduleFragment() : Fragment(),
mMediaPlayer!!.release()
mMediaPlayer = null
}
+ println("super.onStop triggered")
+
}
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 {
+ if (enternetCheck.isOnline(requireContext())) {
+ initRetrofit()
+ val Tokens = prefPatientConclusion.conclusionToken(requireContext())
+ CoroutineScope(Dispatchers.IO).launch {
+ val sportDayOne = patientApi.GetSportDayOne("Bearer $Tokens", id)
+ requireActivity().runOnUiThread {
- //Фиксируем полученные данные
- val sportDayOneList = sportDayOne.body()
+ //Фиксируем полученные данные
+ val List = sportDayOne.body()
+ val Nice = sportDayOne.isSuccessful
+ val Code = sportDayOne.code()
+ if(Code==429){
+ val intetn = Intent(requireContext(), Code429Activity::class.java)
- //Если нету ошибок
- if (sportDayOneList != null) {
- modelPatient.liveDaySportOne.value = sportDayOneList
+ startActivity(intetn)
+ }
+ else if(Code==200) {
+ //Если нету ошибок
+ if (Nice) {
+ //Если нету ошибок
+ if (List != null) {
+ modelPatient.liveDaySportOne.value = List
+ }
+
+ }
+ }
+ else if (Code == 500) {
+ val intetn = Intent(requireContext(), Code500Activity::class.java)
+
+ startActivity(intetn)
+ }
+ else if (Code == 401) {
+ val intetn = Intent(requireContext(), AuthorizationActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
}
- }
+ }
+ } else {
+ val intetn = Intent(requireContext(), EnternetActivity::class.java)
+
+ startActivity(intetn)
}
+
}
private fun liveDaySportOne() = with(binding) {
modelPatient.liveDaySportOne.observe(viewLifecycleOwner) {
- visibleLoad()
+ visibleLoadYes()
//Фиксируем id
idDaySport = it.id.toInt()
@@ -826,7 +1070,882 @@ class SceduleFragment() : Fragment(),
//Выводим экран
visibleDayCard()
+
}
}
+
+
+ //АНКЕТА ДО
+
+ private fun Before() {
+ //Выход
+// binding.btnExitQB.setOnClickListener {
+// activity?.supportFragmentManager?.beginTransaction()
+// ?.replace(R.id.placeHolderFragment, SceduleFragment.newInstance())?.commit()
+// }
+ buttenAddBefore()
+ //Сохраняем результат
+ binding.btnSaveQuestionnaireB.setOnClickListener {
+
+ if (oneB != 100 && twoB != 100 && threeB != 100 && fourB != 100 && fiveB != 100 && sixB != 100 && sevenB != 100 && eightB != 100 && nineB != 100) {
+ if(oneB >= 6) {
+ AlertDialog.Builder(requireContext())
+ .setTitle("Анкета")
+ .setMessage("Уверены ли Вы в выбранных ответах на вопросы анкеты? Халатное отношение к вопросам анкеты приведет к блокировке комплекса")
+ .setNeutralButton("Подтвердить") { dialog, whichButton ->
+ addQuestionnaireB()
+ }
+ .setNegativeButton("Отмена") { dialog, whichButton ->
+ }.show()
+ }
+ else if(fourB == 1 && fiveB == 1 && sixB == 1 && sevenB == 1 && nineB == 1){
+ AlertDialog.Builder(requireContext())
+ .setTitle("Анкета")
+ .setMessage("Уверены ли Вы в выбранных ответах на вопросы анкеты? Халатное отношение к вопросам анкеты приведет к паузе комплекса")
+ .setNeutralButton("Подтвердить") { dialog, whichButton ->
+ addQuestionnaireB()
+ }
+ .setNegativeButton("Отмена") { dialog, whichButton ->
+ }.show()
+ }
+ else{
+ addQuestionnaireB()
+ }
+
+ } else {
+ Toast(requireContext()).showCustomInfoToast(
+ "Не все пункты выбраны",
+ requireActivity()
+ )
+ }
+ }
+
+// fixedRateTimer("timer", false, 0, 10000) {
+// activity?.runOnUiThread {
+//
+// }
+// }
+ }
+
+ //Функция
+ fun addQuestionnaireB(){
+
+ val item = BeforeQuestionnaireModel(
+ oneB,
+ twoB,
+ threeB,
+ fourB,
+ fiveB,
+ sixB,
+ sevenB,
+ eightB,
+ nineB,
+ )
+ BeforeQuestionnaire(item)
+
+ }
+
+ private fun buttenAddBefore() {
+
+ buttenAdd1B()
+ buttenAdd1_2B()
+ buttenAdd2B()
+ buttenAdd3B()
+ buttenAdd4B()
+ buttenAdd5B()
+ buttenAdd6B()
+ buttenAdd7B()
+ buttenAdd8B()
+ buttenAdd9B()
+
+ }
+
+ //Отправка запроса
+ fun BeforeQuestionnaire(item: BeforeQuestionnaireModel) {
+ if (enternetCheck.isOnline(requireContext())) {
+ initRetrofit()
+ val Tokens = prefPatientConclusion.conclusionToken(requireContext())
+ CoroutineScope(Dispatchers.IO).launch {
+ val QA = patientApi.AddBeforeQuestionnaire2("Bearer $Tokens",item)
+ requireActivity().runOnUiThread {
+
+
+
+ //Фиксируем полученные данные
+ val List = QA.body()
+ val Nice = QA.isSuccessful
+ val Code = QA.code()
+ if(Code==429){
+ val intetn = Intent(requireContext(), Code429Activity::class.java)
+
+ startActivity(intetn)
+ }
+ else if(Code==200) {
+ //Если нету ошибок
+ if (Nice) {
+ //Если нету ошибок
+ if (List != null) {
+ Toast(requireContext()).showCustomInfoToast(List.message, requireActivity())
+// activity?.supportFragmentManager?.beginTransaction()
+// ?.replace(R.id.placeHolderFragment, SceduleFragment.newInstance())?.commit()
+ // GetVisibleViewList()
+
+ visibleLoadYes()
+ }
+ else{
+ Toast(requireContext()).showCustomInfoToast("Ошибка при отправке", requireActivity())
+ // GetVisibleViewList()
+ visibleLoadYes()
+ }
+
+ }
+ }
+ else if (Code == 500) {
+ val intetn = Intent(requireContext(), Code500Activity::class.java)
+
+ startActivity(intetn)
+ }
+ else if (Code == 401) {
+ val intetn = Intent(requireContext(), AuthorizationActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
+
+ }
+
+ }
+ } else {
+ val intetn = Intent(requireContext(), EnternetActivity::class.java)
+
+ startActivity(intetn)
+ }
+
+ }
+
+ private fun buttenAdd1B() {
+ binding.CVQyes1B.setOnClickListener {
+ binding.CLQ112B.visibility = View.VISIBLE
+ binding.CVQyes1B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno1B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+
+ }
+ binding.CVQno1B.setOnClickListener {
+ binding.CLQ112B.visibility = View.GONE
+ binding.CVQyes1B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno1B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ oneB = 0
+ }
+ }
+
+
+ private fun buttenAdd1_2B() {
+ binding.CVQ10B.setOnClickListener {
+ binding.CVQ10B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ11B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ oneB = 0
+ }
+ binding.CVQ11B.setOnClickListener {
+ binding.CVQ10B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ12B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ oneB = 1
+ }
+ binding.CVQ12B.setOnClickListener {
+ binding.CVQ10B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ13B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ oneB = 2
+ }
+ binding.CVQ13B.setOnClickListener {
+ binding.CVQ10B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ14B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ oneB = 3
+ }
+ binding.CVQ14B.setOnClickListener {
+ binding.CVQ10B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ15B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ110B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ oneB = 4
+
+ }
+ binding.CVQ15B.setOnClickListener {
+ binding.CVQ10B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ16B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ110B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ oneB = 5
+ }
+ binding.CVQ16B.setOnClickListener {
+ binding.CVQ10B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ17B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ110B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ oneB = 6
+ }
+ binding.CVQ17B.setOnClickListener {
+ binding.CVQ10B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ18B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ110B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ oneB = 7
+ }
+ binding.CVQ18B.setOnClickListener {
+ binding.CVQ10B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ19B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ110B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ oneB = 8
+ }
+ binding.CVQ19B.setOnClickListener {
+ binding.CVQ10B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ110B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ oneB = 9
+ }
+ binding.CVQ110B.setOnClickListener {
+ binding.CVQ10B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ110B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ oneB = 10
+ }
+ }
+
+ private fun buttenAdd2B() {
+ binding.CVQyes2B.setOnClickListener {
+ binding.CVQyes2B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno2B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ twoB = 1
+ }
+ binding.CVQno2B.setOnClickListener {
+ binding.CVQyes2B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno2B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ twoB = 0
+ }
+ }
+
+ private fun buttenAdd3B() {
+ binding.CVQyes3B.setOnClickListener {
+ binding.CVQyes3B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno3B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ threeB = 1
+ }
+ binding.CVQno3B.setOnClickListener {
+ binding.CVQyes3B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno3B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ threeB = 0
+ }
+ }
+
+ private fun buttenAdd4B() {
+ binding.CVQyes4B.setOnClickListener {
+ binding.CVQyes4B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno4B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ fourB = 1
+ }
+ binding.CVQno4B.setOnClickListener {
+ binding.CVQyes4B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno4B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ fourB = 0
+ }
+ }
+
+ private fun buttenAdd5B() {
+ binding.CVQyes5B.setOnClickListener {
+ binding.CVQyes5B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno5B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ fiveB = 1
+ }
+ binding.CVQno5B.setOnClickListener {
+ binding.CVQyes5B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno5B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ fiveB = 0
+ }
+ }
+
+ private fun buttenAdd6B() {
+ binding.CVQyes6B.setOnClickListener {
+ binding.CVQyes6B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno6B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ sixB = 1
+ }
+ binding.CVQno6B.setOnClickListener {
+ binding.CVQyes6B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno6B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ sixB = 0
+ }
+ }
+
+ private fun buttenAdd7B() {
+ binding.CVQyes7B.setOnClickListener {
+ binding.CVQyes7B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno7B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ sevenB = 1
+ }
+ binding.CVQno7B.setOnClickListener {
+ binding.CVQyes7B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno7B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ sevenB = 0
+ }
+ }
+
+ private fun buttenAdd8B() {
+ binding.CVQyes8B.setOnClickListener {
+ binding.CVQyes8B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno8B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ eightB = 1
+ }
+ binding.CVQno8B.setOnClickListener {
+ binding.CVQyes8B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno8B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ eightB = 0
+ }
+ }
+
+ private fun buttenAdd9B() {
+ binding.CVQyes9B.setOnClickListener {
+ binding.CVQyes9B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno9B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ nineB = 1
+ }
+ binding.CVQno9B.setOnClickListener {
+ binding.CVQyes9B.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno9B.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ nineB = 0
+ }
+ }
+
+
+ //Анкета ПОСЛЕ
+ private fun After() {
+ buttenAddAfter()
+ //Выход
+// binding.btnBackA.setOnClickListener {
+// activity?.supportFragmentManager?.beginTransaction()
+// ?.replace(R.id.placeHolderFragment, SceduleFragment.newInstance())?.commit()
+// }
+
+ //Сохраняем результат
+ binding.btnSaveQuestionnaireA.setOnClickListener {
+ if (oneA != 100 && twoA != 100 && threeA != 100 && fourA != 100 && fiveA != 100 && sixA != 100 && sevenA != 100 && eightA != 100 && nineA != 100 && tenA != 100 && elevenA != 100 && twelveA != 100) {
+
+ if(nineA == 1){
+ AlertDialog.Builder(requireContext())
+ .setTitle("Анкета")
+ .setMessage("Уверены ли Вы в выбранных ответах на вопросы анкеты? Халатное отношение к вопросам анкеты приведет к блокировке комплекса")
+ .setNeutralButton("Подтвердить") { dialog, whichButton ->
+ addQuestionAfter()
+ }
+ .setNegativeButton("Отмена") { dialog, whichButton ->
+
+ }
+ .show()
+ }
+ else if(oneA >=6 && threeA == 0 && sixA == 1 && eightA == 1 && elevenA == 1){
+ AlertDialog.Builder(requireContext())
+ .setTitle("Анкета")
+ .setMessage("Уверены ли Вы в выбранных ответах на вопросы анкеты? Халатное отношение к вопросам анкеты приведет к паузе комплекса")
+ .setNeutralButton("Подтвердить") { dialog, whichButton ->
+ addQuestionAfter()
+ }
+ .setNegativeButton("Отмена") { dialog, whichButton ->
+
+ }
+ .show()
+ }
+ else{
+ addQuestionAfter()
+ }
+ } else {
+ Toast(requireContext()).showCustomInfoToast(
+ "Не все пункты выбраны",
+ requireActivity()
+ )
+ }
+ }
+// fixedRateTimer("timer", false, 0, 10000) {
+// activity?.runOnUiThread {
+//
+// }
+// }
+ }
+ fun addQuestionAfter() {
+
+
+ val item = AfterQuestionnaireModel(
+ oneA,
+ twoA,
+ threeA,
+ fourA,
+ fiveA,
+ sixA,
+ sevenA,
+ eightA,
+ nineA,
+ tenA,
+ elevenA,
+ twelveA,
+ )
+
+ AfterQuestionnaire(item)
+ }
+
+ //Отправка анкеты ПОСЛЕ
+ fun AfterQuestionnaire(item:AfterQuestionnaireModel) {
+ if (enternetCheck.isOnline(requireContext())) {
+ initRetrofit()
+ val Tokens = prefPatientConclusion.conclusionToken(requireContext())
+ CoroutineScope(Dispatchers.IO).launch {
+ val QA = patientApi.AddAfterQuestionnaire2("Bearer $Tokens",item)
+ requireActivity().runOnUiThread {
+
+
+
+ //Фиксируем полученные данные
+ val List = QA.body()
+ val Nice = QA.isSuccessful
+ val Code = QA.code()
+ if(Code==429){
+ val intetn = Intent(requireContext(), Code429Activity::class.java)
+
+ startActivity(intetn)
+ }
+ else if(Code==200) {
+ //Если нету ошибок
+ if (Nice) {
+ //Если нету ошибок
+ if (List != null) {
+ Toast(requireContext()).showCustomInfoToast(List.message, requireActivity())
+ //viewVisible()
+ //GetVisibleViewList()
+ visibleLoadYes()
+ }
+ else{
+ if (List != null) {
+ Toast(requireContext()).showCustomInfoToast(List.message, requireActivity())
+ // GetVisibleViewList()
+ visibleLoadYes()
+ }
+ }
+
+ }
+ }
+ else if (Code == 500) {
+ val intetn = Intent(requireContext(), Code500Activity::class.java)
+
+ startActivity(intetn)
+ }
+ else if (Code == 401) {
+ val intetn = Intent(requireContext(), AuthorizationActivity::class.java)
+ activity?.finish()
+ startActivity(intetn)
+ }
+ }
+
+ }
+ } else {
+ val intetn = Intent(requireContext(), EnternetActivity::class.java)
+
+ startActivity(intetn)
+ }
+
+ }
+
+ private fun buttenAddAfter() {
+ buttenAdd1A()
+ buttenAdd2A()
+ buttenAdd3A()
+ buttenAdd4A()
+ buttenAdd5A()
+ buttenAdd6A()
+ buttenAdd7A()
+ buttenAdd8A()
+ buttenAdd9A()
+ buttenAdd10A()
+ buttenAdd11A()
+ buttenAdd12A()
+ }
+
+ private fun buttenAdd1A() {
+ binding.CVQ10A.setOnClickListener {
+ binding.CVQ10A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ11A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ oneA = 0
+ }
+ binding.CVQ11A.setOnClickListener {
+ binding.CVQ10A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ12A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ oneA = 1
+ }
+ binding.CVQ12A.setOnClickListener {
+ binding.CVQ10A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ13A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ oneA = 2
+ }
+ binding.CVQ13A.setOnClickListener {
+ binding.CVQ10A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ14A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ oneA = 3
+ }
+ binding.CVQ14A.setOnClickListener {
+ binding.CVQ10A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ15A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ110A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ oneA = 4
+
+ }
+ binding.CVQ15A.setOnClickListener {
+ binding.CVQ10A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ16A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ110A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ oneA = 5
+ }
+ binding.CVQ16A.setOnClickListener {
+ binding.CVQ10A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ17A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ110A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ oneA = 6
+ }
+ binding.CVQ17A.setOnClickListener {
+ binding.CVQ10A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ18A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ110A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ oneA = 7
+ }
+ binding.CVQ18A.setOnClickListener {
+ binding.CVQ10A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ19A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ110A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ oneA = 8
+ }
+ binding.CVQ19A.setOnClickListener {
+ binding.CVQ10A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQ110A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ oneA = 9
+ }
+ binding.CVQ110A.setOnClickListener {
+ binding.CVQ10A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ11A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ12A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ13A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ14A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ15A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ16A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ17A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ18A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ19A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQ110A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ oneA = 10
+ }
+ }
+
+ private fun buttenAdd2A() {
+ binding.CVQyes2A.setOnClickListener {
+ binding.CVQyes2A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno2A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ twoA = 1
+ }
+ binding.CVQno2A.setOnClickListener {
+ binding.CVQyes2A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno2A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ twoA = 0
+ }
+ }
+
+ private fun buttenAdd3A() {
+ binding.CVQyes3A.setOnClickListener {
+ Log.d("CVQyes3", "CVQyes3")
+ binding.CVQyes3A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno3A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ threeA = 1
+ }
+ binding.CVQno3A.setOnClickListener {
+ binding.CVQyes3A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno3A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ threeA = 0
+ }
+ }
+
+ private fun buttenAdd4A() {
+ binding.CVQyes4A.setOnClickListener {
+ binding.CVQyes4A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno4A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ fourA = 1
+ }
+ binding.CVQno4A.setOnClickListener {
+ binding.CVQyes4A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno4A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ fourA = 0
+ }
+ }
+
+ private fun buttenAdd5A() {
+ binding.CVQyes5A.setOnClickListener {
+ binding.CVQyes5A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno5A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ fiveA = 1
+ }
+ binding.CVQno5A.setOnClickListener {
+ binding.CVQyes5A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno5A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ fiveA = 0
+ }
+ }
+
+ private fun buttenAdd6A() {
+ binding.CVQyes6A.setOnClickListener {
+ binding.CVQyes6A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno6A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ sixA = 1
+ }
+ binding.CVQno6A.setOnClickListener {
+ binding.CVQyes6A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno6A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ sixA =0
+ }
+ }
+
+ private fun buttenAdd7A() {
+ binding.CVQyes7A.setOnClickListener {
+ binding.CVQyes7A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno7A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ sevenA = 1
+ }
+ binding.CVQno7A.setOnClickListener {
+ binding.CVQyes7A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno7A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ sevenA =0
+ }
+ }
+
+ private fun buttenAdd8A() {
+ binding.CVQyes8A.setOnClickListener {
+ binding.CVQyes8A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno8A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ eightA = 1
+ }
+ binding.CVQno8A.setOnClickListener {
+ binding.CVQyes8A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno8A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ eightA = 0
+ }
+ }
+
+ private fun buttenAdd9A() {
+ binding.CVQyes9A.setOnClickListener {
+ binding.CVQyes9A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno9A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ nineA = 1
+ }
+ binding.CVQno9A.setOnClickListener {
+ binding.CVQyes9A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno9A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ nineA = 0
+ }
+ }
+
+ private fun buttenAdd10A() {
+ binding.CVQyes10A.setOnClickListener {
+ binding.CVQyes10A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno10A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ tenA = 1
+ }
+ binding.CVQno10A.setOnClickListener {
+ binding.CVQyes10A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno10A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ tenA = 0
+ }
+ }
+
+ private fun buttenAdd11A() {
+ binding.CVQyes11A.setOnClickListener {
+ binding.CVQyes11A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno11A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ elevenA = 1
+ }
+ binding.CVQno11A.setOnClickListener {
+ binding.CVQyes11A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno11A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ elevenA = 0
+ }
+ }
+
+ private fun buttenAdd12A() {
+ binding.CVQyes12A.setOnClickListener {
+ binding.CVQyes12A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ binding.CVQno12A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ twelveA = 1
+ }
+ binding.CVQno12A.setOnClickListener {
+ binding.CVQyes12A.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
+ binding.CVQno12A.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
+ twelveA = 0
+ }
+ }
+
+
+
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/rehabilitation/Sport/ViewModel.kt b/app/src/main/java/com/example/rehabilitation/Sport/ViewModel.kt
new file mode 100644
index 0000000..a49995f
--- /dev/null
+++ b/app/src/main/java/com/example/rehabilitation/Sport/ViewModel.kt
@@ -0,0 +1,8 @@
+package com.example.rehabilitation.Sport
+
+data class ViewModel(
+ val view: Int,
+ val text: String,
+
+)
+
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
deleted file mode 100644
index 89b0a40..0000000
--- a/app/src/main/java/com/example/rehabilitation/model_adapter/Calendare/CalendareAdapter.kt
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.example.rehabilitation.model_adapter.Calendare
-
-import android.annotation.SuppressLint
-import android.view.ViewGroup
-import androidx.recyclerview.widget.RecyclerView
-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 :
- RecyclerView.Adapter() {
-
- val flights = mutableListOf()
-
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Example5FlightsViewHolder {
- return Example5FlightsViewHolder(
- Example5EventItemViewv2Binding.inflate(parent.context.layoutInflater, parent, false),
- )
- }
-
- override fun onBindViewHolder(viewHolder: Example5FlightsViewHolder, position: Int) {
- viewHolder.bind(flights[position])
- }
-
- override fun getItemCount(): Int = flights.size
-
- inner class Example5FlightsViewHolder(val binding: Example5EventItemViewv2Binding) :
- RecyclerView.ViewHolder(binding.root) {
-
- @SuppressLint("NewApi")
- fun bind(flight: Flight) {
- binding.itemFlightDateText.apply {
- text = flightDateTimeFormatter.format(flight.time)
- setBackgroundColor(itemView.context.getColorCompat(flight.color))
- }
-
- binding.txtItem.text = flight.item
- }
- }
-}
diff --git a/app/src/main/res/drawable/add1.png b/app/src/main/res/drawable/add1.png
new file mode 100644
index 0000000..515d45e
Binary files /dev/null and b/app/src/main/res/drawable/add1.png differ
diff --git a/app/src/main/res/drawable/arrow_24.xml b/app/src/main/res/drawable/arrow_24.xml
new file mode 100644
index 0000000..8452791
--- /dev/null
+++ b/app/src/main/res/drawable/arrow_24.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/b1_1.png b/app/src/main/res/drawable/b1_1.png
deleted file mode 100644
index 38d7f95..0000000
Binary files a/app/src/main/res/drawable/b1_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/b1_2.png b/app/src/main/res/drawable/b1_2.png
deleted file mode 100644
index 5b0a40e..0000000
Binary files a/app/src/main/res/drawable/b1_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/b2_1.png b/app/src/main/res/drawable/b2_1.png
deleted file mode 100644
index a21f50d..0000000
Binary files a/app/src/main/res/drawable/b2_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/b2_2.png b/app/src/main/res/drawable/b2_2.png
deleted file mode 100644
index cc2e245..0000000
Binary files a/app/src/main/res/drawable/b2_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/b3_1.png b/app/src/main/res/drawable/b3_1.png
deleted file mode 100644
index 71bd281..0000000
Binary files a/app/src/main/res/drawable/b3_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/b3_2.png b/app/src/main/res/drawable/b3_2.png
deleted file mode 100644
index 7f4d88b..0000000
Binary files a/app/src/main/res/drawable/b3_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/b3_3.png b/app/src/main/res/drawable/b3_3.png
deleted file mode 100644
index 96da2a8..0000000
Binary files a/app/src/main/res/drawable/b3_3.png and /dev/null differ
diff --git a/app/src/main/res/drawable/b4_1.png b/app/src/main/res/drawable/b4_1.png
deleted file mode 100644
index f273f74..0000000
Binary files a/app/src/main/res/drawable/b4_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/b4_2.png b/app/src/main/res/drawable/b4_2.png
deleted file mode 100644
index 4e5cc96..0000000
Binary files a/app/src/main/res/drawable/b4_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c10_1.png b/app/src/main/res/drawable/c10_1.png
deleted file mode 100644
index 3c1f1bf..0000000
Binary files a/app/src/main/res/drawable/c10_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c10_2.png b/app/src/main/res/drawable/c10_2.png
deleted file mode 100644
index 7ce21b7..0000000
Binary files a/app/src/main/res/drawable/c10_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c10_3.png b/app/src/main/res/drawable/c10_3.png
deleted file mode 100644
index 307174e..0000000
Binary files a/app/src/main/res/drawable/c10_3.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c11_1.png b/app/src/main/res/drawable/c11_1.png
deleted file mode 100644
index b558e6e..0000000
Binary files a/app/src/main/res/drawable/c11_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c12_1.png b/app/src/main/res/drawable/c12_1.png
deleted file mode 100644
index fde0a57..0000000
Binary files a/app/src/main/res/drawable/c12_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c12_2.png b/app/src/main/res/drawable/c12_2.png
deleted file mode 100644
index 79e34fb..0000000
Binary files a/app/src/main/res/drawable/c12_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c13_1.png b/app/src/main/res/drawable/c13_1.png
deleted file mode 100644
index bbb38f0..0000000
Binary files a/app/src/main/res/drawable/c13_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c13_2.png b/app/src/main/res/drawable/c13_2.png
deleted file mode 100644
index e1c1277..0000000
Binary files a/app/src/main/res/drawable/c13_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c14_1.png b/app/src/main/res/drawable/c14_1.png
deleted file mode 100644
index de3ec55..0000000
Binary files a/app/src/main/res/drawable/c14_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c14_2.png b/app/src/main/res/drawable/c14_2.png
deleted file mode 100644
index f8204ac..0000000
Binary files a/app/src/main/res/drawable/c14_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c15_1.png b/app/src/main/res/drawable/c15_1.png
deleted file mode 100644
index 9156b9a..0000000
Binary files a/app/src/main/res/drawable/c15_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c15_2.png b/app/src/main/res/drawable/c15_2.png
deleted file mode 100644
index 6139efd..0000000
Binary files a/app/src/main/res/drawable/c15_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c16_1.png b/app/src/main/res/drawable/c16_1.png
deleted file mode 100644
index 90dd73b..0000000
Binary files a/app/src/main/res/drawable/c16_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c16_2.png b/app/src/main/res/drawable/c16_2.png
deleted file mode 100644
index d1d05bb..0000000
Binary files a/app/src/main/res/drawable/c16_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c17_1.png b/app/src/main/res/drawable/c17_1.png
deleted file mode 100644
index 284f249..0000000
Binary files a/app/src/main/res/drawable/c17_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c17_2.png b/app/src/main/res/drawable/c17_2.png
deleted file mode 100644
index 5d3741d..0000000
Binary files a/app/src/main/res/drawable/c17_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c18_1.png b/app/src/main/res/drawable/c18_1.png
deleted file mode 100644
index 8ab9c86..0000000
Binary files a/app/src/main/res/drawable/c18_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c18_2.png b/app/src/main/res/drawable/c18_2.png
deleted file mode 100644
index 283ec72..0000000
Binary files a/app/src/main/res/drawable/c18_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c18_3.png b/app/src/main/res/drawable/c18_3.png
deleted file mode 100644
index 1af0652..0000000
Binary files a/app/src/main/res/drawable/c18_3.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c1_1.png b/app/src/main/res/drawable/c1_1.png
deleted file mode 100644
index db596c4..0000000
Binary files a/app/src/main/res/drawable/c1_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c1_2.png b/app/src/main/res/drawable/c1_2.png
deleted file mode 100644
index 2f37975..0000000
Binary files a/app/src/main/res/drawable/c1_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c2_1.png b/app/src/main/res/drawable/c2_1.png
deleted file mode 100644
index 195ab42..0000000
Binary files a/app/src/main/res/drawable/c2_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c2_2.png b/app/src/main/res/drawable/c2_2.png
deleted file mode 100644
index bbfdf70..0000000
Binary files a/app/src/main/res/drawable/c2_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c3_1.png b/app/src/main/res/drawable/c3_1.png
deleted file mode 100644
index 6b1cec2..0000000
Binary files a/app/src/main/res/drawable/c3_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c3_2.png b/app/src/main/res/drawable/c3_2.png
deleted file mode 100644
index be3a522..0000000
Binary files a/app/src/main/res/drawable/c3_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c4_1.png b/app/src/main/res/drawable/c4_1.png
deleted file mode 100644
index 2e9d4f4..0000000
Binary files a/app/src/main/res/drawable/c4_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c4_2.png b/app/src/main/res/drawable/c4_2.png
deleted file mode 100644
index c14b7d3..0000000
Binary files a/app/src/main/res/drawable/c4_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c5_1.png b/app/src/main/res/drawable/c5_1.png
deleted file mode 100644
index 54c6668..0000000
Binary files a/app/src/main/res/drawable/c5_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c5_2.png b/app/src/main/res/drawable/c5_2.png
deleted file mode 100644
index 28d6fee..0000000
Binary files a/app/src/main/res/drawable/c5_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c6_1.png b/app/src/main/res/drawable/c6_1.png
deleted file mode 100644
index 4c8122d..0000000
Binary files a/app/src/main/res/drawable/c6_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c6_2.png b/app/src/main/res/drawable/c6_2.png
deleted file mode 100644
index 5c837e9..0000000
Binary files a/app/src/main/res/drawable/c6_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c6_3.png b/app/src/main/res/drawable/c6_3.png
deleted file mode 100644
index 859a503..0000000
Binary files a/app/src/main/res/drawable/c6_3.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c7_1.png b/app/src/main/res/drawable/c7_1.png
deleted file mode 100644
index ac9d45f..0000000
Binary files a/app/src/main/res/drawable/c7_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c8_1.png b/app/src/main/res/drawable/c8_1.png
deleted file mode 100644
index bb72bf6..0000000
Binary files a/app/src/main/res/drawable/c8_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c8_2.png b/app/src/main/res/drawable/c8_2.png
deleted file mode 100644
index f29a960..0000000
Binary files a/app/src/main/res/drawable/c8_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c9_1.png b/app/src/main/res/drawable/c9_1.png
deleted file mode 100644
index 4e95b28..0000000
Binary files a/app/src/main/res/drawable/c9_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c9_2.png b/app/src/main/res/drawable/c9_2.png
deleted file mode 100644
index 4abd1dc..0000000
Binary files a/app/src/main/res/drawable/c9_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/c9_3.png b/app/src/main/res/drawable/c9_3.png
deleted file mode 100644
index 3e27358..0000000
Binary files a/app/src/main/res/drawable/c9_3.png and /dev/null differ
diff --git a/app/src/main/res/drawable/check.png b/app/src/main/res/drawable/check.png
new file mode 100644
index 0000000..ede32da
Binary files /dev/null and b/app/src/main/res/drawable/check.png differ
diff --git a/app/src/main/res/drawable/folder.png b/app/src/main/res/drawable/folder.png
new file mode 100644
index 0000000..a7f15a2
Binary files /dev/null and b/app/src/main/res/drawable/folder.png differ
diff --git a/app/src/main/res/drawable/j10_1.png b/app/src/main/res/drawable/j10_1.png
deleted file mode 100644
index d77adb2..0000000
Binary files a/app/src/main/res/drawable/j10_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j10_2.png b/app/src/main/res/drawable/j10_2.png
deleted file mode 100644
index f8e0ab4..0000000
Binary files a/app/src/main/res/drawable/j10_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j10_3.png b/app/src/main/res/drawable/j10_3.png
deleted file mode 100644
index 49bf3d0..0000000
Binary files a/app/src/main/res/drawable/j10_3.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j11_1.png b/app/src/main/res/drawable/j11_1.png
deleted file mode 100644
index b675fdc..0000000
Binary files a/app/src/main/res/drawable/j11_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j11_2.png b/app/src/main/res/drawable/j11_2.png
deleted file mode 100644
index 09261db..0000000
Binary files a/app/src/main/res/drawable/j11_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j11_3.png b/app/src/main/res/drawable/j11_3.png
deleted file mode 100644
index 2ff5526..0000000
Binary files a/app/src/main/res/drawable/j11_3.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j11_4.png b/app/src/main/res/drawable/j11_4.png
deleted file mode 100644
index a721360..0000000
Binary files a/app/src/main/res/drawable/j11_4.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j12_1.png b/app/src/main/res/drawable/j12_1.png
deleted file mode 100644
index d754974..0000000
Binary files a/app/src/main/res/drawable/j12_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j12_2.png b/app/src/main/res/drawable/j12_2.png
deleted file mode 100644
index 03c6d9a..0000000
Binary files a/app/src/main/res/drawable/j12_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j1_1.png b/app/src/main/res/drawable/j1_1.png
deleted file mode 100644
index 93f4c68..0000000
Binary files a/app/src/main/res/drawable/j1_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j1_2.png b/app/src/main/res/drawable/j1_2.png
deleted file mode 100644
index be7b521..0000000
Binary files a/app/src/main/res/drawable/j1_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j2_1.png b/app/src/main/res/drawable/j2_1.png
deleted file mode 100644
index 85742d8..0000000
Binary files a/app/src/main/res/drawable/j2_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j2_2.png b/app/src/main/res/drawable/j2_2.png
deleted file mode 100644
index a86f139..0000000
Binary files a/app/src/main/res/drawable/j2_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j3_1.png b/app/src/main/res/drawable/j3_1.png
deleted file mode 100644
index 3d991f8..0000000
Binary files a/app/src/main/res/drawable/j3_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j3_2.png b/app/src/main/res/drawable/j3_2.png
deleted file mode 100644
index b16c802..0000000
Binary files a/app/src/main/res/drawable/j3_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j4_1.png b/app/src/main/res/drawable/j4_1.png
deleted file mode 100644
index 71558be..0000000
Binary files a/app/src/main/res/drawable/j4_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j4_2.png b/app/src/main/res/drawable/j4_2.png
deleted file mode 100644
index 3e6ddb8..0000000
Binary files a/app/src/main/res/drawable/j4_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j4_3.png b/app/src/main/res/drawable/j4_3.png
deleted file mode 100644
index 336caf8..0000000
Binary files a/app/src/main/res/drawable/j4_3.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j5_1.png b/app/src/main/res/drawable/j5_1.png
deleted file mode 100644
index a1fabd8..0000000
Binary files a/app/src/main/res/drawable/j5_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j6_1.png b/app/src/main/res/drawable/j6_1.png
deleted file mode 100644
index f823a96..0000000
Binary files a/app/src/main/res/drawable/j6_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j6_2.png b/app/src/main/res/drawable/j6_2.png
deleted file mode 100644
index eee4957..0000000
Binary files a/app/src/main/res/drawable/j6_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j6_3.png b/app/src/main/res/drawable/j6_3.png
deleted file mode 100644
index 464122a..0000000
Binary files a/app/src/main/res/drawable/j6_3.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j6_4.png b/app/src/main/res/drawable/j6_4.png
deleted file mode 100644
index 24e63bc..0000000
Binary files a/app/src/main/res/drawable/j6_4.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j7_1.png b/app/src/main/res/drawable/j7_1.png
deleted file mode 100644
index 75769dc..0000000
Binary files a/app/src/main/res/drawable/j7_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j7_2.png b/app/src/main/res/drawable/j7_2.png
deleted file mode 100644
index 4d951d8..0000000
Binary files a/app/src/main/res/drawable/j7_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j7_3.png b/app/src/main/res/drawable/j7_3.png
deleted file mode 100644
index f3e2fee..0000000
Binary files a/app/src/main/res/drawable/j7_3.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j7_4.png b/app/src/main/res/drawable/j7_4.png
deleted file mode 100644
index 2c60264..0000000
Binary files a/app/src/main/res/drawable/j7_4.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j7_5.png b/app/src/main/res/drawable/j7_5.png
deleted file mode 100644
index f773ce3..0000000
Binary files a/app/src/main/res/drawable/j7_5.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j7_6.png b/app/src/main/res/drawable/j7_6.png
deleted file mode 100644
index 8d6d4b2..0000000
Binary files a/app/src/main/res/drawable/j7_6.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j7_7.png b/app/src/main/res/drawable/j7_7.png
deleted file mode 100644
index 7928aa0..0000000
Binary files a/app/src/main/res/drawable/j7_7.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j8_1.png b/app/src/main/res/drawable/j8_1.png
deleted file mode 100644
index 3514aa2..0000000
Binary files a/app/src/main/res/drawable/j8_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j8_2.png b/app/src/main/res/drawable/j8_2.png
deleted file mode 100644
index d4f43c6..0000000
Binary files a/app/src/main/res/drawable/j8_2.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j8_3.png b/app/src/main/res/drawable/j8_3.png
deleted file mode 100644
index 3d34487..0000000
Binary files a/app/src/main/res/drawable/j8_3.png and /dev/null differ
diff --git a/app/src/main/res/drawable/j9_1.png b/app/src/main/res/drawable/j9_1.png
deleted file mode 100644
index 31f97b5..0000000
Binary files a/app/src/main/res/drawable/j9_1.png and /dev/null differ
diff --git a/app/src/main/res/drawable/patient.png b/app/src/main/res/drawable/patient.png
new file mode 100644
index 0000000..d225a6d
Binary files /dev/null and b/app/src/main/res/drawable/patient.png differ
diff --git a/app/src/main/res/drawable/tab_indicator.xml b/app/src/main/res/drawable/tab_indicator.xml
new file mode 100644
index 0000000..c88a992
--- /dev/null
+++ b/app/src/main/res/drawable/tab_indicator.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_authorization.xml b/app/src/main/res/layout/activity_authorization.xml
index be77ee7..6eef837 100644
--- a/app/src/main/res/layout/activity_authorization.xml
+++ b/app/src/main/res/layout/activity_authorization.xml
@@ -2,7 +2,7 @@
diff --git a/app/src/main/res/layout/activity_code429.xml b/app/src/main/res/layout/activity_code429.xml
new file mode 100644
index 0000000..297b844
--- /dev/null
+++ b/app/src/main/res/layout/activity_code429.xml
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_code500.xml b/app/src/main/res/layout/activity_code500.xml
new file mode 100644
index 0000000..679a5d4
--- /dev/null
+++ b/app/src/main/res/layout/activity_code500.xml
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_information.xml b/app/src/main/res/layout/activity_enternet.xml
similarity index 70%
rename from app/src/main/res/layout/activity_information.xml
rename to app/src/main/res/layout/activity_enternet.xml
index eeab682..d2b6e93 100644
--- a/app/src/main/res/layout/activity_information.xml
+++ b/app/src/main/res/layout/activity_enternet.xml
@@ -2,9 +2,9 @@
+ tools:context=".Enternet.EnternetActivity">
\ 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 fa5d2d0..41ad239 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -9,5 +9,54 @@
tools:context=".MainActivity">
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/example_5_event_item_viewv2.xml b/app/src/main/res/layout/example_5_event_item_viewv2.xml
index 11e4b4f..22ade44 100644
--- a/app/src/main/res/layout/example_5_event_item_viewv2.xml
+++ b/app/src/main/res/layout/example_5_event_item_viewv2.xml
@@ -23,7 +23,7 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_default="percent"
app:layout_constraintWidth_percent="0.143"
- tools:text="THU\nJUN 30\n14:00" />
+ tools:text="THU\nJUN 30" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_auth.xml b/app/src/main/res/layout/fragment_auth.xml
index 198de2c..6e14587 100644
--- a/app/src/main/res/layout/fragment_auth.xml
+++ b/app/src/main/res/layout/fragment_auth.xml
@@ -24,6 +24,7 @@
android:layout_marginStart="16dp"
android:layout_marginTop="32dp"
android:layout_marginEnd="16dp"
+ android:visibility="gone"
app:cardBackgroundColor="#000000"
app:cardCornerRadius="50dp"
app:cardElevation="0dp"
diff --git a/app/src/main/res/layout/fragment_breathing_exercises.xml b/app/src/main/res/layout/fragment_breathing_exercises.xml
index 617064e..f45228d 100644
--- a/app/src/main/res/layout/fragment_breathing_exercises.xml
+++ b/app/src/main/res/layout/fragment_breathing_exercises.xml
@@ -4,6 +4,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:background="#FFFFFF"
tools:context=".Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.StumpCareFragment">