fix bug in android app + more pages

This commit is contained in:
2023-10-10 17:54:35 +02:00
parent ee8f6291cd
commit 470e3f3e91
9 changed files with 123 additions and 78 deletions

View File

@@ -7,11 +7,11 @@
<deviceKey>
<Key>
<type value="VIRTUAL_DEVICE_PATH" />
<value value="$USER_HOME$/.android/avd/Nexus_10_API_34.avd" />
<value value="$USER_HOME$/.android/avd/Pixel_7_Pro_API_30.avd" />
</Key>
</deviceKey>
</Target>
</targetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2023-10-10T12:09:47.123729787Z" />
<timeTargetWasSelectedWithDropDown value="2023-10-10T15:22:18.675007998Z" />
</component>
</project>

View File

@@ -11,7 +11,7 @@ android {
applicationId = "com.janishutz.libreevent"
minSdk = 24
targetSdk = 33
versionCode = 1
versionCode = 2
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"

View File

@@ -1,5 +1,7 @@
package com.janishutz.libreevent
import android.Manifest
import android.content.pm.PackageManager
import android.app.AlertDialog
import android.content.Intent
import android.os.Bundle
@@ -8,6 +10,7 @@ import android.os.StrictMode.ThreadPolicy
import android.widget.Button
import android.widget.EditText
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
class MainActivity : AppCompatActivity() {
@@ -27,6 +30,10 @@ class MainActivity : AppCompatActivity() {
val usernameEditText = findViewById<EditText>(R.id.username)
val passwordEditText = findViewById<EditText>(R.id.password)
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.CAMERA), CAMERA_PERMISSION_REQUEST)
}
if (sharedPref.getString( "url", null ).toString() != "null" && sharedPref.getString( "username", null ).toString() != "null" ) {
urlEditText.setText(sharedPref.getString( "url", null ).toString())
usernameEditText.setText(sharedPref.getString( "username", null ).toString())
@@ -38,6 +45,8 @@ class MainActivity : AppCompatActivity() {
startActivity(switchIntent)
}
loginButton.setOnClickListener {
val url = urlEditText.text.toString()
val username = usernameEditText.text.toString()
@@ -91,4 +100,8 @@ class MainActivity : AppCompatActivity() {
alertDialogBuilder.show()
}
}
companion object {
private const val CAMERA_PERMISSION_REQUEST = 1
}
}

View File

@@ -12,6 +12,7 @@ import com.journeyapps.barcodescanner.BarcodeResult
import com.journeyapps.barcodescanner.CaptureActivity
import com.journeyapps.barcodescanner.CaptureManager
import com.journeyapps.barcodescanner.DecoratedBarcodeView
import java.util.Date
class ScannerActivity : CaptureActivity() {
@@ -19,6 +20,7 @@ class ScannerActivity : CaptureActivity() {
private lateinit var captureManager: CaptureManager
private var lastScanned: String = ""
private var lastScanTimestamp: Long = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_scanner)
@@ -61,7 +63,8 @@ class ScannerActivity : CaptureActivity() {
}
private fun handleScanResult(result: String) {
if ( lastScanned != result ) {
if ( lastScanned != result || lastScanTimestamp + 2000 < System.currentTimeMillis()) {
lastScanTimestamp = System.currentTimeMillis()
val sharedPref = applicationContext.getSharedPreferences( "login", MODE_PRIVATE )
val status = ApiClient().checkTicket( sharedPref.getString( "url", null ).toString(),

View File

@@ -1,73 +0,0 @@
package com.janishutz.libreevent
import android.Manifest
import android.content.pm.PackageManager
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.core.app.ActivityCompat
import com.journeyapps.barcodescanner.BarcodeCallback
import com.journeyapps.barcodescanner.CaptureManager
import com.journeyapps.barcodescanner.DecoratedBarcodeView
class ScannerActivity : AppCompatActivity() {
private lateinit var barcodeView: DecoratedBarcodeView
private lateinit var captureManager: CaptureManager
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_scanner)
barcodeView = findViewById(R.id.barcodeScannerView)
// Check for camera permission and request if not granted
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.CAMERA), CAMERA_PERMISSION_REQUEST)
} else {
setupScanner()
}
}
private fun setupScanner() {
captureManager = CaptureManager(this, barcodeView)
captureManager.initializeFromIntent(intent, null)
captureManager.decode()
}
private fun handleScanResult(result: String) {
// The `result` parameter contains the scanned data (e.g., QR code content)
// You can process it or send it as needed
}
override fun onResume() {
super.onResume()
captureManager.onResume()
}
override fun onPause() {
super.onPause()
captureManager.onPause()
}
// Pass savedInstanceState to onSaveInstanceState
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
captureManager.onSaveInstanceState(outState)
}
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
if (requestCode == CAMERA_PERMISSION_REQUEST) {
if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
setupScanner()
} else {
// Handle permission denied
}
}
}
companion object {
private const val CAMERA_PERMISSION_REQUEST = 1
}
}