Commit graph

346 commits

Author SHA1 Message Date
Phil Oliver
eedc3ef963
Decouple SettingsScreen from UiViewModel (#3137) 2025-09-18 11:40:33 +00:00
Phil Oliver
08ced48652
Move remaining 3-dot menu items to Settings (#2985) 2025-09-05 19:51:09 +00:00
Phil Oliver
177138ac8f
More migration to top-level Settings (#2903) 2025-08-28 20:04:27 +00:00
James Rich
af6066d788
feat(ui): display app version in connections screen (#2835)
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2025-08-25 19:43:34 +00:00
Phil Oliver
da1932fae0
Extract MainAppBar to its own file (#2788) 2025-08-19 23:55:10 +00:00
Phil Oliver
d574ba738d
Migrate 'MainActivity' prefs to repo pattern (#2770) 2025-08-18 18:20:23 +00:00
Phil Oliver
8429f35c1e
MVVM-ify logic to display app intro (#2748) 2025-08-16 18:58:21 +00:00
Phil Oliver
acc3e3f636
Decouple mesh service bind from MainActivity (#2743) 2025-08-16 11:52:15 +00:00
Phil Oliver
69841ebd59
Backport splash screen to API 26 (#2747) 2025-08-16 01:33:30 +00:00
Phil Oliver
570f323328
fix(UI): Apply window insets on welcome screens (#2734) 2025-08-15 18:25:25 +00:00
James Rich
a35e43d979
revert(service): reverts a bunch of changes to MeshService.kt (#2692)
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2025-08-12 22:19:40 +00:00
James Rich
4a7e3e35e0
feat(service)!: refactor configuration, nodedb, and connection states (#2661)
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2025-08-08 21:59:54 +00:00
DaneEvans
edd40890be
Fix/2558 rangetest (#2569) 2025-07-30 11:50:25 +00:00
James Rich
2c6751a574
feat: onboarding refresh (#2551)
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-29 14:42:36 +00:00
James Rich
25111552eb
feat: Add support for sharing contacts via deeplink (#2336)
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2025-07-03 12:42:04 +00:00
James Rich
91dd6dbef4
Refactor: Replace AppIntro library with Compose implementation (#2332)
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2025-07-03 11:27:08 +00:00
James Rich
ca3c787e71
Refactor: Inject BluetoothViewModel into ConnectionsScreen (#2228) 2025-06-22 18:26:04 -05:00
James Rich
83e6c6cc31
fix: refactor MainActivity to use lifecycleScope for coroutines (#2153) 2025-06-18 14:30:00 -05:00
James Rich
95224c20ef
feat: adaptive nav (#2079) 2025-06-13 02:34:01 +00:00
James Rich
89462be97a
fix: ensure bg loc permissions, unbind service (#2050) 2025-06-07 15:42:29 -05:00
James Rich
6153cfdab1
Refactor: Use FLAG_ACTIVITY_SINGLE_TOP for MainActivity intents (#2022) 2025-06-04 19:20:30 +00:00
James Rich
868d705b2d
fix: per-device location sharing (#2010) 2025-06-03 21:04:24 +00:00
James Rich
6915249121
refactor: Move version checks to Main.kt (#1995) 2025-05-31 20:36:35 -05:00
James Rich
8d231ff125
refactor: Update notification and service handling (#1993) 2025-05-31 20:02:23 +00:00
James Rich
ad1897c564
Refactor: organize ui screens to separate packages (#1982) 2025-05-29 18:18:45 -05:00
James Rich
ef1c71722a
fix: respect keyboard, edgeToEdge tweaks (#1968) 2025-05-28 12:33:00 -05:00
James Rich
3eefe4b66c
refactor: edgeToEdge tweaks, chip elevation (#1962) 2025-05-28 09:34:08 -05:00
James Rich
6332b3bd42
feat(node): consolidate node chip and menu (#1941) 2025-05-26 19:36:32 -05:00
James Rich
9e2fb3792f
fix(#1874): Check that Meshtastic URL is for a channel set (#1890) 2025-05-21 03:42:29 +00:00
James Rich
38b9515fca
refactor: Move "provide location" preference to DataStore (#1877) 2025-05-19 21:23:29 +00:00
James Rich
4cba13ea14
feat: material3 (#1862) 2025-05-17 11:39:53 -05:00
James Rich
8cde47bdf9
refactor: migrate to Compose navigation (#1835)
Co-authored-by: andrekir <andrekir@pm.me>
2025-05-15 08:05:30 -05:00
James Rich
d40672df40
fix #1654: Move the app rating dependency to googleImplementation (#1656)
* Move the app rating dependency to googleImplementation

The `awesome.app.rating` dependency is now under `googleImplementation` instead of `implementation` in `app/build.gradle`.

* Refactor alert DND dialog padding

Use `dpToPx` for padding in the alert DND dialog for better consistency.
2025-03-07 14:25:46 -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
Joshua Soberg
c597b3b000
fix #1554 (a11y): Add content description to tabs for screen reader support (#1631) 2025-03-02 09:22:24 -06:00
andrekir
a3a3958dfb refactor: move NavGraph to navigation package 2025-01-11 09:29:48 -03:00
andrekir
13b615a470 chore: update license header 2025-01-02 07:00:51 -03:00
andrekir
96087cca59 refactor: move message files to separate package 2024-12-03 09:14:32 -03:00
Espié.R
d76eac258b
feat: add text/plain intent to send message (#1389) 2024-11-30 14:12:08 -03:00
andrekir
44d195a4a5 refactor: Messages navigation to single contactKey argument 2024-11-28 08:45:44 -03:00
andrekir
1219d3037e chore: add GPL-3.0 license headers to source files 2024-11-26 08:54:18 -03:00
andrekir
4e9055c9b1 fix: update channel URL to match channel selection 2024-11-25 20:09:50 -03:00
andrekir
f73d909cd0 refactor: consolidate QR code scanning methods 2024-11-21 10:32:37 -03:00
andrekir
cfdb245da2 refactor: convert connectionState to StateFlow 2024-11-12 09:15:45 -03:00
James Rich
80e915a36c
feat: show unique messaging notifications per contact (#1381)
* Show unique notifications per contact

Instead of a single notification for all messages, each contact now has its own, unique notification. This uses the `NotificationCompat.MessagingStyle` and the contact's name to create distinct notifications, enhancing message organization.

* feat: Add notification tap action to open contacts tab

This is done by:
- Adding an intent extra to the notification with the contact key for future use to navigate to the message thread.
- Adding a new action to the MainActivity to handle the intent.
- Updating the message notification to include the intent.

* Open message notification to the correct conversation

Adds an extra to the message notification intent to open the correct conversation. This ensures that when a user taps on a message notification, they are taken to the conversation with the sender of that message.
2024-11-04 19:05:39 -03:00
L. Pereira
abb4db8faf
feat: Short duration for the "notification permissions denied" snackbar (#1346) 2024-10-26 05:55:21 -03:00
andrekir
3ac0e8c28e refactor: extract NavGraph from RadioConfig 2024-10-21 06:07:28 -03:00
andrekir
fe56d257f5 chore: add detekt formatting rule set
https://detekt.dev/docs/next/rules/formatting/
2024-10-14 07:56:29 -03:00
andrekir
c0692b80ec refactor: remove legacy BLE characteristic 2024-10-02 20:00:02 -03:00
AddisonTustin
e4c6000a10
feat: support add=true in QR codes (#1151) 2024-07-28 08:50:54 -03:00