Tutorial

image

Welcome to D2D Ministry App

Welcome to the official tutorial page for the D2D Ministry App! This video library is designed to help you navigate trough every tool with confidence. 
Here, you will find step-by-step tutorials covering each core feature:
1. Notice of Event (NOE): Learn how to document your field ministry conversations, track interest levels, and schedule timely return visits.
2. Message: Learn how to create personalized text, audio, or video messages paired with scannable Q
codes for householders.

3. Return Visits: Learn how to manage ongoing visits, review conversation history, and seamlessly share follow-ups with your service group.
4. Do Not Call (DNC): Learn how to record, search, and synchronize territory Do Not Call requests to maintain accurate, respectful records.
5. Chat: Learn to communicate with individuals or service Groups, and participate in other D2D groups—all from one convenient location. 

6. Groups: Learn to build manage group communications- all at one convenient location.
7. Events: Learn how to create gathering events, RSVP guest lists, and other on-site security.
8. Attendants: Learn how to manage event access & monitor security levels.
9. Notifications: Learn how to be updated on important activities & changes within the network.
                                       
10. Settings: Learn how to manage your profile, customize preferences and organize essential data—all from one convenient location.
You can explore the tutorial videos below to get the most out of the D2D Ministry App.

image

this is bike sample video

I would redesign it with a more modern

Understood. You want the SharedAddressTile UI to be exactly the same as the TerritoryAddressTile UI—no new layout, no extra sections, and no other functional changes.

Update the existing Flutter UI/code to support Select All and Deselect All functionality.

Requirements

  1. Add both options:

    • Select All

    • Deselect All

  2. Only one option can be active at a time.

    • When Select All is active, Deselect All must be inactive.

    • When Deselect All is active, Select All must be inactive.

  3. When the user clicks Select All:

    • Mark all list items as selected/checked.

    • Update the UI immediately so every list item shows its selected state.

    • Enable/show the Share button/icon.

    • The active option should clearly indicate that Select All is selected.

    • Deselect All should not appear as the active option.

  4. When the user clicks Deselect All:

    • Uncheck every list item.

    • Update the UI immediately.

    • Hide/disable the Share button/icon because no item is selected.

    • Show only the Deselect All icon/action in its active state.

    • Make sure all list items visually return to their unselected state.

  5. If individual item selection already exists:

    • Keep the existing individual selection functionality.

    • Do not break the current selection logic.

    • The Select All/Deselect All state must stay synchronized with the actual list item selections.

  6. Important UI requirement:

    • Do not redesign the existing UI.

    • Do not change spacing, colors, fonts, card design, list layout, buttons, or existing components.

    • Make only the minimum required changes to implement Select All/Deselect All.

    • Preserve all existing API calls, controllers, models, navigation, and business logic.

  7. Make sure the implementation handles:

    • Empty list.

    • Select All → all items checked.

    • Deselect All → all items unchecked.

    • Selecting/unselecting individual items after Select All.

    • Share button/icon visibility based on whether at least one item is selected.

Please provide the complete updated Flutter code, not just snippets, and clearly indicate only the parts that were changed.