diff --git a/app/src/main/java/org/groundplatform/android/GroundApplicationModule.kt b/app/src/main/java/org/groundplatform/android/GroundApplicationModule.kt index ac3075c111..027dbce3a9 100644 --- a/app/src/main/java/org/groundplatform/android/GroundApplicationModule.kt +++ b/app/src/main/java/org/groundplatform/android/GroundApplicationModule.kt @@ -45,9 +45,4 @@ object GroundApplicationModule { @Singleton fun provideWorkManager(@ApplicationContext context: Context): WorkManager = WorkManager.getInstance(context) - - @Provides - @UnifyCaptureLocationTask - @Suppress("FunctionOnlyReturningConstant") - fun provideUnifyCaptureLocationTask(): Boolean = false } diff --git a/app/src/main/java/org/groundplatform/android/UnifyCaptureLocationTask.kt b/app/src/main/java/org/groundplatform/android/UnifyCaptureLocationTask.kt deleted file mode 100644 index f94c11ba59..0000000000 --- a/app/src/main/java/org/groundplatform/android/UnifyCaptureLocationTask.kt +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright 2025 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.groundplatform.android - -import javax.inject.Qualifier -import kotlin.annotation.AnnotationRetention.RUNTIME - -@Qualifier @Retention(RUNTIME) annotation class UnifyCaptureLocationTask diff --git a/app/src/main/java/org/groundplatform/android/ui/datacollection/DataCollectionViewModel.kt b/app/src/main/java/org/groundplatform/android/ui/datacollection/DataCollectionViewModel.kt index a9e87320a6..c05c2a8974 100644 --- a/app/src/main/java/org/groundplatform/android/ui/datacollection/DataCollectionViewModel.kt +++ b/app/src/main/java/org/groundplatform/android/ui/datacollection/DataCollectionViewModel.kt @@ -27,7 +27,6 @@ import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch -import org.groundplatform.android.UnifyCaptureLocationTask import org.groundplatform.android.coroutines.ApplicationScope import org.groundplatform.android.coroutines.IoDispatcher import org.groundplatform.android.data.local.room.converter.SubmissionDeltasConverter @@ -69,7 +68,6 @@ internal constructor( private val popups: Provider, private val viewModelFactory: ViewModelFactory, private val dataCollectionInitializer: DataCollectionInitializer, - @UnifyCaptureLocationTask private val unifyCaptureLocationTask: Boolean, ) : AbstractViewModel() { private val _uiState = MutableStateFlow(DataCollectionUiState.Loading) @@ -199,7 +197,7 @@ internal constructor( val viewModel = try { - viewModelFactory.create(getViewModelClass(task.type, unifyCaptureLocationTask)) + viewModelFactory.create(getViewModelClass(task.type)) } catch (e: Exception) { Timber.e(e, "Ignoring task with invalid type: ${task.type}") null @@ -361,10 +359,7 @@ internal constructor( private const val TASK_DRAFT_VALUES = "draftValues" private const val TASK_SHOULD_LOAD_FROM_DRAFT = "shouldLoadFromDraft" - fun getViewModelClass( - taskType: Task.Type, - unifyCaptureLocationTask: Boolean = false, - ): Class = + fun getViewModelClass(taskType: Task.Type): Class = when (taskType) { Task.Type.TEXT -> TextTaskViewModel::class.java Task.Type.MULTIPLE_CHOICE -> MultipleChoiceTaskViewModel::class.java @@ -374,9 +369,7 @@ internal constructor( Task.Type.TIME -> TimeTaskViewModel::class.java Task.Type.DROP_PIN -> DropPinTaskViewModel::class.java Task.Type.DRAW_AREA -> DrawAreaTaskViewModel::class.java - Task.Type.CAPTURE_LOCATION -> - if (unifyCaptureLocationTask) DropPinTaskViewModel::class.java - else CaptureLocationTaskViewModel::class.java + Task.Type.CAPTURE_LOCATION -> CaptureLocationTaskViewModel::class.java Task.Type.INSTRUCTIONS -> InstructionTaskViewModel::class.java Task.Type.UNKNOWN -> throw IllegalArgumentException("Unsupported task type: $taskType") } diff --git a/app/src/main/java/org/groundplatform/android/ui/datacollection/DataCollectionViewPagerAdapter.kt b/app/src/main/java/org/groundplatform/android/ui/datacollection/DataCollectionViewPagerAdapter.kt index fbc07dcb2a..8fffee99c9 100644 --- a/app/src/main/java/org/groundplatform/android/ui/datacollection/DataCollectionViewPagerAdapter.kt +++ b/app/src/main/java/org/groundplatform/android/ui/datacollection/DataCollectionViewPagerAdapter.kt @@ -20,7 +20,6 @@ import androidx.viewpager2.adapter.FragmentStateAdapter import dagger.assisted.Assisted import dagger.assisted.AssistedInject import javax.inject.Provider -import org.groundplatform.android.UnifyCaptureLocationTask import org.groundplatform.android.model.task.Task import org.groundplatform.android.ui.datacollection.tasks.date.DateTaskFragment import org.groundplatform.android.ui.datacollection.tasks.instruction.InstructionTaskFragment @@ -42,7 +41,6 @@ constructor( private val drawAreaTaskFragmentProvider: Provider, private val captureLocationTaskFragmentProvider: Provider, private val dropPinTaskFragmentProvider: Provider, - @UnifyCaptureLocationTask private val unifyCaptureLocationTask: Boolean, @Assisted fragment: Fragment, @Assisted val tasks: List, ) : FragmentStateAdapter(fragment) { @@ -61,12 +59,7 @@ constructor( Task.Type.NUMBER -> NumberTaskFragment() Task.Type.DATE -> DateTaskFragment() Task.Type.TIME -> TimeTaskFragment() - Task.Type.CAPTURE_LOCATION -> - if (unifyCaptureLocationTask) { - dropPinTaskFragmentProvider.get() - } else { - captureLocationTaskFragmentProvider.get() - } + Task.Type.CAPTURE_LOCATION -> captureLocationTaskFragmentProvider.get() Task.Type.INSTRUCTIONS -> InstructionTaskFragment() Task.Type.UNKNOWN -> throw UnsupportedOperationException("Unsupported task type: ${task.type}") diff --git a/app/src/main/java/org/groundplatform/android/ui/datacollection/tasks/point/DropPinTaskMapFragment.kt b/app/src/main/java/org/groundplatform/android/ui/datacollection/tasks/point/DropPinTaskMapFragment.kt index ca828b5173..23c5ab2be6 100644 --- a/app/src/main/java/org/groundplatform/android/ui/datacollection/tasks/point/DropPinTaskMapFragment.kt +++ b/app/src/main/java/org/groundplatform/android/ui/datacollection/tasks/point/DropPinTaskMapFragment.kt @@ -33,12 +33,6 @@ class DropPinTaskMapFragment @Inject constructor() : override fun onMapReady(map: MapFragment) { super.onMapReady(map) - if (taskViewModel.unifyCaptureLocationTask) { - viewLifecycleOwner.lifecycleScope.launch { - taskViewModel.initLocationUpdates(getMapViewModel()) - } - } - // Disable pan/zoom gestures if a marker has been placed on the map. lifecycleScope.launch { taskViewModel.features.asFlow().collect { features -> diff --git a/app/src/main/java/org/groundplatform/android/ui/datacollection/tasks/point/DropPinTaskViewModel.kt b/app/src/main/java/org/groundplatform/android/ui/datacollection/tasks/point/DropPinTaskViewModel.kt index abe6d848c4..32e4a4360d 100644 --- a/app/src/main/java/org/groundplatform/android/ui/datacollection/tasks/point/DropPinTaskViewModel.kt +++ b/app/src/main/java/org/groundplatform/android/ui/datacollection/tasks/point/DropPinTaskViewModel.kt @@ -19,7 +19,6 @@ import androidx.lifecycle.MutableLiveData import androidx.lifecycle.viewModelScope import javax.inject.Inject import kotlinx.coroutines.launch -import org.groundplatform.android.UnifyCaptureLocationTask import org.groundplatform.android.data.local.LocalValueStore import org.groundplatform.android.data.uuid.OfflineUuidGenerator import org.groundplatform.android.model.geometry.Point @@ -36,7 +35,6 @@ class DropPinTaskViewModel constructor( private val uuidGenerator: OfflineUuidGenerator, private val localValueStore: LocalValueStore, - @UnifyCaptureLocationTask val unifyCaptureLocationTask: Boolean, ) : AbstractMapTaskViewModel() { private var pinColor: Int = 0 @@ -49,10 +47,6 @@ constructor( super.initialize(job, task, taskData) pinColor = job.getDefaultColor() - if (unifyCaptureLocationTask) { - captureLocation = task.type == Task.Type.CAPTURE_LOCATION - } - // Drop a marker for current value (taskData as? DropPinTaskData)?.let { dropMarker(it.location) } }