package com.parentalmonitor.child.ui.login import android.content.Intent import android.os.Bundle import android.view.View import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.lifecycleScope import com.parentalmonitor.child.ParentalMonitorApp import com.parentalmonitor.child.R import com.parentalmonitor.child.ui.main.MainActivity import com.parentalmonitor.child.ui.paircode.PairCodeActivity import kotlinx.coroutines.launch class LoginActivity : AppCompatActivity() { private val apiClient by lazy { (application as ParentalMonitorApp).apiClient } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // Check if already logged in and device linked if (apiClient.isLoggedIn && apiClient.isDeviceLinked) { startActivity(Intent(this, MainActivity::class.java)) finish() return } // If logged in but no device linked, go to pair code if (apiClient.isLoggedIn && !apiClient.isDeviceLinked) { startActivity(Intent(this, PairCodeActivity::class.java)) finish() return } setContentView(R.layout.activity_login) val etEmail = findViewById(R.id.etEmail) val etPassword = findViewById(R.id.etPassword) val btnLogin = findViewById(R.id.btnLogin) val progressBar = findViewById(R.id.progressBar) val tvError = findViewById(R.id.tvError) btnLogin.setOnClickListener { val email = etEmail.text.toString().trim() val password = etPassword.text.toString() if (email.isEmpty() || password.isEmpty()) { tvError.text = "Please fill in all fields." tvError.visibility = View.VISIBLE return@setOnClickListener } tvError.visibility = View.GONE btnLogin.isEnabled = false progressBar.visibility = View.VISIBLE lifecycleScope.launch { val result = apiClient.login(email, password) progressBar.visibility = View.GONE btnLogin.isEnabled = true if (result.success && result.data != null) { apiClient.accessToken = result.data.accessToken apiClient.refreshToken = result.data.refreshToken apiClient.userId = result.data.user.id apiClient.userName = result.data.user.name apiClient.userEmail = result.data.user.email Toast.makeText(this@LoginActivity, "Login successful!", Toast.LENGTH_SHORT).show() startActivity(Intent(this@LoginActivity, PairCodeActivity::class.java)) finish() } else { tvError.text = result.message tvError.visibility = View.VISIBLE } } } } }