* [EC-426] Add watchOS PoC app (#2054)
* EC-426 Added watchOS app, configured iOS.csproj to bundle the output of XCode build into the Xamarin iOS app and added some custom logic to use WCSession to communicate between the iOS and the watchOS apps
* EC-426 Removed Info.plist from iOS.Core project given that it's not needed
* [EC-426] Added new encrypted watch app profiles
* EC-426 added configuration for building watchApp and bundle it up on the iOS one
* EC-426 Fix build for watchOS
* EC-426 Fix build for watchOS applied shell bash
* EC-426 Fix build for watchOS echo
* EC-426 Fix build for watchOS simplify
* EC-426 Fix build for watchOS added workspace path
* EC-426 Changed code sign identity of watchOS project to Apple Distribution
* EC-426 added manual code sign style and specified the provisioning profile for the targets on the watch xcode project
* EC-426 updated path to watchOS on release on iOS.csproj and disabled android and f-.droid
* EC-426 fix build
* EC-426 fix path and check listing of directory of watchOS output just in case
* EC-426 Fix Apple Watch build to list the folder recursively just in case we need to change the path for the watch bundle
* EC-426 TEMP Change texts on input on login and lock to show that the app is for the Watch PoC testing
* EC-426 Fix WatchApp build path
* EC-426 Added WatchOS AppIcons
* EC-426 added gitignore for XCode project removed files supposed to be ignored
* EC-426 Cleaned the code a bit to avoid misbehavior
* EC-426 Code cleanup
Co-authored-by: Joseph Flinn <joseph.s.flinn@gmail.com>
* [EC-585] Added data, encryption and some helpers and structure to the Watch app (#2164)
* [EC-585] Added foundation classes on the watch to handle CoreData and some fixes on the communication of the ciphers, also some helper classes to store in keychain and encrypt data
* EC-585 Added keychain helper, encryption helpers and added data storage using CoreData configuring it appropiately. View and ViewModel are here only to test that the fetching/saving works but it's not the actual UI of the watch app. Also removed all the places where the automatic file signature was added by XCode
* EC-585 Fixed CipherServiceMock to implement protocol
* EC-585 Fixed DeviceActionService duplicated services
* [EC-614] Apple Watch MVP Cipher list UI (#2175)
* [EC-585] Added foundation classes on the watch to handle CoreData and some fixes on the communication of the ciphers, also some helper classes to store in keychain and encrypt data
* EC-585 Added keychain helper, encryption helpers and added data storage using CoreData configuring it appropiately. View and ViewModel are here only to test that the fetching/saving works but it's not the actual UI of the watch app. Also removed all the places where the automatic file signature was added by XCode
* EC-585 Fixed CipherServiceMock to implement protocol
* EC-585 Fixed DeviceActionService duplicated services
* EC-614 Implemented watch ciphers list UI
* [EC-615] Apple Watch MVP Cipher details UI (#2192)
* [EC-585] Added foundation classes on the watch to handle CoreData and some fixes on the communication of the ciphers, also some helper classes to store in keychain and encrypt data
* EC-585 Added keychain helper, encryption helpers and added data storage using CoreData configuring it appropiately. View and ViewModel are here only to test that the fetching/saving works but it's not the actual UI of the watch app. Also removed all the places where the automatic file signature was added by XCode
* EC-585 Fixed CipherServiceMock to implement protocol
* EC-585 Fixed DeviceActionService duplicated services
* EC-614 Implemented watch ciphers list UI
* EC-615 Added cipher details UI to watch and also implemented logic and helpers to generate the TOTPs
* EC-615 Added value transformer to login uris on the cipher entity
* EC-617 Added state view on watch app and some state helpers and wired it on the CipherListView. Also added some images (#2195)
* [EC-581] Implement Apple Watch MVP Sync (#2206)
* EC-581 Implemented sync iPhone -> watchOS, fix some issues with the watch database and sync flows for login/locks/multiple accounts
* EC-581 Added watch sync on unlocking and need setup state when no user is synced and the session is not active
* EC-581 Removed unused method
* EC-581 Fix format
* EC-759 Added avatar row on cipher list header to display avatar icon and email (#2213)
* [EC-786] Apple Watch MVP Sync fixes (#2214)
* EC-786 Commented things that are not going to be included on the MVP and fixed issue on the dictionary sent on the applicationContext to have a changing key based on time
* EC-786 Commented need unlock state
* EC-579 Added logic for Connect To Watch on iOS settings and moved it to the correct place. Also improved the synchronization and watch session activation logic (#2218)
* EC-616 Added search header for ciphers and polished the code (#2226)
Co-authored-by: Federico Maccaroni <fedemkr@gmail.com>
Co-authored-by: Joseph Flinn <joseph.s.flinn@gmail.com>
* Implemented CAKE build script
* cake script now deals with all of iOS's .plists
* cake now updates iOS bundleid's / Android packagename in codefiles
* iOS Bundle ID / Name should be correctly handled now + refactor
* tabs -> spaces
* Additional code files are now handled by cake
* Additional iOS codefile changes required
* Android's Autofill Label is now changed
* Removed dash from packagenames / bundleIDs
* Fixed CFBundleURLName set
* Added google-services.json to cake preprocessing
* Add CAKE to build workflow
- Android
* Add debug
* Updated cake's GitVersion.Tool
* AndroidManifest manual parsing needs to happen first
* Added Android Constants to build.cake
* [SG-747] Add Android QA build to mobile build pipeline (#2144)
* Add checkout depth
* Build and upload QA artifacts
* Remove missing .aab
* Update build.yml
* Update paths
* Update var names
* Build and upload QA artifacts
* Add in matrix to path.
* Lets not fail all the jobs if something pukes
* Add in some flow logic for QA
* We need strings in pwsh
* Remove extra quotes
* Testing, remove uneeded runs
* Test folder items
* [SG-747] Added more debug info to find problem
* [SG-747] copy signed apk to correct file name for each app variant
* [SG-747] try to fix if statement
* [SG-747] separate decrypt google services into another step with condition.
* [SG-747] fixed typo and line break
* [SG-747] added debug to check output path
* [SG-747] fix package name
* [SG-747] Fixed condition of step execution
* [SG-747] test if cases
* [SG-747] Code clean up
* [SG-747] Added FDroid and iOS steps.
* [SG-747] Removed test step
* [SG-747] Step name changes
* Update condition to be more inclusive
Co-authored-by: Álison Fernandes <vvolkgang@users.noreply.github.com>
* [SG-747] Expand if condition to allow more build types other than QA
* [SG-747] removed execution condition
Co-authored-by: mimartin12 <77340197+mimartin12@users.noreply.github.com>
* Apply suggestions from code review
Linter suggestions
Co-authored-by: mimartin12 <77340197+mimartin12@users.noreply.github.com>
Co-authored-by: Micaiah Martin <mmartin@bitwarden.com>
Co-authored-by: mimartin12 <77340197+mimartin12@users.noreply.github.com>
Co-authored-by: Álison Fernandes <vvolkgang@users.noreply.github.com>
Co-authored-by: Todd Martin <106564991+trmartin4@users.noreply.github.com>
* Base bundle ID refactor and cleaned up TODOs
- Added base vars for the bundle IDs
- Removed a TODO and explained the remaining ones
- Commented a unused var, keeping it in the code as this might be useful later
Co-authored-by: Micaiah Martin <mmartin@bitwarden.com>
Co-authored-by: Federico Andrés Maccaroni <fedemkr@gmail.com>
Co-authored-by: Todd Martin <tmartin@bitwarden.com>
Co-authored-by: André Bispo <abispo@bitwarden.com>
Co-authored-by: mimartin12 <77340197+mimartin12@users.noreply.github.com>
Co-authored-by: Todd Martin <106564991+trmartin4@users.noreply.github.com>
* PS-518 - Add setting to block AppCenter / Analytics - Mobile
- Added another entry into Settings page under the Others section
- Added prompt to ask user to enable / disable Crash Reports
- Added compilation tags to remove if the build is FDroid
* PS-518 Add setting to block AppCenter / Analytics - Mobile
- Reduced FDroid compilation tags throughout the code
- Added Init, Enable and State methods to Logger
- Simplified SettingsPageViewModel Enable/Disable code
* PS-518 Add setting to block AppCenter / Analytics - Mobile
- Appcenter references were removed from App project,
- Removed FDroid build.yml code that was deleting Appcenter packages from App.csproj
Co-authored-by: André Bispo <abispo@bitwarden.com>
* Added dsym artifact to be uploaded alongside with the ipa o the build.yml
* Added dsym artifact to be uploaded alongside with the ipa o the build.yml
* Fixed build.yml dsym artifact
* Fix upload dsym build.yml
* Fix build.yml to check what gets exported and after this will become the adjustment for the dsym (disabling Android build for this test)
* Fix build.yml to copy all dsyms and artifact them (disabling Android build for this test)
* Fix build.yml to only copy all dsyms and ipa and artifact them (disabling Android build for this test)
* Added Appcenterr CLI and upload missing symbols for dSYM to the build
* Add secret to build workflow (#1771)
* Changed build.yml upload dsym command from upload-missing-symbols to upload-symbols
* Added restrictions for uploading iOS symbols to AppCenter on build.yml
Co-authored-by: Vince Grassia <593223+vgrassia@users.noreply.github.com>
* WIP Add Share app extension on iOS for Send
* Added Share app extension on iOS for Send and some code fixes as well
* Updated iOS csprojs configs to linkskip the new extension project and also added AdHoc and AppStore configurations to iOS.ShareExtension.csproj
* Code clean up and transformed bundle resources into links to the already used pngs of the main iOS project on ShareExtension
* Updated build.yml to include provisioning profile for iOS Share extension
* Adding in the missing provisioning profile
* Removed .DS_Store from the iOS.ShareExtension csproj Resources
* switching out the share extension profile
* Added Share extension provisioning profile configuration on export options app store for github and also removed custom info.plist config for localhost which is not necessary
* Moved property so that it's grouped with the full ones
* Added AppCenter Crashes package to Core and updated FireAndForget Task Extension
* Updated bundle reference of FontAwesome.ttf to bwi-font.ttf in order for it to compile on ShareExtension
Co-authored-by: Joseph Flinn <joseph.s.flinn@gmail.com>
Co-authored-by: Álison Fernandes <vvolkgang@users.noreply.github.com>
* WIP Fixes for iOS push notifications
* WIP Fixes for iOS push notifications, fix missed implementation on android
* Fix some issues on the push notifications, changed to Debug Console.WriteLine, and added update on entitlements on the build.yml
* WIP Add Share app extension on iOS for Send
* Added Share app extension on iOS for Send and some code fixes as well
* Updated iOS csprojs configs to linkskip the new extension project and also added AdHoc and AppStore configurations to iOS.ShareExtension.csproj
* Code clean up and transformed bundle resources into links to the already used pngs of the main iOS project on ShareExtension
* Updated build.yml to include provisioning profile for iOS Share extension
* Adding in the missing provisioning profile
* Removed .DS_Store from the iOS.ShareExtension csproj Resources
* switching out the share extension profile
* Added Share extension provisioning profile configuration on export options app store for github and also removed custom info.plist config for localhost which is not necessary
Co-authored-by: Joseph Flinn <joseph.s.flinn@gmail.com>
* Dynamic theme switching and visual tweaks
* update action runner to use macos-11 for iOS 15 support
* additional tweaks
* refinements
* refinements
* formatting and tweaks
* Expand Hkdf crypto functions
* Add tests for hkdf crypto functions
Took the testing infrastructure from bitwarden/server
* Move Hkdf to cryptoFunctionService
* Port changes from bitwarden/jslib#192
* Port changes from bitwarden/jslib#205
* Make Send Expiration Optional implement changes from bitwarden/jslib#242
* Bug fixes found by testing
* Test helpers
* Test conversion between model types
* Test SendService
These are mostly happy-path tests to ensure a reasonably correct
implementation
* Add run tests step to GitHub Actions
* Test send decryption
* Test Request generation from Send
* Constructor dependencies on separate lines
* Remove unused testing infrastructure
* Rename to match class name
* Move fat arrows to previous lines
* Handle exceptions in App layer
* PR review cleanups
* Throw when attempting to save an unkown Send Type
I think it's best to only throw on unknown send types here.
I don't think we want to throw whenever we encounter one since that would
do bad things like lock up Sync if clients get out of date relative to
servers. Instead, keep the client from ruining saved data by complaining
last minute that it doesn't know what it's doing.