From 839e1181293b195cbb81695670b9a257eea5afea Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Mon, 9 Oct 2023 19:17:19 +0200 Subject: [PATCH] almost finished android app --- .../com/janishutz/libreevent/ApiClient.kt | 23 +++++++++++----- .../com/janishutz/libreevent/MainActivity.kt | 4 +-- .../janishutz/libreevent/ScannerActivity.kt | 26 +++++++++++++++---- 3 files changed, 39 insertions(+), 14 deletions(-) diff --git a/src/apps/Android/app/src/main/java/com/janishutz/libreevent/ApiClient.kt b/src/apps/Android/app/src/main/java/com/janishutz/libreevent/ApiClient.kt index c24ecff..e30a318 100644 --- a/src/apps/Android/app/src/main/java/com/janishutz/libreevent/ApiClient.kt +++ b/src/apps/Android/app/src/main/java/com/janishutz/libreevent/ApiClient.kt @@ -19,7 +19,6 @@ class ApiClient { // Set request headers (if needed) connection.setRequestProperty("Content-Type", "application/json") - // Add other headers as needed // Enable input and output streams for the connection connection.doInput = true @@ -60,7 +59,11 @@ class ApiClient { } fun checkTicket(apiUrl: String, username: String, password: String, ticket: String): String { - val url = URL("https://$apiUrl/app/ticketLookup") + var url = URL("$apiUrl/app/ticketLookup") + if ( !apiUrl.contains( "https://" )) { + url = URL("https://$apiUrl/app/ticketLookup") + } + val connection = url.openConnection() as HttpURLConnection // Set the request method to POST @@ -68,14 +71,13 @@ class ApiClient { // Set request headers (if needed) connection.setRequestProperty("Content-Type", "application/json") - // Add other headers as needed // Enable input and output streams for the connection connection.doInput = true connection.doOutput = true // Create the JSON request body - val jsonRequest = "{\"email\":\"$username\",\"password\":\"$password\",\"ticketID\":$ticket}" + val jsonRequest = "{\"email\":\"$username\",\"password\":\"$password\",\"ticketID\":\"$ticket\"}" // Write the JSON data to the output stream val outputStream = DataOutputStream(connection.outputStream) @@ -99,9 +101,16 @@ class ApiClient { // Return the response as a String return response.toString() } else { - // Handle the error (e.g., authentication failed) - // You can also throw an exception here if needed - return "" + val r = BufferedReader(InputStreamReader(connection.errorStream)) + val res = StringBuilder() + var line: String? + while (r.readLine().also { line = it } != null) { + res.append(line) + } + r.close() + println(res.toString()) + + return "Error" } } } \ No newline at end of file diff --git a/src/apps/Android/app/src/main/java/com/janishutz/libreevent/MainActivity.kt b/src/apps/Android/app/src/main/java/com/janishutz/libreevent/MainActivity.kt index bb3e9da..1f94664 100644 --- a/src/apps/Android/app/src/main/java/com/janishutz/libreevent/MainActivity.kt +++ b/src/apps/Android/app/src/main/java/com/janishutz/libreevent/MainActivity.kt @@ -18,7 +18,7 @@ class MainActivity : AppCompatActivity() { val policy = ThreadPolicy.Builder().permitAll().build() StrictMode.setThreadPolicy(policy) - val sharedPref = getSharedPreferences( "login", MODE_PRIVATE ) + val sharedPref = applicationContext.getSharedPreferences( "login", MODE_PRIVATE ) val hasSwitched = intent.hasExtra("hasSwitched") @@ -50,7 +50,7 @@ class MainActivity : AppCompatActivity() { val res = ApiClient().authenticateUser( url, username, password ) println( res ) if ( res == "authOk" ) { - val sharedPref = getSharedPreferences( "login", MODE_PRIVATE ) + val sharedPref = applicationContext.getSharedPreferences( "login", MODE_PRIVATE ) val editor = sharedPref.edit() editor.putString( "username", username ) editor.putString( "password", password ) diff --git a/src/apps/Android/app/src/main/java/com/janishutz/libreevent/ScannerActivity.kt b/src/apps/Android/app/src/main/java/com/janishutz/libreevent/ScannerActivity.kt index c030541..1f88125 100644 --- a/src/apps/Android/app/src/main/java/com/janishutz/libreevent/ScannerActivity.kt +++ b/src/apps/Android/app/src/main/java/com/janishutz/libreevent/ScannerActivity.kt @@ -27,11 +27,10 @@ class ScannerActivity : CaptureActivity() { val logoutButton = findViewById