Skip to content

chore(flags): retire ContactPickerMode and FrostedTipCard - #1583

Merged
bmc08gt merged 1 commit into
code/cashfrom
chore/retire-picker-and-frosted-flags
Sep 28, 2026
Merged

bmc08gt merged 1 commit into
code/cashfrom
chore/retire-picker-and-frosted-flags

Conversation

@bmc08gt

@bmc08gt bmc08gt commented Sep 28, 2026

Copy link
Copy Markdown
Collaborator

Removes two Labs flags. Neither changes what users see.

FrostedTipCard has had no reader since #1220 took out the frosted backdrop and left the flag behind. This is a plain deletion.

ContactPickerMode is retired as off, which is the READ_CONTACTS full-access path every user already runs. Graduating it wasn't an option: the picker lost its only entry point when direct-send was removed (#1419), and ContactCoordinator.addPickedContacts has no callers. With the flag on, onboarding would skip the contacts permission step and the reader would switch to an empty picker store.

  • FeatureFlag.ContactPickerMode and FeatureFlag.FrostedTipCard go, along with their title / message entries and the android.os.Build import that only the picker flag used.
  • ScopeAwareContactReader always reads through FullAccessContactReader, and still falls back to picked contacts when that read fails. isPermissionRevoked() no longer short-circuits for picker mode.
  • PermissionsPhaseFlowHost always includes the contacts permission step unless skipContacts is set, and resumeAt no longer keys on the flag.
  • :apps:flipcash:shared:featureflags leaves shared/contacts/build.gradle.kts, because the reader was the module's only FeatureFlag reference.

PickerContactReader, rememberContactAccessHandle's picker launcher, and addPickedContacts / removeSelectedContact are left in place for when the picker gets a new entry point.

Both DataStore keys stay behind unread, the same as the other retired flags.

FrostedTipCard has had no reader since #1220 removed the frosted backdrop and
left the flag in place.

ContactPickerMode is retired as off, which is what every user already gets. The
picker path lost its only entry point when direct-send went (#1419), so turning
it on would skip the contacts permission step and leave the reader with an empty
picker store. ScopeAwareContactReader now always reads through full access and
still falls back to picked contacts when that fails; the picker reader and
launcher stay for a future entry point.

That reader was the contacts module's only FeatureFlag reference, so
`:apps:flipcash:shared:featureflags` leaves its build file. Both DataStore keys
stay behind unread, the same as the other retired flags.
@bmc08gt bmc08gt self-assigned this Sep 28, 2026
@github-actions github-actions Bot added type: chore Maintenance, config, CI/CD area: onboarding labels Sep 28, 2026
@bmc08gt
bmc08gt merged commit 9dbdc01 into code/cash Sep 28, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: onboarding type: chore Maintenance, config, CI/CD

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant