feat: calculator v61 redesign#554
Conversation
This comment was marked as resolved.
This comment was marked as resolved.
122da44 to
87b302a
Compare
This comment was marked as resolved.
This comment was marked as resolved.
62b0997 to
bb69832
Compare
bb69832 to
e2cebe3
Compare
e2cebe3 to
f27ead0
Compare
6b93395 to
62bfa55
Compare
This comment was marked as resolved.
This comment was marked as resolved.
62bfa55 to
3045c46
Compare
|
@pwltr Thanks for testing, it was ack on my side that it doesn't work, so you just caught one state of how it didn't work. It was very hard to get all cases work without breaking the other(s). It seems stable now, I will request your review as well once I do my final checks around the rest of the work and tidy up the PR description with preview recordings 🙏🏻 . |
@pwltr Mainly outlook of how the app looks and feels, probably it wasn't that much of a need on iOS, on Android it's not from app's side who dictates what color theme the keyboard has, so, it used to be white and we used to have both
Theoretically it still behaves like a keyboard, it will probably look a litte odd because the calculator card is small and positioned either on the left or right above the numpad, but it ain't more different than what the OS keyboard look would bring in same case. |
0a5d50e to
989b9a4
Compare
Description
This PR:
ovi/calculator-os-widget-v61-backup-ios.Rationale for replacing OS keyboard with custom version of the in-app Numpad revolved around maintaining the app's look and feel and having more control to style it and have it behave like the app usually does in other flows.
Linked Issues/Tasks
Screenshot / Video
Note Recordings are sped up using
ffmpegat 2x for time reasons, actual capture of manual walkhroughs, not AI.calcWidgetPos2x.mov
calcWidgetOpts2x.mov
QA Notes
changelog.d/next/554.changed.mdManual Tests
➕ Dev + AI verified locally
0.00000000) like Android, including empty, integer, partially decimal, and fully decimal states..as the decimal key for both Classic BTC and fiat input, including comma-decimal locales.Reviewer / QA Requested
Note
These checks are marked as covered because they were exercised during local implementation and follow-up verification, including the final confirmed manual pass on the calculator focus/dismiss behavior.
The checks cover formatting/input behavior, Classic BTC placeholder parity with Android, fixed
.calculator decimal-key behavior, first/middle/last widget positions, above/around/below-center focus transitions, outside-tap dismissal, vertical numpad collapse, scroll locking while focused, and the vertical Home pager swipe-back regression..as the decimal key, matching the Android calculator behavior.Automated Tests
Added in this PR:
CalculatorWidgetTests: covers calculator grouping, fiat and Classic BTC decimal placeholder behavior, fixed.calculator decimal key behavior, number-pad delete/clear, decimal caps, localized comma input normalization, localized decimal input handling, fiat-only persistence, symbol shortening, classic BTC-to-sats conversion, classic BTC max-supply rejection, and visible0sats for fiat conversions that round to zero.Automated Checks
swiftformat Bitkit/Models/CalculatorWidgetData.swift Bitkit/Components/Widgets/CalculatorWidget.swift BitkitTests/CalculatorWidgetTests.swiftcompleted with no formatting changes needed after the Classic BTC placeholder / decimal-key patch.swiftformat Bitkit/Components/Widgets/CalculatorWidget.swift Bitkit/Views/Home/HomeWidgetsView.swiftcompleted with no formatting changes needed after the final animation patch.git diff --checkpassed.xcodebuild -workspace Bitkit.xcodeproj/project.xcworkspace -scheme Bitkit -configuration Debug -destination 'id=00008150-001C691C2604401C' -derivedDataPath build/DeviceValidation SWIFT_ACTIVE_COMPILATION_CONDITIONS='$(inherited) E2E_BUILD' buildpassed on the connected iPhone.LDKNodeFFI.frameworkinstall stub frombuild/DeviceValidation/Build/Products/Debug-iphoneos/Bitkit.app, re-signed the generated app product, installed it withxcrun devicectl device install app --device 07CD4544-B1F1-59BB-BB01-D50A80AECAC9, and launchedto.bitkitsuccessfully.xcodebuild build-for-testing ... -only-testing:BitkitTests/CalculatorWidgetTestspassed; after removing the known generated staticLDKNodeFFI.frameworkinstall stub and re-signing the generated app product,xcodebuild test-without-building ... -only-testing:BitkitTests/CalculatorWidgetTestspassed with 14 tests and 0 failures.xcodebuild test-without-building ... -only-testing:BitkitTests/CalculatorWidgetTestspassed on the connected iPhone with 18 tests and 0 failures after removing the known generated staticLDKNodeFFI.frameworkinstall stub from the generated app product.