03.11.2023

patient
Clogon 2023-11-03 10:10:09 +03:00
parent be10c582d1
commit 3310ed1ca6
306 changed files with 10740 additions and 10264 deletions

View File

@ -1 +1 @@
Реабилитация
Rehabilitation

View File

@ -7,11 +7,11 @@
<deviceKey>
<Key>
<type value="VIRTUAL_DEVICE_PATH" />
<value value="C:\Users\maksi\.android\avd\Pixel_5_API_29.avd" />
<value value="C:\Users\maksi\.android\avd\Pixel_7_Edited_API_29.avd" />
</Key>
</deviceKey>
</Target>
</targetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2023-08-22T15:06:26.067415300Z" />
<timeTargetWasSelectedWithDropDown value="2023-11-01T08:15:09.629698400Z" />
</component>
</project>

View File

@ -8,7 +8,7 @@
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleHome" value="$PROJECT_DIR$/../../../../Gradle/gradle-8.2" />
<option name="gradleJvm" value="Android Studio default JDK" />
<option name="gradleJvm" value="jbr-17" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
@ -17,5 +17,6 @@
</option>
</GradleProjectSettings>
</option>
<option name="offlineMode" value="true" />
</component>
</project>

View File

@ -1,6 +1,6 @@
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">

View File

@ -41,15 +41,9 @@ dependencies {
implementation 'androidx.room:room-ktx:2.5.2'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.6.1'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1'
implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.6.1"
implementation platform('com.google.firebase:firebase-bom:31.2.0')
implementation 'com.google.firebase:firebase-database-ktx:20.2.2'
implementation 'com.google.firebase:firebase-auth-ktx:22.1.0'
implementation 'com.google.firebase:firebase-analytics'
implementation 'com.google.firebase:firebase-messaging'
implementation 'com.google.firebase:firebase-messaging-ktx:23.2.0'
kapt 'androidx.room:room-compiler:2.5.2'
implementation 'androidx.fragment:fragment-ktx:1.5.5'
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.1.17'
@ -67,17 +61,22 @@ dependencies {
implementation group: 'org.apache.poi', name: 'poi-ooxml', version: '5.2.3'
implementation group: 'org.apache.poi', name: 'poi', version: '5.2.3'
//Календарь
// implementation 'com.github.appmonkey8010:amcalendar:[RELEASE]' //e.g.: 1.0.0
//implementation 'ru.cleverpumpkin:crunchycalendar:2.6.0'
//implementation 'com.applandeo:material-calendar-view:1.9.0-rc03'
//implementation 'com.github.tejpratap46:RecyclerCalendarAndroid:LATEST_RELEASE_TAG'
//implementation 'com.github.tejpratap46:RecyclerCalendarAndroid:LATEST_RELEASE_TAG'
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.3'
implementation 'com.kizitonwose.calendar:view:2.0.0'
implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.6.1"
//Retrofit
implementation "com.squareup.retrofit2:retrofit:2.9.0"
implementation "com.squareup.retrofit2:converter-gson:2.9.0"
//OkHttp
implementation "com.squareup.okhttp3:logging-interceptor:4.7.2"
implementation "com.squareup.okhttp3:okhttp:4.7.2"
implementation 'com.squareup.picasso:picasso:2.71828'
//implementation 'com.sun.mail:android-mail:1.6.2'
//implementation 'com.sun.mail:android-activation:1.6.2'
//implementation 'com.archit.calendar:awesome-calendar:2.0.0'
//implementation 'com.andrewjapar.rangedatepicker:rangedatepicker:0.3'
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.3'
implementation 'com.kizitonwose.calendar:view:2.0.0'
}

Binary file not shown.

View File

@ -31,12 +31,8 @@
android:usesCleartextTraffic="true"
tools:targetApi="31">
<activity
android:name=".InformationActivity"
android:name=".Information.InformationActivity"
android:exported="false" />
<activity
android:name=".Auth.AuthDoctorActivity"
android:exported="false" />
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.provider"
@ -48,19 +44,12 @@
</provider>
<activity
android:name=".Admin.activityAdmin.FeedbackActivity"
android:name=".Feedback.FeedbackActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".Admin.activityAdmin.StatisticsActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".Admin.activityAdmin.UserSettingActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".SettingActivity"
android:name=".Setting.SettingActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity

View File

@ -1,70 +0,0 @@
package com.example.rehabilitation.Admin.activityAdmin
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.example.rehabilitation.MainActivity
import com.example.rehabilitation.databinding.ActivityFeedbackBinding
class FeedbackActivity : AppCompatActivity() {
var backPressedTime: Long = 0
private lateinit var binding: ActivityFeedbackBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityFeedbackBinding.inflate(layoutInflater)
setContentView(binding.root)
//Выход
binding.btnExit.setOnClickListener{
finish()
}
//Переход по ссылке на сайт
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)
}
}
override fun onBackPressed() {
val intetn = Intent(this, MainActivity::class.java)
startActivity(intetn)
finish()
}
}

View File

@ -1,29 +0,0 @@
package com.example.rehabilitation.Admin.activityAdmin
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.ActivityFeedbackBinding
class StatisticsActivity : AppCompatActivity() {
var backPressedTime: Long = 0
private lateinit var binding: ActivityFeedbackBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityFeedbackBinding.inflate(layoutInflater)
setContentView(binding.root)
//Выход
binding.btnExit.setOnClickListener{
finish()
}
}
override fun onBackPressed() {
val intetn = Intent(this, MainActivity::class.java)
startActivity(intetn)
finish()
}
}

View File

@ -1,398 +0,0 @@
package com.example.rehabilitation.Admin.activityAdmin
import android.annotation.SuppressLint
import android.content.Context
import android.content.Intent
import android.content.SharedPreferences
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.View
import android.widget.EditText
import android.widget.Toast
import androidx.activity.viewModels
import androidx.appcompat.app.AlertDialog
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.asLiveData
import androidx.recyclerview.widget.GridLayoutManager
import com.example.admin.Toast.showCustomInfoToast
import com.example.admin.Toast.showCustomNiceToast
import com.example.rehabilitation.Admin.fragmrntAdmin.SettingDoctor.MainSettingDoctorFragment
import com.example.rehabilitation.Auth.AuthorizationActivity
import com.example.rehabilitation.FIO
import com.example.rehabilitation.MainActivity
import com.example.rehabilitation.R
import com.example.rehabilitation.SettingActivity
import com.example.rehabilitation.countCategory
import com.example.rehabilitation.databinding.ActivityUserSettingBinding
import com.example.rehabilitation.Room.Item
import com.example.rehabilitation.Room.ItemDaySport
import com.example.rehabilitation.Room.ItemImage
import com.example.rehabilitation.Room.ItemSportCategory
import com.example.rehabilitation.Room.MainDB
import com.example.rehabilitation.Room.dbUser.dbPatient.ItemPatient
import com.example.rehabilitation.User.fragmentUser.HomeFragment
import com.example.rehabilitation.UserDoctorToken
import com.example.rehabilitation.counter2
import com.example.rehabilitation.model_adapter.Day.DayAdapter
import com.example.rehabilitation.model_adapter.Day.DayListModel
import com.example.rehabilitation.model_adapter.Doctor.DoctorModel
import com.example.rehabilitation.model_adapter.Edit.EditSportAdapter
import com.example.rehabilitation.model_adapter.Edit.EditSportModel
import com.example.rehabilitation.model_adapter.Image.Category.CountNameCategoryModel
import com.example.sqlitework.dip.MainViewModel
import com.example.rehabilitation.model_adapter.Month.MonthModel
import com.example.rehabilitation.model_adapter.Month.MonthAdapter
import com.example.rehabilitation.model_adapter.Patient.PatientModel
import com.example.rehabilitation.prefDoctor
import com.example.rehabilitation.prefFIO
import com.example.rehabilitation.prefUserDoctorToken
import com.example.rehabilitation.questionnaire_before
import com.example.rehabilitation.tokenClassDoctor
import java.time.LocalDate
class UserSettingActivity : AppCompatActivity(), MonthAdapter.Listener, DayAdapter.Listener,EditSportAdapter.Listener,EditSportAdapter.ListenerEdit {
var backPressedTime: Long = 0
private lateinit var binding: ActivityUserSettingBinding
private val model: MainViewModel by viewModels()//Инициализировали класс
lateinit var adapterMonth: MonthAdapter
lateinit var adapterDay: DayAdapter
lateinit var editAdapter: EditSportAdapter
var loginPatient = ""
var loginDoctor = ""
var prefSport: SharedPreferences? = null
var SportUserTrue = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityUserSettingBinding.inflate(layoutInflater)
setContentView(binding.root)
//Вывод фрагмента на активити при первоначальной загрузке
supportFragmentManager.beginTransaction().replace(R.id.CLMainSettinDoctor, MainSettingDoctorFragment.newInstance()).commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
prefUserDoctorToken = getSharedPreferences("UserDoctorToken", Context.MODE_PRIVATE)
UserDoctorToken = prefUserDoctorToken?.getString("userdoctortoken", "")!! //Передаем при запуске страницы в counter данные по ключевому слову "counter", вс лучае если будет пусто то передастся 0
prefFIO = getSharedPreferences("FIO", Context.MODE_PRIVATE)
FIO = prefFIO?.getString("fio", "")!!
}
override fun onDestroy() {
super.onDestroy()
clearUserDoctorToken()
finish()
}
//Функция очистки данных
fun clearUserDoctorToken() {
val edit = prefUserDoctorToken?.edit()
edit?.clear()
edit?.apply()
UserDoctorToken = ""
}
fun saveFIO(fio: String) {
val edit = prefFIO?.edit()
edit?.putString("fio", fio)
edit?.apply()
FIO = fio
}
fun clearFIO() {
val edit = prefFIO?.edit()
edit?.clear()
edit?.apply()
FIO = ""
}
override fun onBackPressed() {
val intetn = Intent(this, SettingActivity::class.java)
startActivity(intetn)
finish()
}
override fun onClickExceptionOrder(item: MonthModel) {
}
//Спина
val c1 = arrayOf("c1_1", "c1_2")
val c2 = arrayOf("c2_1", "c2_2")
val c3 = arrayOf("c3_1", "c3_2")
val c4 = arrayOf("c4_1", "c4_2")
val c5 = arrayOf("c5_1", "c5_2")
val c6 = arrayOf("c6_1", "c6_2", "c6_3")
val c7 = arrayOf("c7_1")
val c8 = arrayOf("c8_1", "c8_2")
val c9 = arrayOf("c9_1", "c9_2", "c9_3")
val c10 = arrayOf("c10_1", "c10_2", "c10_3")
val c11 = arrayOf("c11_1")
val c12 = arrayOf("c12_1", "c12_2")
val c13 = arrayOf("c13_1", "c13_2")
val c14 = arrayOf("c14_1", "c14_2")
val c15 = arrayOf("c15_1", "c15_2")
val c16 = arrayOf("c16_1", "c16_2")
val c17 = arrayOf("c17_1", "c17_2")
val c18 = arrayOf("c18_1", "c18_2", "c18_3")
//Бок
val b1 = arrayOf("b1_1", "b1_2")
val b2 = arrayOf("b2_1", "b2_2")
val b3 = arrayOf("b3_1", "b3_2", "b3_3")
val b4 = arrayOf("b4_1", "b4_2")
//Живот
val j1 = arrayOf("j1_1", "j1_2")
val j2 = arrayOf("j2_1", "j2_2")
val j3 = arrayOf("j3_1", "j3_2")
val j4 = arrayOf("j4_1", "j4_2", "j4_3")
val j5 = arrayOf("j5_1")
val j6 = arrayOf("j6_1", "j6_2", "j6_3", "j6_4")
val j7 = arrayOf("j7_1", "j7_2", "j7_3", "j7_4", "j7_5", "j7_6", "j7_7")
val j8 = arrayOf("j8_1", "j8_2", "j8_3")
val j9 = arrayOf("j9_1")
val j10 = arrayOf("j10_1", "j10_2", "j10_3")
val j11 = arrayOf("j11_1", "j11_2", "j11_3", "j11_4")
val j12 = arrayOf("j12_1", "j12_2")
val C1 = "Исходное положение, положить руки вверх.\n" +
"Счет \n" +
"1-2-3 - потянуться руками вверх, а пятками — в противоположную сторону;\n" +
"4 Расслабиться\n" +
"Повторить 5—6 раз. Дыхание свободное.\n"
val C2 = "Исходное положение, руки лежат под головой или направлены вниз, вдоль туловища.\n" +
"Счет\n" +
"1 - поднять одну прямую ногу на 45°;\n" +
"2-3 - удерживать ее;\n" +
"4 - опустить в исходное положение.\n" +
"То же повторить с другой ноги. С каждой ноги повторить по 4—б раз. Дыхание свободное.\n"
val C3 = "Исходное положение, руки лежат вверху.\n" +
"Счет\n" +
"1 - поднять вперед прямые правую руку и левую ногу; \n" +
"2- опустить их в исходное положение;\n" +
"3 - поднять вперед левую руку и правую ногу;\n" +
"4 - вернуться в исходное положение.\n" +
"Повторить 4-6 раз с каждой стороны, опустить их в исходное положение;\n"
val C4 = "Исходное положение, руки лежат под головой или направлены вниз, вдоль туловища.\n" +
"Счет\n" +
"1 напрячь оба бедра, как при выпрямлении колена;\n" +
"2-3 удерживать в напряжении;\n" +
"4 - расслабиться.\n" +
"Повторить 6-10 раз. Дыхание произвольное. При ампутации на уровне голени можно подложить под нижнюю треть бедра валик, если есть сгибательная контрактура колена, или если пациент так лучше ощущает работу мышц.\n"
val C5 =
"Исходное положение, руки лежат вниз вдоль туловища, под культю и под аналогичный сегмент сохранной конечности подложить мячи. \n" +
"Счет\n" +
"1 — опереться на ноги, поднять таз вверх;\n" +
"2-3 — удерживать это положение;\n" +
"4 — опуститься в исходное положение. \n" +
"Повторить 4-8 раз. Дыхание произвольное, или подъем таза осуществлять на выдохе через рот, губы сложены «трубочкой».\n"
val C6 =
"Исходное положение, руки лежат вниз вдоль туловища, под культю и под аналогичный сегмент сохранной конечности подложить мячи. \n" +
"Счет\n" +
"1 — опереться на ноги и поднять таз вверх;\n" +
" 2 — поднять одну прямую ногу вверх на 30°—45% \n" +
"3 — опустить ногу на мяч;\n" +
" 4 — опустить таз и вернуться в исходное положение. Повторить упражнение по 4-8 раз с каждой ноги. Дыхание произвольное. При значительных трудностях с удержанием баланса на мячах данное упражнение можно выполнять на валике или любых стабильных опорах.\n"
val C7 = "Дыхательное упражнение — диафрагмальное дыхание. \n" +
"Сохранную ногу поставить согнутую, вторая нога или свободно лежит на полу, или бедро закинуто на другое бедро (фото), одна ладонь лежит на животе, а другая — на груди. На вдох носом надуть животом «шарик», на выдох через рот опустить переднюю стенку живота (и втянуть ее) и расслабиться. \n" +
"Повторить дыхательный цикл не более 4-6 раз. Дышать глубоко, в комфортном темпе.\n"
val C8 =
"Исходное положение, руки лежат вниз вдоль туловища, под ноги подложен большой гимнастический мяч.\n" +
"Счет\n" +
"1 упереться ногами в мяч, поднять таз вверх;\n" +
"2-3 — удерживать это положение;\n" +
"4 - опустить таз и вернуться B исходное положение.\n" +
"Дыхание произвольное. Повторить упражнение 6-8 раз.\n"
val C9 =
"Исходное положение, руки лежат вниз вдоль туловища, под ноги подложен большой гимнастический мяч. \n" +
"Счет\n" +
"1 - поднять таз с опорой на обе ноги;\n" +
"2 - поднять сохранную ногу вверх от опоры и остаться стоять на одной культе;\n" +
"3 - опустить на опору сохранную ногу;\n" +
"4 - опустить таз и вернуться в исходное положение. Повторить упражнение для каждой ноги по 4—6 раз. Дыхание произвольное.\n"
val C10 =
"Исходное положение, руки лежат вниз вдоль туловища или под головой (усложненный вариант). \n" +
"Имитация велосипедных движений. По 6-10 движений сначала одной ногой, затем второй. Усложненный вариант упражнения (фото) — выполнение упражнения одновременно двумя ногами.\n" +
"Сначала движение ногами выполняется в направлении движения вперед, а затем — назад. \n" +
"Следить за дыханием и за тем, чтобы поясница была прижата к полу.\n"
val C11 = "Дыхательное упражнение — диафрагмальное дыхание.\n" +
"Повторить дыхательный цикл не более 4-6 раз. В необходимости повторения дыхательного упражнения — ориентироваться на самочувствие пациента.\n"
val C12 =
"Исходное положение, руки вытянуты перед собой, B руках — резиновая лента-амортизатор.\n" +
"Счет\n" +
"1 - развести в стороны прямые руки и коснуться кулачками пола, свести лопатки;\n" +
"2-3 — удерживать это положение;\n" +
"4 — свести руки перед собой и вернуться в исходное положение.\n" +
"При выполнении упражнения акцент делать на сведение лопаток в момент растяжения резинового амортизатора.\n"
val C13 =
"Исходное положение, в руках — резиновый амортизатор; одна рука лежит вниз вдоль туловища, вторая согнута в локте на 90° и отведена от туловища (локоть на уровне плеча), ее плечо лежит на полу. \n" +
"Счет\n" +
"1 - не разгибая локтя, разворачивая лопатку, положить кисть согнутой руки на пол;\n" +
"2-3 — удерживать это положение;\n" +
"4 - вернуться в исходное положение. Повторить 10—15-20 раз. Не меняя длины хвата амортизатора, повторить с другой руки. Дыхание произвольное.\n"
val C14 =
"Исходное положение, поставить руки B упоре на локти, немного отведя их от туловища.\n" +
"1 - надавить локтями на пол, свести лопатки прогнуть грудную клетку;\n" +
"2-3 — удерживать это напряжение;\n" +
"4 - расслабиться и вернуться в исходное положение \n" +
"Повторить 4-8 раз. Дыхание ровное, без задержек.\n"
val C15 =
"Исходное положение, на бедра надета резиновая петля, ногу со стороны ампутации ротировать внутрь (cкосолапить). \n" +
"Счет\n" +
"1 - скользя по поверхности, отвести ногу со стороны ампутации в сторону; \n" +
"2-3 - удерживать ногу в этом положении;\n" +
"4 - вернуть ногу в исходное положение.\n" +
"Повторить упражнение 10-15-20 раз.\n" +
"Повторить 10-15-20 раз. После короткого отдыха сделать второй подход. Дыхание произвольное. Следить, чтобы мышцы плечевого пояса не вовлекались в напряжение, а таз оставался неподвижным. Для улучшения самоконтроля можно руки ставить на пояс и таким 0бразом следить за неподвижностью таза.\n"
val C16 = "Исходное положение, бедрами удерживать мяч.\n" +
"Счет\n" +
"1 - сжать мяч между бедрами; \n" +
"2-3 - удерживать это положение; \n" +
"4 - расслабиться.\n" +
"Повторить упражнение 10-15-20 раз. \n" +
"Со временем возможно усложнение упражнения: удерживать сжатие не на счет 2-3, а на 2-3-4-5-6-7, и только на счет 8 — расслабиться. Дыхание произвольное. Следить, чтобы мышцы плечевого пояса не вовлекались B напряжение, и пациент не затаивал дыхание.\n"
val C17 =
"Исходное положение, руки лежат под головой, на ногу со стороны ампутации надета манжета-утяжелитель.\n" +
"Счет\n" +
"1 - поднять прямую ногу на 45°; \n" +
"2-3 - удерживать ногу в этом положении; \n" +
"4 - опустить ногу и вернуться в исходное положение. \n" +
"Повторить 10—15—20 раз.\n" +
"Усложнение упражнения:\n" +
"1 - поднять ногу; \n" +
"2-3-4-5-6-7 - держать ногу; \n" +
"8 - опустить ногу и вернуться в исходное положение.\n" +
"Со временем можно выполнять два подхода к упражнению.\n"
val C18 =
"Исходное положение, руки лежат под головой, на ногу со стороны ампутации надета манжета-утяжелитель. \n" +
"Счет\n" +
"1 - поднять прямую ногу на 45°;\n" +
"2 - согнуть ногу в бедре и колене до 90°; \n" +
"3 - выпрямить ногу обратно; \n" +
"4 - опустить ногу и вернуться в исходное положение. \n" +
"Повторить упражнение 10—15 раз. \n" +
"Усложнение упражнения: \n" +
"сгибание и разгибание колена и бедра можно осуществлять не один, а несколько раз подряд, и только потом. опускать ногу. Также можно делать имитацию велосипедных движений вперед, а потом B обратную сторону. \n" +
"Со временем весь комплекс упражнений можно выполнять с утяжелителем в постоянном режиме. Со стороны ампутации делать больше подходов и количество повторений предлагаемых упражнений.\n"
val B1 = "Исходное положение. \n" +
"Счет\n" +
"1 - поднять верхнюю ногу на 10—35° точно в сторону;\n" +
"2-3 - удерживать это положение; \n" +
"4 - опустить ногу в исходное положение. \n" +
"Повторить упражнение 10—15-20 раз и положить согнутую ногу вперед — для растяжки и отдыха мышц. Во время выполнения упражнения следить за точностью направления движения — отведения.\n"
val B2 = "Исходное положение, верхняя нога согнута в колене и лежит впереди. \n" +
"Счет \n" +
"1 - поднять прямую нижнюю ногу точно вверх (приведение), стопу тянуть на себя;\n" +
"2-3 - удерживать ногу в верхней точке.\n" +
"4 - опустить ногу в исходное положение \n" +
"Повторить 10—15-20 раз. Следить за тем, чтобы нога не уходила вперед или назад, колено было всегда выпрямлено. Дыхание произвольное.\n"
val B3 = "Исходное положение. \n" +
"Счет\n" +
"1 — поднять верхнюю ногу на 10—35° точно в сторону; \n" +
"2 — согнуть в колене, не смещая бедро; \n" +
"3 — выпрямить колено, не смещая бедро; \n" +
"4 — опустить ногу в исходное положение. \n" +
"Повторить 10—15—20 раз. Дыхание произвольное. \n" +
"Повторяйте те же упражнения, лежа на другом боку.\n"
val B4 = "Исходное положение, на уровне бедра надета манжета с утяжелителем. \n" +
"Счет \n" +
"1 - поднять верхнюю ногу на 10—35° точно в сторону; \n" +
"2-3 — удерживать это положение \n" +
"4 - опустить ногу в исходное положение.\n" +
"Повторить 10—15-20 раз и положить согнутую ногу вперед для отдыха. Следить за точностью направления движения (отведение). \n" +
"Подобным образом — с утяжелителем — можно выполнять все упражнения в исходном положении лежа на боку.\n"
val J1 = "Исходное положение, руки лежат под головой, опираясь на лоб. \n" +
"1 - поднять плечевой пояс, руки и голову; \n" +
"2-3 - удерживать это положение;\n" +
"4 — опуститься в исходное положение и расслабиться. Повторить упражнение 6-10 раз. Следить за дыханием. \n" +
"Можно при подъеме туловища сводить лопатки, приводя локти к туловищу на все время удержания корпуса.\n"
val J2 = "Исходное положение, руки лежат под головой, голова опирается на лоб. \n" +
"1 - поднять правую прямую ногу вверх;\n" +
"2-3 - удерживать ногу; 4 - опустить ногу в исходное положение. \n" +
"С каждой стороны повторить упражнение по 6-10 раз. Следить за дыханием.\n"
val J3 = "Исходное положение, ноги лежат чуть шире плеч, руки под головой. \n" +
"1 — поднять плечевой пояс, руки и голову, и развести руки в стороны (ладонями вперед); \n" +
"2-3 — удерживать это положение;\n" +
"4 - опуститься в исходное положение. \n" +
"Повторить упражнение 6-10 раз. \n" +
"Усложнение: \n" +
"можно одновременно с подъемом корпуса поднимать поочередно то одну HOTY, то другую, или две ноги одновременно (фото). Следить за дыханием.\n"
val J4 = "Исходное положение, руки лежат наверху, голова опирается на лоб. \n" +
"Счет\n" +
"1 — поднять вверх одновременно прямые правую руку и левую ногу; \n" +
"2-3 - удерживать это положение; \n" +
"4 — опуститься в исходное положение. \n" +
"С каждой стороны повторить упражнение по 4-8 раз. Следить за дыханием.\n"
val J5 =
"Дыхательное упражнение. Исходное положение, голова опирается на лоб, руки под толовой. Глубокий вдох HOCOM, долгий выдох через рот, губы сложены «трубочкой». Повторить 4-6 раз.\n"
val J6 = "Исходное положение, голова опирается на лоб. Рисуем ногой медленно букву «П».\n" +
"Счет\n" +
"1 поднять прямую правую ногу вверх;\n" +
"2 отвести eё B сторону на 30°;\n" +
"3 опустить ногу в стороне на пол;\n" +
"4 поднять правую ногу;\n" +
"5 привести ноту к центру;\n" +
"6 опустить ногу в исходное положение;\n" +
"7-12 повторить то же с левой ноги.\n" +
"Упражнение сделать по 4-8 раз на каждую ногу. Следить за дыханием."
val J7 = "Предыдущее упражнение можно немного усложнить. \n" +
"Счет\n" +
"1 — поднять одну ногу; \n" +
"2 — отвести ногу в сторону; \n" +
"3 — опустить ногу в стороне; \n" +
"4 — поднять вверх другую ногу;\n" +
"5 - отвести и ее в сторону; \n" +
"6 - опустить на пол в стороне; \n" +
"7-8 -скользя по опоре, соединить на полу ноги. \n" +
"Повторить упражнение с каждой ноги по 4-6 раз. Следить за дыханием.\n"
val J8 = "Исходное положение, две ноги поднять поочередно вверх. \n" +
"1 - развести ноги в стороны; \n" +
"2 - свести ноги вместе, и повторять 10—15-20 раз. \n" +
"Следить за дыханием. После небольшой паузы, со временем, можно выполнять второй подход. \n" +
"Также возможны следующие варианты:\n" +
"1 - развести ноги в стороны;\n" +
"2 - свести ноги вместе с перекрестом (одна нога выше, и нижнюю ноги. другая ниже);\n" +
"3 - развести ноги в стороны;\n" +
"4 - свести ноги и перекрестить их, поменяв верхнюю и нижнюю ноги.\n" +
"Упражнение сделать по 4-8 раз на каждую ногу. Следить за дыханием.\n"
val J9 =
"Дыхательное упражнение. Исходное положение, голова опирается на лоб, руки под головой. Глубокий вдох носом, долгий выдох через POT, губы сложены «трубочкой». Повторить 4-6 раз.\n"
val J10 =
"Исходное положение, голова опирается на лоб, руки лежат наверху на ширине, в руках — резиновый амортизатор. \n" +
"1 — поднять туловище, руки и голову вверх; \n" +
"2 — развести руки в стороны так, чтобы амортизатор лег на лопатки; \n" +
"3 — свести руки наверху до ширины плеч; \n" +
"4 — опуститься в исходное положение. \n" +
"Повторить упражнение 6-10 раз. Дыхание произвольное.\n" +
" Со временем можно усложнить упражнение: разводить руки в стороны не один раз, а несколько раз подряд; также можно сделать паузу в момент, когда руки разведены в стороны. Дыхание произвольное. Можно одновременно с подъемом туловища поднимать поочередно то одну, то вторую ногу.\n"
val J11 =
"Исходное положение, руки под головой. Поднять плечевой пояс и согнутые к плечам руки. Имитация плавания брассом. Дыхание ровное. \n" +
"Два подхода по 10-15-20 движений. Следить за полным выпрямлением рук наверх, разведением прямых рук B стороны, сведением лопаток B момент приведения плеч, а также за тем, чтобы корпус при выпрямлении рук наверх не опускался. Дыхание произвольное.\n"
val J12 =
"Исходное положение, руки лежат под головой, голова опирается на лоб. На ноге со стороны ампутации надета манжета с утяжелителем.\n" +
"Счет\n" +
"1 - поднять ногу с утяжелителем;\n" +
"2-3 — удерживать ногу; \n" +
"4 — опустить ногу в исходное положение. \n" +
"Повторить 10-15-20 раз.\n" +
"Усложнение: можно на счет 2 - отвести ногу в сторону, на счет 3 - вернуть ногу к центру, счет 4 — опуститься в исходное положение. Также можно отводить в сторону не один раз, а несколько раз подряд. Дыхание свободное. \n" +
"Со временем все упражнения можно выполнять с утяжелителем."
override fun onClickDay(item: DayListModel) {
}
override fun onClickExceptionOrder(item: EditSportModel) {
}
override fun onClickEditCard(item: EditSportModel) {
TODO("Not yet implemented")
}
}

View File

@ -1,503 +0,0 @@
package com.example.rehabilitation.Admin.fragmrntAdmin.SettingDoctor
import android.content.Context
import android.os.Binder
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.EditText
import android.widget.Toast
import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.activityViewModels
import androidx.lifecycle.asLiveData
import com.example.admin.Toast.showCustomInfoToast
import com.example.admin.Toast.showCustomNiceToast
import com.example.rehabilitation.Block
import com.example.rehabilitation.CursDayNull
import com.example.rehabilitation.DayAfter
import com.example.rehabilitation.DayBefore
import com.example.rehabilitation.EmailPatient
import com.example.rehabilitation.FIO
import com.example.rehabilitation.PatientDoctorNew
import com.example.rehabilitation.PauseDay
import com.example.rehabilitation.R
import com.example.rehabilitation.Room.MainDB
import com.example.rehabilitation.Room.dbUser.dbPatient.ItemPatient
import com.example.rehabilitation.SportCursDay
import com.example.rehabilitation.SportCursDayDangerAfter
import com.example.rehabilitation.SportCursDayDangerBefore
import com.example.rehabilitation.SportCursDayNumber
import com.example.rehabilitation.SportDateStart
import com.example.rehabilitation.SportMaxCount
import com.example.rehabilitation.SportPlusCount
import com.example.rehabilitation.SportUserTrue
import com.example.rehabilitation.UserPatientToken
import com.example.rehabilitation.databinding.FragmentCreatePatientBinding
import com.example.rehabilitation.model_adapter.Patient.PatientModel
import com.example.rehabilitation.prefBlock
import com.example.rehabilitation.prefCursDangerDayAfter
import com.example.rehabilitation.prefCursDangerDayBefore
import com.example.rehabilitation.prefCursDay
import com.example.rehabilitation.prefCursDayNull
import com.example.rehabilitation.prefDayAfter
import com.example.rehabilitation.prefDayBefore
import com.example.rehabilitation.prefEmailPatient
import com.example.rehabilitation.prefFIO
import com.example.rehabilitation.prefPatientDoctorNew
import com.example.rehabilitation.prefPauseDay
import com.example.rehabilitation.prefSport
import com.example.rehabilitation.prefSportCursDayNumber
import com.example.rehabilitation.prefSportDateStart
import com.example.rehabilitation.prefSportMaxCount
import com.example.rehabilitation.prefSportPlusCount
import com.example.rehabilitation.prefUserPatientToken
import com.example.sqlitework.dip.MainViewModel
class CreatePatientFragment : Fragment() {
private lateinit var binding: FragmentCreatePatientBinding
private val model: MainViewModel by activityViewModels()//Инициализировали класс
var addSave = 0
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentCreatePatientBinding.inflate(layoutInflater,container,false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
//Выход из создания пациента
binding.btnBackCreatePatient.setOnClickListener {
visible3()
}
createBtnPatient()
deleteBtnPatient()
liveLookPatientCurrent()
prefUserPatientToken = activity?.getSharedPreferences("UserPatientToken", Context.MODE_PRIVATE)
UserPatientToken = prefUserPatientToken?.getString("userpatienttoken", "")!! //Передаем при запуске страницы в counter данные по ключевому слову "counter", вс лучае если будет пусто то передастся 0
prefFIO = activity?.getSharedPreferences("FIO", Context.MODE_PRIVATE)
FIO = prefFIO?.getString("fio", "")!!
prefEmailPatient = activity?.getSharedPreferences("EmailPatient", Context.MODE_PRIVATE)
EmailPatient = prefEmailPatient?.getString("emailPatient", "")!!
prefSport = activity?.getSharedPreferences("SportUserTrue", Context.MODE_PRIVATE)
SportUserTrue = prefSport?.getInt("spt", 0)!!
//Какой сегодня курс
prefSportCursDayNumber = activity?.getSharedPreferences("SportCursDayNumber", Context.MODE_PRIVATE)
SportCursDayNumber = prefSportCursDayNumber?.getInt("scdn", 0)!!
prefCursDay = activity?.getSharedPreferences("SportCursDay", Context.MODE_PRIVATE)
SportCursDay = prefCursDay?.getInt("scd", 0)!!
prefCursDangerDayBefore = activity?.getSharedPreferences("CursDangerDayBefore", Context.MODE_PRIVATE)
SportCursDayDangerBefore = prefCursDangerDayBefore?.getInt("cddb", 0)!!
prefCursDangerDayAfter = activity?.getSharedPreferences("CursDangerDayAfter", Context.MODE_PRIVATE)
SportCursDayDangerAfter = prefCursDangerDayAfter?.getInt("cdda", 0)!!
prefCursDayNull = activity?.getSharedPreferences("CursDayNull", Context.MODE_PRIVATE)
CursDayNull = prefCursDayNull?.getString("cdn", "")!!
//Для пауз и блоков
prefPauseDay = activity?.getSharedPreferences("PauseDay", Context.MODE_PRIVATE)
PauseDay = prefPauseDay?.getString("pd", "")!!
prefBlock = activity?.getSharedPreferences("Block", Context.MODE_PRIVATE)
Block = prefBlock?.getString("b", "")!!
//ДАнные пациента
prefFIO = activity?.getSharedPreferences("FIO", Context.MODE_PRIVATE)
FIO = prefFIO?.getString("fio", "")!!
//Дата старта тренировки
prefSportDateStart = activity?.getSharedPreferences("SportDateStart", Context.MODE_PRIVATE)
SportDateStart = prefSportDateStart?.getString("sportdatestart", "")!!
//Есть ли аакаунт у пациента
prefPatientDoctorNew = activity?.getSharedPreferences("PatientDoctorNew", Context.MODE_PRIVATE)
PatientDoctorNew = prefPatientDoctorNew?.getInt("patientdoctornew", 0)!! //Передаем при запуске страницы в counter данные по ключевому слову "counter", вс лучае если будет пусто то передастся 0
}
fun savePatientDoctorNew(patientdoctornew: Int) {
val edit = prefPatientDoctorNew?.edit()
edit?.putInt("patientdoctornew", patientdoctornew)
edit?.apply()
PatientDoctorNew = patientdoctornew
}
fun clearPatientDoctorNew() {
val edit = prefPatientDoctorNew?.edit()
edit?.clear()
edit?.apply()
PatientDoctorNew = 0
}
fun saveFIO(fio: String) {
val edit = prefFIO?.edit()
edit?.putString("fio", fio)
edit?.apply()
FIO = fio
}
fun clearFIO() {
val edit = prefFIO?.edit()
edit?.clear()
edit?.apply()
FIO = ""
}
fun saveEmailPatient(emailPatient: String) {
val edit = prefEmailPatient?.edit()
edit?.putString("emailPatient", emailPatient)
edit?.apply()
EmailPatient = emailPatient
}
fun clearEmailPatient() {
val edit = prefEmailPatient?.edit()
edit?.clear()
edit?.apply()
EmailPatient = ""
}
//Экран о пациенте
fun visible3() {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLMainSettinDoctor,MainPatientFragment.newInstance())?.addToBackStack(null)?.commit()
}
//Диалоговое окно
private fun createAlеrtDialogCreate(
nameCreate: String,
surnameCreate: String,
//patronymicCreate: String,
diagnosisCreate: String,
//emailCreate: String,
loginCreate: String,
passwordCreate: String
) {
val builder = AlertDialog.Builder(requireContext())
builder.setTitle("Создание")
builder.setMessage("Вы уверены что хотите создать пользователя")
builder.setNegativeButton("Назад") { dialogInterface, i ->
}
builder.setPositiveButton("Подтвердить") { dialogInterface, i ->
createPatient(
nameCreate,
surnameCreate,
//patronymicCreate,
diagnosisCreate,
//emailCreate,
loginCreate,
passwordCreate
)
}
builder.show()
}
//Создание нового пациента
private fun createPatient(
nameCreate: String,
surnameCreate: String,
//patronymicCreate: String,
diagnosisCreate: String,
//emailCreate: String,
loginCreate: String,
passwordCreate: String
) {
val db = MainDB.getDB(requireContext())
val item = ItemPatient(
null,
nameCreate,
surnameCreate,
"",
diagnosisCreate,
//emailCreate,
0,
loginCreate,
passwordCreate,
)
Thread {
db.getDaoPatient().insertItemPatient(item)
}.start()
visible3()
savePatientDoctorNew(1)
clearPatientED()
Toast(requireContext()).showCustomNiceToast("Пользователь создан", requireActivity())
//Сохраняем то что пациент создан
}
//Функция для очистки полей
private fun clearPatientED() = with(binding) {
edCreateName.setText("")
edCreateSurname.setText("")
edDiagnosis.setText("")
edCreateEmail.setText("")
edCreateLogin.setText("")
edCreatePassword.setText("")
}
//Удаление определенного пациента
private fun deleteBtnPatient() = with(binding) {
binding.btnDeletePatient.setOnClickListener {
createAlеrtDialogDelete()
}
}
private fun createAlеrtDialogDelete() {
val db = MainDB.getDB(requireContext())
val edException = EditText(requireContext())
val builder = AlertDialog.Builder(requireContext())
builder.setTitle("Удаление")
builder.setMessage("Введите login пользователя для удаления")
builder.setView(edException)
builder.setNegativeButton("Назад") { dialogInterface, i ->
}
builder.setPositiveButton("Подтвердить") { dialogInterface, i ->
if(EmailPatient == edException.text.toString()){
deletePatient(edException.text.toString())
clearFIO()
clearEmailPatient()
clearDate()
clearSportCursDay()
clearSportCursDayDangerBefore()
clearSportCursDayDangerAfter()
clearPauseDay()
clearBlock()
clearDayBefore()
clearDayAfter()
clearSportPlusCount()
clearSportMaxCount()
clearSportDateStart()
clearCursDayNumber()
//Сохраняем то что пациент создан
clearPatientDoctorNew()
clearUserPatientToken()
Thread {
db.getDaoDaySport().deleteItemDaySport()
db.getDao().deleteItem()
db.getDaoQB().deleteBQ()
db.getDaoQA().deleteAQ()
}.start()
}
else{
Toast(requireContext()).showCustomInfoToast("Такого пользователя нету", requireActivity())
}
}
builder.show()
}
//Функция удаления пользователя
private fun deletePatient(login: String) {
val db = MainDB.getDB(requireContext())
Thread {
db.getDaoPatient().deletePatient(login)
}.start()
Toast(requireContext()).showCustomInfoToast("Аккаунт пациента был удален", requireActivity())
}
//Создание пациеанта
private fun createBtnPatient() {
binding.btnSaveCreatePatient.setOnClickListener {
addSave = 1
val db = MainDB.getDB(requireContext())
db.getDaoPatient().getAllItemPatient().asLiveData().observe(requireActivity()){
val listPatient = it.size
if(listPatient == 0){
val item = PatientModel(
"",
"",
"",
"",
"",
"",
"",
"",
)
model.liveLookPatientCurrent.value = item
}
else{
it.forEach(){
val item = PatientModel(
it.id.toString(),
"",
"",
"",
"",
"",
"",
"",
)
model.liveLookPatientCurrent.value = item
}
}
}
}
}
private fun liveLookPatientCurrent() = with(binding) {
model.liveLookPatientCurrent.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
if(addSave == 1){
Log.d("id","id123 = ${it.id}")
if(it.id != "" || it.id == null || it.id.isNotBlank()){
Toast(requireContext()).showCustomInfoToast("Аккаунт присутсвует", requireActivity())
}
else{
val nameCreate = binding.edCreateName.text.toString()
val surnameCreate = binding.edCreateSurname.text.toString()
val diagnosisCreate = binding.edDiagnosis.text.toString()
val emailCreate = binding.edCreateEmail.text.toString()
val loginCreate = binding.edCreateLogin.text.toString()
val passwordCreate = binding.edCreatePassword.text.toString()
if (nameCreate != "" && surnameCreate != "" && diagnosisCreate != "" && loginCreate != "" && passwordCreate != "") {
createAlеrtDialogCreate(
nameCreate,
surnameCreate,
//patronymicCreate,
diagnosisCreate,
//emailCreate,
loginCreate,
passwordCreate
)
saveFIO(surnameCreate+" "+nameCreate)
saveEmailPatient(loginCreate)
} else {
Toast(requireContext()).showCustomInfoToast("Не все поля заполнены", requireActivity())
}
}
//Сбрасываем нажатие
addSave=0
}
}
}
fun clearUserPatientToken() {
val edit = prefUserPatientToken?.edit()
edit?.clear()
edit?.apply()
UserPatientToken = ""
}
fun clearCursDayNumber() {
val edit = prefSportCursDayNumber?.edit()
edit?.clear()
edit?.apply()
SportCursDayNumber = 0
}
fun clearSportDateStart() {
val edit = prefSportDateStart?.edit()
edit?.clear()
edit?.apply()
SportDateStart = "0"
}
fun clearSportPlusCount() {
val edit = prefSportPlusCount?.edit()
edit?.clear()
edit?.apply()
SportPlusCount = 0
}
fun clearSportMaxCount() {
val edit = prefSportMaxCount?.edit()
edit?.clear()
edit?.apply()
SportMaxCount = 0
}
fun clearDayBefore() {
val edit = prefDayBefore?.edit()
edit?.clear()
edit?.apply()
DayBefore = ""
}
fun clearDayAfter() {
val edit = prefDayAfter?.edit()
edit?.clear()
edit?.apply()
DayAfter = ""
}
fun clearBlock() {
val edit = prefBlock?.edit()
edit?.clear()
edit?.apply()
Block = ""
}
fun clearPauseDay() {
val edit = prefPauseDay?.edit()
edit?.clear()
edit?.apply()
PauseDay = ""
}
fun clearDate() {
val edit = prefSport?.edit()
edit?.clear()
edit?.apply()
SportUserTrue = 0
}
fun clearSportCursDay() {
val edit = prefCursDay?.edit()
edit?.clear()
edit?.apply()
SportCursDay = 0
}
fun clearSportCursDayDangerBefore() {
val edit = prefCursDangerDayBefore?.edit()
edit?.clear()
edit?.apply()
SportCursDayDangerBefore = 0
}
fun clearSportCursDayDangerAfter() {
val edit = prefCursDangerDayAfter?.edit()
edit?.clear()
edit?.apply()
SportCursDayDangerAfter = 0
}
companion object {
fun newInstance() = CreatePatientFragment()
}
}

View File

@ -1,219 +0,0 @@
package com.example.rehabilitation.Admin.fragmrntAdmin.SettingDoctor
import android.content.Context
import android.os.Bundle
import android.util.Log
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.fragment.app.activityViewModels
import androidx.lifecycle.asLiveData
import com.example.admin.Toast.showCustomInfoToast
import com.example.admin.Toast.showCustomNiceToast
import com.example.rehabilitation.DayBefore
import com.example.rehabilitation.EmailPatient
import com.example.rehabilitation.FIO
import com.example.rehabilitation.R
import com.example.rehabilitation.Room.MainDB
import com.example.rehabilitation.SportCursDayDangerBefore
import com.example.rehabilitation.databinding.FragmentEditPatientBinding
import com.example.rehabilitation.model_adapter.Patient.PatientModel
import com.example.rehabilitation.prefCursDangerDayBefore
import com.example.rehabilitation.prefDayBefore
import com.example.rehabilitation.prefEmailPatient
import com.example.rehabilitation.prefFIO
import com.example.sqlitework.dip.MainViewModel
class EditPatientFragment : Fragment() {
private lateinit var binding: FragmentEditPatientBinding
private val model: MainViewModel by activityViewModels()//Инициализировали класс
var loginPatient = ""
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentEditPatientBinding.inflate(layoutInflater,container,false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
enabledPatient()
editBtnSavePatient()
liveSettingPatientCurrent()
outputOfDataParient()
//Выход из редактирвоания данных пациента
binding.btnBackPatientSetting.setOnClickListener {
visible3()
}
prefFIO = activity?.getSharedPreferences("FIO", Context.MODE_PRIVATE)
FIO = prefFIO?.getString("fio", "")!!
prefEmailPatient = activity?.getSharedPreferences("EmailPatient", Context.MODE_PRIVATE)
EmailPatient = prefEmailPatient?.getString("emailPatient", "")!!
}
override fun onResume() {
super.onResume()
}
fun saveFIO(fio: String) {
val edit = prefFIO?.edit()
edit?.putString("fio", fio)
edit?.apply()
FIO = fio
}
fun clearFIO() {
val edit = prefFIO?.edit()
edit?.clear()
edit?.apply()
FIO = ""
}
fun saveEmailPatient(emailPatient: String) {
val edit = prefEmailPatient?.edit()
edit?.putString("emailPatient", emailPatient)
edit?.apply()
EmailPatient = emailPatient
}
fun clearEmailPatient() {
val edit = prefEmailPatient?.edit()
edit?.clear()
edit?.apply()
EmailPatient = ""
}
//Экран о пациенте
fun visible3() {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLMainSettinDoctor,MainPatientFragment.newInstance())?.addToBackStack(null)?.commit()
}
//Функция отключающая поля для ввода редактирования пациента
private fun enabledPatient() = with(binding) {
edEditNamePatient.setEnabled(false)
edEditSurnamePatient.setEnabled(false)
//edEditPatronymicPatient.setEnabled(false)
edEditDiagnosisPatient.setEnabled(false)
edEditLoginPatient.setEnabled(false)
//edEditEmailPatient.setEnabled(false)
edEditPasswordPatient.setEnabled(false)
enabledPatientBtn()
}
//Функция активации полей при редактирование пациента
private fun enabledPatientBtn() = with(binding) {
btnEditNamePatient.setOnClickListener { edEditNamePatient.setEnabled(true) }
btnEditSurnamePatient.setOnClickListener { edEditSurnamePatient.setEnabled(true) }
//btnEditPatronymicPatient.setOnClickListener { edEditPatronymicPatient.setEnabled(true) }
btnEditDiagnosisPatient.setOnClickListener { edEditDiagnosisPatient.setEnabled(true) }
btnEditLoginPatient.setOnClickListener { edEditLoginPatient.setEnabled(true) }
//btnEditEmailPatient.setOnClickListener { edEditEmailPatient.setEnabled(true) }
btnEditPasswordPatient.setOnClickListener { edEditPasswordPatient.setEnabled(true) }
}
//Сохранение измененных данных для пациента
private fun editBtnSavePatient() = with(binding) {
binding.btnSaveEditPatient.setOnClickListener {
val name = edEditNamePatient.text.toString()
val surname = edEditSurnamePatient.text.toString()
// val patronymic = edEditPatronymicPatient.text.toString()
val diagnosis = edEditDiagnosisPatient.text.toString()
val login = edEditLoginPatient.text.toString()
//val email = edEditEmailPatient.text.toString()
val password = edEditPasswordPatient.text.toString()
if (name != "" && surname != "" && login != "" && password != "" && diagnosis != "") {
saveFIO(surname +" "+ name)
saveEmailPatient(login)
val db = MainDB.getDB(requireContext())
Thread {
db.getDaoPatient().updatePatient(
loginPatient,
name,
surname,
"",
diagnosis,
login,
password
)
}.start()
Toast(requireContext()).showCustomNiceToast(
"Данные обновлены",
requireActivity()
)
} else {
Toast(requireContext()).showCustomInfoToast(
"Не все поля заполнены",
requireActivity()
)
}
}
}
private fun liveSettingPatientCurrent() = with(binding) {
model.liveSettingPatientCurrent.observe(viewLifecycleOwner) {
//viewLifecycleOwner - следит за циклом жизни fragment
Log.i("liveSettingPatientCurrent","liveSettingPatientCurrent")
binding.edEditNamePatient.setText(it.name)
binding.edEditSurnamePatient.setText(it.surname)
//binding.edEditPatronymicPatient.setText(it.patronymic)
binding.edEditDiagnosisPatient.setText(it.diagnosis)
//binding.edEditEmailPatient.setText("")
binding.edEditLoginPatient.setText(it.login)
binding.edEditPasswordPatient.setText(it.password)
loginPatient = it.login
visible5()
}
}
//Экран редактировани данных пациента
fun visible5() {
Log.i("visible5","visible5")
binding.CLLoad.visibility = View.GONE
binding.CLEditPatien.visibility = View.VISIBLE
}
private fun outputOfDataParient() {
Log.i("outputOfDataParient","outputOfDataParient")
visibleLoad()
val db = MainDB.getDB(requireContext())
db.getDaoPatient().getAuthItemPatientOutput(EmailPatient).asLiveData().observe(requireActivity()) { itList ->
itList.forEach {
val item = PatientModel(
it.id.toString(),
it.name.toString(),
it.surname.toString(),
it.patronymic.toString(),
it.diagnosis.toString(),
it.number_of_courses.toString(),
it.login.toString(),
it.password.toString(),
)
model.liveSettingPatientCurrent.value = item
}
}
}
//Экран создания пациенат
fun visibleLoad() {
binding.CLLoad.visibility = View.VISIBLE
binding.CLEditPatien.visibility = View.GONE
}
companion object {
fun newInstance() = EditPatientFragment()
}
}

View File

@ -1,153 +0,0 @@
package com.example.rehabilitation.Admin.fragmrntAdmin.SettingDoctor
import android.content.Context
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.lifecycle.asLiveData
import com.example.admin.Toast.showCustomInfoToast
import com.example.admin.Toast.showCustomNiceToast
import com.example.rehabilitation.EmailPatient
import com.example.rehabilitation.FIO
import com.example.rehabilitation.MainActivity
import com.example.rehabilitation.R
import com.example.rehabilitation.Room.MainDB
import com.example.rehabilitation.databinding.FragmentMainPatientBinding
import com.example.rehabilitation.fragment.InfoFragment.MedicalReabilitationFragment
import com.example.rehabilitation.model_adapter.Patient.PatientModel
import com.example.rehabilitation.prefEmailPatient
import com.example.rehabilitation.prefFIO
class MainPatientFragment : Fragment()/*, MainActivity.IOnBackPressed*/ {
private lateinit var binding: FragmentMainPatientBinding
// override fun onBackPressed(): Boolean {
// return if (true) {
// Toast(requireContext()).showCustomInfoToast("123123213", requireActivity())
// true
// } else {
// false
// }
// }
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentMainPatientBinding.inflate(layoutInflater,container,false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
prefFIO = activity?.getSharedPreferences("FIO", Context.MODE_PRIVATE)
FIO = prefFIO?.getString("fio", "")!!
prefEmailPatient = activity?.getSharedPreferences("EmailPatient", Context.MODE_PRIVATE)
EmailPatient = prefEmailPatient?.getString("emailPatient", "")!!
//Выход из мею настроек пациента
binding.btnExitMainPAtient.setOnClickListener {
visible1()
}
binding.btnSportPatient.setOnClickListener {
if(FIO !=""){
visible4()
}
else{
Toast(requireContext()).showCustomInfoToast("Создайте аккаунт пациенту", requireActivity())
}
}
binding.btnCreatePatient.setOnClickListener {
visible7()
}
binding.btnEditPatient.setOnClickListener {
if(FIO !=""){
visible5()
}
else{
Toast(requireContext()).showCustomInfoToast("Создайте аккаунт пациенту", requireActivity())
}
}
}
// override fun onBackPressed(): Boolean {
// return if (myCondition) {
// //action not popBackStack
// true
// } else {
// false
// }
// }
fun saveFIO(fio: String) {
val edit = prefFIO?.edit()
edit?.putString("fio", fio)
edit?.apply()
FIO = fio
}
fun clearFIO() {
val edit = prefFIO?.edit()
edit?.clear()
edit?.apply()
FIO = ""
}
fun saveEmailPatient(emailPatient: String) {
val edit = prefEmailPatient?.edit()
edit?.putString("emailPatient", emailPatient)
edit?.apply()
EmailPatient = emailPatient
}
fun clearEmailPatient() {
val edit = prefEmailPatient?.edit()
edit?.clear()
edit?.apply()
EmailPatient = ""
}
//Экран создания пациенат
fun visibleLoad() {
binding.CLLoad.visibility = View.VISIBLE
binding.CLMainPatient.visibility = View.GONE
}
//Основной экран
fun visible1() {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLMainSettinDoctor,MainSettingDoctorFragment.newInstance())?.addToBackStack(null)?.commit()
}
//Экран тренировок пациента
fun visible4() {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLMainSettinDoctor,PatientSportFragment.newInstance())?.addToBackStack(null)?.commit()
// val infoFrag = activity?.supportFragmentManager?.beginTransaction()
// infoFrag?.replace(R.id.CLMainSettinDoctor, PatientSportFragment.newInstance())
// infoFrag?.addToBackStack(null)
// infoFrag?.commit()
}
//Экран редактировани данных пациента
fun visible5() {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLMainSettinDoctor,EditPatientFragment.newInstance())?.addToBackStack(null)?.commit()
}
//Экран создания пациенат
fun visible7() {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLMainSettinDoctor,CreatePatientFragment.newInstance())?.addToBackStack(null)?.commit()
}
companion object {
fun newInstance() = MainPatientFragment()
}
}

View File

@ -1,336 +0,0 @@
package com.example.rehabilitation.Admin.fragmrntAdmin.SettingDoctor
import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.os.Bundle
import android.util.Log
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.activityViewModels
import androidx.lifecycle.asLiveData
import com.example.admin.Toast.showCustomInfoToast
import com.example.rehabilitation.Auth.AuthDoctorActivity
import com.example.rehabilitation.Auth.AuthorizationActivity
import com.example.rehabilitation.Block
import com.example.rehabilitation.EmailPatient
import com.example.rehabilitation.FIO
import com.example.rehabilitation.PauseDay
import com.example.rehabilitation.R
import com.example.rehabilitation.Room.MainDB
import com.example.rehabilitation.SettingActivity
import com.example.rehabilitation.SportDateStart
import com.example.rehabilitation.SportPlusCount
import com.example.rehabilitation.User.fragmentUser.SceduleFragment
import com.example.rehabilitation.UserDoctorToken
import com.example.rehabilitation.counter2
import com.example.rehabilitation.databinding.FragmentMainSettingDoctorBinding
import com.example.rehabilitation.model_adapter.Patient.PatientModel
import com.example.rehabilitation.prefBlock
import com.example.rehabilitation.prefDoctor
import com.example.rehabilitation.prefEmailPatient
import com.example.rehabilitation.prefFIO
import com.example.rehabilitation.prefPauseDay
import com.example.rehabilitation.prefSportDateStart
import com.example.rehabilitation.prefUserDoctorToken
import com.example.rehabilitation.tokenClassDoctor
import com.example.sqlitework.dip.MainViewModel
import java.time.LocalDate
class MainSettingDoctorFragment : Fragment() {
private lateinit var binding: FragmentMainSettingDoctorBinding
private val model: MainViewModel by activityViewModels()//Инициализировали класс
private var addPatient = false
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentMainSettingDoctorBinding.inflate(layoutInflater,container,false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
prefFIO = activity?.getSharedPreferences("FIO", Context.MODE_PRIVATE)
FIO = prefFIO?.getString("fio", "")!!
prefEmailPatient = activity?.getSharedPreferences("EmailPatient", Context.MODE_PRIVATE)
EmailPatient = prefEmailPatient?.getString("emailPatient", "")!!
prefSportDateStart = activity?.getSharedPreferences("SportDateStart", Context.MODE_PRIVATE)
SportDateStart = prefSportDateStart?.getString("sportdatestart", "")!!
//Для пауз и блоков
prefPauseDay = activity?.getSharedPreferences("PauseDay", Context.MODE_PRIVATE)
PauseDay = prefPauseDay?.getString("pd", "")!!
prefBlock = activity?.getSharedPreferences("Block", Context.MODE_PRIVATE)
Block = prefBlock?.getString("b", "")!!
data_prefDoctorPatientToken()
//Вызываем вывод данных пациента
outputOfDataPatient()
//Получаем данные пациента
liveSettingPatientCurrent()
binding.btnPatient.setOnClickListener {
visible3()
}
//Выход из раздела врача
binding.btnExitDoctorProfil.setOnClickListener {
clearUserDoctorToken()
val intetn = Intent(requireContext(), SettingActivity::class.java)
activity?.finish()
startActivity(intetn)
}
//Выход из аккаунта врача
binding.btnExitAuthDoctor.setOnClickListener {
createAlеrtDialogExitAuth()
}
if(SportDateStart !=""){
binding.txtDateSport.setText("Дата назначения: ${SportDateStart}")
binding.cardViewSportDay.setCardBackgroundColor(Color.parseColor("#9CD57E"))
}
else{
binding.txtDateSport.setText("Курс отсуствует")
binding.cardViewSportDay.setCardBackgroundColor(Color.parseColor("#D57E7E"))
}
if(FIO ==""){
visibleLoad()
binding.txtSurname.setText("")
binding.txtName.setText("")
binding.txtPatronymic.setText("")
binding.txtEmail.setText("")
binding.txtDiagnoz.setText("")
}
//Цвет кнопок в зависимоти паузы и блока
colorBtnBlockPause()
binding.cardViewBan.setOnClickListener {
if(FIO !=""){
if(Block <= LocalDate.now().toString() || Block == ""){
saveBlock(LocalDate.now().plusDays(3).toString())
Toast(requireContext()).showCustomInfoToast("Курс заблокирован", requireActivity())
binding.cardViewBan.setCardBackgroundColor(Color.parseColor("#FF3F3F"))
}
else{
clearBlock()
Toast(requireContext()).showCustomInfoToast("Курс разблокирован", requireActivity())
binding.cardViewBan.setCardBackgroundColor(Color.parseColor("#8FF174"))
}
}
else{
Toast(requireContext()).showCustomInfoToast("Создайте аккаунт пациенту", requireActivity())
}
}
binding.cardViewPause.setOnClickListener {
if(FIO !=""){
if(PauseDay <= LocalDate.now().toString() || PauseDay == ""){
savePauseDay(LocalDate.now().plusDays(1).toString())
Toast(requireContext()).showCustomInfoToast("Пауза на 3 дня", requireActivity())
binding.cardViewPause.setCardBackgroundColor(Color.parseColor("#FF3F3F"))
}
else{
clearPauseDay()
Toast(requireContext()).showCustomInfoToast("Пауза снята", requireActivity())
binding.cardViewPause.setCardBackgroundColor(Color.parseColor("#8FF174"))
}
}
else{
Toast(requireContext()).showCustomInfoToast("Создайте аккаунт пациенту", requireActivity())
}
}
}
private fun colorBtnBlockPause() {
//Цвет кнопки в зависимоти от включен ли блок
if(Block==""){
binding.cardViewBan.setCardBackgroundColor(Color.parseColor("#8FF174"))
}
else{
binding.cardViewBan.setCardBackgroundColor(Color.parseColor("#FF3F3F"))
}
//Цвет кнопки в зависимоти от включена ли пацза
if(PauseDay==""){
binding.cardViewPause.setCardBackgroundColor(Color.parseColor("#8FF174"))
}
else{
binding.cardViewPause.setCardBackgroundColor(Color.parseColor("#FF3F3F"))
}
}
fun saveBlock(b: String) {
val edit = prefBlock?.edit()
edit?.putString("b", b)
edit?.apply()
Block = b
}
fun clearBlock() {
val edit = prefBlock?.edit()
edit?.clear()
edit?.apply()
Block = ""
}
fun savePauseDay(pd: String) {
val edit = prefPauseDay?.edit()
edit?.putString("pd", pd)
edit?.apply()
PauseDay = pd
}
fun clearPauseDay() {
val edit = prefPauseDay?.edit()
edit?.clear()
edit?.apply()
PauseDay = ""
}
override fun onDestroy() {
super.onDestroy()
clearUserDoctorToken()
}
override fun onResume() {
super.onResume()
if(FIO ==""){
visibleLoad()
binding.txtSurname.setText("")
binding.txtName.setText("")
binding.txtPatronymic.setText("")
binding.txtEmail.setText("")
binding.txtDiagnoz.setText("")
}
//Цвет кнопок в зависимоти паузы и блока
colorBtnBlockPause()
}
//Диалоговое окно
private fun createAlеrtDialogExitAuth() {
val builder = AlertDialog.Builder(requireContext())
builder.setTitle("Выход")
builder.setMessage("Вы уверены что хотите выйти из аккаунта")
builder.setNegativeButton("Назад") { dialogInterface, i ->
}
builder.setPositiveButton("Подтвердить") { dialogInterface, i ->
clearUserDoctorToken()
val intetn = Intent(requireContext(), SettingActivity::class.java)
activity?.finish()
startActivity(intetn)
}
builder.show()
}
//Фиксируем токен врача
private fun data_prefDoctorPatientToken() {
prefUserDoctorToken = activity?.getSharedPreferences("UserDoctorToken", Context.MODE_PRIVATE)
UserDoctorToken = prefUserDoctorToken?.getString("userdoctortoken", "")!! //Передаем при запуске страницы в counter данные по ключевому слову "counter", вс лучае если будет пусто то передастся 0
if(UserDoctorToken == ""){
val intetn = Intent(requireContext(), AuthDoctorActivity::class.java)
activity?.finish()
startActivity(intetn)
}
}
//Записываем число
fun saveUserDoctorToken(userdoctortoken: String) {
val editer = prefUserDoctorToken?.edit()
editer?.putString("userdoctortoken", userdoctortoken)
editer?.apply()
UserDoctorToken = userdoctortoken
}
//Функция очистки данных
fun clearUserDoctorToken() {
val edit = prefUserDoctorToken?.edit()
edit?.clear()
edit?.apply()
UserDoctorToken = ""
}
//Получение из базы данных пациента
private fun outputOfDataPatient() {
Log.i("111","111")
visibleLoad()
Log.i("122","122")
val db = MainDB.getDB(requireContext())
db.getDaoPatient().getAuthItemPatientOutput(EmailPatient).asLiveData().observe(requireActivity()) { itList ->
itList.forEach {
val item = PatientModel(
it.id.toString(),
it.name,
it.surname,
it.patronymic,
it.diagnosis,
it.number_of_courses.toString(),
it.login,
it.password,
)
model.liveSettingPatientCurrent.value = item
}
}
}
//ВЫводим данные пациента
private fun liveSettingPatientCurrent() = with(binding) {
model.liveSettingPatientCurrent.observe(viewLifecycleOwner) {
Log.i("333","333")
binding.txtSurname.setText(it.surname)
binding.txtName.setText(it.name)
binding.txtPatronymic.setText(it.patronymic)
binding.txtEmail.setText(it.login)
binding.txtDiagnoz.setText(it.diagnosis)
visible5()
}
}
//Экран загрузки
fun visibleLoad() {
Log.i("222","222")
binding.cardLoad.visibility = View.VISIBLE
binding.CLMainSetting.visibility = View.VISIBLE
}
//Экран с данными пациента и кнопками
fun visible5() {
Log.i("444","444")
binding.cardLoad.visibility = View.GONE
binding.CLMainSetting.visibility = View.VISIBLE
}
//Экран о пациенте
fun visible3() {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLMainSettinDoctor,MainPatientFragment.newInstance())?.addToBackStack(null)?.commit()
}
companion object {
fun newInstance() = MainSettingDoctorFragment()
}
}

View File

@ -1,29 +0,0 @@
package com.example.rehabilitation.Auth
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.example.rehabilitation.R
import com.example.rehabilitation.User.fragmentUser.HomeFragment
import com.example.rehabilitation.databinding.ActivityAuthDoctorBinding
class AuthDoctorActivity : AppCompatActivity() {
lateinit var binding: ActivityAuthDoctorBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityAuthDoctorBinding.inflate(layoutInflater)
setContentView(binding.root)
//Вывод фрагмента на активити при первоначальной загрузке
supportFragmentManager.beginTransaction()
.replace(R.id.CLAutDoctor, AuthDoctorFragment.newInstance())
.commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
}
override fun onDestroy() {
super.onDestroy()
finish()
}
}

View File

@ -1,157 +0,0 @@
package com.example.rehabilitation.Auth
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.util.Log
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.fragment.app.activityViewModels
import androidx.lifecycle.asLiveData
import com.example.admin.Toast.showCustomDangerToast
import com.example.admin.Toast.showCustomInfoToast
import com.example.rehabilitation.Admin.activityAdmin.UserSettingActivity
import com.example.rehabilitation.MainActivity
import com.example.rehabilitation.R
import com.example.rehabilitation.Room.MainDB
import com.example.rehabilitation.UserDoctorToken
import com.example.rehabilitation.databinding.ActivityAuthDoctorBinding
import com.example.rehabilitation.databinding.FragmentAuthDoctorBinding
import com.example.rehabilitation.model_adapter.Doctor.DoctorModel
import com.example.rehabilitation.prefUserDoctorToken
import com.example.sqlitework.dip.MainViewModel
class AuthDoctorFragment : Fragment() {
lateinit var binding: FragmentAuthDoctorBinding
private val model: MainViewModel by activityViewModels()//Инициализировали класс
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentAuthDoctorBinding.inflate(layoutInflater,container,false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
data_prefDoctorPatientToken()
liveDoctorAuthCurrent()
//Авторизация врача
//Нажатие на кнопку авторизации
binding.buttonAuthorizationDoctor.setOnClickListener{
var email = binding.editTextEmailDoctor.text.toString()
var password = binding.editTextPasswordDoctor.text.toString()
if(email !="" || password !=""){
AuthorizationDoctor(email,password)
Log.d("Result","email email - $email")
Log.d("Result","password password - $password")
}
else{
Toast(requireContext()).showCustomInfoToast("Не все поля заполнены", requireActivity())
}
}
//Переход от авторизации врача к пациенту
binding.btnAutPatient.setOnClickListener{
val intent = Intent(requireContext(), AuthorizationActivity::class.java)
activity?.finish()//Закрываем старый экран, для того чтобы очитсить оперативную память от лишнего хранения экрана
startActivity(intent)
}
}
private fun liveDoctorAuthCurrent() = with(binding) {
model.liveAuthDoctorCurrent.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
if(it.id == "0"){
Toast(requireContext()).showCustomDangerToast("Такого аккаунта нету", requireActivity())
}
else{
saveUserDoctorToken(it.login)
if(UserDoctorToken !=""){
val intent = Intent(requireContext(), UserSettingActivity::class.java)
activity?.finish()//Закрываем старый экран, для того чтобы очитсить оперативную память от лишнего хранения экрана
startActivity(intent)
}
}
}
}
//Фиксируем токен врача
private fun data_prefDoctorPatientToken() {
prefUserDoctorToken = activity?.getSharedPreferences("UserDoctorToken", Context.MODE_PRIVATE)
UserDoctorToken = prefUserDoctorToken?.getString("userdoctortoken", "")!! //Передаем при запуске страницы в counter данные по ключевому слову "counter", вс лучае если будет пусто то передастся 0
}
//Записываем число
fun saveUserDoctorToken(userdoctortoken: String) {
val editer = prefUserDoctorToken?.edit()
editer?.putString("userdoctortoken", userdoctortoken)
editer?.apply()
UserDoctorToken = userdoctortoken
}
//Функция очистки данных
fun clearUserDoctorToken() {
val edit = prefUserDoctorToken?.edit()
edit?.clear()
edit?.apply()
UserDoctorToken = ""
}
private fun AuthorizationDoctor(login:String,password:String){
val db = MainDB.getDB(requireContext())
db.getDaoDoctor().getAuthItemDoctor(login,password).asLiveData().observe(requireActivity()) {itPatient->
if (itPatient.isNullOrEmpty()) {
val item = DoctorModel(
"0",
"",
"",
"",
// it.email,
login,
""
)
model.liveAuthDoctorCurrent.value = item
}
else{
val item = DoctorModel(
itPatient[0].id.toString(),
"",
"",
"",
// it.email,
login,
""
)
model.liveAuthDoctorCurrent.value = item
}
}
}
override fun onDestroy() {
super.onDestroy()
activity?.finish()
}
companion object {
fun newInstance() = AuthDoctorFragment()
}
}

View File

@ -10,31 +10,43 @@ import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.fragment.app.activityViewModels
import androidx.lifecycle.asLiveData
import com.example.admin.Toast.showCustomDangerToast
import com.example.admin.Toast.showCustomInfoToast
import com.example.rehabilitation.Admin.activityAdmin.UserSettingActivity
import com.example.rehabilitation.Auth.Model.AuthModel
import com.example.rehabilitation.MainActivity
import com.example.rehabilitation.counter1
import com.example.rehabilitation.counter2
import com.example.rehabilitation.databinding.FragmentAuthBinding
import com.example.rehabilitation.Room.MainDB
import com.example.rehabilitation.UserDoctorToken
import com.example.rehabilitation.UserPatientToken
import com.example.rehabilitation.model_adapter.Doctor.DoctorModel
import com.example.rehabilitation.model_adapter.Patient.PatientModel
import com.example.rehabilitation.pref
import com.example.rehabilitation.prefDoctor
import com.example.rehabilitation.prefUserDoctorToken
import com.example.rehabilitation.Auth.Model.PatientModel
import com.example.rehabilitation.MainFragment
import com.example.rehabilitation.PatientViewModel
import com.example.rehabilitation.Pref.ConclusionPref
import com.example.rehabilitation.Pref.SavePref
import com.example.rehabilitation.Questionnaire.Model.BeforeQuestionnaireModel
import com.example.rehabilitation.R
import com.example.rehabilitation.Retrofit.PatientApi
import com.example.rehabilitation.Sport.SceduleFragment
import com.example.rehabilitation.prefUserPatientToken
import com.example.rehabilitation.tokenClass
import com.example.rehabilitation.tokenClassDoctor
import com.example.sqlitework.dip.MainViewModel
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import okhttp3.OkHttpClient
import okhttp3.logging.HttpLoggingInterceptor
import org.json.JSONObject
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
class AuthFragment : Fragment() {
private lateinit var binding: FragmentAuthBinding
private val model: MainViewModel by activityViewModels()//Инициализировали класс
private lateinit var patientApi: PatientApi
private val PatientVewModel: PatientViewModel by activityViewModels()
//Токен
private var Token = ""
val prefPatientSave = SavePref()
val prefPatientConclusion = ConclusionPref()
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
@ -47,21 +59,20 @@ class AuthFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
data_prefUserPatientToken()
livePatientAuthCurrent()
binding.txtError.text = ""
Token = prefPatientConclusion.conclusionToken(requireContext())
//Авиризация пациента
binding.buttonAuthorizationPatient.setOnClickListener {
var email = binding.editTextEmailPatient.text.toString()
var password = binding.editTextPasswordPatient.text.toString()
if (email != "" || password != "") {
AuthorizationPatient(email, password)
Log.d("Result", "email email - $email")
Log.d("Result", "password password - $password")
val login = binding.editTextLoginPatient.text.toString()
val password = binding.editTextPasswordPatient.text.toString()
if (login != "" || password != "") {
AuthorizationPatient(
AuthModel(
login,
password,
)
)
} else {
Toast(requireContext()).showCustomInfoToast(
"Не все поля заполнены",
@ -73,126 +84,101 @@ class AuthFragment : Fragment() {
//Если пользователь решил зайти в аккаунт врача и не подумал о том что не сможет вернуться со страницы авторизации, то он может нажать данную кнопку, и в случае если он был авторизован, то его вернет в приложение
binding.btnBack.setOnClickListener {
if (UserPatientToken != "") {
val intent = Intent(requireContext(), MainActivity::class.java)
startActivity(intent)
activity?.finish()//Закрываем старый экран, для того чтобы очитсить оперативную память от лишнего хранения экрана
activity?.supportFragmentManager?.beginTransaction()
?.replace(R.id.CLMain, MainFragment.newInstance())
?.commit()
} else {
Toast(requireContext()).showCustomInfoToast("Авторизуйтесь", requireActivity())
}
}
}
//Переход вход для врача
binding.txtDoctor.setOnClickListener {
val intent = Intent(requireContext(), AuthDoctorActivity::class.java)
startActivity(intent)
activity?.finish()//Закрываем старый экран, для того чтобы очитсить оперативную память от лишнего хранения экрана
//Инициализация подлючения к серверу
private fun initRetrofit() {
val interceptor = HttpLoggingInterceptor()
interceptor.level = HttpLoggingInterceptor.Level.BODY
val client = OkHttpClient
.Builder()
.addInterceptor(interceptor)
.build()
val retrofit = Retrofit.Builder()
.baseUrl("http://mobileapp.vmeda.org/api/")
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build()
patientApi = retrofit.create(PatientApi::class.java)
}
//Получения списка пациентов
fun BeforeQuestionnaire(item: BeforeQuestionnaireModel) {
initRetrofit()
val Tokens = prefPatientConclusion.conclusionToken(requireContext())
CoroutineScope(Dispatchers.IO).launch {
val QA = patientApi.AddBeforeQuestionnaire2("Bearer $Tokens",item)
requireActivity().runOnUiThread {
//Фиксируем полученные данные
val AQList = QA.body()
//Если нету ошибок
if (AQList != null) {
Toast(requireContext()).showCustomInfoToast(AQList.message, requireActivity())
}
else{
Toast(requireContext()).showCustomInfoToast("Ошибка при отправке", requireActivity())
}
//Вывод фрагмента на активити при первоначальной загрузке
activity?.supportFragmentManager?.beginTransaction()
?.replace(R.id.CLMain, SceduleFragment.newInstance())?.commit()
}
}
}
private fun AuthorizationPatient(authModel: AuthModel) {
initRetrofit()
CoroutineScope(Dispatchers.IO).launch {
//Инициализация хранилища(для токена) и проверяем есть ли аккаунт и или перекидываем в авторизацую или остаемся на данном экране
fun data_prefUserPatientToken() {
prefUserPatientToken =
activity?.getSharedPreferences("UserPatientToken", Context.MODE_PRIVATE)
UserPatientToken = prefUserPatientToken?.getString(
"userpatienttoken",
""
)!! //Передаем при запуске страницы в counter данные по ключевому слову "counter", вс лучае если будет пусто то передастся 0
}
val response = patientApi.LoginPatient(authModel)
requireActivity().runOnUiThread {
val user = response.body()
//Если есть такой пользователь
if (user != null) {
//Записываем число
fun saveUserPatientToken(userpatienttoken: String) {
val editer = prefUserPatientToken?.edit()
editer?.putString("userpatienttoken", userpatienttoken)
editer?.apply()
UserPatientToken = userpatienttoken
}
//PatientVewModel.token.value = user.token
prefPatientSave.saveToken(requireContext(),user.token)
//Функция очистки данных
fun clearUserPatientToken() {
val edit = prefUserPatientToken?.edit()
edit?.clear()
edit?.apply()
UserPatientToken = ""
}
private fun AuthorizationPatient(login: String, password: String) {
val db = MainDB.getDB(requireContext())
Log.d("Ressadsdasdasda3", "sadsdasdasda")
db.getDaoPatient().getAuthItemPatient(login, password).asLiveData()
.observe(requireActivity()) { itPatient ->
if (itPatient.isNullOrEmpty()) {
val item = PatientModel(
"0",
"",
"",
"",
"",
"",
//it.email,
login,
"",
val intetn = Intent(requireContext(), MainActivity::class.java)
startActivity(intetn)
activity?.finish()
}
else{
Toast(requireContext()).showCustomInfoToast(
"Такого пользователя нету",
requireActivity()
)
model.liveAuthPatientCurrent.value = item
} else {
val item = PatientModel(
itPatient[0].id.toString(),
"",
"",
"",
"",
"",
//it.email,
login,
"",
)
model.liveAuthPatientCurrent.value = item
}
}
}
private fun livePatientAuthCurrent() = with(binding) {
model.liveAuthPatientCurrent.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
Log.i("12312", "sadas")
if (it.id == "0") {
Log.i("4444", "4444")
Toast(requireContext()).showCustomDangerToast(
"Такого аккаунта нету",
requireActivity()
)
} else {
Log.i("5555", "5555")
UserPatientToken = it.login
saveUserPatientToken(it.login)
if (UserPatientToken != "") {
val intent = Intent(requireContext(), MainActivity::class.java)
activity?.finish()//Закрываем старый экран, для того чтобы очитсить оперативную память от лишнего хранения экрана
startActivity(intent)
}
}
}
}
override fun onDestroy() {
super.onDestroy()
activity?.finish()
}
companion object {
companion object {
fun newInstance() = AuthFragment()
}
}

View File

@ -15,10 +15,6 @@ class AuthorizationActivity : AppCompatActivity() {
binding = ActivityAuthorizationBinding.inflate(layoutInflater)
setContentView(binding.root)
supportFragmentManager.beginTransaction().replace(R.id.constraintLayoutAuth, AuthFragment.newInstance()).commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
}

View File

@ -0,0 +1,7 @@
package com.example.rehabilitation.Auth.Model
data class AuthModel(
val login: String,
val password: String,
)

View File

@ -0,0 +1,5 @@
package com.example.rehabilitation.Auth.Model
data class CheckTokenModel(
val status:String,
)

View File

@ -1,4 +1,4 @@
package com.example.rehabilitation.model_adapter.Patient
package com.example.rehabilitation.Auth.Model
data class PatientModel(
val id: String,

View File

@ -0,0 +1,7 @@
package com.example.rehabilitation.Auth.Model
data class UserModel(
val id: String,
val token: String,
)

View File

@ -0,0 +1,309 @@
package com.example.rehabilitation.Calendare
import android.annotation.SuppressLint
import android.graphics.Typeface
import android.os.Bundle
import android.os.Handler
import android.util.Log
import android.util.TypedValue
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.core.view.children
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.example.rehabilitation.Calendare.Calendare.CalendareAdapter
import com.example.rehabilitation.Calendare.Calendare.getColorCompat
import com.example.rehabilitation.Calendare.Calendare.setTextColorRes
import com.example.rehabilitation.Calendare.Calendare.shared.displayText
import com.example.rehabilitation.Calendare.Calendare.shared.generateFlights
import com.example.rehabilitation.Pref.ConclusionPref
import com.example.rehabilitation.R
import com.example.rehabilitation.Retrofit.PatientApi
import com.example.rehabilitation.Sport.DayAdapter
import com.example.rehabilitation.databinding.Example5CalendarDayBinding
import com.example.rehabilitation.databinding.Example5CalendarHeaderBinding
import com.example.rehabilitation.databinding.FragmentCalendarBinding
import com.example.rehabilitation.listCalendare
import com.example.sqlitework.dip.MainViewModel
import com.kizitonwose.calendar.core.CalendarDay
import com.kizitonwose.calendar.core.CalendarMonth
import com.kizitonwose.calendar.core.DayPosition
import com.kizitonwose.calendar.core.daysOfWeek
import com.kizitonwose.calendar.core.nextMonth
import com.kizitonwose.calendar.core.previousMonth
import com.kizitonwose.calendar.view.MonthDayBinder
import com.kizitonwose.calendar.view.MonthHeaderFooterBinder
import com.kizitonwose.calendar.view.ViewContainer
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import okhttp3.OkHttpClient
import okhttp3.logging.HttpLoggingInterceptor
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import java.time.DayOfWeek
import java.time.LocalDate
import java.time.YearMonth
import java.util.Timer
import kotlin.concurrent.timerTask
class CalendarFragment : Fragment() {
private lateinit var binding: FragmentCalendarBinding
lateinit var adapterDay: DayAdapter
private val model: MainViewModel by activityViewModels()//Инициализировали класс
private lateinit var patientApi: PatientApi
private var selectedDate: LocalDate? = null
val prefPatientConclusion = ConclusionPref()
private val flightsAdapter = CalendareAdapter()
//Для разрешения проверки количества дней
var lookDateSportMax = false
@SuppressLint("NewApi")
//Загрузка данных для календаря
var calendare = false
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentCalendarBinding.inflate(layoutInflater, container, false)
return binding.root
}
@SuppressLint("NewApi")
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
if(isAdded) {
calendare = false
initRcViewCalendareMoment()
APIliveCountCalendareCurrent()
}
}
fun visibleCalendare(){
binding.CLCalendare.visibility = View.VISIBLE
binding.CLLoad.visibility = View.GONE
}
fun visibleLoad(){
binding.CLCalendare.visibility = View.GONE
binding.CLLoad.visibility = View.VISIBLE
}
@SuppressLint("NotifyDataSetChanged")
private fun calendareTwoAdd() {
if(calendare == false) {
calendare = true
// binding.exFiveRv.apply {
// layoutManager = LinearLayoutManager(requireContext(), RecyclerView.VERTICAL, false)
// adapter = flightsAdapter
// }
Log.i("listCalendare1", listCalendare.toString())
flightsAdapter.notifyDataSetChanged()
val daysOfWeek = daysOfWeek()
val currentMonth = YearMonth.now()
val startMonth = currentMonth.minusMonths(200)
val endMonth = currentMonth.plusMonths(200)
configureBinders(daysOfWeek)
binding.exFiveCalendar.setup(startMonth, endMonth, daysOfWeek.first())
binding.exFiveCalendar.scrollToMonth(currentMonth)
binding.exFiveCalendar.monthScrollListener = { month ->
binding.exFiveMonthYearText.text = month.yearMonth.displayText()
selectedDate?.let {
// Clear selection if we scroll to a new month.
selectedDate = null
binding.exFiveCalendar.notifyDateChanged(it)
updateAdapterForDate(null)
}
}
binding.exFiveNextMonthImage.setOnClickListener {
binding.exFiveCalendar.findFirstVisibleMonth()?.let {
binding.exFiveCalendar.smoothScrollToMonth(it.yearMonth.nextMonth)
}
}
binding.exFivePreviousMonthImage.setOnClickListener {
binding.exFiveCalendar.findFirstVisibleMonth()?.let {
binding.exFiveCalendar.smoothScrollToMonth(it.yearMonth.previousMonth)
}
}
visibleCalendare()
}
}
private fun initRcViewCalendareMoment() = with(binding) {
exFiveRv.layoutManager = GridLayoutManager(requireContext(), 1)//По вертикали будет выводить по умолчанию
exFiveRv.adapter = flightsAdapter
}
//Инициализация запроса
private fun initRetrofit() {
val interceptor = HttpLoggingInterceptor()
interceptor.level = HttpLoggingInterceptor.Level.BODY
val client = OkHttpClient
.Builder()
.addInterceptor(interceptor)
.build()
//Базовая ссылка
val retrofit = Retrofit.Builder()
.baseUrl("http://mobileapp.vmeda.org/api/").client(client)
.addConverterFactory(GsonConverterFactory.create())
.build()
patientApi = retrofit.create(PatientApi::class.java)//Экземпляр
}
//Функция получения данных для заполнения календаря
private fun APIliveCountCalendareCurrent() {
visibleLoad()
initRetrofit()
val Tokens = prefPatientConclusion.conclusionToken(requireContext())
CoroutineScope(Dispatchers.IO).launch {
val Calendare = patientApi.PatientCalendareDay("Bearer $Tokens")
activity?.runOnUiThread {
//Фиксируем полученные данные
val CalendareList = Calendare.body()
Log.i("1111111111111111111",CalendareList.toString())
//Если нету ошибок
if (CalendareList != null) {
Log.i("2222","2222")
listCalendare = CalendareList.сalendare
Log.i("listCalendare",listCalendare.toString())
calendareTwoAdd()
}
else{
timerCalendare()
}
}
}
}
private fun timerCalendare() {
Log.i("asdasdasdasd444444444", "23231x2wswqxsxsas")
calendare = false
CoroutineScope(Dispatchers.IO).launch {
Timer().schedule(timerTask {
activity?.runOnUiThread {
APIliveCountCalendareCurrent()
}
}, 15000)
}
}
private fun updateAdapterForDate(date: LocalDate?) {
val flightss = generateFlights().groupBy { it.time.toLocalDate() }
flightsAdapter.flights.clear()
flightsAdapter.flights.addAll(flightss[date].orEmpty())
flightsAdapter.notifyDataSetChanged()
}
private fun configureBinders(daysOfWeek: List<DayOfWeek>) {
class DayViewContainer(view: View) : ViewContainer(view) {
lateinit var day: CalendarDay // Will be set when this container is bound.
val binding = Example5CalendarDayBinding.bind(view)
init {
view.setOnClickListener {
if (day.position == DayPosition.MonthDate) {
if (selectedDate != day.date) {
val oldDate = selectedDate
selectedDate = day.date
val binding = this@CalendarFragment.binding
binding.exFiveCalendar.notifyDateChanged(day.date)
oldDate?.let { binding.exFiveCalendar.notifyDateChanged(it) }
updateAdapterForDate(day.date)
}
}
}
}
}
binding.exFiveCalendar.dayBinder = object : MonthDayBinder<DayViewContainer> {
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<MonthViewContainer> {
override fun create(view: View) = MonthViewContainer(view)
override fun bind(container: MonthViewContainer, data: CalendarMonth) {
// Setup each header day text if we have not done that already.
if (container.legendLayout.tag == null) {
container.legendLayout.tag = data.yearMonth
container.legendLayout.children.map { it as TextView }
.forEachIndexed { index, tv ->
tv.text = daysOfWeek[index].displayText(uppercase = true)
tv.setTextColorRes(R.color.black)
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12f)
tv.typeface = typeFace
}
}
}
}
}
companion object {
fun newInstance() = CalendarFragment()
}
}

View File

@ -1,4 +1,4 @@
package com.example.calendarev2
package com.example.rehabilitation.Calendare.Calendare
import android.content.Context
import android.graphics.drawable.Drawable
@ -12,7 +12,8 @@ import androidx.annotation.DrawableRes
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import androidx.lifecycle.findViewTreeLifecycleOwner
import com.example.calendarev2.sample.shared.StatusBarColorLifecycleObserver
import com.example.rehabilitation.Calendare.Calendare.shared.StatusBarColorLifecycleObserver
fun View.makeVisible() {
visibility = View.VISIBLE

View File

@ -0,0 +1,67 @@
package com.example.rehabilitation.Calendare.Calendare.shared
import android.annotation.SuppressLint
import android.icu.text.SimpleDateFormat
import android.util.Log
import androidx.annotation.ColorRes
import com.example.rehabilitation.R
import com.example.rehabilitation.listCalendare
import java.time.LocalDate
import java.time.LocalDateTime
import java.time.Month
import java.time.YearMonth
import java.time.format.DateTimeFormatter
import kotlin.time.Duration.Companion.days
data class Flight(
val time: LocalDateTime,
val item: String,
@ColorRes val color: Int,
) {
data class Airport(val city: String, val code: String)
}
@SuppressLint("NewApi")
fun generateFlights(): List<Flight> = 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")

View File

@ -1,4 +1,4 @@
package com.example.calendarev2.sample.shared
package com.example.rehabilitation.Calendare.Calendare.shared
import android.annotation.SuppressLint
import android.app.Activity
@ -10,7 +10,7 @@ import androidx.core.content.ContextCompat
import androidx.core.graphics.ColorUtils
import androidx.lifecycle.DefaultLifecycleObserver
import androidx.lifecycle.LifecycleOwner
import com.example.calendarev2.R
import com.example.rehabilitation.R
import java.lang.ref.WeakReference

View File

@ -1,4 +1,4 @@
package com.example.calendarev2.sample.shared
package com.example.rehabilitation.Calendare.Calendare.shared
import android.annotation.SuppressLint
import android.app.Activity

View File

@ -1,9 +1,13 @@
package com.example.calendarev2
package com.example.rehabilitation.Calendare.Calendare
import android.annotation.SuppressLint
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.example.calendarev2.databinding.Example5EventItemViewv2Binding
import com.example.rehabilitation.Calendare.Calendare.getColorCompat
import com.example.rehabilitation.Calendare.Calendare.layoutInflater
import com.example.rehabilitation.Calendare.Calendare.shared.Flight
import com.example.rehabilitation.Calendare.Calendare.shared.flightDateTimeFormatter
import com.example.rehabilitation.databinding.Example5EventItemViewv2Binding
class CalendareAdapter :

View File

@ -0,0 +1,5 @@
package com.example.rehabilitation.Calendare
data class CalendareListModel(
val сalendare: List<CalendareModel>
)

View File

@ -0,0 +1,19 @@
package com.example.rehabilitation.Calendare
data class CalendareModel(
val id: Int,
val id_patient : Int,
val day: String,
val date: String,
val count_workout_max:Int,
val count_workout_make: Int,
val id_sets_of_sports_activities : Int,
val article_sport_for_day: String,
val id_sport_patient :Int,
val block: String,
val pause: String,
val id_before_questionnaire : String,
val id_after_questionnaire : String,
val created_at : String,
val updated_at : String,
)

View File

@ -1,10 +1,11 @@
package com.example.rehabilitation
import android.content.SharedPreferences
import com.example.rehabilitation.model_adapter.Month.MonthModel
import com.example.rehabilitation.model_adapter.Progress.AfterListModel
import com.example.rehabilitation.model_adapter.Progress.BeforeListModel
import com.example.rehabilitation.model_adapter.Progress.ProgressModel
import com.example.rehabilitation.Calendare.CalendareModel
import com.example.rehabilitation.Sport.Image.ImageSportModel
import com.example.rehabilitation.Progress.AfterListModel
import com.example.rehabilitation.Progress.BeforeListModel
import com.example.rehabilitation.Progress.ProgressModel
import java.io.File
import java.io.FileOutputStream
@ -12,18 +13,20 @@ import java.io.FileOutputStream
var prefUserPatientToken: SharedPreferences? = null
var UserPatientToken:String = ""
var prefUserDoctorToken: SharedPreferences? = null
var UserDoctorToken:String = ""
var prefPatientDoctorNew: SharedPreferences? = null
var PatientDoctorNew:Int = 0
var pref: SharedPreferences? = null
var prefDoctor: SharedPreferences? = null
//Общее количество дней курса
var prefSportCursDayAll: SharedPreferences? = null
var SportCursDayAll :Int = 0
var prefSportCursDayLast: SharedPreferences? = null
var SportCursDayLast :String = ""
var prefSportCursNumber: SharedPreferences? = null
var prefCursDay: SharedPreferences? = null
var SportCursDay :Int = 0
//7 дней пройдено
var prefSport7Day: SharedPreferences? = null
var Sport7Day :Int = 0
@ -127,11 +130,14 @@ var listAfter:List<AfterListModel> = listOf()
//Прогрес
var listProgressAll:List<ProgressModel> = listOf()
var listProgressCheck:List<ProgressModel> = listOf()
var listImageSport:List<ImageSportModel> = listOf()
var uriFileEF: File? =null
var fileUri2: FileOutputStream? =null
//Переменная для хранения дня, чтобы при нажатие на главной тсранице или в календаре
var dateHomeCalendare:String = ""
//Календарь
var listCalendare:List<CalendareModel> = listOf()
class Hranilihe {
}

View File

@ -6,6 +6,7 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.rehabilitation.R
import com.example.rehabilitation.Information.InformationFragment
import com.example.rehabilitation.databinding.FragmentCommonInfoBinding
class CommonInfoFragment : Fragment() {
@ -17,6 +18,18 @@ class CommonInfoFragment : Fragment() {
): View? {
binding = FragmentCommonInfoBinding.inflate(inflater, container, false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InformationFragment.newInstance())?.addToBackStack(null)?.commit()
}
}
// override fun onResume() {

View File

@ -6,6 +6,7 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.rehabilitation.R
import com.example.rehabilitation.Information.InformationFragment
import com.example.rehabilitation.databinding.FragmentMedicalReabilitationBinding
class MedicalReabilitationFragment : Fragment() {
@ -15,8 +16,18 @@ class MedicalReabilitationFragment : Fragment() {
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentMedicalReabilitationBinding.inflate(inflater, container, false)
return inflater.inflate(R.layout.fragment_medical_reabilitation, container, false)
binding = FragmentMedicalReabilitationBinding.inflate(layoutInflater, container, false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InformationFragment.newInstance())?.addToBackStack(null)?.commit()
}
}
// override fun onResume() {

View File

@ -0,0 +1,43 @@
package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.rehabilitation.R
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment
import com.example.rehabilitation.databinding.FragmentBreathingExercisesBinding
class BreathingExercisesFragment : Fragment() {
private lateinit var binding:FragmentBreathingExercisesBinding
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentBreathingExercisesBinding.inflate(layoutInflater, container, false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.DecongestantTherapy.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.DecongestantTherapyFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
}
companion object {
fun newInstance() =
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.BreathingExercisesFragment()
}
}

View File

@ -0,0 +1,42 @@
package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.rehabilitation.R
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment
import com.example.rehabilitation.databinding.FragmentContourPreventionBinding
class ContourPreventionFragment : Fragment() {
private lateinit var binding:FragmentContourPreventionBinding
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentContourPreventionBinding.inflate(layoutInflater, container, false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnPhantomPains.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.PhantomPainsFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
}
companion object {
fun newInstance() =
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.ContourPreventionFragment()
}
}

View File

@ -0,0 +1,41 @@
package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.rehabilitation.R
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment
import com.example.rehabilitation.databinding.FragmentDecongestantTherapyBinding
class DecongestantTherapyFragment : Fragment() {
private lateinit var binding: FragmentDecongestantTherapyBinding
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentDecongestantTherapyBinding.inflate(layoutInflater, container, false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnContracturesPrevention.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.ContourPreventionFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
}
companion object {
fun newInstance() =
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.DecongestantTherapyFragment()
}
}

View File

@ -0,0 +1,42 @@
package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.rehabilitation.R
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment
import com.example.rehabilitation.databinding.FragmentFormationOfTheStumpBinding
class FormationOfTheStumpFragment : Fragment() {
private lateinit var binding:FragmentFormationOfTheStumpBinding
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentFormationOfTheStumpBinding.inflate(layoutInflater,container,false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnPhysicalExercises.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.PhysicalExercisesFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
}
companion object {
fun newInstance() =
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.FormationOfTheStumpFragment()
}
}

View File

@ -0,0 +1,42 @@
package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.rehabilitation.R
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment
import com.example.rehabilitation.databinding.FragmentMotorModeBinding
class MotorModeFragment : Fragment() {
private lateinit var binding: FragmentMotorModeBinding
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentMotorModeBinding.inflate(layoutInflater,container,false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnStumpCare.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.StumpCareFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
}
companion object {
fun newInstance() =
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.MotorModeFragment()
}
}

View File

@ -0,0 +1,41 @@
package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.rehabilitation.R
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment
import com.example.rehabilitation.databinding.FragmentOrganizationOfTheDailyRoutineAfterSurgeryBinding
class OrganizationOfTheDailyRoutineAfterSurgeryFragment : Fragment() {
private lateinit var binding: FragmentOrganizationOfTheDailyRoutineAfterSurgeryBinding
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentOrganizationOfTheDailyRoutineAfterSurgeryBinding.inflate(layoutInflater,container,false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnOrganizationOfTheDayRegimeOfTheSecondWeekAfterAmputation.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.OrganizationOfTheDayRegimeOfTheSecondWeekAfterAmputationFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
}
companion object {
fun newInstance() =
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.OrganizationOfTheDailyRoutineAfterSurgeryFragment()
}
}

View File

@ -0,0 +1,36 @@
package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.rehabilitation.R
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment
import com.example.rehabilitation.databinding.FragmentOrganizationOfTheDayRegimeOfTheSecondWeekAfterAmputationBinding
class OrganizationOfTheDayRegimeOfTheSecondWeekAfterAmputationFragment : Fragment() {
private lateinit var binding: FragmentOrganizationOfTheDayRegimeOfTheSecondWeekAfterAmputationBinding
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentOrganizationOfTheDayRegimeOfTheSecondWeekAfterAmputationBinding.inflate(layoutInflater,container,false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
}
companion object {
fun newInstance() =
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.OrganizationOfTheDayRegimeOfTheSecondWeekAfterAmputationFragment()
}
}

View File

@ -0,0 +1,41 @@
package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.rehabilitation.R
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment
import com.example.rehabilitation.databinding.FragmentPhantomPainsBinding
class PhantomPainsFragment : Fragment() {
private lateinit var binding:FragmentPhantomPainsBinding
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentPhantomPainsBinding.inflate(layoutInflater, container, false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnSurfaceSensitivity.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.SurfaceSensitivityFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
}
companion object {
fun newInstance() =
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.PhantomPainsFragment()
}
}

View File

@ -0,0 +1,41 @@
package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.rehabilitation.R
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment
import com.example.rehabilitation.databinding.FragmentPhysicalExercisesBinding
class PhysicalExercisesFragment : Fragment() {
private lateinit var binding: FragmentPhysicalExercisesBinding
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentPhysicalExercisesBinding.inflate(layoutInflater,container,false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnOrganizationOfTheDailyRoutineAfterSurgery.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.OrganizationOfTheDailyRoutineAfterSurgeryFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
}
companion object {
fun newInstance() =
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.PhysicalExercisesFragment()
}
}

View File

@ -0,0 +1,43 @@
package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.rehabilitation.R
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment
import com.example.rehabilitation.databinding.FragmentStumpCareBinding
class StumpCareFragment : Fragment() {
private lateinit var binding: FragmentStumpCareBinding
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentStumpCareBinding.inflate(layoutInflater,container,false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnBreathingExercises.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.BreathingExercisesFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
}
companion object {
fun newInstance() =
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.StumpCareFragment()
}
}

View File

@ -0,0 +1,42 @@
package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.rehabilitation.R
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment
import com.example.rehabilitation.databinding.FragmentSurfaceSensitivityBinding
class SurfaceSensitivityFragment : Fragment() {
private lateinit var binding:FragmentSurfaceSensitivityBinding
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentSurfaceSensitivityBinding.inflate(layoutInflater,container,false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnFormationOfTheStump.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.FormationOfTheStumpFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
}
companion object {
fun newInstance() =
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.SurfaceSensitivityFragment()
}
}

View File

@ -0,0 +1,111 @@
package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.rehabilitation.R
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.BreathingExercisesFragment
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.ContourPreventionFragment
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.DecongestantTherapyFragment
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.FormationOfTheStumpFragment
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.MotorModeFragment
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.OrganizationOfTheDailyRoutineAfterSurgeryFragment
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.OrganizationOfTheDayRegimeOfTheSecondWeekAfterAmputationFragment
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.PhantomPainsFragment
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.PhysicalExercisesFragment
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.StumpCareFragment
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.SurfaceSensitivityFragment
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendationsFragment
import com.example.rehabilitation.databinding.FragmentEarlyPostoperativePeriodBinding
class EarlyPostoperativePeriodFragment : Fragment() {
private lateinit var binding:FragmentEarlyPostoperativePeriodBinding
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentEarlyPostoperativePeriodBinding.inflate(layoutInflater,container,false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnMotorMode.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.MotorModeFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnStumpCare.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.StumpCareFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnBreathingExercises.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.BreathingExercisesFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.DecongestantTherapy.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.DecongestantTherapyFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnContracturesPrevention.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.ContourPreventionFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnPhantomPains.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.PhantomPainsFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnExit.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendationsFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnFurther.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
binding.btnSurfaceSensitivity.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.SurfaceSensitivityFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnFormationOfTheStump.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.FormationOfTheStumpFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnPhysicalExercises.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.PhysicalExercisesFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnOrganizationOfTheDailyRoutineAfterSurgery.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.OrganizationOfTheDailyRoutineAfterSurgeryFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnOrganizationOfTheDayRegimeOfTheSecondWeekAfterAmputation.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriod.OrganizationOfTheDayRegimeOfTheSecondWeekAfterAmputationFragment.newInstance())?.addToBackStack(null)?.commit()
}
}
companion object {
fun newInstance() =
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment()
}
}

View File

@ -0,0 +1,42 @@
package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.rehabilitation.R
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment
import com.example.rehabilitation.databinding.FragmentDecongestantTherapyLateBinding
class DecongestantTherapyLateFragment : Fragment() {
private lateinit var binding: FragmentDecongestantTherapyLateBinding
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentDecongestantTherapyLateBinding.inflate(layoutInflater,container,false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(
R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnMassageTechniqueLate.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.MassageTechniqueLateFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
}
companion object {
fun newInstance() =
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.DecongestantTherapyLateFragment()
}
}

View File

@ -0,0 +1,42 @@
package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.rehabilitation.R
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment
import com.example.rehabilitation.databinding.FragmentMassageTechniqueLateBinding
class MassageTechniqueLateFragment : Fragment() {
private lateinit var binding: FragmentMassageTechniqueLateBinding
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentMassageTechniqueLateBinding.inflate(layoutInflater,container,false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnPreventionOfContracturesLate.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.PreventionOfContracturesLateFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
}
companion object {
fun newInstance() =
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.MassageTechniqueLateFragment()
}
}

View File

@ -0,0 +1,38 @@
package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.rehabilitation.R
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment
import com.example.rehabilitation.databinding.FragmentPhantomPainsLateBinding
class PhantomPainsLateFragment : Fragment() {
private lateinit var binding:FragmentPhantomPainsLateBinding
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentPhantomPainsLateBinding.inflate(layoutInflater,container,false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(
R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
}
companion object {
fun newInstance() =
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.PhantomPainsLateFragment()
}
}

View File

@ -0,0 +1,43 @@
package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.rehabilitation.R
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment
import com.example.rehabilitation.databinding.FragmentPreparationForProstheticsLateBinding
class PreparationForProstheticsLateFragment : Fragment() {
private lateinit var binding: FragmentPreparationForProstheticsLateBinding
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentPreparationForProstheticsLateBinding.inflate(layoutInflater,container,false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(
R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnDecongestantTherapyLate.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.DecongestantTherapyLateFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
}
companion object {
fun newInstance() =
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.PreparationForProstheticsLateFragment()
}
}

View File

@ -0,0 +1,41 @@
package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.rehabilitation.R
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment
import com.example.rehabilitation.databinding.FragmentPreventionOfContracturesLateBinding
class PreventionOfContracturesLateFragment : Fragment() {
private lateinit var binding: FragmentPreventionOfContracturesLateBinding
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentPreventionOfContracturesLateBinding.inflate(layoutInflater,container,false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnPhantomPainsLate.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.PhantomPainsLateFragment.Companion.newInstance()
)?.addToBackStack(null)?.commit()
}
}
companion object {
fun newInstance() =
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.PreventionOfContracturesLateFragment()
}
}

View File

@ -0,0 +1,63 @@
package com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.rehabilitation.R
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.DecongestantTherapyLateFragment
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.MassageTechniqueLateFragment
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.PhantomPainsLateFragment
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.PreparationForProstheticsLateFragment
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.PreventionOfContracturesLateFragment
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendationsFragment
import com.example.rehabilitation.databinding.FragmentLatePostoperativePeriodBinding
class LatePostoperativePeriodFragment : Fragment() {
private lateinit var binding: FragmentLatePostoperativePeriodBinding
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentLatePostoperativePeriodBinding.inflate(layoutInflater,container,false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendationsFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnPreparationForProstheticsLate.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.PreparationForProstheticsLateFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnDecongestantTherapyLate.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.DecongestantTherapyLateFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnMassageTechniqueLate.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.MassageTechniqueLateFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnPreventionOfContracturesLate.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.PreventionOfContracturesLateFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnPhantomPainsLate.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriod.PhantomPainsLateFragment.newInstance())?.addToBackStack(null)?.commit()
}
}
companion object {
fun newInstance() =
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment()
}
}

View File

@ -0,0 +1,48 @@
package com.example.rehabilitation.Information.InfoFragment
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.rehabilitation.R
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment
import com.example.rehabilitation.Information.InformationFragment
import com.example.rehabilitation.databinding.FragmentMethodologicalRecommendationsBinding
class MethodologicalRecommendationsFragment : Fragment() {
private lateinit var binding: FragmentMethodologicalRecommendationsBinding
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentMethodologicalRecommendationsBinding.inflate(layoutInflater,container,false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InformationFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnEarlyPostoperativePeriod.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.EarlyPostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
binding.btnLatePostoperativePeriod.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendations.LatePostoperativePeriodFragment.newInstance())?.addToBackStack(null)?.commit()
}
}
companion object {
fun newInstance() =
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendationsFragment()
}
}

View File

@ -6,6 +6,7 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.rehabilitation.R
import com.example.rehabilitation.Information.InformationFragment
import com.example.rehabilitation.databinding.FragmentFaqBinding
class faqFragment : Fragment() {
@ -22,6 +23,15 @@ class faqFragment : Fragment() {
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnExit.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.CLInformation,
com.example.rehabilitation.Information.InformationFragment.newInstance())?.addToBackStack(null)?.commit()
}
}
// override fun onResume() {
// super.onResume()
// binding.CLFaq.visibility = View.VISIBLE

View File

@ -1,11 +1,10 @@
package com.example.rehabilitation
package com.example.rehabilitation.Information
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.appcompat.app.AlertDialog
import com.example.rehabilitation.User.fragmentUser.InformationFragment
import com.example.rehabilitation.User.fragmentUser.SceduleFragment
import com.example.rehabilitation.MainActivity
import com.example.rehabilitation.R
import com.example.rehabilitation.databinding.ActivityInformationBinding
class InformationActivity : AppCompatActivity() {

View File

@ -0,0 +1,105 @@
package com.example.rehabilitation.Information
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.rehabilitation.MainActivity
import com.example.rehabilitation.R
import com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendationsFragment
import com.example.rehabilitation.MainFragment
import com.example.rehabilitation.Setting.SettingFragment
import com.example.rehabilitation.databinding.FragmentInformationBinding
import com.example.rehabilitation.fragment.InfoFragment.CommonInfoFragment
import com.example.rehabilitation.fragment.InfoFragment.MedicalReabilitationFragment
import com.example.rehabilitation.fragment.InfoFragment.faqFragment
class InformationFragment : Fragment() {
private lateinit var binding: FragmentInformationBinding
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentInformationBinding.inflate(layoutInflater, container, false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
if(isAdded()) {
//Выход со страницы
binding.btnExitInformation.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()
?.replace(R.id.CLMain, MainFragment.newInstance())
?.commit()
}
binding.methodologicalRecommendationsButton.setOnClickListener {
val infoFrag = activity?.supportFragmentManager?.beginTransaction()
infoFrag?.replace(
R.id.CLInformation,
com.example.rehabilitation.Information.InfoFragment.MethodologicalRecommendationsFragment.newInstance()
)
infoFrag?.addToBackStack(null)
infoFrag?.commit()
}
binding.commonInformationButton.setOnClickListener {
val infoFrag = activity?.supportFragmentManager?.beginTransaction()
infoFrag?.replace(R.id.CLInformation, CommonInfoFragment.newInstance())
infoFrag?.addToBackStack(null)
infoFrag?.commit()
}
binding.frequentlyAskedQuestionsButton.setOnClickListener {
val infoFrag = activity?.supportFragmentManager?.beginTransaction()
infoFrag?.replace(R.id.CLInformation, faqFragment.newInstance())
infoFrag?.addToBackStack(null)
infoFrag?.commit()
}
binding.medicalReabilitationButton.setOnClickListener {
val infoFrag = activity?.supportFragmentManager?.beginTransaction()
infoFrag?.replace(R.id.CLInformation, MedicalReabilitationFragment.newInstance())
infoFrag?.addToBackStack(null)
infoFrag?.commit()
}
binding.fondButton.setOnClickListener {
val i = Intent(
Intent.ACTION_VIEW,
Uri.parse("https://фонд-защитники-отечества.рф/filials")
)
startActivity(i)
}
}
}
// override fun onDestroy() {
// super.onDestroy()
// activity?.finish()
//
// binding.CLFragmentInformation.visibility = View.GONE
// }
//
// override fun onResume() {
// super.onResume()
// binding.CLFragmentInformation.visibility = View.VISIBLE
//
// }
companion object {
fun newInstance() = com.example.rehabilitation.Information.InformationFragment()
}
}

View File

@ -1,45 +1,31 @@
package com.example.rehabilitation
import android.annotation.SuppressLint
import android.content.Context
import android.content.Intent
import android.icu.text.SimpleDateFormat
import android.icu.util.Calendar
import android.os.Bundle
import android.util.Log
import android.widget.Toast
import androidx.activity.viewModels
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
import androidx.core.view.GravityCompat
import androidx.lifecycle.LifecycleOwner
import com.example.rehabilitation.Auth.AuthDoctorActivity
import com.example.rehabilitation.Auth.AuthorizationActivity
import com.example.rehabilitation.User.fragmentUser.CalendarFragment
import com.example.rehabilitation.User.fragmentUser.HomeFragment
import com.example.rehabilitation.User.fragmentUser.InformationFragment
import com.example.rehabilitation.User.fragmentUser.ProgresFragment
import com.example.rehabilitation.User.fragmentUser.SceduleFragment
import com.example.rehabilitation.Auth.AuthFragment
import com.example.rehabilitation.Pref.ConclusionPref
import com.example.rehabilitation.Retrofit.PatientApi
import com.example.rehabilitation.databinding.ActivityMainBinding
import com.example.rehabilitation.model_adapter.DataModel
import com.google.firebase.database.ktx.database
import com.google.firebase.ktx.Firebase
import java.time.LocalDate
import java.util.Date
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import okhttp3.OkHttpClient
import okhttp3.logging.HttpLoggingInterceptor
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
class MainActivity : AppCompatActivity() {
var backPressedTime: Long = 0
private lateinit var binding: ActivityMainBinding
//Для постоянного охаранения данных(для токена)
//var pref: SharedPreferences? = null
private val dataModel: DataModel by viewModels()//Для передачи данных
var sdf: SimpleDateFormat = SimpleDateFormat("EEEE")
var d: Date = Date()
var dayOfTheWeek: String = sdf.format(d)
private lateinit var patientApi: PatientApi
//Токен
private var Token = ""
val prefPatientConclusion = ConclusionPref()
var backPressedTime: Long = 0
@SuppressLint("DiscouragedApi")
@ -48,188 +34,105 @@ class MainActivity : AppCompatActivity() {
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
//Функция инициализации хранилиша для токена
data_prefUserPatientToken()
dataModel.fragmentMenu.observe(this as LifecycleOwner, {
binding.buttonNavigation.selectedItemId = it
})
//Функция инициализации фрагметов
fragment_inicializ()
/*binding.button.setOnClickListener {
val intent = Intent(this,MainActivity2::class.java)//Открытие окна
startActivity(intent)
}*/
binding.btnSetting.setOnClickListener {
val intent = Intent(this, SettingActivity::class.java)
startActivity(intent)
finish()
}
binding.btnInformation.setOnClickListener {
val intent = Intent(this, InformationActivity::class.java)
startActivity(intent)
finish()
}
val database = Firebase.database
val myRef = database.getReference("message1235322")
myRef.setValue("Hello, World!")
//binding.imageView3.resources.getIdentifier("b3_1","drawable",this.packageName);
//Выводим сегоднящнюю дату
addDate()
initRetrofit()
MainAndAuth()
}
override fun onBackPressed() {
if (backPressedTime + 3000 > System.currentTimeMillis()) {
super.onBackPressed()
finish()
fun MainAndAuth() {
Token = prefPatientConclusion.conclusionToken(this)
Log.i("sadasdsadsd",Token)
//CheckTokenAuth(Token)
if (Token == "") {
Auth()
} else {
AlertDialog.Builder(this@MainActivity)
.setTitle("Выйти")
.setMessage("Вы точно хотите выйти из приложения?")
.setPositiveButton("Да") { dialog, whichButton ->
super.onBackPressed()
}
.setNegativeButton("Нет") { dialog, whichButton ->
}
.show()
CheckTokenAuth(Token)
}
backPressedTime = System.currentTimeMillis()
}
private fun addDate() {
val calendar: Calendar = Calendar.getInstance()
val sdf: SimpleDateFormat = SimpleDateFormat("EEEE")
val d: Date = Date()
val DayOfTheWeek: String = sdf.format(d)
val Day = calendar.get(Calendar.DATE)
val Month = calendar.get(Calendar.MONTH).plus(1)
var day = Day.toString()
var month = ""
var date_of_the_week = ""
fun Auth() {
//Вывод фрагмента на активити при первоначальной загрузке
supportFragmentManager.beginTransaction()
.replace(R.id.CLMain, AuthFragment.newInstance())
.commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
when (Month) {
1 -> month="Январь"
2 -> month="Февраль"
3 -> month="Март"
4 -> month="Апрель"
5 -> month="Май"
6 -> month="Июнь"
7 -> month="Июль"
8 -> month="Август"
9 -> month="Сентябрь"
10 -> month="Октябрь"
11 -> month="Ноябрь"
12 -> month="Декабрь"
else -> { // обратите внимание на блок
month=""
}
}
when (dayOfTheWeek) {
"Monday" -> date_of_the_week="Пн"
"Tuesday" -> date_of_the_week="Вт"
"Wednesday" -> date_of_the_week="Ср"
"Thursday" -> date_of_the_week="Чт"
"Friday" -> date_of_the_week="Пт"
"Saturday" -> date_of_the_week="Сб"
"Sunday" -> date_of_the_week="Вс"
"Понедельник" -> date_of_the_week="Пн"
"Вторник" -> date_of_the_week="Вт"
"Стреда" -> date_of_the_week="Ср"
"Четверг" -> date_of_the_week="Чт"
"Пятница" -> date_of_the_week="Пт"
"Суббота" -> date_of_the_week="Сб"
"Воскресенье" -> date_of_the_week="Вс"
else -> {
date_of_the_week=""
}
}
System.out.println(calendar.get(Calendar.DATE))
//binding.txtDate.setText("${day}" +" "+ "${month}" +" "+ "(${date_of_the_week})")
binding.txtDate.setText("${day}" +" "+ "${month}")
}
// interface IOnBackPressed {
// fun onBackPressed(): Boolean
// }
//
fun Main() {
fragment_inicializ()
}
@SuppressLint("SuspiciousIndentation")
private fun CheckTokenAuth(token: String) {
CoroutineScope(Dispatchers.IO).launch {
val response = patientApi.CheckToken("Bearer $token")
runOnUiThread {
val checkToken = response.body()
val user1 = response.code()
val userCode = response.isSuccessful()
Log.i("12213213213", user1.toString())
if (userCode) {
Main()
} else {
Auth()
}
}
}
}
//Инициализируем Retrofit
private fun initRetrofit() {
val interceptor = HttpLoggingInterceptor()
interceptor.level = HttpLoggingInterceptor.Level.BODY
val client = OkHttpClient
.Builder()
.addInterceptor(interceptor)
.build()
val retrofit = Retrofit.Builder()
.baseUrl("http://mobileapp.vmeda.org/api/")
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build()
patientApi = retrofit.create(PatientApi::class.java)
}
private fun fragment_inicializ() {
//Вывод фрагмента на активити при первоначальной загрузке
supportFragmentManager.beginTransaction()
.replace(R.id.CLMain, MainFragment.newInstance())
.commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
}
// override fun onBackPressed() {
// val fragment =
// this.supportFragmentManager.findFragmentById(R.id.placeHolderFragment)
// (fragment as? IOnBackPressed)?.onBackPressed()?.not()?.let {
// if (backPressedTime + 3000 > System.currentTimeMillis()) {
// super.onBackPressed()
// finish()
// } else {
// AlertDialog.Builder(this@MainActivity)
// .setTitle("Выйти")
// .setMessage("Вы точно хотите выйти из приложения?")
// .setPositiveButton("Да") { dialog, whichButton ->
// super.onBackPressed()
// }
// .setNegativeButton("Нет") { dialog, whichButton ->
//
// }
// .show()
// }
// }
// override fun onBackPressed() {
// AlertDialog.Builder(this).apply {
// setTitle("Подтверждение")
// setMessage("Вы уверены, что хотите выйти из программы?")
//
// setPositiveButton("Таки да") { _, _ ->
// super.onBackPressed()
// }
//
// setNegativeButton("Нет"){_, _ ->
// // if user press no, then return the activity
// Toast.makeText(this@MainActivity, "Thank you",
// Toast.LENGTH_LONG).show()
// }
// setCancelable(true)
// }.create().show()
// backPressedTime = System.currentTimeMillis()
// }
//Инициализация хранилища(для токена) и проверяем есть ли аккаунт и или перекидываем в авторизацую или остаемся на данном экране
fun data_prefUserPatientToken() {
prefUserPatientToken = getSharedPreferences("UserPatientToken", Context.MODE_PRIVATE)
UserPatientToken = prefUserPatientToken?.getString("userpatienttoken", "")!! //Передаем при запуске страницы в counter данные по ключевому слову "counter", вс лучае если будет пусто то передастся 0
prefPatientDoctorNew = getSharedPreferences("PatientDoctorNew", Context.MODE_PRIVATE)
PatientDoctorNew = prefPatientDoctorNew?.getInt("patientdoctornew", 0)!! //Передаем при запуске страницы в counter данные по ключевому слову "counter", вс лучае если будет пусто то передастся 0
if (UserPatientToken == ""){
if(PatientDoctorNew == 1){
val intetn = Intent(this, AuthorizationActivity::class.java)
startActivity(intetn)
}
else{
val intetn = Intent(this, AuthDoctorActivity::class.java)
startActivity(intetn)
}
}
else{
//Toast.makeText(this, "Добро пожаловать", Toast.LENGTH_SHORT).show()
}
}
//Записываем число
fun saveUserPatientToken(userpatienttoken: String) {
val editer = prefUserPatientToken?.edit()
editer?.putString("userpatienttoken", userpatienttoken)
editer?.apply()
UserPatientToken = userpatienttoken
}
override fun onDestroy() {
super.onDestroy()
finish()
@ -240,40 +143,8 @@ class MainActivity : AppCompatActivity() {
}
//Инициализация фрагментов
fun fragment_inicializ() {
//Вывод фрагмента на активити при первоначальной загрузке
supportFragmentManager.beginTransaction()
.replace(R.id.placeHolderFragment, SceduleFragment.newInstance())
.commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
//Эран который будет выбран по умолчанию(кнопка которая будет прожата по умолчанию)
binding.buttonNavigation.selectedItemId = R.id.schedule//По умолчанию и так первая, но на всякий случай выберу еще програмным путем первую ячейку
//Нажатие на bottom navigation
binding.buttonNavigation.setOnItemSelectedListener {
when (it.itemId) {//it.itemId - это id нажатого элемента
R.id.schedule -> {
supportFragmentManager.beginTransaction().replace(R.id.placeHolderFragment, SceduleFragment.newInstance()).commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
}
R.id.calendar -> {
supportFragmentManager.beginTransaction().replace(R.id.placeHolderFragment, CalendarFragment.newInstance()).commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
}
// R.id.home -> {//Если вы не авторизованный пользваотель то вам не будет доступен доступ к данном фрагменту
// supportFragmentManager.beginTransaction().replace(R.id.placeHolderFragment, HomeFragment.newInstance()).commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
// }
R.id.progress -> {//Если вы не авторизованный пользваотель то вам не будет доступен доступ к данном фрагменту
supportFragmentManager.beginTransaction().replace(R.id.placeHolderFragment, ProgresFragment.newInstance()).commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
}
// R.id.information -> {//Если вы не авторизованный пользваотель то вам не будет доступен доступ к данном фрагменту
// supportFragmentManager.beginTransaction().replace(R.id.placeHolderFragment, InformationFragment.newInstance()).commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
// }
}
true
}
}
}

View File

@ -0,0 +1,168 @@
package com.example.rehabilitation
import android.annotation.SuppressLint
import android.icu.text.SimpleDateFormat
import android.icu.util.Calendar
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.viewModels
import androidx.lifecycle.LifecycleOwner
import com.example.rehabilitation.Calendare.CalendarFragment
import com.example.rehabilitation.Information.InformationFragment
import com.example.rehabilitation.Progress.ProgresFragment
import com.example.rehabilitation.Setting.SettingFragment
import com.example.rehabilitation.Sport.SceduleFragment
import com.example.rehabilitation.databinding.FragmentMainBinding
import com.example.rehabilitation.model_adapter.DataModel
import java.util.Date
class MainFragment : Fragment() {
private lateinit var binding: FragmentMainBinding
private val dataModel: DataModel by viewModels()//Для передачи данных
@SuppressLint("SimpleDateFormat")
var sdf: SimpleDateFormat = SimpleDateFormat("EEEE")
var d: Date = Date()
var dayOfTheWeek: String = sdf.format(d)
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentMainBinding.inflate(layoutInflater,container,false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
if(isAdded) {
main_inicializ()
}
}
fun main_inicializ(){
dataModel.fragmentMenu.observe(this as LifecycleOwner, {
binding.buttonNavigation.selectedItemId = it
})
//Функция инициализации фрагметов
fragment_inicializ()
binding.btnSetting.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()
?.replace(R.id.CLMain, SettingFragment.newInstance())
//?.addToBackStack(null)
?.commit()
}
binding.btnInformation.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()
?.replace(R.id.CLMain, InformationFragment.newInstance())
//?.addToBackStack(null)
?.commit()
}
//Выводим сегоднящнюю дату
addDate()
}
//Инициализация фрагментов
fun fragment_inicializ() {
//Вывод фрагмента на активити при первоначальной загрузке
activity?.supportFragmentManager?.beginTransaction()
?.replace(R.id.placeHolderFragment, SceduleFragment.newInstance())
?.commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
//Эран который будет выбран по умолчанию(кнопка которая будет прожата по умолчанию)
binding.buttonNavigation.selectedItemId = R.id.schedule//По умолчанию и так первая, но на всякий случай выберу еще програмным путем первую ячейку
//Нажатие на bottom navigation
binding.buttonNavigation.setOnItemSelectedListener {
when (it.itemId) {//it.itemId - это id нажатого элемента
R.id.schedule -> {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.placeHolderFragment, SceduleFragment.newInstance())?.commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
}
R.id.calendar -> {
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.placeHolderFragment, CalendarFragment.newInstance())?.commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
}
R.id.progress -> {//Если вы не авторизованный пользваотель то вам не будет доступен доступ к данном фрагменту
activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.placeHolderFragment, ProgresFragment.newInstance())?.commit()//Заменяем наш экран на фрагмент (используем наш экран как основу)//R.id.placeHolder - куда всталяем //MainFragment.newInstance() - это то что мы вставляем
}
}
true
}
}
private fun addDate() {
val calendar: Calendar = Calendar.getInstance()
val sdf: SimpleDateFormat = SimpleDateFormat("EEEE")
val d: Date = Date()
val DayOfTheWeek: String = sdf.format(d)
val Day = calendar.get(Calendar.DATE)
val Month = calendar.get(Calendar.MONTH).plus(1)
var day = Day.toString()
var month = ""
var date_of_the_week = ""
when (Month) {
1 -> month="Январь"
2 -> month="Февраль"
3 -> month="Март"
4 -> month="Апрель"
5 -> month="Май"
6 -> month="Июнь"
7 -> month="Июль"
8 -> month="Август"
9 -> month="Сентябрь"
10 -> month="Октябрь"
11 -> month="Ноябрь"
12 -> month="Декабрь"
else -> { // обратите внимание на блок
month=""
}
}
when (dayOfTheWeek) {
"Monday" -> date_of_the_week="Пн"
"Tuesday" -> date_of_the_week="Вт"
"Wednesday" -> date_of_the_week="Ср"
"Thursday" -> date_of_the_week="Чт"
"Friday" -> date_of_the_week="Пт"
"Saturday" -> date_of_the_week="Сб"
"Sunday" -> date_of_the_week="Вс"
"Понедельник" -> date_of_the_week="Пн"
"Вторник" -> date_of_the_week="Вт"
"Стреда" -> date_of_the_week="Ср"
"Четверг" -> date_of_the_week="Чт"
"Пятница" -> date_of_the_week="Пт"
"Суббота" -> date_of_the_week="Сб"
"Воскресенье" -> date_of_the_week="Вс"
else -> {
date_of_the_week=""
}
}
System.out.println(calendar.get(Calendar.DATE))
binding.txtDate.setText("${day}" +" "+ "${month}")
}
companion object {
fun newInstance() = MainFragment()
}
}

View File

@ -0,0 +1,6 @@
package com.example.rehabilitation
data class MessageModel(
val message: String,
)

View File

@ -0,0 +1,141 @@
package com.example.rehabilitation.Mysorka
import android.os.Bundle
import android.util.Log
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.activityViewModels
import androidx.lifecycle.asLiveData
import androidx.recyclerview.widget.GridLayoutManager
import com.example.rehabilitation.R
import com.example.rehabilitation.databinding.FragmentHomeBinding
import com.example.rehabilitation.dateHomeCalendare
import com.example.rehabilitation.model_adapter.DataModel
import com.example.rehabilitation.Sport.DayAdapter
import com.example.rehabilitation.Sport.DayListModel
import com.example.rehabilitation.Sport.SportForDayModel
import com.example.rehabilitation.model_adapter.modelCount.CountDayModel
import com.example.sqlitework.dip.MainViewModel
import java.time.LocalDate
class HomeFragment : Fragment()/*, DayAdapter.Listener*/ {
private lateinit var binding: FragmentHomeBinding
// private val model: MainViewModel by activityViewModels()//Инициализировали класс
// lateinit var adapterDay: DayAdapter
// //private val dataModel: DataModel by activityViewModels()//Для передачи данных
// private val dataModel: DataModel by activityViewModels()//Для передачи данных
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentHomeBinding.inflate(layoutInflater,container,false)
return binding.root
}
//
// override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
// super.onViewCreated(view, savedInstanceState)
// initRcViewDay()
//
// model.liveDayList.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
// adapterDay.submitList(it)//Напрямую переадем созданный список в adapter(ProductAdapter)
// }
//
// progresMonthAndDay()
// liveCountDayCurrent()
// addListModelCardsDay(LocalDate.now().toString())
// }
//
// //Инициализация экрана уведобляющего о том что курса нету
// fun viewSportNo(){
//
// }
//
//
// //Заполнения модели и списка
// private fun addListModelCardsDay(day:String){
//
//// val db = MainDB.getDB(requireContext())
//// val list = ArrayList<DayListModel>()
//// 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
// }
}

View File

@ -0,0 +1,14 @@
package com.example.rehabilitation
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import com.example.rehabilitation.Sport.SportDayOneModel
class PatientViewModel: ViewModel() {
val token = MutableLiveData<String>()
val liveDaySportOne = MutableLiveData<SportDayOneModel>()
// val productList = MutableLiveData<List<Product>>()
}

View File

@ -0,0 +1,14 @@
package com.example.rehabilitation.Pref
import android.content.Context
import android.content.SharedPreferences
class ClearPref() {
fun clearToken(context: Context) {
val prefDoctor: SharedPreferences = context.getSharedPreferences("PATIENT", Context.MODE_PRIVATE)
val edit = prefDoctor.edit()
edit?.clear()
edit?.apply()
}
}

View File

@ -0,0 +1,13 @@
package com.example.rehabilitation.Pref
import android.content.Context
import android.content.SharedPreferences
class ConclusionPref() {
fun conclusionToken(context: Context):String {
val prefDoctor: SharedPreferences = context.getSharedPreferences("PATIENT", Context.MODE_PRIVATE)
val token = prefDoctor.getString("token", "")
return token.toString()
}
}

View File

@ -0,0 +1,14 @@
package com.example.rehabilitation.Pref
import android.content.Context
import android.content.SharedPreferences
class SavePref (){
fun saveToken(context: Context,token: String) {
val prefPatient: SharedPreferences = context.getSharedPreferences("PATIENT", Context.MODE_PRIVATE)
val edit = prefPatient.edit()
prefPatient.edit().putString("token", token).apply()
}
}

View File

@ -1,4 +1,4 @@
package com.example.rehabilitation.model_adapter.Progress
package com.example.rehabilitation.Progress
data class AfterListModel(
val id: Int,

View File

@ -1,4 +1,4 @@
package com.example.rehabilitation.model_adapter.Progress
package com.example.rehabilitation.Progress
data class BeforeListModel(
val id: Int,

View File

@ -0,0 +1,142 @@
package com.example.rehabilitation.Progress
import android.content.Context
import android.content.SharedPreferences
import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import androidx.recyclerview.widget.LinearLayoutManager
import com.example.rehabilitation.Pref.ConclusionPref
import com.example.rehabilitation.Retrofit.PatientApi
import com.example.rehabilitation.databinding.FragmentProgresBinding
import com.example.rehabilitation.listCalendare
import com.example.rehabilitation.listProgressCheck
import com.example.sqlitework.dip.MainViewModel
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import okhttp3.OkHttpClient
import okhttp3.logging.HttpLoggingInterceptor
import org.json.JSONObject
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
class ProgresFragment : Fragment() {
private lateinit var binding: FragmentProgresBinding
private val model: MainViewModel by activityViewModels()//Инициализировали класс
//Хранинение токена
private var prefToken: SharedPreferences? = null
private var Token = ""
private lateinit var patientApi: PatientApi
lateinit var adapterProgress: ProgressAdapter
var view_progress = false
val prefPatientConclusion = ConclusionPref()
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentProgresBinding.inflate(layoutInflater, container, false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
prefToken = activity?.getSharedPreferences("token", Context.MODE_PRIVATE)
Token = prefToken?.getString("token", "")!!
model.liveProgressCheckList.observe(viewLifecycleOwner) {//viewLifecycleOwner - следит за циклом жизни fragment
adapterProgress.submitList(it)//Напрямую переадем созданный список в adapter(ProductAdapter)
visible1()
}
initRetrofit()
initRCView()
visibleLoad()
AddProgresSportDayList()
}
//Функция получения данных для заполнения списка прогресса
private fun initRetrofit() {
val interceptor = HttpLoggingInterceptor()
interceptor.level = HttpLoggingInterceptor.Level.BODY
val client = OkHttpClient
.Builder()
.addInterceptor(interceptor)
.build()
val retrofit = Retrofit.Builder()
.baseUrl("http://mobileapp.vmeda.org/api/")
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build()
patientApi = retrofit.create(PatientApi::class.java)
}
//Инициализация подлючения к серверу
fun AddProgresSportDayList() {
if (view_progress == false) {
view_progress = true
visibleLoad()
initRetrofit()
val Tokens = prefPatientConclusion.conclusionToken(requireContext())
CoroutineScope(Dispatchers.IO).launch {
val progress = patientApi.ProgressPatientCourses("Bearer $Tokens")
activity?.runOnUiThread {
//Фиксируем полученные данные
val progressMes = progress.body()
val progressMesCode = progress.isSuccessful()
//Если нету ошибок
if (progressMesCode) {
model.liveProgressCheckList.value = progressMes?.search_check_sport
binding.txtLoadProgres.visibility = View.GONE
}
else{
binding.txtLoadProgres.visibility = View.VISIBLE
visible1()
}
}
}
}
}
private fun initRCView() = with(binding) {
rcViewProgress.layoutManager = LinearLayoutManager(
requireContext(),
LinearLayoutManager.VERTICAL,
false
)//По вертикали будет выводить по умолчанию
adapterProgress = ProgressAdapter()
rcViewProgress.adapter = adapterProgress
}
fun visible1() {
binding.CLMainProgres.visibility = View.VISIBLE
binding.CLLoad.visibility = View.GONE
}
fun visibleLoad() {
binding.CLMainProgres.visibility = View.GONE
binding.CLLoad.visibility = View.VISIBLE
}
companion object {
fun newInstance() = ProgresFragment()
}
}

View File

@ -0,0 +1,75 @@
package com.example.rehabilitation.Progress
import android.annotation.SuppressLint
import android.graphics.Color
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
import com.example.rehabilitation.R
import com.example.rehabilitation.databinding.RcItemProgressBinding
class ProgressAdapter() : ListAdapter<ProgressModel, ProgressAdapter.Holder>(Comparator()) {//Productitem - по этой форме будем заполнять.//ProductAdapter.holder - это создаваемый holder который хранит логику как нужно заполнять карточку
//В holder создаетс код с помошью которого мы будем заполнять и сохронять разметку
class Holder(view: View) :
RecyclerView.ViewHolder(view) {//Класс который будет хранить сссылки на элементы, и отвечает за один элемент за 1 раз, то есть сначсало нулевой элемент заполнит, потом первый, потом второй и т.д.
//Для передачи данных
val binding =
RcItemProgressBinding.bind(view)//view - здесь храянтся элементы и мы их bind заполним в ListItemBinding//ListItemBinding - это клласс даннйо разметки(карточки) которую мы будем заполнять, а нужна дання переменная(binding), чтобы мжно было при заполнение обращатся к элементам карточки
var itemTemp: ProgressModel? =
null//Глобальная переменная для нашего item, чтобы можно было передать данные для нажатия
@SuppressLint("SuspiciousIndentation", "SetTextI18n")
fun bind(item: ProgressModel) = with(binding) {//Productitem - перпедаем данные
itemTemp = item
txtDate.text = item.id.toString() + ". " + item.day + ": "
txtProgress.text = item.count.toString() + "/" + item.count_workout_max.toString()
if (item.count_workout_max != item.count) {
CardViewDay.setCardBackgroundColor(Color.parseColor("#1993FF"))
} else {
CardViewDay.setCardBackgroundColor(Color.parseColor("#98EA88"))
}
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Holder {
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.rc_item_progress, parent, false)//Создаем(надуваем) list_item
return Holder(view)//Через Holder возврощаем view
}
override fun onBindViewHolder(holder: Holder, position: Int) {
val view = holder.bind(getItem(position))//Заполняем по позиции карточку
}
//Comparator - сравнивает старый список и новый и если что-то изменилось, то работает с конкретным изменением списке, а не весь список переписывает
class Comparator : DiffUtil.ItemCallback<ProgressModel>() {
override fun areItemsTheSame(
oldItem: ProgressModel,
newItem: ProgressModel
): Boolean {//Тут лучше всего сравнивать по id//oldItem - элементы старого списка, newItem - элементы нового списка//Возврощает Boolean, тоесть есть изменения или нет
return oldItem.id == newItem.id//Сравниваем полностью весь список новы и старый, по очередно по одной карточке и по элементно, то есть нулевой элемент, первый, второй и т.д.. Но лучше сравнивать по id списки, а не просто весь список, так как это эфективнее, так как id уникальный(oldItem.id == newItem.id)
}
override fun areContentsTheSame(
oldItem: ProgressModel,
newItem: ProgressModel
): Boolean {//Утут нужно сравнивать весь спсок старых элементов и новых
return oldItem == newItem//Сравниваем полностью весь список новы и старый
}
}
}

View File

@ -0,0 +1,6 @@
package com.example.rehabilitation.Progress
data class ProgressListModel(
val search_check_sport: List<ProgressModel>,
)

View File

@ -0,0 +1,12 @@
package com.example.rehabilitation.Progress
data class ProgressModel(
val number: Int,
val id: Int,
val day: String,
var count_workout_max: Int,
var count: Int,
val finish: Int,
)

View File

@ -0,0 +1,6 @@
package com.example.rehabilitation.Questionnaire.Model
data class AfterQuestionnaireMessage(
val message: Int,
)

View File

@ -0,0 +1,17 @@
package com.example.rehabilitation.Questionnaire.Model
data class AfterQuestionnaireModel(
val one: Int,
val two: Int,
val thee: Int,
val four: Int,
val five: Int,
val six: Int,
val seven: Int,
val eight: Int,
val nine: Int,
val ten: Int,
val eleven: Int,
val twelve: Int,
)

View File

@ -0,0 +1,6 @@
package com.example.rehabilitation.Questionnaire.Model
data class BeforeQuestionnaireMessage(
val message: Int,
)

View File

@ -0,0 +1,14 @@
package com.example.rehabilitation.Questionnaire.Model
data class BeforeQuestionnaireModel(
val one: Int,
val two: Int,
val thee: Int,
val four: Int,
val five: Int,
val six: Int,
val seven: Int,
val eight: Int,
val nine: Int,
)

View File

@ -0,0 +1,6 @@
package com.example.rehabilitation.Questionnaire.Model
data class QuestionnaireModel(
val massage: String,
)

View File

@ -1,71 +1,51 @@
package com.example.rehabilitation.User.fragmentUser.QuestionnaireFragment
package com.example.rehabilitation.Questionnaire.QuestionnaireFragment
import android.app.AlertDialog
import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.net.Uri
import android.os.Bundle
import android.provider.Settings
import android.util.Log
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import com.example.admin.Toast.showCustomDangerToast
import com.example.admin.Toast.showCustomInfoToast
import com.example.admin.Toast.showCustomNiceToast
import com.example.rehabilitation.Block
import com.example.rehabilitation.DayAfter
import com.example.rehabilitation.DayBefore
import com.example.rehabilitation.PauseDay
import com.example.rehabilitation.Pref.ConclusionPref
import com.example.rehabilitation.Questionnaire.Model.AfterQuestionnaireModel
import com.example.rehabilitation.R
import com.example.rehabilitation.Room.MainDB
import com.example.rehabilitation.Room.Questionnaire.After.ItemAfterQuestionnaire
import com.example.rehabilitation.Room.Questionnaire.Before.ItemBeforeQuestionnaire
import com.example.rehabilitation.Sport15Day
import com.example.rehabilitation.Sport15DayAll
import com.example.rehabilitation.Sport7Day
import com.example.rehabilitation.SportCursDay
import com.example.rehabilitation.SportCursDayDangerAfter
import com.example.rehabilitation.SportCursDayDangerBefore
import com.example.rehabilitation.SportCursDayNumber
import com.example.rehabilitation.SportPlusCount
import com.example.rehabilitation.User.fragmentUser.SceduleFragment
import com.example.rehabilitation.countSport
import com.example.rehabilitation.Retrofit.PatientApi
import com.example.rehabilitation.Sport.SceduleFragment
import com.example.rehabilitation.databinding.FragmentQAfterBinding
import com.example.rehabilitation.prefBlock
import com.example.rehabilitation.prefCursDangerDayAfter
import com.example.rehabilitation.prefCursDangerDayBefore
import com.example.rehabilitation.prefCursDay
import com.example.rehabilitation.prefDayAfter
import com.example.rehabilitation.prefDayBefore
import com.example.rehabilitation.prefPauseDay
import com.example.rehabilitation.prefSport15Day
import com.example.rehabilitation.prefSport15DayAll
import com.example.rehabilitation.prefSport7Day
import com.example.rehabilitation.prefSportCursDayNumber
import com.example.rehabilitation.questionnaire_after
import com.example.rehabilitation.questionnaire_before
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import okhttp3.OkHttpClient
import okhttp3.logging.HttpLoggingInterceptor
import org.json.JSONObject
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import java.time.LocalDate
class QAfterFragment : Fragment() {
private lateinit var binding: FragmentQAfterBinding
private lateinit var patientApi: PatientApi
val prefPatientConclusion = ConclusionPref()
var one = ""
var two = ""
var thee = ""
var four = ""
var five = ""
var six = ""
var seven = ""
var eight = ""
var nine = ""
var ten = ""
var eleven = ""
var twelve = ""
var one = 100
var two = 100
var thee = 100
var four =100
var five =100
var six =100
var seven = 100
var eight = 100
var nine = 100
var ten =100
var eleven = 100
var twelve = 100
override fun onCreateView(
@ -82,51 +62,8 @@ class QAfterFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
Log.d("lookDanger", "lookDanger")
Log.d("SportCursDayDangerAfter", "${SportCursDayDangerAfter}")
Log.d("SportCursDay", "${SportCursDay}")
Log.d("SportCursDayDangerBefore", "${SportCursDayDangerBefore}")
prefCursDay = activity?.getSharedPreferences("SportCursDay", Context.MODE_PRIVATE)
SportCursDay = prefCursDay?.getInt("scd", 0)!!
prefCursDangerDayAfter =
activity?.getSharedPreferences("CursDangerDayAfter", Context.MODE_PRIVATE)
SportCursDayDangerAfter = prefCursDangerDayAfter?.getInt("cdda", 0)!!
prefCursDangerDayBefore =
activity?.getSharedPreferences("CursDangerDayBefore", Context.MODE_PRIVATE)
SportCursDayDangerBefore = prefCursDangerDayBefore?.getInt("cddb", 0)!!
//Какой сегодня курс
prefSportCursDayNumber =
activity?.getSharedPreferences("SportCursDayNumber", Context.MODE_PRIVATE)
SportCursDayNumber = prefSportCursDayNumber?.getInt("scdn", 0)!!
//Для анкет, какие выполнены
prefPauseDay = activity?.getSharedPreferences("PauseDay", Context.MODE_PRIVATE)
PauseDay = prefPauseDay?.getString("pd", "")!!
prefBlock = activity?.getSharedPreferences("Block", Context.MODE_PRIVATE)
Block = prefBlock?.getString("b", "")!!
//Для анкет, какие выполнены
prefDayBefore = activity?.getSharedPreferences("DayBefore", Context.MODE_PRIVATE)
DayBefore = prefDayBefore?.getString("db", "")!!
prefDayAfter = activity?.getSharedPreferences("DayAfter", Context.MODE_PRIVATE)
DayAfter = prefDayAfter?.getString("da", "")!!
//Пройдено ли 15 дне и отправен отчет
prefSport15DayAll = activity?.getSharedPreferences("Sport15DayAll", Context.MODE_PRIVATE)
Sport15DayAll = prefSport15DayAll?.getInt("s15da", 0)!!
//Отчет на 15 день
prefSport15Day = activity?.getSharedPreferences("Sport15Day", Context.MODE_PRIVATE)
Sport15Day = prefSport15Day?.getInt("s15d", 0)!!
//Отчет на 7 день
prefSport7Day = activity?.getSharedPreferences("Sport7Day", Context.MODE_PRIVATE)
Sport7Day = prefSport7Day?.getInt("s7d", 0)!!
buttenAdd()
@ -138,14 +75,26 @@ class QAfterFragment : Fragment() {
//Сохраняем результат
binding.btnSaveQuestionnaire.setOnClickListener {
if (one != "" && two != "" && thee != "" && four != "" && five != "" && six != "" && seven != "" && eight != "" && nine != "" && ten != "" && eleven != "" && twelve != "") {
if (one != 100 && two != 100 && thee != 100 && four != 100 && five != 100 && six != 100 && seven != 100 && eight != 100 && nine != 100 && ten != 100 && eleven != 100 && twelve != 100) {
if(ten == "1"){
if(nine == 1){
AlertDialog.Builder(requireContext())
.setTitle("Анкета")
.setMessage("Уверены ли Вы в выбранных ответах на вопросы анкеты? Халатное отношение к вопросам анкеты приведет к блокировке комплекса")
.setNeutralButton("Подтвердить") { dialog, whichButton ->
addQuestionnaire()
addQuestionAfter()
}
.setNegativeButton("Отмена") { dialog, whichButton ->
}
.show()
}
else if(one >=6 && thee == 0 && six == 1 && eight == 1 && eleven == 1){
AlertDialog.Builder(requireContext())
.setTitle("Анкета")
.setMessage("Уверены ли Вы в выбранных ответах на вопросы анкеты? Халатное отношение к вопросам анкеты приведет к паузе комплекса")
.setNeutralButton("Подтвердить") { dialog, whichButton ->
addQuestionAfter()
}
.setNegativeButton("Отмена") { dialog, whichButton ->
@ -153,10 +102,8 @@ class QAfterFragment : Fragment() {
.show()
}
else{
addQuestionnaire()
addQuestionAfter()
}
} else {
Toast(requireContext()).showCustomInfoToast(
"Не все пункты выбраны",
@ -164,37 +111,11 @@ class QAfterFragment : Fragment() {
)
}
}
}
//Функция
fun addQuestionnaire(){
clearSportCursDayDangerBefore()
if(ten == "1"){
saveBlock(LocalDate.now().plusDays(3).toString())
saveSportCursDayDangerAfter(2)
Log.d("saveSportCursDayDangerAfter","${2}")
addQuestionAfter()
}
else if (one >= "6" || thee == "0"||six == "1"||eight == "1"||eleven == "1") {
savePauseDay(LocalDate.now().plusDays(1).toString())
saveSportCursDayDangerAfter(1)
addQuestionAfter()
}
else{
clearSportCursDayDangerBefore()
clearSportCursDayDangerAfter()
addQuestionAfter()
}
}
fun addQuestionAfter() {
val db = MainDB.getDB(requireContext())
val item = ItemAfterQuestionnaire(
null,
val item = AfterQuestionnaireModel(
one,
two,
thee,
@ -207,157 +128,60 @@ class QAfterFragment : Fragment() {
ten,
eleven,
twelve,
LocalDate.now().toString()
)
Thread {
db.getDaoQA().insertAQ(item)
db.getDao().updateDay(LocalDate.now().toString(), (SportCursDay - 1).toString())
}.start()
saveDayAfter(LocalDate.now().toString())
AfterQuestionnaire(item)
}
//Инициализация подлючения к серверу
private fun initRetrofit() {
val interceptor = HttpLoggingInterceptor()
interceptor.level = HttpLoggingInterceptor.Level.BODY
val client = OkHttpClient
.Builder()
.addInterceptor(interceptor)
.build()
val retrofit = Retrofit.Builder()
.baseUrl("http://mobileapp.vmeda.org/api/")
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build()
patientApi = retrofit.create(PatientApi::class.java)
}
//Получения списка пациентов
fun AfterQuestionnaire(item:AfterQuestionnaireModel) {
initRetrofit()
val Tokens = prefPatientConclusion.conclusionToken(requireContext())
CoroutineScope(Dispatchers.IO).launch {
val QA = patientApi.AddAfterQuestionnaire2("Bearer $Tokens",item)
requireActivity().runOnUiThread {
//Фиксируем полученные данные
val AQList = QA.body()
//Если нету ошибок
if (AQList != null) {
Toast(requireContext()).showCustomInfoToast(AQList.message, requireActivity())
}
else{
if (AQList != null) {
Toast(requireContext()).showCustomInfoToast(AQList.message, requireActivity())
}
}
activity?.supportFragmentManager?.beginTransaction()
?.replace(R.id.placeHolderFragment, SceduleFragment.newInstance())?.commit()
}
if (SportCursDay == 7 && Sport7Day == 0) {
saveSport7Day(1)
} else if (SportCursDay == 15 && Sport15Day == 0) {
saveSport15Day(1)
}
// questionnaire_after = LocalDate.now().toString()
// questionnaire_before = LocalDate.now().toString()
// //QBSaveDataB(LocalDate.now().toString())
// //Log.d("aaaaaa",questionnaire?.getString("QB", "")!!.toString())
activity?.supportFragmentManager?.beginTransaction()
?.replace(R.id.placeHolderFragment, SceduleFragment.newInstance())?.commit()
}
fun saveSport15Day(s15d: Int) {
val edit = prefSport15Day?.edit()
edit?.putInt("s15d", s15d)
edit?.apply()
Sport15Day = s15d
}
fun clearSport15Day() {
val edit = prefSport15Day?.edit()
edit?.clear()
edit?.apply()
Sport15Day = 0
}
fun saveSport7Day(s7d: Int) {
val edit = prefSport7Day?.edit()
edit?.putInt("s7d", s7d)
edit?.apply()
Sport7Day = s7d
}
fun clearSport7Day() {
val edit = prefSport7Day?.edit()
edit?.clear()
edit?.apply()
Sport7Day = 0
}
fun savePauseDay(pd: String) {
val edit = prefPauseDay?.edit()
edit?.putString("pd", pd)
edit?.apply()
PauseDay = pd
}
fun clearPauseDay() {
val edit = prefPauseDay?.edit()
edit?.clear()
edit?.apply()
PauseDay = ""
}
fun saveBlock(b: String) {
val edit = prefBlock?.edit()
edit?.putString("b", b)
edit?.apply()
Block = b
}
fun clearBlock() {
val edit = prefBlock?.edit()
edit?.clear()
edit?.apply()
Block = ""
}
fun saveDayBefore(db: String) {
val edit = prefDayBefore?.edit()
edit?.putString("db", db)
edit?.apply()
DayBefore = db
}
fun clearDayBefore() {
val edit = prefDayBefore?.edit()
edit?.clear()
edit?.apply()
DayBefore = ""
}
fun saveDayAfter(da: String) {
val edit = prefDayAfter?.edit()
edit?.putString("da", da)
edit?.apply()
DayAfter = da
}
fun clearDayAfter() {
val edit = prefDayAfter?.edit()
edit?.clear()
edit?.apply()
DayAfter = ""
}
fun saveSportCursDay(scd: Int) {
val edit = prefCursDay?.edit()
edit?.putInt("scd", scd)
edit?.apply()
SportCursDay = scd
}
fun clearSportCursDay() {
val edit = prefCursDay?.edit()
edit?.clear()
edit?.apply()
SportCursDay = 0
}
fun saveSportCursDayDangerBefore(cddb: Int) {
val edit = prefCursDangerDayBefore?.edit()
edit?.putInt("cddb", cddb)
edit?.apply()
SportCursDayDangerBefore = cddb
}
fun clearSportCursDayDangerBefore() {
val edit = prefCursDangerDayBefore?.edit()
edit?.clear()
edit?.apply()
SportCursDayDangerBefore = 0
}
fun saveSportCursDayDangerAfter(cdda: Int) {
val edit = prefCursDangerDayAfter?.edit()
edit?.putInt("cdda", cdda)
edit?.apply()
SportCursDayDangerAfter = cdda
}
fun clearSportCursDayDangerAfter() {
val edit = prefCursDangerDayAfter?.edit()
edit?.clear()
edit?.apply()
SportCursDayDangerAfter = 0
}
private fun buttenAdd() {
buttenAdd1()
@ -386,7 +210,7 @@ class QAfterFragment : Fragment() {
binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
one = "0"
one = 0
}
binding.CVQ11.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
@ -399,7 +223,7 @@ class QAfterFragment : Fragment() {
binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
one = "1"
one = 1
}
binding.CVQ12.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
@ -412,7 +236,7 @@ class QAfterFragment : Fragment() {
binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
one = "2"
one = 2
}
binding.CVQ13.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
@ -425,7 +249,7 @@ class QAfterFragment : Fragment() {
binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
one = "3"
one = 3
}
binding.CVQ14.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
@ -439,7 +263,7 @@ class QAfterFragment : Fragment() {
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
one = "4"
one = 4
}
binding.CVQ15.setOnClickListener {
@ -454,7 +278,7 @@ class QAfterFragment : Fragment() {
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
one = "5"
one = 5
}
binding.CVQ16.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
@ -468,7 +292,7 @@ class QAfterFragment : Fragment() {
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
one = "6"
one = 6
}
binding.CVQ17.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
@ -482,7 +306,7 @@ class QAfterFragment : Fragment() {
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
one = "7"
one = 7
}
binding.CVQ18.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
@ -496,7 +320,7 @@ class QAfterFragment : Fragment() {
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
one = "8"
one = 8
}
binding.CVQ19.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
@ -510,7 +334,7 @@ class QAfterFragment : Fragment() {
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
one = "9"
one = 9
}
binding.CVQ110.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
@ -524,7 +348,7 @@ class QAfterFragment : Fragment() {
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ110.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
one = "10"
one = 10
}
}
@ -532,12 +356,12 @@ class QAfterFragment : Fragment() {
binding.CVQyes2.setOnClickListener {
binding.CVQyes2.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno2.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
two = "1"
two = 1
}
binding.CVQno2.setOnClickListener {
binding.CVQyes2.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno2.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
two = "0"
two = 0
}
}
@ -546,12 +370,12 @@ class QAfterFragment : Fragment() {
Log.d("CVQyes3", "CVQyes3")
binding.CVQyes3.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno3.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
thee = "1"
thee = 1
}
binding.CVQno3.setOnClickListener {
binding.CVQyes3.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno3.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
thee = "0"
thee = 0
}
}
@ -559,12 +383,12 @@ class QAfterFragment : Fragment() {
binding.CVQyes4.setOnClickListener {
binding.CVQyes4.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno4.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
four = "1"
four = 1
}
binding.CVQno4.setOnClickListener {
binding.CVQyes4.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno4.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
four = "0"
four = 0
}
}
@ -572,12 +396,12 @@ class QAfterFragment : Fragment() {
binding.CVQyes5.setOnClickListener {
binding.CVQyes5.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno5.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
five = "1"
five = 1
}
binding.CVQno5.setOnClickListener {
binding.CVQyes5.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno5.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
five = "0"
five = 0
}
}
@ -585,12 +409,12 @@ class QAfterFragment : Fragment() {
binding.CVQyes6.setOnClickListener {
binding.CVQyes6.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno6.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
six = "1"
six = 1
}
binding.CVQno6.setOnClickListener {
binding.CVQyes6.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno6.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
six = "0"
six =0
}
}
@ -598,12 +422,12 @@ class QAfterFragment : Fragment() {
binding.CVQyes7.setOnClickListener {
binding.CVQyes7.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno7.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
seven = "1"
seven = 1
}
binding.CVQno7.setOnClickListener {
binding.CVQyes7.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno7.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
seven = "0"
seven =0
}
}
@ -611,12 +435,12 @@ class QAfterFragment : Fragment() {
binding.CVQyes8.setOnClickListener {
binding.CVQyes8.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno8.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
eight = "1"
eight = 1
}
binding.CVQno8.setOnClickListener {
binding.CVQyes8.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno8.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
eight = "0"
eight = 0
}
}
@ -624,12 +448,12 @@ class QAfterFragment : Fragment() {
binding.CVQyes9.setOnClickListener {
binding.CVQyes9.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno9.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
nine = "1"
nine = 1
}
binding.CVQno9.setOnClickListener {
binding.CVQyes9.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno9.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
nine = "0"
nine = 0
}
}
@ -637,12 +461,12 @@ class QAfterFragment : Fragment() {
binding.CVQyes10.setOnClickListener {
binding.CVQyes10.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
ten = "1"
ten = 1
}
binding.CVQno10.setOnClickListener {
binding.CVQyes10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno10.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
ten = "0"
ten = 0
}
}
@ -650,12 +474,12 @@ class QAfterFragment : Fragment() {
binding.CVQyes11.setOnClickListener {
binding.CVQyes11.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
eleven = "1"
eleven = 1
}
binding.CVQno11.setOnClickListener {
binding.CVQyes11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno11.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
eleven = "0"
eleven = 0
}
}
@ -663,12 +487,12 @@ class QAfterFragment : Fragment() {
binding.CVQyes12.setOnClickListener {
binding.CVQyes12.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
twelve = "1"
twelve = 1
}
binding.CVQno12.setOnClickListener {
binding.CVQyes12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno12.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
twelve = "0"
twelve = 0
}
}

View File

@ -0,0 +1,471 @@
package com.example.rehabilitation.Questionnaire.QuestionnaireFragment
import android.app.AlertDialog
import android.graphics.Color
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.fragment.app.activityViewModels
import com.example.admin.Toast.showCustomDangerToast
import com.example.admin.Toast.showCustomInfoToast
import com.example.rehabilitation.Pref.ConclusionPref
import com.example.rehabilitation.Questionnaire.Model.AfterQuestionnaireModel
import com.example.rehabilitation.Questionnaire.Model.BeforeQuestionnaireModel
import com.example.rehabilitation.R
import com.example.rehabilitation.Retrofit.PatientApi
import com.example.rehabilitation.Sport.SceduleFragment
import com.example.rehabilitation.databinding.FragmentQBeforeBinding
import com.example.sqlitework.dip.MainViewModel
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import okhttp3.OkHttpClient
import okhttp3.logging.HttpLoggingInterceptor
import org.json.JSONObject
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
class QBeforeFragment : Fragment() {
private lateinit var binding: FragmentQBeforeBinding
private val model: MainViewModel by activityViewModels()//Инициализировали класс
private lateinit var patientApi: PatientApi
val prefPatientConclusion = ConclusionPref()
var one = 100
var two = 100
var thee = 100
var four = 100
var five = 100
var six = 100
var seven = 100
var eight = 100
var nine = 100
var calendareDate = false
var countDay = 0
//Для разрешения проверки количества дней
var lookDateSportMax = false
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View {
// Inflate the layout for this fragment
binding = FragmentQBeforeBinding.inflate(layoutInflater, container, false)
return binding.root
}
companion object {
fun newInstance() = QBeforeFragment()
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
buttenAdd()
//Выход
binding.btnExitQB.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()
?.replace(R.id.placeHolderFragment, SceduleFragment.newInstance())?.commit()
}
//Сохраняем результат
binding.btnSaveQuestionnaire.setOnClickListener {
if (one != 100 && two != 100 && thee != 100 && four != 100 && five != 100 && six != 100 && seven != 100 && eight != 100 && nine != 100) {
if(one >= 6) {
AlertDialog.Builder(requireContext())
.setTitle("Анкета")
.setMessage("Уверены ли Вы в выбранных ответах на вопросы анкеты? Халатное отношение к вопросам анкеты приведет к блокировке комплекса")
.setNeutralButton("Подтвердить") { dialog, whichButton ->
addQuestionnaire()
}
.setNegativeButton("Отмена") { dialog, whichButton ->
}.show()
}
else if(four == 1 && five == 1 && six == 1 && seven == 1 && nine == 1){
AlertDialog.Builder(requireContext())
.setTitle("Анкета")
.setMessage("Уверены ли Вы в выбранных ответах на вопросы анкеты? Халатное отношение к вопросам анкеты приведет к паузе комплекса")
.setNeutralButton("Подтвердить") { dialog, whichButton ->
addQuestionnaire()
}
.setNegativeButton("Отмена") { dialog, whichButton ->
}.show()
}
else{
addQuestionnaire()
}
} else {
Toast(requireContext()).showCustomInfoToast(
"Не все пункты выбраны",
requireActivity()
)
}
}
}
//Функция
fun addQuestionnaire(){
val item = BeforeQuestionnaireModel(
one,
two,
thee,
four,
five,
six,
seven,
eight,
nine,
)
BeforeQuestionnaire(item)
}
//Инициализация подлючения к серверу
private fun initRetrofit() {
val interceptor = HttpLoggingInterceptor()
interceptor.level = HttpLoggingInterceptor.Level.BODY
val client = OkHttpClient
.Builder()
.addInterceptor(interceptor)
.build()
val retrofit = Retrofit.Builder()
.baseUrl("http://mobileapp.vmeda.org/api/")
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build()
patientApi = retrofit.create(PatientApi::class.java)
}
//Получения списка пациентов
fun BeforeQuestionnaire(item: BeforeQuestionnaireModel) {
initRetrofit()
val Tokens = prefPatientConclusion.conclusionToken(requireContext())
CoroutineScope(Dispatchers.IO).launch {
val QA = patientApi.AddBeforeQuestionnaire2("Bearer $Tokens",item)
requireActivity().runOnUiThread {
//Фиксируем полученные данные
val AQList = QA.body()
//Если нету ошибок
if (AQList != null) {
Toast(requireContext()).showCustomInfoToast(AQList.message, requireActivity())
}
else{
Toast(requireContext()).showCustomInfoToast("Ошибка при отправке", requireActivity())
}
activity?.supportFragmentManager?.beginTransaction()
?.replace(R.id.placeHolderFragment, SceduleFragment.newInstance())?.commit()
}
}
}
private fun buttenAdd() {
buttenAdd1()
buttenAdd1_2()
buttenAdd2()
buttenAdd3()
buttenAdd4()
buttenAdd5()
buttenAdd6()
buttenAdd7()
buttenAdd8()
buttenAdd9()
}
private fun buttenAdd1() {
binding.CVQyes1.setOnClickListener {
binding.CLQ112.visibility = View.VISIBLE
binding.CVQyes1.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno1.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
}
binding.CVQno1.setOnClickListener {
binding.CLQ112.visibility = View.GONE
binding.CVQyes1.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno1.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
one = 0
}
}
private fun buttenAdd1_2() {
binding.CVQ10.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
one = 0
}
binding.CVQ11.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ11.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
one = 1
}
binding.CVQ12.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ12.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
one = 2
}
binding.CVQ13.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ13.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
one = 3
}
binding.CVQ14.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ14.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
one = 4
}
binding.CVQ15.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ15.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
one = 5
}
binding.CVQ16.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ16.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
one = 6
}
binding.CVQ17.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ17.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
one = 7
}
binding.CVQ18.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
one = 8
}
binding.CVQ19.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQ110.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
one = 9
}
binding.CVQ110.setOnClickListener {
binding.CVQ10.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ11.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ12.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ13.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ14.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ15.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ16.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ17.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ18.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ19.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQ110.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
one = 10
}
}
private fun buttenAdd2() {
binding.CVQyes2.setOnClickListener {
binding.CVQyes2.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno2.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
two = 1
}
binding.CVQno2.setOnClickListener {
binding.CVQyes2.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno2.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
two = 0
}
}
private fun buttenAdd3() {
binding.CVQyes3.setOnClickListener {
binding.CVQyes3.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno3.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
thee = 1
}
binding.CVQno3.setOnClickListener {
binding.CVQyes3.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno3.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
thee = 0
}
}
private fun buttenAdd4() {
binding.CVQyes4.setOnClickListener {
binding.CVQyes4.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno4.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
four = 1
}
binding.CVQno4.setOnClickListener {
binding.CVQyes4.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno4.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
four = 0
}
}
private fun buttenAdd5() {
binding.CVQyes5.setOnClickListener {
binding.CVQyes5.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno5.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
five = 1
}
binding.CVQno5.setOnClickListener {
binding.CVQyes5.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno5.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
five = 0
}
}
private fun buttenAdd6() {
binding.CVQyes6.setOnClickListener {
binding.CVQyes6.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno6.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
six = 1
}
binding.CVQno6.setOnClickListener {
binding.CVQyes6.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno6.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
six = 0
}
}
private fun buttenAdd7() {
binding.CVQyes7.setOnClickListener {
binding.CVQyes7.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno7.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
seven = 1
}
binding.CVQno7.setOnClickListener {
binding.CVQyes7.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno7.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
seven = 0
}
}
private fun buttenAdd8() {
binding.CVQyes8.setOnClickListener {
binding.CVQyes8.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno8.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
eight = 1
}
binding.CVQno8.setOnClickListener {
binding.CVQyes8.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno8.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
eight = 0
}
}
private fun buttenAdd9() {
binding.CVQyes9.setOnClickListener {
binding.CVQyes9.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
binding.CVQno9.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
nine = 1
}
binding.CVQno9.setOnClickListener {
binding.CVQyes9.setCardBackgroundColor(Color.parseColor("#A8A8A8"))
binding.CVQno9.setCardBackgroundColor(Color.parseColor("#3AB0FF"))
nine = 0
}
}
}

View File

@ -0,0 +1,99 @@
package com.example.rehabilitation.Retrofit
import com.example.rehabilitation.Auth.Model.AuthModel
import com.example.rehabilitation.Auth.Model.CheckTokenModel
import com.example.rehabilitation.Auth.Model.UserModel
import com.example.rehabilitation.Calendare.CalendareListModel
import com.example.rehabilitation.MessageModel
import com.example.rehabilitation.Progress.ProgressListModel
import com.example.rehabilitation.Progress.ProgressModel
import com.example.rehabilitation.Questionnaire.Model.AfterQuestionnaireMessage
import com.example.rehabilitation.Questionnaire.Model.AfterQuestionnaireModel
import com.example.rehabilitation.Questionnaire.Model.BeforeQuestionnaireMessage
import com.example.rehabilitation.Questionnaire.Model.BeforeQuestionnaireModel
import com.example.rehabilitation.Questionnaire.Model.QuestionnaireModel
import com.example.rehabilitation.Sport.DayListModel
import com.example.rehabilitation.Sport.DayModel
import com.example.rehabilitation.Sport.SportDayOneModel
import com.example.rehabilitation.Sport.SportForDayListModel
import com.example.rehabilitation.Sport.SportForDayModel
import com.example.rehabilitation.Sport.SportListModel
import com.example.rehabilitation.Sport.UpdateSportTrueFalseModel
import com.example.rehabilitation.Sport.ViewFragmentModel
import com.example.rehabilitation.Sport.ViewVisibleModel
import retrofit2.Response
import retrofit2.http.Body
import retrofit2.http.GET
import retrofit2.http.Header
import retrofit2.http.Headers
import retrofit2.http.POST
import retrofit2.http.PUT
import retrofit2.http.Query
interface PatientApi {
//Проверка токена
@Headers("Content-Type: application/json")
@GET("CheckTokenPatient")
suspend fun CheckToken(@Header("Authorization") token:String): Response<CheckTokenModel>
//Авторизация
@Headers("Content-Type: application/json")
@POST("LoginPatient")
suspend fun LoginPatient(@Body authModel: AuthModel): Response<UserModel>
//Выход из аккаунта
@Headers("Content-Type: application/json")
@POST("LogoutPatient")
suspend fun LogoutPatient(@Header("Authorization") token:String):Response<MessageModel>
//Заполнение анкеты ДО
@Headers("Content-Type: application/json")
@POST("AddBeforeQuestionnaire2")
suspend fun AddBeforeQuestionnaire2(@Header("Authorization") token:String,@Body beforeQuestionnaireModel: BeforeQuestionnaireModel): Response<MessageModel>
//Заполнение анкеты ПОСЛЕ
@Headers("Content-Type: application/json")
@POST("AddAfterQuestionnaire2")
suspend fun AddAfterQuestionnaire2(@Header("Authorization") token:String,@Body afterQuestionnaireModel: AfterQuestionnaireModel) : Response<MessageModel>
//Добавление курса на сегодня
@Headers("Content-Type: application/json")
@POST("AddCourses2")
suspend fun AddCourses2(@Header("Authorization") token:String)
//Вывод списка спортивных задания на 1 день
@Headers("Content-Type: application/json")
@GET("CoutSportCourses")
suspend fun CoutSportCourses(@Header("Authorization") token:String)
//Вывод нужного экрана
@Headers("Content-Type: application/json")
@GET("VisibleView3")
suspend fun VisibleView3(@Header("Authorization") token:String) :Response<ViewVisibleModel>
//Вывод календаря
@Headers("Content-Type: application/json")
@GET("PatientCalendareDay")
suspend fun PatientCalendareDay(@Header("Authorization") token:String):Response<CalendareListModel>
//Вывод списка упражнений
@Headers("Content-Type: application/json")
@GET("GetSportDay")
suspend fun GetSportDay(@Header("Authorization") token:String):Response<SportForDayListModel>
//Вывод определенного упражнения
@Headers("Content-Type: application/json")
@GET("GetSportDayOne")
suspend fun GetSportDayOne(@Header("Authorization") token:String,@Query("id") id:Int):Response<SportDayOneModel>
//Подтвержденеи упражнения
@Headers("Content-Type: application/json")
@PUT("AddSportCheck")
suspend fun AddSportCheck(@Header("Authorization") token:String,@Query("id") id:Int, @Query("check") check:Int):Response<MessageModel>
//Список прогресса по дням
@Headers("Content-Type: application/json")
@GET("ProgressPatientCourses")
suspend fun ProgressPatientCourses(@Header("Authorization") token:String):Response<ProgressListModel>
}

View File

@ -1,35 +0,0 @@
package com.example.rehabilitation.Room
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.Query
import kotlinx.coroutines.flow.Flow
@Dao
interface Dao {
//Таблица по по дням
@Insert
fun insertItem(item:Item)
//Таблица определенного дня
//Список по дням
@Query("SELECT * FROM items ORDER BY id ASC")
fun getAllItems(): Flow<List<Item>>
//Список определенного дня
// @Query("SELECT * FROM itemDay")
// fun getAllItemDay(): Flow<List<ItemDay>>
//Обновление по переднному параметру
@Query("UPDATE items SET `check` = 1 WHERE id = :id")
fun updateItems(id : String)
@Query("UPDATE items SET `day` = :day WHERE date = :date")
fun updateDay(day:String,date : String)
//Очистка таблицы
@Query("DELETE FROM items")
fun deleteItem()
}

View File

@ -1,60 +0,0 @@
package com.example.rehabilitation.Room
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.Query
import androidx.room.Update
import kotlinx.coroutines.flow.Flow
@Dao
interface DaoDaySport {
//Таблица определенного дня
@Insert
fun insertItemDaySport(itemDaySport:ItemDaySport)
//Список определенного дня
@Query("SELECT * FROM DaySport ORDER BY day ASC")
fun getAllItemDaySportDay(): Flow<List<ItemDaySport>>
//Список определенного дня
@Query("SELECT * FROM DaySport WHERE day = :day AND visible = 1")
fun getAllItemDaySport(day:String): Flow<List<ItemDaySport>>
//Список определенного дня
@Query("SELECT id,day,category, `check`,COUNT(*) as visible FROM DaySport WHERE visible='1' GROUP BY day ORDER BY day ASC")
fun getAllProgres(): Flow<List<ItemDaySport>>
//Список определенного дня
@Query("SELECT id,day,category, COUNT(*) as `check`, visible FROM DaySport WHERE `check`='1' and visible='1' GROUP BY day ORDER BY day ASC")
fun getcheckProgress(): Flow<List<ItemDaySport>>
//Получаем любую рандомну строку для того чтобы использовать его дату в редактирование списка
@Query("SELECT * FROM DaySport ORDER BY day DESC LIMIT 1")
fun getItemDaySportRandomOne(): Flow<List<ItemDaySport>>
@Update
fun updateCheckDaySport(itemDaySport: ItemDaySport)
@Query("SELECT DaySport.id as id ,DaySport.day as day,DaySport.category as category, DaySport.`check` as `check`,DaySport.visible as visible, SportCategory.`desc` as `desc`, SportCategory.image as categoryImage FROM DaySport JOIN SportCategory ON DaySport.category = SportCategory.category WHERE DaySport.day == :date ORDER BY day ASC")
fun getListJoinDaySportAndSportCategory(date:String): Flow<List<ItemDaySportAndSportCategory>>
//Обновляем видимость у записей с данным
@Query("UPDATE DaySport SET visible = 1 WHERE category = :category AND day>=:date")
fun updateVisibleDaySportTrue(category:String,date :String)
@Query("UPDATE DaySport SET visible = 0 WHERE category = :category AND day>=:date")
fun updateVisibleDaySportFalse(category:String,date :String)
//Обновление что выполнил упражнение
@Query("UPDATE DaySport SET `check` = 1 WHERE id = :id")
fun updateCheckDaySport(id:Int)
@Query("UPDATE DaySport SET `check` = 2 WHERE id = :id")
fun updateNoCheckDaySport(id:Int)
//Очистка таблицы
@Query("DELETE FROM DaySport")
fun deleteItemDaySport()
}

View File

@ -1,26 +0,0 @@
package com.example.rehabilitation.Room
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.Query
import kotlinx.coroutines.flow.Flow
@Dao
interface DaoImage {
//Таблица определенного дня
@Insert
fun insertItemImage(itemImage:ItemImage)
//Список определенного дня
@Query("SELECT * FROM Image")
fun getAllItemImage(): Flow<List<ItemImage>>
//Список определенного дня
@Query("SELECT * FROM Image WHERE article = :article ORDER BY id ASC")
fun getAllItemImage(article:String): Flow<List<ItemImage>>
//Очистка таблицы
@Query("DELETE FROM Image")
fun deleteItemImage()
}

View File

@ -1,53 +0,0 @@
package com.example.rehabilitation.Room
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.Query
import kotlinx.coroutines.flow.Flow
@Dao
interface DaoSportCategory {
//Таблица по по дням
@Insert
fun insertItemSportCategory(item:ItemSportCategory)
//Таблица определенного дня
//Список по дням
@Query("SELECT * FROM SportCategory WHERE category = :category")
fun getAllItemsSportCategory(category:String): Flow<List<ItemSportCategory>>
// @Query("SELECT * FROM SportCategory WHERE image = :category")
// fun getAllItemsSportCategoryEdit(category:String): Flow<List<ItemSportCategory>>
//
@Query("SELECT id, name, `desc`, count,COUNT(*) as image,category,article,`check` FROM SportCategory WHERE image = :category and `check`=0")
fun getAllItemsSportCategoryCount(category:String): Flow<List<ItemSportCategory>>
@Query("SELECT id, name, `desc`,COUNT(*) as count,image,category,article,`check` FROM SportCategory WHERE image = :category and `check`=0")
fun getAllItemsSportCategoryCountSport(category:String): Flow<List<ItemSportCategory>>
//По артикулу
@Query("SELECT id, name, `desc`,COUNT(*) as count,image,category,article,`check` FROM SportCategory WHERE article = :article")
fun getSportArticle(article:String): Flow<List<ItemSportCategory>>
//Rjkbxtcndj eghf;ytybq
@Query("SELECT id, COUNT(*) as name, `desc`, count, image,category,article,`check` FROM SportCategory WHERE article = :article and `check` = 0")
fun getCountSportCategory(article:String): Flow<List<ItemSportCategory>>
//Список определенного дня
// @Query("SELECT * FROM itemDay")
// fun getAllItemDay(): Flow<List<ItemDay>>
//Обновление по переднному параметру
// @Query("UPDATE itemSportCategory SET `check` = 1 WHERE id = :id")
// fun updateItemsSportCategory(id : String)
//Очистка таблицы
// @Query("DELETE FROM SportCategory")
// fun deleteItemSportCategory()
}

View File

@ -1,32 +0,0 @@
package com.example.rehabilitation.Room
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.Query
import kotlinx.coroutines.flow.Flow
@Dao
interface DaoSportPatient {
//Таблица по по дням
@Insert
fun insertItemSportPatient(item:ItemSportPatient)
//Таблица определенного дня
//Список по дням
@Query("SELECT * FROM SportPatient WHERE image = :category")
fun getAllItemsSportPatient(category:String): Flow<List<ItemSportPatient>>
//Список определенного дня
// @Query("SELECT * FROM itemDay")
// fun getAllItemDay(): Flow<List<ItemDay>>
//Обновление по переднному параметру
// @Query("UPDATE itemSportCategory SET `check` = 1 WHERE id = :id")
// fun updateItemsSportCategory(id : String)
//Очистка таблицы
// @Query("DELETE FROM SportPatient")
// fun deleteItemSportPatient()
}

View File

@ -1,18 +0,0 @@
package com.example.rehabilitation.Room
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
@Entity(tableName = "Items")
data class Item(
@PrimaryKey(autoGenerate = true)
var id:Int? = null,
@ColumnInfo(name = "day")
var day: String,
@ColumnInfo(name = "date")
var date: String,
@ColumnInfo(name = "check")
var check:Int
)

View File

@ -1,20 +0,0 @@
package com.example.rehabilitation.Room
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
@Entity(tableName = "DaySport")
data class ItemDaySport(
@PrimaryKey(autoGenerate = true)
var id:Int? = null,
@ColumnInfo(name = "day")
var day:String,
@ColumnInfo(name = "category")
var category:String,
@ColumnInfo(name = "check")
var check:Int,
@ColumnInfo(name = "visible")
var visible:Int,
)

View File

@ -1,24 +0,0 @@
package com.example.rehabilitation.Room
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
@Entity(tableName = "ItemDaySportAndSportCategory")
data class ItemDaySportAndSportCategory(
@ColumnInfo(name = "id")
var id:Int,
@ColumnInfo(name = "day")
var day:String,
@ColumnInfo(name = "category")
var category:String,
@ColumnInfo(name = "check")
var check:Int,
@ColumnInfo(name = "visible")
var visible:Int,
@ColumnInfo(name = "desc")
var desc:String,
@ColumnInfo(name = "categoryImage")
var categoryImage:String,
)

View File

@ -1,17 +0,0 @@
package com.example.rehabilitation.Room
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
@Entity(tableName = "Image")
data class ItemImage(
@PrimaryKey(autoGenerate = true)
var id:Int? = null,
@ColumnInfo(name = "nameImage")
var image:String,
@ColumnInfo(name = "article")
var name:String,
@ColumnInfo(name = "category")
var category:String,
)

View File

@ -1,16 +0,0 @@
package com.example.rehabilitation.Room
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
@Entity(tableName = "ItemProgressAll")
data class ItemProgressAll(
@ColumnInfo(name = "date")
var date:String,
@ColumnInfo(name = "countAll")
var countAll:Int,
@ColumnInfo(name = "category")
var category:String,
)

View File

@ -1,16 +0,0 @@
package com.example.rehabilitation.Room
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
@Entity(tableName = "ItemProgressCheck")
data class ItemProgressCheck(
@ColumnInfo(name = "date")
var date:String,
@ColumnInfo(name = "countCheck")
var countCheck:Int,
@ColumnInfo(name = "category")
var category:String,
)

View File

@ -1,20 +0,0 @@
package com.example.rehabilitation.Room
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
@Entity(tableName = "ItemProgressDay")
data class ItemProgressDay(
@PrimaryKey(autoGenerate = true)
var id:Int? = null,
@ColumnInfo(name = "countAll")
var countAll:Int,
@ColumnInfo(name = "CountCheckTrue")
var CountCheckTrue:Int,
@ColumnInfo(name = "category")
var category:String,
@ColumnInfo(name = "date")
var date:Int,
)

View File

@ -1,26 +0,0 @@
package com.example.rehabilitation.Room
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
@Entity(tableName = "SportCategory")
data class ItemSportCategory(
@PrimaryKey(autoGenerate = true)
var id: Int? = null,
@ColumnInfo(name = "name")
var name: String,
@ColumnInfo(name = "desc")
var desc: String,
@ColumnInfo(name = "count")
var count: String,
@ColumnInfo(name = "image")
var image: String,
@ColumnInfo(name = "category")
var category: String,
@ColumnInfo(name = "article")
var article: String,
@ColumnInfo(name = "check")
var check: Int
)

View File

@ -1,9 +0,0 @@
package com.example.rehabilitation.Room
import androidx.room.ColumnInfo
data class ItemSportCategoryCount(
@ColumnInfo(name = "count")
var count:String,
)

View File

@ -1,22 +0,0 @@
package com.example.rehabilitation.Room
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
@Entity(tableName = "SportPatient")
data class ItemSportPatient(
@PrimaryKey(autoGenerate = true)
var id:Int? = null,
@ColumnInfo(name = "name")
var name:String,
@ColumnInfo(name = "desc")
var desc:String,
@ColumnInfo(name = "count")
var count:String,
@ColumnInfo(name = "image")
var image:String,
@ColumnInfo(name = "day")
var day:String
)

View File

@ -1,162 +0,0 @@
package com.example.rehabilitation.Room
import android.content.Context
import androidx.room.Database
import androidx.room.Room.databaseBuilder
import androidx.room.RoomDatabase
import com.example.rehabilitation.Room.Questionnaire.After.DaoAfterQuestionnaire
import com.example.rehabilitation.Room.Questionnaire.After.ItemAfterQuestionnaire
import com.example.rehabilitation.Room.Questionnaire.Before.DaoBeforeQuestionnaire
import com.example.rehabilitation.Room.Questionnaire.Before.ItemBeforeQuestionnaire
import com.example.rehabilitation.Room.dbUser.dbDoctor.DaoDoctor
import com.example.rehabilitation.Room.dbUser.dbDoctor.ItemDoctor
import com.example.rehabilitation.Room.dbUser.dbPatient.DaoPatient
import com.example.rehabilitation.Room.dbUser.dbPatient.ItemPatient
@Database(entities = [
Item::class,
ItemDaySport::class,
ItemImage::class,
ItemSportCategory::class,
ItemSportPatient::class,
ItemDoctor::class,
ItemPatient::class,
ItemBeforeQuestionnaire::class,
ItemAfterQuestionnaire::class,
], version = 12)
abstract class MainDB: RoomDatabase() {
abstract fun getDao(): Dao
abstract fun getDaoDaySport(): DaoDaySport
abstract fun getDaoImage(): DaoImage
abstract fun getDaoSportCategory(): DaoSportCategory
abstract fun getDaoSportPatient(): DaoSportPatient
abstract fun getDaoDoctor(): DaoDoctor
abstract fun getDaoPatient(): DaoPatient
abstract fun getDaoQB(): DaoBeforeQuestionnaire
abstract fun getDaoQA(): DaoAfterQuestionnaire
//
companion object{
// fun getDB(context: Context):MainDB{
// return Room.databaseBuilder(
// context.applicationContext,
// MainDB::class.java,
// "ClogonV22.db"
// ).build()
//
// }
//private val DB_NAME: String? = "ReabilitationV2.db"
//
// fun buildDatabase(context: Context): MainDB? {
// val dbFile = context.getDatabasePath(DB_NAME)
// if (!dbFile.exists()) {
// copyDatabaseFile(dbFile.absolutePath)
// }
// return databaseBuilder(
// context.applicationContext,
// MainDB::class.java, DB_NAME
// )
// .build()
// }
//
// private fun copyDatabaseFile(destinationPath: String) {
// // code to copy the file from assets/database directory to destinationPath
// }
fun getDB(context: Context):MainDB{
return databaseBuilder(context, MainDB::class.java,"ReabilitationV4.db")
.createFromAsset("ReabilitationV4.db")
.fallbackToDestructiveMigration()
.build()
}
}
}
/*abstract class MainDB: RoomDatabase(){
abstract fun getDao(): Dao
abstract fun getDaoDaySport(): DaoDaySport
abstract fun getDaoImage(): DaoImage
abstract fun getDaoSportCategory(): DaoSportCategory
abstract fun getDaoSportPatient(): DaoSportPatient
override fun init(configuration: DatabaseConfiguration) {
importExistingDatabase(
configuration.context,
true
) //<<<<<<<<<< Invokes the Import of the Exisiting Database.
super.init(configuration)
}
private fun importExistingDatabase(context: Context, throw_exception: Boolean) {
val buffer_size = 32768
val dbpath = context.getDatabasePath(DBNAME)
if (dbpath.exists()) {
return // Database already exists
}
// Just in case make the directories
val dirs = File(dbpath.parent)
dirs.mkdirs()
var stage = 0
val buffer = ByteArray(buffer_size)
var total_bytes_read: Long = 0
var total_bytes_written: Long = 0
var bytes_read = 0
try {
val assetdb = context.assets.open(DBNAME)
stage++
dbpath.createNewFile()
stage++
val realdb: OutputStream = FileOutputStream(dbpath)
stage++
while (assetdb.read(buffer).also { bytes_read = it } > 0) {
total_bytes_read = total_bytes_read + bytes_read
realdb.write(buffer, 0, bytes_read)
total_bytes_written = total_bytes_written + bytes_read
}
stage++
realdb.flush()
stage++
assetdb.close()
stage++
realdb.close()
stage++
} catch (e: IOException) {
var failed_at = ""
when (stage) {
0 -> failed_at = "Opening Asset " + DBNAME
1 -> failed_at = "Creating Output Database " + dbpath.absolutePath
2 -> failed_at = "Genreating Database OutputStream " + dbpath.absolutePath
3 -> failed_at = "Copying Data from Asset Database to Output Database. " +
" Bytes read=" + total_bytes_read.toString() +
" Bytes written=" + total_bytes_written.toString()
4 -> failed_at = "Flushing Written Data ($total_bytes_written bytes written)"
5 -> failed_at = "Closing Asset Database File."
6 -> failed_at = "Closing Created Database File."
}
val msg =
"""An error was encountered copying the Database from the asset file to New Database. The error was encountered whilst :-
$failed_at"""
Log.e("IMPORTDATABASE", msg)
e.printStackTrace()
if (throw_exception) {
throw RuntimeException(msg)
}
}
}
companion object {
const val DBNAME = "ClogonV3.db"
const val TB_MYTABLE = "mytable"
const val TB_MYOTHERTABLE = "myothertable"
const val TB_MYMAPPINGTABLE = "mymappingtable"
const val COL_MYTABLE_ID = BaseColumns._ID
const val COL_MYTABLE_NAME = "_name"
const val COL_MYTABLE_DESCRIPTION = "_description"
const val COL_MYOTHERTABLE_ID = BaseColumns._ID
const val COL_MYOTHERTABLE_OTHERDETAILS = "_otherdetails"
const val COL_MYMAPPINGTABLE_MYTABLEREFERENCE = "_mytable_reference"
const val COL_MYMAPPINGTABLE_MYOTEHERTABLEREFERENCE = "_myothertable_reference"
}
}*/

View File

@ -1,44 +0,0 @@
package com.example.rehabilitation.Room.Questionnaire.After
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.Query
import com.example.rehabilitation.Room.Item
import com.example.rehabilitation.Room.Questionnaire.Before.ItemBeforeQuestionnaire
import kotlinx.coroutines.flow.Flow
@Dao
interface DaoAfterQuestionnaire {
//Таблица по по дням
@Insert
fun insertAQ(itemAfterQuestionnaire: ItemAfterQuestionnaire)
//Таблица определенного дня
//// //Список по дням
// @Query("SELECT * FROM AfterQuestionnaire ORDER BY date ASC")
// fun getAllAQ(): Flow<List<ItemAfterQuestionnaire>>
//Весь список
@Query("SELECT * FROM AfterQuestionnaire ORDER BY date ASC")
fun getAllAQProgress(): Flow<List<ItemAfterQuestionnaire>>
//Список определенного дня
@Query("SELECT * FROM AfterQuestionnaire WHERE date = :date")
fun getAllAQDay(date:String): Flow<List<ItemAfterQuestionnaire>>
//Список определенного дня
@Query("SELECT * FROM AfterQuestionnaire WHERE date = :date")
fun getAllProgress(date:String): Flow<List<ItemAfterQuestionnaire>>
//Обновление по переднному параметру
//@Query("UPDATE AfterQuestionnaire SET `check` = 1 WHERE id = :id")
//fun updateAQ(id : String)
//Очистка таблицы
@Query("DELETE FROM AfterQuestionnaire")
fun deleteAQ()
}

View File

@ -1,38 +0,0 @@
package com.example.rehabilitation.Room.Questionnaire.After
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
@Entity(tableName = "AfterQuestionnaire")
data class ItemAfterQuestionnaire(
@PrimaryKey(autoGenerate = true)
var id:Int? = null,
@ColumnInfo(name = "one")
var one: String,
@ColumnInfo(name = "two")
var two: String,
@ColumnInfo(name = "three")
var three: String,
@ColumnInfo(name = "four")
var four:String,
@ColumnInfo(name = "five")
var five:String,
@ColumnInfo(name = "six")
var six:String,
@ColumnInfo(name = "seven")
var seven:String,
@ColumnInfo(name = "eight")
var eight:String,
@ColumnInfo(name = "nine")
var nine:String,
@ColumnInfo(name = "ten")
var ten:String,
@ColumnInfo(name = "eleven")
var elevenInt:String,
@ColumnInfo(name = "twelve")
var twelve:String,
@ColumnInfo(name = "date")
var date:String,
)

View File

@ -1,38 +0,0 @@
package com.example.rehabilitation.Room.Questionnaire.Before
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.Query
import com.example.rehabilitation.Room.Item
import com.example.rehabilitation.Room.Questionnaire.After.ItemAfterQuestionnaire
import kotlinx.coroutines.flow.Flow
@Dao
interface DaoBeforeQuestionnaire {
//Таблица по по дням
@Insert
fun insertBQ(item: ItemBeforeQuestionnaire)
//Таблица определенного дня
// // //Список по дням
// @Query("SELECT * FROM BeforeQuestionnaire ORDER BY date ASC")
// fun getAllBQ(): Flow<List<ItemAfterQuestionnaire>>
//Весь список
@Query("SELECT * FROM BeforeQuestionnaire ORDER BY date ASC")
fun getAllBQProgress(): Flow<List<ItemBeforeQuestionnaire>>
//Список определенного дня
@Query("SELECT * FROM BeforeQuestionnaire WHERE date = :date")
fun getAllBQDay(date:String): Flow<List<ItemBeforeQuestionnaire>>
//Обновление по переднному параметру
//@Query("UPDATE BeforeQuestionnaire SET `check` = 1 WHERE id = :id")
//fun updateBQ(id : String)
//Очистка таблицы
@Query("DELETE FROM BeforeQuestionnaire")
fun deleteBQ()
}

View File

@ -1,33 +0,0 @@
package com.example.rehabilitation.Room.Questionnaire.Before
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
@Entity(tableName = "BeforeQuestionnaire")
data class ItemBeforeQuestionnaire(
@PrimaryKey(autoGenerate = true)
var id:Int? = null,
@ColumnInfo(name = "one")
var one: String,
@ColumnInfo(name = "two")
var two: String,
@ColumnInfo(name = "three")
var three: String,
@ColumnInfo(name = "four")
var four:String,
@ColumnInfo(name = "five")
var five:String,
@ColumnInfo(name = "six")
var six:String,
@ColumnInfo(name = "seven")
var seven:String,
@ColumnInfo(name = "eight")
var eight:String,
@ColumnInfo(name = "nine")
var nine:String,
@ColumnInfo(name = "date")
var date:String,
)

View File

@ -1,51 +0,0 @@
package com.example.rehabilitation.Room.dbUser.dbDoctor
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.Query
import androidx.room.Update
import com.example.rehabilitation.Room.dbUser.dbPatient.ItemPatient
import kotlinx.coroutines.flow.Flow
@Dao
interface DaoDoctor {
//Таблица определенного дня
@Insert
fun insertItemDoctor(itemDoctor:ItemDoctor)
//Список врачей
@Query("SELECT * FROM Doctor ORDER BY id ASC")
fun getAllItemDoctor(): Flow<List<ItemDoctor>>
//Список врачей
@Query("SELECT * FROM Doctor WHERE login")
fun getItemDoctor(): Flow<List<ItemDoctor>>
//Опредеоение авторизованного врача
@Query("SELECT * FROM Doctor WHERE login = :login AND password = :password")
fun getAuthItemDoctor(login:String, password:String): Flow<List<ItemDoctor>>
//Опредеоение авторизованного пациента
@Query("SELECT * FROM Doctor WHERE login = :login")
fun getAuthItemDoctorOutput(login:String): Flow<List<ItemDoctor>>
//Список определенного дня
// @Query("SELECT * FROM Doctor WHERE day = :day")
// fun getAllItemDaySport(day:String): Flow<List<ItemDoctor>>
//Обновление что выполнил упражнение
@Query("UPDATE Doctor SET name = :name, surname = :surname, patronymic= :patronymic,login=:login,password=:password WHERE login =:loginOld")
fun updateDoctor(loginOld:String, name:String,surname:String,patronymic:String,login:String,password: String)
//Обновление что выполнил упражнение
// @Query("UPDATE Doctor SET `check` = 1 WHERE id = :id")
// fun updateDoctor(id:Int)
//Очистка таблицы
// @Query("DELETE FROM Doctor")
// fun deleteItemDaySport()
}

Some files were not shown because too many files have changed in this diff Show More