Wykres commitów

3768 Commity (d0816d34957ed04c6ce5881cd4295cba4d5947e3)

Autor SHA1 Wiadomość Data
James Rich 68cd540f9e
fix #1634 #1552: Update Paxcount display condition (#1635)
Modify the Paxcount display logic to show the string if either `ble` or `wifi` is not zero, rather than requiring both to be non-zero.

Signed-off-by: James Rich <james.a.rich@gmail.com>
2025-03-05 07:59:28 -06:00
James Rich d78bea2365
feat: Show ALERT_APP notifications and override DND (#1515)
* feat: Show alert notifications and override silent mode

This commit adds support for showing alert notifications with high priority and the ability to override silent mode to ensure they are delivered to the user.

The changes include:
- Adding `showAlertNotification` function which overrides silent mode and configures a custom volume, shows a notification with high priority.
- Creating a new notification channel for alerts.
- Adding the alert app port number to the list of remembered data types.
- Modifying `rememberDataPacket` to check for alert app messages and show alert notification.

* Add notification policy access permission and DND override for alerts

This commit adds the `ACCESS_NOTIFICATION_POLICY` permission to the manifest and requests this permission from the user. It also adds a check for notification policy access in the MainActivity, and if it's not granted, shows a rationale dialog.

Additionally, the commit adds a notification override to the `showAlertNotification` function in `MeshServiceNotifications` to temporarily disable DND for alert notifications and restore the original ringer settings afterwards.

* Refactor: Enhance Android Notification and DND Handling

-   **Notification Channel Improvements:**
    -   Added `notificationLightColor` for better customization.
    -   Set `enableLights` and `enableVibration` in the alert channel.
    -   Use `alert.mp3` sound for alert channel.
-   **DND Permission Request:**
    -   Introduced a new permission request flow for Do Not Disturb (DND) access.
    -   Show a rationale dialog before requesting permission.
    -   Persist if rationale was shown to avoid re-prompting.
    - Added a `notificationPolicyAccessLauncher` to handle the permission request result.
-   **Critical Alert Text**
    - Added critical alert text in strings.
    - Used critical alert text if the alert message is empty.
-   **Other Changes**
    - Removed unused imports and constants.
    - Updated snackbar to support action.

* Refactor alert notification logic

- Change `notificationLightColor` to be lazy initialized.
- Update alert notification to use `CATEGORY_ALARM`.
- Use `dataPacket.alert` instead of `dataPacket.text` for alert content.
- Add `alert` property to `DataPacket` to handle alert messages.

* Set notification light color back to blue.

* Request notification permissions on grant

The app now checks for notification policy access after notification permissions are granted.

* make detekt happy

* updates dnd dialog text

* Refactor notification channel creation and critical alerts

- Initialize notification channels on service creation.
- Remove `ACCESS_NOTIFICATION_POLICY` permission.
- Modify the logic for requesting "Do Not Disturb" override permission to align with channel settings.
- Add new string resources for Alerts Channel Settings.
- Update wording for critical alert DND override.
- Update DND override request flow.
- Create notification channels on the service creation using `initChannels`.
- Adjust logic to check for "Do Not Disturb" override permission to align with notification channel settings.
- Ensure notification channels are created only if they do not already exist.

* refactor: Update DnD dialog with instructions for Samsung

- Renamed "Alerts Channel Settings" to "Channel Settings".
- Added Samsung-specific instructions and a link to Samsung's support page for Do Not Disturb mode in the alerts dialog.
- Updated the dialog to display Samsung-specific instructions when on a Samsung device.

* Refactor critical alerts instructions

- Updated the critical alerts instructions to include a link to Samsung's support page directly within the alert dialog.
- Removed the separate "Samsung Instructions" string and incorporated the information into the main instruction text, improving clarity and reducing redundancy.
- Made improvements to the UI.
2025-03-05 07:28:52 -06:00
James Rich 2859bed416
feat #1611: Add confirmation dialog when changing to router role (#1636)
* Add confirmation dialog for changing to router role

Introduced a confirmation dialog that will be shown when changing the device role to "router".
The confirmation dialog includes links to the "Device Role Documentation" and "Choosing The Right Device Role" blog post.
The user must check a checkbox to confirm.

* Update router role handling

Modified the handling of the router role in `DeviceConfigItemList.kt` to avoid returning prematurely from the `onItemSelected` lambda. This ensures that the role is updated properly when a user selects the "ROUTER" role.

* removes konami code check, remove testing code

* Refactor router role confirmation text

- Moves the router role confirmation text to strings.xml.
- Updates to use `AnnotatedString.fromHtml` instead of `buildAnnotatedString` and `withLink`.
- Changes from hard-coded strings to string resources.
2025-03-05 07:26:19 -06:00
renovate[bot] 888688176c
chore(deps): update com.android.tools.build:gradle to v8.9.0 (#1639)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-04 14:41:23 -06:00
Joshua Soberg 749c4b4918
fix #1616: Calculate DP to pixel value for map label offset (#1637) 2025-03-04 14:40:57 -06:00
Joshua Soberg c597b3b000
fix #1554 (a11y): Add content description to tabs for screen reader support (#1631) 2025-03-02 09:22:24 -06:00
Joshua Soberg d8f67e011a
fix #1615: Add explicit signed int editing preference (#1629) 2025-03-02 09:20:27 -06:00
Joshua Soberg 5da827473a
fix #1616 (a11y): Use SP font size for marker labels on the map (#1630)
* Use and SP font size for marker labels on the map

* Fix detekt issue
2025-03-02 09:14:12 -06:00
James Rich 1a11c3351b
Refactor NodeDetail.kt to use has*() functions (#1627)
Modified NodeDetail.kt to replace direct comparisons with 0f or 0 for sensor values with corresponding has*() functions.
This change improves code readability by clearly indicating the presence or absence of sensor data.
2025-03-02 06:12:07 -06:00
Ken Piper b316e066ad
fix: Add the "When" to new message notifications (#1628) 2025-03-02 06:11:33 -06:00
renovate[bot] 24f218ef2c
chore(deps): update com.google.firebase:firebase-bom to v33.10.0 (#1623)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-27 16:24:16 -06:00
renovate[bot] b58c674de8
chore(deps): update navigation to v2.8.8 (#1620)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-27 16:23:48 -06:00
renovate[bot] 1a333dbd4a
chore(deps): update com.google.devtools.ksp to v2.1.10-1.0.31 (#1622)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-27 16:23:26 -06:00
renovate[bot] 6a0ce49aa3
chore(deps): update com.android.tools.build:gradle to v8.8.2 (#1619)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-27 16:22:49 -06:00
renovate[bot] 4cf2b74bcc
chore(deps): update androidx.datastore:datastore to v1.1.3 (#1618)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-27 16:22:13 -06:00
renovate[bot] 1ae57a1693
chore(deps): update androidx.constraintlayout:constraintlayout to v2.2.1 (#1617)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-27 16:21:40 -06:00
renovate[bot] 2cc66d6b57
chore(deps): update gradle to v8.13 (#1614)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-27 16:19:09 -06:00
Joshua Soberg 2f48e8e68a
chore: Unused code cleanup (#1612)
* Remove unused SoftwareUpdateService code and commented out service reg in manifest

* Remove unused methods that had unnecessary version checks

* Regenerate baseline to remove detekt issues that are no longer present
2025-02-27 16:18:42 -06:00
James Rich 4242afef9c
feat: Introduce Version Catalog for Dependency Management (#1607)
* feat: Introduce Version Catalog for Dependency Management

This commit introduces a version catalog via `libs.versions.toml` to centralize and manage project dependencies. It replaces the previous hardcoded dependency versions in `app/build.gradle` with references to the version catalog. This change enhances maintainability and organization by centralizing dependency management.

- Added `gradle/libs.versions.toml` to define dependencies and their versions.
- Updated `app/build.gradle` to utilize dependencies from the version catalog.

* chore: migrate plugins to version catalog

* chore: sort lines in `libs.versions.toml`

-Sorts `versions`, `dependencies`, and `plugins` references alphabetically.

* feat: pin ZXing Core dependency

*   Suppressed warning about updating zxing-core to avoid confusion.
*   Added a note to avoid updating zxing-core.

* refactor: Enforce consistent `implementation()` calls in `build.gradle`

-   Ensures all library dependencies are called with `implementation(libs.xxx)` instead of `implementation libs.xxx` in `build.gradle`.

* feat: use version catalog bundles

- Updated dependencies in the app build.gradle to use bundles where possible.

* fix: fix ui test dependency declarations

* chore: comments for clarity

* fix: remove material3 from this PR
2025-02-24 18:42:37 -06:00
Joshua Soberg 1e9b1c2bc3
feat: PR screenshot template(#1606) 2025-02-22 14:55:53 -06:00
Joshua Soberg ef64df3515
fix: Stop overriding surface/onSurface in theme (#1605)
Fixes #1604
* Stop overriding surface/onSurface in theme

* Wrap preview in AppTheme to get a better representation of what it'll look like on-device
2025-02-22 14:06:56 -06:00
Joshua Soberg 8fee9dbc45
fix: Accommodate large font for node filter (#1602)
Fixes #1561

* Add large font preview

* Adjust default min size such that the filter input will accomodate larger fonts. Also, align the dropdown icon and use body1 typography for input text

* Add license and newline to fix detekt issues
2025-02-22 12:57:30 -06:00
renovate[bot] 84d916f410
chore(deps): update plugin io.gitlab.arturbosch.detekt to v1.23.8 (#1600)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-22 11:07:53 -06:00
renovate[bot] 9a026a8b6c
chore(deps): update io.gitlab.arturbosch.detekt:detekt-formatting to v1.23.8 (#1599)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-22 11:07:10 -06:00
Robert-0410 85d6e0ccdf
feat: Graphs Blue Color (#1597)
* Changed the humidity color on the graph to the same blue used for current in the power graph.

* Refactor: Centralized the blue used in both the Env and Pow metrics in CommonCharts.kt.

---------

Co-authored-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2025-02-22 09:39:46 -06:00
Joshua Soberg 3e74373617
chore(devex): Update project name and icon (#1601)
* Update project name from "Mesh Util" to "Meshtastic Android"

* Add project icon for Android Studio/IntelliJ/Jetbrains Toolbox
2025-02-22 09:17:50 -06:00
James Rich 7ef396bf3b
2.5.17 2025-02-16 17:59:36 -06:00
Joshua Soberg 5430169830
Add an animation to user node list items to animate on details expansion (#1590) 2025-02-16 14:37:49 -06:00
James Rich 8ddd553753
chore: update proto submodule to v2.5.22 (#1589) 2025-02-16 10:48:30 -06:00
Joshua Soberg ed52a5360f
Apply a background to the filter search sticket header so that list items don't show behind it when scrolling (#1588) 2025-02-16 10:22:06 -06:00
Joshua Soberg 37489604f0
Introduction of stable Compose UI State and some simple animations in Debug Panel (#1575)
* Add dependency to KotlinX immutable collections

* Build a Compose-stable UI state vs using a database model. Move appropriate mapping logic for converting database model -> UI state into the view model. Introduce animations to new log placement and automated scroll.

* Center the top card row vertically

* Move log message generation into separate method

---------

Co-authored-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2025-02-16 06:09:41 -06:00
Ken Piper e15ad23c46
feat: Initial implementation of adding nodes to favorites (#1520)
* Implement initial support for adding and removing nodes from favorites

* Make favorite nodes' names show up bold in the node list

* Forgot to add this here when I was fixing the previous merge conflicts. Whoops!

* Make detekt happy

---------

Co-authored-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2025-02-16 06:02:02 -06:00
James Rich 584fe8d6f8
fix: limit quick chat append, prevent duplicates (#1522)
Limits quick chat append to 200 characters and prevents duplicate appends.
Also sets a constant for the max message size.

fixes #1511
2025-02-16 05:51:54 -06:00
Robert-0410 b067a0c0b3
feat: Power graph (#1556)
* Refactor: We can draw the horizontal lines for the graphs independent of min and max entries.

* Added navigation to the PowerMetrics log with a skeleton screen.

* Drew channel 1 voltage.

* Refactor: Assigned colors for the data within the enum instead of a list-ordinal combo.

* Plotted Ch1 current line.

* Refactor: Did not need the parameters being used to get the desired ui in the TimeLabels composable.

* Added a row to help distinguish between units.

* Refactor: MetricsTimeSelector.kt to SlidingSelector.kt; the new version allows for generic options.

* Added a sliding selector to choose between power channels and changed the legend data to instead display current and voltage.

* We now plot the line for which the user has selected a power channel option.

* Don't need the current line to be dotted anymore.

* Don't think we need to display an info dialog for voltage and current.

* Wrote card to display the power channel data entries.

* detekt

* Refactor: current color change to accommodate the themes better

---------

Co-authored-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2025-02-15 22:37:05 -06:00
Joshua Soberg 24abd1ac4a
fixes #1557: Filter out emojis when creating short names (#1578)
* Filter out emojis from text when finding initials

* Confirm non-English non-emoji unicde isn't filtered

* Remove unused example unit test

---------

Co-authored-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2025-02-15 22:25:35 -06:00
James Rich e11d726e27
feat: Add RAK2560 hardware model and graphic (#1543)
Adds the RAK2560 to the list of supported devices and associates it with the corresponding vector drawable.
2025-02-15 22:17:57 -06:00
Ken Piper 86128a19c8 Add missing units to node details info cards 2025-02-15 22:07:49 -06:00
James Rich 0aff35b560
chore(deps): update plugin com.google.devtools.ksp to v2.1.10-1.0.30
chore(deps): update plugin com.google.devtools.ksp to v2.1.10-1.0.30
2025-02-15 21:43:46 -06:00
renovate[bot] b281e9fe54
chore(deps): update plugin com.google.devtools.ksp to v2.1.10-1.0.30 2025-02-16 03:32:03 +00:00
James Rich da8f5aad94
chore(deps): update com.android.tools.build:gradle to v8.8.1
chore(deps): update com.android.tools.build:gradle to v8.8.1
2025-02-15 21:31:29 -06:00
renovate[bot] 8aaaf33bc4
chore(deps): update com.android.tools.build:gradle to v8.8.1 2025-02-16 03:21:51 +00:00
James Rich 7180291593
chore(deps): update androidx.fragment:fragment-ktx to v1.8.6
chore(deps): update androidx.fragment:fragment-ktx to v1.8.6
2025-02-15 21:11:38 -06:00
renovate[bot] bc2fffd810
chore(deps): update androidx.fragment:fragment-ktx to v1.8.6 2025-02-16 03:01:04 +00:00
James Rich d79d529e35
chore(deps): update androidx.datastore:datastore to v1.1.2
chore(deps): update androidx.datastore:datastore to v1.1.2
2025-02-15 20:58:57 -06:00
renovate[bot] 04f27dda40
chore(deps): update androidx.datastore:datastore to v1.1.2 2025-02-16 02:51:38 +00:00
James Rich 97002266c7
chore(deps): update nav_version to v2.8.7
chore(deps): update nav_version to v2.8.7
2025-02-15 20:50:24 -06:00
renovate[bot] 6f07e33a0e
chore(deps): update nav_version to v2.8.7 2025-02-16 02:20:15 +00:00
James Rich 8a961fa7b8
chore(deps): update com.suddenh4x.ratingdialog:awesome-app-rating to v2.8.0
chore(deps): update com.suddenh4x.ratingdialog:awesome-app-rating to v2.8.0
2025-02-15 20:15:50 -06:00
renovate[bot] 481b724a3b
chore(deps): update com.suddenh4x.ratingdialog:awesome-app-rating to v2.8.0 2025-02-16 02:01:47 +00:00
James Rich 349b933869
chore(deps): update coroutines_version to v1.10.1
chore(deps): update coroutines_version to v1.10.1
2025-02-15 19:59:29 -06:00