03.11.2023
This commit is contained in:
		
							parent
							
								
									be10c582d1
								
							
						
					
					
						commit
						3310ed1ca6
					
				
							
								
								
									
										2
									
								
								.idea/.name
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								.idea/.name
									
									
									
										generated
									
									
									
								
							@ -1 +1 @@
 | 
			
		||||
Реабилитация
 | 
			
		||||
Rehabilitation
 | 
			
		||||
							
								
								
									
										4
									
								
								.idea/deploymentTargetDropDown.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										4
									
								
								.idea/deploymentTargetDropDown.xml
									
									
									
										generated
									
									
									
								
							@ -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>
 | 
			
		||||
							
								
								
									
										3
									
								
								.idea/gradle.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										3
									
								
								.idea/gradle.xml
									
									
									
										generated
									
									
									
								
							@ -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>
 | 
			
		||||
							
								
								
									
										2
									
								
								.idea/misc.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								.idea/misc.xml
									
									
									
										generated
									
									
									
								
							@ -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">
 | 
			
		||||
 | 
			
		||||
@ -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.
										
									
								
							@ -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
 | 
			
		||||
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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")
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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() - это то что мы вставляем
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,7 @@
 | 
			
		||||
package com.example.rehabilitation.Auth.Model
 | 
			
		||||
 | 
			
		||||
data class AuthModel(
 | 
			
		||||
    val login: String,
 | 
			
		||||
    val password: String,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,5 @@
 | 
			
		||||
package com.example.rehabilitation.Auth.Model
 | 
			
		||||
 | 
			
		||||
data class CheckTokenModel(
 | 
			
		||||
    val status:String,
 | 
			
		||||
)
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
package com.example.rehabilitation.model_adapter.Patient
 | 
			
		||||
package com.example.rehabilitation.Auth.Model
 | 
			
		||||
 | 
			
		||||
data class PatientModel(
 | 
			
		||||
    val id: String,
 | 
			
		||||
@ -0,0 +1,7 @@
 | 
			
		||||
package com.example.rehabilitation.Auth.Model
 | 
			
		||||
 | 
			
		||||
data class UserModel(
 | 
			
		||||
    val id: String,
 | 
			
		||||
    val token: String,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -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
 | 
			
		||||
@ -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")
 | 
			
		||||
@ -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
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
@ -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 :
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,5 @@
 | 
			
		||||
package com.example.rehabilitation.Calendare
 | 
			
		||||
 | 
			
		||||
data class CalendareListModel(
 | 
			
		||||
    val сalendare: List<CalendareModel>
 | 
			
		||||
)
 | 
			
		||||
@ -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,
 | 
			
		||||
)
 | 
			
		||||
@ -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 {
 | 
			
		||||
}
 | 
			
		||||
@ -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() {
 | 
			
		||||
@ -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() {
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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
 | 
			
		||||
@ -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() {
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										168
									
								
								app/src/main/java/com/example/rehabilitation/MainFragment.kt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										168
									
								
								app/src/main/java/com/example/rehabilitation/MainFragment.kt
									
									
									
									
									
										Normal 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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,6 @@
 | 
			
		||||
package com.example.rehabilitation
 | 
			
		||||
 | 
			
		||||
data class MessageModel(
 | 
			
		||||
    val message: String,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
//    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -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>>()
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
package com.example.rehabilitation.model_adapter.Progress
 | 
			
		||||
package com.example.rehabilitation.Progress
 | 
			
		||||
 | 
			
		||||
data class AfterListModel(
 | 
			
		||||
    val id: Int,
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
package com.example.rehabilitation.model_adapter.Progress
 | 
			
		||||
package com.example.rehabilitation.Progress
 | 
			
		||||
 | 
			
		||||
data class BeforeListModel(
 | 
			
		||||
    val id: Int,
 | 
			
		||||
@ -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()
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -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//Сравниваем полностью весь список новы и старый
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,6 @@
 | 
			
		||||
package com.example.rehabilitation.Progress
 | 
			
		||||
 | 
			
		||||
data class ProgressListModel(
 | 
			
		||||
    val search_check_sport: List<ProgressModel>,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@ -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,
 | 
			
		||||
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,6 @@
 | 
			
		||||
package com.example.rehabilitation.Questionnaire.Model
 | 
			
		||||
 | 
			
		||||
data class AfterQuestionnaireMessage(
 | 
			
		||||
    val message: Int,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@ -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,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,6 @@
 | 
			
		||||
package com.example.rehabilitation.Questionnaire.Model
 | 
			
		||||
 | 
			
		||||
data class BeforeQuestionnaireMessage(
 | 
			
		||||
    val message: Int,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@ -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,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,6 @@
 | 
			
		||||
package com.example.rehabilitation.Questionnaire.Model
 | 
			
		||||
 | 
			
		||||
data class QuestionnaireModel(
 | 
			
		||||
    val massage: String,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -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>
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -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()
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -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
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
@ -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,
 | 
			
		||||
 | 
			
		||||
)
 | 
			
		||||
@ -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,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@ -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,
 | 
			
		||||
)
 | 
			
		||||
@ -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,
 | 
			
		||||
 | 
			
		||||
)
 | 
			
		||||
@ -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,
 | 
			
		||||
 | 
			
		||||
)
 | 
			
		||||
@ -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,
 | 
			
		||||
 | 
			
		||||
)
 | 
			
		||||
@ -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
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@ -1,9 +0,0 @@
 | 
			
		||||
package com.example.rehabilitation.Room
 | 
			
		||||
 | 
			
		||||
import androidx.room.ColumnInfo
 | 
			
		||||
 | 
			
		||||
data class ItemSportCategoryCount(
 | 
			
		||||
    @ColumnInfo(name = "count")
 | 
			
		||||
    var count:String,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@ -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"
 | 
			
		||||
    }
 | 
			
		||||
}*/
 | 
			
		||||
@ -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()
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -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,
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
@ -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()
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -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,
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
@ -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
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user