commit 97611043edef12bca5e2fbfa69835e6a80565b64 Author: Fabio Mazza Date: Fri Apr 17 10:46:26 2026 +0200 Fix MaTO arrivals search logic diff --git a/app/src/main/java/it/reyboz/bustorino/backend/mato/MapiArrivalRequest.java b/app/src/main/java/it/reyboz/bustorino/backend/mato/MapiArrivalRequest.java index b54f482..1c1477e 100644 --- a/app/src/main/java/it/reyboz/bustorino/backend/mato/MapiArrivalRequest.java +++ b/app/src/main/java/it/reyboz/bustorino/backend/mato/MapiArrivalRequest.java @@ -86,7 +86,7 @@ public class MapiArrivalRequest extends MapiVolleyRequest { throw new AuthFailureError("Error with JSON enconding",e); } String requestBody = data.toString(); - Log.d(DEBUG_TAG, "Request variables: "+ variables); + Log.d(DEBUG_TAG, "MaTO arrivals request variables: "+ variables); return requestBody.getBytes(); } @@ -111,7 +111,7 @@ public class MapiArrivalRequest extends MapiVolleyRequest { p = MatoAPIFetcher.Companion.parseStopJSON(currentObj); if (p.gtfsID != null) { - if(p.gtfsID.contains("gtt:")){ + if(p.gtfsID.contains("gtt:")){ // this is apparently sufficient //valid stop stopFound = true; break; @@ -139,15 +139,4 @@ public class MapiArrivalRequest extends MapiVolleyRequest { */ return Response.success(p, HttpHeaderParser.parseCacheHeaders(response)); } - - public class StopNotFoundError extends VolleyError{ - - public StopNotFoundError(String message) { - super(message); - } - - public StopNotFoundError() { - super(); - } - } } diff --git a/app/src/main/java/it/reyboz/bustorino/backend/mato/MatoAPIFetcher.kt b/app/src/main/java/it/reyboz/bustorino/backend/mato/MatoAPIFetcher.kt index d30fc69..55545dc 100644 --- a/app/src/main/java/it/reyboz/bustorino/backend/mato/MatoAPIFetcher.kt +++ b/app/src/main/java/it/reyboz/bustorino/backend/mato/MatoAPIFetcher.kt @@ -21,7 +21,6 @@ import android.content.Context import android.util.Log import com.android.volley.DefaultRetryPolicy import com.android.volley.toolbox.RequestFuture -import it.reyboz.bustorino.BuildConfig import it.reyboz.bustorino.backend.* import it.reyboz.bustorino.data.gtfs.GtfsAgency import it.reyboz.bustorino.data.gtfs.GtfsFeed @@ -52,15 +51,16 @@ open class MatoAPIFetcher( stopID!! val now = Calendar.getInstance().time - var numMinutes = 30 + var numMinutes = 60 var palina = Palina(stopID) - var numPassaggi = 0 var trials = 0 val numDepartures = 8 - while (numPassaggi < minNumPassaggi && trials <5) { + var moreTime = false + var palinaOK = false + while (trials <20 && !palinaOK) { //numDepartures+=2 - numMinutes *= 2 //duplicate time + if (moreTime) numMinutes *= 2 //duplicate time val future = RequestFuture.newFuture() val request = MapiArrivalRequest(stopID, now, numMinutes * 60, numDepartures, res, future, future) if (appContext == null || res == null) { @@ -71,15 +71,17 @@ open class MatoAPIFetcher( request.setTag(getVolleyReqTag(MatoQueries.QueryType.ARRIVALS)) requestQueue.add(request) + moreTime = false try { val palinaResult = future.get(15, TimeUnit.SECONDS) if (palinaResult!=null) { - /*if (BuildConfig.DEBUG) - for (r in palinaResult.queryAllRoutes()){ - Log.d(DEBUG_TAG, "route " + r.gtfsId + " has " + r.passaggi.size + " passaggi: "+ r.passaggiToString) - }*/ + palina = palinaResult - numPassaggi = palina.totalNumberOfPassages + if(palina.totalNumberOfPassages < minNumPassaggi && numMinutes < MAX_MINUTES_SEARCH) { + moreTime = true + } else{ + palinaOK = true + } } else{ Log.d(DEBUG_TAG, "Result palina is null") } @@ -110,7 +112,7 @@ open class MatoAPIFetcher( const val DEBUG_TAG = "BusTO:MatoAPIFetcher" const val DEF_MIN_NUMPASSAGGI = 5 - + const val MAX_MINUTES_SEARCH = 24*60 // a day in minutes val REQ_PARAMETERS = mapOf( "Content-Type" to "application/json; charset=utf-8", "DNT" to "1",