ground-android icon indicating copy to clipboard operation
ground-android copied to clipboard

Ground mobile data collection app for Android

Results 505 ground-android issues
Sort by recently updated
recently updated
newest added

The path `ground-android/ground` is slightly confusing, and seems to imply the level about it is not actually part of `ground`. Perhaps the default `app` would be more appropriate here? @scolsen...

good first issue
type: code health

I think our overall approach and design will be simplified if we dumb down the logic the `MutationRepository` offers and offload some processing into methods defined directly on our mutation...

type: code health

Merge the two flows, survey list & survey list state into one.

good first issue
type: code health

The proposal is the have the following Maps SDK agnostic classes: * class MapViewModel * exposes source-of-truth states (CameraPosition) as `StateFlow`s or `LiveData`s * exposes map events as `ShareFlow`s *...

type: code health

@shobhitagarwal1612 @JSunde, rough design: ![image](https://github.com/google/ground-android/assets/228050/9bcc8ffd-d5da-4c0d-9b29-39c192cbc97e)

type: code health

``` 12:28:14.601 E java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Map at com.google.android.ground.persistence.remote.firebase.schema.GeometryConverter.fromFirestoreGeometry(GeometryConverter.kt:93) at com.google.android.ground.persistence.remote.firebase.schema.GeometryConverter.fromFirestoreMap-IoAF18A(GeometryConverter.kt:82) at com.google.android.ground.persistence.remote.firebase.schema.LoiConverter.toLoiUnchecked(LoiConverter.kt:47) at com.google.android.ground.persistence.remote.firebase.schema.LoiConverter.toLoi-gIAlu-s(LoiConverter.kt:38) at com.google.android.ground.persistence.remote.firebase.schema.LoiCollectionReference$toLois$2.invokeSuspend(LoiCollectionReference.kt:41) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ... ```

type: code health

Code health improvements which came up while fixing #2129: Recommended: - [ ] Warn and ignore mutations not belonging to current signed in user (#2237) - [ ] Wrap `remoteDataStore.applyMutations`...

type: code health

Adapter for Coroutines might look something like this: ```kt internal class CancellableGeocodeListener( private val cont: CancellableContinuation ) : GeocodeListener { @OptIn(ExperimentalCoroutinesApi::class) override fun onGeocode(addresses: MutableList) = cont.resume(addresses) override fun onError(errorMessage:...

type: code health

We have some functions throughout the app that are called `on...Result...` `on...Click...` and similar. These names are really opaque and do not convey anything about the actual behavior that's happening...

type: code health

Adds basic types for representing media and media mutations separately from other mutations. Media mutations are dependent on submission mutations, but using a more fine-grained representation allows us to both...