@@ -19,18 +19,30 @@ import com.woozoo.menumonya.Constants.Companion.LATLNG_YS
1919import com.woozoo.menumonya.Constants.Companion.MAP_DEFAULT_ZOOM
2020import com.woozoo.menumonya.Constants.Companion.MAP_MIN_ZOOM
2121import com.woozoo.menumonya.model.Restaurant
22- import com.woozoo.menumonya.repository.FireStoreRepository.getRestaurantInLocation
23- import com.woozoo.menumonya.repository.RemoteConfigRepository.getFeedbackUrlConfig
24- import com.woozoo.menumonya.repository.RemoteConfigRepository.getLatestAppVersionConfig
22+ import com.woozoo.menumonya.repository.FireStoreRepository
23+ import com.woozoo.menumonya.repository.RemoteConfigRepository
24+ import com.woozoo.menumonya.util.AnalyticsUtils
25+ import com.woozoo.menumonya.util.AnalyticsUtils.Companion.CONTENT_TYPE_LOCATION
26+ import com.woozoo.menumonya.util.AnalyticsUtils.Companion.CONTENT_TYPE_MARKER
27+ import com.woozoo.menumonya.util.AnalyticsUtils.Companion.CONTENT_TYPE_VIEW_PAGER
2528import com.woozoo.menumonya.util.LocationUtils.Companion.requestLocationUpdateOnce
2629import com.woozoo.menumonya.util.PermissionUtils.Companion.isGpsPermissionAllowed
2730import com.woozoo.menumonya.util.PermissionUtils.Companion.isLocationPermissionAllowed
31+ import dagger.hilt.android.lifecycle.HiltViewModel
2832import kotlinx.coroutines.flow.MutableSharedFlow
2933import kotlinx.coroutines.flow.asSharedFlow
3034import kotlinx.coroutines.launch
3135import java.lang.Double.parseDouble
36+ import javax.inject.Inject
37+
38+ @HiltViewModel
39+ class MainViewModel @Inject constructor(
40+ application : Application ,
41+ private val fireStoreRepository : FireStoreRepository ,
42+ private val remoteConfigRepository : RemoteConfigRepository ,
43+ private val analyticsUtils : AnalyticsUtils
44+ ): AndroidViewModel(Application ()) {
3245
33- class MainViewModel (application : Application ): AndroidViewModel(Application ()) {
3446 private val LOCATION_PERMISSION_REQUEST_CODE = 1000
3547
3648 private val _eventFlow = MutableSharedFlow <Event >()
@@ -99,6 +111,8 @@ class MainViewModel(application: Application): AndroidViewModel(Application()) {
99111
100112 naverMap.setContentPadding(0 , 0 , 0 , context().resources.getDimensionPixelOffset(R .dimen.restaurant_item_height))
101113 naverMap.moveCamera(CameraUpdate .scrollTo(coord).animate(CameraAnimation .None ))
114+
115+ analyticsUtils.saveContentSelectionLog(CONTENT_TYPE_VIEW_PAGER , mRestaurantInfoArray[markerIndex].name)
102116 }
103117 }
104118
@@ -131,9 +145,10 @@ class MainViewModel(application: Application): AndroidViewModel(Application()) {
131145 " 역삼" -> moveCameraCoord(LATLNG_YS .latitude, LATLNG_YS .longitude)
132146 }
133147
134- mRestaurantInfoArray = getRestaurantInLocation(location)
135-
148+ mRestaurantInfoArray = fireStoreRepository.getRestaurantInLocation(location)
136149 setMarkers(mRestaurantInfoArray)
150+
151+ analyticsUtils.saveContentSelectionLog(CONTENT_TYPE_LOCATION , location)
137152 }
138153 }
139154
@@ -158,6 +173,7 @@ class MainViewModel(application: Application): AndroidViewModel(Application()) {
158173 icon = OverlayImage .fromResource(R .drawable.restaurant_marker)
159174 setOnClickListener {
160175 onMarkerClicked(index, selectedLocation)
176+ analyticsUtils.saveContentSelectionLog(CONTENT_TYPE_MARKER , restaurant.name)
161177 true
162178 }
163179 }
@@ -203,7 +219,7 @@ class MainViewModel(application: Application): AndroidViewModel(Application()) {
203219 }
204220
205221 fun checkLatestAppVersion () {
206- val latestAppVersion = getLatestAppVersionConfig()
222+ val latestAppVersion = remoteConfigRepository. getLatestAppVersionConfig()
207223 val currentAppVersion = BuildConfig .VERSION_CODE
208224
209225 if (latestAppVersion.toInt() > currentAppVersion) {
@@ -212,7 +228,7 @@ class MainViewModel(application: Application): AndroidViewModel(Application()) {
212228 }
213229
214230 fun getFeedbackUrl (): String {
215- return getFeedbackUrlConfig()
231+ return remoteConfigRepository. getFeedbackUrlConfig()
216232 }
217233
218234 private fun showToast (text : String ) {
0 commit comments