cyb3rko / flashdim

Modern flashlight app with dim functionality on Android 13+
Apache License 2.0
456 stars 18 forks source link

Support for Android 14 predictive back gesture + navigation bar transparency (edge-to-edge) #35

Closed Seanathan10 closed 9 months ago

Seanathan10 commented 10 months ago

1. Predictive Back Gesture

Android 14 brought the predictive back gesture, which adds a nice preview animation to give the user an idea of what the previous page is. This pull request adds support for the predictive back gesture into FlashDim as its a nice touch. This also further prepares the application Android 14's design standards for predictive back.

https://github.com/cyb3rko/flashdim/assets/38306929/0bd8fc2c-f3cb-4c74-93a7-6f40e5fd10f7

https://github.com/cyb3rko/flashdim/assets/38306929/41f4890a-dd51-4ef4-8fb0-67f9c5a805c2

2. Navigation Bar Colour + Edge-to-Edge in Settings Page

This one is more minor, but it makes the app look nicer on some devices which don't fully match the navigation bar colour to the app's colour.

In the main page, on some devices, the navigation bar no longer has its translucent scrim behind it. This also improves the look on 3-button navigation devices as the app is a solid colour.

The Settings page has also been declared to not fit system windows, allowing it to render below the navigation bar. It improves the visuals of the application.

Before Changes After Changes
MainNavBarBefore MainNavBarAfter
SettingsNavBarBefore SettingsNavBarAfter

As shown in this table above, the navigation bar on the settings page no longer covers up text or the toggles, which results in a cleaner user interface.

Old 3 Button Look New 3 Button Look
3ButtonBeforeMain 3ButtonAfterMain
3ButtonSettingsBefore 3ButtonSettingsAfter
3ButtonScrollTextCoveredBefore 3ButtonScrollTextCoveredAfter

By removing the scrim on the main page, the 3 button navigation bar blends in more naturally with the rest of the app, making the background of the app the background of the 3 buttons as well, resulting in a cleaner experience.

With the new edge-to-edge rendering, content being obscured by the navigation bar isn't an issue as the user can easily scroll up and access anything below the 3 buttons.

This also improves the user experience as it provides a hint at a scrollable page. Before, the bottom option was covered by the navigation bar, hiding the fact that there is another settings below. With edge-to-edge, the user can easily see the obscured setting and will know that a scrollable view exists.

As the view is fully scrollable with bottom padding implemented, the user can still easily click on the buttons below the navigation bar:

https://github.com/cyb3rko/flashdim/assets/38306929/2549b0c1-5580-4ac9-bad4-47dea100798f

cyb3rko commented 10 months ago

As I don't have a Samsung device running Android 13 or newer, I can not verify the changes.
But I can check if it still works on Google's Android.

cyb3rko commented 9 months ago

Closing due to rewritten git history.
If you still want to implement this improvement, you would have to open a new PR with the same changes