2
0
mirror of https://github.com/KDE/kdeconnect-android synced 2025-09-01 14:45:08 +00:00

Compare commits

...

717 Commits

Author SHA1 Message Date
Albert Vaca
540c0a4a24 Fix crash and release 1.13.2 2019-09-23 19:38:59 +02:00
l10n daemon script
c28dd3606e GIT_SILENT made messages (after extraction) 2019-09-23 02:35:55 +02:00
l10n daemon script
bc2bb0cc7e GIT_SILENT made messages (after extraction) 2019-09-22 02:41:45 +02:00
l10n daemon script
0ae7055711 GIT_SILENT made messages (after extraction) 2019-09-20 02:41:00 +02:00
Albert Vaca Cintora
e70419e9d3 Release 1.13.1 2019-09-20 00:57:23 +02:00
Albert Vaca Cintora
2ea3ecbdba Fix inconsistent state if adding a new storage when in action mode 2019-09-20 00:54:11 +02:00
Albert Vaca Cintora
d8cbc38532 Fix Sftp preferences not working
In version 1.1.0 of androidx, preferences do nothing on click if they are
not selectable. Added a new property "inSelectionMode" that we can use
instead of the built-in "selectable".
2019-09-20 00:49:32 +02:00
l10n daemon script
caeb59eb3d GIT_SILENT made messages (after extraction) 2019-09-19 02:37:28 +02:00
Nicolas Fella
4f8e62958a Fix build 2019-09-18 11:29:25 +02:00
Nicolas Fella
e3e4fc6552 Don't sync notification on connection 2019-09-17 09:43:03 +00:00
Tom Watson
bec3a0c147 add missing apostrophe to string 2019-09-17 11:39:22 +02:00
l10n daemon script
80b572761b GIT_SILENT made messages (after extraction) 2019-09-16 02:41:10 +02:00
l10n daemon script
3d56a22e03 GIT_SILENT made messages (after extraction) 2019-09-10 02:34:05 +02:00
l10n daemon script
0be3c1601b GIT_SILENT made messages (after extraction) 2019-09-09 02:36:06 +02:00
Albert Vaca Cintora
ea15a4eecd Check-in a new debug keystore
This way, when installing a development version built on a different
environment, it will be signed with the same key and Android won't make
you wipe your data.
2019-09-07 14:31:55 +02:00
Albert Vaca Cintora
96679dfb0c Bump deps 2019-09-07 14:28:42 +02:00
Albert Vaca Cintora
cff67ba806 Release 1.13 2019-09-07 12:50:43 +02:00
Albert Vaca Cintora
1000453081 Merge branch 'philipc/kdeconnect-android-philipc/file-transfer-docs' 2019-09-07 12:48:51 +02:00
Albert Vaca Cintora
2e4b4fc52b Merge branch 'eduisters/kdeconnect-android-duplicate_contact_ids' 2019-09-07 12:46:45 +02:00
l10n daemon script
cd3d52ed39 GIT_SILENT made messages (after extraction) 2019-09-02 02:42:11 +02:00
Erik Duisters
779d5e625a Do not return duplicate contact uIDs because it will crash kdeconnectd 2019-08-31 11:11:58 +02:00
l10n daemon script
1981a4aeb1 GIT_SILENT made messages (after extraction) 2019-08-30 02:36:52 +02:00
Simon Redman
86258a51a3 Ignore case when checking manufacturer for Samsung mode 2019-08-28 22:38:59 -07:00
Simon Redman
6a6b41db49 Correct error for tagging multi-target messages 2019-08-18 11:27:33 -07:00
l10n daemon script
26335464f1 GIT_SILENT made messages (after extraction) 2019-08-17 02:43:21 +02:00
l10n daemon script
a7391c47cc GIT_SILENT made messages (after extraction) 2019-08-16 02:39:05 +02:00
l10n daemon script
df913ae13c GIT_SILENT made messages (after extraction) 2019-08-11 02:35:14 +02:00
l10n daemon script
aadaf00f1d GIT_SILENT made messages (after extraction) 2019-08-09 02:47:01 +02:00
l10n daemon script
229ca1bb0e GIT_SILENT made messages (after extraction) 2019-08-08 02:34:17 +02:00
l10n daemon script
d8d049103f GIT_SILENT made messages (after extraction) 2019-08-06 02:35:42 +02:00
l10n daemon script
0e2af51e1f GIT_SILENT made messages (after extraction) 2019-08-04 02:38:00 +02:00
l10n daemon script
074b37cd74 GIT_SILENT made messages (after extraction) 2019-08-01 02:37:13 +02:00
l10n daemon script
5147bb5507 GIT_SILENT made messages (after extraction) 2019-07-31 02:41:53 +02:00
l10n daemon script
2afd390b6a GIT_SILENT made messages (after extraction) 2019-07-29 02:29:05 +02:00
l10n daemon script
a51288f01a GIT_SILENT made messages (after extraction) 2019-07-28 02:35:05 +02:00
l10n daemon script
6fea429fab GIT_SILENT made messages (after extraction) 2019-07-25 02:31:35 +02:00
l10n daemon script
a61032cdc7 GIT_SILENT made messages (after extraction) 2019-07-24 02:38:36 +02:00
Colin Redman
5dc65ee909 Clipboard sync on new connections
Summary: Timestamp on changes to clipboards so that when a new device connects it can sync both clipboards to the most recent updated clipboard.

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, sredman, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D22585
2019-07-23 16:22:16 +02:00
Albert Vaca
4be5800b8b Disable google backups of the app
This was causing problems when a restored app remembered the list of
storage locations it had access to, but it no longer could access them.

In the past, this also caused problems when a restored app would carry
with it a certificate that was no longer valid on the new device because
the device id had changed.

BUG: 406707
2019-07-23 14:58:52 +02:00
l10n daemon script
d98378b54b GIT_SILENT made messages (after extraction) 2019-07-23 02:36:23 +02:00
Matthijs Tijink
7f283d8995 Tell the user that no Wi-Fi is connected and click to fix it 2019-07-22 20:35:57 +00:00
l10n daemon script
4d10dca624 GIT_SILENT made messages (after extraction) 2019-07-22 02:38:18 +02:00
Philip Cohn-Cort
265828aeee Try to make the BackgroundJob subclasses javadocs a little easier to understand 2019-07-21 12:02:29 -04:00
Philip Cohn-Cort
79e4f62605 Document (in brief) SharePlugin.java, Device.java and BackgroundJobHandler.java 2019-07-21 11:32:07 -04:00
Philip Cohn-Cort
83e084a712 Document part of each of the two BackgroundJob subclasses 2019-07-21 11:31:26 -04:00
Philip Cohn-Cort
9937be4791 Add threading annotations to various ::sendPacket methods
Summary:
The methods in Device.java can be used from any thread, while
the methods in BaseLink (and its subclasses) should only run
on a background thread. These annotations are picked up by Lint
to show warnings and have no effect at runtime.
2019-07-21 07:09:28 -04:00
Albert Vaca Cintora
d84f312694 Optimize imports 2019-07-21 12:29:27 +02:00
Albert Vaca Cintora
0fdd20c343 Merge branch 'pointer-delta' 2019-07-21 12:27:02 +02:00
Albert Vaca Cintora
01cb738165 Lower sensitivity 2019-07-21 12:26:52 +02:00
Matthijs Tijink
16362ae8f6 Send a stop pointer message so we don't need to wait for timeout 2019-07-21 10:18:21 +02:00
Albert Vaca Cintora
377d2ddcd1 Fix delta 2019-07-21 10:06:56 +02:00
l10n daemon script
4ed2d4f47d GIT_SILENT made messages (after extraction) 2019-07-21 02:41:32 +02:00
Albert Vaca Cintora
7c3a297bca Pointer plugin: send delta and not abs value 2019-07-21 00:14:16 +02:00
Matthijs Tijink
2604bc9595 Use the packet-in-queue removing in the presenter plugin pointer 2019-07-20 21:09:28 +00:00
Matthijs Tijink
d5b697f2c4 Don't remove packets from the queue without adding a replacing one 2019-07-20 22:28:54 +02:00
Matthijs Tijink
66aa6696cc Use a queue of unsent packets instead of threads
This also allows "unsending" packets (if they're still in the queue).
This patch does that for mouse move packets, so they get accumulated
together (sending less stuff over a congested link).
2019-07-20 20:21:44 +00:00
Nicolas Fella
6da339028d [plugins/photo] Send cancel packet when user aborts camera 2019-07-20 14:04:34 +00:00
Albert Vaca Cintora
ea72327abe Merge branch 'albertvaka/human-name-lib' 2019-07-20 13:38:07 +02:00
Albert Vaca Cintora
7c56aa9ce1 Error handling 2019-07-20 13:32:58 +02:00
Matthijs Tijink
720914dd59 Use connection multiplexer in bluetooth link provider 2019-07-20 12:04:25 +02:00
Matthijs Tijink
bfd8ea92b8 Add connection multiplexer 2019-07-20 12:02:47 +02:00
Nicolas Fella
8d2e2fa698 Remove unused strings 2019-07-19 21:42:00 +00:00
Albert Vaca Cintora
ffe722b23a Make pointer go back immediately after pushing against a screen edge 2019-07-19 23:34:29 +02:00
Albert Vaca Cintora
bdcefe4a2b Merge branch 'albertvaka/presenter-pointer'
# Conflicts:
#	res/values/strings.xml
#	src/org/kde/kdeconnect/Plugins/PresenterPlugin/PresenterActivity.java
2019-07-19 23:02:39 +02:00
Albert Vaca Cintora
2595d97fad Use capabilities to enable presenter pointer 2019-07-19 22:58:59 +02:00
Matthijs Tijink
a1905bd031 Control the volume of Android media players 2019-07-19 20:31:52 +00:00
Simon Redman
abcb6cbf33 [SMS App] Export all addresses of multitarget messages
## Summary
Export the complete list of remote addresses of a multitarget message

Note that this changes format of the returned Message object, replacing the string "address" field with a string list "addresses" field, so it is not backwards-compatible with old desktop applications

## Test Plan
See Test Plan of the desktop-side patch: https://invent.kde.org/kde/kdeconnect-kde/merge_requests/101
2019-07-19 17:46:54 +00:00
Simon Redman
1db4327370 Fix build
Move translator comments to a comment in strings.xml

Android doesn't build if there is a non-.xml file in the res/values/ folder
2019-07-19 16:00:07 +02:00
l10n daemon script
489c6af1a1 GIT_SILENT made messages (after extraction) 2019-07-19 02:47:04 +02:00
l10n daemon script
3bf624e2cf GIT_SILENT made messages (after extraction) 2019-07-18 02:42:46 +02:00
Simon Redman
70cf9e1bac Update in-repository documentation
- Update README with new links
- Add a section pointing potential translators to the localization team
- Add a quick text file to the strings folder to again point potential translators to the localization team
2019-07-15 15:33:13 +00:00
Pino Toscano
67f10ab694 i18n: drop obsolete messages before merging
Babel (used by android2po) does not support them, warning when trying
to parse them. Since they are not really useful, drop them before
invoking a2po.
2019-07-15 08:03:50 +02:00
Pino Toscano
c1006d87e1 i18n: prune @-langs earlier on translation import
As Android does not support languages with @, remove their po files
before invoking a2po instead of removing their results afterwards.
2019-07-15 07:36:59 +02:00
l10n daemon script
7c26d30ce5 GIT_SILENT made messages (after extraction) 2019-07-15 02:38:43 +02:00
l10n daemon script
f8953057b9 GIT_SILENT made messages (after extraction) 2019-07-14 02:44:15 +02:00
l10n daemon script
689be496cd GIT_SILENT made messages (after extraction) 2019-07-12 02:46:45 +02:00
l10n daemon script
6f987507b4 GIT_SILENT made messages (after extraction) 2019-07-11 02:40:23 +02:00
l10n daemon script
9b20ab38df GIT_SILENT made messages (after extraction) 2019-07-10 02:45:23 +02:00
Simon Redman
ffbceb9b8e Reorder the Samsung special case to take effect before the case handling all other devices
BUG: 401677
2019-07-09 11:15:44 +02:00
l10n daemon script
c4983ae0ef GIT_SILENT made messages (after extraction) 2019-07-08 02:40:11 +02:00
l10n daemon script
001a694f71 GIT_SILENT made messages (after extraction) 2019-07-07 02:44:51 +02:00
l10n daemon script
4c5e66f00d GIT_SILENT made messages (after extraction) 2019-07-06 02:48:36 +02:00
Albert Vaca Cintora
f2c0f02226 Make service name translatable
BUG: 409511
2019-07-05 21:55:00 +02:00
Albert Vaca Cintora
044e56184a Bump version to release 2019-07-05 21:34:47 +02:00
Albert Vaca
f923ce198f Merge branch 'albertvaka/sms-lock-fix' 2019-07-05 14:59:40 +02:00
Albert Vaca
a9508a7f46 Lock before first access as per CR 2019-07-05 14:57:50 +02:00
Dmitriy Bogdanov
cbbec32beb Fix text extraction from notifications
Summary:
Fixes an error of extracting SpannableString as String (which resulted in notification text being null).
Fixes group conversation text extraction on API <28.
Also includes some minor refactoring.

Reviewers: nicolasfella

Reviewed By: nicolasfella

Subscribers: kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D22140
2019-07-05 11:09:19 +02:00
l10n daemon script
cf247b4d18 GIT_SILENT made messages (after extraction) 2019-07-05 02:41:14 +02:00
Albert Vaca Cintora
98c366ee6a Simplify enabling the pointer 2019-07-04 23:20:25 +02:00
Albert Vaca Cintora
bfadb84b9f Fix potential race condition caused by early unlocking
The lock should be kept between the point we read and the point we write

Also, no need to pass SMSPlugin as a parameter, since enclossed classes
already have access to its parent by default.
2019-07-04 21:01:12 +02:00
Albert Vaca Cintora
7db40ee20a Fix potential race condition
lastState was updated long after it was read
2019-07-04 20:57:04 +02:00
Pino Toscano
5609c8ebcc i18n: use https for bugs.kde.org
bump also the date of the template, to indicate "it was changed"
2019-06-30 11:39:47 +02:00
l10n daemon script
1d1618d8ed GIT_SILENT made messages (after extraction) 2019-06-28 02:44:15 +02:00
Albert Vaca
47c2483d53 Remove gui counters logic
It had bugs and was never used. I've left in the Discovery Mode logic
because we might want to expose that somehow like GSConnect does.
2019-06-27 10:48:33 -04:00
Albert Vaca
38caa1831f WIP Pointer feature in presenter plugin 2019-06-27 10:15:28 -04:00
Albert Vaca
4ea7618828 Use a library to get the human-friendly device name
We had a list of names before, but it was outdated. Using a library gives
us an up-to-date list plus a fallback that fetches the name from the
internet if not in the list.
2019-06-27 10:12:51 -04:00
l10n daemon script
5659812428 GIT_SILENT made messages (after extraction) 2019-06-24 02:43:41 +02:00
Simon Redman
418e1a813e Potentially fix SMS/MMS access on Samsung devices
According to some information I stumbled across while working on a different issue, Samsung devices do not support the content provider I was using to populate the list of SMS conversations. This is very annoying, but nevertheless there appears to be a workaround.

BUG: 401677

Many users with Samsung devices have reported problems using the SMS plugin.

Hopefully this will fix the SMS plugin on Samsung devices.
2019-06-21 18:49:13 -06:00
Simon Redman
50f395bdef Potentially fix SMS/MMS access on Samsung devices 2019-06-21 18:48:11 -06:00
l10n daemon script
9695e5a49e GIT_SILENT made messages (after extraction) 2019-06-22 02:45:07 +02:00
l10n daemon script
e36b80aa0c GIT_SILENT made messages (after extraction) 2019-06-19 02:51:31 +02:00
Albert Vaca
08230950b6 Bump version to release 2019-06-17 22:21:07 +02:00
Albert Vaca
63e9e7f522 Fix crash on Android < 7.0
getOrDefault is not supported until java 8, introduced on Android 7
2019-06-17 22:12:01 +02:00
Albert Vaca Cintora
7e5df06972 1.12.9.1 2019-06-16 01:12:16 +02:00
Nicolas Fella
8dd4297a0f Check if current player is null 2019-06-15 18:41:27 +02:00
Albert Vaca Cintora
1e58559584 Release 1.12.9 2019-06-15 13:40:16 +02:00
Albert Vaca
503eaa7ca8 Remove overly-complicated code that isn't working well
For some users, it was giving false positives or even crashing.

Detecting this across all Androids without an actual API doesn't seem
practical.
2019-06-15 13:27:18 +02:00
Albert Vaca
46cd99ba85 Upgrade gradle plugin for AS 3.4.1 2019-06-15 13:22:56 +02:00
Albert Vaca
a7d6b9a805 Fix crash if icon can't be found 2019-06-15 13:22:36 +02:00
Matthijs Tijink
f688aad3e1 Close the MPRIS media notification when the player disappears
The code now checks if the player still exists.
2019-06-14 23:19:51 +02:00
Albert Vaca Cintora
906c04ac1a Bump version number to release 2019-06-14 20:54:54 +02:00
Nicolas Fella
a61cb875f1 Only open file if open is actually true 2019-06-14 15:47:16 +02:00
Nicolas Fella
6e053a7e95 Hide keyboard display action if remote keyboard input is not supported 2019-06-13 19:28:45 +00:00
Nicolas Fella
71b034a025 Fix packet loss after connection 2019-06-13 17:33:21 +00:00
Matthijs Tijink
0e9dd25172 Enable the MPRIS server plugin - allows control of android media players
The changes allow loading the plugin on older Android versions
2019-06-10 15:59:37 +00:00
Simon Redman
51e957d822 [SMSApp] Support plain-text MMS
## Summary

Not having support for MMS caused some minor problems, like in https://bugs.kde.org/show_bug.cgi?id=398889 . This patch adds basic MMS support for plain-text MMS, including multi-target messages.

Android companion to https://invent.kde.org/kde/kdeconnect-kde/merge_requests/97

Currently there are several rough areas:
  - Multi-target messages do not have the full list of recipients (I am planning to work on this in another patch, because this one is already quite large enough)
  - Parsing MMS is significantly slower than parsing SMS. This makes sense, since we need to make significantly many more content:// calls for MMS. The only solution I can think of here is to add the ability to request a range of messages, which I need to do anyway, but which should not be part of this patch.
  - The desktop app is totally busted with regard to multi-target MMS, but that will also be fixed in another MR

BUG: 398889

## Test Plan

### Before:
Open SMS app on desktop, scroll through conversations, notice:
  - Any single-target message which had the most-recent message as an MMS does not appear
  - Any multi-target MMS conversations do not appear

### After:
Open SMS app on desktop, notice:
  - Conversations which have an MMS as their most-recent message appear
  - MMS which consisted of only text are rendered correctly
  - Multi-target conversations are shown (though pretty busted, as said before. Do not attempt to reply to one!)
2019-06-10 05:48:28 +00:00
l10n daemon script
ec43336153 GIT_SILENT made messages (after extraction) 2019-06-09 02:48:56 +02:00
Simon Redman
49295c0de9 Make lint suppression less aggressive for SMSHelper 2019-06-05 22:17:02 -06:00
Matthijs Tijink
56d01ed082 Fix pausing a mpris player when another is still playing 2019-06-04 13:12:51 +00:00
Nicolas Fella
dbd9ece110 refactor getTickerText 2019-06-04 13:01:34 +00:00
Nicolas Fella
132e4e7e0f Refactor extractRepliableNotification 2019-06-04 13:00:32 +00:00
Nicolas Fella
4cdda3f31b Refactor action extraction 2019-06-04 14:57:10 +02:00
Nicolas Fella
7c723eea8c Refactor icon extraction 2019-06-04 12:52:23 +00:00
Nicolas Fella
22e7b91bb3 Cleanup ReceiveNotification 2019-06-04 12:51:24 +00:00
Nicolas Fella
4aa365e4ff Cleanup upload notification 2019-06-04 12:50:35 +00:00
l10n daemon script
c50642e587 GIT_SILENT made messages (after extraction) 2019-06-02 02:48:49 +02:00
Matthijs Tijink
e52f418dad Properly close the media session when closing the media notification
BUG: 407812
2019-05-29 20:55:15 +00:00
l10n daemon script
6a7fbecc97 GIT_SILENT made messages (after extraction) 2019-05-26 02:47:22 +02:00
Nicolas Fella
db0c48cc6b Extract bigtext from notifications 2019-05-24 11:27:08 +00:00
Nicolas Fella
35635a0b0b remove unused parameter 2019-05-22 23:48:31 +02:00
Nicolas Fella
8a2cc4a841 remove unused ImagesHelper 2019-05-22 00:49:36 +02:00
Nicolas Fella
a53bf9b191 Simplify condition 2019-05-22 00:22:00 +02:00
Nicolas Fella
2d3b0e7641 Extract conversations from conversation notification style 2019-05-21 21:32:33 +00:00
l10n daemon script
274621e79d GIT_SILENT made messages (after extraction) 2019-05-21 02:47:16 +02:00
Albert Vaca Cintora
ea136498b4 Re-generate cert if it's for a different device ID
This would happen to people who transferred their KDE Connect config from
one phone to another (mostly with backup apps that only work on rooted
phones). This led to a state where other devices would always reject the
connection because the certificate CN didn't match the device ID.

On the PC side this is not a problem because the certificate is the source
of truth for the device ID.
2019-05-21 00:25:11 +02:00
Nicolas Fella
1e82c653d6 [DeviceFragment] Unify logging tags 2019-05-21 00:21:01 +02:00
Nicolas Fella
565be4a42a [plugins/notifications] Unify log tags 2019-05-21 00:06:15 +02:00
Nicolas Fella
de4e203d8c Fix typo 2019-05-20 22:25:26 +02:00
l10n daemon script
86e698df08 GIT_SILENT made messages (after extraction) 2019-05-20 02:49:40 +02:00
Nicolas Fella
3d5dcdacae Revert "Revert "Upgrade gradle plugin for AS 3.4""
This reverts commit 52486ed2ec.
2019-05-19 22:44:56 +02:00
Nicolas Fella
8b145b4c6a Simplify notification title/text extraction 2019-05-19 20:05:58 +02:00
Nicolas Fella
52486ed2ec Revert "Upgrade gradle plugin for AS 3.4"
This reverts commit 87ddf47999.

Seems to break running the app
2019-05-19 19:41:02 +02:00
Mitja Cotic
b8d327c2d9 [pretty please] allow fetching of cover art in mpris plugin from connected computer
Summary:
So from android 8 onwards it appears that fetching content from "cleartext" urls is disabled by default

https://stackoverflow.com/questions/45940861/android-8-cleartext-http-traffic-not-permitted

I have a mpris service running on my local computer which is connected to the android, that service is also serving cover art for currently playing song. Obviously I can not have a domain set for my computer on a local machine, so cover art urls look like
`http://<ip>:<port>/<songid>.ext` . Since this restriction was introduced into android 8, kde connect is not able to fetch the art from this url.

This is patch allows connections to raw IPs addresses as well. If there is any security issues regarding this change, I'm prepared to do more work, my suggestion would be to check if IP address in this case matches paired computer's IP address, although this would still be a bit annoying (especially since whatever malicious file can be served from a "cleartext" link as well).

Test Plan:
- start some sort of server which can serve an image on a paired computer
- create mpris Player instance on a paired computer and set the `mpris:artUrl` to the served address where this image is available
- open kde connect android app, select prepared player and see default cover art instead of the served image
- change artUrl to some image from the web
- check in kde connect again and see it correctly show a remote image

Reviewers: #kde_connect, nicolasfella, albertvaka

Reviewed By: #kde_connect, nicolasfella, albertvaka

Subscribers: albertvaka, nicolasfella, andyholmes, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D21247
2019-05-18 10:50:14 +02:00
l10n daemon script
630044e702 GIT_SILENT made messages (after extraction) 2019-05-16 02:51:33 +02:00
Nicolas Fella
720421554a Rework plugin list header 2019-05-13 22:34:10 +00:00
Nicolas Fella
e045964592 Declare permission for installing packages 2019-05-13 21:33:25 +00:00
Nicolas Fella
98931c7bcf Rename DeviceSettigsActivity->PluginSettingsActivity 2019-05-13 21:32:47 +00:00
Nicolas Fella
a616d5afbd Remove unused method 2019-05-13 21:31:58 +00:00
Nicolas Fella
1ffcaba71c Simplify code in createPluginList 2019-05-13 21:31:03 +00:00
l10n daemon script
260abb192c GIT_SILENT made messages (after extraction) 2019-05-06 03:07:52 +02:00
l10n daemon script
ea57aec40f GIT_SILENT made messages (after extraction) 2019-05-03 03:13:56 +02:00
Albert Vaca Cintora
2bfd9c645f Release 1.12.7 2019-05-01 14:48:33 +02:00
Albert Vaca Cintora
87ddf47999 Upgrade gradle plugin for AS 3.4 2019-05-01 14:27:37 +02:00
Erik Duisters
c7a4f76f2b If Android creates a different filename than requested delete the newly created file and return false 2019-05-01 11:17:29 +00:00
Nicolas Fella
d950266431 Don't close notification for last player if not playing 2019-05-01 00:53:11 +02:00
Nicolas Fella
9f005b508a Hide our own media notification for Spotify when Spotify is running on the phone 2019-04-30 17:14:47 +00:00
Nicolas Fella
470eab525a Inhibit screen lock when remote keyboard is open 2019-04-30 15:59:35 +00:00
Simon Redman
9ff223e2b8 Read MediaStore.Images.ImageColumns.DATE_TAKEN for yet another way of accessing the last modified information 2019-04-30 15:58:30 +00:00
Erik Duisters
b9a0f310c7 Do not strip leading '/' from parentSuffix for non root files when determining parentDocumentId making copying into subdirectories work. 2019-04-30 06:55:06 +02:00
Nicolas Fella
2564586127 Revert icon size regression 2019-04-28 15:46:16 +02:00
Erik Duisters
d1c0a9763d Remove unnecessary logging 2019-04-27 18:53:04 +02:00
l10n daemon script
d163a57af6 GIT_SILENT made messages (after extraction) 2019-04-22 02:59:57 +02:00
Nicolas Fella
e882bebe4e Simplify switch 2019-04-20 22:38:44 +02:00
Nicolas Fella
d1565702cc Simplify switch 2019-04-20 22:37:06 +02:00
Nicolas Fella
1b8763db61 Format 2019-04-20 22:33:47 +02:00
Nicolas Fella
f4a4046b3b Rename updateComputerList -> updateDeviceList 2019-04-20 03:03:15 +02:00
Nicolas Fella
882afbbc43 Make ListAdapter.Item.inflateView nonNull 2019-04-20 00:09:51 +02:00
Nicolas Fella
8e60359496 Fix warning when overriding methods with nonnull annotations 2019-04-20 00:01:20 +02:00
Nicolas Fella
ba5a925075 Require KitKat for SMS plugin 2019-04-19 23:55:46 +02:00
Nicolas Fella
d7c8f61c80 Unify coding style 2019-04-19 23:47:18 +02:00
Nicolas Fella
7da6310926 Add nonnull annotation 2019-04-19 23:40:23 +02:00
Nicolas Fella
ccd92aca03 Remove redundant assignment 2019-04-19 23:37:30 +02:00
Nicolas Fella
c5a8406928 Organize imports 2019-04-19 23:34:42 +02:00
Nicolas Fella
a4afc84911 Use non-deprecated onAttach override 2019-04-19 23:34:14 +02:00
Nicolas Fella
6d70d0dc50 Remove unneeded drawable 2019-04-19 21:40:57 +02:00
Nicolas Fella
2a36194273 Add tools:keep to plugin prefs to avoid false-positive lint 2019-04-19 21:37:13 +02:00
Nicolas Fella
edc04f41a6 Remove unneeded file 2019-04-19 21:35:28 +02:00
Nicolas Fella
7f215b8cd5 Remove redundant namespace 2019-04-19 21:30:33 +02:00
Nicolas Fella
cf526953f3 Remove unnecessary supression 2019-04-19 21:29:39 +02:00
Simon Redman
dc5f10c073 Revert "Try-with-resources on inputstreams"
This reverts commit aa776739b7
2019-04-19 05:10:11 +00:00
Nicolas Fella
21b97d335c Add NonNull annotations 2019-04-19 01:31:19 +02:00
Nicolas Fella
f735520aba Organize imports 2019-04-19 01:12:06 +02:00
Nicolas Fella
0072911c5b Use java style instead of C style for arrays 2019-04-19 01:11:35 +02:00
Nicolas Fella
96a83ddcd3 Inline fields 2019-04-19 01:09:52 +02:00
Nicolas Fella
794f1d4706 Remove unneeded file 2019-04-19 00:57:26 +02:00
Nicolas Fella
e5c8160ee2 Revert "Bump gradle plugin version"
It seems to break things

This reverts commit 6bcb77f65f.
2019-04-19 00:52:01 +02:00
Nicolas Fella
25a0972606 Fix javadoc regression 2019-04-19 00:34:15 +02:00
Nicolas Fella
6bcb77f65f Bump gradle plugin version 2019-04-19 00:20:45 +02:00
Albert Vaca Cintora
235e93be5e More unclosed stuff found by lgtm.com 2019-04-18 21:06:56 +02:00
Albert Vaca Cintora
aa776739b7 Try-with-resources on inputstreams
As suggested by lgtm.com
2019-04-18 20:59:54 +02:00
Nicolas Fella
e8e01c9a51 Remove redundant padding declaration 2019-04-18 17:58:30 +00:00
Albert Vaca Cintora
168b16527c Remove compat with protocol 6 with RSA encryption
Since we already removed compat with protocol 7 ^.^u
2019-04-18 19:52:30 +02:00
Nicolas Fella
9a8ae36ef6 remove obsolete layout params 2019-04-18 17:23:50 +02:00
l10n daemon script
b80d7dcf50 GIT_SILENT made messages (after extraction) 2019-04-18 03:13:07 +02:00
Nicolas Fella
b1e8a66a8c Remove unused file 2019-04-18 02:50:51 +02:00
Nicolas Fella
b375d79653 Add version check 2019-04-18 01:34:00 +02:00
l10n daemon script
6f0ed846b8 GIT_SILENT made messages (after extraction) 2019-04-17 03:06:57 +02:00
l10n daemon script
2a7f953bd4 GIT_SILENT made messages (after extraction) 2019-04-16 03:12:21 +02:00
Nicolas Fella
728bfeefea Rename 2019-04-14 17:47:45 +00:00
Nicolas Fella
2ab76c6e90 Deduplicate code for listeners in MprisActivity 2019-04-14 17:47:45 +00:00
l10n daemon script
3f2b8495b3 GIT_SILENT made messages (after extraction) 2019-04-14 03:13:24 +02:00
Simon Redman
b9f3c8c7b1 Add merge request templates (copy from kdeconnect-kde) 2019-04-13 16:45:31 -06:00
l10n daemon script
a73c95094c GIT_SILENT made messages (after extraction) 2019-04-13 03:11:46 +02:00
l10n daemon script
64c20f5e63 GIT_SILENT made messages (after extraction) 2019-04-10 03:13:02 +02:00
l10n daemon script
f30462bafa GIT_SILENT made messages (after extraction) 2019-04-09 03:15:58 +02:00
Ajay Choudhary
7ce2130d12 Resize buttons on presentation remote 2019-04-08 10:00:38 -06:00
l10n daemon script
77b28fe9c4 GIT_SILENT made messages (after extraction) 2019-04-08 03:13:34 +02:00
Simon Redman
27a2c030d6 Replaced getString(..) != null with isNull(..) 2019-04-07 20:03:01 +00:00
Simon Redman
95f866ac98 Properly check for size existence before reading 2019-04-07 20:03:01 +00:00
Simon Redman
177c18e0f4 Clean up uriToNetworkPacket
- Remove redundant code
- Make top-level block function properly
2019-04-07 20:03:01 +00:00
Erik Duisters
a3fb423dd3 Upload files using a CompositeUploadFileJob making the upload cancelable 2019-04-07 17:54:12 +00:00
Nicolas Fella
3c97e1c067 Catch Exception when releasing storage URIs 2019-04-07 17:34:37 +00:00
Piyush Aggarwal
50dc239d64 fix telephony explanation 2019-04-07 16:45:06 +00:00
Piyush Aggarwal
f278bd17e1 fix docs and little maintenance 2019-04-03 16:57:47 +05:30
l10n daemon script
9c51f1e898 GIT_SILENT made messages (after extraction) 2019-04-02 03:16:19 +02:00
Nicolas Fella
5063f3d0f4 Use fancier lambda 2019-03-31 20:14:02 +02:00
Nicolas Fella
f1194e88c2 Use Log.e instead of printStackTrace 2019-03-31 20:09:44 +02:00
Nicolas Fella
386a9f3f40 remove unneeded throws 2019-03-31 19:26:21 +02:00
l10n daemon script
0510167c4e GIT_SILENT made messages (after extraction) 2019-03-31 04:10:56 +02:00
Nicolas Fella
1867150ebb Replace layout size values 2019-03-31 00:46:11 +01:00
Nicolas Fella
3022e3d835 Mark ignored Exceptions as such 2019-03-30 17:42:27 +01:00
Nicolas Fella
6e1fe3edbd Pass exception to log 2019-03-30 17:42:27 +01:00
Nicolas Fella
71609f144d Use fancier lambdas 2019-03-30 17:42:27 +01:00
Nicolas Fella
102ce97a19 Organize imports 2019-03-30 17:42:27 +01:00
Nicolas Fella
3a36a4a675 Use ButterKnife in MprisActivity 2019-03-30 16:42:34 +00:00
Nicolas Fella
655a9805e4 Fix logic in volumechange 2019-03-30 16:41:47 +00:00
l10n daemon script
f88f2da7b6 GIT_SILENT made messages (after extraction) 2019-03-30 03:09:24 +01:00
l10n daemon script
d46a3e49c5 GIT_SILENT made messages (after extraction) 2019-03-29 03:12:00 +01:00
l10n daemon script
9f6a1c70aa GIT_SILENT made messages (after extraction) 2019-03-27 03:10:41 +01:00
Nicolas Fella
2a61f431d6 Use more runwithplugin 2019-03-27 00:22:41 +01:00
Nicolas Fella
8b5734db43 Use runwithplugin 2019-03-27 00:11:04 +01:00
l10n daemon script
d3beb45b79 GIT_SILENT made messages (after extraction) 2019-03-26 03:08:25 +01:00
l10n daemon script
601cafa84b GIT_SILENT made messages (after extraction) 2019-03-25 03:11:50 +01:00
Nicolas Fella
210b7b7ed0 Show notification when file cannot be opened because no app is available 2019-03-24 16:43:04 +01:00
Nicolas Fella
5bf0118bf7 Fix file opening 2019-03-24 15:13:00 +01:00
l10n daemon script
c263e996fa GIT_SILENT made messages (after extraction) 2019-03-24 03:08:54 +01:00
Albert Vaca
8ff45db1f3 Bump version to release 2019-03-23 21:54:27 +01:00
Erik Duisters
a146767580 Properly handle non-root tree-uri's 2019-03-23 17:57:11 +01:00
l10n daemon script
315d9657dd GIT_SILENT made messages (after extraction) 2019-03-23 03:16:08 +01:00
Nicolas Fella
5f70db7568 Don't send reply actions
They are already handles by another codepath
2019-03-22 18:19:46 +01:00
Nicolas Fella
c2cd60773b Send notification actions
Summary:
Store PendingIntents from notification actions. Send list of notifications to desktop and trigger Intent when matching packet arrives.
CCBUG: 366475

Test Plan: Create test notification, trigger package is received correctly. Whether intent.send() is actually successful is NOT yet tested.

Reviewers: #kde_connect, sredman

Reviewed By: #kde_connect, sredman

Subscribers: sredman, apol, MatMaul, kdeconnect, mtijink, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D12294
2019-03-22 17:07:00 +01:00
Albert Vaca Cintora
ca90b64094 Bump version to release 2019-03-22 08:38:36 +01:00
Albert Vaca Cintora
7b6d8a4c35 Remove mention to SMS from the description 2019-03-22 08:38:36 +01:00
Simon Redman
b725e81c37 Re-add READ_SMS permission to SMS plugin
Previously was bugged: If the SMS plugin was enabled but the Telephony was not, the SMS plugin would not have worked. Good thing nobody noticed! :)
2019-03-21 21:10:22 -06:00
Nicolas Fella
17e9892c80 Fix showing callers number on Pie 2019-03-21 23:13:27 +00:00
Albert Vaca Cintora
a8bc4f24c7 Fix crash on old API 2019-03-21 23:02:04 +01:00
Albert Vaca Cintora
3b82cd44e4 After unbinding, this will prevent other code from using any view 2019-03-21 23:01:55 +01:00
Nicolas Fella
79272a6042 Reenable calllog permission 2019-03-21 22:46:04 +01:00
Simon Redman
12fb67a7aa Change hard-coded string to use library-provided constant
Does this cause problems with older SDKs? I don't think so. (If there are problems, I assume they were already there)
2019-03-21 11:12:43 -06:00
Nicolas Fella
d03520ce70 Fix lost packets after connecting 2019-03-21 16:36:00 +00:00
Andy Holmes
0453728407 SftpPlugin: fix SAF implementation for gvfs/ssh
Returning NULL from readSymbolicLink() results in an exception that
closes the SFTP connection for some SSH implementations, notably the one
used by Gvfs (GSConnect).

primitive-ftpd had a similar issue, which was fixed by returning and
empty string instead of NULL.
2019-03-21 08:16:47 -07:00
Albert Vaca Cintora
7dc023385e Remove directives that aren't needed
And changed pickFirst to merge, that concatenates the contents
2019-03-21 09:49:49 +01:00
Albert Vaca
a918f0cfe6 Bump version to release 2019-03-20 23:12:11 +01:00
Albert Vaca
aada931d6a Re-enable SMS plugin now that we know the secrets to approval 2019-03-20 23:11:58 +01:00
Albert Vaca
eed77c530b Revert "Stop using ClassIndex, it seems to be causing problems"
This reverts commit 7799f7e817.
2019-03-20 22:35:27 +01:00
Albert Vaca
3b7edf2d2f Merge branch 'master' into play-store 2019-03-20 22:28:53 +01:00
Albert Vaca
37657388c6 Uppercasing some stuff 2019-03-20 22:14:27 +01:00
Albert Vaca
360e4bc1cb Fix ConcurrentModificationException
When onPacketReceived was called at the same time as getSinks, because
getSinks uses .values() and onPacketReceived does .put()
2019-03-20 22:12:53 +01:00
Albert Vaca
b689548aa9 Remove private API usage 2019-03-20 22:07:02 +01:00
Albert Vaca
adac026dfa Change RunCommand to runWithPlugin 2019-03-20 22:06:45 +01:00
Nicolas Fella
d513a5305a Show device name in MPRIS notification 2019-03-20 20:50:06 +00:00
Albert Vaca
4d38f9753c Disable plugin that breaks on Android 4 2019-03-20 09:42:32 +01:00
Albert Vaca
18548fb6df Added missing "unregister" 2019-03-20 09:36:36 +01:00
l10n daemon script
fd5738aa99 GIT_SILENT made messages (after extraction) 2019-03-20 03:06:17 +01:00
Albert Vaca Cintora
7799f7e817 Stop using ClassIndex, it seems to be causing problems 2019-03-19 22:50:22 +01:00
Albert Vaca
8db8937927 Update version to release (to Play Store only) 2019-03-19 09:03:30 +01:00
Albert Vaca
13e6f2d250 Emergency update to fix Play Store's policy violation
- Make TelephonyPlugin only handle calls and not texts
- Disable SMSPlugin.
- Stop using READ_CALL_LOG permission (for contact names)
2019-03-19 09:00:45 +01:00
l10n daemon script
34db7f682f GIT_SILENT made messages (after extraction) 2019-03-19 03:07:26 +01:00
Nicolas Fella
f7763bf5a9 Request READ_CALL_LOG permission 2019-03-18 01:34:51 +00:00
Nicolas Fella
fb2859c24d Prompt user to enable remote keyboard 2019-03-17 14:42:16 +00:00
Nicolas Fella
145fa4f009 Remove dead code 2019-03-17 14:41:49 +00:00
l10n daemon script
e7f203ee3a GIT_SILENT made messages (after extraction) 2019-03-17 03:05:08 +01:00
l10n daemon script
c9feafb982 GIT_SILENT made messages (after extraction) 2019-03-14 03:01:50 +01:00
l10n daemon script
18c344bbc2 GIT_SILENT made messages (after extraction) 2019-03-13 03:10:45 +01:00
l10n daemon script
d73c8e914f GIT_SILENT made messages (after extraction) 2019-03-12 03:04:33 +01:00
l10n daemon script
86f4803083 GIT_SILENT made messages (after extraction) 2019-03-11 03:06:09 +01:00
l10n daemon script
eb875dceb0 GIT_SILENT made messages (after extraction) 2019-03-10 03:07:44 +01:00
Matthijs Tijink
3e85dd6160 Add all missing MPRIS properties in the media session control
Also simplified some code.
2019-03-09 20:06:32 +00:00
Matthijs Tijink
f9bc3f8e0b Block KDE Connect as media session
Also re-enable the media session mpris remote again
2019-03-09 13:57:33 +00:00
l10n daemon script
35ac407aee GIT_SILENT made messages (after extraction) 2019-03-09 03:06:44 +01:00
Albert Vaca Cintora
e033aad425 Bump version to release 2019-03-08 19:31:27 +01:00
Erik Duisters
f2e505b8af Allow shares from desktop to be canceled
Summary:
Allow in progress file transfers to be canceled

BUG: 349956

{F6373048}

{F6373050}

{F6373051}

Test Plan:
Send a large file from desktop to android
Press cancel in the progress notification

Result: the file transfer is cancelled and the cancelled file is deleted from storage

Reviewers: #kde_connect, nicolasfella, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, nicolasfella, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D16491
2019-03-08 19:08:29 +01:00
Erik Duisters
a6fdddf843 Use Storage Access Framework on SDK >= 21 (Lollipop and above)
Summary:
Use Storage Access Framework on Android running SDK >= 21 so writing to
sdcard will work again

|{F6546802}|{F6546803}|{F6546804}|
|API 21+|API 19-|Edit|

Test Plan:
Install patch on Android phone with Build.Version < 19 (Kitkat)

- Without a sdcard: Verify that dolphin displays an "All Files" entry that is empty
- With a sdcard and with "Add camera folder shortcut" turned off: Verify that dolphin displays the configured display name of the sdcard
- With a sdcard and with "Add camera folder shortcut" turned on: Verify that dolphin displays the configured display name of the sdcard and also lists a "Camera pictures" shortcut
- With a sdcard: Verify that when changing the display name or the "Add camera folder shortcut" preference dolphin displays the updated items (after pressing F5)
- With a sdcard: Verify that files can be read and written to/from the sdcard

Install patch on Android phone with Build.Version < 19 (Kitkat)
- Repeat the above tests except for the read/write test: Verify that files can be read from the sdcard

Install patch on Android phone with Build.Version > 21 (Lollipop)

- Without any configured storage locations: Verify dolphin displays an "All Files" entry that is empty
- With configured storage locations: Verify dolphin displays the display names of the configured storage locations and that entering a location displays the correct directory entries
- Make one or several changes to the configured storage locations: Verify dolphin displays the display names of the configured storage locations (after pressing F5) and that entering a location displays the correct directory entries

Reviewers: #kde_connect, albertvaka, sredman

Reviewed By: #kde_connect, albertvaka, sredman

Subscribers: albertvaka, sredman, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D18212
2019-03-08 15:02:10 +01:00
Albert Vaca Cintora
f48b5612c7 Fragments must be public classes
Otherwise they crash at runtime when launched
2019-03-08 14:50:35 +01:00
Albert Vaca
f568c420fa Bump version to release 2019-03-07 12:28:29 +01:00
Albert Vaca
0226712ab5 Upgrade gradle plugin 2019-03-07 12:19:20 +01:00
Albert Vaca
e4275d85f6 Change the plugin description, it doesn't actually take pictures
It might be misleading for people who don't know what this plugin does.
2019-03-07 12:12:41 +01:00
l10n daemon script
123ce99017 GIT_SILENT made messages (after extraction) 2019-03-07 03:06:26 +01:00
l10n daemon script
e1f6f02d75 GIT_SILENT made messages (after extraction) 2019-03-06 03:07:19 +01:00
Nicolas Fella
1c89b0460a Fix file opening
Summary: During the SharePlugin refactoring the way the mime type was determined changed which broke opening files from the desktop.

Test Plan: I can open pkpass/jsonld files in Itinerary again

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: eduisters, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17976
2019-03-05 00:28:51 +01:00
Nicolas Fella
7648e8cf33 Actually load plugin 2019-03-04 23:50:37 +01:00
Nicolas Fella
43ae02d68f [Android] Add photo plugin
Summary: When a request arrive open the camera and send the taken pic back.

Reviewers: #kde_connect, broulik, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, ngraham, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D18142
2019-03-04 23:47:38 +01:00
Erik Duisters
085fb1025b Capture PairingHandlerCallback and call its pairingDone method instead of calling Device.pairingDone using reflection 2019-03-04 19:24:04 +01:00
Erik Duisters
bc2836f45f Also verify that Device.PairingCallback.unpaired() is called 2019-03-04 19:22:46 +01:00
Erik Duisters
b135ffa92a Also verify that Device.PairingCallback.pairingSuccessful() is called 2019-03-04 19:21:04 +01:00
Erik Duisters
9d5a6fa0fd Fixed NPE when contentIntent is triggered 2019-03-03 14:52:23 +00:00
Erik Duisters
024a084b9a Add DeviceType test 2019-03-02 17:42:46 +01:00
Erik Duisters
ff51544e46 Clean up formatting 2019-03-02 17:10:08 +01:00
Erik Duisters
7afbbb452b Removed vectorDrawables.useSupportLibrary = true 2019-02-28 17:04:14 +01:00
Nicolas Fella
bd9a32db94 Remove redundant arg 2019-02-28 15:50:58 +01:00
Nicolas Fella
b066068293 Remove unnecessary null assignment 2019-02-28 15:49:07 +01:00
Nicolas Fella
30e9375106 Weaken access modifier 2019-02-28 15:47:11 +01:00
Nicolas Fella
0b3bbda6a8 Replace lambda with method ref 2019-02-28 15:46:10 +01:00
Nicolas Fella
2a32eb4bae Remove unused imports 2019-02-28 15:44:14 +01:00
l10n daemon script
e2162a9aa3 GIT_SILENT made messages (after extraction) 2019-02-26 02:58:21 +01:00
l10n daemon script
e9c29a43c0 GIT_SILENT made messages (after extraction) 2019-02-25 03:15:35 +01:00
l10n daemon script
c859e05115 GIT_SILENT made messages (after extraction) 2019-02-24 03:03:28 +01:00
Albert Vaca Cintora
ef6c6a6dca Fix crash opening notifications settings
We were using the device context, which is not suitable to start an
Activity, causing "android.util.AndroidRuntimeException: Calling
startActivity() from outside of an Activity."
2019-02-22 20:08:21 +01:00
l10n daemon script
8cf39306f9 GIT_SILENT made messages (after extraction) 2019-02-21 03:26:57 +01:00
l10n daemon script
b7e238a85a GIT_SILENT made messages (after extraction) 2019-02-20 02:57:35 +01:00
l10n daemon script
5d8e8b4c9a GIT_SILENT made messages (after extraction) 2019-02-18 02:53:17 +01:00
Erik Duisters
0b2858d222 Revamp CustomDevicesActivity 2019-02-16 23:58:18 +00:00
l10n daemon script
e7b9742b73 GIT_SILENT made messages (after extraction) 2019-02-16 03:01:45 +01:00
l10n daemon script
aa023592b0 GIT_SILENT made messages (after extraction) 2019-02-15 02:59:23 +01:00
l10n daemon script
22828b1571 GIT_SILENT made messages (after extraction) 2019-02-14 02:56:03 +01:00
l10n daemon script
6c1e9bfa68 GIT_SILENT made messages (after extraction) 2019-02-13 03:07:53 +01:00
Albert Vaca Cintora
311c1c73ca Trying to make the presentation plugin text more clear 2019-02-12 14:58:40 +01:00
Albert Vaca Cintora
6250b67985 Notifications plugin now shows as "without permission" instead of "failed"
Removed the concept of "failed" plugins
2019-02-12 13:21:59 +01:00
Albert Vaca Cintora
b1904a6995 Fixed all tests
Now they are local tests and not Android tests
2019-02-11 21:44:55 +01:00
Albert Vaca Cintora
78b38b5a00 Use ClassIndex to create a list of plugins in compile time
Instead of manually initializing a map statically.
2019-02-11 20:08:18 +01:00
Albert Vaca Cintora
33c9f70cb5 build.gradle: Bump dependencies minor versions 2019-02-11 19:59:52 +01:00
Albert Vaca
bd23eb924d These maps are accessed concurrently, better use a thread-safe container
Hoping this will fix a deadlock in pluginInfoCache.get
2019-02-11 17:55:02 +01:00
l10n daemon script
4a53b14a93 GIT_SILENT made messages (after extraction) 2019-02-10 02:58:55 +01:00
Nicolas Fella
ec66b86dbb Set artist in MediaSession 2019-02-09 12:07:41 +00:00
Albert Vaca
d4286e7f17 Made setupTcpListener and setupUdpListener more similar
No real behaviour change
2019-02-09 00:16:57 +01:00
Albert Vaca
b529ab7484 Removed stale comment from old code 2019-02-08 23:57:57 +01:00
Albert Vaca
dca60706a3 Remove legacy UDP port support 2019-02-08 12:50:48 +01:00
l10n daemon script
e9d16d83f9 GIT_SILENT made messages (after extraction) 2019-02-05 02:58:11 +01:00
l10n daemon script
6a153e32e8 GIT_SILENT made messages (after extraction) 2019-02-03 03:02:33 +01:00
Erik Duisters
56f129ddf4 Use an AlertDialogFragment instead of a AlertDialog for Plugin.getErrorDialog() 2019-02-02 15:01:48 +01:00
Erik Duisters
d364401ea9 Use DialogFragment instead of an AlertDialog for runtime permissions 2019-02-02 11:38:13 +00:00
Erik Duisters
fc11951532 Fix keyboard input on Pie (Android 9/API 28)
BUG: 401726
2019-01-29 18:19:07 +01:00
Erik Duisters
da9b4ea19e Do not query for contacts when there are no contacts 2019-01-29 11:13:44 +01:00
Erik Duisters
f4c80dd839 Use an EditTextPreference for changing the device name instead of an AlertDialog 2019-01-29 09:26:42 +00:00
Erik Duisters
6864cec3fa Merge branch 'improve_multi_file_sharing' of invent.kde.org:eduisters/kdeconnect-android into improve_multi_file_sharing 2019-01-27 11:51:46 +01:00
Erik Duisters
e098ebdaf4 Add packet type "kdeconnect.share.request.update" to allow android to update the share notification 2019-01-27 11:50:52 +01:00
Erik Duisters
e1b665bc06 Use BigText style for share notification 2019-01-26 17:50:49 +00:00
Erik Duisters
874e100e91 Add packet type "kdeconnect.share.request.update" to allow android to update the share notification 2019-01-26 16:59:39 +01:00
l10n daemon script
e6673cc10f GIT_SILENT made messages (after extraction) 2019-01-26 02:58:18 +01:00
l10n daemon script
205745aff6 GIT_SILENT made messages (after extraction) 2019-01-25 02:57:36 +01:00
l10n daemon script
4a48662499 GIT_SILENT made messages (after extraction) 2019-01-24 02:57:57 +01:00
l10n daemon script
0e71d63e3c GIT_SILENT made messages (after extraction) 2019-01-22 02:58:35 +01:00
Erik Duisters
4c6b74a2eb Simplify receiving multiple files using only 1 notification
Summary:
Sequentially receiving multiple files was overly complicated sometimes leading to a progress
notification being shown indefinitely. When files are shared using an older kdeconnect-kde version
fallback to receiving each file individually

Test Plan:
Send multiple files from desktop to android and observe that android receives the files
sequentially using only 1 notification

Send multiple files from an kdeconnect-kde installation and observe that android receives the
files in parallel using multiple notifications

Reviewers: #kde_connect, nicolasfella, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, nicolasfella, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17627
2019-01-21 18:51:51 +01:00
l10n daemon script
5608fe1237 GIT_SILENT made messages (after extraction) 2019-01-21 03:00:30 +01:00
l10n daemon script
7f92219f58 GIT_SILENT made messages (after extraction) 2019-01-20 02:55:01 +01:00
l10n daemon script
618b23bf16 GIT_SILENT made messages (after extraction) 2019-01-19 02:56:40 +01:00
Nicolas Fella
9c62631d63 [Android] Don't force TLS version
Summary:
Use the default configuration from Android

BUG: 400883

Test Plan: Pairing still works

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, thomasp, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D18219
2019-01-18 09:07:11 +01:00
l10n daemon script
ce3871083a GIT_SILENT made messages (after extraction) 2019-01-18 03:03:25 +01:00
Erik Duisters
8e93e3253f Use androidx version of AlertDialog
Summary:
Use androidx version of AlertDialog to get properly styled AlertDialog buttons
Use PreferenceManager context to style Device Name AlertDialog

|{F6551907}|{F6551908}|
|Before|After|

Test Plan: Apply patch and verify that AlertDialogs have properly styled buttons

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D18298
2019-01-17 17:20:46 +01:00
Piyush Aggarwal
a6ae97afb1 Allow disabling persistent notification in Android 8.0 and up
Summary:
`Show persistent notification` toggle is disabled from Android O and up
This patch aims to enable the toggle with link to Notifications Settings, so that user can itself disable the persistent notification if desired

Test Plan: Apply patch, use on Android O or up device and use `Show persistent notification` toggle. It should take you to Notifications settings page of KDE Connect

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, eduisters, nicolasfella, kdeconnect, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D18181
2019-01-16 23:48:41 +01:00
Erik Duisters
8466a6f853 Update for Android Studio 3.3
Summary:
Update gradle-plugin to v3.3.0
Update gradle 4.10.1-all
Update Butterknife to v10.0.0

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D18264
2019-01-16 14:52:21 +01:00
l10n daemon script
4fee60bd0d GIT_SILENT made messages (after extraction) 2019-01-14 03:03:14 +01:00
l10n daemon script
bf527eb05d GIT_SILENT made messages (after extraction) 2019-01-11 03:04:46 +01:00
l10n daemon script
5e9ec37b69 GIT_SILENT made messages (after extraction) 2019-01-10 02:58:40 +01:00
l10n daemon script
29f1ad7299 GIT_SILENT made messages (after extraction) 2019-01-09 03:01:56 +01:00
Erik Duisters
72026d94bf Switch to MaterialComponents theme
Summary:
Androidx introduced new Materialcomponents themes, use them instead of
Theme.AppCompat. This also causes AlertDialogs and PreferenceDialogFragments
to be styled correctly

|{F6531506}|{F6531505}|
|Before|After|

(Ok button is disabled if you are wondering)

Test Plan: Apply patch, verify everything still looks as expected

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D18039
2019-01-08 10:07:54 +01:00
l10n daemon script
472545678f GIT_SILENT made messages (after extraction) 2019-01-08 02:56:01 +01:00
l10n daemon script
ed97b76697 GIT_SILENT made messages (after extraction) 2019-01-07 03:08:22 +01:00
Erik Duisters
4173338974 Make tapping on a pair notification work again
Summary:
The Simplify pairing from notification patch D16518 broke the functionality that
tapping on the notification provided

This patch makes tapping on the pairing notification work again as expected

Test Plan:
Before applying this patch initiate a pairing from kde
On android tap on the notification (not the action buttons) and notice that nothing happens

Apply the path and repeat the above test. Now the DeviceFragment should be displayed allowing
the the pairing to be accepted or rejected

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17886
2019-01-06 13:11:27 +01:00
Erik Duisters
ebdc040ce5 Use ButterKnife for view binding
Summary: Use ButterKnife for view binding

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17878
2019-01-06 12:46:37 +01:00
Erik Duisters
abba7f1132 Do not continue displaying the previous track's album art image when the new track's albumArtUrl is empty
Summary:
When a new track starts playing and does not have album art the previously displayed
album art image will be displayed until a new track starts playing that does have
album art

Test Plan:
Before applying this patch play a track that has album art followed by a song
that does not have album art. Notice that when the track without album art starts
playing the album art of the previous track is still displayed

Apply patch, repeat previous test and notice that the album art placeholder is displayed
when the track without album art start playing

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17875
2019-01-06 12:44:50 +01:00
Erik Duisters
9fb780f919 Migrate from PreferenceActivity to PreferenceFragment because it has been deprecated since Android 3.0 API11
Summary:
PreferenceActivity has been deprecated since Android 3.0 API 11 in favour of PreferenceFragment

| {F6515113} | {F6515114}|
|Before|
| {F6515111} | {F6515112}|
|After|

Test Plan:
Apply patch and observe that the DeviceSettings and PluginSettings screen behave as expected
and now also follow material design guidelines

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17859
2019-01-06 12:36:42 +01:00
l10n daemon script
045e329b53 GIT_SILENT made messages (after extraction) 2019-01-06 03:00:39 +01:00
l10n daemon script
96a77cf044 GIT_SILENT made messages (after extraction) 2019-01-01 02:55:15 +01:00
l10n daemon script
44c2483aa2 GIT_SILENT made messages (after extraction) 2018-12-30 02:52:17 +01:00
l10n daemon script
b565920409 GIT_SILENT made messages (after extraction) 2018-12-29 03:32:18 +01:00
l10n daemon script
88d453fc72 GIT_SILENT made messages (after extraction) 2018-12-28 02:52:57 +01:00
Erik Duisters
f684fbe8ef Migrate from android support libraries to androidx
Summary: Use the new AndroidX libraries instead of the legacy support libraries

Test Plan: Apply patch and verify everything works as before

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: shubham, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17818
2018-12-27 16:43:34 +01:00
l10n daemon script
51c71f801d GIT_SILENT made messages (after extraction) 2018-12-27 02:59:51 +01:00
l10n daemon script
9a571129a0 GIT_SILENT made messages (after extraction) 2018-12-26 02:56:49 +01:00
l10n daemon script
34125d675e GIT_SILENT made messages (after extraction) 2018-12-25 02:56:06 +01:00
Nicolas Fella
f294d763eb [Reveivenotification] Put notifications into own channel
Summary:
This allows for more fine-grained control.
CCBUG: 402488

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17787
2018-12-25 01:34:43 +01:00
Nicolas Fella
54b2a20b3a Remove unneeded field 2018-12-25 00:17:22 +01:00
Nicolas Fella
86fda37b8c Format 2018-12-25 00:10:58 +01:00
Nicolas Fella
82767349cc Rename exception 2018-12-25 00:10:38 +01:00
Nicolas Fella
e76c6d3ea3 Reduce access modifiers 2018-12-25 00:09:52 +01:00
Nicolas Fella
4dec2898f4 [Receivenotification] Support long text
Summary:
Use bigtext style.

BUG: 402489

Test Plan: Send notification with long text. Before a single line was shown. Now the user can view the full content by pulling down the notification

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17786
2018-12-24 23:03:31 +01:00
Nicolas Fella
501af45941 Don't send our own notifications
Summary:
They were silent anyway and are not really useful
BUG: 402490

Test Plan: I don't see the MPRIS notification in the plasmoid any more

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17776
2018-12-24 22:35:58 +01:00
Nicolas Fella
cd5bc17176 [ReceiveNotifications] Honor silent property
Summary: Don't show silent notifications. With D17776 we don't send silent any more, but we might again in the future.

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17777
2018-12-24 22:35:22 +01:00
Nicolas Fella
b4df9f0cb6 Use try-with-resource
Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17778
2018-12-24 22:32:03 +01:00
Nicolas Fella
03b5c769bd Drop custom string compare
Test Plan: Notification app list is still sorted

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17779
2018-12-24 22:31:28 +01:00
Nicolas Fella
e54c0a2ffa Rename exception 2018-12-24 17:47:17 +01:00
Nicolas Fella
968fa06a57 Use expression lambda 2018-12-24 17:45:27 +01:00
Nicolas Fella
4820ff8e63 Use diamond 2018-12-24 17:44:45 +01:00
Nicolas Fella
f244daa5bf Organize imports 2018-12-24 17:43:46 +01:00
Nicolas Fella
ad560e3cf8 Remove comment 2018-12-24 17:39:42 +01:00
Nicolas Fella
9b743f1302 Don't init with null 2018-12-24 17:39:21 +01:00
Nicolas Fella
cb7c91d438 Remove unneeded init 2018-12-24 17:36:37 +01:00
Nicolas Fella
c8be06ec1e Return early 2018-12-24 17:32:23 +01:00
l10n daemon script
d90f22474b GIT_SILENT made messages (after extraction) 2018-12-23 02:55:51 +01:00
l10n daemon script
4433e5a3a9 GIT_SILENT made messages (after extraction) 2018-12-22 02:57:46 +01:00
Erik Duisters
78c69a0cdc Allow browsing sdcard when there is an unreadable file in it (eg .android_secure)
Summary:
On my Samsung Galaxy S5 mini (Android 6.0.1) browsing the sdcard is not possible because there
is a hidden file .android_secure that is not readable by a normal user.
For such a file File.exists() returns false while File.listFiles() does return it
and SftpSubsystem.writeAttrs() throws an exception

Test Plan:
On a device where the SDCard cannot be browsed (I think its API 23 and up)
install kdeconnect with this patch and verify that the SDCard can now be browsed successfully

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, nicolasfella, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17644
2018-12-21 18:41:07 +01:00
l10n daemon script
32952f6d6c GIT_SILENT made messages (after extraction) 2018-12-21 03:00:25 +01:00
Simon Depiets
31dd80e88f Reorder placeholders for i18n c-format compatibility
Summary:
Currently a2po exports files with a c-format tag, which means that plural forms "Failed receiving file from %2$s" are invalid for instance (it should be %1 to %n). Translations are subsequently blocked by the subversion pre-commit hooks.

This fix reorders the placeholders.

Reviewers: #kde_connect, eduisters

Reviewed By: #kde_connect, eduisters

Subscribers: kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17688
2018-12-19 22:57:54 +08:00
l10n daemon script
e77827d733 GIT_SILENT made messages (after extraction) 2018-12-20 02:56:27 +01:00
l10n daemon script
20164f0996 GIT_SILENT made messages (after extraction) 2018-12-19 02:59:34 +01:00
l10n daemon script
adc609b8cd GIT_SILENT made messages (after extraction) 2018-12-17 02:55:37 +01:00
l10n daemon script
085f12cf1e GIT_SILENT made messages (after extraction) 2018-12-16 02:56:56 +01:00
l10n daemon script
b096ebca68 GIT_SILENT made messages (after extraction) 2018-12-15 02:59:20 +01:00
Piyush Aggarwal
12e6b29461 Fixed Header in 3 plugin pages: Run Command, Multimedia control, Remote input
Summary: Fixed Header in 3 plugins: Run Command, Multimedia control, Remote input

Test Plan:
build the Android APK and analyze the Header in `Run Command`,
`Remote input` and `Multimedia control` plugins.

Reviewers: #kde_connect, sredman

Reviewed By: #kde_connect, sredman

Subscribers: ltoscano, nicolasfella, albertvaka, sredman, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17250
2018-12-14 23:23:05 +01:00
l10n daemon script
7c2beac8e2 GIT_SILENT made messages (after extraction) 2018-12-14 03:05:07 +01:00
Simon Redman
5eb368c630 Add incremental notifications plugin settings database upgrade
Summary: When upgrading the app to the version with the new privacy options (D17126), the app will crash with some error about missing a table in the Notifications Plugin database. This patch adds the table in onUpgrade in a proper way.

Test Plan:
 - Build current app from master
 - Disable some apps in the Notifications plugin
 - Apply this patch (as well as its dependency, D17126)
 - The app should work, with your old settings, and now able to toggle privacy options!

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Differential Revision: https://phabricator.kde.org/D17521
2018-12-12 19:12:40 -07:00
Alex Kovrigin
6ba6842fc7 Privacy Options for Notifications Forwarded to Desktop
Summary: Add Privacy Options for Notifications Forwarded to Desktop.

Test Plan:
* Open the android app.
* Go to Notifications Plugin Filter List (?)
* Long click any application.
* Press "Privacy options".
* Set your options.
* Close the menu and get a notification.

Reviewers: sredman, #kde_connect

Reviewed By: sredman, #kde_connect

Subscribers: sredman, alexkovrigin, kdeconnect

Tags: #kde_connect

Maniphest Tasks: T9850

Differential Revision: https://phabricator.kde.org/D17126
2018-12-12 19:11:42 -07:00
l10n daemon script
75732d56b4 GIT_SILENT made messages (after extraction) 2018-12-12 03:02:07 +01:00
Simon Redman
dda6a5104c [Android] Change ThreadID to long
Summary: Change ThreadID to long

Test Plan:
Messages should send and receive as before. Additionally, if your device has assigned extremely large ThreadIDs, the SMS plugin should no longer crash.

This patch corresponds to the KDE-side revision D17516

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17517
2018-12-11 18:02:53 -07:00
l10n daemon script
6dd71e43a3 GIT_SILENT made messages (after extraction) 2018-12-11 02:55:37 +01:00
l10n daemon script
f9203792eb GIT_SILENT made messages (after extraction) 2018-12-10 02:51:20 +01:00
Erik Duisters
15ff0fca2b Make DeviceFragments listview use full screen width so the over scroll indicator looks better
Summary:
Make DeviceFragments listview use full screen width so the over scroll indicator looks better

| {F6466146} | {F6466147} |
| before | after |

Test Plan: Apply patch and notice that the layout of the list elements has remained the same as before

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17456
2018-12-09 18:55:24 +01:00
Erik Duisters
87ec4f2078 Fix some lint warnings
Summary: Fix a number of lint warnings

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17452
2018-12-09 18:53:32 +01:00
Erik Duisters
2402b11608 Incorporate more Material Design components
Summary:
Add CoordinatorLayout and AppBarLayout to activity_main.xml to support
more material design features (eg. FAB moves out of the way when a Snackbar is displayed)

Test Plan: Apply patch and confirm that the app looks the same as allways

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17451
2018-12-09 18:51:12 +01:00
Erik Duisters
53422e0900 Use android:theme instead of app:theme because it is deprecated
Summary:
When starting kdeconnect the following message appears in logcat:

I/AppCompatViewInflater: app:theme is now deprecated. Please move to using android:theme instead.

Test Plan: Apply patch, launch app and verify that this message is no longer logged to logcat

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17434
2018-12-09 18:40:25 +01:00
Nicolas Fella
4f54d55cc5 Use one port more
Summary: The desktop side goes as far up as 1764.

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17271
2018-12-09 13:48:47 +01:00
l10n daemon script
89cbdac010 GIT_SILENT made messages (after extraction) 2018-12-09 02:54:22 +01:00
Erik Duisters
d4d4849f15 Closing a SSLSockets input or output stream does not close the socket (https://issuetracker.google.com/issues/37018094)
Summary:
When you close a SSLSockets input or output stream the socket does not get closed leading to may
sockets in the CLOSE_WAIT state. This will eventually deplete the available file descriptors

Test Plan:
Before appying this patch share a file from desktop to android
After the share is finished issue the command:

netstat -pW | grep kde

There should be a line showing that the socket used is in the state CLOSE_WAIT like below

tcp6  0 0 ::ffff:192.168.0.32:33604   ::ffff:192.168.0.2:1739  CLOSE_WAIT  6200/org.kde.kdeconnect_tp

Apply this patch and repeat the test. Now there should no longer be any sockets in the CLOSE_WAIT state

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17320
2018-12-08 14:28:14 +01:00
Erik Duisters
3a189d1af4 Do not create a new content fragment on orientation change
Summary:
When an orientation change occurs the fragment manager will automatically
re-create the content fragment for us.

Test Plan:
Set the content fragment to DeviceFragment and change orientation
Result: DeviceFragment is shown for the correct device and the correct navigation view menu item is checked

Set the content fragment to PairingFragment and change orientation
Result: PairingFragment is shown for the correct device and the "Pair new device" navigation view menu item is checked

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17409
2018-12-08 14:14:18 +01:00
Erik Duisters
9f498f8127 Use butterknife for view binding
Summary: Use butterknife for view binding

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17411
2018-12-08 14:12:14 +01:00
l10n daemon script
4158956dd9 GIT_SILENT made messages (after extraction) 2018-12-08 02:56:16 +01:00
Erik Duisters
087b7ce875 Make toast work from a background thread
Summary:
When receiving a text share an attempt is made to show a toast but that results
in an exception because the issuing thread is not running a looper.

Test Plan:
Without this patch applied Share a text with an android device using the plasmoid
Result: No toast is displayed and in logcat you will get a:
        java.lang.RuntimeException: Can't toast on a thread that has not called Looper.prepare() exception

With this patch applied again Share a text an android device using the plasmoid
Result: The toast is actually displayed even when the activity is not in the foreground

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17400
2018-12-07 19:22:32 +01:00
l10n daemon script
ebbd47704a GIT_SILENT made messages (after extraction) 2018-12-07 02:58:29 +01:00
Erik Duisters
96a1edfb76 Fix lint warning: Avoid non-default constructors in fragments
Summary: It is common practice to use a static newInstance to create new fragment instances instead of using non-default constructors

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17390
2018-12-06 20:29:07 +01:00
Erik Duisters
6e8d9e8419 Remove not used constructor
Summary: Remove constructor that is not used

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17389
2018-12-06 19:39:13 +01:00
Erik Duisters
27f8c57c50 Do not send null NetworkPackets
Summary: queuedSendUriList can return null and subsequently an attempt is make to actually send this null packet

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17384
2018-12-06 19:38:06 +01:00
l10n daemon script
514f2a2035 GIT_SILENT made messages (after extraction) 2018-12-05 03:00:21 +01:00
Albert Vaca
c80a905f1b Allow multi-line, expandable notifications if text doesn't fit 2018-12-04 17:39:11 +01:00
l10n daemon script
b21a4ac6ba GIT_SILENT made messages (after extraction) 2018-12-04 03:01:52 +01:00
Albert Vaca
918e62b429 Check returned dialogs for null
There were crash reports in the Play Store with NPE here.
2018-12-03 19:38:37 +01:00
l10n daemon script
fd243ba5c1 GIT_SILENT made messages (after extraction) 2018-12-03 03:02:59 +01:00
Albert Vaca
18cba01f29 Fix key auth for sftp
It was still using the old device key pairs we keep for compatibility,
which was null.
2018-12-02 20:04:06 +01:00
Erik Duisters
04e605bcf9 Handle receiving an empty file
Summary:
When an empty file is send from the desktop SharePlugin onPacketReceived
does not see a payload so the packet is discarded

Test Plan:
Send an empty file from the desktop
Verify that a notification is shown notifying the user that a file was received and that file has been created in the filesystem

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17235
2018-12-02 19:34:49 +01:00
l10n daemon script
dee66fba87 GIT_SILENT made messages (after extraction) 2018-12-02 03:00:05 +01:00
Erik Duisters
6fb6ea7e2b Clear currentShareInfo when transfer is complete
Summary:
currentShareInfo needs to be nulled when a transfer is complete if not the next transfer will
have incorrect notification information and will never finish

Test Plan:
Send 2 files from desktop to android, notification is as expected (eg (File 1 of 2) followed by (File 2 of 2)
When transfer is complete send 2 files again, notification is as expected and is finished when transfer is done

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17259
2018-11-30 17:52:57 +01:00
Erik Duisters
4dd651b386 Align NetworkPacket.hasPayload with desktop
Summary:
On desktop NetworkPacket.hasPayload() tests m_payloadSize
On android NetworkPacket.hasPayload() tests mPayload

This patch makes android also test mPayloadSize to make things more consistent

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17236
2018-11-30 08:40:57 +01:00
Erik Duisters
9b426fe4a5 Receive multiple files using 1 notification
Summary:
When multiple files are shared from desktop to android the transfer of the
files should be handled using 1 notification

Depends on: D17081

Test Plan:
Share multiple biggish files from desktop to android
The sharing progress is displayed using 1 notification

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17157
2018-11-30 08:35:09 +01:00
Albert Vaca
c5961d6514 Bump version code to release 2018-11-29 20:22:41 +01:00
l10n daemon script
69e5623a4d GIT_SILENT made messages (after extraction) 2018-11-29 02:58:46 +01:00
Erik Duisters
5d50358f3f Allow sharing of empty files
Summary:
When an empty file is shared with the desktop a server is started that times-out after 10sec
this causes a notification to be displayed telling the user the transfer failed

Test Plan:
Send an empty file to the desktop
A notification should be displayed telling the user the transfer succeeded

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17176
2018-11-28 15:49:36 +01:00
l10n daemon script
58cd88b760 GIT_SILENT made messages (after extraction) 2018-11-26 02:58:21 +01:00
l10n daemon script
9561ff1cab GIT_SILENT made messages (after extraction) 2018-11-24 02:56:53 +01:00
l10n daemon script
e48993a5d7 GIT_SILENT made messages (after extraction) 2018-11-23 02:57:07 +01:00
l10n daemon script
f1d0649cc6 GIT_SILENT made messages (after extraction) 2018-11-22 02:57:31 +01:00
l10n daemon script
027856bc0b GIT_SILENT made messages (after extraction) 2018-11-21 02:58:56 +01:00
Nicolas Fella
6dd6bd3117 Enable opening on connected device (Android)
Summary: When a Share packet with a file and "open: true" arrives ope that file directly. Files are always downloaded to the standard location to avoid the FileProvider trouble

Test Plan: TBA

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect

Tags: #kde_connect

Maniphest Tasks: T8637

Differential Revision: https://phabricator.kde.org/D15293
2018-11-20 21:50:01 +01:00
Albert Vaca
6ecf443238 Only send icons of new notification, not updates 2018-11-20 21:24:35 +01:00
Erik Duisters
96b0a9ea9b A SO_TIMEOUT of 1 second often leads to the socket timing out when transferring large files.
Summary:
When receiving large files (even worse when uploading multiple files) the receiving socket
often times-out.

Test Plan:
Send 1 or 2 big files from desktop to android without this patch and you should see 1 or both transfers
fail because of a SO_TIMEOUT

Apply this patch and re-run the test and both transfers should now complete without an SO_TIMEOUT

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: zhigalin, albertvaka, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D16758
2018-11-20 13:50:07 +01:00
l10n daemon script
178e5ca050 GIT_SILENT made messages (after extraction) 2018-11-20 02:57:52 +01:00
Albert Vaca
df0d02cd0d Allow packets that carry both muted and volume 2018-11-20 01:10:09 +01:00
Alex Kovrigin
9be46002ad Refactor Duplicated Code in KDE Connect Android-side SMS Helper
Summary:
In src/org/kde/kdeconnect/Helpers/SMSHelper.java:
getMessagesWithFilter() and getConversations() functions are now both using new function: getMessages().

Test Plan:
* Build android app and run it on android phone
* Pair it with the desktop and open sms app (kdeconnect-sms).
* Everything works as earlier, but now with refactored code.

Reviewers: sredman

Reviewed By: sredman

Subscribers: sredman, alexkovrigin, kdeconnect

Tags: #kde_connect

Maniphest Tasks: T9841

Differential Revision: https://phabricator.kde.org/D17002
2018-11-19 10:21:45 -07:00
l10n daemon script
2cf9df3be8 GIT_SILENT made messages (after extraction) 2018-11-18 03:48:16 +01:00
l10n daemon script
27b4089061 GIT_SILENT made messages (after extraction) 2018-11-17 03:45:23 +01:00
l10n daemon script
b8a2757bce GIT_SILENT made messages (after extraction) 2018-11-16 03:42:45 +01:00
Simon Redman
da629f9756 [Android] Make message syncronization interface capable of handling future changes
Summary:
Update packet type with proper field names and commenting

Send new "event" field

Test Plan:
- Install corresponding Desktop-side patch D16599
- Verify that it is still possible to synchronize messages the same as it was before

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D16600
2018-11-15 16:56:25 -07:00
l10n daemon script
3de35361bb GIT_SILENT made messages (after extraction) 2018-11-13 03:54:06 +01:00
l10n daemon script
9cbf2a33bc GIT_SILENT made messages (after extraction) 2018-11-12 03:50:01 +01:00
l10n daemon script
1325cc2e0f GIT_SILENT made messages (after extraction) 2018-11-09 03:51:31 +01:00
Albert Vaca
7784a66df0 Fixed untranslatable strings
BUG: 400810
2018-11-08 14:51:40 +01:00
Erik Duisters
b29e7eb000 Need to dynamically register broadcast receiver for ConnectivityManager.CONNECTIVITY_ACTION broadcast on API >= 24
Summary:
On android versions >= 24 manifest registered broadcast receivers for ConnectivityManager.CONNECTIVITY_ACTION
will not receive the broadcast, see: https://developer.android.com/reference/android/net/ConnectivityManager#CONNECTIVITY_ACTION

Test Plan:
Run app on phone with API > 24 without this patch and this broadcast will not be received any longer
Run app on phone with API > 24 with this patch and this broadcast will be received again

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D16738
2018-11-07 18:44:45 +01:00
Erik Duisters
1fa8f3c99d Load image with resampling to prevent OOM
Summary:
When loading large images you can run into an OOM situation crashing
the app and leaving the progress notification displayed indefinitely

BUG: 397507

Test Plan:
Before applying the patch find a phone where the app crashes when you send a very large
image to it (my 6.0.1 phone did not even crash when i send it a 85MB image but my 4.0.4 phone
already crashes on a 7MB image)

Apply patch install and send image again

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D16712
2018-11-07 17:53:05 +01:00
Albert Vaca
9e1e479650 Disable bad cipher suites now that we dropped support for API<14
BUG: 400722
2018-11-07 16:24:00 +01:00
Erik Duisters
4eecf187c3 Manifest.permission.READ_EXTERNAL_STORAGE is not needed for API < 16
Summary:
Manifest.permission.READ_EXTERNAL_STORAGE was added in API 16 so older API's do not
have to request this permission

Test Plan:
Install on API < 16 device or emulator
Pair and browse device using dolphin

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D16613
2018-11-07 16:06:03 +01:00
Bertrand Lacost
8c48df6293 Add detection of the Meta/Super key press
Differential Revision: https://phabricator.kde.org/D10379
2018-11-07 16:05:30 +01:00
Erik Duisters
b4853508e0 When creating sharePendingIntent use a unique requestCode so a new PendingIntent is created
Summary:
Fixes the situation where when 2 or more files are send to Android clicking the share button
in either of the notifications will always share the last received file.

BUG: 396051

Test Plan:
Send 2 files to android
Click on the share button of the first received file

The first file is actually used for the share and not the last received file

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D16707
2018-11-06 21:49:58 +01:00
Erik Duisters
6992f2f5ee While uploading a file the notification should not be dismissable
Summary: BUG: 399983

Test Plan:
Send a big file from Android
The notification can not be dismissed while the file is being transferred

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D16713
2018-11-06 19:57:02 +01:00
l10n daemon script
bb3018ea76 GIT_SILENT made messages (after extraction) 2018-11-06 03:45:34 +01:00
Albert Vaca
0677391040 Bumping version again to release 2018-11-02 13:25:02 +01:00
Albert Vaca
ef3fd68f73 This seems to fix SFTP for Android < 8 2018-11-02 13:24:38 +01:00
Simon Redman
a647c8e447 Re-indent example packet comments 2018-11-01 12:52:30 -06:00
l10n daemon script
403c39290c GIT_SILENT made messages (after extraction) 2018-11-01 03:43:25 +01:00
Albert Vaca
58c4dfbdbd Bump version code to release 2018-10-31 15:27:42 +01:00
Albert Vaca
9d2d0697ff Fix SFTP not working due to proguard removing classes 2018-10-31 15:27:16 +01:00
Albert Vaca
75d4f0efa6 Bump version code to release 2018-10-30 18:21:04 +01:00
Albert Vaca
10cecab65c Fix "select all" not working for apps not in the DB
- Now we store the "select all" as the default value for apps not in the DB
- This also means new apps, which makes sense
- We pre-fill the "select all" checkbox with the default value

Also, now we store true/false as integers 1/0 instead of as string
2018-10-30 18:17:33 +01:00
Nicolas Fella
84bc31b413 Make sending files 100% less noisy 2018-10-30 17:15:51 +01:00
Albert Vaca
a9ab77471e Use try-with-resources in places where it looked safe 2018-10-30 13:04:45 +01:00
Erik Duisters
b54b69032f Simplify pairing from notification
Summary: When a pairing is accepted or rejected through notification actions a new DeviceFragment was created but this fragment was never actually attached to the fragment manager so not displayed to the user.

Test Plan:
Request a pairing from the desktop and Accept or Reject the pairing on Android using the notification Action buttons

When you accept the pairing the DeviceFragment should be shown for the device, the action bar title should be set to the devices name and the device should be selected in the NavigationView

When you reject the pairing the PairingFragment should be shown

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D16518
2018-10-30 12:42:38 +01:00
Nicolas Fella
2bc059c4b6 Avoid hardcoded string 2018-10-29 19:58:44 +01:00
Albert Vaca
5dc02bbb75 Remove more unnecessary API version checks 2018-10-29 19:14:14 +01:00
Albert Vaca
4799cc5bbd Fixed exception when content of some notifications
Key android.title expected String but value was a android.text.SpannableString.  The default value <null> was returned.
Attempt to cast generated internal exception:
    java.lang.ClassCastException: android.text.SpannableString cannot be cast to java.lang.String
2018-10-29 19:08:47 +01:00
Nicolas Fella
a136d29ff7 Use runWithPlugin helper in SharePlugin
Summary: Depends on D16472

Test Plan:
Share file via app
Share file from external app
Share file via direct Share

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D16473
2018-10-29 15:08:45 +01:00
Nicolas Fella
5dc5539e7e Add runWithPlugin helper
Summary:
There is a common pattern:
BackgroundService.RunCommand
    getDevice
    check device != null
    getPlugin
    check plugin != null
    doCode

Add a helper for this pattern and port existing code

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D16472
2018-10-29 15:07:49 +01:00
Nicolas Fella
901ead5b1f Fix mobile data detection
Summary: It always returned false previously

Test Plan: I'm seeing the mobile data warning for the first time

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D16445
2018-10-29 15:07:15 +01:00
l10n daemon script
cab02df704 GIT_SILENT made messages (after extraction) 2018-10-29 03:32:58 +01:00
Albert Vaca
b5d8a86c5e No need to create a stack here, as there is only one level 2018-10-28 23:11:27 +01:00
Albert Vaca
681b4bb48a Create a stack for the Mpris activity
BUG: 399343
2018-10-28 23:11:27 +01:00
Albert Vaca
6c9c8505c7 Remove unused var 2018-10-28 20:16:55 +01:00
Albert Vaca
970b50f61f Bump version code 2018-10-28 19:17:08 +01:00
Albert Vaca
24e1a95e92 startService throws if called when the app is in the background in Oreo 2018-10-28 19:17:08 +01:00
Albert Vaca
be6b108e64 Make sure the cursor is always closed 2018-10-28 19:17:08 +01:00
l10n daemon script
555e3a3f03 GIT_SILENT made messages (after extraction) 2018-10-28 02:36:52 +01:00
Albert Vaca
28a8f2131b Use the right context and SwitchCompat
As suggested by the Android guys here:

https://issuetracker.google.com/issues/118392630
2018-10-27 23:08:35 +02:00
l10n daemon script
1132ee2814 GIT_SILENT made messages (after extraction) 2018-10-27 03:43:28 +02:00
Nicolas Fella
b53f2d11bd Remove old way of device renaming 2018-10-27 01:04:34 +02:00
Nicolas Fella
0c7b970eae Add content description 2018-10-27 00:59:58 +02:00
Nicolas Fella
15a5a8d0d5 Remove unused field 2018-10-27 00:57:59 +02:00
Nicolas Fella
dfa78f7fbd Organize imports 2018-10-27 00:53:30 +02:00
Nicolas Fella
a5e6fa14d7 Do not use presized arrays 2018-10-27 00:45:05 +02:00
Nicolas Fella
2410782662 Fix XML warnings 2018-10-27 00:39:41 +02:00
Nicolas Fella
cc59b18fb2 Use ellipsis character 2018-10-27 00:24:15 +02:00
Nicolas Fella
b19039a3df Fix XML Schema 2018-10-27 00:21:52 +02:00
Nicolas Fella
4b505b38a5 Remove unneeded parameter 2018-10-27 00:02:59 +02:00
Nicolas Fella
10c552a6f4 Only use required access modifiers 2018-10-27 00:02:26 +02:00
Nicolas Fella
e1096f5bc8 Make final where possible 2018-10-27 00:01:30 +02:00
Nicolas Fella
a49a145d69 Only use required access modifiers 2018-10-26 23:59:20 +02:00
Nicolas Fella
9650660e4a Remove unneeded casts 2018-10-26 23:59:20 +02:00
Nicolas Fella
c1426584c1 Fix id 2018-10-26 23:59:20 +02:00
Simon Redman
806a929643 [Android] Add Gradle files to repository
Summary: Gradle is automatically configured by Android Studio. However, the project is troublesome to build when using other tools. Per https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:adding_wrapper, the files added by this patch ought to be included in the repository

Test Plan: After applying this diff, it should be possible to clone a fresh repository and run ./gradlew build, resulting in an .apk in ./build/outputs/apk/*/

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D16439
2018-10-26 15:57:30 -06:00
Nicolas Fella
3a8cb14c19 Remove unneeded imports 2018-10-26 23:12:31 +02:00
Nicolas Fella
2d0b97d252 Simplify asserts 2018-10-26 23:11:47 +02:00
Nicolas Fella
74d2b2e828 Fix javadoc warning 2018-10-26 23:09:24 +02:00
Nicolas Fella
9e7a06f4c4 Simplify arithmetics 2018-10-26 23:03:02 +02:00
Nicolas Fella
878cc5fdb3 Replace lambda 2018-10-26 23:02:20 +02:00
Nicolas Fella
59c72c2107 Simplify asserts 2018-10-26 23:00:53 +02:00
Nicolas Fella
42f06d4b51 Remove assert. They don't do anything 2018-10-26 22:55:06 +02:00
Nicolas Fella
7a24310cea Remove unneeded version checks
We require API 14 now which makes some checks needless
2018-10-26 22:51:13 +02:00
Albert Vaca
cbd4af2378 Bump version to release as beta 2018-10-25 21:27:17 +02:00
Albert Vaca
3e5f9bb964 Merge branch 'pie'
# Conflicts:
#	res/values/strings.xml
#	src/org/kde/kdeconnect/UserInterface/MainActivity.java
2018-10-25 21:06:18 +02:00
Erik Duisters
2c32bd334a Broadcast actual tcp server port used
Summary: UDP Identity packet should set tcpPort to the actual tcpServer port used

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, nicolasfella, sredman, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D16351
2018-10-25 21:03:44 +02:00
Albert Vaca
14d70df55c Use SwitchPreference on Android 7 2018-10-25 20:56:39 +02:00
Albert Vaca
20ad6a5ffc Oops, wrong condition 2018-10-25 19:36:41 +02:00
Albert Vaca
aee692ffb3 Better titles for the settings 2018-10-25 19:23:12 +02:00
Albert Vaca
6771024a00 Explain that the notification can be hidden in Android 9 2018-10-25 19:23:12 +02:00
Albert Vaca
39ac8c9096 Remove the option to rename device from the menu
As it's now in the settings screen
2018-10-25 19:22:34 +02:00
Albert Vaca
a97b32ce1e Merge remote-tracking branch 'origin/mina-sshd0-fix' into pie 2018-10-25 17:07:03 +02:00
Albert Vaca
fcf3032965 Added a setting to disable the persistent notification pre-oreo 2018-10-25 16:58:42 +02:00
Albert Vaca
e90bd904e9 Removed debug message 2018-10-25 16:58:36 +02:00
Albert Vaca
51c0a713bc Do not show the failed plugins lists when the device is unpaired
This could happen if you had this screen visible when unpairing from the
other end.
2018-10-25 16:57:57 +02:00
Albert Vaca
c9a6b26b5c Fix notification on pre-oreo 2018-10-25 14:05:19 +02:00
Sandeep Raghuraman
91c215eb9c Update Android Gradle plugin to v3.2.1
Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D16396
2018-10-24 19:42:08 +02:00
Nicolas Fella
abd45cfc06 Remove unneeded files
Restores the look we wanted since D12290
2018-10-24 12:43:12 +02:00
l10n daemon script
26ff23e6d5 GIT_SILENT made messages (after extraction) 2018-10-23 03:49:41 +02:00
l10n daemon script
1e1444994d GIT_SILENT made messages (after extraction) 2018-10-21 03:40:42 +02:00
Albert Vaca
5bda6e0eb8 Add app-wide settings screen 2018-10-18 10:16:55 +02:00
l10n daemon script
d377a41a96 GIT_SILENT made messages (after extraction) 2018-10-18 03:44:16 +02:00
l10n daemon script
3e8bc4729f GIT_SILENT made messages (after extraction) 2018-10-17 04:12:18 +02:00
Albert Vaca
11d26129e9 Rename SettingsActivity to DeviceSettingsActivity 2018-10-16 15:02:37 +02:00
Albert Vaca
a52aed1648 Fix compilation in release mode 2018-10-16 15:02:37 +02:00
Albert Vaca
58a9b0d9a3 Bump sdk to Android PIE
Changes:
- Appcompat library v4 has been splitted in smaller libs, we only need one
- New FOREGROUND_SERVICE permission is required
2018-10-16 14:39:00 +02:00
Albert Vaca
4629179de6 BIND_REMOTEVIEWS is a system-only permission 2018-10-16 14:37:28 +02:00
l10n daemon script
648bd7fb47 GIT_SILENT made messages (after extraction) 2018-10-10 03:54:29 +02:00
l10n daemon script
bbb2b46867 GIT_SILENT made messages (after extraction) 2018-10-08 03:42:53 +02:00
l10n daemon script
169eb01c86 GIT_SILENT made messages (after extraction) 2018-10-05 03:45:49 +02:00
Nicolas Fella
a4e2af2c51 Simplify failed plugin list creation
Summary: Use some lambdas to simplify the code

Test Plan: Denie some permissions, open permission explanation dialogs

Reviewers: #kde_connect

Subscribers: kdeconnect, mtijink, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D12232
2018-10-04 19:02:51 +02:00
l10n daemon script
158776456c GIT_SILENT made messages (after extraction) 2018-10-04 03:44:14 +02:00
l10n daemon script
a402757236 GIT_SILENT made messages (after extraction) 2018-10-03 03:49:56 +02:00
l10n daemon script
b7c4020014 GIT_SILENT made messages (after extraction) 2018-10-02 03:45:09 +02:00
Nicolas Fella
e4ffd3d3cf Enable (de)selecting all apps in notification filter
Summary:
BUG: 393190

Add checkbox to (de)select all

{F5812151}

Old proposal:

{F5810640}

Test Plan:
Deselect all, verify that no notification is coming from test app.
Select all, ...
Deselect all, select single app, ...

Reviewers: #kde_connect, broulik

Reviewed By: #kde_connect

Subscribers: albertvaka, kdeconnect, apol, mtijink, broulik, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D12281
2018-09-30 19:34:07 +02:00
Nicolas Fella
297f0f66f5 [Telephony] Check last state before handling broadcast
Summary:
Bug: 396954

Sometimes multiple broadcasts with the same state arrive. Only handle them when the state actually changes

Test Plan: Get called, "Calling" notification appears. Caller hangs up, "Call missed" notification appears.

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D15838
2018-09-30 19:24:02 +02:00
l10n daemon script
bd2c1c2f69 GIT_SILENT made messages (after extraction) 2018-09-30 03:41:45 +02:00
Nicolas Fella
539aae5e9a Fix version checks 2018-09-29 21:19:21 +02:00
Nicolas Fella
427cad6239 Remove redundant casts 2018-09-29 21:13:27 +02:00
Nicolas Fella
49df6ddba6 Invert condition to avoid empty if block 2018-09-29 21:12:11 +02:00
Nicolas Fella
b97ad28456 Don't catch and rethrow 2018-09-29 21:08:45 +02:00
Nicolas Fella
93251ee7a6 Remove methods that only call super 2018-09-29 21:02:03 +02:00
Nicolas Fella
66bb8df1d1 Cleanup imports again 2018-09-29 21:00:19 +02:00
Nicolas Fella
2c101af3b0 Remove unneeded variable 2018-09-29 20:59:48 +02:00
Nicolas Fella
5183516c55 Cleanup imports 2018-09-29 20:45:53 +02:00
Nicolas Fella
476989ffdf Use StringBuilder 2018-09-29 20:43:10 +02:00
Nicolas Fella
85169635bd Use arraycopy 2018-09-29 20:42:14 +02:00
Nicolas Fella
e68224f2b1 Use lambdas 2018-09-29 20:40:02 +02:00
Nicolas Fella
c3fc001621 Use diamond operator 2018-09-29 20:36:47 +02:00
Nicolas Fella
1a17455992 Use foreach 2018-09-29 20:36:17 +02:00
Nicolas Fella
b513717c75 Simplify expressions 2018-09-29 20:33:56 +02:00
Nicolas Fella
a537439bc6 Autoformat code 2018-09-29 20:28:47 +02:00
Nicolas Fella
da3106f123 Make packet type definition private 2018-09-29 19:33:36 +02:00
Nicolas Fella
83432ed143 Extract duplicate code into method 2018-09-29 19:30:27 +02:00
Nicolas Fella
405792b707 Autoformat code 2018-09-29 19:25:10 +02:00
l10n daemon script
b469c2e79a GIT_SILENT made messages (after extraction) 2018-09-29 03:52:17 +02:00
l10n daemon script
796321b141 GIT_SILENT made messages (after extraction) 2018-09-28 03:41:36 +02:00
l10n daemon script
5e087bf286 GIT_SILENT made messages (after extraction) 2018-09-27 03:41:26 +02:00
l10n daemon script
9b338d940e GIT_SILENT made messages (after extraction) 2018-09-26 03:53:05 +02:00
l10n daemon script
51303a4dc1 GIT_SILENT made messages (after extraction) 2018-09-25 03:47:32 +02:00
Nicolas Fella
a800e0f85a Remove trailing dot and use imperative wording in MPRIS preferences
Make it more consistent with other preferences
2018-09-24 16:51:43 +02:00
l10n daemon script
a52c386598 GIT_SILENT made messages (after extraction) 2018-09-22 03:47:27 +02:00
l10n daemon script
b2dc26da1a GIT_SILENT made messages (after extraction) 2018-09-19 03:46:03 +02:00
l10n daemon script
da74597fc6 GIT_SILENT made messages (after extraction) 2018-09-18 03:44:03 +02:00
Simon Redman
df42f992c8 [Android] New-style Message received handling
Summary:
Mark old-style SMS packet sending as deprecated (but still supported for backwards-compatibility with old Desktop apps)

Implement a ContentObserver on the Messages database, then send an update to the remote for all incoming or outgoing messages

Test Plan:
1. DBus
  - Connect Android to desktop
  - Subscribe to /modules/kdeconnect/devices/<device_id>/org.kdeconnect.device.conversations/conversationUpdated
  - Receive a new message (text yourself?)
  - Verify that something comes back on dbus (This endpoint is updated by D15409. With that patch you should see the new Message object, before you should just get the (meaningless) conversation ID)

2. SMS App
  - Relies on D15409 - See instructions there

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D15360
2018-09-17 09:06:42 -06:00
Simon Redman
0cc3639aa1 [Android] Cleanup SMS plugin and document deprecated SMS-relevant Telephony packet types
Summary:
- Rename all SMS-handling packets to indicate that they belong to the SMS plugin
- Define TELEPHONY_REQUEST_MUTE packet to replace TELEPHONY_REQUEST packet

Please see KDE-side patch here: D15543

Test Plan: See test plan in D15543

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D15544
2018-09-16 16:07:19 -06:00
l10n daemon script
c1a7afe539 GIT_SILENT made messages (after extraction) 2018-09-06 03:43:38 +02:00
l10n daemon script
69ab9fef75 GIT_SILENT made messages (after extraction) 2018-09-03 03:43:56 +02:00
l10n daemon script
c7b6de983b GIT_SILENT made messages (after extraction) 2018-09-02 03:43:38 +02:00
Albert Vaca
526d500a9f Upgrade sshd-core to version 0.14 2018-08-31 21:45:06 +02:00
Albert Vaca
6ae878fec2 Remove useless catch-and-throw 2018-08-31 21:42:53 +02:00
Albert Vaca
55a98ef67a Use our own keys (RSA) for SFTP
Otherwise, this version of MINA generates keys using an old algorithm (DSS)
and also they seem to be broken with modern ssh clients.
2018-08-31 21:04:22 +02:00
l10n daemon script
7daea0ff78 GIT_SILENT made messages (after extraction) 2018-08-27 03:49:23 +02:00
l10n daemon script
e55e73a40a GIT_SILENT made messages (after extraction) 2018-08-26 03:34:56 +02:00
l10n daemon script
f49584c7d0 GIT_SILENT made messages (after extraction) 2018-08-24 03:33:40 +02:00
l10n daemon script
af24858ddf GIT_SILENT made messages (after extraction) 2018-08-22 03:46:33 +02:00
l10n daemon script
818833a729 GIT_SILENT made messages (after extraction) 2018-08-18 03:41:32 +02:00
Albert Vaca
8547e59cd8 Merge branch 'master' into oreo2 2018-08-16 15:43:42 +02:00
l10n daemon script
b115a3031b GIT_SILENT made messages (after extraction) 2018-08-16 03:31:36 +02:00
Nicolas Fella
665354c5d5 Split Telephony and SMS plugin on Android
Test Plan:
Get called: Notification appears as before.
Get SMS: Notification shows and it appears in SMS app after reconnect.
Write SMS from app: It shows up on the phone

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D14612
2018-08-15 17:12:45 +02:00
l10n daemon script
f8e742256e GIT_SILENT made messages (after extraction) 2018-08-15 03:40:04 +02:00
Chansol Yang
6db7ffd1db Add acceleration to remote input cursor
Summary:
This patch adds cursor acceleration to KDEConnect's remote input plugin. The cursor movement is now scaled down if the movement is slow, and scaled up if the movement is fast.
The acceleration is implemented on the android side. An additional setting was added to the android app's Remote Control plugin preferences, allowing the user to choose the strength of the acceleration, or to disable the acceleration completely.

Test Plan:
After installing this revision on your android device, go to the remote input page and start using the mousepad. Cursor acceleration should be enabled by default.
Check if the cursor acceleration is intuitive and easy to use. Also, try tweaking the acceleration in the Remote input settings in the Plugin settings menu.

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D14720
2018-08-13 23:50:29 +02:00
l10n daemon script
c6603029ec GIT_SILENT made messages (after extraction) 2018-08-07 03:36:38 +02:00
l10n daemon script
c5fb7b1be4 GIT_SILENT made messages (after extraction) 2018-08-05 03:30:16 +02:00
l10n daemon script
ba7fc67885 GIT_SILENT made messages (after extraction) 2018-08-04 03:38:45 +02:00
l10n daemon script
e7b16949ed GIT_SILENT made messages (after extraction) 2018-08-03 03:29:47 +02:00
Nicolas Fella
877cf67347 Fix volume icon on dark theme 2018-08-01 23:45:32 +02:00
Nicolas Fella
d720684af6 Fix layoout file formatting 2018-08-01 23:42:36 +02:00
Albert Vaca
8d9d15e6dd Added a plugin to present slideshows
Summary:
This adds a plugin with buttons for next and previous slide and fullscreen.
It also allows you to use volume up/down to change slide, even when the screen is off.
It can be extended to show do more presentation-related stuff eventually.
On the desktop side, it uses the already present 'mousepad' (keyboard input) plugin.

Test Plan: Tested manually.

Reviewers: #kde_connect, nicolasfella, apol

Reviewed By: #kde_connect, nicolasfella, apol

Subscribers: apol, nicolasfella, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D14430
2018-08-01 14:27:57 +02:00
l10n daemon script
3acce7dd3f GIT_SILENT made messages (after extraction) 2018-08-01 03:37:04 +02:00
l10n daemon script
10daa33f51 GIT_SILENT made messages (after extraction) 2018-07-31 03:35:01 +02:00
Nicolas Fella
e0fde16525 Added runcommandplugin widget
Summary: A simple widget to execute commands from android desktop

Test Plan:
Add the widget and execute commands from it.
By default, the selected device is the first device in the device list.
The selected device can be changed via the widget title.
If there is no commands, the widget show an empty list
If there is no connected device, show the message located in @string/unreachable_description

Reviewers: albertvaka, nicolasfella, #kde_connect

Reviewed By: albertvaka

Subscribers: kdeconnect, nicolasfella

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D12507
2018-07-30 18:15:25 +02:00
Lennart Siefke
5c4c402f23 Lessen indent before "Send files" in main activity
Summary:
The "Send files" button in main acitivity if connected has a larger
indent then the other buttons. This happens on most pixel densities.
Reason was the larger icon the "Send files" button has.

With this patch, the icons all have the same pixel dimensions. It
solves the too large indent.

Screenshot (Because of translation, "Send files" is translated to
"Dateien senden"):

{F6136062}

Reviewers: #kde_connect, apol, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, apol, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D14344
2018-07-30 00:34:07 +02:00
l10n daemon script
e914c1625b GIT_SILENT made messages (after extraction) 2018-07-29 03:29:43 +02:00
Nicolas Fella
f81cf3bf36 Don't draw list dividers
Summary:
Depends on D12289

IMHO it looks sleeker without, especially the dividers on top and bottom and before the section headers are disturbing. Since the content of each list item is just one line of text its also not really needed to separate things

Test Plan:
Before:
{F5810802}

After:
{F5810803}

Reviewers: #kde_connect, #vdg, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect, apol, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D12290
2018-07-27 23:40:51 +02:00
Nicolas Fella
f9c30148b7 System volume plugin Android
Summary:
Add a slider for every sink to the MPRIS Activity. The sink can be muted by clicking on the volume icon.
.
See D7992
BUG: 377319

Reviewers: #kde_connect, mtijink, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, MatMaul, kdeconnect, Murz, mtijink, #kde_connect

Tags: #kde_connect

Maniphest Tasks: T4659

Differential Revision: https://phabricator.kde.org/D7993
2018-07-27 09:20:18 +02:00
Nicolas Fella
2a7535053a Add find remote device plugin
Summary: Counterpart for D11773

Test Plan: Apply D11773, hit Ring, hear sound. Phone to phone works too

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect, kossebau, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D12344
2018-07-27 08:02:16 +02:00
Nicolas Fella
57fc625af9 Use kdeconnect:// url to trigger commands
Summary:
Make it possible to trigger commands by opening an URI like kdeconnect://runcommand/<deviceid>/<commandid>
Makes it possible to trigger commands from NFC tags.
To ease the setup the url can be added to the clipboard

Test Plan:
Long-press a command entry
Select Copy URL to clipboard
Write into NFC tag or use kdeconnect-handler to trigger url
See command executing

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, apol, kdeconnect, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D13447
2018-07-27 07:57:02 +02:00
Nicolas Fella
7ab7222f7f Fix missing string 2018-07-27 07:53:10 +02:00
Nicolas Fella
3e05b70803 Support MPRIS stop
Summary:
Fixes T9070

{F5950736}

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect, #kde_connect

Tags: #kde_connect

Maniphest Tasks: T9070

Differential Revision: https://phabricator.kde.org/D13709
2018-07-27 07:47:45 +02:00
Nicolas Fella
d83091faf8 Give clearer names
Reviewers: #kde_connect, apol

Reviewed By: #kde_connect, apol

Subscribers: kdeconnect, apol, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D12217
2018-07-27 07:46:34 +02:00
Albert Vaca
e1330206ce No need to specify buildtools version anymore
According to https://developer.android.com/studio/releases/build-tools
2018-07-26 19:50:40 +02:00
Albert Vaca
266dd80ffa Bump gradle plugin version 2018-07-26 19:17:36 +02:00
l10n daemon script
3a33550391 GIT_SILENT made messages (after extraction) 2018-07-25 03:33:05 +02:00
Chansol Yang
212069c425 Make remote input sensitivity consistant across device DPIs
Summary:
KDEConnect's Remote Input feature does not take display DPI into account, resulting in inconsistent mouse sensitivities for devices with different DPIs.
This revision aims to fix that by dividing the mouse delta with the relative DPI of the current device. By doing so, the same amount of finger movement should produce the same amount of cursor movement, regardless of the device's DPI.

Addresses the following bug:
BUG: 391029

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: sredman, nicolasfella, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D13925
2018-07-21 13:32:30 +02:00
l10n daemon script
4f3f24dc9f GIT_SILENT made messages (after extraction) 2018-07-19 03:29:03 +02:00
l10n daemon script
cf25d87360 GIT_SILENT made messages (after extraction) 2018-07-10 03:28:29 +02:00
l10n daemon script
d26b7047d1 GIT_SILENT made messages (after extraction) 2018-07-01 03:37:36 +02:00
l10n daemon script
814cc5c9d6 GIT_SILENT made messages (after extraction) 2018-06-30 03:36:54 +02:00
l10n daemon script
61c98769ab GIT_SILENT made messages (after extraction) 2018-06-28 03:33:09 +02:00
l10n daemon script
f18f2963a2 GIT_SILENT made messages (after extraction) 2018-06-25 03:20:19 +02:00
l10n daemon script
6f6e59f76f GIT_SILENT Add new file (after extraction) 2018-06-18 03:34:09 +02:00
l10n daemon script
f132c297e4 GIT_SILENT made messages (after extraction) 2018-06-18 03:34:08 +02:00
l10n daemon script
8a6c4f4f35 GIT_SILENT made messages (after extraction) 2018-06-17 03:29:18 +02:00
l10n daemon script
32aba02421 GIT_SILENT made messages (after extraction) 2018-06-16 03:34:23 +02:00
l10n daemon script
9adf7856d6 GIT_SILENT made messages (after extraction) 2018-06-13 03:38:33 +02:00
l10n daemon script
d1eba7ae67 GIT_SILENT made messages (after extraction) 2018-06-11 03:32:49 +02:00
l10n daemon script
e3a11ab1a8 GIT_SILENT made messages (after extraction) 2018-06-10 03:27:34 +02:00
Simon Redman
7cfb216844 (WIP) Upgrade Telephony plugin to read SMS history (Android side)
Summary: Add support for requesting all conversations and sending the reply

Test Plan:
- Build this diff
- Build the corresponding KDE-side diff (D11854)
- Put a breakpoint in handleRequestConversations somewhere where you can inspect one or more Message objects
- Use DBus to poke /modules/kdeconnect/devices/<deviceID>/telephony.requestAllConversations()
- Verify that the constructed Message is one you sent or received and that it is the most recent in the corresponding conversation

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: MatMaul, kdeconnect, nicolasfella, mtijink, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D11698
2018-06-09 13:44:15 -06:00
Simon Redman
3b19b6ebe2 Add contacts-reading plugin (Android side)
Summary:
Add a plugin to the KDE Connect Android application which supports reading the Android contacts databases and sending the requested data as vcards
 - Android automatically has support for exporting vcards with all the fields you would expect (phone, email, photo, etc.)
  - I add two custom fields, one for the modification timestamp and another for the NAME_RAW_CONTACT_ID so that the contacts can be correlated back to the Android database

This does not (yet) support writing contacts back to the phone nor does it automatically listen to the phone's contacts database to change

BUG: 367999

Test Plan:
Connect the device to the desktop and verify that vcards are created in QStandardPaths::GenericDataLocation / kpeoplevcard". On my system this is ~/.local/share/kpeoplevcard

Create a dummy contact on the device and verify it is synchronized (Currently not automatic, have to disconnect and reconnect or use dbus)

Modify the dummy contact and verify the modifications are synchronized (Currently not automatic, have to disconnect and reconnect or use dbus)

Delete the dummy contact and verify the deletion is synchronized (Currently not automatic, have to disconnect and reconnect or use dbus)

Reviewers: #kde_connect, mtijink, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: MatMaul, philipc, kdeconnect, nicolasfella, andyholmes, mtijink

Tags: #kde_connect

Maniphest Tasks: T8283

Differential Revision: https://phabricator.kde.org/D9690
2018-06-07 21:04:43 -06:00
l10n daemon script
0dc424e7da GIT_SILENT made messages (after extraction) 2018-06-08 03:43:03 +02:00
Albert Vaca
25fe61f376 Bump version for Beta release 2018-06-07 02:32:00 +02:00
Nicolas Fella
66b8453ba1 Bump spongycastle version
Test Plan: reinstall, pair, ping

Reviewers: #kde_connect, sredman

Reviewed By: sredman

Subscribers: albertvaka, sredman, kdeconnect, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D13196
2018-06-07 00:03:05 +02:00
Nicolas Fella
4afabef60b Remove includes 2018-06-03 15:30:52 +02:00
Nicolas Fella
3b7f1ff88a Give filetransfer an own NotificationChannel 2018-06-03 15:18:29 +02:00
l10n daemon script
d8e428a488 GIT_SILENT made messages (after extraction) 2018-06-01 03:29:41 +02:00
Albert Vaca
c1d73427ef Separate group also for the persistent notification
Without this, when receiving a new notification on phones with ambient
display the notification shown there  is the persistent notification
instead of the new notification received.
2018-05-30 22:57:09 +02:00
Albert Vaca
29aebe0888 Put the media notification on a separate group
So it's not collapsed when there are more KDE Connect notifications
2018-05-30 22:50:25 +02:00
l10n daemon script
8cc908edb0 GIT_SILENT made messages (after extraction) 2018-05-29 03:32:36 +02:00
Albert Vaca
6fc4764439 Bump version to release in Beta 2018-05-21 17:51:55 +02:00
Nicolas Fella
3cdbba5f76 Set importance of persistent channel to min 2018-05-21 17:50:24 +02:00
Albert Vaca
9059402231 Bump version to release in beta 2018-05-20 23:41:56 +02:00
Albert Vaca
ccded770d3 Play Store will require API level 26 starting September 2018-05-20 23:41:56 +02:00
Albert Vaca
b282d3a7d0 Revert "Remove legacy ciphers now that we don't support API<16"
This reverts commit f330053015.
2018-05-20 23:35:38 +02:00
Albert Vaca
ebf63dd294 Migrate to Oreo and drop support for APIs < 16
Summary:
- Add a foreground notification to the background service
- Add channel to notifications.
- Remove unneeded permission
- Remove legacy ciphers now that we don't support API<16

Reviewers: #kde_connect

Subscribers: mtijink, nicolasfella, albertvaka, apol, kdeconnect, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D12881
2018-05-20 23:32:08 +02:00
Albert Vaca
e617daf356 Migrated MediaStyle 2018-05-20 23:32:08 +02:00
Albert Vaca
f234b79486 Now translatable 2018-05-20 23:32:08 +02:00
Albert Vaca
a7a5beb7e8 Added a separate channel so notification in Oreo can be hidden 2018-05-20 23:32:08 +02:00
Albert Vaca
f330053015 Remove legacy ciphers now that we don't support API<16 2018-05-20 23:32:08 +02:00
Albert Vaca
46ad1f07ce Remove unneeded permission 2018-05-20 23:32:08 +02:00
Albert Vaca
8f2ecbc7e6 New appcompat changes 2018-05-20 23:32:08 +02:00
Nicolas Fella
73bf3e6fa1 Add channel to notifications.
Summary:
Oreo requires that each notification has a channel assigned. This patch uses a common channel for all. Individual channels for different notifications (Notifications plugin, pairing notifications, share plugin) could be done, but
since in our case notifications are not a critical part of the UX it does not seem necessary to me. Setting the channel on NotificationCompat.Builder requires version 26 of the support library, the implications of this were
discussed in D8966.

Reviewers: #kde_connect

Subscribers: mtijink, albertvaka, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D9514
2018-05-20 23:32:08 +02:00
Nicolas Fella
050081e4c8 Fix build 2018-05-20 23:32:08 +02:00
Matthijs Tijink
f319e402f0 Add a foreground notification to the background service
Summary:
This way, the user always knows that KDE Connect is running (and what devices are connected). This is a requirement in Android Oreo.

Implements task T6218.

Reviewers: #kde_connect, nicolasfella

Subscribers: apol, albertvaka, nicolasfella

Differential Revision: https://phabricator.kde.org/D8966
2018-05-20 23:32:08 +02:00
l10n daemon script
e8418c171f GIT_SILENT made messages (after extraction) 2018-05-19 03:54:48 +02:00
l10n daemon script
e371119049 GIT_SILENT made messages (after extraction) 2018-05-18 03:36:49 +02:00
Albert Vaca
85c51ee720 Disable crashing plugin and bump version to release
This plugin was crashing for lots of users with Android 4.X
2018-05-16 17:11:36 +02:00
l10n daemon script
3dbe956b30 GIT_SILENT made messages (after extraction) 2018-05-16 03:32:25 +02:00
Albert Vaca
b1dcc3c40f Bumped version to release 2018-05-15 00:55:28 +02:00
Albert Vaca
f5254e504d Hopefully fixed crash in Android 8.1 2018-05-15 00:55:28 +02:00
Albert Vaca
55a0ad657e Bumped version to release 2018-05-15 00:55:28 +02:00
l10n daemon script
8add0c4fbe GIT_SILENT made messages (after extraction) 2018-05-14 03:35:55 +02:00
l10n daemon script
187e47aec2 GIT_SILENT made messages (after extraction) 2018-05-13 03:25:31 +02:00
l10n daemon script
27b390a9bd GIT_SILENT made messages (after extraction) 2018-05-12 03:31:41 +02:00
Nicolas Fella
9bf5a9c489 Fix SharePlugin devices list
Summary: D12212 broke the devices list in the SharePlugin. No devices was shown even when there were devices available.

Test Plan: Open up share devices list with 0/1 devices available

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D12334
2018-05-11 21:18:58 +02:00
l10n daemon script
a907c02ecf GIT_SILENT made messages (after extraction) 2018-05-11 03:42:17 +02:00
Nicolas Fella
4deeb5e061 Send Runcommand setup package from phone
Summary: Also remove some leftover code from the prevoius attempt

Test Plan: Open command list, click Floating Action Button, look for KCM window on desktop.

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D12332
2018-05-10 19:47:15 +02:00
Nicolas Fella
ff2354a7a6 Update gitignore 2018-05-10 19:01:32 +02:00
Yoann Laissus
5463be96a4 Add detection of Android TV devices with a proper icon
KDE app :  https://phabricator.kde.org/D12802

Test Plan: Tested with an Android TV device (Nvidia Shield)

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: tfella, nicolasfella, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D12803
2018-05-10 17:02:45 +02:00
Nicolas Fella
0c6b584d57 [WIP] Add MprisReceiverPlugin (Android)
Summary:
Exposes media sessions to the desktop for use with the MprisRemote plugin and the app.
Still contains some Logs, will remove them when its time.

Test Plan:
What works:
- Displaying and updating title, artist and album.
- PlayPause, next and previous
- Playing state
- multiple sessions

What doesn't work:
- volume control
- length and position
- Album art
- can* abilities are not exposed, e.g. canGoNext, not sure if possible at all

Reviewers: #kde_connect, mtijink

Reviewed By: #kde_connect, mtijink

Subscribers: kdeconnect, mtijink, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D12559
2018-05-09 15:30:06 +02:00
Nicolas Fella
e712c69e15 Use lambdas where possible
Summary: Let Android Studio replace anonymous types with lambdas. No manual code change.

Test Plan: Compile and superficial behaviour test

Reviewers: #kde_connect, philipc

Reviewed By: #kde_connect, philipc

Subscribers: philipc, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D12229
2018-05-09 14:03:08 +02:00
l10n daemon script
7536eb7427 GIT_SILENT made messages (after extraction) 2018-05-05 03:26:35 +02:00
l10n daemon script
04e5f6b451 GIT_SILENT made messages (after extraction) 2018-05-04 03:29:32 +02:00
l10n daemon script
f75bf2129a GIT_SILENT made messages (after extraction) 2018-05-03 03:36:08 +02:00
Albert Vaca
acd98da83a Upgraded gradle 2018-05-01 19:30:32 +02:00
Matthijs Tijink
d6c3803ea2 Add assertions and checks to album art fetch code
Summary:
Add a couple of assertions and checks to the album art fetch code. Hopefully fixes bug https://bugs.kde.org/show_bug.cgi?id=393274, or otherwise at least gives a bit more information.

BUG 393274

Test Plan: Fixes the bug, according to the reporter.

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D12618
2018-05-01 19:27:24 +02:00
Albert Vaca
d688621f27 Set hardcoded 'Dark theme' switch to be translatable 2018-05-01 19:09:31 +02:00
l10n daemon script
774759746d GIT_SILENT made messages (after extraction) 2018-04-30 03:34:10 +02:00
Nicolas Fella
d65b3153ae Bump gradle version
Reviewers: #kde_connect, philipc

Reviewed By: #kde_connect, philipc

Subscribers: philipc, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D12501
2018-04-27 21:23:07 +02:00
Nicolas Fella
8a2ea77030 Add marginEnd for RTL layouts
Reviewers: #kde_connect, mtijink

Reviewed By: #kde_connect, mtijink

Subscribers: mtijink, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D12345
2018-04-24 19:58:48 +02:00
Philip Cohn-Cort
a1f1693d0b Add a dark theme
Summary:
BUG: 375376

This revision adds dark mode support to the app ( T7044 ). It does so by injecting
theme information into each activity, and making sure that all Views
define their colors by reference to theme attributes.

In order to make this work, all of the buttons with images (like the list
of available devices) now are tinted according to the theme.

While all versions of android support the theme, only devices running
Android ICS or higher will have a toggle button in the drawer.

Test Plan: Open all the screens, both with and without the dark theme on.

Reviewers: #kde_connect, mtijink, #vdg, nicolasfella

Reviewed By: #kde_connect, mtijink, nicolasfella

Subscribers: apol, ngraham, nicolasfella, mtijink

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D11694
2018-04-23 18:35:43 +02:00
l10n daemon script
b228fb2377 GIT_SILENT made messages (after extraction) 2018-04-23 03:30:04 +02:00
Nicolas Fella
bc330018e1 Rename list layout
Summary: Give it a proper name

Reviewers: #kde_connect, mtijink

Reviewed By: #kde_connect, mtijink

Subscribers: mtijink, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D12289
2018-04-17 20:50:23 +02:00
Nicolas Fella
9837c89f35 Hide Available devices section if no devices are available
Summary:
Before:
{F5807970}

After:
{F5807971}

Reviewers: #kde_connect, mtijink

Reviewed By: #kde_connect, mtijink

Subscribers: mtijink, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D12212
2018-04-17 20:48:08 +02:00
Simon Redman
4d2357f016 Allow JSONObject in a NetworkPacket
Summary: Allow a mapping of fields to be a field of a NetworkPacket

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D11870
2018-04-17 19:03:46 +02:00
Karl Heinz
d4d9e8ba6d Update DeviceHelper.java 2018-04-16 16:55:31 +02:00
Matthijs Tijink
2cd7d4b7a9 Fix default Find My Phone ringtone
Summary:
Previously, if the user hadn't set a ringtone, the code raised an exception (because an empty string isn't an uri). Thus, no sound was played.

This fixes it.

BUG: 392853

Test Plan: Without having set a ringtone, it works. Otherwise, it works too.

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: nicolasfella, sredman, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D12070
2018-04-09 19:00:55 +02:00
l10n daemon script
8bbd3f55b1 GIT_SILENT made messages (after extraction) 2018-04-09 03:23:13 +02:00
Albert Vaca
1bf96454cf required is not part of the uses-permission tag
BUG: 392856
2018-04-08 17:20:48 +02:00
l10n daemon script
6883ed2847 GIT_SILENT made messages (after extraction) 2018-04-07 03:23:18 +02:00
l10n daemon script
91be51ea5a GIT_SILENT made messages (after extraction) 2018-04-06 03:31:04 +02:00
l10n daemon script
3bb54816ed GIT_SILENT made messages (after extraction) 2018-04-04 03:26:25 +02:00
l10n daemon script
810f53449a GIT_SILENT made messages (after extraction) 2018-04-03 03:28:03 +02:00
l10n daemon script
efa4668448 GIT_SILENT made messages (after extraction) 2018-04-01 03:29:58 +02:00
l10n daemon script
b70370005b GIT_SILENT made messages (after extraction) 2018-03-31 03:22:14 +02:00
l10n daemon script
9631cacb69 GIT_SILENT made messages (after extraction) 2018-03-30 03:25:50 +02:00
Matthijs Tijink
94ef1294c5 Add share action button to received file notification
Summary: You can share the just-received file. It doesn't work with a custom download directory (just like opening such files doesn't work yet). It also won't close the notification once shared.

Test Plan: Sharing to other apps works.

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D11680
2018-03-28 22:58:27 +02:00
Matthijs Tijink
7c8301a7cc Disables album art download on metered connections (e.g. 4G)
Summary: Won't typically be a problem (you're usually connected via wifi with KDE Connect anyway), but shouldn't hurt.

Test Plan: Works with the bluetooth backend on 4G (i.e. no album art is downloaded). Still downloads album art otherwise, as expected.

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: #kde_connect

Differential Revision: https://phabricator.kde.org/D11682
2018-03-27 21:23:08 +02:00
Albert Vaca
64fd08f3ac Bump version to release 2018-03-27 20:34:56 +02:00
Albert Vaca
e67e43efa1 Revert "Synchronize everything to see if this fixes a crash in 8.1"
This reverts commit cf808c03ba.
and commit 3d4bf643d4.
2018-03-27 20:34:56 +02:00
Philip Cohn-Cort
fda08929af Add method documentation to LanLinkProvider.java
Summary:
This adds some simple explanation to the `identityPacketReceived` and
`addLink` methods.

Test Plan: N/A

Reviewers: #kde_connect, mtijink

Reviewed By: #kde_connect, mtijink

Differential Revision: https://phabricator.kde.org/D11672
2018-03-26 13:54:04 +02:00
Albert Vaca
2cb025e368 Bump version to release 2018-03-25 22:01:06 +02:00
Albert Vaca
cf808c03ba Add timeout so handshake doesn't block forever 2018-03-25 22:00:39 +02:00
Albert Vaca
2b52cd1547 Bumped version to release 2018-03-25 20:42:52 +02:00
Albert Vaca
3d4bf643d4 Synchronize everything to see if this fixes a crash in 8.1 2018-03-25 20:33:19 +02:00
Matthijs Tijink
00b6677aa4 When receiving a file Android, show the image in the notification
Summary: The image is shown, similar to when you take a screenshot.

Test Plan: Works great! Doesn't crash for non-images.

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: #kde_connect

Differential Revision: https://phabricator.kde.org/D11679
2018-03-25 14:51:12 +02:00
Matthijs Tijink
bf0cab9ef2 Support file url album art - Android
Summary: If the album art is a file url, the code will ask the remote device to transfer that file. It's then stored in the album art cache.

Test Plan: Works fine for me, even when quickly skipping songs.

Reviewers: #kde_connect, nicolasfella, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, nicolasfella, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D11018
2018-03-25 13:41:40 +02:00
Matthijs Tijink
1c3e6f84a7 Add album art to media notification and lock screen
Summary:
Adds the album art to the media notification and lock screen.

How it looks on my phone (disregard the somewhat weird look, that's just the weird UI my phone vendor uses):
{F5728066}

Google images shows how it'll look on other phones (this one includes the lock screen image):
{F5728069}

And Android Oreo automatically colors the notification based on the album art color (untested, but should work):
{F5728070}

Test Plan: Changes are minor and it works fine for me.

Reviewers: #kde_connect, nicolasfella, albertvaka

Reviewed By: #kde_connect, nicolasfella, albertvaka

Subscribers: nicolasfella

Differential Revision: https://phabricator.kde.org/D10798
2018-03-25 13:39:17 +02:00
Matthijs Tijink
c8dbbb1fe8 Show connected devices on top
Summary: After that, available devices and then remembered devices.

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: nicolasfella, #kde_connect

Differential Revision: https://phabricator.kde.org/D11641
2018-03-24 21:55:53 +01:00
Philip Cohn-Cort
a17b75264d Use simpler syntax for Google Maven repository
Summary: This follows the guidelines described at https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html#apply_plugin

Test Plan: Try to build with this change (`./gradlew assembleRelease` or similar)

Reviewers: #kde_connect, mtijink

Reviewed By: #kde_connect, mtijink

Differential Revision: https://phabricator.kde.org/D11645
2018-03-24 20:23:11 +01:00
Philip Cohn-Cort
7276e60aa4 Only make one request for list of MPRIS players during plugin creation
Summary:
MPrisPlugin previously made two calls to `requestPlayerList()` in its
`onCreate()` method. This change deletes the first of those, so that
only one network packet is sent and received.

Test Plan:
Pair a new device, confirm that only one request for media players is
received by remote client.

Reviewers: #kde_connect, mtijink

Reviewed By: #kde_connect, mtijink

Differential Revision: https://phabricator.kde.org/D11648
2018-03-24 18:38:23 +01:00
Matthijs Tijink
7877d2803c Fix blurry rasterized icons
Summary:
The vector icons were rastizered for older Android versions, but these were on the small side. This fixes the size.

BUG: 392061

Test Plan: The icons aren't blurry anymore on Android 4.2.

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: #kde_connect

Differential Revision: https://phabricator.kde.org/D11644
2018-03-24 18:35:07 +01:00
Matthijs Tijink
b1c4b6e1e9 Show the same mpris player in the notification as in the app
Summary:
So switching (currently playing) players in the app will also switch the
notification.

Test Plan: Tested with two players playing at the same time, and switching between them.

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: #kde_connect

Differential Revision: https://phabricator.kde.org/D11647
2018-03-24 18:34:35 +01:00
Matthijs Tijink
eb801fa535 Don't show flash of pairing buttons when opening a device
Summary:
The buttons are now hidden, and only showed once we know that the device
is unpaired.

Test Plan: Pairing, pairing request and opening a device still work.

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: #kde_connect

Differential Revision: https://phabricator.kde.org/D11627
2018-03-24 11:07:46 +01:00
Nicolas Fella
ac4aaf1b39 Make MPRIS Activity singletop 2018-03-23 22:20:13 +01:00
Matthijs Tijink
9840a39992 Always show/hide both next and previous buttons
Summary: As @kossebau mentioned, a disappearing "previous" button is not really great, since you'll likely press "next". This diff makes sure that when you can press previous and/or next, both buttons are shown (potentially disabled).

Test Plan: Works in all combinations of enabled/disabled for both buttons

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kossebau, #kde_connect

Differential Revision: https://phabricator.kde.org/D11437
2018-03-23 19:18:41 +01:00
l10n daemon script
e73c18d2e3 GIT_SILENT made messages (after extraction) 2018-03-17 03:13:39 +01:00
283 changed files with 20369 additions and 7389 deletions

4
.gitignore vendored
View File

@@ -8,8 +8,8 @@ build/
target/
classes/
gradle
gradlew
gradlew.bat
*.iml
*.keystore
!debug.keystore
.directory
GPUCache/

View File

@@ -0,0 +1,32 @@
## Summary
Add a description of your merge request here. What does your new feature do?
Describe in detail what your patch does, why it does that, etc. Merge requests
without an adequate description are difficult to review, and probably we will
ask for more information!
Please also keep this description up-to-date with any discussion that takes
place so that reviewers can understand your intent. This is especially
important if they didn't participate in the discussion.
Make sure to remove this comment when you are done.
Fill in the following lines as appropriate to automatically close GitLab issue or Bugzilla bugs
Fixes <!-- Gitlab Issue Number -->
BUG: <!-- bugzilla bug -->
## Test Plan
### Before:
Add a quick discription of the (buggy) behavior of the app before this fix
This section does not need to be too detailed because it should mostly be
covered by the bug report and the summary. Just share the steps for how to
reproduce the bug.
### After:
Add a more detailed description of how to exercise the new behavior, showing
that the bug has been fixed. If any other behavior has been changed, share
the steps to verify that the new behavior doesn't have any regressions.
/label ~bugfix

View File

@@ -0,0 +1,27 @@
## Summary
Add a description of your merge request here. What does your new feature do?
Describe in detail what your patch does, why it does that, etc. Merge requests
without an adequate description are difficult to review, and probably we will
ask for more information!
Please also keep this description up-to-date with any discussion that takes
place so that reviewers can understand your intent. This is especially
important if they didn't participate in the discussion.
Make sure to remove this comment when you are done.
Implements <!-- GitLab Issue Number -->
## Test Plan
Add a description of how to test your patch here. Tell us how to use the new
feature and what we should be seeing. If applicable, it is great to include
screenshots, either here or in the Summary section.
It can be difficult to understand a new feature from the text description in
the summary, so put enough detail here that so that we can understand how to run
the new feature and we can play with it ourselves to understand it.
/label ~feature

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.kde.kdeconnect_tp"
android:versionCode="1800"
android:versionName="1.8.0">
android:versionCode="11320"
android:versionName="1.13.2">
<supports-screens
android:anyDensity="true"
@@ -17,46 +17,41 @@
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.INTERNET" />
<!--<uses-permission android:name="android.permission.BLUETOOTH" />-->
<!--<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />-->
<!-- <uses-permission android:name="android.permission.BLUETOOTH" /> -->
<!-- <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<uses-permission android:name="android.permission.BATTERY_STATS" />
<uses-permission
android:name="android.permission.READ_PHONE_STATE"
android:required="false" />
<uses-permission
android:name="android.permission.RECEIVE_SMS"
android:required="false" />
<uses-permission
android:name="android.permission.SEND_SMS"
android:required="false" />
<uses-permission
android:name="android.permission.READ_SMS"
android:required="false" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.READ_CALL_LOG"/>
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<application
android:allowBackup="true"
android:icon="@drawable/icon"
android:label="KDE Connect"
android:supportsRtl="true"
android:allowBackup="false"
android:networkSecurityConfig="@xml/network_security_config"
android:theme="@style/KdeConnectTheme">
<service
android:name="org.kde.kdeconnect.BackgroundService"
android:enabled="true" />
<service
android:name="org.kde.kdeconnect.Plugins.RemoteKeyboardPlugin.RemoteKeyboardService"
android:label="KDE Connect Remote Keyboard"
android:label="@string/remote_keyboard_service"
android:permission="android.permission.BIND_INPUT_METHOD">
<intent-filter>
<action android:name="android.view.InputMethod" />
</intent-filter>
<meta-data
android:name="android.view.im"
android:resource="@xml/remotekeyboardplugin_method" />
@@ -68,12 +63,12 @@
android:theme="@style/KdeConnectTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="org.kde.kdeconnect.UserInterface.SettingsActivity"
android:name="org.kde.kdeconnect.UserInterface.PluginSettingsActivity"
android:label="@string/device_menu_plugins"
android:parentActivityName="org.kde.kdeconnect.UserInterface.MainActivity">
<meta-data
@@ -96,23 +91,6 @@
android:name="android.support.PARENT_ACTIVITY"
android:value="org.kde.kdeconnect.UserInterface.MainActivity" />
</activity>
<activity
android:name="org.kde.kdeconnect.UserInterface.PluginSettingsActivity"
android:label="@string/device_menu_plugins"
android:parentActivityName="org.kde.kdeconnect.UserInterface.SettingsActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="org.kde.kdeconnect.UserInterface.SettingsActivity" />
</activity>
<activity
android:name="org.kde.kdeconnect.Plugins.SharePlugin.ShareSettingsActivity"
android:label="@string/device_menu_plugins"
android:parentActivityName="org.kde.kdeconnect.UserInterface.SettingsActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="org.kde.kdeconnect.Plugins.SharePlugin.ShareSettingsActivity" />
</activity>
<receiver android:name="org.kde.kdeconnect.KdeConnectBroadcastReceiver">
<intent-filter>
@@ -145,12 +123,14 @@
<activity
android:name="org.kde.kdeconnect.Plugins.MprisPlugin.MprisActivity"
android:label="@string/remote_control"
android:label="@string/open_mpris_controls"
android:launchMode="singleTop"
android:parentActivityName="org.kde.kdeconnect.UserInterface.MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="org.kde.kdeconnect.UserInterface.MainActivity" />
</activity>
<receiver android:name="org.kde.kdeconnect.Plugins.MprisPlugin.MprisMediaNotificationReceiver">
<intent-filter>
<action android:name="android.intent.action.MEDIA_BUTTON" />
@@ -159,16 +139,66 @@
<activity
android:name="org.kde.kdeconnect.Plugins.RunCommandPlugin.RunCommandActivity"
android:label="@string/remote_control"
android:label="@string/pref_plugin_runcommand"
android:parentActivityName="org.kde.kdeconnect.UserInterface.MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="org.kde.kdeconnect.UserInterface.MainActivity" />
</activity>
<activity
android:name="org.kde.kdeconnect.Plugins.RunCommandPlugin.RunCommandWidgetDeviceSelector"
android:excludeFromRecents="true"
android:label="@string/pref_plugin_runcommand"
android:launchMode="singleTask"
android:noHistory="true"
android:screenOrientation="user"
android:theme="@style/Theme.AppCompat.Light.Dialog" />
<service
android:name="org.kde.kdeconnect.Plugins.RunCommandPlugin.RunCommandWidgetDataProviderService"
android:exported="false"
android:permission="android.permission.BIND_REMOTEVIEWS" />
<receiver
android:name="org.kde.kdeconnect.Plugins.RunCommandPlugin.RunCommandWidget"
android:label="@string/pref_plugin_runcommand">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<intent-filter>
<action android:name="RUN_COMMAND_ACTION" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/remotecommandplugin_widget" />
</receiver>
<activity android:name="org.kde.kdeconnect.Plugins.RunCommandPlugin.RunCommandUrlActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="runcommand"
android:scheme="kdeconnect" />
</intent-filter>
</activity>
<activity
android:name="org.kde.kdeconnect.Plugins.MousePadPlugin.MousePadActivity"
android:label="@string/pref_plugin_mousepad"
android:parentActivityName="org.kde.kdeconnect.UserInterface.MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="org.kde.kdeconnect.UserInterface.MainActivity" />
</activity>
<activity
android:name="org.kde.kdeconnect.Plugins.PresenterPlugin.PresenterActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/remote_control"
android:label="@string/pref_plugin_presenter"
android:parentActivityName="org.kde.kdeconnect.UserInterface.MainActivity"
android:windowSoftInputMode="stateHidden|adjustResize">
<meta-data
@@ -198,8 +228,14 @@
android:value="org.kde.kdeconnect.Plugins.SharePlugin.ShareChooserTargetService" />
</activity>
<receiver android:name="org.kde.kdeconnect.Plugins.SharePlugin.ShareBroadcastReceiver">
<intent-filter>
<action android:name="org.kde.kdeconnect.Plugins.SharePlugin.CancelShare" />
</intent-filter>
</receiver>
<provider
android:name="android.support.v4.content.FileProvider"
android:name="androidx.core.content.FileProvider"
android:authorities="org.kde.kdeconnect_tp.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
@@ -231,8 +267,8 @@
android:name="android.support.PARENT_ACTIVITY"
android:value="org.kde.kdeconnect.UserInterface.PluginSettingsActivity" />
</activity>
<activity android:name="org.kde.kdeconnect.Plugins.PhotoPlugin.PhotoActivity" />
</application>
</manifest>
</manifest>

View File

@@ -21,7 +21,13 @@ You can install this app from the [Play Store](https://play.google.com/store/app
## Contributing
To contribute patches, use [KDE Connect's Phabricator](https://phabricator.kde.org/project/profile/159/). There you can also find a task list with stuff to do, and links to other relevant resources. It is a good idea to also subscribe to the [KDE Connect mailing list](https://mail.kde.org/mailman/listinfo/kdeconnect).
A lot of useful information, including how to get started working on KDE Connect and how to connect with the current developers, is on our [KDE Community Wiki page](https://community.kde.org/KDEConnect)
To contribute patches, use [KDE Connect's Gitlab](https://invent.kde.org/kde/kdeconnect-android/).
On Gitlab (as well as on our [old Phabricator](https://phabricator.kde.org/tag/kde_connect/)) you can find a task list with stuff to do and links to other relevant resources.
It is a good idea to also subscribe to the [KDE Connect mailing list](https://mail.kde.org/mailman/listinfo/kdeconnect).
Please know that all translations for all KDE apps are handled by the [localization team](https://l10n.kde.org/). If you would like to submit a translation, that should be done by working with the proper team for that language.
## License
[GNU GPL v2](https://www.gnu.org/licenses/gpl-2.0.html) and [GNU GPL v3](https://www.gnu.org/licenses/gpl-3.0.html)

View File

@@ -15,9 +15,13 @@ function export_pot_file # First parameter will be the path of the pot file we h
function import_po_files # First parameter will be a path that will contain several .po files with the format LANG.po
{
podir=$1
# Android doesn't support languages with an @
find "$podir" -type f -name "*@*.po" -delete
# drop obsolete messages, as Babel cannot parse them -- see:
# https://github.com/python-babel/babel/issues/206
# https://github.com/python-babel/babel/issues/566
find "$podir" -name '*.po' -exec msgattrib --no-obsolete -o {} {} \;
ANSI_COLORS_DISABLED=1 a2po import --ignore-fuzzy --android res/ --gettext $podir
#Android doesn't support languages with an @
rm -r res/values-*@*
}

View File

@@ -1,37 +1,29 @@
apply plugin: 'com.android.application'
buildscript {
repositories {
jcenter()
maven {
url 'https://maven.google.com/'
name 'Google'
}
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'com.android.tools.build:gradle:3.4.2'
}
}
apply plugin: 'com.android.application'
android {
buildToolsVersion '26.0.2'
compileSdkVersion 25
compileSdkVersion 28
defaultConfig {
minSdkVersion 9
targetSdkVersion 25
//multiDexEnabled true
//testInstrumentationRunner "com.android.test.runner.MultiDexTestRunner"
minSdkVersion 14
targetSdkVersion 28
}
dexOptions {
javaMaxHeapSize "2g"
}
compileOptions {
// Use Java 1.7, requires minSdk 8
//SSHD requires mina when running on JDK < 7
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
sourceSets {
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
@@ -39,32 +31,37 @@ android {
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
androidTest {
test {
java.srcDirs = ['tests']
}
}
packagingOptions {
pickFirst "META-INF/DEPENDENCIES"
pickFirst "META-INF/LICENSE"
pickFirst "META-INF/NOTICE"
pickFirst "META-INF/BCKEY.SF"
pickFirst "META-INF/BCKEY.DSA"
pickFirst "META-INF/INDEX.LIST"
pickFirst "META-INF/io.netty.versions.properties"
merge "META-INF/DEPENDENCIES"
merge "META-INF/LICENSE"
merge "META-INF/NOTICE"
}
lintOptions {
abortOnError false
checkReleaseBuilds false
}
signingConfigs {
debug {
storeFile file("debug.keystore")
storePassword 'android'
keyAlias 'androiddebugkey'
keyPassword 'android'
}
}
buildTypes {
debug {
minifyEnabled false
useProguard false
signingConfig signingConfigs.debug
}
release { //keep on 'release', set to 'all' when testing to make sure proguard is not deleting important stuff
release { //keep on 'release' for faster builds, set to 'all' when testing to make sure proguard is not deleting important stuff
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
@@ -73,25 +70,39 @@ dependencies {
repositories {
jcenter()
google()
/* Needed for org.apache.sshd debugging
maven {
url 'https://maven.google.com/'
name 'Google'
url "https://jitpack.io"
}
*/
}
implementation 'com.android.support:support-v4:25.4.0'
implementation 'com.android.support:appcompat-v7:25.4.0'
implementation 'com.android.support:design:25.4.0'
implementation 'androidx.media:media:1.1.0'
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.preference:preference:1.1.0'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'com.google.android.material:material:1.0.0'
implementation 'com.jakewharton:disklrucache:2.0.2' //For caching album art bitmaps
implementation 'com.jaredrummler:android-device-names:1.1.9' //To get a human-friendly device name
implementation 'org.apache.sshd:sshd-core:0.8.0' //0.9 seems to fail on Android 6 and 1.+ requires java.nio.file, which doesn't exist in Android
implementation 'org.apache.sshd:sshd-core:0.14.0'
implementation 'org.apache.mina:mina-core:2.0.19' //For some reason, makes sshd-core:0.14.0 work without NIO, which isn't available until Android 8+
implementation 'com.madgag.spongycastle:pkix:1.54.0.0' //For SSL certificate generation
//implementation('com.github.bright:slf4android:0.1.6') { transitive = true } // For org.apache.sshd debugging
implementation 'com.madgag.spongycastle:bcpkix-jdk15on:1.58.0.0' //For SSL certificate generation
implementation 'com.jakewharton:butterknife:10.0.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
implementation 'org.atteo.classindex:classindex:3.6'
annotationProcessor 'org.atteo.classindex:classindex:3.6'
// Testing
androidTestImplementation 'org.mockito:mockito-core:1.10.19'
androidTestImplementation 'com.google.dexmaker:dexmaker-mockito:1.1'// Because mockito has some problems with dex environment
androidTestImplementation 'org.skyscreamer:jsonassert:1.3.0'
testImplementation 'junit:junit:4.12'
testImplementation 'org.powermock:powermock-core:2.0.0'
testImplementation 'org.powermock:powermock-module-junit4:2.0.0'
testImplementation 'org.powermock:powermock-api-mockito2:2.0.0'
testImplementation 'org.mockito:mockito-core:2.23.0'
testImplementation 'org.skyscreamer:jsonassert:1.3.0'
}

BIN
debug.keystore Normal file

Binary file not shown.

2
gradle.properties Normal file
View File

@@ -0,0 +1,2 @@
android.enableJetifier=true
android.useAndroidX=true

BIN
gradle/wrapper/gradle-wrapper.jar vendored Normal file

Binary file not shown.

View File

@@ -0,0 +1,6 @@
#Wed May 01 14:24:13 CEST 2019
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip

160
gradlew vendored Executable file
View File

@@ -0,0 +1,160 @@
#!/usr/bin/env bash
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn ( ) {
echo "$*"
}
die ( ) {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
esac
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=$((i+1))
done
case $i in
(0) set -- ;;
(1) set -- "$args0" ;;
(2) set -- "$args0" "$args1" ;;
(3) set -- "$args0" "$args1" "$args2" ;;
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
function splitJvmOpts() {
JVM_OPTS=("$@")
}
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"

90
gradlew.bat vendored Normal file
View File

@@ -0,0 +1,90 @@
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto init
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:init
@rem Get command-line arguments, handling Windowz variants
if not "%OS%" == "Windows_NT" goto win9xME_args
if "%@eval[2+2]" == "4" goto 4NT_args
:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2
:win9xME_args_slurp
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
goto execute
:4NT_args
@rem Get arguments from the 4NT Shell from JP Software
set CMD_LINE_ARGS=%$
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega

7
proguard-rules.pro vendored
View File

@@ -35,5 +35,12 @@
# SSHd requires mina, and mina uses reflection so some classes would get deleted
-keep class org.apache.mina.** {*;}
-keep class org.apache.sshd.** {*;}
-keep class org.kde.kdeconnect.** {*;}
-dontwarn org.mockito.**
-dontwarn sun.reflect.**
-dontwarn android.test.**
-dontwarn java.lang.management.**
-dontwarn javax.**

Binary file not shown.

Before

Width:  |  Height:  |  Size: 469 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 686 B

After

Width:  |  Height:  |  Size: 469 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 343 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 313 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 347 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 163 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 462 B

After

Width:  |  Height:  |  Size: 313 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 308 B

After

Width:  |  Height:  |  Size: 238 B

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<inset
xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="?attr/dividerHorizontal"
android:insetLeft="16dp"
android:insetRight="16dp"/>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 552 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 439 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 304 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 936 B

After

Width:  |  Height:  |  Size: 552 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 409 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 608 B

After

Width:  |  Height:  |  Size: 428 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 931 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 433 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 537 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 931 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 578 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 576 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 813 B

View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<bitmap
xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/drawer_header"
android:gravity="center|clip_vertical|clip_horizontal"
/>

View File

@@ -1,6 +1,6 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:width="192dp"
android:height="192dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M7,10l5,5 5,-5z"/>
</vector>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:viewportWidth="24"
android:viewportHeight="24"
android:width="24dp"
android:height="24dp">
<path
android:pathData="M15.2 12A3.2 3.2 0 0 1 12 15.2 3.2 3.2 0 0 1 8.8 12 3.2 3.2 0 0 1 12 8.8 3.2 3.2 0 0 1 15.2 12Z"
android:fillColor="#000000" />
<path
android:pathData="M9 2L7.17 4 4 4C2.9 4 2 4.9 2 6l0 12c0 1.1 0.9 2 2 2l16 0c1.1 0 2 -0.9 2 -2L22 6C22 4.9 21.1 4 20 4L16.83 4 15 2 9 2Zm3 15C9.24 17 7 14.76 7 12 7 9.24 9.24 7 12 7c2.76 0 5 2.24 5 5 0 2.76 -2.24 5 -5 5z"
android:fillColor="#000000" />
</vector>

View File

@@ -0,0 +1,7 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path android:fillColor="#FFF" android:pathData="M19,4H15.5L14.5,3H9.5L8.5,4H5V6H19M6,19A2,2 0 0,0 8,21H16A2,2 0 0,0 18,19V7H6V19Z" />
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M18,16.08c-0.76,0 -1.44,0.3 -1.96,0.77L8.91,12.7c0.05,-0.23 0.09,-0.46 0.09,-0.7s-0.04,-0.47 -0.09,-0.7l7.05,-4.11c0.54,0.5 1.25,0.81 2.04,0.81 1.66,0 3,-1.34 3,-3s-1.34,-3 -3,-3 -3,1.34 -3,3c0,0.24 0.04,0.47 0.09,0.7L8.04,9.81C7.5,9.31 6.79,9 6,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3c0.79,0 1.5,-0.31 2.04,-0.81l7.12,4.16c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.61 1.31,2.92 2.92,2.92 1.61,0 2.92,-1.31 2.92,-2.92s-1.31,-2.92 -2.92,-2.92z"/>
</vector>

13
res/drawable/ic_stop.xml Normal file
View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M0 0h24v24H0z" />
<path
android:fillColor="#000000"
android:pathData="M6 6h12v12H6z" />
</vector>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#000000"
android:pathData="M7 9v6h4l5 5V4l-5 5H7z" />
<path
android:pathData="M0 0h24v24H0z" />
</vector>

9
res/drawable/ic_wifi.xml Normal file
View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M1,9l2,2c4.97,-4.97 13.03,-4.97 18,0l2,-2C16.93,2.93 7.08,2.93 1,9zM9,17l3,3 3,-3c-1.65,-1.66 -4.34,-1.66 -6,0zM5,13l2,2c2.76,-2.76 7.24,-2.76 10,0l2,-2C15.14,9.14 8.87,9.14 5,13z"/>
</vector>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<inset
xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/divider_horizontal_holo_light"
android:insetLeft="16dp"
android:insetRight="16dp"/>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/primary" android:state_checked="true" />
<item android:drawable="@color/darkStatusBarBackground" android:state_checked="false" />
</selector>

View File

@@ -13,6 +13,7 @@
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginRight="25dp"
android:layout_marginEnd="25dp"
android:layout_weight="1"
android:contentDescription="@string/mpris_coverart_description"
android:scaleType="fitCenter" />

View File

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorButtonNormal">
<TextView
android:id="@+id/deviceNameOrIPBackdrop"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:drawableEnd="@drawable/ic_delete"
android:drawableStart="@drawable/ic_delete"
android:paddingEnd="?android:attr/listPreferredItemPaddingRight"
android:paddingStart="?android:attr/listPreferredItemPaddingLeft"/>
<FrameLayout
android:id="@+id/swipeableView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?android:colorBackground">
<TextView
android:id="@+id/deviceNameOrIP"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:selectableItemBackground"
android:gravity="center_vertical"
android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:paddingEnd="?android:attr/listPreferredItemPaddingRight"
android:paddingStart="?android:attr/listPreferredItemPaddingLeft"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:visibility="visible"
tools:text="192.168.0.1"/>
</FrameLayout>
</FrameLayout>

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:listitem="@layout/custom_device_item"/>
<TextView
android:id="@+id/emptyListMessage"
style="@style/TextAppearance.AppCompat.Medium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_marginRight="@dimen/activity_horizontal_margin"
android:gravity="center_horizontal"
android:text="@string/custom_device_list_help"
/>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/floatingActionButton"
style="@style/Widget.MaterialComponents.FloatingActionButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
app:elevation="@dimen/fab_elevation"
app:srcCompat="@drawable/ic_add"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@@ -1,9 +1,10 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="@dimen/activity_vertical_margin"
tools:context="org.kde.kdeconnect.UserInterface.DeviceFragment">
<LinearLayout
@@ -11,13 +12,15 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical">
android:orientation="vertical"
android:padding="@dimen/activity_vertical_margin"
android:visibility="gone">
<ProgressBar
android:id="@+id/pair_progress"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone" />
android:visibility="gone"/>
<TextView
android:id="@+id/pair_message"
@@ -25,7 +28,7 @@
android:layout_height="wrap_content"
android:layout_marginBottom="8dip"
android:text="@string/device_not_paired"
android:textAppearance="?android:attr/textAppearanceMedium" />
android:textAppearance="?android:attr/textAppearanceMedium"/>
<Button
android:id="@+id/pair_button"
@@ -33,11 +36,11 @@
android:layout_height="wrap_content"
android:background="@drawable/button_round"
android:text="@string/request_pairing"
android:textColor="@android:color/white" />
android:textColor="@android:color/white"/>
<LinearLayout
android:id="@+id/pair_request"
android:id="@+id/pair_request_buttons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
@@ -51,7 +54,7 @@
android:layout_weight="1"
android:background="@drawable/button_round"
android:text="@string/pairing_accept"
android:textColor="@android:color/white" />
android:textColor="@android:color/white"/>
<Button
android:id="@+id/reject_button"
@@ -61,40 +64,50 @@
android:layout_weight="1"
android:background="@drawable/button_round"
android:text="@string/pairing_reject"
android:textColor="@android:color/white" />
android:textColor="@android:color/white"/>
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/not_reachable_message"
<LinearLayout
android:id="@+id/error_message_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:drawableLeft="@drawable/ic_error_outline_black_48dp"
android:drawablePadding="8dip"
android:drawableStart="@drawable/ic_error_outline_black_48dp"
android:gravity="center_vertical"
android:text="@string/unreachable_description"
android:textAppearance="?android:attr/textAppearanceMedium"
android:visibility="gone" />
android:gravity="center"
android:orientation="horizontal"
android:padding="16dp"
android:visibility="gone">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/error_message_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:importantForAccessibility="no"
android:paddingEnd="8dip"
android:paddingLeft="0dip"
android:paddingRight="8dip"
android:paddingStart="0dip"
android:src="@drawable/ic_error_outline_black_48dp"
app:tint="?attr/colorHighContrast"
tools:ignore="UnusedAttribute"/>
<TextView
android:id="@+id/not_reachable_message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="@string/unreachable_description"
android:textAppearance="?android:attr/textAppearanceMedium"
android:visibility="gone" />
</LinearLayout>
<TextView
android:id="@+id/on_data_message"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:drawableLeft="@drawable/ic_error_outline_black_48dp"
android:drawablePadding="8dip"
android:drawableStart="@drawable/ic_error_outline_black_48dp"
android:gravity="center_vertical"
android:text="@string/on_data_message"
android:textAppearance="?android:attr/textAppearanceMedium"
android:visibility="gone" />
<ListView
android:id="@+id/buttons_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
tools:context=".DeviceActivity" />
android:divider="@drawable/list_divider"
tools:context=".DeviceActivity"
tools:listitem="@layout/list_item_with_icon_entry"/>
</LinearLayout>

View File

@@ -1,10 +0,0 @@
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:addStatesFromChildren="true"
android:orientation="vertical"
android:paddingLeft="16dip"
android:paddingRight="16dip"
tools:context="org.kde.kdeconnect.UserInterface.MainActivity" />

View File

@@ -1,42 +1,43 @@
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="org.kde.kdeconnect.UserInterface.MainActivity"> <!-- fitSystemWindows to make the drawer slide below the Lollipop transparent status bar -->
<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"> <!-- fitSystemWindows to make the drawer slide below the Lollipop transparent status bar -->
<LinearLayout
android:layout_width="match_parent"
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/coordinatorLayout"
android:layout_height="match_parent"
android:orientation="vertical">
android:layout_width="match_parent"
tools:context="org.kde.kdeconnect.UserInterface.MainActivity">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
<com.google.android.material.appbar.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:elevation="8dp"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:elevation="8dp"/>
</com.google.android.material.appbar.AppBarLayout>
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
</LinearLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
<android.support.design.widget.NavigationView
<com.google.android.material.navigation.NavigationView
android:id="@+id/navigation_drawer"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@drawable/state_list_drawer_background"
app:headerLayout="@layout/nav_header"
app:itemBackground="@drawable/state_list_drawer_background"
app:itemIconTint="@color/state_list_drawer_text"
app:itemTextColor="@color/state_list_drawer_text" />
style="?attr/mainNavigationViewStyle" />
</android.support.v4.widget.DrawerLayout>
</androidx.drawerlayout.widget.DrawerLayout>

View File

@@ -3,7 +3,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="25dp"
android:paddingBottom="15dp"
android:paddingLeft="25dp"
android:paddingRight="25dp"
android:paddingTop="25dp">
@@ -22,4 +22,10 @@
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<fragment android:name="org.kde.kdeconnect.Plugins.SystemvolumePlugin.SystemvolumeFragment"
android:id="@+id/systemvolume_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"/>
</LinearLayout>

View File

@@ -9,7 +9,7 @@
android:id="@+id/tFilter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="5dp"
android:paddingBottom="16dp"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragmentPlaceHolder"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

View File

@@ -0,0 +1,63 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mpris_control_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="12dp"
android:orientation="vertical">
<TextView
style="@android:style/TextAppearance.Medium"
android:id="@+id/textView"
android:layout_weight="0"
android:layout_marginBottom="6dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/presenter_lock_tip" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="6dp"
android:orientation="horizontal"
android:layout_weight="1">
<ImageButton
android:id="@+id/previous_button"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:contentDescription="@string/mpris_rew"
android:layout_weight="0.25"
android:layout_marginRight="3dp"
android:layout_marginEnd="3dp"
android:src="@drawable/ic_previous_black"
android:theme="@style/DisableableButton" />
<ImageButton
android:id="@+id/next_button"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="3dp"
android:layout_marginStart="3dp"
android:layout_weight="0.25"
android:contentDescription="@string/mpris_ff"
android:src="@drawable/ic_next_black"
android:theme="@style/DisableableButton" />
</LinearLayout>
<Button
android:id="@+id/pointer_button"
android:layout_width="match_parent"
android:layout_marginBottom="6dp"
android:layout_height="wrap_content"
android:layout_weight="0.30"
android:visibility="gone"
android:text="@string/presenter_pointer"
android:theme="@style/DisableableButton" />
</LinearLayout>

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/runcommandslist"
@@ -12,13 +12,13 @@
android:addStatesFromChildren="true"
android:orientation="vertical" />
<android.support.design.widget.FloatingActionButton
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/add_command_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="16dp"
android:src="@drawable/ic_add"
android:src="@drawable/ic_action_image_edit"
app:backgroundTint="@color/primary"
app:layout_anchor="@id/runcommandslist"
app:layout_anchorGravity="bottom|end" />
@@ -33,4 +33,4 @@
android:textAlignment="center"
android:textSize="16sp" />
</android.support.design.widget.CoordinatorLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@@ -1,34 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="20dp">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/command_confirm_needed"
android:textAppearance="@style/TextAppearance.AppCompat.Medium" />
<EditText
android:id="@+id/addcommand_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:hint="@string/addcommand_name"
android:inputType="text" />
<EditText
android:id="@+id/addcommand_command"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:hint="@string/addcommand_command"
android:inputType="text" />
</LinearLayout>

View File

@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorButtonNormal">
<TextView
android:id="@+id/deviceNameOrIPBackdrop"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingEnd="?android:attr/listPreferredItemPaddingRight"
android:paddingLeft="?android:attr/listPreferredItemPaddingLeft"
android:paddingRight="?android:attr/listPreferredItemPaddingRight"
android:paddingStart="?android:attr/listPreferredItemPaddingLeft"/>
<FrameLayout
android:id="@+id/swipeableView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?android:colorBackground">
<TextView
android:id="@+id/deviceNameOrIP"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?selectableItemBackground"
android:gravity="center_vertical"
android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:paddingEnd="?android:attr/listPreferredItemPaddingRight"
android:paddingLeft="?android:attr/listPreferredItemPaddingLeft"
android:paddingRight="?android:attr/listPreferredItemPaddingRight"
android:paddingStart="?android:attr/listPreferredItemPaddingLeft"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:visibility="visible"
tools:text="192.168.0.1"/>
</FrameLayout>
</FrameLayout>

View File

@@ -1,35 +0,0 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<TextView
android:layout_width="fill_parent"
android:layout_height="100dp"
android:text="@string/custom_dev_list_help" />
<EditText
android:id="@+id/ip_edittext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/add_host_hint"
android:imeOptions="actionSend" />
<Button
android:id="@android:id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/add_host" />
</LinearLayout>

View File

@@ -1,18 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/refresh_list_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/listView1"
android:id="@+id/devices_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:addStatesFromChildren="true"
android:divider="@null"
android:dividerHeight="0dp"
android:orientation="vertical"
android:paddingLeft="16dip"
android:paddingRight="16dip"
tools:context=".MainActivity" />
</android.support.v4.widget.SwipeRefreshLayout>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:paddingTop="?dialogPreferredPadding"
android:paddingStart="?dialogPreferredPadding"
android:paddingLeft="?dialogPreferredPadding"
android:paddingEnd="?dialogPreferredPadding"
android:paddingRight="?dialogPreferredPadding">
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:hintEnabled="false"
style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox">
<!-- inputType="text" is needed, without it lines and maxLines is ignored https://issuetracker.google.com/issues/37118772 -->
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/textInputEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:lines="1"
android:maxLines="1"
android:inputType="text"
style="@style/Widget.MaterialComponents.TextInputEditText.FilledBox"/>
</com.google.android.material.textfield.TextInputLayout>
</FrameLayout>

View File

@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingLeft="?attr/dialogPreferredPadding"
android:paddingRight="?attr/dialogPreferredPadding"
android:paddingTop="10dp">
<com.google.android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="5dp"
app:errorEnabled="true">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/storageLocation"
style="@style/Widget.MaterialComponents.TextInputEditText.FilledBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:cursorVisible="false"
android:hint="@string/sftp_storage_preference_storage_location"
android:lines="1"
android:longClickable="false"
android:maxLines="1"
android:scrollHorizontally="true"
android:ellipsize="end"
android:inputType="text"
android:text="@string/sftp_storage_preference_click_to_select"
android:textColor="@android:color/darker_gray"
android:editable="false"/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/storageDisplayNameInputLayout"
style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox.Dense"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="5dp"
app:errorEnabled="true">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/storageDisplayName"
style="@style/Widget.MaterialComponents.TextInputEditText.FilledBox.Dense"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/sftp_storage_preference_display_name"
android:lines="1"
android:maxLines="1"
android:scrollHorizontally="true"
android:ellipsize="end"
android:inputType="text"/>
</com.google.android.material.textfield.TextInputLayout>
</LinearLayout>

View File

@@ -4,7 +4,7 @@
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
<TextView
android:id="@+id/list_item_category_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"

View File

@@ -11,7 +11,8 @@
android:paddingEnd="?android:attr/scrollbarSize"
android:paddingLeft="12dip"
android:paddingRight="?android:attr/scrollbarSize"
android:paddingStart="12dip">
android:paddingStart="12dip"
android:id="@+id/list_item_entry">
<!-- We should use android:background="@android:/listChoiceBackgroundIndicator"
instead of abc_list_selector_holo_dark but that's only supported from API11 -->

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="16dp"
android:paddingTop="28dp"
android:paddingRight="16dp"
android:paddingBottom="8dp" />

View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/systemvolume_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:textAppearance="@style/TextAppearance.AppCompat.Medium" />
<LinearLayout
android:id="@+id/systemvolume_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="8dip"
android:orientation="horizontal">
<ImageButton
android:id="@+id/systemvolume_mute"
android:layout_width="30dp"
android:layout_height="30dp"
android:background="@android:color/transparent"
android:contentDescription="@string/mute"
android:scaleType="fitXY"
android:src="@drawable/ic_volume_black"
app:tint="?attr/colorHighContrast" />
<SeekBar
android:id="@+id/systemvolume_seek"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:max="100" />
</LinearLayout>
</LinearLayout>

View File

@@ -1,57 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/abc_list_selector_holo_dark"
android:baselineAligned="false"
android:clickable="true"
android:focusable="true"
android:gravity="center_vertical"
android:minHeight="?android:attr/listPreferredItemHeight"
android:orientation="horizontal"
android:paddingEnd="?android:attr/scrollbarSize"
android:paddingLeft="12dip"
android:paddingRight="?android:attr/scrollbarSize"
android:paddingStart="12dip">
android:paddingLeft="16dp"
android:paddingRight="16dp">
<ImageView
android:id="@+id/list_item_entry_icon"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:contentDescription="@string/device_icon_description"
android:src="@drawable/ic_device_laptop" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/list_item_entry_title"
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/list_item_entry_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_marginLeft="8dip"
android:layout_marginStart="8dip"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:singleLine="true"
android:text=""
android:textAppearance="?android:attr/textAppearanceMedium" />
android:layout_marginLeft="12dp"
android:layout_marginStart="12dp"
android:contentDescription="@string/device_icon_description"
android:src="@drawable/ic_device_laptop"
app:tint="?attr/colorControlNormal"/>
<TextView
android:id="@+id/list_item_entry_summary"
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dip"
android:layout_marginStart="8dip"
android:singleLine="true"
android:text=""
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#CC2222"
android:visibility="gone" />
android:orientation="vertical">
</LinearLayout>
<TextView
android:id="@+id/list_item_entry_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="8dip"
android:layout_marginStart="8dip"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:singleLine="true"
android:text=""
android:textAppearance="?android:attr/textAppearanceMedium"/>
</LinearLayout>
<TextView
android:id="@+id/list_item_entry_summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dip"
android:layout_marginStart="8dip"
android:singleLine="true"
android:text=""
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#CC2222"
android:visibility="gone"/>
</LinearLayout>
</LinearLayout>

View File

@@ -46,8 +46,8 @@
android:baselineAlignBottom="true"
android:clickable="false"
android:contentDescription="@string/mpris_play"
android:theme="@style/DisableableButton"
android:src="@drawable/ic_play_black" />
android:src="@drawable/ic_play_black"
android:theme="@style/DisableableButton" />
<LinearLayout
android:layout_width="match_parent"
@@ -61,8 +61,8 @@
android:layout_height="fill_parent"
android:layout_weight="0.25"
android:contentDescription="@string/mpris_previous"
android:theme="@style/DisableableButton"
android:src="@drawable/ic_previous_black" />
android:src="@drawable/ic_previous_black"
android:theme="@style/DisableableButton" />
<ImageButton
android:id="@+id/rew_button"
@@ -70,8 +70,18 @@
android:layout_height="fill_parent"
android:layout_weight="0.25"
android:contentDescription="@string/mpris_rew"
android:theme="@style/DisableableButton"
android:src="@drawable/ic_rewind_black" />
android:src="@drawable/ic_rewind_black"
android:theme="@style/DisableableButton" />
<ImageButton
android:id="@+id/stop_button"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_weight="0.25"
android:contentDescription="@string/mpris_stop"
android:src="@drawable/ic_stop"
android:theme="@style/DisableableButton" />
<ImageButton
android:id="@+id/ff_button"
@@ -79,8 +89,8 @@
android:layout_height="fill_parent"
android:layout_weight="0.25"
android:contentDescription="@string/mpris_ff"
android:theme="@style/DisableableButton"
android:src="@drawable/ic_fast_forward_black" />
android:src="@drawable/ic_fast_forward_black"
android:theme="@style/DisableableButton" />
<ImageButton
android:id="@+id/next_button"
@@ -88,8 +98,8 @@
android:layout_height="fill_parent"
android:layout_weight="0.25"
android:contentDescription="@string/mpris_next"
android:theme="@style/DisableableButton"
android:src="@drawable/ic_next_black" />
android:src="@drawable/ic_next_black"
android:theme="@style/DisableableButton" />
</LinearLayout>
@@ -112,7 +122,7 @@
<SeekBar
android:id="@+id/positionSeek"
android:layout_width="wrap_content"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1" />
@@ -137,7 +147,7 @@
android:layout_marginTop="8dip"
android:orientation="horizontal">
<ImageView
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/imageView"
android:layout_width="30dip"
android:layout_height="30dip"
@@ -146,7 +156,8 @@
android:layout_weight="0"
android:contentDescription="@string/mpris_volume"
android:maxWidth="30dip"
android:src="@drawable/ic_volume_black" />
android:src="@drawable/ic_volume_black"
app:tint="?attr/colorHighContrast" />
<SeekBar
@@ -158,5 +169,4 @@
android:max="100" />
</LinearLayout>
</LinearLayout>

View File

@@ -15,7 +15,7 @@
android:paddingRight="48dp"
android:paddingStart="16dp"
android:paddingTop="8dp"
android:text="KDE Connect"
android:text="@string/kde_connect"
android:textColor="#FFF"
android:textStyle="bold" />

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="16dp"
android:paddingBottom="12dp"
android:text="@string/pairing_description"
android:clickable="false"
android:background="@android:color/transparent"
>
</TextView>

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:drawablePadding="8dp"
android:paddingTop="16dp"
android:paddingBottom="12dp"
android:text="@string/no_wifi"
android:drawableLeft="@drawable/ic_wifi"
android:drawableTint="?attr/colorControlNormal"
android:clickable="true"
>
</TextView>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ListView
android:id="@+id/extra_options_list"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<CheckBox
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="false"
android:clickable="false"
android:background="@null"/>

View File

@@ -16,7 +16,9 @@
<!-- Layout for a Preference in a PreferenceActivity. The
Preference is able to place a specific widget for its particular
type in the "widget_frame" layout. -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
@@ -32,22 +34,25 @@
android:id="@android:id/widget_frame"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:orientation="vertical" />
android:gravity="left|center_vertical|start"
android:minWidth="56dp"
android:orientation="vertical">
</LinearLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="6dip"
android:layout_marginEnd="4dip"
android:layout_marginLeft="12dip"
android:layout_marginLeft="4dip"
android:layout_marginRight="4dip"
android:layout_marginStart="12dip"
android:layout_marginStart="4dip"
android:layout_marginTop="6dip"
android:layout_weight="1">
<TextView
android:id="@+android:id/title"
android:id="@android:id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="marquee"
@@ -68,13 +73,14 @@
</RelativeLayout>
<ImageButton
<androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/settingsButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/abc_btn_borderless_material"
android:contentDescription="@string/settings_icon_description"
android:padding="8dip"
app:tint="?attr/colorControlNormal"
android:src="@drawable/ic_action_settings_inverted" />
</LinearLayout>

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<CheckBox
android:id="@+id/checkbox_contents"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Block notification contents" />
<CheckBox
android:id="@+id/checkbox_images"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Block notification images" />
</LinearLayout>

View File

@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:background="#FFFFFF"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/runcommandWidgetTitleHeader"
android:background="@color/primary"
android:gravity="center_vertical|left"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:paddingTop="6dip"
android:paddingBottom="6dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon"
android:contentDescription="@string/device_icon_description"/>
<TextView
android:id="@+id/runcommandWidgetTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
<ListView
android:id="@+id/runcommandslist"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="4dp"
android:addStatesFromChildren="true"
android:visibility="gone"
android:orientation="vertical" />
<TextView
android:id="@+id/not_reachable_message"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:drawableLeft="@drawable/ic_error_outline_black_48dp"
android:drawablePadding="8dip"
android:paddingLeft="8dip"
android:drawableStart="@drawable/ic_error_outline_black_48dp"
android:gravity="center_vertical"
android:text="@string/unreachable_description"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="20dp">
<ListView
android:id="@+id/runcommandsdevicelist"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="4dp"
android:addStatesFromChildren="true"
android:orientation="vertical" />
</LinearLayout>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/fullscreen"
android:title="@string/presenter_fullscreen" />
<item
android:id="@+id/exit_presentation"
android:title="@string/presenter_exit" />
</menu>

View File

@@ -1,5 +1,5 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:kdeconnect="http://schemas.android.com/apk/res-auto/android">
xmlns:kdeconnect="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_refresh"
@@ -8,12 +8,6 @@
android:title="@string/refresh"
kdeconnect:showAsAction="never" />
<item
android:id="@+id/menu_rename"
android:orderInCategory="300"
android:title="@string/device_rename_title"
kdeconnect:showAsAction="never" />
<item
android:id="@+id/menu_custom_device_list"
android:orderInCategory="900"

View File

@@ -1,5 +1,5 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:kdeconnect="http://schemas.android.com/apk/res-auto/android">
xmlns:kdeconnect="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_refresh"

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/copy_url_to_clipboard"
android:title="@string/copy_url_to_clipboard" />
</menu>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/delete"
android:title="@string/sftp_action_mode_menu_delete"
app:showAsAction="ifRoom"
android:icon="@drawable/ic_delete"/>
</menu>

View File

@@ -1,7 +1,6 @@
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="pref_plugin_telephony">مُخطِر المهاتفة</string>
<string name="pref_plugin_telephony_desc">أرسل إخطارات لرسائل SMS والمكالمات</string>
<string name="pref_plugin_battery">تقرير البطّاريّة</string>
<string name="pref_plugin_battery_desc">بلّغ عن حالة البطّاريّة دوريًّا</string>
<string name="pref_plugin_sftp">اكشف نظام الملفّات</string>
@@ -22,7 +21,6 @@
<string name="pref_plugin_receive_notifications_desc">استقبل الإخطارات من الجهاز الآخر واعرضها على أندرويد</string>
<string name="pref_plugin_sharereceiver">شارك واستقبل</string>
<string name="pref_plugin_sharereceiver_desc">شارك الملفّات والعناوين بين الجهازين</string>
<string name="plugin_not_available">هذه الميزة غير متوفّرة في إصدار أندرويد لديك</string>
<string name="device_list_empty">لا أجهزة</string>
<string name="ok">حسنًا</string>
<string name="cancel">ألغِ</string>
@@ -47,42 +45,35 @@
<item>الأسرع قليلًا</item>
<item>الأسرع</item>
</string-array>
<string-array name="mousepad_acceleration_profile_entries">
<item>No Acceleration</item>
<item>Weakest</item>
<item>Weaker</item>
<item>Medium</item>
<item>Stronger</item>
<item>Strongest</item>
</string-array>
<string name="category_connected_devices">الأجهزة المقترن بها</string>
<string name="category_not_paired_devices">الأجهزة المتوفّرة</string>
<string name="category_remembered_devices">الأجهزة المتذكَّرة</string>
<string name="plugins_failed_to_load">فشل تحميل الملحقات (المس لمعلومات اكثر):</string>
<string name="device_menu_plugins">إعدادات الملحقة</string>
<string name="device_menu_unpair">ألغِ الاقتران</string>
<string name="device_not_reachable">الجهاز المقترن غير قابل الوصول</string>
<string name="pair_new_device">اقرن جهازًا جديدًا</string>
<string name="unknown_device">جهاز مجهول</string>
<string name="error_not_reachable">الجهاز غير قابل الوصول</string>
<string name="error_already_requested">طُلب الاقتران بالفعل</string>
<string name="error_already_paired">الجهاز مقترن بالفعل</string>
<string name="error_could_not_send_package">تعذّر إرسال الحزمة</string>
<string name="error_timed_out">انتهت المهلة</string>
<string name="error_canceled_by_user">ألغاه المستخدم</string>
<string name="error_canceled_by_other_peer">ألغاه ندّ آخر</string>
<string name="error_invalid_key">استُقبل مفتاح غير صالح</string>
<string name="encryption_info_title">معلومات التّعمية</string>
<string name="encryption_info_msg_no_ssl">لا يستخدم الجهاز الآخر إصدارة حديثة من «كدي المتّصل»، ستُستخدم طريقة التّعمية القديمة.</string>
<string name="my_device_fingerprint">بصمة SHA1 لشهادة جهازك هي:</string>
<string name="remote_device_fingerprint">بصمة SHA1 لشهادة الجهاز البعيد هي:</string>
<string name="pair_requested">طُلب الاقتران</string>
<string name="pairing_request_from">طلب اقتران من %1s</string>
<string name="received_url_title">استُلمت وصلة من %1s</string>
<string name="received_url_text">المس لفتح \'%1s\'</string>
<string name="incoming_file_title">ملفّ وارد من %1s</string>
<string name="incoming_file_text">%1s</string>
<string name="outgoing_file_title">يرسل ملفًّا إلى %1s</string>
<string name="received_file_title">استُقبل ملفّ من %1s</string>
<string name="received_file_fail_title">فشل استقبال الملفّ من %1s</string>
<string name="received_file_text">المس لفتح \'%1s\'</string>
<string name="sent_file_title">أرسل ملفًّا إلى %1s</string>
<string name="sent_file_text">%1s</string>
<string name="sent_file_failed_text">%1s</string>
<string name="tap_to_answer">المس للإجابة</string>
<string name="reconnect">أعد الاتّصال</string>
<string name="right_click">أرسل نقرة باليمين</string>
<string name="middle_click">أرسل نقرة بالوسط</string>
<string name="show_keyboard">أظهر لوحة المفاتيح</string>
@@ -90,19 +81,13 @@
<string name="request_pairing">اطلب الاقتران</string>
<string name="pairing_accept">اقبل</string>
<string name="pairing_reject">ارفض</string>
<string name="device">الجهاز</string>
<string name="pair_device">اقرن الجهاز</string>
<string name="remote_control">التّحكّم البعيد</string>
<string name="settings">إعدادات كدي المتّصل</string>
<string name="mpris_play">شغّل</string>
<string name="mpris_previous">السّابق</string>
<string name="mpris_rew">رجوع</string>
<string name="mpris_ff">تقدّم سريع</string>
<string name="mpris_next">التّالي</string>
<string name="mpris_volume">المستوى</string>
<string name="mpris_settings">إعدادات الوسائط المتعدّدة</string>
<string name="mpris_time_settings_title">زرّا التّقدّم والإرجاع</string>
<string name="mpris_time_settings_summary">اضبط الوقت عند نقر زرّيّ التّقديم أو الإرجاع.</string>
<string-array name="mpris_time_entries">
<item>10 ثوان</item>
<item>20 ثانية</item>
@@ -110,39 +95,24 @@
<item>دقيقة واحدة</item>
<item>دقيقتان</item>
</string-array>
<string name="share_to">شارك مع...</string>
<string name="protocol_version_older">يستخدم هذا الجهاز إصدار ميفاق أقدم</string>
<string name="protocol_version_newer">يستخدم هذا الجهاز إصدار ميفاق أحدث</string>
<string name="general_settings">إعدادات عامّة</string>
<string name="plugin_settings">إعدادات</string>
<string name="plugin_settings_with_name">إعدادات %s</string>
<string name="device_name">اسم الجهاز</string>
<string name="device_name_preference_summary">%s</string>
<string name="invalid_device_name">اسم جهاز غير صالح</string>
<string name="shareplugin_text_saved">استُقبل نصّ، حُفظ إلى الحافظة</string>
<string name="custom_devices_settings">قائمة أجهزة مخصّصة</string>
<string name="pair_device_action">اقرن جهازًا جديدًا</string>
<string name="unpair_device_action">ألغِ اقتران %s</string>
<string name="custom_device_list">أضف أجهزة بميفاق الإنترنت م​إ</string>
<string name="share_notification_preference">إخطارات مزعجة</string>
<string name="share_notification_preference_summary">اهتزّ وشغّل صوتًا عند استقبال ملفّ</string>
<string name="title_activity_notification_filter">مرشّح الإخطارات</string>
<string name="filter_apps_info">ستُزامن الإخطارات من التّطبيقات المحدّدة.</string>
<string name="sftp_internal_storage">التّخزين الدّاخليّ</string>
<string name="sftp_all_files">كلّ الملفّات</string>
<string name="sftp_sdcard_num">بطاقة SD %d</string>
<string name="sftp_sdcard">بطاقة SD</string>
<string name="sftp_readonly">(للقراءة فقط)</string>
<string name="sftp_camera">صور الكاميرا</string>
<string name="add_host">أضف مضيفًا/م​إ</string>
<string name="add_host_hint">اسم المضيف أو عنوان IP</string>
<string name="no_players_connected">لم يُعثر على مشغّلات</string>
<string name="custom_dev_list_help">استخدم هذا الخيار فقط إن لم يُكتَشف جهازك آليًّا. أدخِل عنوان م​إ أو اسم المضيف أدناه والمس الزرّ لإضافته إلى القائمة. المس عنصرًا موجودًا لإزالته من القائمة.</string>
<string name="mpris_player_on_device">%1$s على %2$s</string>
<string name="send_files">أرسل ملفّات</string>
<string name="pairing_title">أجهزة «كدي المتّصل»</string>
<string name="pairing_description">الأجهزة الأخرى التي تشغّل «كدي المتّصل» وعلى نفس الشّبكة ستظهر هنا.</string>
<string name="device_paired">اقتُرن الجهاز</string>
<string name="device_rename_title">أعد تسمية الجهاز</string>
<string name="device_rename_confirm">أعد التّسمية</string>
<string name="refresh">أنعش</string>
@@ -150,7 +120,6 @@
<string name="no_file_browser">لا متصفّحات ملفّات مثبّتة.</string>
<string name="pref_plugin_telepathy">أرسل SMS</string>
<string name="pref_plugin_telepathy_desc">أرسل رسائل نصّيّة من سطح المكتب</string>
<string name="plugin_not_supported">لا يدعم جهازك هذه الملحقة</string>
<string name="findmyphone_title">جِد جهازي</string>
<string name="findmyphone_title_tablet">جِد جهازي اللوحيّ</string>
<string name="findmyphone_description">يرّن هذا الجهاز لتجده</string>

View File

@@ -1,57 +1,211 @@
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="kde_connect">KDE Connect</string>
<string name="foreground_notification_no_devices">Nun se coneutó con dengún preséu</string>
<string name="foreground_notification_devices">Coneutóse con %s</string>
<string name="pref_plugin_telephony">Avisador telefónicu</string>
<string name="pref_plugin_telephony_desc">Unvia avisos pa SMS y llamaes</string>
<string name="pref_plugin_battery">Informe de batería</string>
<string name="pref_plugin_battery_desc">Informe periódicu del estáu de la batería</string>
<string name="pref_plugin_sftp_desc">Permite restolar remotamente a esti preséu</string>
<string name="pref_plugin_telephony_desc">Unvia avisos de les llamaes entrantes</string>
<string name="pref_plugin_battery">Informe de la batería</string>
<string name="pref_plugin_battery_desc">Informa davezu del estáu de la batería</string>
<string name="pref_plugin_sftp">Sistema de ficheros en remoto</string>
<string name="pref_plugin_sftp_desc">Permite restolar remotamente\'l sistema de ficheros d\'esti preséu</string>
<string name="pref_plugin_clipboard">Sincronización del cartafueyu</string>
<string name="pref_plugin_clipboard_desc">Comparte\'l conteníu del cartafueyu</string>
<string name="pref_plugin_mousepad">Entrada remota</string>
<string name="pref_plugin_mousepad_desc">Usa\'l to teléfonu o tableta como panel táutil y tecláu</string>
<string name="pref_plugin_remotekeyboard">Pulsaciones remotes</string>
<string name="pref_plugin_mousepad_desc">Usa\'l preséu como panel táutil y tecláu</string>
<string name="pref_plugin_remotekeyboard">Receición de calcos de tecles remotos</string>
<string name="pref_plugin_mpris">Controles multimedia</string>
<string name="pref_plugin_mpris_desc">Forne un control remotu pal to reproductor multimedia</string>
<string name="pref_plugin_runcommand">Execución de comandos</string>
<string name="pref_plugin_runcommand_desc">Aiciona comandos remotos del to teléfonu o tableta</string>
<string name="pref_plugin_ping">Ping</string>
<string name="pref_plugin_ping_desc">Unvia y recibe pings</string>
<string name="pref_plugin_runcommand_desc">Aiciona comandos remotos dende\'l preséu</string>
<string name="pref_plugin_contacts">Sincronizador de contautos</string>
<string name="pref_plugin_contacts_desc">Permite la sincronización de la llista telefónica del teléfonu</string>
<string name="pref_plugin_ping_desc">Unviu y receición de pings</string>
<string name="pref_plugin_notifications">Sincronización d\'avisos</string>
<string name="pref_plugin_notifications_desc">Accede a los tos avisos d\'otros preseos</string>
<string name="pref_plugin_receive_notifications">Recibir avisos</string>
<string name="pref_plugin_receive_notifications_desc">Recibe avisos d\'otros preseos y amsalos n\'Android</string>
<string name="pref_plugin_sharereceiver">Compartir y recibir</string>
<string name="pref_plugin_notifications_desc">Accede a los avisos n\'otros preseos</string>
<string name="pref_plugin_receive_notifications">Receición d\'avisos</string>
<string name="pref_plugin_receive_notifications_desc">Recibe los avisos d\'otros preseos y amúesalos n\'Android</string>
<string name="pref_plugin_sharereceiver">Compartición y receición</string>
<string name="pref_plugin_sharereceiver_desc">Comparte ficheros y URLs ente preseos</string>
<string name="plugin_not_available">Esta carauterística nun ta disponible na to versión d\'Android</string>
<string name="device_list_empty">Ensin preseos</string>
<string name="device_list_empty">Nun hai preseos</string>
<string name="ok">Aceutar</string>
<string name="cancel">Encaboxar</string>
<string name="open_settings">Abrir axustes</string>
<string name="no_permissions">¡</string>
<string name="send_ping">Unviar ping</string>
<string name="open_mpris_controls">Control multimedia</string>
<string name="no_permission_mprisreceiver">Pa ser a controlar reproductores multimedia precises conceder l\'accesu a los avisos</string>
<string name="no_permissions_remotekeyboard">Pa recibir calcos de tecles precises activar el tecláu remotu de KDE Connect</string>
<string name="send_ping">Unviar un ping</string>
<string name="open_mpris_controls">Mandu multimedia</string>
<string name="remotekeyboard_editing_only_title">Remanar les tecles remotes namái al editar</string>
<string name="open_mousepad">Entrada remota</string>
<string name="mousepad_info">Movi un deu pela pantalla pa mover el mur. Con un toque faes un clic esquierdu y teniendo primío faes l\'aición d\'arrastrar y soltar, col toque de dos deos simules un clic drechu y col toque de tres simules un clic col botón d\'en mediu del mur. Esliza dos deos pela pantalla pa desplazate.</string>
<string name="mousepad_double_tap_settings_title">Aición al tocar con dos deos</string>
<string name="mousepad_triple_tap_settings_title">Aición al tocar con tres deos</string>
<string name="mousepad_sensitivity_settings_title">Sensibilidá del panel táutil</string>
<string name="mousepad_scroll_direction_title">Direición de desplazamientu inversa</string>
<string-array name="mousepad_tap_entries">
<item>Right click</item>
<item>Middle click</item>
<item>Nothing</item>
<item>Clic drechu</item>
<item>Clic d\'en mediu</item>
<item>Nada</item>
</string-array>
<string-array name="mousepad_sensitivity_entries">
<item>Slowest</item>
<item>Above Slowest</item>
<item>Default</item>
<item>Above Default</item>
<item>Fastest</item>
<item>Perlenta</item>
<item>Lenta</item>
<item>Por defeutu</item>
<item>Rápida</item>
<item>Perrápida</item>
</string-array>
<string name="error_timed_out">Escosó\'l tiempu</string>
<string-array name="mousepad_acceleration_profile_entries">
<item>Ensin aceleración</item>
<item>Weakest</item>
<item>Weaker</item>
<item>Normal</item>
<item>Fuerte</item>
<item>Perfuerte</item>
</string-array>
<string name="category_connected_devices">Preseos coneutaos</string>
<string name="category_not_paired_devices">Preseos disponibles</string>
<string name="category_remembered_devices">Preseos recordaos</string>
<string name="device_menu_plugins">Axustes de plugins</string>
<string name="device_menu_unpair">Desempareyar</string>
<string name="pair_new_device">Empareyar un preséu nuevu</string>
<string name="error_could_not_send_package">Nun pudo unviase\'l paquete</string>
<string name="error_timed_out">Escosó\'l tiempu d\'espera</string>
<string name="encryption_info_title">Información del cifráu</string>
<string name="encryption_info_msg_no_ssl">L\'otru preséu nun executa una versión recién de KDE Connect y usa\'l métodu heredáu de cifráu.</string>
<string name="my_device_fingerprint">La buelga SHA1 d\'esti preséu ye:</string>
<string name="remote_device_fingerprint">La buelga SHA1 del preséu remotu ye:</string>
<string name="pair_requested">Solicitóse l\'empareyamientu</string>
<string name="pairing_request_from">Solicitú d\'empareyamientu de %1s</string>
<plurals name="incoming_file_title">
<item quantity="one">Recibiendo %1$d ficheru de %2$s</item>
<item quantity="other">Recibiendo %1$d ficheros de %2$s</item>
</plurals>
<plurals name="incoming_files_text">
<item quantity="one">Ficheru: %1s</item>
<item quantity="other">(Ficheru %2$d de %3$d): %1$s</item>
</plurals>
<plurals name="outgoing_file_title">
<item quantity="one">Unviando %1$d ficheru a %2$s</item>
<item quantity="other">Unviando %1$d ficheros a %2$s</item>
</plurals>
<plurals name="outgoing_files_text">
<item quantity="one">Ficheru: %1$s</item>
<item quantity="other">(Ficheru %2$d de %3$d): %1$s</item>
</plurals>
<plurals name="received_files_title">
<item quantity="one">Recibióse 1 ficheru de %1$s</item>
<item quantity="other">Recibiéronse %2$d ficheros de %1$s</item>
</plurals>
<plurals name="received_files_fail_title">
<item quantity="one">Fallu al recibir el ficheru de %1$s</item>
<item quantity="other">Fallu al recibir %2$d de los %3$d ficheros de %1$s</item>
</plurals>
<plurals name="sent_files_title">
<item quantity="one">Unvióse\'l ficheru a %1$s</item>
<item quantity="other">Unviáronse %2$d ficheros a %1$s</item>
</plurals>
<plurals name="send_files_fail_title">
<item quantity="one">Fallu al unviar el ficheru a %1$s</item>
<item quantity="other">Fallu al unviar %2$d de los %3$d ficheros a %1$s</item>
</plurals>
<string name="received_file_text">Toca p\'abrir «%1s»</string>
<string name="cannot_create_file">Nun pue crease\'l ficheru %s</string>
<string name="right_click">Unviar un clic drechu</string>
<string name="middle_click">Unviar un clic d\'en mediu</string>
<string name="show_keyboard">Amosar el tecláu</string>
<string name="device_not_paired">Nun s\'empareyó\'l preséu</string>
<string name="request_pairing">Solicitar l\'empareyamientu</string>
<string name="pairing_accept">Aceutar</string>
<string name="pairing_reject">Refugar</string>
<string name="settings">Axustes</string>
<string name="mpris_volume">Volume</string>
<string name="mpris_time_settings_title">Botones d\'avanzar/rebobinar</string>
<string name="mpris_time_settings_summary">Axusta\'l tiempu d\'avance/rebobináu al primir</string>
<string-array name="mpris_time_entries">
<item>10 seconds</item>
<item>20 seconds</item>
<item>30 seconds</item>
<item>1 minute</item>
<item>2 minutes</item>
<item>10 segundos</item>
<item>20 segundos</item>
<item>30 segundos</item>
<item>1 minutu</item>
<item>2 minutos</item>
</string-array>
<string name="no_file_browser">Nun hai restoladores de ficheros instalaos</string>
<string name="pref_plugin_telepathy_desc">Unvia mensaxes de testu dende\'l to escritoriu</string>
<string name="plugin_not_supported">Esti complementu nun lu sofita\'l preséu</string>
<string name="findmyphone_description">Fai sonar el teléfonu pa qu\'asina pueas alcontralu</string>
<string name="mpris_notification_settings_summary">Permite\'l control de reproductores multimedia ensin abrir KDE Connect</string>
<string name="share_to">Compartir con...</string>
<string name="protocol_version_newer">Esti preséu una versión nueva del protocolu</string>
<string name="plugin_settings_with_name">%s</string>
<string name="custom_devices_settings">Llista de preseos personalizada</string>
<string name="custom_device_list">Amestar preseos pola IP</string>
<string name="custom_device_deleted">Desanicióse\'l preséu personalizáu</string>
<string name="custom_device_list_help">Si\'l preséu nun se deteuta automáticamente, pues amestar la so direición IP o nome d\'agospiu calcando nel botón flotante d\'aición</string>
<string name="undo">Desfacer</string>
<string name="share_notification_preference">Avisos sonoros</string>
<string name="share_notification_preference_summary">Vibra y reproduz un soníu al recibir un ficheru</string>
<string name="share_destination_customize">Personalizar el direutoriu de destín</string>
<string name="share_destination_customize_summary_disabled">Los ficheros recibíos van apaecer en Descargues</string>
<string name="share_destination_customize_summary_enabled">Los ficheros van atroxase nel direutoriu d\'embaxo</string>
<string name="share_destination_folder_preference">Direutoriu de destín</string>
<string name="title_activity_notification_filter">Peñera d\'avisos</string>
<string name="filter_apps_info">Van sincronizase los avisos de les aplicaciones esbillaes.</string>
<string name="sftp_sdcard">Tarxeta SD</string>
<string name="add_device_dialog_title">Amiestu d\'un preséu</string>
<string name="add_device_hint">Nome d\'agospiu o direición IP</string>
<string name="sftp_preference_configured_storage_locations">Allugamientos d\'almacenamientu configuraos</string>
<string name="sftp_preference_add_storage_location_title">Allugamientu d\'almacenamientu adicional</string>
<string name="sftp_preference_edit_storage_location">Edición del allugamientu d\'almacenamientu</string>
<string name="sftp_storage_preference_storage_location">Allugamientu d\'almacenamientu</string>
<string name="sftp_storage_preference_storage_location_already_configured">Esti allugamientu yá se configuró</string>
<string name="sftp_storage_preference_click_to_select">calca pa esbillar</string>
<string name="sftp_storage_preference_display_name">Nome</string>
<string name="sftp_storage_preference_display_name_already_used">Esti nome yá ta usándose</string>
<string name="sftp_storage_preference_display_name_cannot_be_empty">El nome nun pue tar baleru</string>
<string name="sftp_no_storage_locations_configured">Nun se configuraron allugamientos d\'almacenamientu</string>
<string name="sftp_saf_permission_explanation">P\'acceder remotamente a los ficheros tienes de configurar allugamientos d\'almacenamientu</string>
<string name="no_players_connected">Nun s\'alcontraron reproductores</string>
<string name="send_files">Unviar ficheros</string>
<string name="pairing_title">Preseos con KDE Connect</string>
<string name="pairing_description">Equí deberíen apaecer los demás preseos que tean executando KDE Connect na mesma rede.</string>
<string name="device_rename_title">Renomáu del preséu</string>
<string name="device_rename_confirm">Renomar</string>
<string name="refresh">Refrescar</string>
<string name="no_wifi">Nun tas coneutáu a una rede Wi-Fi polo que nun vas ser a ver dengún preséu. Calca equí p\'activar el Wi-Fi.</string>
<string name="no_file_browser">Nun hai dengún restolador de ficheros instaláu.</string>
<string name="pref_plugin_telepathy">Unviu de SMS</string>
<string name="pref_plugin_telepathy_desc">Unvia SMS dende l\'ordenador</string>
<string name="findmyphone_description">Fai qu\'esti preséu suene pa que pueas alcontralu</string>
<string name="findmyphone_found">Alcontrélu</string>
<string name="plugins_need_permission">Dalgunos plugins precisen permisos pa funcionar (tócalos pa más información):</string>
<string name="permission_explanation">Esti plugin precisa permisos pa funcionar</string>
<string name="optional_permission_explanation">Precises conceder permisos adicionales p\'activar toles funciones</string>
<string name="plugins_need_optional_permission">Dalgunos plugins tienen carauterísiques desactivaes pola falta de permisos (tócalos pa más información):</string>
<string name="select_ringtone">Timbre</string>
<string name="telephony_pref_blocked_title">Númberos bloquiaos</string>
<string name="presenter_fullscreen">Pantalla completa</string>
<string name="presenter_exit">Colar de la presentación</string>
<string name="addcommand_explanation">Nun hai comandos rexistraos.</string>
<string name="addcommand_explanation2">Pues amestar más nos axustes de KDE Connect del ordenador</string>
<string name="add_command_description">Pues amestar más comandos nel ordenador</string>
<string name="notification_channel_default">Otros avisos</string>
<string name="notification_channel_persistent">Indicador permanente</string>
<string name="notification_channel_media_control">Mandu multimedia</string>
<string name="notification_channel_filetransfer">Tresferencia de ficheros</string>
<string name="clipboard_toast">Copióse al cartafueyu</string>
<string name="runcommand_noruncommandplugin">Esti preséu nun tien activáu\'l plugin Execución de comandos</string>
<string name="pref_plugin_findremotedevice_desc">Fai que\'l preséu remotu suene</string>
<string name="ring">Facer sonar</string>
<string name="pref_plugin_systemvolume">Volume del sistema</string>
<string name="pref_plugin_systemvolume_desc">Controla\'l volume del sistema del preséu remotu</string>
<string name="all">Too</string>
<string name="devices">Preseos</string>
<string name="settings_rename">Nome del preséu</string>
<string name="settings_dark_mode">Estilu escuru</string>
<string name="settings_more_settings_title">Más axustes</string>
<string name="setting_persistent_notification">Amosar un avisu permanente</string>
<string name="setting_persistent_notification_oreo">Avisu permanente</string>
<string name="setting_persistent_notification_description">Toca pa des/activalu n\'Avisos</string>
<string name="extra_options">Opciones adicionales</string>
<string name="privacy_options">Opciones de la privacidá</string>
<string name="set_privacy_options">Afita les opciones de la privacidá</string>
<string name="block_contents">Bloquiar el conteníu de los avisos</string>
<string name="block_images">Bloquiar les imáxenes de los avisos</string>
<string name="notification_channel_receivenotification">Avisos d\'otros preseos</string>
<string name="plugin_photo_desc">Llanza l\'aplicación de la cámarra p\'acenciellar la fechura y tresferencia de semeyes</string>
<string name="no_app_for_opening">Nun alcontró denguna aplicación afayadiza p\'abrir esti ficheru.</string>
<string name="remote_keyboard_service">Tecláu remotu de KDE Connect</string>
</resources>

View File

@@ -1,7 +1,6 @@
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="pref_plugin_telephony">Известяване за обаждания</string>
<string name="pref_plugin_telephony_desc">Изпращане на уведомления за СМС и обаждания</string>
<string name="pref_plugin_battery">Доклад за батерията</string>
<string name="pref_plugin_battery_desc">Периодично съобщаване за състоянието на батерията</string>
<string name="pref_plugin_sftp">Достъп до файловата система</string>
@@ -11,7 +10,6 @@
<string name="pref_plugin_ping_desc">Изпращане и получаване на пинг</string>
<string name="pref_plugin_notifications">Синхронизиране на уведомленията</string>
<string name="pref_plugin_notifications_desc">Достъп до уведомленията от други устройства</string>
<string name="plugin_not_available">Тази функция не е налична във вашата версия на Андроид</string>
<string name="device_list_empty">Няма устройства</string>
<string name="ok">Добре</string>
<string name="cancel">Отказ</string>
@@ -30,31 +28,31 @@
<item>Above Default</item>
<item>Fastest</item>
</string-array>
<string-array name="mousepad_acceleration_profile_entries">
<item>No Acceleration</item>
<item>Weakest</item>
<item>Weaker</item>
<item>Medium</item>
<item>Stronger</item>
<item>Strongest</item>
</string-array>
<string name="category_connected_devices">Свързани устройства</string>
<string name="category_remembered_devices">Запомнени устройства</string>
<string name="plugins_failed_to_load">Неуспешно зареждане на приставки (докоснете за подробности)</string>
<string name="device_menu_unpair">Разкачване</string>
<string name="unknown_device">Неизвестно устройство</string>
<string name="error_not_reachable">Устройството е недостъпно</string>
<string name="error_already_requested">Вече е заявено сдвояване</string>
<string name="error_already_paired">Устройството вече е сдвоено</string>
<string name="error_could_not_send_package">Пакетът не може да бъде изпратен</string>
<string name="error_timed_out">Просрочка</string>
<string name="error_canceled_by_user">Отхвърлена от потребителя</string>
<string name="error_canceled_by_other_peer">Отказана от другата страна</string>
<string name="error_invalid_key">Получен е неправилен ключ</string>
<string name="pair_requested">Заявено е сдвояване</string>
<string name="pairing_request_from">Заявено е сдвояване от %1s</string>
<string name="tap_to_answer">Докоснете за да отговорите</string>
<string name="reconnect">Ново свързване</string>
<string name="device_not_paired">Устройството не е сдвоено</string>
<string name="request_pairing">Заявка за сдвояване</string>
<string name="pairing_accept">Приемане</string>
<string name="pairing_reject">Отхвърляне</string>
<string name="device">Устройство</string>
<string name="pair_device">Сдвояване с устройството</string>
<string name="remote_control">Отдалечен контрол</string>
<string name="settings">Настройки на KDE Connect</string>
<string name="mpris_play">Възпроизвеждане</string>
<string name="mpris_previous">Предишен</string>
<string name="mpris_rew">Превъртане назад</string>
@@ -68,11 +66,6 @@
<item>1 minute</item>
<item>2 minutes</item>
</string-array>
<string name="share_to">Споделяне...</string>
<string name="protocol_version_older">Това устройство използва стара версия на протокола</string>
<string name="protocol_version_newer">Това устройство използва по-нова версия на протокола</string>
<string name="general_settings">Общи настройки</string>
<string name="device_name">Име на устройството</string>
<string name="device_name_preference_summary">%s</string>
<string name="invalid_device_name">Невалидно име на устройство</string>
</resources>

View File

@@ -1,7 +1,6 @@
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="pref_plugin_telephony">Telefonski obavještavač</string>
<string name="pref_plugin_telephony_desc">Pošalji notifikacije za SMS i pozive</string>
<string name="pref_plugin_battery">Baterijski izvještaj</string>
<string name="pref_plugin_battery_desc">Periodično javi baterijski status</string>
<string name="pref_plugin_sftp">Otkrivanje datotečnog sistema</string>
@@ -12,7 +11,6 @@
<string name="pref_plugin_ping_desc">Šalji i primaj ping-ove</string>
<string name="pref_plugin_notifications">Sinhronizovano obavještenje</string>
<string name="pref_plugin_notifications_desc">Pristupite vašim notifikacijama sa drugog uređaja</string>
<string name="plugin_not_available">Ovo svojstvo nije dostupno i vašoj Android verziji</string>
<string name="device_list_empty">Nema uređaja</string>
<string name="ok">OK</string>
<string name="cancel">Prekini</string>
@@ -33,36 +31,30 @@
<item>Above Default</item>
<item>Fastest</item>
</string-array>
<string-array name="mousepad_acceleration_profile_entries">
<item>No Acceleration</item>
<item>Weakest</item>
<item>Weaker</item>
<item>Medium</item>
<item>Stronger</item>
<item>Strongest</item>
</string-array>
<string name="category_connected_devices">Spojeni uređaji</string>
<string name="category_not_paired_devices">Dostupni uređaji</string>
<string name="category_remembered_devices">Zapamćeni uređaji</string>
<string name="plugins_failed_to_load">Dodaci se nisu uspjeli učitati (kucnite za više informacija):</string>
<string name="device_menu_plugins">Postavke dodatka</string>
<string name="device_menu_unpair">Razdvoji</string>
<string name="device_not_reachable">Upareni uređaj nije dostupan</string>
<string name="unknown_device">Nepoznat uređaj</string>
<string name="error_not_reachable">Uređaj nije dostupan</string>
<string name="error_already_requested">Uparivanje već zatraženo</string>
<string name="error_already_paired">Uređaj već uparen</string>
<string name="error_could_not_send_package">Nije moguće poslati paket</string>
<string name="error_timed_out">Isteklo</string>
<string name="error_canceled_by_user">Prekinuo korisnik</string>
<string name="error_canceled_by_other_peer">Prekinuo drugi korisnik</string>
<string name="error_invalid_key">Primljen pogrešan ključ</string>
<string name="pair_requested">Uparivanje zatraženo</string>
<string name="pairing_request_from">Uparivanje zatraženo od %1s</string>
<string name="received_url_title">Primljena veza od %1s</string>
<string name="received_url_text">Kucni za otvaranje \'%1s\'</string>
<string name="incoming_file_title">Dolazna datoteka od %1s</string>
<string name="incoming_file_text">%1s</string>
<string name="outgoing_file_title">Slanje datoteke na %1s</string>
<string name="received_file_title">Primljena datoteka od %1s</string>
<string name="received_file_text">Kucni za otvaranje \'%1s\'</string>
<string name="sent_file_title">Poslana datoteka na %1s</string>
<string name="sent_file_text">%1s</string>
<string name="sent_file_failed_text">%1s</string>
<string name="tap_to_answer">Kucni za odgovor</string>
<string name="reconnect">Ponovo uspostavi vezu</string>
<string name="right_click">Pošalji Desni Klik</string>
<string name="middle_click">Pošalji Srednji Klik</string>
<string name="show_keyboard">Pokaži Tastaturu</string>
@@ -70,19 +62,13 @@
<string name="request_pairing">Zatraži uparivanje</string>
<string name="pairing_accept">Prihvati</string>
<string name="pairing_reject">Odbij</string>
<string name="device">Uređaj</string>
<string name="pair_device">Upari uređaj</string>
<string name="remote_control">Daljinska kontrola</string>
<string name="settings">KDE Postavke Veze</string>
<string name="mpris_play">Reprodukuj</string>
<string name="mpris_previous">Prethodni</string>
<string name="mpris_rew">Premotaj</string>
<string name="mpris_ff">Ubrzano</string>
<string name="mpris_next">Sljedeći</string>
<string name="mpris_volume">Glasnoća</string>
<string name="mpris_settings">Postavke multimedije</string>
<string name="mpris_time_settings_title">Dugmad za naprijed/premotavanje</string>
<string name="mpris_time_settings_summary">Postavi vrijeme na ubrzano ili premotaj multimedijalnu datoteku.</string>
<string-array name="mpris_time_entries">
<item>10 sekundi</item>
<item>20 sekundi</item>
@@ -90,14 +76,8 @@
<item>1 minuta</item>
<item>2 minute</item>
</string-array>
<string name="share_to">Podijeli na...</string>
<string name="protocol_version_older">Ovaj uređaj koristi staru verziju protokola</string>
<string name="protocol_version_newer">Ovaj uređaj koristi noviju verziju protokola</string>
<string name="general_settings">Opšte postavke</string>
<string name="plugin_settings">Postavke</string>
<string name="plugin_settings_with_name">%s Postavke</string>
<string name="device_name">Naziv uređaja</string>
<string name="device_name_preference_summary">%s</string>
<string name="invalid_device_name">Pogrešnan naziv uređaja</string>
<string name="shareplugin_text_saved">Primljeni tekst, spašen u ormarić</string>
<string name="custom_devices_settings">Lista vlastitih uređaja</string>
@@ -106,15 +86,9 @@
<string name="share_notification_preference_summary">Vibriraj i reprodukuj zvuk kad se prima datoteka</string>
<string name="title_activity_notification_filter">Filter napomena</string>
<string name="filter_apps_info">Notifikacije će biti sinhronizovane s izabranim aplikacijama.</string>
<string name="sftp_internal_storage">Unutrašnji smještaj</string>
<string name="sftp_all_files">Sve fajlove</string>
<string name="sftp_sdcard_num">SD kartica %d</string>
<string name="sftp_sdcard">SD kartica</string>
<string name="sftp_readonly">(samo za čitanje)</string>
<string name="sftp_camera">Slike sa kamere</string>
<string name="add_host">Dodaj host/IP</string>
<string name="add_host_hint">IP ili ime računara</string>
<string name="no_players_connected">Nema nađenih igrača</string>
<string name="custom_dev_list_help">Koristite ovu opciju samo ako vaš uređaj nije automatski otkriven. Unesite IP adresu ili ime hosta i dodirnite dugme da dodate na listu. Dodirnite postojeće dume da uklonite s liste.</string>
<string name="mpris_player_on_device">%1$s na %2$s</string>
</resources>

View File

@@ -1,8 +1,11 @@
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="kde_connect">KDE Connect</string>
<string name="foreground_notification_no_devices">No està connectat a cap dispositiu</string>
<string name="foreground_notification_devices">Connectat a: %s</string>
<string name="pref_plugin_telephony">Notificador de la telefonia</string>
<string name="pref_plugin_telephony_desc">Envia notificacions pels SMS i les trucades</string>
<string name="pref_plugin_battery">Informe de la bateria</string>
<string name="pref_plugin_telephony_desc">Envia notificacions per a les trucades entrants</string>
<string name="pref_plugin_battery">Informa de la bateria</string>
<string name="pref_plugin_battery_desc">Informa periòdicament sobre l\'estat de la bateria</string>
<string name="pref_plugin_sftp">Exposa el sistema de fitxers</string>
<string name="pref_plugin_sftp_desc">Permet navegar de forma remota pel sistema de fitxers del dispositiu</string>
@@ -10,26 +13,31 @@
<string name="pref_plugin_clipboard_desc">Comparteix el contingut del porta-retalls</string>
<string name="pref_plugin_mousepad">Entrada remota</string>
<string name="pref_plugin_mousepad_desc">Usa el vostre telèfon o tauleta com un ratolí i un teclat</string>
<string name="pref_plugin_remotekeyboard">S\'estan rebent pulsacions de tecla remotes</string>
<string name="pref_plugin_remotekeyboard_desc">S\'estan rebent esdeveniments de pulsacions de tecla des de dispositius remots</string>
<string name="pref_plugin_presenter">Presentació de diapositives remota</string>
<string name="pref_plugin_presenter_desc">Usa el dispositiu per a canviar les dispositives d\'una presentació</string>
<string name="pref_plugin_remotekeyboard">Rep les pulsacions remotes de tecla</string>
<string name="pref_plugin_remotekeyboard_desc">Rep els esdeveniments de pulsacions de tecla des de dispositius remots</string>
<string name="pref_plugin_mpris">Controls multimèdia</string>
<string name="pref_plugin_mpris_desc">Proporciona un comandament a distància pel reproductor multimèdia</string>
<string name="pref_plugin_runcommand">Executa una ordre</string>
<string name="pref_plugin_runcommand_desc">Activa les ordres remotes des del telèfon o tauleta</string>
<string name="pref_plugin_contacts">Sincronitzador dels contactes</string>
<string name="pref_plugin_contacts_desc">Permet sincronitzar la llibreta de contactes del dispositiu</string>
<string name="pref_plugin_ping">Ping</string>
<string name="pref_plugin_ping_desc">Envia i rep els pings</string>
<string name="pref_plugin_ping_desc">Envia i rep els «ping»</string>
<string name="pref_plugin_notifications">Sincronitza les notificacions</string>
<string name="pref_plugin_notifications_desc">Accedeix a les vostres notificacions des d\'altres dispositius</string>
<string name="pref_plugin_receive_notifications">Recepció de les notificacions</string>
<string name="pref_plugin_receive_notifications">Rep les notificacions</string>
<string name="pref_plugin_receive_notifications_desc">Rep notificacions des d\'altres dispositius i mostrar-los a l\'Android</string>
<string name="pref_plugin_sharereceiver">Comparteix i rep</string>
<string name="pref_plugin_sharereceiver_desc">Comparteix els fitxers i els URL entre els dispositius</string>
<string name="plugin_not_available">Aquesta característica no està disponible en la vostra versió d\'Android</string>
<string name="device_list_empty">No hi ha cap dispositiu</string>
<string name="ok">D\'acord</string>
<string name="cancel">Cancel·la</string>
<string name="open_settings">Obre l\'arranjament</string>
<string name="no_permissions">Us caldrà concedir permís per accedir a les notificacions</string>
<string name="no_permission_mprisreceiver">Per a poder controlar els reproductors multimèdia cal atorgar accés a les notificacions</string>
<string name="no_permissions_remotekeyboard">Per a rebre les pulsacions de tecles, haureu d\'activar el teclat remot del KDE Connect</string>
<string name="send_ping">Envia un ping</string>
<string name="open_mpris_controls">Control multimèdia</string>
<string name="remotekeyboard_editing_only_title">Fes servir les tecles remotes només en editar</string>
@@ -41,6 +49,7 @@
<string name="mousepad_double_tap_settings_title">Estableix l\'acció de tocar amb dos dits</string>
<string name="mousepad_triple_tap_settings_title">Estableix l\'acció de tocar amb tres dits</string>
<string name="mousepad_sensitivity_settings_title">Estableix la sensibilitat del ratolí tàctil</string>
<string name="mousepad_acceleration_profile_settings_title">Estableix l\'acceleració de l\'apuntador</string>
<string name="mousepad_scroll_direction_title">Inverteix la direcció del desplaçament</string>
<string-array name="mousepad_tap_entries">
<item>Clic dret</item>
@@ -54,48 +63,68 @@
<item>Ràpida</item>
<item>La més ràpida</item>
</string-array>
<string-array name="mousepad_acceleration_profile_entries">
<item>Sense acceleració</item>
<item>La més feble</item>
<item>Feble</item>
<item>Mitjana</item>
<item>Forta</item>
<item>La més forta</item>
</string-array>
<string name="category_connected_devices">Dispositius connectats</string>
<string name="category_not_paired_devices">Dispositius disponibles</string>
<string name="category_remembered_devices">Dispositius recordats</string>
<string name="plugins_failed_to_load">Els connectors han fallat en carregar-los (puntegeu per a més informació):</string>
<string name="device_menu_plugins">Arranjament del connector</string>
<string name="device_menu_unpair">Desparella</string>
<string name="device_not_reachable">No s\'ha pogut accedir al dispositiu parell</string>
<string name="pair_new_device">Aparella amb un dispositiu nou</string>
<string name="unknown_device">Dispositiu desconegut</string>
<string name="error_not_reachable">No es pot accedir al dispositiu</string>
<string name="error_already_requested">Ja s\'ha demanat aparellar</string>
<string name="error_already_paired">El dispositiu ja està aparellat</string>
<string name="error_could_not_send_package">No s\'ha pogut enviar el paquet</string>
<string name="error_timed_out">Ha excedit el temps</string>
<string name="error_canceled_by_user">Cancel·lat per l\'usuari</string>
<string name="error_canceled_by_other_peer">Cancel·lat per l\'altre parell</string>
<string name="error_invalid_key">S\'ha rebut una clau no vàlida</string>
<string name="encryption_info_title">Informació de l\'encriptatge</string>
<string name="encryption_info_msg_no_ssl">L\'altre dispositiu no usa una versió recent del KDE Connect, s\'utilitzarà el mètode d\'encriptatge antic.</string>
<string name="my_device_fingerprint">L\'empremta digital SHA1 del certificat del vostre dispositiu és:</string>
<string name="remote_device_fingerprint">L\'empremta digital SHA1 del certificat del dispositiu remot és:</string>
<string name="pair_requested">S\'ha demanat aparellar</string>
<string name="pairing_request_from">S\'ha demanat aparellar des de %1s</string>
<string name="received_url_title">S\'ha rebut un vincle des de %1s</string>
<string name="received_url_text">Puntegeu per obrir «%1s»</string>
<string name="incoming_file_title">Fitxer entrant des de %1s</string>
<string name="incoming_file_text">%1s</string>
<string name="outgoing_file_title">S\'està enviant el fitxer a %1s</string>
<string name="outgoing_files_title">S\'estan enviant fitxers a %1s</string>
<plurals name="outgoing_files_text">
<item quantity="one">S\'ha enviat %1$d fitxer</item>
<item quantity="other">S\'ha enviat %1$d de %2$d fitxers</item>
<plurals name="incoming_file_title">
<item quantity="one">S\'està rebent %1$d fitxer des de %2$s</item>
<item quantity="other">S\'estan rebent %1$d fitxers des de %2$s</item>
</plurals>
<plurals name="incoming_files_text">
<item quantity="one">Fitxer: %1s</item>
<item quantity="other">(Fitxer %2$d de %3$d): %1$s</item>
</plurals>
<plurals name="outgoing_file_title">
<item quantity="one">S\'està enviant el fitxer %1$d a %2$s</item>
<item quantity="other">S\'estan enviant els fitxers %1$d a %2$s</item>
</plurals>
<plurals name="outgoing_files_text">
<item quantity="one">Fitxer: %1$s</item>
<item quantity="other">(Fitxer %2$d de %3$d): %1$s</item>
</plurals>
<plurals name="received_files_title">
<item quantity="one">S\'ha rebut un fitxer des de %1$s</item>
<item quantity="other">S\'han rebut %2$d fitxers des de %1$s</item>
</plurals>
<plurals name="received_files_fail_title">
<item quantity="one">Ha fallat en rebre un fitxer des de %1$s</item>
<item quantity="other">Ha fallat en rebre %2$d de %3$d fitxers des de %1$s</item>
</plurals>
<plurals name="sent_files_title">
<item quantity="one">Fitxer enviat a %1$s</item>
<item quantity="other">%2$d fitxers enviats a %1$s</item>
</plurals>
<plurals name="send_files_fail_title">
<item quantity="one">Ha fallat en enviar el fitxer a %1$s</item>
<item quantity="other">Ha fallat en enviar %2$d de %3$d fitxers a %1$s</item>
</plurals>
<string name="received_file_title">Fitxer rebut des de %1s</string>
<string name="received_file_fail_title">Ha fallat en rebre el fitxer des de %1s</string>
<string name="received_file_text">Puntegeu per obrir «%1s»</string>
<string name="sent_file_title">Fitxer enviat a %1s</string>
<string name="sent_file_text">%1s</string>
<string name="sent_file_failed_title">Ha fallat en enviar el fitxer a %1s</string>
<string name="sent_file_failed_text">%1s</string>
<string name="cannot_create_file">No s\'ha pogut crear el fitxer %s</string>
<string name="tap_to_answer">Puntegeu per a respondre</string>
<string name="reconnect">Reconnecta</string>
<string name="right_click">Envia un clic del botó dret</string>
<string name="middle_click">Envia un clic del botó del mig</string>
<string name="show_keyboard">Mostra el teclat</string>
@@ -103,10 +132,7 @@
<string name="request_pairing">Demana aparellar</string>
<string name="pairing_accept">Accepta</string>
<string name="pairing_reject">Rebutja</string>
<string name="device">Dispositiu</string>
<string name="pair_device">Dispositiu parell</string>
<string name="remote_control">Comandament a distància</string>
<string name="settings">Arranjament del KDE Connect</string>
<string name="settings">Arranjament</string>
<string name="mpris_play">Reprodueix</string>
<string name="mpris_pause">Pausa</string>
<string name="mpris_previous">Anterior</string>
@@ -114,9 +140,8 @@
<string name="mpris_ff">Avanç ràpid</string>
<string name="mpris_next">Següent</string>
<string name="mpris_volume">Volum</string>
<string name="mpris_settings">Arranjament multimèdia</string>
<string name="mpris_time_settings_title">Botons per avançar o rebobinar</string>
<string name="mpris_time_settings_summary">Ajusta el temps per avançar o rebobinar quan es toca.</string>
<string name="mpris_time_settings_summary">Ajusta el temps per avançar o rebobinar quan es toca</string>
<string-array name="mpris_time_entries">
<item>10 segons</item>
<item>20 segons</item>
@@ -125,79 +150,130 @@
<item>2 minuts</item>
</string-array>
<string name="mpris_notification_settings_title">Mostra les notificacions dels reproductors</string>
<string name="mpris_notification_settings_summary">Permet controlar els reproductors multimèdia sense obrir el KDE Connect.</string>
<string name="mpris_notification_settings_summary">Permet controlar els reproductors multimèdia sense obrir el KDE Connect</string>
<string name="share_to">Comparteix amb...</string>
<string name="protocol_version_older">Aquest dispositiu usa una versió antiga del protocol</string>
<string name="protocol_version_newer">Aquest dispositiu usa una versió nova del protocol</string>
<string name="general_settings">Arranjament general</string>
<string name="plugin_settings">Arranjament</string>
<string name="plugin_settings_with_name">Ajustaments del %s</string>
<string name="device_name">Nom del dispositiu</string>
<string name="device_name_preference_summary">%s</string>
<string name="invalid_device_name">El nom del dispositiu no és vàlid</string>
<string name="shareplugin_text_saved">S\'ha rebut text i s\'ha desat al porta-retalls</string>
<string name="custom_devices_settings">Llista personalitzada de dispositius</string>
<string name="pair_device_action">Aparella amb un dispositiu nou</string>
<string name="unpair_device_action">Desparella %s</string>
<string name="custom_device_list">Afegeix dispositius per la IP</string>
<string name="custom_device_deleted">S\'ha suprimit un dispositiu personalitzat</string>
<string name="custom_device_list_help">Si el dispositiu no es detecta automàticament, podeu afegir la seva adreça IP o el nom de la màquina fent clic al botó flotant d\'acció</string>
<string name="custom_device_fab_hint">Afegeix un dispositiu</string>
<string name="undo">Desfés</string>
<string name="share_notification_preference">Rebombori de les notificacions</string>
<string name="share_notification_preference_summary">Vibra i reprodueix un so en rebre un fitxer</string>
<string name="share_destination_customize">Personalitza el directori de destinació</string>
<string name="share_destination_customize_summary_disabled">Els fitxers rebuts apareixeran a Baixades</string>
<string name="share_destination_customize_summary_enabled">Els fitxers seran emmagatzemats al directori de sota</string>
<string name="share_destination_folder_preference">Directori de destinació</string>
<string name="share">Comparteix</string>
<string name="share_received_file">Comparteix «%s»</string>
<string name="title_activity_notification_filter">Filtre per a les notificacions</string>
<string name="filter_apps_info">Les notificacions se sincronitzaran per a les aplicacions seleccionades.</string>
<string name="sftp_internal_storage">Emmagatzematge intern</string>
<string name="sftp_all_files">Tots els fitxers</string>
<string name="sftp_sdcard_num">Targeta SD %d</string>
<string name="sftp_sdcard">Targeta SD</string>
<string name="sftp_readonly">(només de lectura)</string>
<string name="sftp_camera">Imatges de la càmera</string>
<string name="add_host">Afegeix una màquina/IP</string>
<string name="add_host_hint">Nom de la màquina o IP</string>
<string name="add_device_dialog_title">Afegeix un dispositiu</string>
<string name="add_device_hint">Nom de la màquina o adreça IP</string>
<string name="sftp_preference_detected_sdcards">S\'han detectat targetes SD</string>
<string name="sftp_preference_edit_sdcard_title">Edita una targeta SD</string>
<string name="sftp_preference_configured_storage_locations">Ubicacions d\'emmagatzematge configurades</string>
<string name="sftp_preference_add_storage_location_title">Afegeix una ubicació d\'emmagatzematge</string>
<string name="sftp_preference_edit_storage_location">Edita una ubicació d\'emmagatzematge</string>
<string name="sftp_preference_add_camera_shortcut">Afegeix una drecera a la carpeta de càmera</string>
<string name="sftp_preference_add_camera_shortcut_summary_on">Afegeix una drecera a la carpeta de la càmera</string>
<string name="sftp_preference_add_camera_shortcut_summary_off">No afegeixis cap drecera a la carpeta de la càmera</string>
<string name="sftp_storage_preference_storage_location">Ubicació d\'emmagatzematge</string>
<string name="sftp_storage_preference_storage_location_already_configured">Aquesta ubicació ja s\'ha configurat</string>
<string name="sftp_storage_preference_click_to_select">clic per seleccionar</string>
<string name="sftp_storage_preference_display_name">Nom a mostrar</string>
<string name="sftp_storage_preference_display_name_already_used">Aquest nom a mostrar ja està en ús</string>
<string name="sftp_storage_preference_display_name_cannot_be_empty">El nom a mostrar no pot estar buit</string>
<string name="sftp_action_mode_menu_delete">Suprimeix</string>
<string name="sftp_no_sdcard_detected">No s\'ha detectat cap targeta SD</string>
<string name="sftp_no_storage_locations_configured">No s\'ha configurat cap ubicació d\'emmagatzematge</string>
<string name="sftp_saf_permission_explanation">Per accedir remotament als fitxer cal configurar les ubicacions d\'emmagatzematge</string>
<string name="no_players_connected">No s\'ha trobat cap reproductor</string>
<string name="custom_dev_list_help">Empreu aquesta opció només si el dispositiu no és detectat automàticament. Introduïu a sota l\'adreça IP o nom de la màquina i premeu el botó per afegir-lo a la llista. Seleccioneu un element existent per eliminar-lo de la llista.</string>
<string name="mpris_player_on_device">%1$s sobre el %2$s</string>
<string name="send_files">Envia els fitxers</string>
<string name="pairing_title">Dispositius del KDE Connect</string>
<string name="pairing_description">Els altres dispositius que executin el KDE Connect a la mateixa xarxa han d\'aparèixer aquí.</string>
<string name="device_paired">Dispositiu aparellat</string>
<string name="device_rename_title">Reanomena el dispositiu</string>
<string name="device_rename_confirm">Reanomena</string>
<string name="refresh">Refresca</string>
<string name="unreachable_description">Aquest dispositiu aparellat no és accessible. Assegureu-vos que està connectat a la mateixa xarxa.</string>
<string name="on_data_message">Sembla que esteu amb una connexió de dades mòbils. El KDE Connect només funciona amb xarxes locals.</string>
<string name="no_wifi">No esteu connectat a una xarxa Wi-Fi, per tant, no podreu veure cap dispositiu. Feu clic aquí per activar la Wi-Fi.</string>
<string name="no_file_browser">No hi ha instal·lat cap explorador de fitxers.</string>
<string name="pref_plugin_telepathy">Envia un SMS</string>
<string name="pref_plugin_telepathy_desc">Envia missatges de text des de l\'escriptori</string>
<string name="plugin_not_supported">Aquest connector no és admès pel dispositiu</string>
<string name="findmyphone_title">Cerca el meu telèfon</string>
<string name="findmyphone_title_tablet">Cerca la meva tauleta</string>
<string name="findmyphone_description">Fa sonar aquest dispositiu perquè el pugueu trobar.</string>
<string name="findmyphone_title">Troba el meu telèfon</string>
<string name="findmyphone_title_tablet">Troba la meva tauleta</string>
<string name="findmyphone_title_tv">Troba la meva TV</string>
<string name="findmyphone_description">Fa sonar aquest dispositiu perquè el pugueu trobar</string>
<string name="findmyphone_found">L\'he trobat</string>
<string name="open">Obre</string>
<string name="close">Tanca</string>
<string name="no_permissions_storage">Us caldrà concedir permís per accedir a l\'emmagatzematge</string>
<string name="plugins_need_permission">Alguns connectors necessiten permisos per a funcionar (puntegeu per a més informació):</string>
<string name="permission_explanation">Aquest connector necessita permisos per a funcionar</string>
<string name="optional_permission_explanation">Us caldrà concedir permisos extres per accedir a totes les característiques</string>
<string name="plugins_need_optional_permission">Alguns connectors tenen característiques desactivades per la falta de permís (puntegeu per a més informació):</string>
<string name="sftp_permission_explanation">Per accedir als fitxers des del PC, l\'aplicació necessita permís per accedir a l\'emmagatzematge del telèfon</string>
<string name="share_optional_permission_explanation">Per a compartir fitxers entre el telèfon i l\'escriptori, haureu de donar accés a l\'emmagatzematge del telèfon</string>
<string name="telepathy_permission_explanation">Per a llegir i escriure SMS des de l\'escriptori, haureu de donar permís als SMS</string>
<string name="telephony_permission_explanation">Per a veure les trucades telefòniques i SMS des de l\'escriptori, haureu de donar permís a les trucades telefòniques i SMS</string>
<string name="telephony_permission_explanation">Per a veure les trucades telefòniques des de l\'escriptori, haureu de donar permís d\'accés al registre de trucades telefòniques i a l\'estat del telèfon</string>
<string name="telephony_optional_permission_explanation">Per a veure un nom de contacte en comptes d\'un número de telèfon, haureu de donar permís als contactes del telèfon</string>
<string name="contacts_permission_explanation">Per a compartir els vostres contactes amb l\'escriptori, caldrà que els hi doneu permís</string>
<string name="select_ringtone">Seleccioneu un to de la trucada</string>
<string name="telephony_pref_blocked_title">Nombres blocats</string>
<string name="telephony_pref_blocked_dialog_desc">No es mostren ni les trucades ni els SMS d\'aquests números. Especifiqueu un número per línia</string>
<string name="mpris_coverart_description">Caràtula del suport actual</string>
<string name="device_icon_description">Icona del dispositiu</string>
<string name="settings_icon_description">Icona d\'arranjament</string>
<string name="presenter_fullscreen">Pantalla completa</string>
<string name="presenter_exit">Surt de la presentació</string>
<string name="presenter_lock_tip">Podeu bloquejar el dispositiu i emprar les tecles de volum per anar a la diapositiva anterior/següent</string>
<string name="add_command">Afegeix una ordre</string>
<string name="addcommand_name">Nom</string>
<string name="addcommand_command">Ordre</string>
<string name="command_confirm_needed">Cal confirmar l\'ordre a l\'escriptori</string>
<string name="addcommand_explanation">No hi ha cap ordre registrada</string>
<string name="addcommand_explanation2">Podeu afegir ordres noves a l\'Arranjament del sistema del KDE Connect</string>
<string name="add_command_description">Podeu afegir ordres per a l\'escriptori</string>
<string name="pref_plugin_mprisreceiver">Control del reproductor multimèdia</string>
<string name="pref_plugin_mprisreceiver_desc">Controla els reproductors multimèdia del telèfon des d\'un altre dispositiu</string>
<string name="notification_channel_default">Altres notificacions</string>
<string name="notification_channel_persistent">Indicador de persistent</string>
<string name="notification_channel_media_control">Control multimèdia</string>
<string name="notification_channel_filetransfer">Transferència de fitxers</string>
<string name="mpris_stop">Atura el reproductor actual</string>
<string name="copy_url_to_clipboard">Copia l\'URL al porta-retalls</string>
<string name="clipboard_toast">Copiat al porta-retalls</string>
<string name="runcommand_notreachable">No es pot accedir al dispositiu</string>
<string name="runcommand_notpaired">El dispositiu no està aparellat</string>
<string name="runcommand_nosuchdevice">No existeix aquest dispositiu</string>
<string name="runcommand_noruncommandplugin">Aquest dispositiu no té el connector d\'executar ordres activat</string>
<string name="pref_plugin_findremotedevice">Cerca el dispositiu remot</string>
<string name="pref_plugin_findremotedevice_desc">Truca al dispositiu remot</string>
<string name="ring">Truca</string>
<string name="pref_plugin_systemvolume">Volum del sistema</string>
<string name="pref_plugin_systemvolume_desc">Controla el volum del sistema des del dispositiu remot</string>
<string name="mute">Silencia</string>
<string name="all">Tot</string>
<string name="devices">Dispositius</string>
<string name="settings_rename">Nom del dispositiu</string>
<string name="settings_dark_mode">Tema fosc</string>
<string name="settings_more_settings_title">Més ajustaments</string>
<string name="settings_more_settings_text">Els ajustaments per dispositiu es poden trobar a «Arranjament del connector» des d\'un dispositiu.</string>
<string name="setting_persistent_notification">Mostra les notificacions persistents</string>
<string name="setting_persistent_notification_oreo">Notificacions persistents</string>
<string name="setting_persistent_notification_description">Tocar per a des/activar els ajustaments de les notificacions</string>
<string name="extra_options">Opcions extres</string>
<string name="privacy_options">Opcions de privadesa</string>
<string name="set_privacy_options">Establiu les opcions de privadesa</string>
<string name="block_contents">Bloca el contingut de les notificacions</string>
<string name="block_images">Bloca les imatges a les notificacions</string>
<string name="notification_channel_receivenotification">Notificacions des d\'altres dispositius</string>
<string name="take_picture">Llança la càmera</string>
<string name="plugin_photo_desc">Llança l\'aplicació de la càmera per facilitar la presa i la transferència de fotografies</string>
<string name="no_app_for_opening">No s\'ha trobat cap aplicació adequada per obrir aquest fitxer</string>
<string name="remote_keyboard_service">Teclat remot del KDE Connect</string>
<string name="presenter_pointer">Apuntador</string>
</resources>

View File

@@ -1,7 +1,10 @@
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="kde_connect">KDE Connect</string>
<string name="foreground_notification_no_devices">Žádná připojená zařízení</string>
<string name="foreground_notification_devices">Připojen k: %s</string>
<string name="pref_plugin_telephony">Upozornění telefonie</string>
<string name="pref_plugin_telephony_desc">Posílat upozornění na SMS a hovory</string>
<string name="pref_plugin_telephony_desc">Posílat upozornění na příchozí hovory</string>
<string name="pref_plugin_battery">Hlášení baterie</string>
<string name="pref_plugin_battery_desc">Periodicky hlásit stav baterky</string>
<string name="pref_plugin_sftp">Přístup k souborovému systému</string>
@@ -10,12 +13,16 @@
<string name="pref_plugin_clipboard_desc">Sdílet obsah schránky</string>
<string name="pref_plugin_mousepad">Vzdálený vstup</string>
<string name="pref_plugin_mousepad_desc">Používejte svůj telefon nebo tablet jako touchpad a klávesnici</string>
<string name="pref_plugin_presenter">Ovladač promítání</string>
<string name="pref_plugin_presenter_desc">Použijte své zařízení pro přepínání snímků prezentace</string>
<string name="pref_plugin_remotekeyboard">Přijímat stisky kláves se vzdálených zařízení</string>
<string name="pref_plugin_remotekeyboard_desc">Přijímat události stisku kláves ze vzdálených zařízení</string>
<string name="pref_plugin_mpris">Ovládání multimédií</string>
<string name="pref_plugin_mpris_desc">Poskytuje dálkové ovládání přehrávačů médií</string>
<string name="pref_plugin_runcommand">Spustit příkaz</string>
<string name="pref_plugin_runcommand_desc">Spouštějte příkazy vzdáleně z vašeho telefonu</string>
<string name="pref_plugin_contacts">Synchronizace kontaktů</string>
<string name="pref_plugin_contacts_desc">Povolit synchronizaci kontaktů zařízení</string>
<string name="pref_plugin_ping">Ping</string>
<string name="pref_plugin_ping_desc">Posílat a přijímat ping</string>
<string name="pref_plugin_notifications">Synchronizace upozornění</string>
@@ -24,12 +31,13 @@
<string name="pref_plugin_receive_notifications_desc">Přijímat oznámení z jiného zařízení a zobrazovat je v Androidu</string>
<string name="pref_plugin_sharereceiver">Sdílet a přijmout</string>
<string name="pref_plugin_sharereceiver_desc">Sdílet soubory a odkazy mezi zařízeními</string>
<string name="plugin_not_available">Tato vlastnost není pro vaši verzi Androidu platná</string>
<string name="device_list_empty">Žádná zařízení</string>
<string name="ok">OK</string>
<string name="cancel">Zrušit</string>
<string name="open_settings">Otevřít nastavení</string>
<string name="no_permissions">Pro zpřístupnění upozornění potřebujete oprávnění</string>
<string name="no_permission_mprisreceiver">Abyste byli schopni ovládat vaše přehrávače médií, musíte udělit přístup k oznámením</string>
<string name="no_permissions_remotekeyboard">Pro zachytávání stisků kláves je potřeba aktivovat vzdálenou klávesnici KDE Connect</string>
<string name="send_ping">Poslat ping</string>
<string name="open_mpris_controls">Ovládání multimédií</string>
<string name="remotekeyboard_editing_only_title">Ovládat vzdálené klávesy při editaci</string>
@@ -37,9 +45,11 @@
<string name="remotekeyboard_connected">Vzdálené připojení klávesnice je aktivní</string>
<string name="remotekeyboard_multiple_connections">Je k dispozici více než jedno připojení klávesnice. Vyberte zařízení pro jeho nastavení.</string>
<string name="open_mousepad">Vzdálený vstup</string>
<string name="mousepad_info">Pohybujte prstem po obrazovce pro pohybování kurzorem myši. Ťukněte pro kliknutí a použijte dva/tři prsty jako pravé a prostřední tlačítko. Použijte 2 prsty pro posunování. Pro přetažení dlouze podržte.</string>
<string name="mousepad_double_tap_settings_title">Nastavit činnost pro ťuknutí dvěma prsty</string>
<string name="mousepad_triple_tap_settings_title">Nastavit činnost pro ťuknutí třemi prsty</string>
<string name="mousepad_sensitivity_settings_title">Nastavit citlivost touchpadu</string>
<string name="mousepad_acceleration_profile_settings_title">Nastavit akceleraci ukazatele</string>
<string name="mousepad_scroll_direction_title">Obrácený směr posunu</string>
<string-array name="mousepad_tap_entries">
<item>Kliknutí pravým tlačítkem myši</item>
@@ -53,44 +63,84 @@
<item>Rychlejší</item>
<item>Nejrychlejší</item>
</string-array>
<string-array name="mousepad_acceleration_profile_entries">
<item>Bez akcelerace</item>
<item>Nejslabší</item>
<item>Slabší</item>
<item>Střední</item>
<item>Silná</item>
<item>Nejsilnější</item>
</string-array>
<string name="category_connected_devices">Připojená zařízení</string>
<string name="category_not_paired_devices">Dostupná zařízení</string>
<string name="category_remembered_devices">Zapamatovaná zařízení</string>
<string name="plugins_failed_to_load">Moduly nebyly načteny (ťukněte pro více informací):</string>
<string name="device_menu_plugins">Nastavení modulů</string>
<string name="device_menu_unpair">Zrušit párování</string>
<string name="device_not_reachable">Spárované zařízení je nedostupné</string>
<string name="pair_new_device">Spárovat nové zařízení</string>
<string name="unknown_device">Neznámé zařízení</string>
<string name="error_not_reachable">Zařízení je nedostupné</string>
<string name="error_already_requested">Párování již bylo vyžádáno</string>
<string name="error_already_paired">Zařízení je již spárováno</string>
<string name="error_could_not_send_package">Balíček nelze poslat</string>
<string name="error_timed_out">Čas vypršel</string>
<string name="error_canceled_by_user">Přerušeno uživatelem</string>
<string name="error_canceled_by_other_peer">Přerušeno druhým uživatelem</string>
<string name="error_invalid_key">Byl přijat neplatný klíč</string>
<string name="encryption_info_title">Informace o šifrování</string>
<string name="encryption_info_msg_no_ssl">Druhé zařízení nepoužívá poslední verzi KDE connect. Bude použita stará metoda šifrování.</string>
<string name="my_device_fingerprint">Otisk SHA1 certifikátu vašeho zařízení je:</string>
<string name="remote_device_fingerprint">Otisk SHA1 certifikátu vzdáleného zařízení je:</string>
<string name="pair_requested">Bylo vyžádáno párování</string>
<string name="pairing_request_from">Požadavek o párování z %1s</string>
<string name="received_url_title">Přijat odkaz od %1s</string>
<string name="received_url_text">Ťukněte pro otevření \'%1s\'</string>
<string name="incoming_file_title">Příchozí soubor od %1s</string>
<string name="incoming_file_text">%1s</string>
<string name="outgoing_file_title">Odesílám soubor do %1s</string>
<string name="outgoing_files_title">Odesílám soubory do %1s</string>
<string name="received_file_title">Přijat soubor od %1s</string>
<string name="received_file_fail_title">Selhalo přijímání souboru od %1s</string>
<plurals name="incoming_file_title">
<item quantity="one">Přijímám %1$d soubor z %2$s</item>
<item quantity="few">Přijímám %1$d soubory z %2$s</item>
<item quantity="many">Přijímám %1$d souborů z %2$s</item>
<item quantity="other"/>
</plurals>
<plurals name="incoming_files_text">
<item quantity="one">Soubor: %1s</item>
<item quantity="few">(Soubor %2$d of %3$d) : %1$s</item>
<item quantity="many">(Soubor %2$d of %3$d) : %1$s</item>
<item quantity="other"/>
</plurals>
<plurals name="outgoing_file_title">
<item quantity="one">Odesílám %1$d soubor do %2$s</item>
<item quantity="few">Odesílám %1$d soubory do %2$s</item>
<item quantity="many">Odesílám %1$d souborů do %2$s</item>
<item quantity="other"/>
</plurals>
<plurals name="outgoing_files_text">
<item quantity="one">Soubor: %1$s</item>
<item quantity="few">(Soubor %2$d z %3$d) : %1$s</item>
<item quantity="many">(Soubor %2$d z %3$d) : %1$s</item>
<item quantity="other"/>
</plurals>
<plurals name="received_files_title">
<item quantity="one">Přijat soubor z %1$s</item>
<item quantity="few">Přijaty %2$d soubory z %1$s</item>
<item quantity="many">Přijato %2$d souborů z %1$s</item>
<item quantity="other"/>
</plurals>
<plurals name="received_files_fail_title">
<item quantity="one">Selhalo přijímání souboru z %1$s</item>
<item quantity="few">Selhalo přijímání %2$d ze %3$d souborů z %1$s</item>
<item quantity="many">Selhalo přijímání %2$d ze %3$d souborů z %1$s</item>
<item quantity="other"/>
</plurals>
<plurals name="sent_files_title">
<item quantity="one">Soubor byl odeslán do %1$s</item>
<item quantity="few">" %2$d soubory byly odeslány do %1$s"</item>
<item quantity="many">" %2$d souborů bylo odesláno do %1$s"</item>
<item quantity="other"/>
</plurals>
<plurals name="send_files_fail_title">
<item quantity="one">Odesílání souboru na %1$s selhalo</item>
<item quantity="few">Odesílání %2$d souborů z %3$d na %1$s selhalo</item>
<item quantity="many">Odesílání %2$d souborů z %3$d na %1$s selhalo</item>
<item quantity="other"/>
</plurals>
<string name="received_file_text">Ťukněte pro otevření \'%1s\'</string>
<string name="sent_file_title">Soubor byl odeslán do %1s</string>
<string name="sent_file_text">%1s</string>
<string name="sent_file_failed_title">Odesílání souborů na %1s selhalo</string>
<string name="sent_file_failed_text">%1s</string>
<string name="cannot_create_file">Nelze vytvořit soubor %s</string>
<string name="tap_to_answer">Ťukněte pro odpovězení</string>
<string name="reconnect">Znovu připojit</string>
<string name="right_click">Poslat kliknutí pravým tlačítkem</string>
<string name="middle_click">Poslat kliknutí prostředním tlačítkem</string>
<string name="show_keyboard">Zobrazit klávesnici</string>
@@ -98,19 +148,16 @@
<string name="request_pairing">Vyžádat párování</string>
<string name="pairing_accept">Přijmout</string>
<string name="pairing_reject">Odmítnout</string>
<string name="device">Zařízení</string>
<string name="pair_device">Spárovat zařízení</string>
<string name="remote_control">Vzdálené ovládání</string>
<string name="settings">Nastavení KDE Connect</string>
<string name="settings">Nastavení</string>
<string name="mpris_play">Přehrát</string>
<string name="mpris_pause">Pozastavit</string>
<string name="mpris_previous">Předchozí</string>
<string name="mpris_rew">Přetočit zpět</string>
<string name="mpris_ff">Rychle vpřed</string>
<string name="mpris_next">Následující</string>
<string name="mpris_volume">Hlasitost</string>
<string name="mpris_settings">Nastavení multimédií</string>
<string name="mpris_time_settings_title">Tlačítka vpřed/přetočit</string>
<string name="mpris_time_settings_summary">Upravit čas pro rychlý posun/přetočení při stisku.</string>
<string name="mpris_time_settings_summary">Upravit čas pro rychlý posun/přetočení při stisku</string>
<string-array name="mpris_time_entries">
<item>10 sekund</item>
<item>20 sekund</item>
@@ -118,66 +165,130 @@
<item>1 minuta</item>
<item>2 minuty</item>
</string-array>
<string name="mpris_notification_settings_title">Obrazit upozornění pro ovládání médií</string>
<string name="mpris_notification_settings_summary">Umožnit ovládání přehrávače médií bez otevření KDE Connect</string>
<string name="share_to">Sdílet s...</string>
<string name="protocol_version_older">Toto zařízení používá starou verzi protokolu</string>
<string name="protocol_version_newer">Toto zařízení používá novější verzi protokolu</string>
<string name="general_settings">Obecná nastavení</string>
<string name="plugin_settings">Nastavení</string>
<string name="plugin_settings_with_name">Nastavení %s</string>
<string name="device_name">Název zařízení</string>
<string name="device_name_preference_summary">%s</string>
<string name="invalid_device_name">Neplatný název zařízení</string>
<string name="shareplugin_text_saved">Přijatý text byl uložen do schránky</string>
<string name="custom_devices_settings">Seznam vlastních zařízení</string>
<string name="pair_device_action">Spárovat nové zařízení</string>
<string name="unpair_device_action">Zrušit párování %s</string>
<string name="custom_device_list">Přidat zařízení podle IP</string>
<string name="custom_device_deleted">Vlastní zařízení bylo smazáno</string>
<string name="custom_device_list_help">Pokud vaše zařízení není automaticky detekováno, můžete přidat jeho adresu IP nebo hostname kliknutím na tlačítko pro plovoucí činnosti</string>
<string name="custom_device_fab_hint">Přidat zařízení</string>
<string name="undo">Zpět</string>
<string name="share_notification_preference">Hlasitá upozornění</string>
<string name="share_notification_preference_summary">Vibrovat a přehrát melodii při přijímání souboru</string>
<string name="share_destination_customize">Přizpůsobte si cílový adresář</string>
<string name="share_destination_customize_summary_disabled">Přijaté soubory se objeví v Downloads</string>
<string name="share_destination_customize_summary_enabled">Soubory budou ukládány v adresáři níže</string>
<string name="share_destination_folder_preference">Cílový adresář</string>
<string name="share">Sdílet</string>
<string name="share_received_file">Sdílet \"%s\"</string>
<string name="title_activity_notification_filter">Filtr upozornění</string>
<string name="filter_apps_info">Upozorňování mezi vybranými aplikacemi bude synchronizováno.</string>
<string name="sftp_internal_storage">Interní úložiště</string>
<string name="sftp_all_files">Všechny soubory</string>
<string name="sftp_sdcard_num">SD karta %d</string>
<string name="sftp_sdcard">SD karta</string>
<string name="sftp_readonly">(pouze ke čtení)</string>
<string name="sftp_camera">Obrázky z fotoaparátu</string>
<string name="add_host">Přidat stroj/IP</string>
<string name="add_host_hint">Název hostitele nebo IP</string>
<string name="add_device_dialog_title">Přidat zařízení</string>
<string name="add_device_hint">Název hostitele nebo IP adresa</string>
<string name="sftp_preference_detected_sdcards">Nalezené karty SD</string>
<string name="sftp_preference_edit_sdcard_title">Upravit kartu SD</string>
<string name="sftp_preference_configured_storage_locations">Nastavená umístění úložiště</string>
<string name="sftp_preference_add_storage_location_title">Přidejte umístění úložiště</string>
<string name="sftp_preference_edit_storage_location">Upravit umístění úložiště</string>
<string name="sftp_preference_add_camera_shortcut">Přidat zkratku na složku fotoaparátu</string>
<string name="sftp_preference_add_camera_shortcut_summary_on">Přidat zkratku na složku fotoaparátu</string>
<string name="sftp_preference_add_camera_shortcut_summary_off">Nepřidávat zkratku na složku fotoaparátu</string>
<string name="sftp_storage_preference_storage_location">Umístění úložiště</string>
<string name="sftp_storage_preference_storage_location_already_configured">´Operace již byla zrušena</string>
<string name="sftp_storage_preference_click_to_select">klikněte pro výběr</string>
<string name="sftp_storage_preference_display_name">Název obrazovky</string>
<string name="sftp_storage_preference_display_name_already_used">Tento název obrazovky je již použit</string>
<string name="sftp_storage_preference_display_name_cannot_be_empty">Název obrazovky nesmí být prázdný</string>
<string name="sftp_action_mode_menu_delete">Smazat</string>
<string name="sftp_no_sdcard_detected">Nebyla zjištěna žádná karta SD</string>
<string name="sftp_no_storage_locations_configured">Nebyla nastavena umístění úložiště.</string>
<string name="sftp_saf_permission_explanation">Pro vzdálený přístup k souborům musíte nastavit umístění úložišť</string>
<string name="no_players_connected">Přehrávač nenalezen</string>
<string name="custom_dev_list_help">Použijte tuto možnost pouze pokud není vaše zařízení automaticky detekováno. Zadejte níže IP adresu a název hostitele a stiskněte tlačítko pro přidání do seznamu. Stiskněte existující položku pro odstranění ze seznamu.</string>
<string name="mpris_player_on_device">%1$s na %2$s</string>
<string name="send_files">Odeslat soubory</string>
<string name="pairing_title">Zařízení KDE Connect</string>
<string name="pairing_description">Zde by se měla zobrazit další zařízení, na kterých běží KDE Connect ve stejné síti.</string>
<string name="device_paired">Zařízení je spárováno</string>
<string name="device_rename_title">Přejmenovat zařízení</string>
<string name="device_rename_confirm">Přejmenovat</string>
<string name="refresh">Obnovit</string>
<string name="unreachable_description">Toto spárované zařízení je nedosažitelné. Ujistěte se, že běží ve stejné síti.</string>
<string name="on_data_message">Vypadá to, že jste na mobilním internetovém připojení. KDE Connect funguje pouze na lokální síti.</string>
<string name="no_wifi">Nejste připojeni k síti WiFi, takže nemůžete vidět žádná zařízení. Pro zapnutí WiFi klikněte zde.</string>
<string name="no_file_browser">Není nainstalován žádný prohlížeč souborů.</string>
<string name="pref_plugin_telepathy">Poslat SMS</string>
<string name="pref_plugin_telepathy_desc">Posílejte zprávy ze své pracovní plochy</string>
<string name="plugin_not_supported">Tento modul zařízení nepodporuje</string>
<string name="findmyphone_title">Najít můj telefon</string>
<string name="findmyphone_title_tablet">Najít můj tablet</string>
<string name="findmyphone_title_tv">Najít mou TV</string>
<string name="findmyphone_description">Prozvoní toto zařízení, takže jej můžete najít</string>
<string name="findmyphone_found">Nalezeno</string>
<string name="open">Otevřít</string>
<string name="close">Zavřít</string>
<string name="no_permissions_storage">Je potřeba povolit přístup k úložišti</string>
<string name="plugins_need_permission">Některé moduly potřebují pro práci povolení (ťukněte pro více informací):</string>
<string name="permission_explanation">Tento modul potřebuje pro práci povolení</string>
<string name="optional_permission_explanation">Pro zpřístupnění všech funkcí potřebujete další oprávnění</string>
<string name="plugins_need_optional_permission">Některé moduly mají vypnuté vlastnosti, kvůli nedostatečným oprávněním (ťukněte pro více informací):</string>
<string name="sftp_permission_explanation">Pro přístup k souborům z vašeho počítače aplikace potřebuje oprávnění k úložišti telefonu</string>
<string name="share_optional_permission_explanation">Pro sdílení souborů mezi telefonem a počítačem potřebujete udělit oprávnění k úložišti telefonu</string>
<string name="telepathy_permission_explanation">Pro čtení a psaní SMS z počítače musíte udělit oprávnění k SMS</string>
<string name="telephony_permission_explanation">Pro zobrazení telefonátů a SMS v počítači musíte udělit oprávnění k telefonování a SMS</string>
<string name="telephony_permission_explanation">Pro zobrazení telefonátů v počítači musíte udělit oprávnění k záznamům telefonování a stavu telefonu</string>
<string name="telephony_optional_permission_explanation">Pro zobrazení jména kontaktu u telefonního čísla je potřeba udělit oprávnění ke kontaktům v telefonu</string>
<string name="contacts_permission_explanation">Pro sdílení knihy kontaktů s pracovním prostředím, musíte udělit přístup ke kontaktům</string>
<string name="select_ringtone">Vybrat vyzváněcí tón</string>
<string name="telephony_pref_blocked_title">Blokovaná čísla</string>
<string name="telephony_pref_blocked_dialog_desc">Nezobrazovat volnání a SMS z těchto čísel. Prosím, zadejte pouze jedno slovo na řádek.</string>
<string name="mpris_coverart_description">Obal současného média</string>
<string name="device_icon_description">Ikona zařízení</string>
<string name="settings_icon_description">Ikona nastavení</string>
<string name="presenter_fullscreen">Celá obrazovka</string>
<string name="presenter_exit">Ukončit prezentaci</string>
<string name="presenter_lock_tip">Můžete zamknout zařízení a použít klávesy pro ovládání hlasitosti pro posun na předchozí/další snímek</string>
<string name="add_command">Přidat příkaz</string>
<string name="addcommand_explanation">Nejsou registrovány žádné příkazy</string>
<string name="addcommand_explanation2">Nové příkazy můžete přidat v nastavení systému KDE Connect</string>
<string name="add_command_description">V pracovním prostředí můžete přidat příkazy</string>
<string name="pref_plugin_mprisreceiver">Ovládání přehrávače médií</string>
<string name="notification_channel_default">Ostatní oznámení</string>
<string name="notification_channel_persistent">Stálý ukazatel</string>
<string name="notification_channel_media_control">Ovládání médií</string>
<string name="notification_channel_filetransfer">Přenos souboru</string>
<string name="mpris_stop">Zastavit současný přehrávač</string>
<string name="copy_url_to_clipboard">Kopírovat URL do schránky</string>
<string name="clipboard_toast">Zkopírováno do schránky</string>
<string name="runcommand_notreachable">Zařízení je nedostupné</string>
<string name="runcommand_notpaired">Zařízení není spárováno</string>
<string name="runcommand_nosuchdevice">Není zde žádné takové zařízení</string>
<string name="runcommand_noruncommandplugin">Toto zařízení nemá povolený modul pro spouštění příkazů</string>
<string name="pref_plugin_findremotedevice">Najít vzdálené zařízení</string>
<string name="pref_plugin_findremotedevice_desc">Prozvonit vzdálené zařízení</string>
<string name="ring">Prozvonit</string>
<string name="pref_plugin_systemvolume">Hlasitost systému</string>
<string name="pref_plugin_systemvolume_desc">Ovládejte hlasitost systému vzdáleného zařízení</string>
<string name="mute">Ztlumit</string>
<string name="all">Vše</string>
<string name="devices">Zařízení</string>
<string name="settings_rename">Název zařízení</string>
<string name="settings_dark_mode">Tmavý motiv</string>
<string name="settings_more_settings_title">Více nastavení</string>
<string name="settings_more_settings_text">Nastavení \"pro každé zařízení\" lze najít v \'Nastavení modulu\' v zařízení.</string>
<string name="setting_persistent_notification">Ukázat stálé upozornění</string>
<string name="setting_persistent_notification_oreo">Perzistentní upozornění</string>
<string name="setting_persistent_notification_description">Ťuknutím povolíte/zakážete v nastavení upozornění</string>
<string name="extra_options">Další možnosti</string>
<string name="privacy_options">Možnosti soukromí</string>
<string name="set_privacy_options">Nastavte své možnosti soukromí</string>
<string name="block_contents">Blokovat obsah oznámení</string>
<string name="block_images">Blokovat obrázky z upozornění</string>
<string name="notification_channel_receivenotification">Oznamování z ostatních zařízení</string>
<string name="take_picture">Spustit fotoaparát</string>
<string name="plugin_photo_desc">Spusťte aplikaci fotoaparátu pro snadné zachytávání s přenos obrázků</string>
<string name="no_app_for_opening">Pro otevření tohoto souboru nebyla nalezena vhodná aplikace</string>
<string name="remote_keyboard_service">Vzdálená klávesnice pro KDE Connect</string>
<string name="presenter_pointer">Ukazatel</string>
</resources>

View File

@@ -1,7 +1,6 @@
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="pref_plugin_telephony">Telefonibekendtgørelse</string>
<string name="pref_plugin_telephony_desc">Send bekendtgørelser om SMS\'er og opkald</string>
<string name="pref_plugin_battery">Batterirapport</string>
<string name="pref_plugin_battery_desc">Rapportér batteristatus periodisk</string>
<string name="pref_plugin_sftp">Filsystem-expose</string>
@@ -24,9 +23,8 @@
<string name="pref_plugin_receive_notifications_desc">Modtag bekendtgørelser fra den anden enhed og vis dem på Android</string>
<string name="pref_plugin_sharereceiver">Del og modtag</string>
<string name="pref_plugin_sharereceiver_desc">Del filer og URL\'er mellem enheder</string>
<string name="plugin_not_available">Denne funktion er ikke tilgængelig i din Android-version</string>
<string name="device_list_empty">Ingen enheder</string>
<string name="ok">O.k.</string>
<string name="ok">OK</string>
<string name="cancel">Annullér</string>
<string name="open_settings">Åbn indstillinger</string>
<string name="no_permissions">Du skal give tilladelse for at tilgå bekendtgørelser</string>
@@ -53,44 +51,35 @@
<item>Over standard</item>
<item>Hurtigst</item>
</string-array>
<string-array name="mousepad_acceleration_profile_entries">
<item>No Acceleration</item>
<item>Weakest</item>
<item>Weaker</item>
<item>Medium</item>
<item>Stronger</item>
<item>Strongest</item>
</string-array>
<string name="category_connected_devices">Forbundne enheder</string>
<string name="category_not_paired_devices">Tilgængelig enheder</string>
<string name="category_remembered_devices">Huskede enheder</string>
<string name="plugins_failed_to_load">Plugins kunne ikke indlæses (tap for mere info):</string>
<string name="device_menu_plugins">Plugin-indstillinger</string>
<string name="device_menu_unpair">Fjern parring</string>
<string name="device_not_reachable">Den parrede enhed kan ikke tilgås</string>
<string name="pair_new_device">Par med ny enhed</string>
<string name="unknown_device">Ukendt enhed</string>
<string name="error_not_reachable">Enheden kan ikke nås</string>
<string name="error_already_requested">Allerede anmodet om parring</string>
<string name="error_already_paired">Enhed allerede parret</string>
<string name="error_could_not_send_package">Kunne ikke sende pakke</string>
<string name="error_timed_out">Tidsudløb</string>
<string name="error_canceled_by_user">Annulleret af brugeren</string>
<string name="error_canceled_by_other_peer">Annulleret af modpart</string>
<string name="error_invalid_key">Ugyldige nøgle modtaget</string>
<string name="encryption_info_title">Krypteringsinfo</string>
<string name="encryption_info_msg_no_ssl">Den anden enhed bruger ikke en nylig version af KDE Connect, og bruger dermed den forældede krypteringsmetode.</string>
<string name="my_device_fingerprint">SHA1-fingeraftrykket for dit enhedscertifikat er:</string>
<string name="remote_device_fingerprint">SHA1-fingeraftrykket for det eksterne enhedscertifikat er:</string>
<string name="pair_requested">Anmodet om parring</string>
<string name="pairing_request_from">Parringsanmodning fra %1s</string>
<string name="received_url_title">Modtog link fra %1s</string>
<string name="received_url_text">Tap for at åbne \"%1s\"</string>
<string name="incoming_file_title">Indkommende fil fra %1s</string>
<string name="incoming_file_text">%1s</string>
<string name="outgoing_file_title">Sender fil til %1s</string>
<string name="outgoing_files_title">Sender filer til %1s</string>
<string name="received_file_title">Modtog fil fra %1s</string>
<string name="received_file_fail_title">Kunne ikke modtage fil fra %1s</string>
<string name="received_file_text">Tap for at åbne \"%1s\"</string>
<string name="sent_file_title">Fil sendt til %1s</string>
<string name="sent_file_text">%1s</string>
<string name="sent_file_failed_title">Kunne ikke sende filen til %1s</string>
<string name="sent_file_failed_text">%1s</string>
<string name="tap_to_answer">Tap for at svare</string>
<string name="reconnect">Forbind igen</string>
<string name="right_click">Send højreklik</string>
<string name="middle_click">Send midterklik</string>
<string name="show_keyboard">Vis tastatur</string>
@@ -98,19 +87,13 @@
<string name="request_pairing">Anmod om parring</string>
<string name="pairing_accept">Acceptér</string>
<string name="pairing_reject">Afvis</string>
<string name="device">Enhed</string>
<string name="pair_device">Par med enhed</string>
<string name="remote_control">Fjernbetjening</string>
<string name="settings">Indstilling af KDE Connect</string>
<string name="mpris_play">Afspil</string>
<string name="mpris_previous">Forrige</string>
<string name="mpris_rew">Spol tilbage</string>
<string name="mpris_ff">Spol frem</string>
<string name="mpris_next">Næste</string>
<string name="mpris_volume">Lydstyrke</string>
<string name="mpris_settings">Multimedieindstillinger</string>
<string name="mpris_time_settings_title">Spol frem/tilbage-knapper</string>
<string name="mpris_time_settings_summary">Justér tiden for når der trykkes på spol frem/tilbage.</string>
<string-array name="mpris_time_entries">
<item>10 sekunder</item>
<item>20 sekunder</item>
@@ -118,19 +101,11 @@
<item>1 minut</item>
<item>2 minutter</item>
</string-array>
<string name="share_to">Del på...</string>
<string name="protocol_version_older">Denne enhed bruger en gammel protokolversion</string>
<string name="protocol_version_newer">Denne enhed bruger en nyere protokolversion</string>
<string name="general_settings">Generelle indstillinger</string>
<string name="plugin_settings">Indstillinger</string>
<string name="plugin_settings_with_name">Indstilling af %s</string>
<string name="device_name">Enhedsnavn</string>
<string name="device_name_preference_summary">%s</string>
<string name="invalid_device_name">Ugyldigt enhedsnavn</string>
<string name="shareplugin_text_saved">Modtog tekst, gemt til udklipsholder</string>
<string name="custom_devices_settings">Brugertilpasset liste over enheder</string>
<string name="pair_device_action">Par med en ny enhed</string>
<string name="unpair_device_action">Fjern parring med %s</string>
<string name="custom_device_list">Tilføj enheder via IP</string>
<string name="share_notification_preference">Støjende bekendtgørelser</string>
<string name="share_notification_preference_summary">Vibrér og afspil en lyd når en fil modtages</string>
@@ -140,44 +115,32 @@
<string name="share_destination_folder_preference">Destinationsmappe</string>
<string name="title_activity_notification_filter">Bekendtgørelsesfilter</string>
<string name="filter_apps_info">Bekendtgørelser vil blive synkroniseret for de valgte apps.</string>
<string name="sftp_internal_storage">Intern lagring</string>
<string name="sftp_all_files">Alle filer</string>
<string name="sftp_sdcard_num">SD-kort %d</string>
<string name="sftp_sdcard">SD-kort</string>
<string name="sftp_readonly">(skrivebeskyttet)</string>
<string name="sftp_camera">Kamerabilleder</string>
<string name="add_host">Tilføj vært/IP</string>
<string name="add_host_hint">Værtsnavn eller IP</string>
<string name="no_players_connected">Ingen afspillere fundet</string>
<string name="custom_dev_list_help">Brug kun denne indstilling hvis din enhed ikke opdages automatisk. Angiv IP-adresse eller værtsnavn nedenfor og tryk på knappen for at føje den til listen. Tryk på et eksisterende element for at fjerne det fra listen.</string>
<string name="mpris_player_on_device">%1$s på %2$s</string>
<string name="send_files">Send filer</string>
<string name="pairing_title">KDE Connect-enheder</string>
<string name="pairing_description">Andre enheder som kører KDE Connect i samme netværk som dig, bør dukke op her.</string>
<string name="device_paired">Enhed parret</string>
<string name="device_rename_title">Omdøb enhed</string>
<string name="device_rename_confirm">Omdøb</string>
<string name="refresh">Genopfrisk</string>
<string name="unreachable_description">Denne parrede enhed kan ikke nås. Sørg for at den er forbundet til samme netværk som dig.</string>
<string name="on_data_message">Det lader til at du er på en mobil dataforbindelse. KDE Connect virker kun på lokale netværk.</string>
<string name="no_file_browser">Der er ingen filhåndtering installeret.</string>
<string name="pref_plugin_telepathy">Send SMS</string>
<string name="pref_plugin_telepathy_desc">Send SMS-beskeder fra din desktop</string>
<string name="plugin_not_supported">Dette plugin er ikke understøttet af enheden</string>
<string name="findmyphone_title">Find min telefon</string>
<string name="findmyphone_title_tablet">Find min tablet</string>
<string name="findmyphone_description">Ringer til denne enhed, så du kan finde den.</string>
<string name="findmyphone_found">Fundet</string>
<string name="open">Åbn</string>
<string name="close">Luk</string>
<string name="no_permissions_storage">Du skal give tilladelse for at tilgå datalagret</string>
<string name="plugins_need_permission">Nogle plugins kræver tilladelser for at virke (tap for mere info):</string>
<string name="permission_explanation">Dette plugin kræver tilladelser for at virke</string>
<string name="optional_permission_explanation">Du skal give ekstra tilladelser for at aktivere alle funktioner</string>
<string name="plugins_need_optional_permission">Nogle plugins har deaktiverede funktioner pga. manglende tilladelser (tap for mere info):</string>
<string name="sftp_permission_explanation">For at tilgå filerne fra din pc, skal app\'en have tilladelse til at til gå telefonens datalager</string>
<string name="share_optional_permission_explanation">For at dele filer mellem din telefon og din desktop skal du give adgang til telefonens datalager.</string>
<string name="telepathy_permission_explanation">For at læse og skrive sms\'er fra din desktop, skal du give tilladelse til sms</string>
<string name="telephony_permission_explanation">For at se telefonopkald og sms\'er fra desktoppen, skal du give tilladelse til telefonopkald og sms.</string>
<string name="telephony_optional_permission_explanation">For at se et kontaktnavn i stedet for et telefonnummer, skal du give adgang til telefonens kontakter</string>
</resources>

View File

@@ -1,39 +1,55 @@
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="pref_plugin_telephony">Telefon-Benachrichtigung</string>
<string name="pref_plugin_telephony_desc">Benachrichtigungen über SMS und Anrufe senden</string>
<string name="kde_connect">KDE-Connect</string>
<string name="foreground_notification_no_devices">Keine bestehenden Verbindungen</string>
<string name="foreground_notification_devices">Verbunden mit %s</string>
<string name="pref_plugin_telephony">Telefon-Integration</string>
<string name="pref_plugin_telephony_desc">Verbundene Geräte bei eingehenden Anrufen benachrichtigen</string>
<string name="pref_plugin_battery">Akkubericht</string>
<string name="pref_plugin_battery_desc">Akkustatus periodisch berichten</string>
<string name="pref_plugin_sftp">Dateisystem zeigen</string>
<string name="pref_plugin_sftp_desc">Erlaubt das Browsen des Dateisystems auf diesem Gerät aus der Ferne</string>
<string name="pref_plugin_battery_desc">Den Akkustand periodisch berichten</string>
<string name="pref_plugin_sftp">Dateisystem-Freigabe</string>
<string name="pref_plugin_sftp_desc">Das Durchsuchen des Dateisystems auf verbundenen Geräten erlauben</string>
<string name="pref_plugin_clipboard">Abgleich der Zwischenablage</string>
<string name="pref_plugin_clipboard_desc">Inhalt der Zwischenablage freigeben</string>
<string name="pref_plugin_clipboard_desc">Den Inhalt der Zwischenablage mit verbundenen Geräten teilen</string>
<string name="pref_plugin_mousepad">Ferneingabe</string>
<string name="pref_plugin_mousepad_desc">Verwendet Ihr Handy als Tablet, Touchpad und Tastatur</string>
<string name="pref_plugin_mpris">Multimedia-Bedienung</string>
<string name="pref_plugin_mpris_desc">Eine Fernbedienung für Ihre Medienwiedergabe</string>
<string name="pref_plugin_mousepad_desc">Das Gerät als Touchpad und/oder Tastatur verwenden</string>
<string name="pref_plugin_presenter">Fernbedienung für Präsentationen</string>
<string name="pref_plugin_presenter_desc">Das Gerät zum Wechseln der Folien einer Präsentation verwenden</string>
<string name="pref_plugin_remotekeyboard">Empfänger für Tastatureingaben</string>
<string name="pref_plugin_remotekeyboard_desc">Tastatureingaben entfernter Geräte empfangen</string>
<string name="pref_plugin_mpris">Medienkontrolle</string>
<string name="pref_plugin_mpris_desc">Die Medienwiedergabe verbundener Geräte steuern</string>
<string name="pref_plugin_runcommand">Befehl ausführen</string>
<string name="pref_plugin_runcommand_desc">Von Ihrem Telefon oder Tablet Befehle auf anderen Geräten ausführen</string>
<string name="pref_plugin_runcommand_desc">Konsolen-Befehle auf verbundenen Geräten ausführen</string>
<string name="pref_plugin_contacts">Kontakte-Abgleich</string>
<string name="pref_plugin_contacts_desc">Die lokal gespeicherten Kontakte mit verbundenen Geräten teilen</string>
<string name="pref_plugin_ping">Ping</string>
<string name="pref_plugin_ping_desc">Senden und Empfangen von Pings</string>
<string name="pref_plugin_ping_desc">Pings senden und empfangen</string>
<string name="pref_plugin_notifications">Benachrichtigungs-Abgleich</string>
<string name="pref_plugin_notifications_desc">Zugriff auf Ihre Benachrichtigungen von anderen Geräten</string>
<string name="pref_plugin_notifications_desc">Benachrichtigungen an verbundene Geräte weiterleiten und dort anzeigen</string>
<string name="pref_plugin_receive_notifications">Benachrichtigungen empfangen</string>
<string name="pref_plugin_receive_notifications_desc">Empfangen und Anzeigen von Benachrichtigungen des anderen Geräts</string>
<string name="pref_plugin_receive_notifications_desc">Benachrichtigungen verbundener Geräte empfangen und anzeigen</string>
<string name="pref_plugin_sharereceiver">Veröffentlichen und Empfangen</string>
<string name="pref_plugin_sharereceiver_desc">Dateien und Adressen (URLs) zwischen Geräten teilen</string>
<string name="plugin_not_available">Diese Funktion ist in Ihrer Android-Version nicht verfügbar</string>
<string name="pref_plugin_sharereceiver_desc">Dateien und Adressen (URLs) mit verbundenen Geräten teilen</string>
<string name="device_list_empty">Keine Geräte</string>
<string name="ok">OK</string>
<string name="cancel">Abbrechen</string>
<string name="open_settings">Einstellungen öffnen</string>
<string name="no_permissions">Sie müssen die Erlaubnis zum Zugriff auf Benachrichtigungen erteilen</string>
<string name="no_permissions">Sie müssen die Erlaubnis zum Zugriff auf die Benachrichtigungen erteilen</string>
<string name="no_permission_mprisreceiver">Um die Medienwiedergabe zu steuern, muss der Zugriff auf die Benachrichtigungen gewährt werden</string>
<string name="no_permissions_remotekeyboard">Um Tastatureingaben empfangen zu können, muss die KDE-Connect-Tastatur aktiviert werden</string>
<string name="send_ping">Ping senden</string>
<string name="open_mpris_controls">Multimedia-Bedienung</string>
<string name="open_mpris_controls">Medienkontrolle</string>
<string name="remotekeyboard_editing_only_title">Tastatureingaben nur empfangen wenn ein Textfeld ausgewählt ist</string>
<string name="remotekeyboard_not_connected">Es besteht keine Verbindung zu einer entfernten Tastatur. Bitte richten Sie diese zunächst auf ihrem verbundenen Gerät ein</string>
<string name="remotekeyboard_connected">Verbindung zu entfernter Tastatur ist aktiv</string>
<string name="remotekeyboard_multiple_connections">Es besteht mehr als eine Verbindungen zu einer entfernten Tastatur. Um Ihre Konfiguration anzupassen, wählen Sie bitte ein Gerät aus</string>
<string name="open_mousepad">Ferneingabe</string>
<string name="mousepad_info">Bewegen Sie Ihren Finger über den Bildschirm um den Mauszeiger zu bewegen. Tippen Sie auf den Bildschirm, um einen Klick zu simulieren und benutzen Sie entsprechend zwei/drei Finger für einen Rechts-/Mittelklick. Verwenden Sie zwei Finger, um zu Scrollen und einen langen Druck um Objekte zu verschieben</string>
<string name="mousepad_double_tap_settings_title">Aktionsausführung bei Berührung mit zwei Fingern einstellen</string>
<string name="mousepad_triple_tap_settings_title">Aktionsausführung bei Berührung mit drei Fingern einstellen</string>
<string name="mousepad_sensitivity_settings_title">Empfindlichkeit des Touchpads einstellen</string>
<string name="mousepad_acceleration_profile_settings_title">Zeigerbeschleunigung einstellen</string>
<string name="mousepad_scroll_direction_title">Bildlaufrichtung umkehren</string>
<string-array name="mousepad_tap_entries">
<item>Rechtsklick</item>
@@ -47,59 +63,76 @@
<item>Schnell</item>
<item>Schnellste</item>
</string-array>
<string-array name="mousepad_acceleration_profile_entries">
<item>Keine Beschleunigung</item>
<item>Schwächste</item>
<item>Schwach</item>
<item>Normal</item>
<item>Stark</item>
<item>Stärkste</item>
</string-array>
<string name="category_connected_devices">Verbundene Geräte</string>
<string name="category_not_paired_devices">Verfügbare Gerät</string>
<string name="category_not_paired_devices">Verfügbare Geräte</string>
<string name="category_remembered_devices">Gemerkte Geräte</string>
<string name="plugins_failed_to_load">Laden der Module fehlgeschlagen, tippen Sie für weitere Details:</string>
<string name="device_menu_plugins">Modul-Einstellungen</string>
<string name="device_menu_unpair">Verbindung trennen</string>
<string name="device_not_reachable">Das angegeben Gerät ist nicht erreichbar</string>
<string name="pair_new_device">Ein neues Gerät verbinden</string>
<string name="unknown_device">Unbekanntes Gerät</string>
<string name="error_not_reachable">Das Gerät ist nicht erreichbar</string>
<string name="error_already_requested">Die Verbindung wurde bereits angefragt</string>
<string name="error_already_paired">Das Gerät ist bereits verbunden</string>
<string name="error_could_not_send_package">Das Paket kann nicht gesendet werden</string>
<string name="error_timed_out">Zeitüberschreitung</string>
<string name="error_canceled_by_user">Abbruch durch Benutzer</string>
<string name="error_canceled_by_other_peer">Abbruch durch Gegenstelle</string>
<string name="error_invalid_key">Ungültiger Schlüssel empfangen</string>
<string name="encryption_info_title">Verschlüsselungsinformationen</string>
<string name="encryption_info_msg_no_ssl">Das andere Gerät verwendet eine ältere Version von KDE-Connect, eine veraltete Verschlüsselungsmethode wird verwendet.</string>
<string name="encryption_info_msg_no_ssl">Das andere Gerät verwendet eine ältere Version von KDE-Connect. Daher muss eine veraltete Verschlüsselungsmethode verwendet werden</string>
<string name="my_device_fingerprint">Der SHA1-Fingerabdruck Ihres Gerätezertifikats lautet:</string>
<string name="remote_device_fingerprint">Der SHA1-Fingerabdruck des Gerätezertifikats der Gegenstelle lautet:</string>
<string name="pair_requested">Verbindung angefordert</string>
<string name="pairing_request_from">Verbindungsanfrage von %1s</string>
<string name="received_url_title">Verknüpfung von %1s erhalten</string>
<string name="received_url_text">Tippen um „%1s“ zu öffnen</string>
<string name="incoming_file_title">Eingehende Datei von %1s</string>
<string name="incoming_file_text">%1s</string>
<string name="outgoing_file_title">Datei wird an %1s gesendet</string>
<string name="outgoing_files_title">Datei wird an %1s gesendet</string>
<plurals name="outgoing_files_text">
<item quantity="one">%1$d Datei gesendet</item>
<item quantity="other">%1$d von %2$d Dateien gesendet</item>
<string name="pairing_request_from">Kopplungsanfrage von %1s</string>
<plurals name="incoming_file_title">
<item quantity="one">%1$d Datei von %2$s wird empfangen</item>
<item quantity="other">%1$d Dateien von %2$s werden empfangen</item>
</plurals>
<plurals name="incoming_files_text">
<item quantity="one">Datei: %1s</item>
<item quantity="other">(Datei %2$d von %3$d) : %1$s</item>
</plurals>
<plurals name="outgoing_file_title">
<item quantity="one">%1$d Datei wird an %2$s gesendet</item>
<item quantity="other">%1$d Dateien werden an %2$s gesendet</item>
</plurals>
<plurals name="outgoing_files_text">
<item quantity="one">Datei: %1$s</item>
<item quantity="other">(Datei %2$d von %3$d) : %1$s</item>
</plurals>
<plurals name="received_files_title">
<item quantity="one">Datei von %1$s empfangen</item>
<item quantity="other">%2$d Dateien von %1$s empfangen</item>
</plurals>
<plurals name="received_files_fail_title">
<item quantity="one">Die Datei von %1$s wurde nicht empfangen</item>
<item quantity="other">%2$d der %3$d Dateien von %1$s wurden nicht empfangen</item>
</plurals>
<plurals name="sent_files_title">
<item quantity="one">Datei wurde an %1$s gesendet</item>
<item quantity="other">%2$d Dateien wurden an %1$s gesendet</item>
</plurals>
<plurals name="send_files_fail_title">
<item quantity="one">Die Datei kann nicht an %1$s gesendet werden</item>
<item quantity="other">%2$d der %3$d Dateien können nicht an %1$s gesendet werden</item>
</plurals>
<string name="received_file_title">Datei von %1s erhalten</string>
<string name="received_file_fail_title">Der Empfang der Datei %1s ist fehlgeschlagen</string>
<string name="received_file_text">Tippen um „%1s“ zu öffnen</string>
<string name="sent_file_title">Datei an %1s gesendet</string>
<string name="sent_file_text">%1s</string>
<string name="sent_file_failed_title">Das Senden der Datei an %1s ist fehlgeschlagen</string>
<string name="sent_file_failed_text">%1s</string>
<string name="tap_to_answer">Tippen zum Antworten</string>
<string name="reconnect">Erneut verbinden</string>
<string name="cannot_create_file">Die Datei %s kann nicht erstellt werden</string>
<string name="tap_to_answer">Zum Antworten tippen</string>
<string name="right_click">Rechtsklick senden</string>
<string name="middle_click">Mittelklick senden</string>
<string name="show_keyboard">Tastatur anzeigen</string>
<string name="device_not_paired">Das Gerät ist nicht verbunden</string>
<string name="request_pairing">Verbindung anfordern</string>
<string name="request_pairing">Kopplung anfordern</string>
<string name="pairing_accept">Annehmen</string>
<string name="pairing_reject">Ablehnen</string>
<string name="device">Gerät</string>
<string name="pair_device">Gerät verbinden</string>
<string name="remote_control">Fernbedienung</string>
<string name="settings">KDE-Connect-Einstellungen</string>
<string name="settings">Einstellungen</string>
<string name="mpris_play">Wiedergabe</string>
<string name="mpris_pause">Anhalten</string>
<string name="mpris_previous">Zurück</string>
@@ -107,9 +140,8 @@
<string name="mpris_ff">Vorlauf</string>
<string name="mpris_next">Weiter</string>
<string name="mpris_volume">Lautstärke</string>
<string name="mpris_settings">Multimedia-Einstellungen</string>
<string name="mpris_time_settings_title">Knöpfe Vorwärts/Rückwärts</string>
<string name="mpris_time_settings_summary">Sprungweite für Vorlauf/Rücklauf anpassen.</string>
<string name="mpris_time_settings_summary">Sprungweite für Vorlauf/Rücklauf anpassen</string>
<string-array name="mpris_time_entries">
<item>10 Sekunden</item>
<item>20 Sekunden</item>
@@ -117,64 +149,131 @@
<item>1 Minute</item>
<item>2 Minuten</item>
</string-array>
<string name="mpris_notification_settings_title">Benachrichtigung zur Medienkontrolle anzeigen</string>
<string name="mpris_notification_settings_summary">Die Steuerung der Medienwiedergabe auch dann erlauben wenn KDE-Connect nicht geöffnet ist</string>
<string name="share_to">Freigeben für ...</string>
<string name="protocol_version_older">Dieses Gerät verwendet ein alte Protokollversion</string>
<string name="protocol_version_newer">Dieses Gerät verwendet ein neuere Protokollversion</string>
<string name="general_settings">Allgemeine Einstellungen</string>
<string name="plugin_settings">Einstellungen</string>
<string name="protocol_version_newer">Dieses Gerät verwendet eine neuere Protokollversion</string>
<string name="plugin_settings_with_name">%s-Einstellungen</string>
<string name="device_name">Gerätename</string>
<string name="device_name_preference_summary">%s</string>
<string name="invalid_device_name">Ungültiger Gerätename</string>
<string name="shareplugin_text_saved">Text empfangen und in der Zwischenablage gespeichert</string>
<string name="shareplugin_text_saved">Text empfangen und in die Zwischenablage kopiert</string>
<string name="custom_devices_settings">Benutzerdefinierte Geräteliste</string>
<string name="pair_device_action">Ein neues Gerät verbinden</string>
<string name="unpair_device_action">Verbindung %s trennen</string>
<string name="custom_device_list">Geräte nach IP-Adresse hinzufügen</string>
<string name="custom_device_deleted">Benutzerdefinierte Geräte gelöscht</string>
<string name="custom_device_list_help">Falls Ihr Gerät nicht automatisch erkannt wird, können Sie es über die IP-Adresse oder den Gerätenamen hinzufügen. Klicken Sie dafür auf den schwebenden Aktionsknopf</string>
<string name="custom_device_fab_hint">Ein Gerät hinzufügen</string>
<string name="undo">Rückgängig machen</string>
<string name="share_notification_preference">Ausführliche Benachrichtigungen</string>
<string name="share_notification_preference_summary">Beim Empfang einer Datei vibrieren und einen Sound abspielen</string>
<string name="share_destination_customize">Zielverzeichnis anpassen</string>
<string name="share_destination_customize_summary_disabled">Empfangene Dateien werden in Downloads gespeichert</string>
<string name="share_destination_customize_summary_disabled">Empfangene Dateien werden im Ordner Downloads gespeichert</string>
<string name="share_destination_customize_summary_enabled">Dateien werden im folgenden Verzeichnis gespeichert</string>
<string name="share_destination_folder_preference">Zielverzeichnis</string>
<string name="share">Freigeben</string>
<string name="share_received_file">%s freigeben</string>
<string name="title_activity_notification_filter">Benachrichtigungs-Filter</string>
<string name="filter_apps_info">Benachrichtigungen werden zwischen den ausgewählten Anwendungen abgeglichen.</string>
<string name="sftp_internal_storage">Interner Speicher</string>
<string name="sftp_all_files">Alle Dateien</string>
<string name="filter_apps_info">Benachrichtigungen werden zwischen den ausgewählten Anwendungen abgeglichen</string>
<string name="sftp_sdcard_num">SD-Karte %d</string>
<string name="sftp_sdcard">SD-Karte</string>
<string name="sftp_readonly">(Nur lesen)</string>
<string name="sftp_camera">Kamerabilder</string>
<string name="add_host">Rechner/IP-Adresse hinzufügen</string>
<string name="add_host_hint">Rechnername oder IP-Adresse</string>
<string name="add_device_dialog_title">Gerät hinzufügen</string>
<string name="add_device_hint">Rechnername oder IP-Adresse</string>
<string name="sftp_preference_detected_sdcards">SD-Karte erkannt</string>
<string name="sftp_preference_edit_sdcard_title">SD-Karte bearbeiten</string>
<string name="sftp_preference_configured_storage_locations">Vorhandene Speicherort</string>
<string name="sftp_preference_add_storage_location_title">Speicherort hinzufügen</string>
<string name="sftp_preference_edit_storage_location">Speicherort bearbeiten</string>
<string name="sftp_preference_add_camera_shortcut">Verknüpfung zum Kamera-Ordner erstellen</string>
<string name="sftp_preference_add_camera_shortcut_summary_on">Verknüpfung zum Kamera-Ordner erstellen</string>
<string name="sftp_preference_add_camera_shortcut_summary_off">Keine Verknüpfung zum Kamera-Ordner erstellen</string>
<string name="sftp_storage_preference_storage_location">Speicherort</string>
<string name="sftp_storage_preference_storage_location_already_configured">Dieser Ort wurde bereits konfiguriert</string>
<string name="sftp_storage_preference_click_to_select">Zum Auswählen klicken</string>
<string name="sftp_storage_preference_display_name">Anzeigename</string>
<string name="sftp_storage_preference_display_name_already_used">Dieser Anzeigename wird bereits verwendet</string>
<string name="sftp_storage_preference_display_name_cannot_be_empty">Der Anzeigename darf nicht leer sein</string>
<string name="sftp_action_mode_menu_delete">Löschen</string>
<string name="sftp_no_sdcard_detected">Keine SD-Karte erkannt</string>
<string name="sftp_no_storage_locations_configured">Keine Speicherorte ausgewählt</string>
<string name="sftp_saf_permission_explanation">Um von außerhalb auf Ihre Dateien zugreifen zu können, muss mindestens ein Speicherort vorhanden sein</string>
<string name="no_players_connected">Keine Medienspieler gefunden</string>
<string name="custom_dev_list_help">Benutzen Sie diese Funktion nur, wenn Ihr Gerät nicht automatisch erkannt wird. Geben hier Sie IP-Adresse oder Hostnamen ein und bestätigen Sie, um es zu der Liste hinzuzufügen. Tippen Sie ein bestehendes Gerät an, um es aus der Liste zu entfernen.</string>
<string name="mpris_player_on_device">%1$s auf %2$s</string>
<string name="send_files">Dateien senden</string>
<string name="pairing_title">KDE-Connect-Geräte</string>
<string name="pairing_description">Andere Geräte im selben Netzwerk, auf denen KDE-Connect läuft, sollten hier angezeigt werden.</string>
<string name="device_paired">Gerät verbunden</string>
<string name="pairing_description">Andere Geräte im selben Netzwerk, auf denen KDE-Connect läuft, sollten hier angezeigt werden</string>
<string name="device_rename_title">Geräte umbenennen</string>
<string name="device_rename_confirm">Umbenennen</string>
<string name="refresh">Aktualisieren</string>
<string name="unreachable_description">Das verbundene Gerät ist nicht erreichbar. Stellen Sie sicher, dass es mit demselben Netzwerk verbunden ist.</string>
<string name="on_data_message">Sie benutzen anscheinend eine mobile Datenverbindung. KDE-Connect funktioniert nur in lokalen Netzwerken.</string>
<string name="no_file_browser">Es sind keine Dateiverwaltungsprogramme installiert.</string>
<string name="unreachable_description">Das verbundene Gerät ist nicht erreichbar. Stellen Sie sicher, dass es mit demselben Netzwerk verbunden ist</string>
<string name="no_wifi">Sie sind nicht mit einem WLAN-Netzwerk verbunden, weshalb womöglich keine anderen Geräte angezeigt werden können. Klicken Sie hier um Ihr WLAN zu aktivieren</string>
<string name="no_file_browser">Es sind keine Dateiverwaltungsprogramme installiert</string>
<string name="pref_plugin_telepathy">SMS senden</string>
<string name="pref_plugin_telepathy_desc">Text-Nachrichten von Ihrer Arbeitsfläche senden</string>
<string name="plugin_not_supported">Dieses Modul wird durch das Gerät nicht unterstützt</string>
<string name="pref_plugin_telepathy_desc">SMS von Ihrer Arbeitsfläche senden</string>
<string name="findmyphone_title">Mein Telefon suchen</string>
<string name="findmyphone_title_tablet">Mein Tablet suchen</string>
<string name="findmyphone_description">Ruft dieses Gerät an, damit sie es finden können</string>
<string name="findmyphone_title_tv">Meinen Fernseher suchen</string>
<string name="findmyphone_description">Ruft dieses Gerät an, damit Sie es finden können</string>
<string name="findmyphone_found">Gefunden</string>
<string name="open">Öffnen</string>
<string name="close">Schließen</string>
<string name="plugins_need_permission">Einige Module benötigen zusätzliche Berechtigungen, tippen Sie für weitere Details:</string>
<string name="permission_explanation">Dieses Modul benötigt zusätzliche Berechtigungen</string>
<string name="optional_permission_explanation">Es müssen weitere Berechtigungen erteilt werden, um alle Funktionen nutzen zu können</string>
<string name="plugins_need_optional_permission">Einige Module haben eingeschränkte Funktionen wegen fehlender Berechtigungen, tippen Sie für weitere Informationen:</string>
<string name="share_optional_permission_explanation">Um Dateien zwischen Rechner und Telefon auszutauschen, muss der Zugriff auf den Telefonspeicher gewährt werden</string>
<string name="telepathy_permission_explanation">Um SMS vom Rechner aus zu lesen und zu versenden, muss der Zugriff auf die SMS-Funktion gewährt werden</string>
<string name="telephony_permission_explanation">Um eingehende Anrufe auf der Arbeitsfläche anzuzeigen, muss der Zugriff auf die Anrufliste und den Telefonstatus gewährt werden</string>
<string name="telephony_optional_permission_explanation">Um einen Namen anstelle der Telefonnummer anzuzeigen, muss der Zugriff auf das Adressbuch gewährt werden</string>
<string name="contacts_permission_explanation">Um Ihre Kontakte mit der Arbeitsfläche zu teilen, muss der Zugriff auf die Kontakte gewährt werden</string>
<string name="select_ringtone">Einen Klingelton auswählen</string>
<string name="telephony_pref_blocked_title">Unterdrückte Nummern</string>
<string name="telephony_pref_blocked_dialog_desc">Keine Anrufe und SMS von diesen Telefonnummern anzeigen (Bitte geben Sie eine Nummer pro Zeile ein)</string>
<string name="mpris_coverart_description">Cover des aktuellen Mediums</string>
<string name="device_icon_description">Gerätesymbol</string>
<string name="settings_icon_description">Einstellungssymbol</string>
<string name="presenter_fullscreen">Vollbild</string>
<string name="presenter_exit">Präsentation beenden</string>
<string name="presenter_lock_tip">Sie können Ihr Gerät sperren und mit Hilfe der Lauter-/Leiser-Taste zur vorherigen/nächsten Folie wechseln</string>
<string name="add_command">Einen Befehl hinzufügen</string>
<string name="addcommand_name">Name</string>
<string name="addcommand_command">Befehl</string>
<string name="addcommand_explanation">Es sind keine Befehle registriert.</string>
<string name="addcommand_explanation2">Sie können neue Befehle in den Systemeinstellungen für KDE-Connect hinzufügen.</string>
<string name="addcommand_explanation">Es sind keine Befehle vorhanden</string>
<string name="addcommand_explanation2">Sie können neue Befehle in den Systemeinstellungen für KDE-Connect hinzufügen</string>
<string name="add_command_description">Sie können neue Befehle auf der Arbeitsfläche hinzufügen</string>
<string name="pref_plugin_mprisreceiver">Steuerung der Medienwiedergabe</string>
<string name="pref_plugin_mprisreceiver_desc">Ein verbundenes Gerät zum Steuern der lokalen Medienwiedergabe verwenden</string>
<string name="notification_channel_default">Andere Benachrichtigungen</string>
<string name="notification_channel_persistent">Dauerhafte Benachrichtigung</string>
<string name="notification_channel_media_control">Medienkontrolle</string>
<string name="notification_channel_filetransfer">Dateiübertragung</string>
<string name="mpris_stop">Die aktuelle Medienwiedergabe beenden</string>
<string name="copy_url_to_clipboard">Adresse in die Zwischenablage kopieren</string>
<string name="clipboard_toast">In die Zwischenablage kopiert</string>
<string name="runcommand_notreachable">Das Gerät ist nicht erreichbar</string>
<string name="runcommand_notpaired">Das Gerät ist nicht verbunden</string>
<string name="runcommand_nosuchdevice">Ein solches Gerät existiert nicht</string>
<string name="runcommand_noruncommandplugin">Dieses Gerät hat das Modul zum Ausführen von Befehlen nicht aktiviert</string>
<string name="pref_plugin_findremotedevice">Entferntes Gerät finden</string>
<string name="pref_plugin_findremotedevice_desc">Entferntes Gerät anklingeln</string>
<string name="ring">Klingeln</string>
<string name="pref_plugin_systemvolume">Systemlaustärke ändern</string>
<string name="pref_plugin_systemvolume_desc">Die Systemlautstärke verbundener Geräte ändern</string>
<string name="mute">Stummschalten</string>
<string name="all">Alle</string>
<string name="devices">Geräte</string>
<string name="settings_rename">Gerätename</string>
<string name="settings_dark_mode">Dunkles Design</string>
<string name="settings_more_settings_title">Weitere Einstellungen</string>
<string name="settings_more_settings_text">Zusätzliche Einstellungen für die verbundenen Geräte können über den Menüpunkt „Modul-Einstellungen“ abgerufen werden</string>
<string name="setting_persistent_notification">Dauerhafte Benachrichtigung anzeigen</string>
<string name="setting_persistent_notification_oreo">Dauerhafte Benachrichtigung</string>
<string name="setting_persistent_notification_description">Klicken um die Benachrichtigungseinstellungen zu aktivieren/deaktivieren</string>
<string name="extra_options">Weitere Einstellungen</string>
<string name="privacy_options">Einstellungen zur Privatsphäre</string>
<string name="set_privacy_options">Einstellungen zur Privatsphäre ändern</string>
<string name="block_contents">Inhalt von Benachrichtigungen blockieren</string>
<string name="block_images">Bilder in Benachrichtigungen blockieren</string>
<string name="notification_channel_receivenotification">Benachrichtigungen verbundener Geräte</string>
<string name="take_picture">Kamera starten</string>
<string name="plugin_photo_desc">Die Kamera starten um das Erstellen und Übertragen von Bildern zu vereinfachen</string>
<string name="no_app_for_opening">Es wurde keine passende App zum Öffnen dieser Datei gefunden</string>
<string name="remote_keyboard_service">Entfernte Tastatur für KDE-Connect</string>
<string name="presenter_pointer">Laserpointer</string>
</resources>

View File

@@ -1,7 +1,6 @@
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="pref_plugin_telephony">Ειδοποιήσεις τηλεφωνίας</string>
<string name="pref_plugin_telephony_desc">Αποστολή ειδοποιήσεων για SMS και κλήσεις</string>
<string name="pref_plugin_battery">Αναφορά μπαταρίας</string>
<string name="pref_plugin_battery_desc">Περιοδική αναφορά κατάστασης μπαταρίας</string>
<string name="pref_plugin_sftp">Αποκάλυψη συστήματος αρχείων</string>
@@ -24,7 +23,6 @@
<string name="pref_plugin_receive_notifications_desc">Λήψη ειδοποιήσεων από την άλλη συσκευή και προβολή τους στο Android</string>
<string name="pref_plugin_sharereceiver">Διαμοιρασμός και λήψη</string>
<string name="pref_plugin_sharereceiver_desc">Διαμοιρασμός αρχείων και URL μεταξύ συσκευών</string>
<string name="plugin_not_available">Αυτή η λειτουργία δεν είναι διαθέσιμη στην τρέχουσα έκδοση του Android</string>
<string name="device_list_empty">Χωρίς συσκευές</string>
<string name="ok">Εντάξει</string>
<string name="cancel">Ακύρωση</string>
@@ -53,44 +51,35 @@
<item>Πάνω από το προκαθορισμένο</item>
<item>Το ταχύτερο</item>
</string-array>
<string-array name="mousepad_acceleration_profile_entries">
<item>No Acceleration</item>
<item>Weakest</item>
<item>Weaker</item>
<item>Medium</item>
<item>Stronger</item>
<item>Strongest</item>
</string-array>
<string name="category_connected_devices">Συνδεδεμένες συσκευές</string>
<string name="category_not_paired_devices">Διαθέσιμες συσκευές</string>
<string name="category_remembered_devices">Συσκευές στη μνήμη</string>
<string name="plugins_failed_to_load">Αποτυχία φόρτωσης προσθέτων (χτυπήστε για περισσότερες πληροφορίες):</string>
<string name="device_menu_plugins">Ρυθμίσεις προσθέτων</string>
<string name="device_menu_unpair">Διαχωρισμός</string>
<string name="device_not_reachable">Η συζευγμένη συσκευή δεν είναι προσβάσιμη</string>
<string name="pair_new_device">Σύζευξη νέας συσκευής</string>
<string name="unknown_device">Άγνωστη συσκευή</string>
<string name="error_not_reachable">Η συσκευή δεν είναι προσβάσιμη</string>
<string name="error_already_requested">Η σύζευξη ήδη ζητήθηκε</string>
<string name="error_already_paired">Η συσκευή ήδη συζεύχθηκε</string>
<string name="error_could_not_send_package">Αδυναμία αποστολής πακέτου</string>
<string name="error_timed_out">Τέλος χρονικού ορίου</string>
<string name="error_canceled_by_user">Ακυρώθηκε από τον χρήστη</string>
<string name="error_canceled_by_other_peer">Ακυρώθηκε από άλλον χρήστη</string>
<string name="error_invalid_key">Ελήφθη μη έγκυρο κλειδί</string>
<string name="encryption_info_title">Πληροφορίες κρυπτογράφησης</string>
<string name="encryption_info_msg_no_ssl">Η άλλη συσκευή δεν χρησιμοποιεί μια πρόσφατη έκδοση του KDE Connect, θα χρησιμοποιηθεί η παλαιά μέθοδος κρυπτογράφησης.</string>
<string name="my_device_fingerprint">Το ίχνος SHA1 του πιστοποιητικού της συσκευής σας είναι:</string>
<string name="remote_device_fingerprint">Το ίχνος SHA1 του πιστοποιητικού της απομακρυσμένης συσκευής είναι:</string>
<string name="pair_requested">Ζητήθηκε σύζευξη</string>
<string name="pairing_request_from">Αίτημα σύζευξης από %1s</string>
<string name="received_url_title">Ελήφθη σύνδεσμος από %1s</string>
<string name="received_url_text">Χτυπήστε για άνοιγμα \'%1s\'</string>
<string name="incoming_file_title">Εισερχόμενο αρχείο από %1s</string>
<string name="incoming_file_text">%1s</string>
<string name="outgoing_file_title">Αποστολή αρχείου σε %1s</string>
<string name="outgoing_files_title">Αποστολή αρχείων σε %1s</string>
<string name="received_file_title">Ελήφθη αρχείο από %1s</string>
<string name="received_file_fail_title">Αποτυχία λήψης αρχείου από %1s</string>
<string name="received_file_text">Χτυπήστε για άνοιγμα \'%1s\'</string>
<string name="sent_file_title">Εστάλη αρχείο σε %1s</string>
<string name="sent_file_text">%1s</string>
<string name="sent_file_failed_title">Αποτυχία αποστολής αρχείου σε %1s</string>
<string name="sent_file_failed_text">%1s</string>
<string name="tap_to_answer">Χτυπήστε για να απαντήσετε</string>
<string name="reconnect">Επανασύνδεση</string>
<string name="right_click">Αποστολή δεξιού κλικ</string>
<string name="middle_click">Αποστολή μεσαίου κλικ</string>
<string name="show_keyboard">Εμφάνιση πληκτρολογίου</string>
@@ -98,19 +87,13 @@
<string name="request_pairing">Αίτημα σύζευξης</string>
<string name="pairing_accept">Αποδοχή</string>
<string name="pairing_reject">Απόρριψη</string>
<string name="device">Συσκευή</string>
<string name="pair_device">Σύζευξη συσκευής</string>
<string name="remote_control">Απομακρυσμένος έλεγχος</string>
<string name="settings">Ρυθμίσεις KDE Connect</string>
<string name="mpris_play">Αναπαραγωγή</string>
<string name="mpris_previous">Προηγούμενο</string>
<string name="mpris_rew">Ταχεία ώθηση όπισθεν</string>
<string name="mpris_ff">Ταχεία προώθηση</string>
<string name="mpris_next">Επόμενο</string>
<string name="mpris_volume">Τόμος</string>
<string name="mpris_settings">Ρυθμίσεις πολυμέσων</string>
<string name="mpris_time_settings_title">Κουμπιά ταχείας ώθησης</string>
<string name="mpris_time_settings_summary">Χρονική προσαρμογή ταχείας ώθησης ανάλογα με την πίεση.</string>
<string-array name="mpris_time_entries">
<item>10 seconds</item>
<item>20 seconds</item>
@@ -118,19 +101,11 @@
<item>1 λεπτό</item>
<item>2 λεπτά</item>
</string-array>
<string name="share_to">Διαμοιρασμός με...</string>
<string name="protocol_version_older">Η συσκευή αυτή χρησιμοποιεί παλαιά έκδοση πρωτοκόλλου</string>
<string name="protocol_version_newer">Η συσκευή αυτή χρησιμοποιεί νεότερη έκδοση πρωτοκόλλου</string>
<string name="general_settings">Γενικές ρυθμίσεις</string>
<string name="plugin_settings">Ρυθμίσεις</string>
<string name="plugin_settings_with_name">%s ρυθμίσεις</string>
<string name="device_name">Όνομα συσκευής</string>
<string name="device_name_preference_summary">%s</string>
<string name="invalid_device_name">Μη έγκυρο όνομα συσκευής</string>
<string name="shareplugin_text_saved">Ελήφθη κείμενο, αποθηκεύτηκε στο πρόχειρο</string>
<string name="custom_devices_settings">Προσαρμοσμένη λίστα συσκευών</string>
<string name="pair_device_action">Σύζευξη νέας συσκευής</string>
<string name="unpair_device_action">Διαχωρισμός %s</string>
<string name="custom_device_list">Προσθήκη συσκευών ανά IP</string>
<string name="share_notification_preference">Θορυβώδεις ειδοποιήσεις</string>
<string name="share_notification_preference_summary">Δόνηση και ηχητική ένδειξη με τη λήψη αρχείου</string>
@@ -140,44 +115,32 @@
<string name="share_destination_folder_preference">Κατάλογος προορισμού</string>
<string name="title_activity_notification_filter">Φιλτράρισμα ειδοποιήσεων</string>
<string name="filter_apps_info">Οι ειδοποιήσεις θα συγχρονίζονται για επιλεγμένες εφαρμογές.</string>
<string name="sftp_internal_storage">Εσωτερικός αποθηκευτικός χώρος</string>
<string name="sftp_all_files">Όλα τα αρχεία</string>
<string name="sftp_sdcard_num">SD card %d</string>
<string name="sftp_sdcard">SD card</string>
<string name="sftp_readonly">(ανάγνωση μόνο)</string>
<string name="sftp_camera">Φωτογραφίες</string>
<string name="add_host">Προσθήκη υπολογιστή/IP</string>
<string name="add_host_hint">Όνομα υπολογιστή ή IP</string>
<string name="no_players_connected">Δεν βρέθηκαν συσκευές αναπαραγωγής</string>
<string name="custom_dev_list_help">Χρησιμοποιήστε την επιλογή αυτή μόνο αν η συσκευή σας δεν έχει εντοπιστεί αυτόματα. Δώστε την IP διεύθυνση ή το όνομα του υπολογιστή και αγγίξτε το κουμπί για να προστεθεί στη λίστα. Αγγίξτε ένα αντικείμενο της λίστας για να το αφαιρέσετε.</string>
<string name="mpris_player_on_device">%1$s σε %2$s</string>
<string name="send_files">Αποστολή αρχείων</string>
<string name="pairing_title">Συσκευές KDE Connect</string>
<string name="pairing_description">Άλλες συσκευές με KDE Connect στο ίδιο δίκτυο θα εμφανίζονται εδώ.</string>
<string name="device_paired">Η συσκευή συζεύχθηκε</string>
<string name="device_rename_title">Μετονομασία συσκευής</string>
<string name="device_rename_confirm">Μετονομασία</string>
<string name="refresh">Ανανέωση</string>
<string name="unreachable_description">Αυτή η συζευγμένη συσκευή δεν είναι προσβάσιμη. Βεβαιωθείτε ότι είναι συνδεδεμένη στο δίκτυό σας.</string>
<string name="on_data_message">Φαίνεται ότι είστε σε σύνδεση δεδομένων από κινητό. Το KDE Connect λειτουργεί μόνο σε τοπικά δίκτυα.</string>
<string name="no_file_browser">Δεν υπάρχουν εγκατεστημένοι περιηγητές αρχείων.</string>
<string name="pref_plugin_telepathy">Αποστολή SMS</string>
<string name="pref_plugin_telepathy_desc">Αποστολή μηνυμάτων κειμένου από τον υπολογιστή σας</string>
<string name="plugin_not_supported">Αυτό το πρόσθετο δεν υποστηρίζεται από τη συσκευή</string>
<string name="findmyphone_title">Αναζήτηση του κινητού μου</string>
<string name="findmyphone_title_tablet">Εύρεση της ταμπλέτας μου</string>
<string name="findmyphone_description">Καλεί αυτή τη συσκευή ώστε να την εντοπίσετε</string>
<string name="findmyphone_found">Βρέθηκε</string>
<string name="open">Άνοιγμα</string>
<string name="close">Κλείσιμο</string>
<string name="no_permissions_storage">Απαιτείται παραχώρηση δικαιωμάτων για την πρόσβαση στον αποθηκευτικό χώρο</string>
<string name="plugins_need_permission">Κάποια πρόσθετα απαιτούν δικαιώματα για να λειτουργήσουν (χτυπήστε για περισσότερες πληροφορίες):</string>
<string name="permission_explanation">Αυτό το πρόσθετο χρειάζεται δικαιώματα για να λειτουργήσει</string>
<string name="optional_permission_explanation">Απαιτείται παραχώρηση επιπλέον δικαιωμάτων για την ενεργοποίηση όλων των λειτουργιών</string>
<string name="plugins_need_optional_permission">Κάποια πρόσθετα έχουν λειτουργίες ανενεργές εξαιτίας της απουσίας δικαιωμάτων (χτυπήστε για περισσότερες πληροφορίες):</string>
<string name="sftp_permission_explanation">Για την πρόσβαση στα αρχεία σας από τον υπολογιστή η εφαρμογή χρειάζεται δικαιώματα πρόσβασης στον αποθηκευτικό χώρο του κινητού σας</string>
<string name="share_optional_permission_explanation">Για το διαμοιρασμό αρχείων ανάμεσα στο τηλέφωνο και τον υπολογιστή σας χρειάζεται να παραχωρήσετε πρόσβαση στον αποθηκευτικό χώρο του τηλεφώνου σας</string>
<string name="telepathy_permission_explanation">Για να διαβάσετε και να γράψετε SMS από την επιφάνεια εργασίας, χρειάζεται να δώσετε δικαιώματα στο SMS</string>
<string name="telephony_permission_explanation">Για να δείτε τηλεφωνικές κλήσεις και SMS από την επιφάνεια εργασίας, χρειάζεται να παραχωρήσετε δικαιώματα σε τηλεφωνικές κλήσεις και SMS</string>
<string name="telephony_optional_permission_explanation">Για να δείτε το όνομα επαφής αντί για τον αριθμό κλήσης χρειάζεται να παραχωρήσετε πρόσβαση στις επαφές στο τηλέφωνο</string>
</resources>

View File

@@ -1,7 +1,10 @@
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="kde_connect">KDE Connect</string>
<string name="foreground_notification_no_devices">Not connected to any device</string>
<string name="foreground_notification_devices">Connected to: %s</string>
<string name="pref_plugin_telephony">Telephony notifier</string>
<string name="pref_plugin_telephony_desc">Send notifications for SMS and calls</string>
<string name="pref_plugin_telephony_desc">Send notifications for incoming calls</string>
<string name="pref_plugin_battery">Battery report</string>
<string name="pref_plugin_battery_desc">Periodically report battery status</string>
<string name="pref_plugin_sftp">Filesystem expose</string>
@@ -10,12 +13,16 @@
<string name="pref_plugin_clipboard_desc">Share the clipboard content</string>
<string name="pref_plugin_mousepad">Remote input</string>
<string name="pref_plugin_mousepad_desc">Use your phone or tablet as a touchpad and keyboard</string>
<string name="pref_plugin_presenter">Slideshow remote</string>
<string name="pref_plugin_presenter_desc">Use your device to change slides in a presentation</string>
<string name="pref_plugin_remotekeyboard">Receive remote keypresses</string>
<string name="pref_plugin_remotekeyboard_desc">Receive keypress events from remote devices</string>
<string name="pref_plugin_mpris">Multimedia controls</string>
<string name="pref_plugin_mpris_desc">Provides a remote control for your media player</string>
<string name="pref_plugin_runcommand">Run Command</string>
<string name="pref_plugin_runcommand_desc">Trigger remote commands from your phone or tablet</string>
<string name="pref_plugin_contacts">Contacts Synchroniser</string>
<string name="pref_plugin_contacts_desc">Allow synchronising the device\'s contacts book</string>
<string name="pref_plugin_ping">Ping</string>
<string name="pref_plugin_ping_desc">Send and receive pings</string>
<string name="pref_plugin_notifications">Notification sync</string>
@@ -24,12 +31,13 @@
<string name="pref_plugin_receive_notifications_desc">Receive notifications from the other device and display them on Android</string>
<string name="pref_plugin_sharereceiver">Share and receive</string>
<string name="pref_plugin_sharereceiver_desc">Share files and URLs between devices</string>
<string name="plugin_not_available">This feature is not available in your Android version</string>
<string name="device_list_empty">No devices</string>
<string name="ok">OK</string>
<string name="cancel">Cancel</string>
<string name="open_settings">Open settings</string>
<string name="no_permissions">You need to grant permission to access notifications</string>
<string name="no_permission_mprisreceiver">To be able to control your media players you need to grant access to the notifications</string>
<string name="no_permissions_remotekeyboard">To receive keypresses you need to activate the KDE Connect Remote Keyboard</string>
<string name="send_ping">Send ping</string>
<string name="open_mpris_controls">Multimedia control</string>
<string name="remotekeyboard_editing_only_title">Handle remote keys only when editing</string>
@@ -41,6 +49,7 @@
<string name="mousepad_double_tap_settings_title">Set two finger tap action</string>
<string name="mousepad_triple_tap_settings_title">Set three finger tap action</string>
<string name="mousepad_sensitivity_settings_title">Set touchpad sensitivity</string>
<string name="mousepad_acceleration_profile_settings_title">Set pointer acceleration</string>
<string name="mousepad_scroll_direction_title">Reverse Scrolling Direction</string>
<string-array name="mousepad_tap_entries">
<item>Right click</item>
@@ -54,48 +63,68 @@
<item>Above Default</item>
<item>Fastest</item>
</string-array>
<string-array name="mousepad_acceleration_profile_entries">
<item>No Acceleration</item>
<item>Weakest</item>
<item>Weaker</item>
<item>Medium</item>
<item>Stronger</item>
<item>Strongest</item>
</string-array>
<string name="category_connected_devices">Connected devices</string>
<string name="category_not_paired_devices">Available devices</string>
<string name="category_remembered_devices">Remembered devices</string>
<string name="plugins_failed_to_load">Plugins failed to load (tap for more info):</string>
<string name="device_menu_plugins">Plugin settings</string>
<string name="device_menu_unpair">Unpair</string>
<string name="device_not_reachable">Paired device not reachable</string>
<string name="pair_new_device">Pair new device</string>
<string name="unknown_device">Unknown device</string>
<string name="error_not_reachable">Device not reachable</string>
<string name="error_already_requested">Pairing already requested</string>
<string name="error_already_paired">Device already paired</string>
<string name="error_could_not_send_package">Could not send package</string>
<string name="error_timed_out">Timed out</string>
<string name="error_canceled_by_user">Cancelled by user</string>
<string name="error_canceled_by_other_peer">Cancelled by other peer</string>
<string name="error_invalid_key">Invalid key received</string>
<string name="encryption_info_title">Encryption Info</string>
<string name="encryption_info_msg_no_ssl">The other device doesn\'t use a recent version of KDE Connect, using the legacy encryption method.</string>
<string name="my_device_fingerprint">SHA1 fingerprint of your device certificate is:</string>
<string name="remote_device_fingerprint">SHA1 fingerprint of remote device certificate is:</string>
<string name="pair_requested">Pair requested</string>
<string name="pairing_request_from">Pairing request from %1s</string>
<string name="received_url_title">Received link from %1s</string>
<string name="received_url_text">Tap to open \'%1s\'</string>
<string name="incoming_file_title">Incoming file from %1s</string>
<string name="incoming_file_text">%1s</string>
<string name="outgoing_file_title">Sending file to %1s</string>
<string name="outgoing_files_title">Sending files to %1s</string>
<plurals name="outgoing_files_text">
<item quantity="one">Send files</item>
<item quantity="other">Sent %1$d out of %2$d files</item>
<plurals name="incoming_file_title">
<item quantity="one">Receiving %1$d file from %2$s</item>
<item quantity="other">Receiving %1$d files from %2$s</item>
</plurals>
<plurals name="incoming_files_text">
<item quantity="one">File: %1s</item>
<item quantity="other">(File %2$d of %3$d) : %1$s</item>
</plurals>
<plurals name="outgoing_file_title">
<item quantity="one">Sending %1$d file to %2$s</item>
<item quantity="other">Sending %1$d files to %2$s</item>
</plurals>
<plurals name="outgoing_files_text">
<item quantity="one">File: %1$s</item>
<item quantity="other">(File %2$d of %3$d) : %1$s</item>
</plurals>
<plurals name="received_files_title">
<item quantity="one">Received file from %1$s</item>
<item quantity="other">Received %2$d files from %1$s</item>
</plurals>
<plurals name="received_files_fail_title">
<item quantity="one">Failed receiving file from %1$s</item>
<item quantity="other">Failed receiving %2$d of %3$d files from %1$s</item>
</plurals>
<plurals name="sent_files_title">
<item quantity="one">Sent file to %1$s</item>
<item quantity="other">Sent %2$d files to %1$s</item>
</plurals>
<plurals name="send_files_fail_title">
<item quantity="one">Failed sending file to %1$s</item>
<item quantity="other">Failed sending %2$d of %3$d files to %1$s</item>
</plurals>
<string name="received_file_title">Received file from %1s</string>
<string name="received_file_fail_title">Failed receiving file from %1s</string>
<string name="received_file_text">Tap to open \'%1s\'</string>
<string name="sent_file_title">Sent file to %1s</string>
<string name="sent_file_text">%1s</string>
<string name="sent_file_failed_title">Failed to send file to %1s</string>
<string name="sent_file_failed_text">%1s</string>
<string name="cannot_create_file">Cannot create file %s</string>
<string name="tap_to_answer">Tap to answer</string>
<string name="reconnect">Reconnect</string>
<string name="right_click">Send Right Click</string>
<string name="middle_click">Send Middle Click</string>
<string name="show_keyboard">Show Keyboard</string>
@@ -103,10 +132,7 @@
<string name="request_pairing">Request pairing</string>
<string name="pairing_accept">Accept</string>
<string name="pairing_reject">Reject</string>
<string name="device">Device</string>
<string name="pair_device">Pair device</string>
<string name="remote_control">Remote control</string>
<string name="settings">KDE Connect Settings</string>
<string name="settings">Settings</string>
<string name="mpris_play">Play</string>
<string name="mpris_pause">Pause</string>
<string name="mpris_previous">Previous</string>
@@ -114,9 +140,8 @@
<string name="mpris_ff">Fast-forward</string>
<string name="mpris_next">Next</string>
<string name="mpris_volume">Volume</string>
<string name="mpris_settings">Multimedia Settings</string>
<string name="mpris_time_settings_title">Forward/rewind buttons</string>
<string name="mpris_time_settings_summary">Adjust the time to fast forward/rewind when pressed.</string>
<string name="mpris_time_settings_summary">Adjust the time to fast forward/rewind when pressed</string>
<string-array name="mpris_time_entries">
<item>10 seconds</item>
<item>20 seconds</item>
@@ -125,79 +150,130 @@
<item>2 minutes</item>
</string-array>
<string name="mpris_notification_settings_title">Show media control notification</string>
<string name="mpris_notification_settings_summary">Allows controlling your media players without opening KDE Connect.</string>
<string name="share_to">Share To...</string>
<string name="protocol_version_older">This device uses an old protocol version</string>
<string name="mpris_notification_settings_summary">Allow controlling your media players without opening KDE Connect</string>
<string name="share_to">Share To</string>
<string name="protocol_version_newer">This device uses a newer protocol version</string>
<string name="general_settings">General Settings</string>
<string name="plugin_settings">Settings</string>
<string name="plugin_settings_with_name">%s settings</string>
<string name="device_name">Device name</string>
<string name="device_name_preference_summary">%s</string>
<string name="invalid_device_name">Invalid device name</string>
<string name="shareplugin_text_saved">Received text, saved to clipboard</string>
<string name="custom_devices_settings">Custom device list</string>
<string name="pair_device_action">Pair a new device</string>
<string name="unpair_device_action">Unpair %s</string>
<string name="custom_device_list">Add devices by IP</string>
<string name="custom_device_deleted">Custom device deleted</string>
<string name="custom_device_list_help">If your device is not automatically detected you can add its IP address or hostname by clicking on the Floating Action Button</string>
<string name="custom_device_fab_hint">Add a device</string>
<string name="undo">Undo</string>
<string name="share_notification_preference">Noisy notifications</string>
<string name="share_notification_preference_summary">Vibrate and play a sound when receiving a file</string>
<string name="share_destination_customize">Customise destination directory</string>
<string name="share_destination_customize_summary_disabled">Received files will appear in Downloads</string>
<string name="share_destination_customize_summary_enabled">Files will be stored in the directory below</string>
<string name="share_destination_folder_preference">Destination directory</string>
<string name="share">Share</string>
<string name="share_received_file">Share \"%s\"</string>
<string name="title_activity_notification_filter">Notification filter</string>
<string name="filter_apps_info">Notifications will be synchronised for the selected apps.</string>
<string name="sftp_internal_storage">Internal storage</string>
<string name="sftp_all_files">All files</string>
<string name="sftp_sdcard_num">SD card %d</string>
<string name="sftp_sdcard">SD card</string>
<string name="sftp_readonly">(read only)</string>
<string name="sftp_camera">Camera pictures</string>
<string name="add_host">Add host/IP</string>
<string name="add_host_hint">Hostname or IP</string>
<string name="add_device_dialog_title">Add device</string>
<string name="add_device_hint">Hostname or IP address</string>
<string name="sftp_preference_detected_sdcards">Detected SD cards</string>
<string name="sftp_preference_edit_sdcard_title">Edit SD card</string>
<string name="sftp_preference_configured_storage_locations">Configured storage locations</string>
<string name="sftp_preference_add_storage_location_title">Add storage location</string>
<string name="sftp_preference_edit_storage_location">Edit storage location</string>
<string name="sftp_preference_add_camera_shortcut">Add camera folder shortcut</string>
<string name="sftp_preference_add_camera_shortcut_summary_on">Add a shortcut to the camera folder</string>
<string name="sftp_preference_add_camera_shortcut_summary_off">Do not add a shortcut to the camera folder</string>
<string name="sftp_storage_preference_storage_location">Storage location</string>
<string name="sftp_storage_preference_storage_location_already_configured">This location has already been configured</string>
<string name="sftp_storage_preference_click_to_select">click to select</string>
<string name="sftp_storage_preference_display_name">Display name</string>
<string name="sftp_storage_preference_display_name_already_used">This display name is already used</string>
<string name="sftp_storage_preference_display_name_cannot_be_empty">Display name cannot be empty</string>
<string name="sftp_action_mode_menu_delete">Delete</string>
<string name="sftp_no_sdcard_detected">No SD card detected</string>
<string name="sftp_no_storage_locations_configured">No storage locations configured</string>
<string name="sftp_saf_permission_explanation">To access files remotely you have to configure storage locations</string>
<string name="no_players_connected">No players found</string>
<string name="custom_dev_list_help">Use this option only if your device is not automatically detected. Enter IP address or hostname below and touch the button to add it to the list. Touch an existing item to remove it from the list.</string>
<string name="mpris_player_on_device">%1$s on %2$s</string>
<string name="send_files">Send files</string>
<string name="pairing_title">KDE Connect Devices</string>
<string name="pairing_description">Other devices running KDE Connect in your same network should appear here.</string>
<string name="device_paired">Device paired</string>
<string name="device_rename_title">Rename device</string>
<string name="device_rename_confirm">Rename</string>
<string name="refresh">Refresh</string>
<string name="unreachable_description">This paired device is not reachable. Make sure it is connected to your same network.</string>
<string name="on_data_message">It looks like you are on a mobile data connection. KDE Connect only works on local networks.</string>
<string name="no_wifi">You\'re not connected to a Wi-Fi network, so you may not be able to see any devices. Click here to enable Wi-Fi.</string>
<string name="no_file_browser">There are no file browsers installed.</string>
<string name="pref_plugin_telepathy">Send SMS</string>
<string name="pref_plugin_telepathy_desc">Send text messages from your desktop</string>
<string name="plugin_not_supported">This plugin is not supported by the device</string>
<string name="findmyphone_title">Find my phone</string>
<string name="findmyphone_title_tablet">Find my tablet</string>
<string name="findmyphone_title_tv">Find my TV</string>
<string name="findmyphone_description">Rings this device so you can find it</string>
<string name="findmyphone_found">Found</string>
<string name="open">Open</string>
<string name="close">Close</string>
<string name="no_permissions_storage">You need to grant permissions to access the storage</string>
<string name="plugins_need_permission">Some Plugins need permissions to work (tap for more info):</string>
<string name="permission_explanation">This plugin needs permissions to work</string>
<string name="optional_permission_explanation">You need to grant extra permissions to enable all functions</string>
<string name="plugins_need_optional_permission">Some plugins have features disabled because of lack of permission (tap for more info):</string>
<string name="sftp_permission_explanation">To access your files from your PC the app needs permission to access your phone\'s storage</string>
<string name="share_optional_permission_explanation">To share files between your phone and your desktop you need to give access to the phone\'s storage</string>
<string name="telepathy_permission_explanation">To read and write SMS from your desktop you need to give permission to SMS</string>
<string name="telephony_permission_explanation">To see phone calls and SMS from the desktop you need to give permission to phone calls and SMS</string>
<string name="telephony_permission_explanation">To see phone calls on the desktop you need to give permission to phone call logs and phone state</string>
<string name="telephony_optional_permission_explanation">To see a contact name instead of a phone number you need to give access to the phone\'s contacts</string>
<string name="contacts_permission_explanation">To share your contacts book with the desktop, you need to give contacts permission</string>
<string name="select_ringtone">Select a ringtone</string>
<string name="telephony_pref_blocked_title">Blocked numbers</string>
<string name="telephony_pref_blocked_dialog_desc">Don\'t show calls and SMS from these numbers. Please specify one number per line</string>
<string name="mpris_coverart_description">Cover art of current media</string>
<string name="device_icon_description">Device icon</string>
<string name="settings_icon_description">Settings icon</string>
<string name="presenter_fullscreen">Full-screen</string>
<string name="presenter_exit">Exit presentation</string>
<string name="presenter_lock_tip">You can lock your device and use the volume keys to go to the previous/next slide</string>
<string name="add_command">Add a command</string>
<string name="addcommand_name">Name</string>
<string name="addcommand_command">Command</string>
<string name="command_confirm_needed">You will need to confirm the command on the desktop</string>
<string name="addcommand_explanation">There are no commands registered</string>
<string name="addcommand_explanation2">You can add new commands in the KDE Connect System Settings</string>
<string name="add_command_description">You can add commands on the desktop</string>
<string name="pref_plugin_mprisreceiver">Media Player Control</string>
<string name="pref_plugin_mprisreceiver_desc">Control your phone\'s media players from another device</string>
<string name="notification_channel_default">Other notifications</string>
<string name="notification_channel_persistent">Persistent indicator</string>
<string name="notification_channel_media_control">Media control</string>
<string name="notification_channel_filetransfer">File transfer</string>
<string name="mpris_stop">Stop the current player</string>
<string name="copy_url_to_clipboard">Copy URL to clipboard</string>
<string name="clipboard_toast">Copied to clipboard</string>
<string name="runcommand_notreachable">Device is not reachable</string>
<string name="runcommand_notpaired">Device is not paired</string>
<string name="runcommand_nosuchdevice">There is no such device</string>
<string name="runcommand_noruncommandplugin">This device does not have the Run Command Plugin enabled</string>
<string name="pref_plugin_findremotedevice">Find remote device</string>
<string name="pref_plugin_findremotedevice_desc">Ring your remote device</string>
<string name="ring">Ring</string>
<string name="pref_plugin_systemvolume">System volume</string>
<string name="pref_plugin_systemvolume_desc">Control the system volume of the remote device</string>
<string name="mute">Mute</string>
<string name="all">All</string>
<string name="devices">Devices</string>
<string name="settings_rename">Device name</string>
<string name="settings_dark_mode">Dark theme</string>
<string name="settings_more_settings_title">More settings</string>
<string name="settings_more_settings_text">Per-device settings can be found under \'Plugin settings\' from within a device.</string>
<string name="setting_persistent_notification">Show persistent notification</string>
<string name="setting_persistent_notification_oreo">Persistent notification</string>
<string name="setting_persistent_notification_description">Tap to enable/disable in Notification settings</string>
<string name="extra_options">Extra options</string>
<string name="privacy_options">Privacy options</string>
<string name="set_privacy_options">Set your privacy options</string>
<string name="block_contents">Block contents of notifications</string>
<string name="block_images">Block images in notifications</string>
<string name="notification_channel_receivenotification">Notifications from other devices</string>
<string name="take_picture">Launch camera</string>
<string name="plugin_photo_desc">Launch the camera app to ease taking and transferring pictures</string>
<string name="no_app_for_opening">No suitable app found to open this file</string>
<string name="remote_keyboard_service">KDE Connect Remote Keyboard</string>
<string name="presenter_pointer">Pointer</string>
</resources>

Some files were not shown because too many files have changed in this diff Show More