Commit graph

600 commits

Author SHA1 Message Date
Kunda Ki
7f3dcab42b Fix various typos
Fixes typos in various source comments.  
Found via `codespell -S "*.po,*.svg,*.pgm,*.xml,./po,*.desktop,*.json,*.actions" -L aline,aparent,childs,distroname,indexin,indx,logicaly,lokal,nd,splitted,te`
2025-09-05 12:21:15 +00:00
l10n daemon script
0058c094b2 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2025-08-31 01:35:32 +00:00
l10n daemon script
4a9c591146 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2025-08-27 01:36:18 +00:00
l10n daemon script
5c0ff01630 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2025-08-25 01:35:11 +00:00
Florian RICHER
2ba1eeb8d4 mobileshellstate: Fix memory leak 2025-08-19 18:42:23 +02:00
Sebastian Kügler
cee1982877 quicksetting: add api docs
Signed-off-by: Sebastian Kügler <sebas@kde.org>
2025-08-18 10:59:49 +02:00
Sebastian Kügler
569d268c49 kscreenosd popup: auto-switch to convergenceMode
This popupprovider takes care of automatically enabling and disabling
convergence / docked mode when a monitor is plugged in or unplugged.

It uses the plugin that is provided with the kscreenosd quicksetting,
which essentially notifies of outputs being added and removed.

Signed-off-by: Sebastian Kügler <sebas@kde.org>
2025-08-18 10:59:49 +02:00
Sebastian Kügler
c3ae6650ed quicksettings: fix dynamic removal
When a quicksetting is changed to not available, it should be removed
from the model. The proper API call to beginRemoveRows() has the index
of the last removed element as last parameter and will fail with null.

This patch makes dynamically removing a quicksetting by changing the
available property to false.

Signed-off-by: Sebastian Kügler <sebas@kde.org>
2025-08-18 10:59:49 +02:00
l10n daemon script
868c6a72b6 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2025-08-15 01:40:05 +00:00
Devin Lin
f6b6c51921 homescreen: Fix initial zoom state
This code seemed to depend on the task switcher state changing for
having the initial state being correct.
https://invent.kde.org/plasma/plasma-mobile/-/merge_requests/800 exposed
this since the signal no longer gets emitted at the beginning.
2025-08-13 23:50:26 -04:00
Devin Lin
749c0de5d5 mobileshellstate: Fetch initial state properly, and check property
Ensure that all of the variables have their initial state fetched at the
start with the shell DBus client. Also ensure that they only emit
property changes when they actually happen.
2025-08-10 14:55:42 -04:00
Devin Lin
54cd4d548e notifications: Ensure correct state is being set for do not disturb
Change the "toggleDoNotDisturbMode" function to "setDoNotDisturbMode"
and add a parameter so that we actually set the mode to the intended
value, not just flip it.
2025-08-07 12:10:37 -04:00
l10n daemon script
c3ee2fe339 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2025-08-05 01:37:48 +00:00
l10n daemon script
bc4f9d9f81 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2025-08-04 01:34:10 +00:00
Florian RICHER
8210205780 waydroid: Implement reset action 2025-08-02 11:34:17 +02:00
l10n daemon script
af8460c208 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2025-08-01 01:36:35 +00:00
Florian RICHER
5c93d1e77a waydroid: Refactor with QCoro 2025-07-30 20:01:52 +02:00
Florian RICHER
a2b9e98801 waydroid: Use KAuth progressStep 2025-07-30 12:49:23 +02:00
l10n daemon script
8ae745aa42 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2025-07-29 01:32:54 +00:00
l10n daemon script
cb19e54df4 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2025-07-26 01:33:44 +00:00
l10n daemon script
e499e308ea SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2025-07-22 01:36:10 +00:00
Florian RICHER
38d6f4080d kcm: Load applications in signal handler instead of waitForFinished for Waydroid 2025-07-21 18:39:43 +02:00
Florian RICHER
de7b63572f kcm: Implement Waydroid Applications 2025-07-21 18:39:43 +02:00
l10n daemon script
2193403810 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2025-07-21 01:34:39 +00:00
l10n daemon script
ba9aac70b2 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2025-07-19 06:10:44 +00:00
Devin Lin
bc3e80c479 mobileshell: Manually specify QML files, and private some internal files
The globbing pattern for finding QML files is problematic because it
breaks when we add/delete a file (requiring us to delete
~/kde/build/plasma-mobile). It also placed every file (both public and
internal files) in the same flat namespace, carrying the risk of name
collisions between unrelated folders.

This commit manually specifies every file in the package. It also moves internal files in the actiondrawer folder into its own namespace. Followup MRs will do this process for other folders.
2025-07-18 11:01:26 -04:00
l10n daemon script
f6ecadd19a SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2025-07-18 01:33:06 +00:00
l10n daemon script
ec2ca909c2 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2025-07-17 01:33:01 +00:00
l10n daemon script
c0a0aea0ce SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2025-07-16 01:34:23 +00:00
l10n daemon script
a1ea58567d SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2025-07-15 01:36:34 +00:00
Florian RICHER
8b4b3e22e7 Hide Google services if is not Gapps System Type installed 2025-07-14 15:46:50 +02:00
Florian RICHER
a45e9cc56e Fetch Android ID from Waydroid 2025-07-14 15:46:50 +02:00
l10n daemon script
d0a8e4927d SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2025-07-13 01:34:24 +00:00
l10n daemon script
40019a9185 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2025-07-12 01:34:30 +00:00
l10n daemon script
4ed20886c0 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2025-07-11 01:34:44 +00:00
Devin Lin
d0b1df97a6 homescreens/halcyon: Unify search widget with folio
This commit drops halcyon's search widget in favour of using the same
widget as folio to share code. This also brings over its keyboard
navigation features.
2025-07-10 17:04:42 -04:00
Devin Lin
0bcab0ae3a homescreens/folio: Add keyboard navigation to app drawer and fix on
search

This commit is a subset of
https://invent.kde.org/plasma/plasma-mobile/-/merge_requests/694 to add
keyboard navigation to the app drawer.

Pressing the arrow keys while in the app drawer will allow you to
navigate between the apps and the search bar, and going up will exit the
app drawer. Escape/Back is also supported for unfocusing the search bar
and exiting the view.

This also fixes an issue in the keyboard navigation on the search screen
where it wouldn't close when there are no search results.
2025-07-10 17:04:08 -04:00
Florian RICHER
14839c4389 kcm: Implement minimal Waydroid support
I prefer create MR now to avoid biggest merge request.

It add minimalist implementation: 
- First configuration of Waydroid
- Stop / Start Waydroid session
- Configure properties of Waydroid
- Display current ip of Waydroid

| Not installed | First initialization | initializing | SessionNotStarted | SessionStarting | SessionStarted |
| ------ | ------ | ------ | ------ | ------ | ------ |
| ![Copie_d_écran_20250705_162112](/uploads/66844057ee6c955803288993809616fa/Copie_d_écran_20250705_162112.png) | ![Copie_d_écran_20250707_234822](/uploads/133779f8d4a70551a321938a7193aa3d/Copie_d_écran_20250707_234822.png) | ![Copie_d_écran_20250707_234829](/uploads/bacecd42875e3afd48dba2f9472b0f13/Copie_d_écran_20250707_234829.png) | ![Copie_d_écran_20250707_234908](/uploads/c6eff9833e33f30797088e327fcf6ea3/Copie_d_écran_20250707_234908.png) | ![Copie_d_écran_20250707_234919](/uploads/1927e2334d7e3b5790e5fab9037feff7/Copie_d_écran_20250707_234919.png) | ![Copie_d_écran_20250707_235239](/uploads/9be45b0a7b5f988de0e9ac297a2447c8/Copie_d_écran_20250707_235239.png) |

Linked to https://invent.kde.org/teams/plasma-mobile/issues/-/issues/307

**Note for Reviewer**: In my local environment, i need to add manually the KAuth files otherwise polkit not recognize the implementation.

```
sudo cp ~/kde/usr/share/dbus-1/system-services/org.kde.plasma.mobileshell.waydroidhelper.service /usr/share/dbus-1/system-services/
sudo cp ~/kde/usr/share/dbus-1/system.d/org.kde.plasma.mobileshell.waydroidhelper.conf /usr/share/dbus-1/system.d/
sudo cp ~/kde/usr/share/polkit-1/actions/org.kde.plasma.mobileshell.waydroidhelper.policy /usr/share/polkit-1/actions/
```
2025-07-10 12:00:41 -04:00
Devin Lin
3b6951bf1e panel: Overlay over lockscreen
Overlay the shell's status panel and quicksettings panel over the lockscreen, instead of rendering a second copy in the lockscreen theme. This will allow us to improve the lockscreen loading speed.

Key changes:
- Overlay quicksettings window and the status bar over the lockscreen when it is shown
- Refactor the top panel's showing logic to be cleaner (as it supports various overlay modes over fullscreen apps already)
- Implement lockscreen support to the status bar and quicksettings panel in the to panel
- Forward quicksettings panel requests for "unlock" over DBus to the lockscreen
- Add "raiselockscreen" QML plugin to easily request a window to be raised over the lockscreen

Notes:
- Now that we are sharing the quicksettings panel from the shell, notifications that are already there will be shown on the lockscreen (compared to right now, where only new notifications would be shown)

Depends on: 
- https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2339
- https://invent.kde.org/plasma/kscreenlocker/-/merge_requests/283
- https://invent.kde.org/plasma/kwin/-/merge_requests/7839

Implements: https://invent.kde.org/plasma/plasma-mobile/-/issues/199

![Screencast_20250612_013325](/uploads/49e9981cb863056b4c0c46a144e5ee7d/Screencast_20250612_013325.webm)
2025-07-02 10:27:33 -04:00
Florian RICHER
a329099b83 lockscreen: Add DoubleTap to Lock in Lockscreen
Thx @devinlin to help me fix the MouseArea ^^

Can fix https://invent.kde.org/teams/plasma-mobile/issues/-/issues/90
2025-07-01 11:03:26 -04:00
Micah Stanley
d2ba42b503 MaskLayer: Rename Homescreen Scale Property 2025-06-30 11:10:57 -04:00
Devin Lin
147e949ee7 actiondrawer: Fix color detection
PanelBackground supplies color through the `panelColor` property, not
`color`.
2025-06-28 10:48:26 -04:00
Micah Stanley
d4eaf693c6 Folio/Halcyon: Expand Background Blur Effect using a MaskLayer
This merge request expands upon the folio and halcyon background blur effects, making the folio background blur include the backgrounds of folder icons, the favorites bar, and wallpaper selector, and for halcyon, it now includes the folder icons, app library, search, and wallpaper selector. To accomplish this, a mask layer plugin was created to easily attach to these elements. This way, we can use a `OpacityMask` to cut out from the existing blur layer, thus hopefully keeping the performance cost low. And with my limited testing, it does at least seems to run about the same on my oneplus 6t, though it is not really a low end device, so I can not fairly judge the impact for something slower (eg. PinePhone). To be on the safe side, a third option was also added to the folio settings, allowing for the ability to toggle back to the old functionality if needed.

![Screenshot_20250613_135521](/uploads/d5aa81d6589b61fbba675e4a6e621b55/Screenshot_20250613_135521.png)
![Screenshot_20250613_135536](/uploads/bd726459a131f736e2711ced3fe90d4f/Screenshot_20250613_135536.png)
![Screenshot_20250613_135505](/uploads/c603627b4e65d4b956a1e0b6463d28f3/Screenshot_20250613_135505.png)
![Screenshot_20250627_093729](/uploads/e5f1ad672361c2b9bae23e57905336eb/Screenshot_20250627_093729.png)
2025-06-27 14:27:30 -04:00
Devin Lin
d4f1c78d61 doubletaptolock: Simplify, and use "lock" instead of "sleep"
This MR does several things as a followup to
https://invent.kde.org/plasma/plasma-mobile/-/merge_requests/748:
- Use the word "lock" instead of "sleep" since we are locking the
  device, not putting it to sleep
- Simplify usage by using existing MouseAreas instead of including our
  own for this feature (I encountered several focus captures in folio that prevented the
SwipeArea from getting events)
2025-06-27 00:14:26 -04:00
Devin Lin
1d3ceb5801 homescreens/halcyon: Add settings page
Add a settings page to halcyon, which allows for toggling whether the
wallpaper is blurred and double tapping on the homescreen to lock the
device. This also does a bit of refactoring for folio and halcyon to
share the same wallpaper blurring item.
2025-06-26 18:57:12 -04:00
Devin Lin
ca9696b84d notifications: Fix do-not-disturb
The implementation of do-not-disturb broke after the port to our own
notification popups. Since the notification widget is quite deep in the
ActionDrawer, just implement the DBus listening directly in
NotificationsWidget. Also add the missing pulseAudio object in
NotificationPopupProvider to implement notification inhibition.
2025-06-25 20:08:38 -04:00
Devin Lin
46578fde73 singletons: Initialize singletons in shell desktop, not panel
We have some singletons (ex. for notification popups, volume, dbus) that
need to be initialized somewhere in plasmashell. Currently they are done
from the panel containment, which is a bit of a strange location. There isn't really
any offical way it seems to do this, so move it to the shell package
which feels more central.
2025-06-25 19:33:00 -04:00
Devin Lin
7c07dc0122 components: Remove unused ExtendedAbstractButton
This component is not used anywhere in the shell, remove it.
2025-06-25 16:47:01 -04:00
Devin Lin
3cc22dd7fb volumeosd: Fix qml errors when undefined
Sometimes the HasVolume property apparently is undefined? Handle this
case gracefully so it doesn't spam the console.
2025-06-25 16:40:29 -04:00
Florian RICHER
2b51e0c30c homescreens/folio: Add options to turn off and lock the phone after a double tap on screen
Linked to issue: https://invent.kde.org/teams/plasma-mobile/issues/-/issues/318
2025-06-25 16:39:36 -04:00
Micah Stanley
7e2019cb0e MobileShell: Unify Item Background Elements
We so far have been recreating the background elements for all the item throughout the shell. This merge request simplifies this by unifying these elements into a single component, making is easier to keep things at a consistent design while also being able to adjust things when needed in the future.

Per request, I tried to keep thing looking mostly the same as before.

The first picture is what the action drawer looks like now, the one after is with these changes.

![Screenshot_20250621_154201](/uploads/7bd5129d942c8fbc3706dd1728b3a1dd/Screenshot_20250621_154201.png)
![Screenshot_20250621_155520](/uploads/9d2e925c9483579dec765813465e4d2d/Screenshot_20250621_155520.png)
2025-06-22 20:16:16 -04:00
Micah Stanley
775d612d3e ActionDrawer: Fix Panel Opacity when Brightness is Adjusted
This merge request moves the location where the action drawer panel opacity gets set to the top of the background item stack to resolve an issue with the opacity not changing properly when the brightness is adjusted.
2025-06-18 17:02:12 -04:00
Devin Lin
19ea9f5164 actiondrawer: Draw our own background
Draw our own background in the action drawer instead of using the svg, because it loads faster when visible: true/false is set, and we do a bunch of resizing animations.
2025-06-17 18:00:41 -04:00
Florian RICHER
6a869007fc Load minimized Quicksettings as Async 2025-06-16 15:16:03 -04:00
Florian RICHER (aka MrDev023)
f9d4bd9a83 paginatemodel: Avoid to disconnect if model is the same because it's not reconnected after
The quick settings is not updated because sometimes is set to the same model but here, we disconnect all signals to previous model without check if is the same model, but we don't reconnect the signals if is the same model.
2025-06-16 15:04:32 -04:00
Devin Lin
7f8c9f8d5e notifications: Don't factor action drawer state in expiry
Currently opening the action drawer causes notification popups to
"expire", causing some unintended behaviour (ex. dismiss alarm/timer).

This commit removes this behaviour, and also fixes notification popup
expiry while the action drawer is open.

Fixes https://invent.kde.org/plasma/plasma-mobile/-/issues/468
2025-06-14 19:16:02 -04:00
Florian RICHER
a83e99ae8c Fix mistake on paginatemodel 2025-06-15 01:07:55 +02:00
Florian RICHER
3e0677b78e Use synchrone component loading instead of asynchrone to avoid concurrent bug 2025-06-15 00:59:09 +02:00
Micah Stanley
a9ddcf726d MarqueeLabel: Smooth Scrolling
This merge request reworks the MarqueeLabel to add smooth scrolling, giving it a more clean appearance while also improving scrolling when filled when characters of different lengths.

Before:

![margueeLabel_before__トリミング_](/uploads/b162949db828a0e243b0ef109456bfdd/margueeLabel_before__トリミング_.webm)

After:

![margueeLabel__トリミング_](/uploads/7ec2a2b72799a56412b08d04b2f6eb00/margueeLabel__トリミング_.webm)
2025-06-12 08:25:42 -04:00
Devin Lin
72284989f8 hapticsplugin: Port to feedbackd
This is an initial port to feedbackd for the haptics plugin.

This implementation is a simple port to have the motor enabled for a certain duration. We will eventually want to use feedbackd events to trigger these instead.

Related MR for qtfeedback: https://invent.kde.org/jbbgameich/ktactilefeedback/-/merge_requests/2

https://invent.kde.org/teams/plasma-mobile/issues/-/issues/10
2025-05-22 11:45:44 -04:00
Bhushan Shah
73b5595139 notifications: do not expire notificationa after invoking action
This may close notification before action is passed and this causes the
action to not work.
2025-05-22 20:04:58 +05:30
Micah Stanley
d39bdbedb8 VolumeOSD/NotificationPopup: Animation Adjustments
This merge request adjust animations in the VolumeOSD and NotificationPopup to bring consistency and to make it feel better when swiping up a notification.
2025-04-30 03:50:22 +00:00
Micah Stanley
121fd39f12 MobileShell: Fix CMake Set Source Files Properties
I noticed that properties in `MobileShell.Constants` were not being applied correctly, causing values to show up as undefined. After investigating, it seem to be a recent change attempted to condense multiple `set_source_files_properties` calls in `MobileShell/CMakeList.txt` into one call. However, the issue seems to be that the properties were still being set inline with each file, instead of listing all files together followed by a single `PROPERTIES` keyword. This merge requests resolves this issue by moving the property specification to the end of the file list, ensuring that all files receive the intended properties.
2025-04-26 02:58:40 -04:00
Devin Lin
ee1a311af7 components/mobileshell: Introduce singleton for plasma-nm lib
We currently create several instances of the plasma-nm objects over the shell. Use a single singleton to avoid having to load it multiple times.
2025-04-25 14:58:18 -04:00
Luis Büchi
6e0dca9702 mmplugin: Make calls nonblocking to not freeze UI when called
replaces the blocking `reply.waitForFinished` calls with QCoro asynchronous await calls.
2025-04-25 04:12:10 -04:00
Micah Stanley
0a7ef60e43 NotificationPopup: Bugfixes
This fixes a bug where other sources dismissing the current popup notification would cause notifications in waiting to be assigned to the popup index of -1. This would cause these remaining notifications height to get set to a very thin strip at the top of the screen and would no longer automatically dismiss. This also fixes a bug where notifications in the popup drawer would become bunched up together at the top.
2025-04-22 12:09:18 +00:00
Micah Stanley
9bd4f0b747 GestureNavigation: Screen Rotation Popup Button
Implementation of a popup button to rotate the screen while using gesture navigation.

The button is set to appear when the device rotates while auto rotation is off. Then the button will be visible for a short period of time before disappearing.
2025-04-21 22:09:14 +00:00
Micah Stanley
842354bd70 Shell: Add Setting to Auto Hide Panels so Applications Can Fill the Entire Device Screen Space
This merge request adds a new setting to auto hide the status and navigation panels so applications will be able to fill out the entire device screen area. Also, this adds a new quick settings toggle to quickly change this property.
2025-04-21 15:56:33 +00:00
Micah Stanley
8c45aba84d actiondrawer: notification scroll bugfix 2025-04-17 18:16:21 +00:00
Devin Lin
1a398d9fdb wallpaperselector: Fix delegate dimensions and icon color
The previews in the delegates pop outside of the delegate itself. Fix
this, and do some refactoring to simplify the code. Also fix an issue
with the "+" delegate not being white.
2025-04-16 21:22:33 -04:00
Micah Stanley
9707f503a2 GestureNavigation: Fix Action Drawer State being out of Sync on First Start 2025-04-13 12:55:25 +00:00
Devin Lin
23797660ac statusbar: Don't show internet icon and loading indicator at same time
Ensure that the internet icon and the loading indicator do not show at the same time.
2025-04-07 00:03:06 +00:00
Micah Stanley
a3cfa885ee Mobileshell: Reorganize File Structure of Popup Items
Consolidate the popup items into a single folder for better organization.
2025-03-23 03:55:04 +00:00
Micah Stanley
8065a98113 ActionDrawer/BrightnessItem: Brightness Slider Animation Adjustments
Brightness slider animation adjustments.
2025-03-22 20:36:31 +00:00
Micah Stanley
d9495bc714 actiondrawer: fix swipearea references 2025-03-22 19:13:27 +00:00
Devin Lin
4167045642 mobileshellsettings: Show battery % by default
Fixes: https://invent.kde.org/plasma/plasma-mobile/-/issues/458

See hte issue for details.
2025-03-21 02:31:29 +00:00
Micah Stanley
e4323f4ef0 notification list: fix notification scrolling within action drawer and lockscreen
This merge request fixes an issue with notification list scrolling and also adds a few general improvements.

To accomplish this, the notification widget was moved outside of the action drawer swipe area and lock screen swipe area, separating them from the parent-child relationship. Instead, the notification widget is now layered separately on top. This change seems to fix the conflict when both areas are accepting swipes from the same direction.

Additionally, changes were made to the notification list widget for the action drawer to make it behave similarly to the folio home screen app library. Specifically, when at the top of the list, one can swipe down over the notification area to expand the action drawer. In landscape mode, the media widget, clock, and date were also added to the notification list to provide more room for viewing notifications when scrolling.

Closes https://invent.kde.org/plasma/plasma-mobile/-/issues/318
2025-03-20 02:06:33 +00:00
Micah Stanley
5d443aa679 Status Bar: Battery Percentage Toggle/Limit to Internal Batteries
Adds a setting to toggle displaying the battery percentage and also limits it to only display the internal batteries.

Battery percentage on

![Screenshot_20250319_112119](/uploads/2585d843d9fd21c368dcbb1742f036f4/Screenshot_20250319_112119.png)

Battery percentage off

![Screenshot_20250319_112137](/uploads/26d0d1ab4170d097e8b2e6893d48788c/Screenshot_20250319_112137.png)
2025-03-19 20:09:33 +00:00
Micah Stanley
013d034516 Gesture Navigation: Disable Gestures When Action Drawer, Notification Popup Drawer, or VolumeOSD are Visible
Disables gesture navigation when Action Drawer, Notification Popup Drawer, or VolumeOSD are visible as activating the task switcher in these situation can feel a bit weird.

Note:
~~Draft for in till I can get side loading working again so I can test it on device.~~

Still can't seem to get side loading working quite yet. Though, I did run the test I could from my laptop and it does seems to be working fine, so I will be removing this from draft.
2025-03-19 01:21:46 +00:00
User8395
3a2c3bc742 lockscreen: add quick action buttons
Closes: #441 

Notes:
- Camera cannot be selected as an action due to #377 


![image](/uploads/a97cad90219897b730d88b8aa43d49f3/image.png){width=461 height=288}
2025-03-13 20:11:41 +00:00
Sebastian Kügler
0d1f923b5e [shutdowndialog]: hide logout option config
This change adds a config entry in plasmamobilerc which allows to hide
the logout button in the shutdown dialog.
As mobile systems are often effectively single user, this makes sense
to offer in Plasma Mobile.

Signed-off-by: Sebastian Kügler <sebas@kde.org>
2024-12-01 23:15:52 +01:00
Micah Stanley
48dedcd546 taskpanel/panel: make navbar and statusbar accessible from within fullscreen windows
These changes make the navigation and status bar accessible from within fullscreen applications by allowing the user to tap on the top or tap or drag on the bottom of the screen.

Also, since the top panel is now over top of all fullscreen applications, this moves the action drawer swipe area back into the status bar.

![navandstatusbar](/uploads/29bce14baf957059669689345c909896/navandstatusbar.gif)
2024-11-25 17:30:47 +00:00
Micah Stanley
c6e0591977 popupnotifications: a bit of cleanup and bugfixes
This fixes an issue where if a notification is delivered while the action drawer is opened, it won't dismiss properly. Causing an issue where if a new notification comes through any time afterwards, the top touch area will get stuck and prevent touch inputs.
This also finishes connecting the do not disturb popup whitelist to the notification model.
2024-11-22 01:55:50 +00:00
Micah Stanley
7245080b22 actiondrawer: hide action drawer while adjusting screen brightness
This change hides the action drawer while adjusting the screen brightness so that one can see the content behind it.
2024-11-14 03:34:01 +00:00
Micah Stanley
e4d57d19bc actiondrawer: use action drawer window as the open surface area
Change to use the action drawer window as the open surface area so that we can open the drawer within fullscreen applications.
2024-11-14 03:31:10 +00:00
Devin Lin
238cf4948b actioncenter: Allow expanded mode to be opened as soon as minimized offset crossed
Currently the user can only expand to the expanded state after the initial minimized animation finishes. This animation gets reset as soon as a finger is pressed down, causing the user to have to wait until the animation completely finishes before being able to go to the expanded state.

Bypass the need to wait for the animation to finish by setting the open state immediately if the offset already is past the minimized threshold.
2024-11-12 00:25:33 -08:00
Devin Lin
c396555509 widgets/krunner: Modernize design to match app drawer, and add section headers
This MR:
- Caps the maximum width of delegates and centers them
- Makes the search widget style match the app drawer search bar
- Adds section headers
- Uses rounded delegates
2024-11-10 23:44:23 -08:00
Devin Lin
fdf2ad87f6 screenbrightnessplugin: Fix behaviour if dbus service is not initialized followup
Fix abfe419b3b
2024-11-10 22:57:32 -08:00
Devin Lin
abfe419b3b screenbrightnessplugin: Fix behaviour if dbus service is not initialized
If the dbus service gets initialized later, ensure that the latest values are being fetched.
2024-11-10 21:57:17 -08:00
Devin Lin
3d9ddbde15 navigationpanel: Add manual screen rotation button
When the device is rotated and autorotate is off, a button will appear
on the navigation panel to manually rotate.

This is specific to the navigation panel, perhaps we can have a floating
button in gesture-only mode similar to Android?

TODO: PoC, I haven't yet actually tested this on device. I also need to
make sure that I check for whether autorotation is enabled on the
output.
2024-11-09 17:24:23 +00:00
Devin Lin
f3dc108602 actiondrawer: Use layershell to avoid taking focus from current window
We can use layershell to avoid taking focus from the current window,
which avoids any unnecessary behavior from an unfocus event.
2024-11-07 20:06:22 -08:00
Micah Stanley
eba6074161 notifications: Implement popup notifications
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:

![notification_1](/uploads/63d12be6da1dd2676de17940dcadbdfa/notification_1.gif)

Multiple popup notifications:

![notification_2](/uploads/907a14b772f66f46040c28342f4dcf02/notification_2.gif)

Multiple popup notifications in the expanded view:

![notification_3](/uploads/9a7cd09a6bb8a0f7ee70e5bcf7c29c6b/notification_3.gif)

Any feedback would be greatly appreciated.
2024-11-07 16:13:06 +00:00
Devin Lin
4a86ad8c06 actiondrawer: Cleanup and simplify
Make sure that the view colorset is correct, remove unnecessary layer
(clip is enabled), and remove unnecessary visibility hack for the
notifications widget.
2024-11-05 03:42:25 +00:00
Devin Lin
76882f5b5d actiondrawer: Share components between portrait and landscape
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
2024-10-31 15:27:00 +00:00
Nicolas Fella
6da6f3fd55 Port to KStandardActions 2024-10-31 08:41:01 +00:00
Nicolas Fella
d49143456e Drop unused link libraries 2024-10-31 08:41:01 +00:00
Devin Lin
c4b49cf086 hapticsplugin: Only initialize dbus interface if used
Only create dbus interface when needed to avoid wasting resources.
2024-10-31 03:27:36 +00:00
Devin Lin
35b1128d1d actioncenter: Reduce usage of transforms and cleanup
Simplify positioning of some components by avoiding transforms and using
simple anchors to improve performance. Also cleanup unused properties.
2024-10-31 00:48:36 +00:00
Micah Stanley
f9630ba178 VolumeOSD: Increase animation duration and bugfix for audio applet page 2024-10-28 06:36:16 +00:00
Micah Stanley
205edd485c VolumeOSD: Prevent Stealing Focus from Applications
Before:

![Screenshot_20241025_051928](/uploads/9b41d77b5c673bfeccfe2518ccd40985/Screenshot_20241025_051928.png)

After:

![Screenshot_20241025_051550](/uploads/a357dd3271aba056f667410286cfed95/Screenshot_20241025_051550.png)
2024-10-26 18:50:40 +00:00