Skip to content

Commit 13a40a9

Browse files
committed
Aggiunti Docker e user mongo specifici - Minor tweaks
1 parent 0c4e403 commit 13a40a9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+17069
-127
lines changed

App/.idea/shelf/Uncommitted_changes_before_Update_at_29_01_22,_16_39_[Default_Changelist]1/shelved.patch

Lines changed: 0 additions & 18 deletions
This file was deleted.

App/.idea/shelf/Uncommitted_changes_before_Update_at_29_01_22__16_39__Default_Changelist_1.xml

Lines changed: 0 additions & 4 deletions
This file was deleted.

App/app/build.gradle

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,8 @@ plugins {
55
id 'com.google.gms.google-services'
66
id 'org.jetbrains.kotlin.plugin.serialization' version '1.6.10'
77
id 'kotlin-parcelize'
8+
id 'kotlin-kapt'
89
}
9-
10-
apply plugin: 'kotlin-kapt'
11-
1210
android {
1311
compileSdk 31
1412

App/app/src/main/java/com/unibg/magellanus/app/MainActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import com.firebase.ui.auth.AuthUI
1717
import com.google.android.material.navigation.NavigationView
1818
import com.unibg.magellanus.app.databinding.ActivityMainBinding
1919
import com.unibg.magellanus.app.databinding.HeaderUserProfileBinding
20-
import com.unibg.magellanus.app.user.auth.impl.FirebaseAuthenticationProvider
20+
import com.unibg.magellanus.app.auth.impl.FirebaseAuthenticationProvider
2121
import com.unibg.magellanus.app.user.model.UserAccountAPI
2222
import com.unibg.magellanus.app.user.viewmodel.LoginViewModel
2323

@@ -32,7 +32,7 @@ class MainActivity : AppCompatActivity(), ToggleableDrawer {
3232
private lateinit var binding: ActivityMainBinding
3333

3434
private val viewModel by viewModels<LoginViewModel> {
35-
val provider = FirebaseAuthenticationProvider
35+
val provider = FirebaseAuthenticationProvider()
3636
LoginViewModel.Factory(provider, UserAccountAPI.create(provider))
3737
}
3838

App/app/src/main/java/com/unibg/magellanus/app/user/auth/AuthenticationProvider.kt renamed to App/app/src/main/java/com/unibg/magellanus/app/auth/AuthenticationProvider.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.unibg.magellanus.app.user.auth
1+
package com.unibg.magellanus.app.auth
22

33
import com.google.android.gms.tasks.Task
44
import com.google.firebase.auth.AuthCredential

App/app/src/main/java/com/unibg/magellanus/app/user/auth/UserInfo.kt renamed to App/app/src/main/java/com/unibg/magellanus/app/auth/UserInfo.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.unibg.magellanus.app.user.auth
1+
package com.unibg.magellanus.app.auth
22

33
import android.net.Uri
44
import com.google.android.gms.tasks.Task
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
package com.unibg.magellanus.app.user.auth.impl
1+
package com.unibg.magellanus.app.auth.impl
22

33
import com.google.android.gms.tasks.Task
44
import com.google.firebase.auth.AuthCredential
55
import com.google.firebase.auth.FirebaseAuth
6-
import com.unibg.magellanus.app.user.auth.AuthenticationProvider
7-
import com.unibg.magellanus.app.user.auth.UserInfo
6+
import com.unibg.magellanus.app.auth.AuthenticationProvider
7+
import com.unibg.magellanus.app.auth.UserInfo
88
import java.util.*
99

10-
object FirebaseAuthenticationProvider : AuthenticationProvider {
10+
class FirebaseAuthenticationProvider: AuthenticationProvider {
1111

1212
private val instance: FirebaseAuth = FirebaseAuth.getInstance()
1313
private val listeners: MutableMap<AuthenticationProvider.AuthStateListener,FirebaseAuth.AuthStateListener>

App/app/src/main/java/com/unibg/magellanus/app/user/auth/impl/FirebaseUserInfo.kt renamed to App/app/src/main/java/com/unibg/magellanus/app/auth/impl/FirebaseUserInfo.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
package com.unibg.magellanus.app.user.auth.impl
1+
package com.unibg.magellanus.app.auth.impl
22

33
import android.net.Uri
44
import com.google.android.gms.tasks.Task
55
import com.google.android.gms.tasks.Tasks
66
import com.google.firebase.auth.FirebaseUser
7-
import com.unibg.magellanus.app.user.auth.UserInfo
7+
import com.unibg.magellanus.app.auth.UserInfo
88

99

1010
class FirebaseUserInfo(private val user: FirebaseUser) : UserInfo {

App/app/src/main/java/com/unibg/magellanus/app/common/network/AuthInterceptor.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.unibg.magellanus.app.common.network
22

3-
import com.unibg.magellanus.app.user.auth.AuthenticationProvider
3+
import com.unibg.magellanus.app.auth.AuthenticationProvider
44
import okhttp3.Interceptor
55
import okhttp3.Response
66

App/app/src/main/java/com/unibg/magellanus/app/itinerary/model/network/ItineraryAPI.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package com.unibg.magellanus.app.itinerary.model.network
22

33
import com.unibg.magellanus.app.common.network.AuthInterceptor
44
import com.unibg.magellanus.app.itinerary.model.Itinerary
5-
import com.unibg.magellanus.app.user.auth.AuthenticationProvider
5+
import com.unibg.magellanus.app.auth.AuthenticationProvider
66
import okhttp3.OkHttpClient
77
import okhttp3.logging.HttpLoggingInterceptor
88
import retrofit2.Response

App/app/src/main/java/com/unibg/magellanus/app/itinerary/view/ItineraryListFragment.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import com.unibg.magellanus.app.itinerary.model.ItineraryRepositoryImpl
2222
import com.unibg.magellanus.app.itinerary.model.network.GeocodingAPI
2323
import com.unibg.magellanus.app.itinerary.model.network.ItineraryAPI
2424
import com.unibg.magellanus.app.itinerary.viewmodel.ItineraryListViewModel
25-
import com.unibg.magellanus.app.user.auth.impl.FirebaseAuthenticationProvider
25+
import com.unibg.magellanus.app.auth.impl.FirebaseAuthenticationProvider
2626
import kotlin.properties.Delegates
2727

2828
class ItineraryListFragment : Fragment() {
@@ -31,7 +31,7 @@ class ItineraryListFragment : Fragment() {
3131
private var call by Delegates.notNull<Int>()
3232

3333
private val viewModel by viewModels<ItineraryListViewModel> {
34-
val provider = FirebaseAuthenticationProvider
34+
val provider = FirebaseAuthenticationProvider()
3535
val api = ItineraryAPI.create(provider)
3636
val geoApi = GeocodingAPI.create(requireContext().cacheDir)
3737
val repository = ItineraryRepositoryImpl(api, geoApi)

App/app/src/main/java/com/unibg/magellanus/app/itinerary/view/MapFragment.kt

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ import com.unibg.magellanus.app.itinerary.model.POI
2727
import com.unibg.magellanus.app.itinerary.model.network.GeocodingAPI
2828
import com.unibg.magellanus.app.itinerary.model.network.ItineraryAPI
2929
import com.unibg.magellanus.app.itinerary.viewmodel.MapViewModel
30-
import com.unibg.magellanus.app.user.auth.impl.FirebaseAuthenticationProvider
30+
import com.unibg.magellanus.app.auth.AuthenticationProvider
31+
import com.unibg.magellanus.app.auth.impl.FirebaseAuthenticationProvider
3132
import kotlinx.coroutines.launch
3233
import org.osmdroid.api.IMapController
3334
import org.osmdroid.config.Configuration
@@ -41,26 +42,20 @@ import org.osmdroid.views.overlay.Marker
4142
import org.osmdroid.views.overlay.mylocation.GpsMyLocationProvider
4243
import org.osmdroid.views.overlay.mylocation.MyLocationNewOverlay
4344

44-
4545
class MapFragment : Fragment() {
4646

47-
private val provider = FirebaseAuthenticationProvider
47+
private lateinit var provider: AuthenticationProvider
4848

4949
private lateinit var itineraryId: String
5050
private var startingCoordinates: GeoPoint? = null
5151

5252
private val viewModel by viewModels<MapViewModel> {
53-
itineraryId = args.itineraryId ?: provider.currentUser!!.uid
54-
startingCoordinates = args.coordinates?.let {
55-
GeoPoint(it[0].toDouble(), it[1].toDouble())
56-
}
57-
5853
val cacheDir = requireContext().cacheDir
5954
val api = ItineraryAPI.create(provider)
6055
val geoApi = GeocodingAPI.create(cacheDir)
6156
val repository = ItineraryRepositoryImpl(api, geoApi)
6257

63-
MapViewModel.Factory(itineraryId, repository)
58+
MapViewModel.Factory(repository)
6459
}
6560

6661
private lateinit var navController: NavController
@@ -110,6 +105,7 @@ class MapFragment : Fragment() {
110105
map.setMultiTouchControls(true)
111106
map.visibility = View.VISIBLE
112107

108+
provider = FirebaseAuthenticationProvider()
113109
if (provider.currentUser == null) {
114110
navController.navigate(MapFragmentDirections.actionMapFragmentToLoginFragment())
115111
return
@@ -178,7 +174,6 @@ class MapFragment : Fragment() {
178174
add(poiOverlay)
179175
}
180176

181-
182177
val eventsReceiver = object : MapEventsReceiver {
183178
override fun singleTapConfirmedHelper(p: GeoPoint): Boolean {
184179
return false
@@ -200,6 +195,10 @@ class MapFragment : Fragment() {
200195

201196
map.invalidate()
202197

198+
startingCoordinates = args.coordinates?.let {
199+
GeoPoint(it[0].toDouble(), it[1].toDouble())
200+
}
201+
203202
startingCoordinates?.also {
204203
mapController.animateTo(it)
205204
}
@@ -245,6 +244,9 @@ class MapFragment : Fragment() {
245244

246245
mapController.animateTo((searchOverlay.items[0] as Marker).position)
247246
}
247+
248+
itineraryId = args.itineraryId ?: provider.currentUser!!.uid
249+
viewModel.load(itineraryId)
248250
}
249251

250252

App/app/src/main/java/com/unibg/magellanus/app/itinerary/view/POIListFragment.kt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import com.unibg.magellanus.app.itinerary.model.ItineraryRepositoryImpl
2020
import com.unibg.magellanus.app.itinerary.model.network.GeocodingAPI
2121
import com.unibg.magellanus.app.itinerary.model.network.ItineraryAPI
2222
import com.unibg.magellanus.app.itinerary.viewmodel.POIListViewModel
23-
import com.unibg.magellanus.app.user.auth.impl.FirebaseAuthenticationProvider
23+
import com.unibg.magellanus.app.auth.impl.FirebaseAuthenticationProvider
2424
import kotlinx.coroutines.launch
2525

2626
class POIListFragment : Fragment() {
@@ -30,15 +30,13 @@ class POIListFragment : Fragment() {
3030
private lateinit var itineraryId: String
3131

3232
private val viewModel by viewModels<POIListViewModel> {
33-
itineraryId = args.itineraryId
34-
35-
val provider = FirebaseAuthenticationProvider
33+
val provider = FirebaseAuthenticationProvider()
3634
val cacheDir = requireContext().cacheDir
3735
val api = ItineraryAPI.create(provider)
3836
val geoApi = GeocodingAPI.create(cacheDir)
3937
val repository = ItineraryRepositoryImpl(api, geoApi)
4038

41-
POIListViewModel.Factory(itineraryId, repository)
39+
POIListViewModel.Factory(repository)
4240
}
4341

4442
private lateinit var navController: NavController
@@ -82,6 +80,9 @@ class POIListFragment : Fragment() {
8280
setPOIList(it)
8381
}
8482
}
83+
84+
itineraryId = args.itineraryId
85+
viewModel.load(itineraryId)
8586
}
8687

8788
binding.createBtn.setOnClickListener {

App/app/src/main/java/com/unibg/magellanus/app/itinerary/viewmodel/MapViewModel.kt

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import com.unibg.magellanus.app.itinerary.model.POI
77
import kotlinx.coroutines.launch
88
import kotlinx.coroutines.runBlocking
99

10-
class MapViewModel(itineraryId: String, private val repository: ItineraryRepository) :
10+
class MapViewModel(private val repository: ItineraryRepository) :
1111
ViewModel() {
1212

1313
private val _currentItinerary: MutableLiveData<Itinerary> = MutableLiveData()
@@ -20,18 +20,15 @@ class MapViewModel(itineraryId: String, private val repository: ItineraryReposit
2020
val currentSearch: LiveData<MutableList<POI>>
2121
get() = _currentSearch
2222

23-
init {
24-
viewModelScope.launch {
25-
val itinerary = repository.get(itineraryId) ?: repository.create(
26-
Itinerary(
27-
id = itineraryId,
28-
name = "Default Itinerary"
29-
)
30-
)!!
31-
32-
_currentItinerary.value = itinerary
33-
}
23+
fun load(itineraryId: String) = viewModelScope.launch {
24+
val itinerary = repository.get(itineraryId) ?: repository.create(
25+
Itinerary(
26+
id = itineraryId,
27+
name = "Default Itinerary"
28+
)
29+
)!!
3430

31+
_currentItinerary.value = itinerary
3532
}
3633

3734
fun search(query: String) = viewModelScope.launch {
@@ -42,7 +39,7 @@ class MapViewModel(itineraryId: String, private val repository: ItineraryReposit
4239
_currentItinerary.value!!.poiSet.add(poi)
4340
val removed = _currentSearch.value?.remove(poi)
4441
_currentItinerary.value = _currentItinerary.value
45-
if(removed == true) _currentSearch.value = _currentSearch.value
42+
if (removed == true) _currentSearch.value = _currentSearch.value
4643
}
4744

4845
fun removePOI(poi: POI) {
@@ -59,9 +56,9 @@ class MapViewModel(itineraryId: String, private val repository: ItineraryReposit
5956
repository.update(itinerary)
6057
}
6158

62-
class Factory(private val itineraryId: String, private val repository: ItineraryRepository) :
59+
class Factory(private val repository: ItineraryRepository) :
6360
ViewModelProvider.NewInstanceFactory() {
6461
override fun <T : ViewModel> create(modelClass: Class<T>): T =
65-
MapViewModel(itineraryId, repository) as T
62+
MapViewModel(repository) as T
6663
}
6764
}

App/app/src/main/java/com/unibg/magellanus/app/itinerary/viewmodel/POIListViewModel.kt

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import com.unibg.magellanus.app.itinerary.model.POI
77
import com.unibg.magellanus.app.route.model.Coordinates
88
import kotlinx.coroutines.launch
99

10-
class POIListViewModel(itineraryId: String, private val repository: ItineraryRepository) :
10+
class POIListViewModel(private val repository: ItineraryRepository) :
1111
ViewModel() {
1212

1313
private val _currentItinerary: MutableLiveData<Itinerary> = MutableLiveData()
@@ -16,11 +16,9 @@ class POIListViewModel(itineraryId: String, private val repository: ItineraryRep
1616

1717
val poiList: LiveData<List<POI>> = _currentItinerary.map { it.poiSet.toList() }
1818

19-
init {
20-
viewModelScope.launch {
21-
val itinerary = repository.getAllInfo(itineraryId)!!
22-
_currentItinerary.value = itinerary
23-
}
19+
fun load(itineraryId: String) = viewModelScope.launch {
20+
val itinerary = repository.getAllInfo(itineraryId)!!
21+
_currentItinerary.value = itinerary
2422
}
2523

2624
fun selectPOI(poi: POI, isChecked: Boolean) {
@@ -41,9 +39,9 @@ class POIListViewModel(itineraryId: String, private val repository: ItineraryRep
4139
repository.update(itinerary)
4240
}
4341

44-
class Factory(private val itineraryId: String, private val repository: ItineraryRepository) :
42+
class Factory(private val repository: ItineraryRepository) :
4543
ViewModelProvider.NewInstanceFactory() {
4644
override fun <T : ViewModel> create(modelClass: Class<T>): T =
47-
POIListViewModel(itineraryId, repository) as T
45+
POIListViewModel(repository) as T
4846
}
4947
}

App/app/src/main/java/com/unibg/magellanus/app/route/model/network/RouteAPI.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package com.unibg.magellanus.app.route.model.network
22

33
import com.unibg.magellanus.app.common.network.AuthInterceptor
44
import com.unibg.magellanus.app.route.model.Route
5-
import com.unibg.magellanus.app.user.auth.AuthenticationProvider
5+
import com.unibg.magellanus.app.auth.AuthenticationProvider
66
import okhttp3.OkHttpClient
77
import okhttp3.logging.HttpLoggingInterceptor
88
import retrofit2.Response

App/app/src/main/java/com/unibg/magellanus/app/route/view/RoutedPOIListFragment.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import com.unibg.magellanus.app.route.model.RoutedPOI
2222
import com.unibg.magellanus.app.route.model.network.MatrixAPI
2323
import com.unibg.magellanus.app.route.model.network.RouteAPI
2424
import com.unibg.magellanus.app.route.viewmodel.RoutedPOIListViewModel
25-
import com.unibg.magellanus.app.user.auth.impl.FirebaseAuthenticationProvider
25+
import com.unibg.magellanus.app.auth.impl.FirebaseAuthenticationProvider
2626
import kotlinx.coroutines.launch
2727

2828
class RoutedPOIListFragment : Fragment() {
@@ -41,12 +41,12 @@ class RoutedPOIListFragment : Fragment() {
4141
for (i in coordinates.indices)
4242
current.add(RoutedPOI(name = names[i], coordinates = coordinates[i]))
4343

44-
val provider = FirebaseAuthenticationProvider
44+
val provider = FirebaseAuthenticationProvider()
4545
val api = RouteAPI.create(provider)
4646
val matrixAPI = MatrixAPI.create(requireContext().cacheDir)
4747
val repository = RouteRepositoryImpl(api, matrixAPI)
4848

49-
RoutedPOIListViewModel.Factory(itineraryId, repository)
49+
RoutedPOIListViewModel.Factory(repository)
5050
}
5151

5252
private lateinit var navController: NavController
@@ -148,7 +148,7 @@ class RoutedPOIListFragment : Fragment() {
148148
viewModel.removedIndex.value?.let { removed -> adapter?.notifyItemChanged(removed - 1) }
149149
}
150150

151-
viewModel.updateRoute(current)
151+
viewModel.updateRoute(itineraryId, current)
152152
}
153153

154154
binding.autogenerateBtn.setOnClickListener {

0 commit comments

Comments
 (0)