Skip to content

openScale 3.0 beta build

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 07 Sep 06:55
· 15 commits to master since this release

Commits

  • e535e5e: Complete rewrite of the entire openScale application from Java to Kotlin. This is the initial commit for the Kotlin version on this branch, aiming for improved code quality, conciseness, and modern Android development practices. (oliexdev)
  • 8cff0b3: Add beta build type with new icon (oliexdev)
  • 48d2fb8: Fixed some warnings e.g. clean up unused variables and simplify logic (oliexdev)
  • 5513214: Add GitHub Actions workflow for beta builds (oliexdev)
  • 7a4b500: Use in SettingViewModel the showSnackbar method by ShareViewModel (oliexdev)
  • e369882: Use during csv import already existing MeasurementTypes (oliexdev)
  • 3a0840f: make line chart point a little bit transparent and smaller (oliexdev)
  • 5dcc41d: Initial integrated the existing Java Bluetooth scale classes and Bluetooth libraries from the Java-based openScale project.These components have been integrated into openScale 3.0 project structure but have not yet been migrated to Kotlin. Further work will be required to refactor and update this code to align with Kotlin best practices and the overall project architecture. (oliexdev)
  • c44080a: Make more MeasurementTypes visible in the default table and chart views (oliexdev)
  • 646d5a8: Recalculate derived values after CSV import (oliexdev)
  • 5a87f14: Add new Bluetooth string resources and use them (oliexdev)
  • 9e04555: Add ProGuard rules and OSS build type (oliexdev)
  • 8b77750: Add DatabaseProvider for data sharing and add real-time sync triggers with openScale sync (oliexdev)
  • 54b168d: Implemented Bluetooth user interaction handling (oliexdev)
  • 172cd8d: Enable database schema export and update Fastlane configuration (oliexdev)
  • db78109: Handle 'dateTime' column and skip zero values during CSV import for compatibility with openScale 2.x CSV exports (see issue oliexdev#1156). (oliexdev)
  • b9203c8: Add scale and measure unit to user settings (oliexdev)
  • e5e6708: Refactor ScaleFactory and BluetoothScannerManager to use ScannedDeviceInfo (oliexdev)
  • aa7a923: Refactor UserDetailScreen to use UTC for date calculations (oliexdev)
  • 8691a33: Add setting to show measurement type on right Y-axis (oliexdev)
  • acded1e: Enable measurement value conversion when unit changes (oliexdev)
  • Remove unit settings from user, use measurement type settings (oliexdev)
  • 994361a: Refactor measurement type to improves the logic for setting the initial and updating selectedInputType based on allowed types. (oliexdev)
  • 28725e9: When calculating derived values, the code now fetches the unit from the MeasurementType and converts the input values (e.g., weight to KG, waist to CM) before passing them to the calculation functions. This ensures calculations are performed with consistent units. (oliexdev)
  • 38185c2: Translate new dialog strings (oliexdev)
  • 841dcf0: Add logging for CHOOSE_USER interaction (oliexdev)
  • ac18160: Enhanced LogManager with Markdown formatting and lifecycle awareness (oliexdev)
  • 5bef95e: - Streamlined the handling of user input dialogs (CHOOSE_USER, ENTER_CONSENT) in AppNavigation.kt by resetting dialog-specific state based on interactionEvent.interactionType to ensure fresh state upon dialog visibility. (oliexdev)
  • 53d0550: Added some documentation to BluetoothViewModel for clarity (oliexdev)
  • b2fc2a1: Translate time range filter options (oliexdev)
  • bedf32c: Improve logging in BluetoothStandardWeightProfile (oliexdev)
  • 3459ac1: Enhance merging logic for Bluetooth standard weight profile (oliexdev)
  • 9e4b7f9: If a user mapping already exists, skip the user list and jump directly to selecting the scale user. (oliexdev)
  • cd991b4: Modifying the UserDetailScreen to use the localized gender display names. (oliexdev)
  • 365b102: Fix sync selectedUser field in driver with setSelectedScaleUser() (oliexdev)
  • a3d18a1: Introduces a new "Chart Settings" screen accessible from the main settings menu. (oliexdev)
  • 5b03c4b: Update default measurement type colors and units (oliexdev)
  • d61670c: enhances unit conversion capabilities, particularly for BODY_FAT, WATER, and MUSCLE measurement types. These types can now be converted between percentage (%) and absolute mass units (kg, lb, st) (oliexdev)
  • 4eed5ce: Replace String-based icons with enum and introduce MeasurementIcon composable (oliexdev)
  • 4da84c8: Adjust default icon and color for custom measurement types (oliexdev)
  • 98cc2ba: Add settings for chart data smoothing (oliexdev)
  • 8f7c15e: Implement Automatic Database Backups (oliexdev)
  • 3855d93: Introduces a feature where selecting a point on the line chart in the OverviewScreen will scroll the measurement list to the corresponding item and highlight it temporarily. (oliexdev)
  • 220afff: Enable point selection on graph screen to show measurement details (oliexdev)
  • cf6d834: Introduces a new framework for evaluating measurement values against reference ranges and displays this information in the UI. (oliexdev)
  • 3a13162: Displays evaluation state symbols (▲, ▼, ●, !) next to values in table screen, similar to the overview screen. (oliexdev)
  • 94f2346: Apply highlight color correctly for light theme (oliexdev)
  • 5f9d8f9: Refactor BluetoothMiScale2 for improved history handling and more reliable skeletal muscle mass calculation in MiScaleLib using the Janssen BIA equation, with a fallback to a lean body mass ratio if impedance is unavailable. (oliexdev)
  • f29bd96: Safeguard LogManager against concurrent file access (oliexdev)
  • 8c7a62c: Implement database migration from version 6 to 7 (oliexdev)
  • 01fd321: - Implemented a fileMutex to synchronize file access operations, preventing potential race conditions when writing to or exporting the log file. (oliexdev)
  • 9dc61d7: Refactor unique number generation for legacy scales. Additionally, fix corrected date parsing and history data for the MiScale2 driver: (oliexdev)
  • 5d8d816: Refactors Bluetooth permission handling and connection logic across several parts of the application (oliexdev)
  • 561b8e8: Update LogManager warning message and set BT_STATUS on disconnect (oliexdev)
  • 4e5c24f: Refactor BluetoothCommunication handler usage (oliexdev)
  • 3e966fb: Backfill derived values on app start if needed (oliexdev)
  • 940d473: Refactor database migration to use getDefaultMeasurementTypes (oliexdev)
  • 7e416f1: Refactored classes and packages to align with Android’s architecture recommendations (Hilt, lifecycle-aware state, unidirectional data flow) (oliexdev)
  • b43b6f9: Refactor BluetoothFacade and BluetoothViewModel for Snackbar handling (oliexdev)
  • 7013a41: Always show share/delete button for log files. Additionally, the app's version code has been incremented for the open beta build (oliexdev)
  • 5e75538: Add reminder functionality (oliexdev)
  • 769a3db: This commit introduces a new feature that groups snackbar messages when multiple measurements are saved in quick succession. Instead of displaying individual "Measurement saved" messages for each, a single message like "Saved X measurements" will now be shown. (oliexdev)
  • ac96842: The reminder notification now features a dedicated small icon (ic_notification_foreground) and uses the app's launcher icon (ic_launcher_foreground) as the large icon for improved visual clarity and consistency. (oliexdev)
  • 2901a3a: The notification icon has been scaled down to better fit the notification bar. (oliexdev)
  • 7bce0be: This commit introduces a new home screen widget that displays the latest value for a selected measurement type. (oliexdev)
  • ac8e27f: This commit introduces a new setting in the General Settings screen that allows users to enable or disable haptic feedback (vibration) when a new measurement is received and refactored BleConnector to use MeasurementFacade for saving measurements. (oliexdev)
  • 96143e6: Configured a debug build type in build.gradle.kts with an applicationIdSuffix of ".debug" and versionNameSuffix of "-debug". (oliexdev)
  • 7be6b95: This commit introduces the ability to select and apply body composition formulas (Body Fat, Body Water, LBM) within the measurement type detail screen. (oliexdev)
  • bdd2042: Add MeasurementType User and dialog to change user (oliexdev)
  • 84161c8: Rename .java to .kt (oliexdev)
  • baaae69: Convert legacy Bluetooth scale algorithm classes to Kotlin and unit tests have been added for each of these Kotlin classes to verify the correctness of the ported algorithms against snapshot values and behavioral properties. (oliexdev)
  • Introduce modern BLE scale handlers and adapter, which introduces a new architecture for handling Bluetooth Low Energy (BLE) scales, moving away from the legacy Java-based system towards a more modern, Kotlin-based approach. (oliexdev)
  • d4ecb37: Introduce LinkMode and broadcast-only support for ModernScaleAdapter, allowing handlers to declare whether they communicate via GATT or by parsing advertisement data only. (oliexdev)
  • 81783ba: This commit refactors the connection logic in ModernScaleAdapter.kt to improve handling of broadcast-only Bluetooth devices. (oliexdev)
  • 8524082: Adds modern Kotlin-based handlers for several Bluetooth scale models: (oliexdev)
  • 15566aa: This commit adds seven new modern Bluetooth scale handlers: (oliexdev)
  • b40a3bb: Separate ModernScaleAdapter into link-specific adapters: (oliexdev)
  • Modernize multiple Bluetooth scale handlers: (oliexdev)
  • 1bd1c36: Prioritize passed-in user for BT connect, allow brief wait for app state (oliexdev)
  • 303d74e: Improved GATT scale connection reliability and error reporting (oliexdev)
  • b075d8c: Introduce unified TuningProfile for all link types enum (Balanced, Conservative, Aggressive) and corresponding data classes (BleGattTuning, BleBroadcastTuning, BtSppTuning) to manage link-specific timing and retry parameters. (oliexdev)
  • b6df901: Ensure scale detection based on real Bluetooth device names (oliexdev)
  • 9e46741: Convert BLE measurement values to user-defined units before saving (oliexdev)
  • f81516c: Refactor Bluetooth settings for better usability (show capabilities and set tune profile) (oliexdev)
  • 9683082: Refactor Mi Scale handler for cleaner v1/v2 separation and robustness (oliexdev)
  • fb2b560: Made the screen scrollable and applied padding for IME and navigation bars. (oliexdev)
  • b2cf36e: Improve detection logic for QN and Renpho scales (oliexdev)
  • 123e164: Store full ScannedDeviceInfo for saved Bluetooth device enhanced DebugGattHandler to dump the full GATT service/characteristic tree (oliexdev)
  • c5950e2: Several improvements to how numeric values are displayed and entered. It handles unit suffixes (kg, lb, %, cm, in, kcal) and locale-specific decimal/grouping separators. For UnitType.ST, it converts decimal stones (e.g., 12.5) into "X st Y lb" format (e.g., "12 st 7 lb"). (oliexdev)
  • c41a7b5: The MiScaleHandler now accepts both FF FF and 00 00 as markers for the history count announcement, in addition to the existing FF FF marker. This change improves the reliability of detecting the history count on MiScales. (oliexdev)
  • 0b0779c: Add GIT_SHA and BUILD_TIME_UTC to build config and log output (oliexdev)
  • 823ade9: This commit modifies the QNHandler to only attempt to configure GATT characteristics if they are actually present on the connected device. This prevents errors when a scale might not support all expected characteristics (e.g., some QN scales might only implement one of the two characteristic "flavors"). (oliexdev)
  • e5785de: The user mapping helper methods (saveUserIdForScaleIndex, loadUserIdForScaleIndex, etc.) were previously located in the generic ScaleDeviceHandler.These methods are now moved to the more specific handlers where they are actually used. (oliexdev)
  • c1b6fb1: Handle display of text and user input types in MeasurementDetailScreen (oliexdev)
  • 2766b20: In MiScaleHandler.kt, use the user's ID for unique16() instead of a timestamp-based value to improve uniqueness and relevance. (oliexdev)
  • 3c323ae: Remove LBM from derived measurements and calculations as formulas could be applied to LBM (oliexdev)
  • c88c388: Add user icons, allowing users to select an icon for their profile. (oliexdev)
  • e0cdda2: Add support for ES-CS20M to QN-Scale (Josh)