diff --git a/app/build.gradle b/app/build.gradle index 675afed..de65136 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -44,10 +44,10 @@ android { dependencies { implementation 'androidx.core:core-ktx:1.7.0' - implementation 'androidx.appcompat:appcompat:1.4.0' - implementation 'com.google.android.material:material:1.4.0' - implementation 'androidx.constraintlayout:constraintlayout:2.1.2' - implementation 'androidx.preference:preference-ktx:1.1.1' + implementation 'androidx.appcompat:appcompat:1.4.1' + implementation 'com.google.android.material:material:1.5.0' + implementation 'androidx.constraintlayout:constraintlayout:2.1.3' + implementation 'androidx.preference:preference-ktx:1.2.0' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' diff --git a/app/src/main/java/fr/oupson/taotoolbox/activities/MainActivity.kt b/app/src/main/java/fr/oupson/taotoolbox/activities/MainActivity.kt index 5d32188..3766072 100644 --- a/app/src/main/java/fr/oupson/taotoolbox/activities/MainActivity.kt +++ b/app/src/main/java/fr/oupson/taotoolbox/activities/MainActivity.kt @@ -3,7 +3,9 @@ package fr.oupson.taotoolbox.activities import android.Manifest import android.content.pm.PackageManager import android.database.sqlite.SQLiteDatabase -import android.graphics.* +import android.graphics.Color +import android.graphics.PorterDuff +import android.graphics.PorterDuffColorFilter import android.os.Bundle import android.util.Log import android.view.MenuItem @@ -26,10 +28,12 @@ import fr.oupson.taotoolbox.windows.StopInfoWindow import kotlinx.coroutines.* import org.json.JSONArray import org.osmdroid.config.Configuration +import org.osmdroid.events.MapEventsReceiver import org.osmdroid.tileprovider.tilesource.XYTileSource import org.osmdroid.util.GeoPoint import org.osmdroid.views.CustomZoomButtonsController import org.osmdroid.views.overlay.CopyrightOverlay +import org.osmdroid.views.overlay.MapEventsOverlay import org.osmdroid.views.overlay.Marker import org.osmdroid.views.overlay.Polyline import org.osmdroid.views.overlay.compass.CompassOverlay @@ -84,7 +88,6 @@ class MainActivity : AppCompatActivity() { binding.loadingProgressBar.visibility = View.VISIBLE - binding.map.setTileSource( XYTileSource( "osm fr", 1, 19, 256, ".png", @@ -143,7 +146,6 @@ class MainActivity : AppCompatActivity() { binding.map.overlays.add(compassOverlay) - binding.map.apply { controller.setZoom(15.0) controller.animateTo(GeoPoint(47.90250000, 1.90888889)) @@ -153,10 +155,22 @@ class MainActivity : AppCompatActivity() { } } - private suspend fun buildMarkerOverlays(db: SQLiteDatabase) { val infoWindow = StopInfoWindow(binding.map, taoRestApi) + val mapEventsOverlay = MapEventsOverlay(object : MapEventsReceiver { + override fun singleTapConfirmedHelper(p: GeoPoint?): Boolean { + infoWindow.close() + return true + } + + override fun longPressHelper(p: GeoPoint?): Boolean { + return false + } + }) + + binding.map.overlays.add(0, mapEventsOverlay) + val cursor = db.query( StopEntry.TABLE_NAME, arrayOf( @@ -274,6 +288,7 @@ class MainActivity : AppCompatActivity() { permissions: Array, grantResults: IntArray ) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults) when (requestCode) { REQUEST_PERMISSIONS_REQUEST_CODE -> { val res = grantResults.getOrNull(0) diff --git a/app/src/main/java/fr/oupson/taotoolbox/adapters/RealTimeAdapter.kt b/app/src/main/java/fr/oupson/taotoolbox/adapters/RealTimeAdapter.kt index c5b7af8..d5833a7 100644 --- a/app/src/main/java/fr/oupson/taotoolbox/adapters/RealTimeAdapter.kt +++ b/app/src/main/java/fr/oupson/taotoolbox/adapters/RealTimeAdapter.kt @@ -65,6 +65,7 @@ class RealTimeAdapter( withContext(Dispatchers.Main) { scheduleImageView.setImageBitmap(btm) } + } } } diff --git a/app/src/main/java/fr/oupson/taotoolbox/windows/StopInfoWindow.kt b/app/src/main/java/fr/oupson/taotoolbox/windows/StopInfoWindow.kt index b6f3d07..002ffd7 100644 --- a/app/src/main/java/fr/oupson/taotoolbox/windows/StopInfoWindow.kt +++ b/app/src/main/java/fr/oupson/taotoolbox/windows/StopInfoWindow.kt @@ -1,6 +1,7 @@ package fr.oupson.taotoolbox.windows import android.widget.TextView +import android.widget.Toast import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import fr.oupson.common.api.RealtimeStopArea @@ -44,11 +45,20 @@ class StopInfoWindow( titleTextView.text = item.title GlobalScope.launch(windowsContext) { - val realtime = taoRestApi.getRealtimeByStopArea(id) + try { + val realtime = taoRestApi.getRealtimeByStopArea(id) - withContext(Dispatchers.Main) { - realtimeList.set(realtime) - adapter.notifyDataSetChanged() + withContext(Dispatchers.Main) { + realtimeList.set(realtime) + adapter.notifyDataSetChanged() + } + } catch (e: Exception) { + e.printStackTrace() + Toast.makeText( + titleTextView.context, + "Failed to retrieve data", // TODO + Toast.LENGTH_SHORT + ).show() } } } diff --git a/build.gradle b/build.gradle index cf98189..5cff940 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.0.4' + classpath 'com.android.tools.build:gradle:7.1.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong diff --git a/common/build.gradle b/common/build.gradle index 183be4a..4ef2eca 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -33,8 +33,8 @@ android { dependencies { implementation 'androidx.core:core-ktx:1.7.0' - implementation 'androidx.appcompat:appcompat:1.4.0' - implementation 'com.google.android.material:material:1.4.0' + implementation 'androidx.appcompat:appcompat:1.4.1' + implementation 'com.google.android.material:material:1.5.0' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index c198239..b22d5fb 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip