[PR #3656] [MERGED] [PM-9401] Server feature flags manager #72850

Closed
opened 2026-05-16 21:53:43 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/bitwarden/android/pull/3656
Author: @andrebispo5
Created: 7/31/2024
Status: Merged
Merged: 8/6/2024
Merged by: @andrebispo5

Base: mainHead: pm-9401/server-feature-flags


📝 Commits (10+)

  • 9a93a9e [PM-9401] Change feature flags object type from Boolean to String
  • b3534b7 [PM-9401] Add FakeServerConfigRepository. Change feature flags in tests to be String - String
  • 1e573db [PM-9401] Remove old BitwardenFeatureFlagManager and tests
  • e93ac55 [PM-9401] Add new FeatureFlagManager into platform
  • 628a09f [PM-9401] Add FeatureFlagManager tests
  • 5b151d8 [PM-9401] Refactor FeatureFlagManager and corresponding tests.
  • 6146255 [PM-9401] Enable lenient json deserialising
  • 41decbe [PM-9401] Fix ConfigDiskSourceTest data sample
  • 88ee02c [PM-9401] Add parameter name
  • 06ee894 [PM-9401] Rename featureFlagsLocal to sdkFeatureFlags

📊 Changes

15 files changed (+459 additions, -57 deletions)

View changed files

📝 app/src/main/java/com/x8bit/bitwarden/data/platform/datasource/network/model/ConfigResponseJson.kt (+2 -1)
app/src/main/java/com/x8bit/bitwarden/data/platform/manager/FeatureFlagManager.kt (+30 -0)
app/src/main/java/com/x8bit/bitwarden/data/platform/manager/FeatureFlagManagerImpl.kt (+59 -0)
📝 app/src/main/java/com/x8bit/bitwarden/data/platform/manager/SdkClientManagerImpl.kt (+2 -3)
📝 app/src/main/java/com/x8bit/bitwarden/data/platform/manager/di/PlatformManagerModule.kt (+13 -2)
app/src/main/java/com/x8bit/bitwarden/data/platform/manager/model/FlagKey.kt (+35 -0)
app/src/main/java/com/x8bit/bitwarden/data/vault/datasource/sdk/BitwardenFeatureFlagManager.kt (+0 -11)
app/src/main/java/com/x8bit/bitwarden/data/vault/datasource/sdk/BitwardenFeatureFlagManagerImpl.kt (+0 -11)
📝 app/src/main/java/com/x8bit/bitwarden/data/vault/datasource/sdk/di/VaultSdkModule.kt (+0 -7)
📝 app/src/test/java/com/x8bit/bitwarden/data/platform/datasource/disk/ConfigDiskSourceTest.kt (+5 -1)
📝 app/src/test/java/com/x8bit/bitwarden/data/platform/datasource/network/service/ConfigServiceTest.kt (+2 -1)
app/src/test/java/com/x8bit/bitwarden/data/platform/manager/FeatureFlagManagerTest.kt (+244 -0)
📝 app/src/test/java/com/x8bit/bitwarden/data/platform/repository/ServerConfigRepositoryTest.kt (+9 -2)
app/src/test/java/com/x8bit/bitwarden/data/platform/repository/util/FakeServerConfigRepository.kt (+58 -0)
app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/sdk/BitwardenFeatureFlagManagerTest.kt (+0 -18)

📄 Description

🎟️ Tracking

Android - Implement Feature Flags Support

📔 Objective

Add support for hardcoded feature flags.
Add support for server-related feature flags. Be able to use them as boolean, int or string types.

Reminders before review

  • Contributor guidelines followed
  • All formatters and local linters executed and passed
  • Written new unit and / or integration tests where applicable
  • Used internationalization (i18n) for all UI strings
  • CI builds passed
  • Communicated to DevOps any deployment requirements
  • Updated any necessary documentation or informed the documentation team

🦮 Reviewer guidelines

  • 👍 (:+1:) or similar for great changes
  • 📝 (:memo:) or ℹ️ (:information_source:) for notes or general info
  • (:question:) for questions
  • 🤔 (:thinking:) or 💭 (:thought_balloon:) for more open inquiry that's not quite a confirmed
    issue and could potentially benefit from discussion
  • 🎨 (:art:) for suggestions / improvements
  • (:x:) or ⚠️ (:warning:) for more significant problems or concerns needing attention
  • 🌱 (:seedling:) or ♻️ (:recycle:) for future improvements or indications of technical debt
  • ⛏ (:pick:) for minor or nitpick changes

🔄 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/3656 **Author:** [@andrebispo5](https://github.com/andrebispo5) **Created:** 7/31/2024 **Status:** ✅ Merged **Merged:** 8/6/2024 **Merged by:** [@andrebispo5](https://github.com/andrebispo5) **Base:** `main` ← **Head:** `pm-9401/server-feature-flags` --- ### 📝 Commits (10+) - [`9a93a9e`](https://github.com/bitwarden/android/commit/9a93a9ef453773eed9f24bf7e67850a68cdb4184) [PM-9401] Change feature flags object type from Boolean to String - [`b3534b7`](https://github.com/bitwarden/android/commit/b3534b73fabb13071df3edb08bb34fe385016c82) [PM-9401] Add FakeServerConfigRepository. Change feature flags in tests to be String - String - [`1e573db`](https://github.com/bitwarden/android/commit/1e573dbb9cdb5584ae4ff4ebdcf9802b0e428326) [PM-9401] Remove old BitwardenFeatureFlagManager and tests - [`e93ac55`](https://github.com/bitwarden/android/commit/e93ac55c69752bee89cd77be789551c21a04c4f0) [PM-9401] Add new FeatureFlagManager into platform - [`628a09f`](https://github.com/bitwarden/android/commit/628a09f0a46b182b43089b9af7c4ab3beade6197) [PM-9401] Add FeatureFlagManager tests - [`5b151d8`](https://github.com/bitwarden/android/commit/5b151d8a88dbcc846404209598d6d854bd2a96ad) [PM-9401] Refactor FeatureFlagManager and corresponding tests. - [`6146255`](https://github.com/bitwarden/android/commit/6146255d307bf70787b87aea3da0de1506da46a9) [PM-9401] Enable lenient json deserialising - [`41decbe`](https://github.com/bitwarden/android/commit/41decbea5951b70666d3deabbe1768dbf21afce4) [PM-9401] Fix ConfigDiskSourceTest data sample - [`88ee02c`](https://github.com/bitwarden/android/commit/88ee02c4d9645b354ad71eb9f3a9ad75b6cb6871) [PM-9401] Add parameter name - [`06ee894`](https://github.com/bitwarden/android/commit/06ee894a950ead58bc700f253281cf0c75fdf9f0) [PM-9401] Rename featureFlagsLocal to sdkFeatureFlags ### 📊 Changes **15 files changed** (+459 additions, -57 deletions) <details> <summary>View changed files</summary> 📝 `app/src/main/java/com/x8bit/bitwarden/data/platform/datasource/network/model/ConfigResponseJson.kt` (+2 -1) ➕ `app/src/main/java/com/x8bit/bitwarden/data/platform/manager/FeatureFlagManager.kt` (+30 -0) ➕ `app/src/main/java/com/x8bit/bitwarden/data/platform/manager/FeatureFlagManagerImpl.kt` (+59 -0) 📝 `app/src/main/java/com/x8bit/bitwarden/data/platform/manager/SdkClientManagerImpl.kt` (+2 -3) 📝 `app/src/main/java/com/x8bit/bitwarden/data/platform/manager/di/PlatformManagerModule.kt` (+13 -2) ➕ `app/src/main/java/com/x8bit/bitwarden/data/platform/manager/model/FlagKey.kt` (+35 -0) ➖ `app/src/main/java/com/x8bit/bitwarden/data/vault/datasource/sdk/BitwardenFeatureFlagManager.kt` (+0 -11) ➖ `app/src/main/java/com/x8bit/bitwarden/data/vault/datasource/sdk/BitwardenFeatureFlagManagerImpl.kt` (+0 -11) 📝 `app/src/main/java/com/x8bit/bitwarden/data/vault/datasource/sdk/di/VaultSdkModule.kt` (+0 -7) 📝 `app/src/test/java/com/x8bit/bitwarden/data/platform/datasource/disk/ConfigDiskSourceTest.kt` (+5 -1) 📝 `app/src/test/java/com/x8bit/bitwarden/data/platform/datasource/network/service/ConfigServiceTest.kt` (+2 -1) ➕ `app/src/test/java/com/x8bit/bitwarden/data/platform/manager/FeatureFlagManagerTest.kt` (+244 -0) 📝 `app/src/test/java/com/x8bit/bitwarden/data/platform/repository/ServerConfigRepositoryTest.kt` (+9 -2) ➕ `app/src/test/java/com/x8bit/bitwarden/data/platform/repository/util/FakeServerConfigRepository.kt` (+58 -0) ➖ `app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/sdk/BitwardenFeatureFlagManagerTest.kt` (+0 -18) </details> ### 📄 Description ## 🎟️ Tracking <!-- Paste the link to the Jira or GitHub issue or otherwise describe / point to where this change is coming from. --> [Android - Implement Feature Flags Support](https://bitwarden.atlassian.net/browse/PM-9401) ## 📔 Objective <!-- Describe what the purpose of this PR is, for example what bug you're fixing or new feature you're adding. --> Add support for hardcoded feature flags. Add support for server-related feature flags. Be able to use them as boolean, int or string types. ## ⏰ Reminders before review - Contributor guidelines followed - All formatters and local linters executed and passed - Written new unit and / or integration tests where applicable - Used internationalization (i18n) for all UI strings - CI builds passed - Communicated to DevOps any deployment requirements - Updated any necessary documentation or informed the documentation team ## 🦮 Reviewer guidelines <!-- Suggested interactions but feel free to use (or not) as you desire! --> - 👍 (`:+1:`) or similar for great changes - 📝 (`:memo:`) or ℹ️ (`:information_source:`) for notes or general info - ❓ (`:question:`) for questions - 🤔 (`:thinking:`) or 💭 (`:thought_balloon:`) for more open inquiry that's not quite a confirmed issue and could potentially benefit from discussion - 🎨 (`:art:`) for suggestions / improvements - ❌ (`:x:`) or ⚠️ (`:warning:`) for more significant problems or concerns needing attention - 🌱 (`:seedling:`) or ♻️ (`:recycle:`) for future improvements or indications of technical debt - ⛏ (`:pick:`) for minor or nitpick changes --- <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-05-16 21:53:43 -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#72850