diff --git a/src/it/reyboz/bustorino/backend/GTTStopsFetcher.java b/src/it/reyboz/bustorino/backend/GTTStopsFetcher.java --- a/src/it/reyboz/bustorino/backend/GTTStopsFetcher.java +++ b/src/it/reyboz/bustorino/backend/GTTStopsFetcher.java @@ -53,7 +53,7 @@ } try { - url = new URL("http://www.gtt.to.it/cms/components/com_gtt/views/palinejson/view.html.php?term=" + URLEncoder.encode(name, "utf-8")); + url = new URL("https://www.gtt.to.it/cms/index.php?option=com_gtt&view=palinejson&term=" + URLEncoder.encode(name, "utf-8")); } catch (Exception e) { res.set(Result.PARSER_ERROR); return s; diff --git a/src/it/reyboz/bustorino/fragments/FragmentHelper.java b/src/it/reyboz/bustorino/fragments/FragmentHelper.java --- a/src/it/reyboz/bustorino/fragments/FragmentHelper.java +++ b/src/it/reyboz/bustorino/fragments/FragmentHelper.java @@ -152,6 +152,7 @@ attachFragmentToContainer(managerWeakRef.get(),listfragment, new AttachParameters("search_"+query, false,addToBackStack)); listfragment.setStopList(resultList); + listenerMain.readyGUIfor(FragmentKind.STOPS); toggleSpinner(false); } diff --git a/src/it/reyboz/bustorino/fragments/MainScreenFragment.java b/src/it/reyboz/bustorino/fragments/MainScreenFragment.java --- a/src/it/reyboz/bustorino/fragments/MainScreenFragment.java +++ b/src/it/reyboz/bustorino/fragments/MainScreenFragment.java @@ -450,9 +450,16 @@ requestArrivalsForStopID(busStopID); } else { // searchMode == SEARCH_BY_NAME String query = busStopSearchByNameEditText.getText().toString(); - //new asyncWgetBusStopSuggestions(query, stopsDB, StopsFindersByNameRecursionHelper); - if(getContext()!=null) - new AsyncDataDownload(fragmentHelper, stopsFinderByNames, getContext()).execute(query); + query = query.trim(); + if(getContext()!=null) { + if (query.length() < 1) { + Toast.makeText(getContext(), R.string.insert_bus_stop_name_error, Toast.LENGTH_SHORT).show(); + } else if(query.length()< 3){ + Toast.makeText(getContext(), R.string.query_too_short, Toast.LENGTH_SHORT).show(); + } + else + new AsyncDataDownload(fragmentHelper, stopsFinderByNames, getContext()).execute(query); + } } } diff --git a/src/it/reyboz/bustorino/middleware/AsyncDataDownload.java b/src/it/reyboz/bustorino/middleware/AsyncDataDownload.java --- a/src/it/reyboz/bustorino/middleware/AsyncDataDownload.java +++ b/src/it/reyboz/bustorino/middleware/AsyncDataDownload.java @@ -25,8 +25,12 @@ import android.os.AsyncTask; import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; + import android.util.Log; +import android.widget.Toast; +import it.reyboz.bustorino.R; import it.reyboz.bustorino.backend.*; import it.reyboz.bustorino.data.AppDataProvider; import it.reyboz.bustorino.data.NextGenDB; @@ -88,6 +92,7 @@ boolean success=false; Object result; FragmentHelper fh = helperRef.get(); + ArrayList results = new ArrayList<>(theFetchers.length); //If the FragmentHelper is null, that means the activity doesn't exist anymore if (fh == null){ return null; @@ -167,11 +172,13 @@ Log.d(TAG,"Using the StopFinderByName: "+finder.getClass()); query =params[0]; result = resultList; //dummy result + Log.d(DEBUG_TAG, "Result: "+res.get()+", "+resultList.size()+" stops"); break; default: result = null; } //find if it went well + results.add(res.get()); if(res.get()== Fetcher.Result.OK) { //wait for other threads to finish for(Thread t: otherActivities){ @@ -185,6 +192,17 @@ } } + boolean emptyResults = true; + for (Fetcher.Result re: results){ + if (!re.equals(Fetcher.Result.EMPTY_RESULT_SET)) { + emptyResults = false; + break; + } + } + if(emptyResults){ + if(t==RequestType.STOPS) + publishProgress(Fetcher.Result.EMPTY_RESULT_SET); + } //at this point, we are sure that the result has been negative failedAll=true; @@ -235,6 +253,7 @@ ArrayList stops = new ArrayList<>(); for(Object x: list){ if(x instanceof Stop) stops.add((Stop) x); + //Log.d(DEBUG_TAG, "Parsing Stop: "+x); } if(list.size() != stops.size()){ Log.w(DEBUG_TAG, "Wrong stop list size:\n incoming: "+