diff --git a/app/build.gradle b/app/build.gradle --- a/app/build.gradle +++ b/app/build.gradle @@ -27,6 +27,9 @@ sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } + testOptions { + unitTests.returnDefaultValues = true + } sourceSets { androidTest.assets.srcDirs += files("$projectDir/assets/schemas/".toString()) @@ -132,3 +135,4 @@ androidTestImplementation "androidx.room:room-testing:$room_version" } + diff --git a/app/src/main/java/it/reyboz/bustorino/data/NextGenDB.java b/app/src/main/java/it/reyboz/bustorino/data/NextGenDB.java --- a/app/src/main/java/it/reyboz/bustorino/data/NextGenDB.java +++ b/app/src/main/java/it/reyboz/bustorino/data/NextGenDB.java @@ -165,6 +165,7 @@ /** * Query some bus stops inside a map view + * @return stoplist, if empty it means that an error occurred * * You can obtain the coordinates from OSMDroid using something like this: * BoundingBoxE6 bb = mMapView.getBoundingBox(); @@ -198,7 +199,12 @@ Log.e(DEBUG_TAG, "SQLiteException occurred"); e.printStackTrace(); return stops; - }finally { + }catch (Exception e){ + Log.e(DEBUG_TAG, "Exception occurred when getting stops"); + e.printStackTrace(); + return stops; + } + finally { db.close(); } diff --git a/app/src/main/java/it/reyboz/bustorino/fragments/FavoritesFragment.java b/app/src/main/java/it/reyboz/bustorino/fragments/FavoritesFragment.java --- a/app/src/main/java/it/reyboz/bustorino/fragments/FavoritesFragment.java +++ b/app/src/main/java/it/reyboz/bustorino/fragments/FavoritesFragment.java @@ -222,7 +222,7 @@ @Nullable @Override public View getBaseViewForSnackBar() { - return null; + return favoriteRecyclerView; } void showStops(List busStops){ diff --git a/app/src/main/java/it/reyboz/bustorino/fragments/MapFragment.java b/app/src/main/java/it/reyboz/bustorino/fragments/MapFragment.java --- a/app/src/main/java/it/reyboz/bustorino/fragments/MapFragment.java +++ b/app/src/main/java/it/reyboz/bustorino/fragments/MapFragment.java @@ -26,7 +26,6 @@ import android.graphics.drawable.Drawable; import android.location.Location; import android.location.LocationManager; -import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; @@ -39,6 +38,7 @@ import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.coordinatorlayout.widget.CoordinatorLayout; import androidx.core.content.res.ResourcesCompat; import androidx.lifecycle.ViewModelProvider; import androidx.preference.PreferenceManager; @@ -68,13 +68,11 @@ import org.osmdroid.views.overlay.infowindow.InfoWindow; import org.osmdroid.views.overlay.mylocation.GpsMyLocationProvider; -import java.lang.ref.WeakReference; import java.util.*; import kotlin.Pair; import it.reyboz.bustorino.R; import it.reyboz.bustorino.backend.Stop; -import it.reyboz.bustorino.data.NextGenDB; import it.reyboz.bustorino.middleware.GeneralActivity; import it.reyboz.bustorino.util.Permissions; @@ -114,6 +112,8 @@ private Bundle savedMapState = null; protected ImageButton btCenterMap; protected ImageButton btFollowMe; + + protected CoordinatorLayout coordLayout; private boolean hasMapStartFinished = false; private boolean followingLocation = false; @@ -202,7 +202,7 @@ @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { //use the same layout as the activity - View root = inflater.inflate(R.layout.activity_map, container, false); + View root = inflater.inflate(R.layout.fragment_map, container, false); if (getContext() == null){ throw new IllegalStateException(); } @@ -218,6 +218,7 @@ btCenterMap = root.findViewById(R.id.icon_center_map); btFollowMe = root.findViewById(R.id.icon_follow); + coordLayout = root.findViewById(R.id.coord_layout); //setup FolderOverlay stopsFolderOverlay = new FolderOverlay(); @@ -786,10 +787,9 @@ } @Nullable - @org.jetbrains.annotations.Nullable @Override public View getBaseViewForSnackBar() { - return null; + return coordLayout; } } diff --git a/app/src/main/java/it/reyboz/bustorino/fragments/NearbyStopsFragment.java b/app/src/main/java/it/reyboz/bustorino/fragments/NearbyStopsFragment.java --- a/app/src/main/java/it/reyboz/bustorino/fragments/NearbyStopsFragment.java +++ b/app/src/main/java/it/reyboz/bustorino/fragments/NearbyStopsFragment.java @@ -212,6 +212,7 @@ return; } if(!stops.isEmpty()) { + Log.d(DEBUG_TAG, "Showing "+stops.size()+" stops nearby"); currentNearbyStops =stops; showStopsInViews(currentNearbyStops, lastPosition); } diff --git a/app/src/main/java/it/reyboz/bustorino/fragments/ScreenBaseFragment.java b/app/src/main/java/it/reyboz/bustorino/fragments/ScreenBaseFragment.java --- a/app/src/main/java/it/reyboz/bustorino/fragments/ScreenBaseFragment.java +++ b/app/src/main/java/it/reyboz/bustorino/fragments/ScreenBaseFragment.java @@ -48,7 +48,7 @@ /** * Find the view on which the snackbar should be shown - * @return + * @return a view or null if you don't want the snackbar shown */ @Nullable public abstract View getBaseViewForSnackBar(); diff --git a/app/src/main/res/layout/fragment_main_screen.xml b/app/src/main/res/layout/fragment_main_screen.xml --- a/app/src/main/res/layout/fragment_main_screen.xml +++ b/app/src/main/res/layout/fragment_main_screen.xml @@ -95,6 +95,7 @@ android:layout_marginRight="16dp" android:layout_marginStart="16dip" android:indeterminateOnly="true" + android:minWidth="10dp" android:visibility="gone" /> diff --git a/app/src/main/res/layout/activity_map.xml b/app/src/main/res/layout/fragment_map.xml rename from app/src/main/res/layout/activity_map.xml rename to app/src/main/res/layout/fragment_map.xml --- a/app/src/main/res/layout/activity_map.xml +++ b/app/src/main/res/layout/fragment_map.xml @@ -2,9 +2,20 @@ + + android:layout_width="match_parent" + android:layout_height="match_parent" /> +