This merge request implements a more mobile optimized solution for popup notification.
-
The current controls are:
- Swipe up to move the notification to the notification center.
- Swipe left/right to dismiss the notification entirely.
- If multiple popup notifications are grouped together, tap on the bottom area to view them in a expanded view.
What still needs to be done:
- ~~For notification without a default action, tapping on them should probably open up the associated app.~~ Note: I think I will add this in a separate merge request as it probably should be the case regardless if the notification is a popup
- ~~Swiping down on a notification currently does nothing. Maybe we should map this to a notification action?~~ Note: I have some ideas I will try later, though for now, I will leave this action blank
- ~~The expanded view of notifications should be able to be dismissed by swiping up/down on the top/bottom of the list.~~ Note: Added
- Investigate further into how to remove the current desktop popup notifications.
- ~~Code clean up.~~ Note: The code is at least a bit better
Single popup notification:

Multiple popup notifications:

Multiple popup notifications in the expanded view:

Any feedback would be greatly appreciated.
Currently modules are initialized as QQuickItems. In order to be able to
add custom properties for modules to set in the future, introduce
InitialStartModule as the top-level QML object for modules to
initialize.
Currently only two properties are implemented: `available` for whether
to show the module in the wizard, and `contentItem` for the visual
module item.
This fixes in issue where the favorites bar icons would previously animate based off of position changes. This was causing unwanted animations in situations like screen rotation and login.
This fixes an issue where if the device is rotated on the 2nd or further page, the page would not snap immediately back to the right position, but would instead animate.
Some changes in Kirigami.Dialog recently completely broke the dialog, we
apparently now have to manually set dimensions on children. Use
DatePopup from Kirigami Addons in order to reduce the code needed here.
Make sure that the view colorset is correct, remove unnecessary layer
(clip is enabled), and remove unnecessary visibility hack for the
notifications widget.
Previously, we had a silent failure of the dbus call to "reloadConfig"
which turned out to be a signal and not a method that we can call. To
reload effects, we need to manually call dbus to load and unload each
individual one. A similar situation exists for scripts, except that we
only unload scripts through individual calls, and call `start` to load
all of the enabled scripts at once.
This avoids having to completely load the quicksettings, status bar,
media widget, and notifications list from scratch when the view changes.
We now have a single instance of each component which is reparented to
the new view (portrait/landscape).
Fixes https://invent.kde.org/plasma/plasma-mobile/-/issues/406
This change adds a drop-down in the mobileshell kcm allowing setting the
status bar height (as its scale factor).
Also, smallish capitalization fix, this page is still not consistent,
but a little more now.
Signed-off-by: Sebastian Kügler <sebas@kde.org>
This change allows scaling of the statusbar (the top panel).
As we have to accommodate for a wide variety of devices with different
physical pixel sizes, we need a way to scale the top panel / status bar.
This change introduces a config value (in plasmamobilerc, such as other
shell settings) that controls this size.
For example (plasmamobilerc):
[General]
statusBarScaleFactor=1.5
(Config UI in kcm mobileshell in separate patch)
Signed-off-by: Sebastian Kügler <sebas@kde.org>
Currently, Quick Settings in landscape mode is not scrollable, due to issues with `scrollViewComponent`. This causes some buttons to become unseen in landscape mode but not portrait. This has been solved by deleting `scrollViewComponent` and replacing it with `swipeViewComponent`, to allow swiping to access other buttons in Quick Settings.
Before (docked mode and hotspot are missing):

After (docked mode and hotspot are there):

However, with this setup, `resetSwipeView()` doesn't work, and Quick Settings remains at the page it was left at.
Fixes: https://invent.kde.org/plasma/plasma-mobile/-/issues/274
Any feedback on these changes would be much appreciated.


Change Log:
- NanoShell FullScreenOverlay was changed to a LayerShellQt Window to keep it on the top layer and to prevent the popup from obsorbing all touch inputs.
- New animations were added to the volume popup.
- User can now change the volume by touching and dragging on the popup
- The mute button on the popup was fixed
- Mute buttons were added next to the volume sliders in the AudioApplet page
- Volume icons now dynamically update to the volume level
- Visual design adjustments
This change make Plasma Mobile show multiple batteries in the top panel
in case the system has more than one.
Signed-off-by: Sebastian Kügler <sebas@kde.org>
This change ports BatteryInfo away from dataengines to the new battery
model that is also used for Plasma Desktop.
Signed-off-by: Sebastian Kügler <sebas@kde.org>
Most Notable Changes Here Include:
1. If the user moves and lifts their finger up halfway up the screen, the navigation gesture will now go home.
2. The task drawer will now move in and out of view depending on the gesture navigation state.
3. The app window will now continue to shrink with resistance as the window moves further up.
4. When in the task drawer, if the user drags up from the bottom, the current task will now follow the users finger like the task does when dragging up from within an app.
5. The task drawer will now slide in from the side when it is not within an app.
I would upload a video here to showcase these changes. However, I was unable to get OBS to record my screen while in my plasma mobile session.