1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- 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<ResponseBody> {
- //если ответ успешен
- override fun onResponse(p0: Call<ResponseBody>?, p1: Response<ResponseBody>?) {
- //если ответ не пустой
- 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<ResponseBody>?, p1: Throwable?) {
- //действия при ошибках с сетью
- Log.d("TAG1", p0.toString())
- }
- }
- )
- }
- }
|