Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ package org.groundplatform.android.data.local.room.converter

import com.google.common.reflect.TypeToken
import com.google.gson.Gson
import java.util.*
import java.util.Date
import kotlinx.collections.immutable.toPersistentList
import kotlinx.collections.immutable.toPersistentMap
import org.groundplatform.android.data.local.LocalDataConsistencyException
Expand Down Expand Up @@ -54,9 +54,6 @@ import org.groundplatform.android.data.local.room.relations.TaskEntityAndRelatio
import org.groundplatform.android.model.AuditInfo
import org.groundplatform.android.model.Survey
import org.groundplatform.android.model.User
import org.groundplatform.android.model.geometry.Coordinates
import org.groundplatform.android.model.geometry.Geometry
import org.groundplatform.android.model.geometry.Point
import org.groundplatform.android.model.imagery.OfflineArea
import org.groundplatform.android.model.job.Job
import org.groundplatform.android.model.job.Job.DataCollectionStrategy
Expand All @@ -75,6 +72,9 @@ import org.groundplatform.android.model.task.Option
import org.groundplatform.android.model.task.Task
import org.groundplatform.android.model.task.TaskId
import org.groundplatform.android.proto.Survey.DataSharingTerms
import org.groundplatform.domain.model.geometry.Coordinates
import org.groundplatform.domain.model.geometry.Geometry
import org.groundplatform.domain.model.geometry.Point
import org.json.JSONObject
import timber.log.Timber

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import kotlinx.serialization.decodeFromByteArray
import kotlinx.serialization.encodeToByteArray
import kotlinx.serialization.protobuf.ProtoBuf
import org.groundplatform.android.data.local.room.entity.GeometryWrapper
import org.groundplatform.android.model.geometry.Geometry
import org.groundplatform.domain.model.geometry.Geometry
import org.json.JSONException
import timber.log.Timber

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,6 @@ import kotlinx.collections.immutable.toPersistentList
import org.groundplatform.android.data.remote.DataStoreException
import org.groundplatform.android.data.remote.firebase.schema.CaptureLocationResultConverter.toCaptureLocationTaskData
import org.groundplatform.android.data.remote.firebase.schema.CaptureLocationResultConverter.toJSONObject
import org.groundplatform.android.model.geometry.LineString
import org.groundplatform.android.model.geometry.Point
import org.groundplatform.android.model.geometry.Polygon
import org.groundplatform.android.model.submission.CaptureLocationTaskData
import org.groundplatform.android.model.submission.DateTimeTaskData
import org.groundplatform.android.model.submission.DrawAreaTaskData
Expand All @@ -35,6 +32,9 @@ import org.groundplatform.android.model.submission.SkippedTaskData
import org.groundplatform.android.model.submission.TaskData
import org.groundplatform.android.model.submission.TextTaskData
import org.groundplatform.android.model.task.Task
import org.groundplatform.domain.model.geometry.LineString
import org.groundplatform.domain.model.geometry.Point
import org.groundplatform.domain.model.geometry.Polygon
import org.json.JSONArray
import org.json.JSONException
import org.json.JSONObject
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@
*/
package org.groundplatform.android.data.local.room.entity

import org.groundplatform.android.model.geometry.Geometry
import org.groundplatform.android.model.geometry.LineString
import org.groundplatform.android.model.geometry.MultiPolygon
import org.groundplatform.android.model.geometry.Point
import org.groundplatform.android.model.geometry.Polygon
import org.groundplatform.domain.model.geometry.Geometry
import org.groundplatform.domain.model.geometry.LineString
import org.groundplatform.domain.model.geometry.MultiPolygon
import org.groundplatform.domain.model.geometry.Point
import org.groundplatform.domain.model.geometry.Polygon

data class GeometryWrapper(
/** Non-null iff this geometry is a point. */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,6 @@ import com.google.protobuf.timestamp
import java.util.Date
import kotlinx.collections.immutable.toImmutableMap
import org.groundplatform.android.model.User
import org.groundplatform.android.model.geometry.Coordinates
import org.groundplatform.android.model.geometry.Geometry
import org.groundplatform.android.model.geometry.LineString
import org.groundplatform.android.model.geometry.LinearRing
import org.groundplatform.android.model.geometry.MultiPolygon
import org.groundplatform.android.model.geometry.Point
import org.groundplatform.android.model.geometry.Polygon
import org.groundplatform.android.model.locationofinterest.LoiProperties
import org.groundplatform.android.model.mutation.LocationOfInterestMutation
import org.groundplatform.android.model.mutation.Mutation
Expand Down Expand Up @@ -59,6 +52,13 @@ import org.groundplatform.android.proto.locationOfInterest
import org.groundplatform.android.proto.point
import org.groundplatform.android.proto.submission
import org.groundplatform.android.proto.taskData
import org.groundplatform.domain.model.geometry.Coordinates
import org.groundplatform.domain.model.geometry.Geometry
import org.groundplatform.domain.model.geometry.LineString
import org.groundplatform.domain.model.geometry.LinearRing
import org.groundplatform.domain.model.geometry.MultiPolygon
import org.groundplatform.domain.model.geometry.Point
import org.groundplatform.domain.model.geometry.Polygon

fun SubmissionMutation.createSubmissionMessage(user: User) = submission {
assert(userId == user.id) { "UserId doesn't match: expected $userId, found ${user.id}" }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
package org.groundplatform.android.data.remote.firebase.schema

import org.groundplatform.android.data.local.room.converter.GeometryWrapperTypeConverter
import org.groundplatform.android.model.geometry.Point
import org.groundplatform.android.model.submission.CaptureLocationTaskData
import org.groundplatform.domain.model.geometry.Point
import org.json.JSONObject

/** Converts between [CaptureLocationTaskData] and its equivalent [JSONObject] representation. */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,17 @@

package org.groundplatform.android.data.remote.firebase.schema

import org.groundplatform.android.model.geometry.Coordinates
import org.groundplatform.android.model.geometry.Geometry
import org.groundplatform.android.model.geometry.LinearRing
import org.groundplatform.android.model.geometry.MultiPolygon
import org.groundplatform.android.model.geometry.Point
import org.groundplatform.android.model.geometry.Polygon
import org.groundplatform.android.proto.Geometry as GeometryProto
import org.groundplatform.android.proto.LinearRing as LinearRingProto
import org.groundplatform.android.proto.MultiPolygon as MultiPolygonProto
import org.groundplatform.android.proto.Point as PointProto
import org.groundplatform.android.proto.Polygon as PolygonProto
import org.groundplatform.domain.model.geometry.Coordinates
import org.groundplatform.domain.model.geometry.Geometry
import org.groundplatform.domain.model.geometry.LinearRing
import org.groundplatform.domain.model.geometry.MultiPolygon
import org.groundplatform.domain.model.geometry.Point
import org.groundplatform.domain.model.geometry.Polygon

/**
* Converts between Geometry model objects and their equivalent remote representation using protos.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@
package org.groundplatform.android.model.locationofinterest

import org.groundplatform.android.model.AuditInfo
import org.groundplatform.android.model.geometry.Geometry
import org.groundplatform.android.model.job.Job
import org.groundplatform.android.model.mutation.LocationOfInterestMutation
import org.groundplatform.android.model.mutation.Mutation
import org.groundplatform.android.model.mutation.Mutation.SyncStatus
import org.groundplatform.domain.model.geometry.Geometry

/** Alias for a map of properties with string names. */
typealias LoiProperties = Map<String, Any>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
*/
package org.groundplatform.android.model.map

import org.groundplatform.android.model.geometry.Coordinates
import org.groundplatform.domain.model.geometry.Coordinates

/**
* Represents a rectangular bound on a map. A bounds may be constructed using only southwest and
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
*/
package org.groundplatform.android.model.map

import org.groundplatform.android.model.geometry.Coordinates
import org.groundplatform.domain.model.geometry.Coordinates
import timber.log.Timber

/** Represents current camera position of the map. */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
package org.groundplatform.android.model.mutation

import java.util.Date
import org.groundplatform.android.model.geometry.Geometry
import org.groundplatform.android.model.locationofinterest.LoiProperties
import org.groundplatform.domain.model.geometry.Geometry

data class LocationOfInterestMutation(
override val id: Long? = null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
*/
package org.groundplatform.android.model.submission

import org.groundplatform.android.model.geometry.Point
import org.groundplatform.android.proto.Task
import org.groundplatform.domain.model.geometry.Point

/** User-provided response to a "capture location" data collection [Task]. */
data class CaptureLocationTaskData(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@
*/
package org.groundplatform.android.model.submission

import org.groundplatform.android.model.geometry.Geometry
import org.groundplatform.android.model.geometry.LineString
import org.groundplatform.android.model.geometry.Point
import org.groundplatform.android.model.geometry.Polygon
import org.groundplatform.android.model.task.Task
import org.groundplatform.domain.model.geometry.Geometry
import org.groundplatform.domain.model.geometry.LineString
import org.groundplatform.domain.model.geometry.Point
import org.groundplatform.domain.model.geometry.Polygon

/** A user-provided response to a geometry-based task ("drop a pin" or "draw an area"). */
sealed class GeometryTaskData(val geometry: Geometry) : TaskData
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ import org.groundplatform.android.data.sync.MutationSyncWorkManager
import org.groundplatform.android.data.uuid.OfflineUuidGenerator
import org.groundplatform.android.model.Role
import org.groundplatform.android.model.Survey
import org.groundplatform.android.model.geometry.Geometry
import org.groundplatform.android.model.job.Job
import org.groundplatform.android.model.locationofinterest.LocationOfInterest
import org.groundplatform.android.model.locationofinterest.generateProperties
Expand All @@ -42,6 +41,7 @@ import org.groundplatform.android.model.mutation.Mutation.SyncStatus
import org.groundplatform.android.proto.Survey.DataVisibility
import org.groundplatform.android.system.auth.AuthenticationManager
import org.groundplatform.android.ui.map.gms.GmsExt.contains
import org.groundplatform.domain.model.geometry.Geometry
import timber.log.Timber

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.withContext
import org.groundplatform.android.R
import org.groundplatform.android.di.coroutines.IoDispatcher
import org.groundplatform.android.model.geometry.Coordinates
import org.groundplatform.android.model.map.Bounds
import org.groundplatform.android.ui.map.gms.GmsExt.center
import org.groundplatform.domain.model.geometry.Coordinates
import timber.log.Timber

/** Abstracts native geocoding facilities. */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import android.content.Context
import com.google.android.gms.location.LocationServices
import com.google.android.gms.location.LocationSettingsRequest
import com.google.android.gms.location.LocationSettingsResponse
import com.google.android.gms.location.SettingsClient
import dagger.hilt.android.qualifiers.ApplicationContext
import javax.inject.Inject
import kotlinx.coroutines.tasks.await
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ import androidx.compose.runtime.getValue
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import javax.inject.Inject
import org.groundplatform.android.R
import org.groundplatform.android.model.geometry.Coordinates
import org.groundplatform.android.model.map.Bounds
import org.groundplatform.android.system.GeocodingManager
import org.groundplatform.android.system.PermissionDeniedException
Expand All @@ -35,6 +34,7 @@ import org.groundplatform.android.ui.map.NewCameraPositionViaBounds
import org.groundplatform.android.ui.map.NewCameraPositionViaCoordinates
import org.groundplatform.android.ui.map.NewCameraPositionViaCoordinatesAndZoomLevel
import org.groundplatform.android.util.createComposeView
import org.groundplatform.domain.model.geometry.Coordinates
import timber.log.Timber

/** Injects a [MapFragment] in the container with id "map" and provides shared map functionality. */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@ import kotlinx.coroutines.flow.withIndex
import kotlinx.coroutines.launch
import org.groundplatform.android.common.Constants.DEFAULT_LOI_ZOOM_LEVEL
import org.groundplatform.android.model.Survey
import org.groundplatform.android.model.geometry.Coordinates
import org.groundplatform.android.model.imagery.TileSource
import org.groundplatform.android.model.map.CameraPosition
import org.groundplatform.android.model.map.MapType
Expand All @@ -65,6 +64,7 @@ import org.groundplatform.android.ui.map.NewCameraPositionViaCoordinates
import org.groundplatform.android.ui.map.NewCameraPositionViaCoordinatesAndZoomLevel
import org.groundplatform.android.ui.map.gms.GmsExt.toBounds
import org.groundplatform.android.ui.map.gms.toCoordinates
import org.groundplatform.domain.model.geometry.Coordinates
import timber.log.Timber

open class BaseMapViewModel
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@ package org.groundplatform.android.ui.common
import android.content.res.Resources
import javax.inject.Inject
import org.groundplatform.android.R
import org.groundplatform.android.model.geometry.Geometry
import org.groundplatform.android.model.geometry.MultiPolygon
import org.groundplatform.android.model.geometry.Point
import org.groundplatform.android.model.geometry.Polygon
import org.groundplatform.android.model.locationofinterest.LOI_NAME_PROPERTY
import org.groundplatform.android.model.locationofinterest.LocationOfInterest
import org.groundplatform.domain.model.geometry.Geometry
import org.groundplatform.domain.model.geometry.MultiPolygon
import org.groundplatform.domain.model.geometry.Point
import org.groundplatform.domain.model.geometry.Polygon

/** Helper class for creating user-visible text. */
class LocationOfInterestHelper @Inject internal constructor(private val resources: Resources) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import org.groundplatform.android.model.task.Task
import org.groundplatform.android.repository.LocationOfInterestRepository
import org.groundplatform.android.repository.SurveyRepository
import org.groundplatform.android.ui.common.LocationOfInterestHelper
import org.groundplatform.android.ui.datacollection.DataCollectionInitializer.Companion.TASK_POSITION_ID

/**
* DataCollectionInitializer
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import android.location.Location
import androidx.annotation.VisibleForTesting
import androidx.lifecycle.viewModelScope
import javax.inject.Inject
import kotlin.lazy
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.SharingStarted.Companion.WhileSubscribed
Expand All @@ -31,7 +30,6 @@ import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.stateIn
import kotlinx.coroutines.flow.update
import org.groundplatform.android.common.Constants.ACCURACY_THRESHOLD_IN_M
import org.groundplatform.android.model.geometry.Point
import org.groundplatform.android.model.submission.CaptureLocationTaskData
import org.groundplatform.android.model.submission.TaskData
import org.groundplatform.android.model.submission.isNullOrEmpty
Expand All @@ -42,6 +40,7 @@ import org.groundplatform.android.ui.datacollection.tasks.LocationLockEnabledSta
import org.groundplatform.android.ui.map.gms.getAccuracyOrNull
import org.groundplatform.android.ui.map.gms.getAltitudeOrNull
import org.groundplatform.android.ui.map.gms.toCoordinates
import org.groundplatform.domain.model.geometry.Point

class CaptureLocationTaskViewModel @Inject constructor() : AbstractMapTaskViewModel() {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ import javax.inject.Inject
import kotlinx.coroutines.launch
import org.groundplatform.android.data.local.LocalValueStore
import org.groundplatform.android.data.uuid.OfflineUuidGenerator
import org.groundplatform.android.model.geometry.Point
import org.groundplatform.android.model.job.Job
import org.groundplatform.android.model.job.getDefaultColor
import org.groundplatform.android.model.submission.DropPinTaskData
Expand All @@ -33,6 +32,7 @@ import org.groundplatform.android.ui.datacollection.components.ButtonActionState
import org.groundplatform.android.ui.datacollection.tasks.AbstractMapTaskViewModel
import org.groundplatform.android.ui.datacollection.tasks.TaskPositionInterface
import org.groundplatform.android.ui.map.Feature
import org.groundplatform.domain.model.geometry.Point

class DropPinTaskViewModel
@Inject
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,6 @@ import kotlinx.coroutines.launch
import org.groundplatform.android.R
import org.groundplatform.android.data.local.LocalValueStore
import org.groundplatform.android.data.uuid.OfflineUuidGenerator
import org.groundplatform.android.model.geometry.Coordinates
import org.groundplatform.android.model.geometry.LineString
import org.groundplatform.android.model.geometry.LinearRing
import org.groundplatform.android.model.geometry.Polygon
import org.groundplatform.android.model.job.Job
import org.groundplatform.android.model.job.getDefaultColor
import org.groundplatform.android.model.settings.MeasurementUnits
Expand All @@ -56,12 +52,16 @@ import org.groundplatform.android.ui.datacollection.tasks.TaskPositionInterface
import org.groundplatform.android.ui.map.Feature
import org.groundplatform.android.ui.util.LocaleAwareMeasureFormatter
import org.groundplatform.android.ui.util.VibrationHelper
import org.groundplatform.android.ui.util.calculateShoelacePolygonArea
import org.groundplatform.android.ui.util.getFormattedArea
import org.groundplatform.android.ui.util.isSelfIntersecting
import org.groundplatform.android.usecases.user.GetUserSettingsUseCase
import org.groundplatform.android.util.distanceTo
import org.groundplatform.android.util.penult
import org.groundplatform.domain.model.geometry.Coordinates
import org.groundplatform.domain.model.geometry.LineString
import org.groundplatform.domain.model.geometry.LinearRing
import org.groundplatform.domain.model.geometry.Polygon
import org.groundplatform.domain.util.calculateShoelacePolygonArea
import org.groundplatform.domain.util.isSelfIntersecting
import org.jetbrains.annotations.VisibleForTesting
import timber.log.Timber

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ import org.groundplatform.android.ui.home.mapcontainer.jobs.DataCollectionEntryP
import org.groundplatform.android.ui.home.mapcontainer.jobs.JobMapComponentState
import org.groundplatform.android.ui.home.mapcontainer.jobs.SelectedLoiSheetData
import org.groundplatform.android.ui.map.Feature
import org.groundplatform.android.ui.map.gms.GmsExt.area
import org.groundplatform.android.usecases.datasharingterms.GetDataSharingTermsUseCase

@OptIn(ExperimentalCoroutinesApi::class)
Expand Down Expand Up @@ -244,7 +245,7 @@ internal constructor(
* list of provided features is empty.
*/
fun onFeatureClicked(features: Set<Feature>) {
featureClicked.value = features.minByOrNull { it.geometry.area }
featureClicked.value = features.minByOrNull { it.geometry.area() }
}

fun grantDataSharingConsent() {
Expand Down
Loading
Loading