[PR #2697] [MERGED] [PM-2658] Settings Reorganization Init #29756

Closed
opened 2026-04-18 13:40:08 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/bitwarden/android/pull/2697
Author: @fedemkr
Created: 8/16/2023
Status: Merged
Merged: 8/16/2023
Merged by: @fedemkr

Base: vault/pm-2658/feature-settings-reorg-tde-basedHead: vault/pm-2658/settings-reorg-based-tde


📝 Commits (4)

  • a3973d4 PM-2658 Started settings reorganization (settings main + vault + about)
  • 1e52ae1 PM-2658 Added settings controls based on templates and implemented OtherSettingsPage
  • 4b7812e Merge branch 'feature/pm-1029-tde-login' into vault/pm-2658/settings-reorg-based-tde
  • 091ba1d PM-2658 Fix format

📊 Changes

44 files changed (+1418 additions, -57 deletions)

View changed files

📝 src/App/App.csproj (+2 -0)
src/App/Controls/ExternalLinkItemView.xaml (+29 -0)
src/App/Controls/ExternalLinkItemView.xaml.cs (+31 -0)
src/App/Controls/Settings/BaseSettingControlView.cs (+25 -0)
src/App/Controls/Settings/SettingChooserItemView.xaml (+19 -0)
src/App/Controls/Settings/SettingChooserItemView.xaml.cs (+31 -0)
src/App/Controls/Settings/SwitchItemView.xaml (+23 -0)
src/App/Controls/Settings/SwitchItemView.xaml.cs (+45 -0)
src/App/Pages/BaseModalContentPage.cs (+18 -0)
📝 src/App/Pages/BaseViewModel.cs (+10 -1)
src/App/Pages/PickerViewModel.cs (+92 -0)
src/App/Pages/Settings/AboutSettingsPage.xaml (+90 -0)
src/App/Pages/Settings/AboutSettingsPage.xaml.cs (+12 -0)
src/App/Pages/Settings/AboutSettingsPageViewModel.cs (+122 -0)
src/App/Pages/Settings/AppearanceSettingsPage.xaml (+20 -0)
src/App/Pages/Settings/AppearanceSettingsPage.xaml.cs (+12 -0)
src/App/Pages/Settings/AppearanceSettingsPageViewModel.cs (+11 -0)
📝 src/App/Pages/Settings/AutofillServicesPage.xaml.cs (+1 -1)
src/App/Pages/Settings/AutofillSettingsPage.xaml (+20 -0)
src/App/Pages/Settings/AutofillSettingsPage.xaml.cs (+12 -0)

...and 24 more files

📄 Description

Type of change

  • Bug fix
  • New feature development
  • Tech debt (refactoring, code cleanup, dependency upgrades, etc)
  • Build/deploy pipeline (DevOps)
  • Other

Objective

Start settings reorganization.
This PR includes changing the Settings main view, set up new settings item blank views, create About, Vault and Other views which are the simplest.

Code changes

Note: for the moment the original Settings view and its referenced views have not been removed, just their names have changed to avoid conflicts with the new approach.

New Controls

  • ExternalLinkItemView: This view is used to display a Title with the link icon that can be tapped to perform a command that opens the link.
  • BaseSettingControlView: This is a base content view to be used by other settings controls alongside the new control template.
  • ControlTemplates (Styles): Added SettingControlTemplate that is the template to be used for each item/row of setting views.
  • SettingChooserItemView: This is the item view for choose an option that has a title, can have a subtitle and the option value displayed. This is based on BaseSettingsControlView and SettingControlTemplate
  • SwitchItemView: This is the item view that displays a toggle and has a title and can have a subtitle. This is based on BaseSettingsControlView and SettingControlTemplate. This has one caveat that is that the tap of the entire view performs the change to the Switch.IsToggle to avoid circular flow between tapping on the view and/or tapping on the switch.
  • BaseModalContentPage: New base page to handle modal logic. Now added the code to pop the modal which is used in several views on the toolbar action.
  • PickerViewModel: New ViewModel used for show an action sheet, pick a value and display the selected value based on fixed items.

General changes

  • SettingsPage/ViewModel: Changed view to display new item rows stacked with a title each. Commented / Renamed old approach to have it there to check some logics along the way.
  • AboutSettingsPage/ViewModel: New view that shows "About" things, moved and refactored a bit from Settings. There is a block of code commented that I left there if we need it to debug push notifications.
  • OtherSettingsPage/ViewModel: New view that encompasses Sync, Clear clipboard and Allow screen capture.
  • VaultSettingsPage/ViewModel: New view that encompasses Folders, Export, Import.
  • [Appearance][Autofill][Security]SettingsPage/VIewmodel: Blank new views.
  • BaseViewModel: Added a method to create a default async command. The logic is repeated everywhere so this is an attempt to reduce the code used.
  • ThemeManager: Added ControlTemplates to the merged dictionaries so it can be used in the app.
  • ExternalLinksConstants: Place to put all links that a user can be directed to.

Screenshots

Settings view

Settings view

Vault view

Vault view

Other view

Other view

About view

About view

Before you submit

  • Please check for formatting errors (dotnet format --verify-no-changes) (required)
  • Please add unit tests where it makes sense to do so (encouraged but not required)
  • If this change requires a documentation update - notify the documentation team
  • If this change has particular deployment requirements - notify the DevOps team

🔄 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/2697 **Author:** [@fedemkr](https://github.com/fedemkr) **Created:** 8/16/2023 **Status:** ✅ Merged **Merged:** 8/16/2023 **Merged by:** [@fedemkr](https://github.com/fedemkr) **Base:** `vault/pm-2658/feature-settings-reorg-tde-based` ← **Head:** `vault/pm-2658/settings-reorg-based-tde` --- ### 📝 Commits (4) - [`a3973d4`](https://github.com/bitwarden/android/commit/a3973d4b7c468be4368615f0ba8605b69b3d9428) PM-2658 Started settings reorganization (settings main + vault + about) - [`1e52ae1`](https://github.com/bitwarden/android/commit/1e52ae156b99d3743a61450847273b3eec06a47b) PM-2658 Added settings controls based on templates and implemented OtherSettingsPage - [`4b7812e`](https://github.com/bitwarden/android/commit/4b7812e42bfd813c93f8bc558c959d57a656cbc6) Merge branch 'feature/pm-1029-tde-login' into vault/pm-2658/settings-reorg-based-tde - [`091ba1d`](https://github.com/bitwarden/android/commit/091ba1d164afe1bc3b80a615ab2b6922bf65c95e) PM-2658 Fix format ### 📊 Changes **44 files changed** (+1418 additions, -57 deletions) <details> <summary>View changed files</summary> 📝 `src/App/App.csproj` (+2 -0) ➕ `src/App/Controls/ExternalLinkItemView.xaml` (+29 -0) ➕ `src/App/Controls/ExternalLinkItemView.xaml.cs` (+31 -0) ➕ `src/App/Controls/Settings/BaseSettingControlView.cs` (+25 -0) ➕ `src/App/Controls/Settings/SettingChooserItemView.xaml` (+19 -0) ➕ `src/App/Controls/Settings/SettingChooserItemView.xaml.cs` (+31 -0) ➕ `src/App/Controls/Settings/SwitchItemView.xaml` (+23 -0) ➕ `src/App/Controls/Settings/SwitchItemView.xaml.cs` (+45 -0) ➕ `src/App/Pages/BaseModalContentPage.cs` (+18 -0) 📝 `src/App/Pages/BaseViewModel.cs` (+10 -1) ➕ `src/App/Pages/PickerViewModel.cs` (+92 -0) ➕ `src/App/Pages/Settings/AboutSettingsPage.xaml` (+90 -0) ➕ `src/App/Pages/Settings/AboutSettingsPage.xaml.cs` (+12 -0) ➕ `src/App/Pages/Settings/AboutSettingsPageViewModel.cs` (+122 -0) ➕ `src/App/Pages/Settings/AppearanceSettingsPage.xaml` (+20 -0) ➕ `src/App/Pages/Settings/AppearanceSettingsPage.xaml.cs` (+12 -0) ➕ `src/App/Pages/Settings/AppearanceSettingsPageViewModel.cs` (+11 -0) 📝 `src/App/Pages/Settings/AutofillServicesPage.xaml.cs` (+1 -1) ➕ `src/App/Pages/Settings/AutofillSettingsPage.xaml` (+20 -0) ➕ `src/App/Pages/Settings/AutofillSettingsPage.xaml.cs` (+12 -0) _...and 24 more files_ </details> ### 📄 Description ## Type of change - [ ] Bug fix - [X] New feature development - [ ] Tech debt (refactoring, code cleanup, dependency upgrades, etc) - [ ] Build/deploy pipeline (DevOps) - [ ] Other ## Objective <!--Describe what the purpose of this PR is. For example: what bug you're fixing or what new feature you're adding--> Start settings reorganization. This PR includes changing the Settings main view, set up new settings item blank views, create About, Vault and Other views which are the simplest. ## Code changes <!--Explain the changes you've made to each file or major component. This should help the reviewer understand your changes--> <!--Also refer to any related changes or PRs in other repositories--> Note: for the moment the original Settings view and its referenced views have not been removed, just their names have changed to avoid conflicts with the new approach. **New Controls** * **ExternalLinkItemView:** This view is used to display a Title with the link icon that can be tapped to perform a command that opens the link. * **BaseSettingControlView:** This is a base content view to be used by other settings controls alongside the new control template. * **ControlTemplates (Styles):** Added `SettingControlTemplate` that is the template to be used for each item/row of setting views. * **SettingChooserItemView:** This is the item view for choose an option that has a title, can have a subtitle and the option value displayed. This is based on `BaseSettingsControlView` and `SettingControlTemplate` * **SwitchItemView:** This is the item view that displays a toggle and has a title and can have a subtitle. This is based on `BaseSettingsControlView` and `SettingControlTemplate`. This has one caveat that is that the tap of the entire view performs the change to the `Switch.IsToggle` to avoid circular flow between tapping on the view and/or tapping on the switch. * **BaseModalContentPage:** New base page to handle modal logic. Now added the code to pop the modal which is used in several views on the toolbar action. * **PickerViewModel:** New ViewModel used for show an action sheet, pick a value and display the selected value based on fixed items. **General changes** * **SettingsPage/ViewModel:** Changed view to display new item rows stacked with a title each. Commented / Renamed old approach to have it there to check some logics along the way. * **AboutSettingsPage/ViewModel:** New view that shows "About" things, moved and refactored a bit from Settings. There is a block of code commented that I left there if we need it to debug push notifications. * **OtherSettingsPage/ViewModel:** New view that encompasses Sync, Clear clipboard and Allow screen capture. * **VaultSettingsPage/ViewModel:** New view that encompasses Folders, Export, Import. * **[Appearance][Autofill][Security]SettingsPage/VIewmodel:** Blank new views. * **BaseViewModel:** Added a method to create a default async command. The logic is repeated everywhere so this is an attempt to reduce the code used. * **ThemeManager:** Added `ControlTemplates` to the merged dictionaries so it can be used in the app. * **ExternalLinksConstants:** Place to put all links that a user can be directed to. ## Screenshots <!--Required for any UI changes. Delete if not applicable--> ### Settings view <img width="314" alt="Settings view" src="https://github.com/bitwarden/mobile/assets/15682323/9953f2ed-f1ba-4d02-9487-2f8defffb7a5"> ### Vault view <img width="314" alt="Vault view" src="https://github.com/bitwarden/mobile/assets/15682323/ef68643f-8a61-48d6-908c-de22a95a5eb7"> ### Other view <img width="314" alt="Other view" src="https://github.com/bitwarden/mobile/assets/15682323/8f96d4a3-d2b4-4ede-8b91-7dff4803fa50"> ### About view <img width="314" alt="About view" src="https://github.com/bitwarden/mobile/assets/15682323/3ccdd9da-f875-46d4-817b-f2da48e10663"> ## Before you submit - Please check for formatting errors (`dotnet format --verify-no-changes`) (required) - Please add **unit tests** where it makes sense to do so (encouraged but not required) - If this change requires a **documentation update** - notify the documentation team - If this change has particular **deployment requirements** - notify the DevOps team --- <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-18 13:40:08 -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#29756