package ru.loparev.rmp import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.view.View import android.widget.Toast import androidx.appcompat.app.AlertDialog import kotlinx.android.synthetic.main.activity_signin.* import retrofit2.* import retrofit2.converter.gson.GsonConverterFactory import ru.loparev.rmp.api.Api import ru.loparev.rmp.models.ResponseBody import ru.loparev.rmp.models.UserLogin class MainActivity : AppCompatActivity() { //создается активность override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) //назначается xml активности setContentView(R.layout.activity_signin) //установка основной темы приложения // Thread.sleep(3000) setTheme(R.style.AppTheme) } fun createNewAccount(view: View) { val intent = Intent(this, SingUpActivity::class.java) startActivity(intent) } //Функция, реализующая всплывающее сообщение fun showMessage(title: String?, Message: String?) { val builder = AlertDialog.Builder(this) builder.setTitle(title) builder.setMessage(Message) builder.setIcon(R.drawable.iconpassword) builder.show() } //Функция входа в приложение fun buttonSingIn(view: View) { //получаем логин и пароль из текстовых полей val login = editTextSingInPersonName.text val password = editSingInTextPassword.text //Создаем конструктор Retrofit с параметрами URL и указываем типа конвертера данных val retrofit = Retrofit.Builder() .baseUrl("http://cars.areas.su/") .addConverterFactory(GsonConverterFactory.create()) .build() //Создаем экземпля retrofit и указываем интерфейс для запрооса val postLoginAPI = retrofit.create(Api.GetTokenLogIn::class.java) //Вызываем функцию из интерфейса и передаем ей логин и пароль val call = postLoginAPI?.login(UserLogin(login.toString(), password.toString())) //асинхронно выполняем запрос call?.enqueue(object : Callback { //если ответ успешен override fun onResponse(p0: Call?, p1: Response?) { //если ответ не пустой if (p1 != null) { //если ответ: Пользователь в системе, или выдается токен открываем активность карты if (p1.body().notice["answer"] == "User is active" || p1.body().notice.containsKey( "token" ) ) { //Создаем намерение (соединяем нашу активность и активность с картой) val intent = Intent(this@MainActivity, MapsActivity::class.java) //Открываем активность карты startActivity(intent) //Протоколируем в терминал Log.d("TAG1", "ACTIVE!") } else { //сообщение об ошибке Toast.makeText(this@MainActivity, p1.body().notice["answer"] , Toast.LENGTH_SHORT).show() } } } override fun onFailure(p0: Call?, p1: Throwable?) { //действия при ошибках с сетью Log.d("TAG1", p0.toString()) } } ) } }