diff --git a/mobile/app/src/main/java/com/odweta/solen/MainActivity.kt b/mobile/app/src/main/java/com/odweta/solen/MainActivity.kt index 2eee385..7001092 100644 --- a/mobile/app/src/main/java/com/odweta/solen/MainActivity.kt +++ b/mobile/app/src/main/java/com/odweta/solen/MainActivity.kt @@ -1,75 +1,184 @@ package com.odweta.solen -import android.annotation.SuppressLint import android.graphics.ImageDecoder import android.graphics.drawable.AnimatedImageDrawable -import android.os.Build import android.os.Bundle import android.util.Log import android.view.Menu import android.view.MenuItem import android.view.View -import android.webkit.WebResourceError -import android.webkit.WebResourceRequest -import android.webkit.WebView -import android.webkit.WebViewClient +import android.widget.Button +import android.widget.EditText import android.widget.ImageView -import android.widget.Toolbar -import androidx.annotation.RequiresApi +import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.lifecycleScope -import com.bumptech.glide.Glide import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import okhttp3.FormBody import okhttp3.OkHttpClient import okhttp3.Request +import org.json.JSONException import org.json.JSONObject +import java.io.File import java.io.IOException +import java.nio.charset.Charset import java.time.LocalDateTime import java.time.format.DateTimeFormatter - class MainActivity : AppCompatActivity(), MainActivityListener { companion object { val dayMap = mutableMapOf() var days = listOf() } + private val accountDataFilePath: String = "account_data.txt" + private val client = OkHttpClient() - private val username = "USERNAME" - private val password = "PASSWORD" + private lateinit var username: String + private lateinit var password: String private val apiBaseUrl = "https://aplikace.skolaonline.cz/solapi/api" private val tokenUrl = "$apiBaseUrl/connect/token" - private var token = "" + private lateinit var token: String private val userDataUrl = "$apiBaseUrl/v1/user" - private var userData = "" - private var studentId = "" + private lateinit var userData: String + private lateinit var studentId: String private val timeTableUrl = "$apiBaseUrl/v1/timeTable" //private val marksUrl = "$apiBaseUrl/v1/students/$studentId/marks/list" private suspend fun setupAPI() { return withContext(Dispatchers.IO) { //Log.d("debug", "setting up API...") - token = getToken() + token = JSONObject(getToken()).get("access_token").toString() if (token == "") { return@withContext } userData = getUserDataJSON() studentId = getStudentId() + //Log.d("debug", "API set up!") } } - @SuppressLint("MissingInflatedId") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(R.layout.activity_splash_screen) - - setSupportActionBar(findViewById(R.id.toolbar)) + showSplashScreen() lifecycleScope.launch { + launch() + } + } + + // Override onCreateOptionsMenu to handle menu item clicks + override fun onCreateOptionsMenu(menu: Menu): Boolean { + menuInflater.inflate(R.menu.menu_main, menu) + return true + } + + private fun showSignInScreen() { + setContentView(R.layout.activity_sign_in) + setSignInButtonOnClick() + } + + private fun showSettingsScreen() { + setContentView(R.layout.activity_settings) + findViewById