[PR #6696] [MERGED] [PM-33514] feat: Add premium upgrade banner visibility logic #26173

Closed
opened 2026-04-17 01:41:38 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/bitwarden/android/pull/6696
Author: @SaintPatrck
Created: 3/19/2026
Status: Merged
Merged: 3/20/2026
Merged by: @SaintPatrck

Base: mainHead: premium-upgrade/PM-33514-vault-banner-logic


📝 Commits (1)

  • ad245e9 [PM-33514] feat: Add premium upgrade banner visibility logic to VaultViewModel

📊 Changes

3 files changed (+170 additions, -5 deletions)

View changed files

📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/VaultContent.kt (+4 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/VaultViewModel.kt (+56 -4)
📝 app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/VaultViewModelTest.kt (+110 -1)

📄 Description

🎟️ Tracking

https://bitwarden.atlassian.net/browse/PM-33514

📔 Objective

Add premium upgrade banner visibility logic to VaultViewModel so the vault screen knows when to show the premium upgrade banner.

Changes:

  • Inject PremiumStateManager into VaultViewModel and subscribe to isPremiumUpgradeBannerEligibleFlow
  • Add isPremiumUpgradeBannerEligible state field to VaultState
  • Add ActionCardState.UpgradePremium to the sealed class with higher priority than IntroducingArchive in the actionCard computed property
  • Handle dismiss action via premiumStateManager.dismissPremiumUpgradeBanner()
  • Add exhaustive when branch in VaultContent.kt (placeholder for PM-33515 UI rendering)
  • Add 5 unit tests covering flow subscription, dismiss delegation, and all action card priority scenarios

All banner eligibility logic (premium status, billing support, feature flag, account age, vault items, dismissal) is encapsulated in PremiumStateManager — the ViewModel simply consumes the boolean flow.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/bitwarden/android/pull/6696 **Author:** [@SaintPatrck](https://github.com/SaintPatrck) **Created:** 3/19/2026 **Status:** ✅ Merged **Merged:** 3/20/2026 **Merged by:** [@SaintPatrck](https://github.com/SaintPatrck) **Base:** `main` ← **Head:** `premium-upgrade/PM-33514-vault-banner-logic` --- ### 📝 Commits (1) - [`ad245e9`](https://github.com/bitwarden/android/commit/ad245e950cb8dc8aa42258bb087fe05fce3f42ed) [PM-33514] feat: Add premium upgrade banner visibility logic to VaultViewModel ### 📊 Changes **3 files changed** (+170 additions, -5 deletions) <details> <summary>View changed files</summary> 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/VaultContent.kt` (+4 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/VaultViewModel.kt` (+56 -4) 📝 `app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/VaultViewModelTest.kt` (+110 -1) </details> ### 📄 Description ## 🎟️ Tracking https://bitwarden.atlassian.net/browse/PM-33514 ## 📔 Objective Add premium upgrade banner visibility logic to `VaultViewModel` so the vault screen knows when to show the premium upgrade banner. **Changes:** - Inject `PremiumStateManager` into `VaultViewModel` and subscribe to `isPremiumUpgradeBannerEligibleFlow` - Add `isPremiumUpgradeBannerEligible` state field to `VaultState` - Add `ActionCardState.UpgradePremium` to the sealed class with higher priority than `IntroducingArchive` in the `actionCard` computed property - Handle dismiss action via `premiumStateManager.dismissPremiumUpgradeBanner()` - Add exhaustive `when` branch in `VaultContent.kt` (placeholder for PM-33515 UI rendering) - Add 5 unit tests covering flow subscription, dismiss delegation, and all action card priority scenarios All banner eligibility logic (premium status, billing support, feature flag, account age, vault items, dismissal) is encapsulated in `PremiumStateManager` — the ViewModel simply consumes the boolean flow. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-17 01:41:38 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/android#26173