Description
Add a location field to the Create Task screen that allows premium users to attach a location to a task. The location field stores latitude and longitude coordinates.
The field is shown as an "Add location" label/button. Tapping it opens a location picker where the user can search for a place or drop a pin on a map. Once selected, the location name, coordinates, and a small static image of the place are displayed. Tapping the image opens the location picker again to change the location. An X button next to the image removes the location.
If the user is not premium, the location field shows a lock icon and a premium-upsell label. Tapping it opens the RevenueCat paywall.
Depends on #121 (Create task screen — core fields), #130 (Premium gating infrastructure).
Scope
In scope: location field on Create Task screen, location picker (search + map pin), premium gating with upsell CTA, saving latitude/longitude on the task entity, small place image display, removing a location, and string resources.
Out of scope: location map on Task Detail screen (#131), sort by proximity (#29), embedded map editing.
Acceptance criteria
Description
Add a location field to the Create Task screen that allows premium users to attach a location to a task. The location field stores latitude and longitude coordinates.
The field is shown as an "Add location" label/button. Tapping it opens a location picker where the user can search for a place or drop a pin on a map. Once selected, the location name, coordinates, and a small static image of the place are displayed. Tapping the image opens the location picker again to change the location. An X button next to the image removes the location.
If the user is not premium, the location field shows a lock icon and a premium-upsell label. Tapping it opens the RevenueCat paywall.
Depends on #121 (Create task screen — core fields), #130 (Premium gating infrastructure).
Scope
In scope: location field on Create Task screen, location picker (search + map pin), premium gating with upsell CTA, saving latitude/longitude on the task entity, small place image display, removing a location, and string resources.
Out of scope: location map on Task Detail screen (#131), sort by proximity (#29), embedded map editing.
Acceptance criteria
WHEN the screen renders
THEN an "Add location" label/button is visible
WHEN the location picker opens
THEN the user can search for a place or drop a pin on a map
WHEN they confirm the selection
THEN the location name, coordinates, and a small static image of the place are saved on the task and the field shows the place image and location name
WHEN the user taps the place image
THEN the location picker opens to change the location
WHEN the user taps the X button next to the place image
THEN the location is cleared from the task and the field reverts to "Add location"
WHEN the screen renders
THEN the location field shows a lock icon and a premium-upsell label
WHEN the action occurs
THEN the RevenueCat paywall is presented
WHEN the app renders it
THEN all visible text comes from string resources