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

Compare commits

..

1333 Commits

Author SHA1 Message Date
Albert Vaca Cintora
f89c01ec17 Release 1.28.0 2023-09-07 09:33:14 +02:00
Albert Vaca Cintora
5da804939d Partially revert "Add MDNS discovery"
This partially reverts commit 8f8a09a99a.

Removing MDNS to do one last bugfix-only release.
2023-09-07 09:27:55 +02:00
Albert Vaca Cintora
3fbef1da87 Add some logs to ConnectivityManager.NetworkCallback 2023-09-07 09:27:55 +02:00
Albert Vaca Cintora
ce055818c9 Bump deps, do not use alpha accompanist 2023-09-07 09:27:55 +02:00
l10n daemon script
79a59a125f GIT_SILENT made messages (after extraction) 2023-09-07 00:45:20 +00:00
Albert Vaca Cintora
ae98b5c71f When permissions are granted, reload plugins for all devices 2023-09-06 08:09:09 +00:00
Albert Vaca Cintora
6b1b12a178 Bump dependencies 2023-09-06 08:08:53 +02:00
Albert Vaca Cintora
b01266d654 Fix ForegroundServiceStartNotAllowedException in ACTION_SCREEN_ON
The same way we did for ACTION_BOOT_COMPLETED
2023-09-06 07:42:18 +02:00
l10n daemon script
e9a862f27c GIT_SILENT made messages (after extraction) 2023-09-04 00:46:15 +00:00
l10n daemon script
cb0cea827f GIT_SILENT Sync po/docbooks with svn 2023-09-03 02:05:47 +00:00
l10n daemon script
6e5cfd9b2e GIT_SILENT made messages (after extraction) 2023-09-03 00:45:30 +00:00
l10n daemon script
1080bae5e2 GIT_SILENT Sync po/docbooks with svn 2023-09-02 01:49:59 +00:00
l10n daemon script
d2290bedb0 GIT_SILENT made messages (after extraction) 2023-09-02 00:46:41 +00:00
Albert Vaca Cintora
4d2efe6b89 Request notifications permission so we can target Android 13
Starting next month (September 2023) it will be required to target
Android 13 to publish to the Play Store.

On Android 13, we need to request the POST_NOTIFICATIONS permission. 

This change adds the permission as required/optional to the plugins
that do create notifications. It also adds a popup to request it the
first time you open the app.
2023-09-01 03:34:32 +00:00
Albert Vaca Cintora
37db0810aa Bind only the socket we use for UDP broadcast, not the process 2023-08-30 23:12:17 +02:00
Axel Pirek
f9a3598edf Bind sockets to network
Fixes a race condition where onNetworkChange was called before the new
network became the default and the identity packet would be broadcast to
the wrong (e.g. cellular) network.
2023-08-30 23:09:02 +02:00
Albert Vaca Cintora
1d822e1610 Fix keyboard/d-pad navigation
Allows navigating the app using the arrow keys on a keyboard or the
D-pad on a TV remote, up until the plugin list (I haven't checked
specific plugins).
2023-08-30 13:55:08 +00:00
l10n daemon script
4e9dece3b2 GIT_SILENT made messages (after extraction) 2023-08-30 00:46:01 +00:00
Albert Vaca Cintora
8f8a09a99a Add MDNS discovery
Uses Android's `NsdManager` to announce a `_kdeconnect._udp` service using MDNS. This is done in addition to sending UDP broadcasts.

When we detect a device this way, we send a UDP identity packet to it (identical to the ones we broadcast but sent to a single device).

I also added a toggle in settings to disable the UDP broadcasts, so we can test MDNS by itself.
2023-08-28 21:37:55 +00:00
l10n daemon script
b545257fa7 GIT_SILENT Sync po/docbooks with svn 2023-08-28 02:06:33 +00:00
l10n daemon script
2c72619ae7 GIT_SILENT made messages (after extraction) 2023-08-28 00:46:12 +00:00
l10n daemon script
418cf720ab GIT_SILENT made messages (after extraction) 2023-08-27 00:45:55 +00:00
l10n daemon script
5ef5be87ca GIT_SILENT made messages (after extraction) 2023-08-23 00:46:18 +00:00
Albert Vaca Cintora
a74a76b1da Organize permissions 2023-08-21 11:47:13 +02:00
l10n daemon script
bba910e420 GIT_SILENT made messages (after extraction) 2023-08-18 00:44:44 +00:00
l10n daemon script
75de17de47 GIT_SILENT Sync po/docbooks with svn 2023-08-15 01:47:20 +00:00
l10n daemon script
b0833391b4 GIT_SILENT Add new file (after extraction) 2023-08-15 00:45:07 +00:00
l10n daemon script
9a8c72f106 GIT_SILENT made messages (after extraction) 2023-08-15 00:45:02 +00:00
l10n daemon script
723f40d30c GIT_SILENT Sync po/docbooks with svn 2023-08-13 01:45:21 +00:00
l10n daemon script
079ee806e2 GIT_SILENT made messages (after extraction) 2023-08-13 00:45:54 +00:00
l10n daemon script
ed9bdfb276 GIT_SILENT Sync po/docbooks with svn 2023-08-10 01:46:15 +00:00
l10n daemon script
e688e4f89b GIT_SILENT made messages (after extraction) 2023-08-10 00:45:59 +00:00
l10n daemon script
a4e9f9d15b GIT_SILENT Add new file (after extraction) 2023-08-09 00:45:55 +00:00
Albert Vaca Cintora
ea4e6bae7b Use AGP 8.1 locales_config autogeneration 2023-08-08 10:08:10 +02:00
Erik Duisters
b3b538ff31 Migrate build configuration to kotlin
Migrate build logic to kotlin including use of version catalog
2023-08-08 08:01:35 +00:00
Dmitry Yudin
c5c780b5ce Update Presenter activity to use Compose
The Presenter activity including its layout file and related Java class were replaced with Compose UI.
Additionally, the androidx.compose.material3:material3 was updated from version 1.1.0 to version 1.1.1.
2023-08-08 06:12:15 +00:00
l10n daemon script
ad83f76ad1 GIT_SILENT Sync po/docbooks with svn 2023-08-07 02:06:33 +00:00
l10n daemon script
31d0d840d3 GIT_SILENT Add new file (after extraction) 2023-08-07 00:48:24 +00:00
l10n daemon script
2e5810bc7a GIT_SILENT made messages (after extraction) 2023-08-06 00:46:08 +00:00
Erik Duisters
7f39004de2 Consistently use IOUtils.close() 2023-08-05 20:15:36 +00:00
l10n daemon script
f04c415877 GIT_SILENT Sync po/docbooks with svn 2023-08-05 01:46:23 +00:00
l10n daemon script
da0949324c GIT_SILENT made messages (after extraction) 2023-08-05 00:45:57 +00:00
Erik Duisters
10ee5148e6 build.gradle fixes
Fixed usage of deprecated APIs in build.gradle

Updated kotlin, kotlin compiler, coroutines, gradle plugin, compose material3 and recyclerview versions
2023-08-04 12:56:31 +00:00
Albert Vaca Cintora
5c99b1d32e Avoid starting more than 1 connection to the same device
Since we close old connections when a new connection is received, due to
race conditions we could end up without a valid connection in this case.

Equivalent to https://invent.kde.org/network/kdeconnect-kde/-/merge_requests/580
2023-08-04 08:25:11 +00:00
l10n daemon script
3ffbaad554 GIT_SILENT Sync po/docbooks with svn 2023-08-04 01:46:37 +00:00
l10n daemon script
f021e2b83f GIT_SILENT Add new file (after extraction) 2023-08-04 00:45:38 +00:00
Erik Duisters
3da626156c Fix addPacket replacing existing and then adding duplicate item 2023-08-03 12:25:40 +02:00
l10n daemon script
7be8ced91c GIT_SILENT Sync po/docbooks with svn 2023-08-03 02:06:55 +00:00
l10n daemon script
7d2e2edce5 GIT_SILENT made messages (after extraction) 2023-08-03 00:45:58 +00:00
l10n daemon script
52e44d5155 GIT_SILENT Sync po/docbooks with svn 2023-08-02 01:54:11 +00:00
Erik Duisters
0bd326d403 Some Kotlin refactorings 2023-08-01 11:22:41 +00:00
l10n daemon script
46dd6a4bef GIT_SILENT Sync po/docbooks with svn 2023-08-01 01:57:04 +00:00
l10n daemon script
a958516cf5 GIT_SILENT made messages (after extraction) 2023-08-01 00:45:40 +00:00
l10n daemon script
a8b1f7de11 GIT_SILENT Sync po/docbooks with svn 2023-07-31 02:07:53 +00:00
l10n daemon script
91c420daa2 GIT_SILENT made messages (after extraction) 2023-07-31 00:46:38 +00:00
l10n daemon script
5f66bec8aa GIT_SILENT Sync po/docbooks with svn 2023-07-30 01:48:54 +00:00
l10n daemon script
8a0aeff2e5 GIT_SILENT Add new file (after extraction) 2023-07-30 00:45:26 +00:00
l10n daemon script
5f1b3e7762 GIT_SILENT made messages (after extraction) 2023-07-30 00:45:21 +00:00
Albert Vaca Cintora
15778faeff Update store description to make Google happy 2023-07-29 12:04:40 +02:00
Albert Vaca Cintora
a2ef4659d9 Release 1.27.1 2023-07-29 12:00:27 +02:00
Albert Vaca Cintora
e769a512eb Fix crash in loadRememberedDevicesFromSettings 2023-07-29 11:38:46 +02:00
Albert Vaca Cintora
4da0599f0e Fix crash on start in API 31+
Sometimes we can't start the foreground service at boot for some reason.
I have a couple untested theories: either the phone is slow at boot and
we don't get to call startForeground in time, or the user has never
started the app before and we are not allowed to start it or to create a
notification.
2023-07-29 11:28:50 +02:00
Albert Vaca Cintora
b00a0771fd Fix NPE when mediaSession was set to null in a separate thread 2023-07-29 11:08:23 +02:00
l10n daemon script
9d4e4cda3a GIT_SILENT made messages (after extraction) 2023-07-29 00:45:28 +00:00
l10n daemon script
06f8d47b00 GIT_SILENT Sync po/docbooks with svn 2023-07-27 01:46:36 +00:00
l10n daemon script
e46a413630 GIT_SILENT Add new file (after extraction) 2023-07-27 00:46:15 +00:00
l10n daemon script
d40e3122cc GIT_SILENT made messages (after extraction) 2023-07-27 00:46:10 +00:00
l10n daemon script
d84ac8b5f0 GIT_SILENT made messages (after extraction) 2023-07-26 00:46:30 +00:00
l10n daemon script
7128c9e298 GIT_SILENT Sync po/docbooks with svn 2023-07-24 09:02:25 +00:00
l10n daemon script
affc019c9c GIT_SILENT made messages (after extraction) 2023-07-24 07:33:05 +00:00
l10n daemon script
8ffd1f5b20 GIT_SILENT made messages (after extraction) 2023-07-21 00:49:36 +00:00
l10n daemon script
ca2a622de5 GIT_SILENT made messages (after extraction) 2023-07-20 00:48:35 +00:00
l10n daemon script
40fc12797a GIT_SILENT Sync po/docbooks with svn 2023-07-19 02:36:08 +00:00
Albert Vaca Cintora
f825a37c8e Better explanation for the mouse receiver permissions 2023-07-18 11:14:15 +02:00
Albert Vaca Cintora
7c52260efe Remove request packets from Battery and Connectivity Report plugins
We already send updates right after connecting and once there's a
change, so this was redundant.
2023-07-17 14:07:55 +02:00
Albert Vaca Cintora
49e2b2d9a2 Release 1.27.0 2023-07-16 18:15:18 +02:00
Albert Vaca Cintora
96fc4016ff Add missing import 2023-07-16 17:35:02 +02:00
Albert Vaca Cintora
1706a4c10d Revert "Disable MouseReceiver Plugin so we don't need accessibility API"
This reverts commit 32d6a346ab.
2023-07-16 17:29:25 +02:00
Albert Vaca Cintora
13b5fc4550 Revert "Remove REQUEST_INSTALL_PACKAGES permission"
This reverts commit b5d9293103.
2023-07-16 10:57:17 +02:00
Albert Vaca Cintora
11ffab5502 Revert "Enable the loopback link on Google test devices"
This reverts commit f26bd54be5.
2023-07-16 10:49:04 +02:00
l10n daemon script
377f91bd23 GIT_SILENT Sync po/docbooks with svn 2023-07-16 01:57:34 +00:00
l10n daemon script
8e078e608a GIT_SILENT made messages (after extraction) 2023-07-16 00:48:17 +00:00
l10n daemon script
12d08a17c2 GIT_SILENT Sync po/docbooks with svn 2023-07-14 02:00:18 +00:00
l10n daemon script
4b6ad1cdaa GIT_SILENT Add new file (after extraction) 2023-07-14 00:47:21 +00:00
l10n daemon script
1fcfd4b879 GIT_SILENT made messages (after extraction) 2023-07-12 00:47:11 +00:00
Albert Vaca Cintora
541ee4d3cc Remove Esperanto localization from fastlane
Esperanto isn't supported by Google
2023-07-08 00:47:45 +02:00
Albert Vaca Cintora
af922a4277 Release 1.26.4 2023-07-08 00:41:42 +02:00
Albert Vaca Cintora
48cccf3fca Catch SecurityException when calling getActiveNotifications
It's okay to ignore this since we were only using it to check if Spotify
was running.
2023-07-08 00:39:13 +02:00
Albert Vaca Cintora
1c3389efa0 Do not listen for PACKAGE_REPLACED broadcasts
We already listen for MY_PACKAGE_REPLACED which is sent since API 12
2023-07-08 00:29:09 +02:00
Albert Vaca Cintora
f54ebdb39b Trying random things to try to fix ForegroundServiceStartNotAllowedException 2023-07-08 00:24:17 +02:00
Albert Vaca Cintora
ea80000a4e Add a null check as mentioned in !377 2023-07-08 00:03:12 +02:00
Albert Vaca Cintora
d9db7e4ad9 Catch TextParsingException (which wrapps SocketException)
Could happen if the download of the CSV file failed or got interrupted
2023-07-08 00:00:06 +02:00
Łukasz Patron
1273cb641a Unbreak Mpris media notifications
Because notificationDevice is only set on updateCurrentPlayer(), we
ought to call it before checking if the device is null.
2023-07-07 20:48:43 +02:00
l10n daemon script
cafbfcaee8 GIT_SILENT Sync po/docbooks with svn 2023-07-07 01:53:59 +00:00
l10n daemon script
ac4c997efd GIT_SILENT made messages (after extraction) 2023-07-07 00:50:20 +00:00
l10n daemon script
d05feaa6d0 GIT_SILENT Sync po/docbooks with svn 2023-07-06 02:28:00 +00:00
l10n daemon script
4967cc7a81 GIT_SILENT Add new file (after extraction) 2023-07-06 00:58:05 +00:00
l10n daemon script
59cc3f2d4a GIT_SILENT made messages (after extraction) 2023-07-06 00:57:50 +00:00
l10n daemon script
0b9880d9b8 GIT_SILENT Sync po/docbooks with svn 2023-07-04 02:31:15 +00:00
Albert Vaca Cintora
90f89c653d Try to fix NPE in removeOnSubscriptionsChangedListener 2023-07-02 23:40:18 +02:00
Albert Vaca Cintora
e53338c70e Release 1.26.3 2023-07-02 23:34:46 +02:00
Albert Vaca Cintora
e641ff5a0a Don't call put if we are going to call remove right after
Note we still want the remove in case the plugin already was loaded
2023-07-02 23:26:56 +02:00
Albert Vaca Cintora
2ebaf6ae5b Ignore exceptions in pairingSuccessful callbacks
Bubbling up the exception to the PairingHandler makes the device become
unpaired, and we only want this if the error happens persisting device info
2023-07-02 23:01:05 +02:00
Albert Vaca Cintora
dd89463d75 Add logging to help debug a crash restoring saved devices 2023-07-02 22:57:40 +02:00
Albert Vaca Cintora
7194b308cb Fix NPE 2023-07-02 20:46:11 +02:00
Albert Vaca Cintora
328b708083 Fix NPE by checking if there's a Device 2023-07-02 10:27:52 +02:00
l10n daemon script
6404b86373 GIT_SILENT Sync po/docbooks with svn 2023-07-01 01:53:29 +00:00
l10n daemon script
3263b37c8a GIT_SILENT Sync po/docbooks with svn 2023-06-30 01:53:09 +00:00
Albert Vaca Cintora
a31476951a Release 1.26.2 2023-06-29 10:52:37 +02:00
Albert Vaca Cintora
1d105bbb3d Re-add nowPlaying for backwards compat with GSConnect 50 2023-06-29 10:48:02 +02:00
l10n daemon script
3154eef6a2 GIT_SILENT Sync po/docbooks with svn 2023-06-29 01:51:01 +00:00
l10n daemon script
97a0389d04 GIT_SILENT made messages (after extraction) 2023-06-29 00:46:34 +00:00
Albert Vaca Cintora
8c1603f6e4 Add DeviceInfo class
`DeviceInfo` contains all the properties we need to instantiate a `Device`:
id, name, type, cert, capabilities and protocol version. Before, we had a mix
of passing those around as arguments or passing identity packets (ie: json).
This simplifies the `Device` class quite a bit.

Now, `BaseLink` subclasses need to implement the `getDeviceInfo()` interface
that returns a `DeviceInfo`, which is what we will pass around and eventually
use to instantiate a `Device`.

This means that identity packets are an implementation detail of the
`LanLinkProvider` and that other implementations could get the `DeviceInfo`
in a different way.

In a future, we can add a mechanism for links to notify when their `DeviceInfo` changed.
This will allow us to better support device renames (which now are implemented by 
reconnecting to the device and don't always work) or sending the capabilities fields
later in the case of MacOS/iOS where we can't send them in a UDP packet due to the
size limit of 1500 bytes.
2023-06-27 11:14:36 +00:00
l10n daemon script
310e61b570 GIT_SILENT Sync po/docbooks with svn 2023-06-27 01:58:07 +00:00
l10n daemon script
bfa4d05e0d GIT_SILENT made messages (after extraction) 2023-06-27 00:47:27 +00:00
Albert Vaca Cintora
6568bb486c Synchronize access to fetchUrlList
Otherwise we could get ArrayIndexOutOfBoundsException
2023-06-27 02:34:00 +02:00
Albert Vaca Cintora
a46fa23419 Copy the ref to MpriMprisPlayer since the field can become null
Create a local copy of the reference, otherwise other fields can set the
field to null while the function is running and cause a NPE.
2023-06-27 02:26:10 +02:00
Krut Patel
a29aeaad92 mpris-receiver: Deregister callbacks when clearing players
## Summary
### Main issue
In essence, clearing `players` field inside `onActiveSessionsChanged` is not enough - we need to also deregister the `MprisReceiverCallback` from `MediaController` to ensure the `MprisReceiverPlayer` is truly destroyed.

### Details
* Spotify has a bad habit of causing lots of calls to `onActiveSessionsChanged` on song change. In each call, we clear the existing players and create new instances of `MprisReceiverPlayer` and `MprisReceiverCallback` to track media changes.
* Each `MprisReceiverCallback` instance gets registered with `MediaController` inside `createPlayer`.
* Inside `onActiveSessionsChanged`, if the underlying `MediaController` object remained alive, we would now end up with _two_ instances of `MprisReceiverCallback` that internally reference the same `MprisReceiverPlayer` object.

### Fix
Deregister the callbacks inside `onActiveSessionsChanged` before clearing `players` hashmap.

## Test Plan
* Add log line `Log.d(TAG, "sending Metadata");` just above `device.sendPacket(np);` inside `sendMetadata` of `MprisReceiverPlugin`.
* Start playing a song on spotify, and after a few secs, hit Next.\
* Monitor our logcat.

### Before:
<details><summary>Relevant logcat after Next was pressed</summary>

```txt
2023-06-25 18:56:57.395 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.403 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.413 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.422 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.436 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.454 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.484 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.499 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.524 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.544 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.554 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.562 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.569 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.579 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.592 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.603 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.613 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.629 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.641 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.653 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.666 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.671 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.679 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.686 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.694 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.699 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.704 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.713 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.719 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.724 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.730 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.743 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.750 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.759 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.770 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.785 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.793 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.799 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.808 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.812 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.819 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.831 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.838 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.844 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.849 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.855 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.861 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.866 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.872 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.877 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.884 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.892 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.898 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.903 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.907 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.913 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.917 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.921 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.928 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.934 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.938 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.944 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.949 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.954 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.959 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.966 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.971 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.976 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.983 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.990 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:57.995 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.000 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.007 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.013 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.021 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.026 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.032 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.041 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.047 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.055 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.062 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.067 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.072 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.078 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.083 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.088 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.096 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.106 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.114 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.120 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.127 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.135 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.143 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.149 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.157 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.164 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.174 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.180 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.186 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.195 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.201 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.209 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.216 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.223 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.231 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.238 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.243 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.251 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.262 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.269 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.275 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.281 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.287 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.294 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.302 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.310 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.319 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.327 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.337 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.345 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.350 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.357 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.363 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.369 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.374 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.382 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.389 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.398 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.404 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.411 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.419 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.427 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.434 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.441 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.449 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.453 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.458 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.464 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.471 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.475 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.483 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.490 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.497 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.502 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.510 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.519 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.532 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.536 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.543 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.552 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.560 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.567 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.574 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.580 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.587 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.592 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.599 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.606 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.613 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.620 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.626 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.633 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.642 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.652 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.659 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.667 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.675 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.683 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.690 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.699 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.706 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.712 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.718 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.726 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.734 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.742 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.748 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.753 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.759 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.765 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.774 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.781 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.787 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.794 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.801 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.806 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.811 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.817 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.823 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.831 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.839 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.847 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.854 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.862 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.870 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.875 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.879 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.886 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.892 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.898 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.904 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.911 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.919 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.927 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.934 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.939 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.945 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.953 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.959 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.969 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.979 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.986 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:58.993 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:59.001 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:59.007 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:59.014 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:59.021 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:59.027 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:59.034 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:59.040 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:59.046 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:59.053 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:59.060 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:59.067 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:59.075 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:59.083 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:59.092 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:59.099 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:59.107 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:59.114 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:59.121 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:59.129 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:59.136 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:59.142 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:56:59.226 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:56:59.228 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:56:59.229 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:56:59.231 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:56:59.233 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:56:59.234 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:56:59.234 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:56:59.235 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:56:59.236 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:56:59.236 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:56:59.237 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:56:59.237 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:56:59.238 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:56:59.238 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:56:59.239 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:56:59.239 31955-31955 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
```

</details>

### After:
<details><summary>Relevant logcat after Next was pressed</summary>

```txt
2023-06-25 18:54:57.412 30742-30742 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:54:57.534 30742-30742 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:54:57.547 30742-30742 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:54:57.558 30742-30742 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:54:57.567 30742-30742 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:54:57.579 30742-30742 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:54:57.590 30742-30742 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:54:57.595 30742-30742 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:54:57.603 30742-30742 MprisReceiver           org.kde.kdeconnect_tp                D  sendMetadata
2023-06-25 18:54:57.655 30742-30742 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:54:57.656 30742-30742 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:54:57.667 30742-30742 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:54:57.678 30742-30742 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:54:57.680 30742-30742 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:54:57.683 30742-30742 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:54:57.701 30742-30742 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:54:57.711 30742-30742 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:54:57.714 30742-30742 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:54:57.716 30742-30742 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:54:57.726 30742-30742 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:54:57.729 30742-30742 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:54:57.739 30742-30742 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:54:57.742 30742-30742 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:54:57.743 30742-30742 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
2023-06-25 18:54:57.746 30742-30742 MprisReceiver           org.kde.kdeconnect_tp                D  sendPlayerList
```
</details>


## Future work
There are still some redundant calls to `sendMetadata`. These are coming from multiple calls to `onPlaybackStateChanged` from Spotify. To reduce these, we'd need to add a debouncer.

Another thing- we can see that `sendPlayerList` packet is also being sent quite a lot.
1. We probably need to be smarter about creating new instances of `MprisReceiverPlayer` inside `onActiveSessionsChanged` instead of the nuke-all-and-rebuild approach we have today.
2. Maybe we can implement a debouncer inside `onActiveSessionsChanged` to avoid sending too many packets.
2023-06-25 15:20:11 +00:00
l10n daemon script
79744dc17b GIT_SILENT made messages (after extraction) 2023-06-25 00:51:53 +00:00
Albert Vaca Cintora
096cf3f5f5 Release 1.26.1 2023-06-24 15:57:21 +02:00
l10n daemon script
10352e53c2 GIT_SILENT made messages (after extraction) 2023-06-24 00:49:55 +00:00
Albert Vaca Cintora
cbeaa72845 Added a fastlane README 2023-06-21 09:58:18 +02:00
Albert Vaca Cintora
41e296b16d Better exception handling in LanLinkProvider
Bubble up exceptions instead of using giant, generic try-catch blocks.

The UDP and TCP listener loops are now where we catch all the exceptions that might happen handling the incoming packets.

Also, the creation of worker threads now happens in the listener loops as well instead of the inner functions.

Finally the `broadcastUdpPacket` function has been split in `broadcastUdpIdentityPacket` and `sendUdpIdentityPacket` (the first calls the second).
2023-06-20 08:26:00 +00:00
l10n daemon script
8eb35028a1 GIT_SILENT Sync po/docbooks with svn 2023-06-20 02:25:35 +00:00
l10n daemon script
f9486204a5 GIT_SILENT made messages (after extraction) 2023-06-20 00:50:47 +00:00
Albert Vaca Cintora
46c32365ba Remove unused class 2023-06-19 18:36:57 +02:00
Albert Vaca Cintora
9dfa5bc51c Update the pairstate before calling any callbacks 2023-06-19 18:03:29 +02:00
Albert Vaca Cintora
fbf77fa103 Log when refreshing the device list 2023-06-19 18:03:29 +02:00
l10n daemon script
06a486d99b GIT_SILENT Sync po/docbooks with svn 2023-06-19 02:04:10 +00:00
l10n daemon script
2072128a6f GIT_SILENT Sync po/docbooks with svn 2023-06-18 02:39:49 +00:00
l10n daemon script
a7dc9e4249 GIT_SILENT Add new file (after extraction) 2023-06-18 00:52:50 +00:00
l10n daemon script
5a27a613ea GIT_SILENT made messages (after extraction) 2023-06-18 00:52:41 +00:00
Albert Vaca Cintora
ad48a25d79 Fix networkpacket getter visibility 2023-06-16 22:53:44 +02:00
Albert Vaca Cintora
2a273ff07f Remove redundant comments 2023-06-16 22:00:48 +02:00
Albert Vaca Cintora
bd0b03eafb Make this more readable 2023-06-16 21:49:39 +02:00
Albert Vaca Cintora
40b791a7c4 Only try to send unpair packet if reachable 2023-06-16 19:57:41 +02:00
Albert Vaca Cintora
867bdfb6fb Move PairingHandler out from the UI package 2023-06-16 19:51:57 +02:00
Albert Vaca Cintora
51312f9a25 Lower log level even more 2023-06-16 19:45:15 +02:00
Albert Vaca Cintora
e4743002be Fix infinite loop when already paired devices ask to pair 2023-06-16 19:44:11 +02:00
Albert Vaca Cintora
12de65f234 Rename "signal" function to match the name of the listeners' interface 2023-06-16 19:23:05 +02:00
Albert Vaca Cintora
6d089093e9 Lower log level 2023-06-16 19:23:04 +02:00
Albert Vaca Cintora
ffd99858e6 Remove interface not needed 2023-06-16 19:23:04 +02:00
Albert Vaca Cintora
6879e40341 Null check not needed 2023-06-16 19:23:04 +02:00
l10n daemon script
cf28c9c7dc GIT_SILENT Sync po/docbooks with svn 2023-06-16 01:48:53 +00:00
Albert Vaca Cintora
9d1cd05ce4 Fix LinkProviders' onNetworkChanged called before onStart 2023-06-15 14:52:00 +02:00
Albert Vaca Cintora
3e595cb262 Rename computer -> device 2023-06-15 14:45:54 +02:00
l10n daemon script
636c70ff06 GIT_SILENT Sync po/docbooks with svn 2023-06-15 01:55:19 +00:00
l10n daemon script
d68ccd69e0 GIT_SILENT Add new file (after extraction) 2023-06-15 00:46:19 +00:00
l10n daemon script
a9e8050aeb GIT_SILENT made messages (after extraction) 2023-06-15 00:46:10 +00:00
Albert Vaca Cintora
81270f724d Remove reverseConnectionBlackList used to support Android < 4 2023-06-14 18:17:21 +02:00
Albert Vaca Cintora
1ef3d75eb1 Update comments 2023-06-14 18:16:26 +02:00
l10n daemon script
37c8a41778 GIT_SILENT Sync po/docbooks with svn 2023-06-14 01:50:22 +00:00
l10n daemon script
ad9d375299 GIT_SILENT Sync po/docbooks with svn 2023-06-13 01:55:11 +00:00
l10n daemon script
d6647e44b9 GIT_SILENT Add new file (after extraction) 2023-06-13 00:47:22 +00:00
l10n daemon script
1d15cdba27 GIT_SILENT made messages (after extraction) 2023-06-13 00:47:14 +00:00
Albert Vaca Cintora
8438f11ef9 Release 1.26.0 2023-06-12 20:38:00 +02:00
Albert Vaca Cintora
5b928fa6cd Fix screen turning off while find my phone was ringing 2023-06-12 18:17:36 +00:00
Albert Vaca Cintora
f63214d496 FindMyPhone: use AudioAttributes and WAKE_LOCK
Since we now require API 21, we can use setAudioAttributes instead of
the deprecated setAudioStreamType.

Since we already require WAKE_LOCK for the SMS plugin, we can use it
here to prevent the screen from sleeping.
2023-06-12 18:17:36 +00:00
Albert Vaca Cintora
e326d351a0 Case insensitive compare 2023-06-12 18:14:33 +00:00
Albert Vaca Cintora
0dec7e8a0a Replace DeviceNames library
The version of the library we used stopped working in 2020 when the names
database it tries to download got deleted from the master branch of their
Github repo. There's a newer version, but it seems to have lost the
fetch-from-the-internet functionality (it only bundles a list of names) and
for some reason it crashes when I tested it (I've opened an issue on their
repo). Since Google now provides a CSV with all the Android device names
that exist, I've replaced the library by my own function that downloads the
CSV file (~3MB) in the first run of the app and looks for the name there.
2023-06-12 18:14:33 +00:00
l10n daemon script
7d87ea5918 GIT_SILENT Sync po/docbooks with svn 2023-06-12 02:14:48 +00:00
l10n daemon script
3397fd75b4 GIT_SILENT Add new file (after extraction) 2023-06-12 00:52:58 +00:00
l10n daemon script
26dd530c30 GIT_SILENT made messages (after extraction) 2023-06-12 00:52:49 +00:00
Albert Vaca Cintora
d63f2cfb67 Set socket options before binding to a port and not after
By passing a port the implementation of DatagramSocket already binds to
it, making it fail if the port was already in use even if we did
setReuseAddress because that happened after binding.
2023-06-11 19:15:00 +02:00
l10n daemon script
cfe4559d60 GIT_SILENT Sync po/docbooks with svn 2023-06-11 01:55:04 +00:00
l10n daemon script
39c1ebbd64 GIT_SILENT Add new file (after extraction) 2023-06-11 00:47:08 +00:00
l10n daemon script
377fc68b0d GIT_SILENT made messages (after extraction) 2023-06-11 00:46:58 +00:00
l10n daemon script
e14c34ce8b GIT_SILENT Sync po/docbooks with svn 2023-06-10 01:53:35 +00:00
l10n daemon script
3d2cd73ebb GIT_SILENT Add new file (after extraction) 2023-06-10 00:47:52 +00:00
l10n daemon script
c7dbf5f32c GIT_SILENT made messages (after extraction) 2023-06-10 00:47:42 +00:00
Albert Vaca Cintora
9f753783b6 Remove fastlane translations with wrong language codes 2023-06-09 18:31:15 +02:00
Albert Vaca Cintora
e1c50dd450 Fastlane StaticMessages: use Google's language codes
And only create directories for languages that have a translation.
Otherwise, fastlane crashes trying to upload the translations.

After merging this I will manually delete the "bad" translations in the fastlane directory.
2023-06-09 16:29:36 +00:00
l10n daemon script
24a81d7905 GIT_SILENT Sync po/docbooks with svn 2023-06-09 01:57:13 +00:00
l10n daemon script
c3a08fee8c GIT_SILENT Add new file (after extraction) 2023-06-09 00:47:34 +00:00
l10n daemon script
7a4f7a48e4 GIT_SILENT made messages (after extraction) 2023-06-09 00:47:25 +00:00
Albert Vaca Cintora
e530d7ac94 Remove deprecated "nowPlaying" field 2023-06-08 22:20:05 +00:00
Albert Vaca Cintora
8c98bdcb36 Fix NPE 2023-06-08 23:56:07 +02:00
l10n daemon script
a1fdf63d3f GIT_SILENT Sync po/docbooks with svn 2023-06-08 01:55:04 +00:00
l10n daemon script
e84392bdcf GIT_SILENT Add new file (after extraction) 2023-06-08 00:46:32 +00:00
Albert Vaca Cintora
615fbc5383 Fix NPE 2023-06-07 18:06:30 +02:00
l10n daemon script
269f381db6 GIT_SILENT Add new file (after extraction) 2023-06-07 00:47:28 +00:00
l10n daemon script
ba6ac5ce42 GIT_SILENT made messages (after extraction) 2023-06-07 00:47:19 +00:00
Albert Vaca Cintora
06c1309a78 StaticMessages.sh for fastlane texts
Creates .pot files from txt files in the en-US store metadata and then
does the oposite for po files translated to the respective languages.

This should allow the translation teams to translate the store descriptions.
2023-06-07 00:01:38 +00:00
Albert Vaca Cintora
610c030963 Remove outdated store metadata
We now use fastlane
2023-06-06 23:35:33 +02:00
l10n daemon script
f07e7eeea8 GIT_SILENT made messages (after extraction) 2023-06-06 00:46:26 +00:00
Albert Vaca Cintora
6fc5ae66b8 Add license headers to files missing it 2023-06-05 12:21:15 +02:00
Albert Vaca Cintora
337433000c More logging 2023-06-05 10:36:02 +02:00
Albert Vaca Cintora
79f805caeb Add missing break caught in code review 2023-06-05 10:29:27 +02:00
Albert Vaca Cintora
0d6c252479 Remove loopback link provider left in by mistake 2023-06-05 10:29:27 +02:00
Albert Vaca Cintora
ec7df33170 Add missing cancelTimer 2023-06-05 10:29:27 +02:00
Albert Vaca Cintora
8c1fe000f6 Start the timer before the packet has been sent
Fixes the loopback provider starting the timer after the paring is
already done, causing it to unpair after 30 seconds.
2023-06-05 10:29:27 +02:00
Albert Vaca Cintora
b14df9d09c Fail earlier if we don't have a certificate 2023-06-05 10:29:27 +02:00
Albert Vaca Cintora
a20fb00b7d Have a single PairingHandler for all links 2023-06-05 10:28:45 +02:00
Albert Vaca Cintora
476304d6fb Changes from code review 2023-06-04 18:05:48 +00:00
Albert Vaca Cintora
1ccf15010e Compute total number of packets sent and received by type 2023-06-04 18:05:48 +00:00
Albert Vaca Cintora
8ea82ff053 Add empty device list message 2023-06-04 17:22:34 +00:00
Albert Vaca Cintora
d4076245dd Prettier widget 2023-06-04 17:22:34 +00:00
Albert Vaca Cintora
afd4219732 More code review changes 2023-06-04 17:22:34 +00:00
Albert Vaca Cintora
7d3cf9690a Rename RunCommandWidgetConfig -> RunCommandWidgetConfigActivity 2023-06-04 17:22:34 +00:00
Albert Vaca Cintora
a977b6da17 Improvements from code review 2023-06-04 17:22:34 +00:00
Albert Vaca Cintora
11634b2cde Allow having widgets for more than once device
Rewrites the RunCommand widget. Now we can have different widgets for
different devices at the same time. Also removes the startService call
that could cause ForegroundServiceStartNotAllowedException on API 12+.
2023-06-04 17:22:34 +00:00
l10n daemon script
2fda82cd02 GIT_SILENT made messages (after extraction) 2023-06-04 00:46:32 +00:00
Albert Vaca Cintora
8ba4b532d4 Fix catch not working because broadcastUdpPacket starts a thread
We don't want to crash if we get onNetworkChange before tcpServer has been
initialized, however the way to do it was wrong because the exception was
being thrown from a new thread.
2023-06-03 18:59:14 +02:00
l10n daemon script
b201dadf12 GIT_SILENT Sync po/docbooks with svn 2023-06-03 01:49:41 +00:00
l10n daemon script
15b78d8a2d GIT_SILENT made messages (after extraction) 2023-06-03 00:46:48 +00:00
Albert Vaca Cintora
94c2ac3b4c Fix comment 2023-06-02 23:20:54 +02:00
Albert Vaca Cintora
969d78d404 Improvements from code review 2023-06-02 16:59:42 +00:00
Albert Vaca Cintora
a6ec1744b7 Use Jetpack Compose for the Device UI 2023-06-02 16:59:42 +00:00
Albert Vaca Cintora
03f50994ee Remove unused imports 2023-06-02 18:41:58 +02:00
l10n daemon script
582542451c GIT_SILENT made messages (after extraction) 2023-06-02 00:47:23 +00:00
l10n daemon script
5f8675ee43 GIT_SILENT made messages (after extraction) 2023-06-01 00:46:32 +00:00
Albert Vaca Cintora
8c86ef4ac5 Remove unused argument 2023-05-31 17:24:05 +02:00
Albert Vaca Cintora
537f2e35ac Add the option to cancel a pairing request we sent
BUG: 469877
2023-05-31 15:23:30 +00:00
l10n daemon script
f588bf9502 GIT_SILENT Sync po/docbooks with svn 2023-05-31 02:24:25 +00:00
l10n daemon script
c2bf8e8521 GIT_SILENT made messages (after extraction) 2023-05-31 00:47:33 +00:00
Albert Vaca Cintora
550e9b0c8b Use kotlin's apply 2023-05-30 17:23:18 +02:00
Albert Vaca Cintora
457721e8c7 Simplify loops 2023-05-30 17:23:18 +02:00
Albert Vaca Cintora
f26bd54be5 Enable the loopback link on Google test devices
See docs here: https://firebase.google.com/docs/test-lab/android/android-studio#modify_instrumented_test_behavior_for_testlab
2023-05-30 17:23:18 +02:00
l10n daemon script
eb843cf901 GIT_SILENT made messages (after extraction) 2023-05-30 00:46:11 +00:00
Albert Vaca Cintora
8b66bef865 Fix glitch displaying hint in add device dialog 2023-05-30 00:41:09 +02:00
Albert Vaca Cintora
28ed8209c4 Do not allow multi-line device names 2023-05-30 00:34:09 +02:00
Albert Vaca Cintora
f00e420535 Do not ignore exceptions in LanLink onStart
broadcastUdpPacket will throw if setupTcpListener isn't successful, and
at that point we no longer know the real issue. Re-throw exceptions in
setupTcpListener so we can see what goes wrong.
2023-05-30 00:14:39 +02:00
Albert Vaca Cintora
ad725e7a24 Release 1.25.0 2023-05-29 15:41:31 +02:00
Albert Vaca Cintora
947cd54cb0 Add fastlane
This is read by F-Droid, so it should fix our app not having an icon or
having outdated screenshots there.

Also, this can be used to update the Play Store by doing:
  fastlane supply --version-code <version code> --json-key <path to key>

In a future, it would be nice to update the StaticMessages.sh script so
it converts the app description here to .pot and back so we can have KDE
localization teams translate it and updates are automatically picked up.
2023-05-29 15:41:20 +02:00
Albert Vaca Cintora
14270ea71a Re-add file removed by mistake 2023-05-29 15:02:58 +02:00
Albert Vaca Cintora
46ecd2b05f Fix NPEs 2023-05-29 13:09:35 +02:00
Albert Vaca Cintora
2839793e9d SystemVolumePlugin: Do not call requestSinkList once per second
When playing music on Windows, we receive MPRIS player updates ~once per
second. This calls the MprisMediaSession updateMediaNotification function
which then calls updateCurrentPlayer which used to call
SystemVolumeProvider's startTrackingVolumeKeys (now renamed to
startListeningForSinks) which is quite bad because on each call:
 * It would add yet another copy of this to the listeners list
 * It would send a network packet to get the sinks from the other device
Now we only call startListeningForSinks when the tracked player changes.
2023-05-29 10:01:51 +00:00
Albert Vaca Cintora
ad53138928 Make linter happy 2023-05-29 03:37:46 +02:00
Albert Vaca Cintora
3a05548333 Remove unneeded overrides 2023-05-28 22:38:24 +02:00
Albert Vaca Cintora
d0ec7dd755 Make newInstance calls explicit 2023-05-28 12:05:08 +02:00
Albert Vaca Cintora
53f14e9c77 Bump AGP plugin version 2023-05-28 11:45:29 +02:00
l10n daemon script
853e5b1903 GIT_SILENT made messages (after extraction) 2023-05-28 00:46:42 +00:00
Albert Vaca Cintora
6b450d558e Add NonNull annotations to Plugin and PluginFactory 2023-05-26 22:19:21 +02:00
Albert Vaca Cintora
b065d5c1d1 Remove unused functions 2023-05-26 20:21:56 +02:00
Albert Vaca Cintora
c70d03dbe8 Catch BackgroundServiceStartNotAllowedException 2023-05-26 20:21:40 +02:00
Albert Vaca Cintora
9e39cbd979 Remove unused & commented code 2023-05-26 20:03:14 +02:00
Albert Vaca Cintora
1e904fcbfa Re-add missing setContentIntent
Removed by mistake in d09ad45e11
2023-05-26 20:02:26 +02:00
Albert Vaca Cintora
38edbd260a Removed unused privateKey field from BaseLink 2023-05-26 19:56:59 +02:00
Albert Vaca Cintora
62cf2d6b44 Add NonNull annotations to Link classes 2023-05-26 19:54:57 +02:00
Albert Vaca Cintora
f172ffd129 Added TODO 2023-05-25 16:09:09 +00:00
Albert Vaca Cintora
0f3ad63ee3 Make sending the payloads async
Fixes the bug described in !359. Since we made sending packets sequential
in !90 (including the payload part of the packet) we could be blocking the
queue for up to 10 seconds if the other end didn't fetch our payload.

This makes the payload part async by default but keeps the option to make
it sync, since we want that behavior in CompositeUploadFileJob.
2023-05-25 16:09:09 +00:00
Albert Vaca Cintora
ea1675c76a Hide presenter plugin when other device is a phone
The use case doesn't make sense
2023-05-25 18:04:54 +02:00
Albert Vaca Cintora
40b05fbe8f Remove reference to Device when the view is destroyed 2023-05-25 02:41:46 +02:00
Albert Vaca Cintora
ae23413971 Refactor BackgroundService
Added a new KdeConnect Application class that holds the Devices now, while
BackgroundService "only" takes care of the LinkProviders.

Since KdeConnect subclasses Application we have the guarantee that it will
exist as long as our process does, so we can use it as a singleton. This
removes the "BackgroundService.RunCommand" hack (which sent an Intent that
would awake BackgroundService in case it wasn't running already and then
call our code in a callback). This saves lots of round trips between the
system and us and makes things simpler (and stack traces useful) by making
the code sequential.

We already had an Application subclass that I moved to a new helper, which
now the KdeConnect class initializes together with all the other helpers.
2023-05-24 19:28:02 +02:00
Albert Vaca Cintora
a6eea8e996 Handle SocketTimeoutException when sending a payload
This means that the whole packet queue was 10 seconds blocked (!) which
I think we shouldn't let happen, but for now I've added this error message.
2023-05-24 17:08:40 +00:00
Albert Vaca Cintora
58a304a81e Catch SocketException from sendPacket
So we get to print the error message saying which packet got lost and so
that the sending loop doesn't crash.
2023-05-24 17:08:40 +00:00
Albert Vaca Cintora
da3ee10567 Kotlin style 2023-05-24 19:07:36 +02:00
Albert Vaca Cintora
f6ea3e01b0 Remove outdated comments 2023-05-24 17:12:19 +02:00
l10n daemon script
e372c47789 GIT_SILENT Sync po/docbooks with svn 2023-05-24 01:52:28 +00:00
Albert Vaca Cintora
72af26016b Cleanup 2023-05-23 21:41:57 +02:00
l10n daemon script
e17073bb7b GIT_SILENT Sync po/docbooks with svn 2023-05-23 02:26:35 +00:00
Krzysztof Dziembała
faedc2e6c8 Fix tests: allow unnamed modules to access internal APIs 2023-05-21 21:46:01 +02:00
Pluto Hu
4081dc593d Add search functionality for filtering apps by name in NotificationFilterActivity. 2023-05-20 19:02:49 +00:00
Albert Vaca Cintora
2246d3f458 Bump dependencies 2023-05-20 14:00:41 +02:00
Albert Vaca Cintora
9f64cbbfaf Remove backwards compat flags for AGP 2023-05-20 14:00:09 +02:00
Simon Redman
d2d43c55a7 Bump OpenJDK to v17 as required by latest Gradle version
## Summary

Gradle version bump in 921d0ee884 (probably) is incompatible with Java 11.

Fix Gitlab CI by increasing Java version, as required by latest Gradle version.

## Test Plan

### Before:
Gitlab CI does not work, complaining about Java version. See for example: https://invent.kde.org/network/kdeconnect-android/-/jobs/950701

### After:
Gitlab CI does work
2023-05-17 16:29:08 +00:00
l10n daemon script
948d075fb3 GIT_SILENT made messages (after extraction) 2023-05-17 00:46:57 +00:00
Albert Vaca Cintora
e409ec37eb Simplify constructor call 2023-05-10 16:57:47 +02:00
Albert Vaca Cintora
ed0f97de1b Remove redundant supports-screens section 2023-05-10 16:57:44 +02:00
Albert Vaca Cintora
961a839ac3 Fix crash when onNetworkChanged was called before link was initialized
This race condition could happen on slow devices
2023-05-03 19:38:21 +02:00
l10n daemon script
b189556d6a GIT_SILENT made messages (after extraction) 2023-05-03 00:48:41 +00:00
l10n daemon script
ddd2e741f4 GIT_SILENT Sync po/docbooks with svn 2023-05-01 02:12:57 +00:00
l10n daemon script
4f1cff22ab GIT_SILENT made messages (after extraction) 2023-05-01 00:51:22 +00:00
l10n daemon script
72130c0cfa GIT_SILENT Sync po/docbooks with svn 2023-04-30 02:43:27 +00:00
l10n daemon script
2147dc5313 GIT_SILENT made messages (after extraction) 2023-04-30 00:47:55 +00:00
l10n daemon script
52a27790d0 GIT_SILENT made messages (after extraction) 2023-04-29 00:49:48 +00:00
l10n daemon script
9c18f3f799 GIT_SILENT made messages (after extraction) 2023-04-28 00:48:19 +00:00
l10n daemon script
7e32d2962f GIT_SILENT made messages (after extraction) 2023-04-27 00:48:25 +00:00
Albert Vaca Cintora
5d2b9557e7 Release 1.24.5 2023-04-26 22:29:19 +02:00
Albert Vaca Cintora
891da46c3c Simplify how we get the app's version code 2023-04-26 22:29:11 +02:00
Dmitry Yudin
e9bc90d91a Modernize ComposeSendActivity
* UI update for the old compose send screen.
* Introduces Jetpack Compose.
* Migrates activity to Kotlin.
* Fixes "send" button being next to "clear".
2023-04-26 20:16:08 +00:00
Albert Vaca Cintora
921d0ee884 Upgrde gradle and AGP 2023-04-25 23:51:30 +02:00
Albert Vaca Cintora
3e8948339d Call requireView only once 2023-04-25 23:51:30 +02:00
Albert Vaca Cintora
e56f73da83 Fix ConcurrentModificationException when device disconnects while iterating 2023-04-25 21:50:02 +00:00
Albert Vaca Cintora
c250d2c674 Merge branch 'kdeconnect-android-mouse_pad_prefs_fix' 2023-04-25 10:22:46 +02:00
Jakub Wiśnia
c15469f477 Add gyro sensitivity pref 2023-04-25 10:22:12 +02:00
l10n daemon script
73f15149b6 GIT_SILENT made messages (after extraction) 2023-04-25 00:50:42 +00:00
Dmitry Yudin
118a35c304 Merge remote-tracking branch 'kubawis/master' into mouse_pad_prefs_fix
# Conflicts:
#	res/values/strings.xml
#	res/xml/mousepadplugin_preferences.xml
#	src/org/kde/kdeconnect/Plugins/MousePadPlugin/MousePadActivity.java
2023-04-25 01:41:51 +02:00
Albert Vaca Cintora
acb869b21c Bump the TLS version to 1.2
TLSv1.2 is supported on all the Android versions we support now.
TLSv1.3 is only supported in API 29+. Although we could conditionally
enable it on 29+, it seems to cause problems (disconnects & reconnects
when the LanLink gets refreshed) also on newer devices.
2023-04-24 20:52:45 +00:00
Dmitry Yudin
71706879d0 Fix onBackPressed after screen rotation
Moved onBackPressedDispatcher.addCallback(s) to onResume
2023-04-24 17:37:19 +00:00
Dmitry Yudin
f5b3523ec6 Fix applying preferences changes when returned from plugin settings 2023-04-23 22:50:05 +02:00
l10n daemon script
8639938584 GIT_SILENT Sync po/docbooks with svn 2023-04-23 02:36:32 +00:00
l10n daemon script
011ee20fbb GIT_SILENT made messages (after extraction) 2023-04-23 00:48:42 +00:00
Albert Vaca Cintora
763859d478 Release 1.24.3 2023-04-22 23:49:03 +02:00
Albert Vaca Cintora
c19019a500 Comment verbose logs 2023-04-22 23:49:03 +02:00
Albert Vaca Cintora
b1a2257d4d Fix incorrect text showing in main activity plugin cards 2023-04-22 23:49:03 +02:00
Albert Vaca Cintora
32d6a346ab Disable MouseReceiver Plugin so we don't need accessibility API
Google doesn't like it :( Hopefully we can re-add it back soon.
2023-04-22 22:44:49 +02:00
Albert Vaca Cintora
2616a7a529 Release 1.24.2 2023-04-22 18:45:49 +02:00
Albert Vaca Cintora
f16a770fee Revert "Do not force TLS v1"
Breaks compatibility with older desktop clients.
We need to bump the protocol version to do this.

This reverts commit e2dbc39e3a.
2023-04-22 14:02:10 +02:00
l10n daemon script
45e84ce23e GIT_SILENT made messages (after extraction) 2023-04-22 00:50:34 +00:00
Dmitry Yudin
9e5c9ca11a Migrate MainActivity to Kotlin
And replace deprecated onBackPressed with OnBackPressedCallback(s)
2023-04-20 13:54:27 +02:00
l10n daemon script
f9e74caa50 GIT_SILENT made messages (after extraction) 2023-04-19 00:49:25 +00:00
l10n daemon script
6feb8f478c GIT_SILENT Sync po/docbooks with svn 2023-04-18 01:57:48 +00:00
l10n daemon script
2e38789836 GIT_SILENT made messages (after extraction) 2023-04-18 00:47:09 +00:00
l10n daemon script
1f106ee9f1 GIT_SILENT Sync po/docbooks with svn 2023-04-17 02:36:29 +00:00
l10n daemon script
86e3faf75a GIT_SILENT made messages (after extraction) 2023-04-17 00:48:00 +00:00
Albert Vaca Cintora
9379d89d03 Lower delay between broadcasts 2023-04-16 11:46:53 +02:00
Albert Vaca Cintora
90787911fa Fix subtitle not disappearing when changing fragment 2023-04-16 11:42:12 +02:00
l10n daemon script
8b8106bad8 GIT_SILENT made messages (after extraction) 2023-04-16 00:47:50 +00:00
l10n daemon script
b20ccf16bd GIT_SILENT made messages (after extraction) 2023-04-15 00:48:50 +00:00
l10n daemon script
b4f8f1befa GIT_SILENT made messages (after extraction) 2023-04-14 00:46:17 +00:00
Albert Vaca Cintora
61190189ec Release 1.24.1 2023-04-13 19:10:54 +02:00
Albert Vaca Cintora
4c6cda711f Fix "find my phone" notification being dismissable
Dismissing the notification caused the alarm to keep playing without a
way to stop it.

BUG: 446349
2023-04-13 19:10:12 +02:00
Albert Vaca Cintora
64b32003cc Fix cards still visibile if device got unpaired with the app open 2023-04-13 18:55:49 +02:00
Albert Vaca Cintora
39fb60b81b Rename binding to pairingBinding 2023-04-13 18:55:28 +02:00
Albert Vaca Cintora
431312fcd0 Bump dependencies 2023-04-13 18:37:27 +02:00
Albert Vaca Cintora
6c8c6dd63e Fix compatibility with API 20 2023-04-13 17:56:13 +02:00
Dmitry Yudin
8aeefded7c Main activity responsive layout 2023-04-13 17:56:13 +02:00
Albert Vaca Cintora
e2dbc39e3a Do not force TLS v1
Stop specifying the TLS version we want and let the system chose

Co-authored-by: Daniel Tang <danielzgtg.opensource@gmail.com>
2023-04-13 11:07:29 +00:00
Aditya Mehra
e07fe54d5c fix sms sync
Missing break statements causes sync issues and SMS to be parsed as MMS and leads to the URI of a SMS not being found within the MMS content and SMS sync failing.
2023-04-12 17:12:57 +00:00
l10n daemon script
6c2ffa5796 GIT_SILENT Sync po/docbooks with svn 2023-04-12 01:54:41 +00:00
l10n daemon script
f661c0d8d0 GIT_SILENT made messages (after extraction) 2023-04-12 00:49:10 +00:00
Albert Vaca Cintora
e2fd072839 Remove outdated comments 2023-04-11 13:08:23 +02:00
l10n daemon script
5b33200454 GIT_SILENT Sync po/docbooks with svn 2023-04-11 02:17:25 +00:00
l10n daemon script
d986a4e6db GIT_SILENT made messages (after extraction) 2023-04-11 00:47:41 +00:00
Mhammad Alloush
65d706fd75 MousePadPlugin: Change the blurb to highlight gyro mouse.
This needs translations. But should do for now for English language for now.
2023-04-10 08:59:41 +00:00
l10n daemon script
1cd11cf9fe GIT_SILENT made messages (after extraction) 2023-04-10 00:46:12 +00:00
Dmitry Yudin
b52fc8c3ec Add mouse buttons setting 2023-04-08 21:27:44 +00:00
Dmitry Yudin
c22453afca Add gyro switch and mouse buttons 2023-04-08 21:27:44 +00:00
l10n daemon script
81fe7adba5 GIT_SILENT Sync po/docbooks with svn 2023-04-07 01:49:05 +00:00
l10n daemon script
d4ba5d7375 GIT_SILENT made messages (after extraction) 2023-04-07 00:46:51 +00:00
l10n daemon script
129be45564 GIT_SILENT made messages (after extraction) 2023-04-06 00:47:06 +00:00
Krut Patel
642dce1168 Set android:exported to true for activities with intent filters
Required so that other apps can launch these activities.
2023-04-05 17:49:28 +00:00
Albert Vaca Cintora
b64b27bcae Release 1.24.0 2023-04-05 19:04:41 +02:00
Albert Vaca Cintora
98ffff5844 Revert "Switch desugaring lib to desugar_jdk_libs_nio"
This reverts commit 7efb1f81b5.

For some weird reason, mina-sshd works fine without desugaring NIO on
Android 5 but fails with `java.lang.NoClassDefFoundError: Failed resolution
of: Ljava/nio/channels/AsynchronousChannelGroup;` before reverting this
2023-04-05 18:56:01 +02:00
Albert Vaca Cintora
711065a8e6 Refactor share function to handle null URIs
BUG: 458278
2023-04-05 10:16:23 +00:00
Albert Vaca Cintora
5250fde0b1 Remove copyright and app description from About 2023-04-04 22:49:05 +00:00
Albert Vaca Cintora
f9ea5f0e77 Send preexisting notifications as silent
This avoids creating a popup for every existing notification after the
device connects.
2023-04-04 22:44:44 +00:00
Albert Vaca Cintora
a26e5fbb9c Add note so people add themselves to the author list 2023-04-05 00:38:02 +02:00
Isira Seneviratne
7efb1f81b5 Switch desugaring lib to desugar_jdk_libs_nio
Enables desugaring of the `Files` class, which is otherwise only available on API 26+.
2023-04-04 22:27:56 +00:00
Isira Seneviratne
d4378ffe3e Remove multidex library. 2023-04-04 22:21:00 +00:00
l10n daemon script
76f5005219 GIT_SILENT made messages (after extraction) 2023-04-04 00:46:47 +00:00
l10n daemon script
53638577f9 GIT_SILENT made messages (after extraction) 2023-04-03 00:45:41 +00:00
l10n daemon script
e5f221f891 GIT_SILENT made messages (after extraction) 2023-04-02 00:47:00 +00:00
Dmitry Yudin
ef902348bb More Material3 styling
Apply Material3 to dialogs, image buttons, switches and preferences.
Merge the landscape and portrait layouts for the MPRIS controls.
Move setting theme to application start instead of applying to every activity.
2023-04-01 21:33:03 +00:00
Albert Vaca Cintora
a1d7e822e7 Don't show any message if battery information is not available
BUG: 447498
2023-04-01 19:18:38 +00:00
Albert Vaca Cintora
4b775cff88 Prettier RunCommand widget & add preview
Co-authored-by: Maxim Leshchenko <cnmaks90@gmail.com>
2023-04-01 21:14:14 +02:00
l10n daemon script
3d2667a803 GIT_SILENT made messages (after extraction) 2023-04-01 00:50:50 +00:00
Albert Vaca Cintora
5dd9b48f74 Remove redundant check for permissions 2023-03-31 21:08:59 +02:00
l10n daemon script
1d794dae6a GIT_SILENT made messages (after extraction) 2023-03-31 00:46:49 +00:00
Dmitry Yudin
0ed11d2036 Show enabled plugins as cards 2023-03-29 18:22:27 +00:00
Albert Vaca Cintora
aef5af30ed Also in FindMyPhone activity 2023-03-29 20:07:58 +02:00
Albert Vaca Cintora
85d5b9e08f Use AppCompatButton to avoid the round borders of M3 buttons
Which are quite ugly when the buttons are very big.
2023-03-29 20:04:41 +02:00
Albert Vaca Cintora
a0e963c893 Revert "Use AppCompatButton to avoid the round borders of M3 buttons"
This reverts commit ca71ddef34.
2023-03-29 20:04:05 +02:00
Albert Vaca Cintora
ca71ddef34 Use AppCompatButton to avoid the round borders of M3 buttons
Which are quite ugly when the buttons are very big.
2023-03-29 19:43:15 +02:00
Manuel Jesús de la Fuente
6defead2ce Use M3 theme, switch to Material Dialogs
- Add Monet dynamic colors on the app's `onCreate()`
- Set parent in styles.xml to `Theme.Material3.DayNight.NoActionBar`
- Use `MaterialAlertDialogBuilder`
- In the About and About KDE fragments, it uses the M3 elevated style instead of outlines
- In `edit_text_alert_dialog_view.xml`, it uses the default theme style instead of specifying the one from MaterialComponents
- Added a todo in the settings fragment: Preference dialogs don't yet use the M3 style.

It complements https://invent.kde.org/network/kdeconnect-android/-/merge_requests/273, though the way that merge request accomplishes color theming is the one from before the onCreate dynamics color method
2023-03-29 17:39:25 +00:00
Albert Vaca Cintora
fd3c6f07da Changes from code review
Fix potential race condition and lower log level
2023-03-29 17:09:21 +00:00
Albert Vaca Cintora
aff2de8ebb Fix UUID containing characters that can't be dbus-exported
This broke pairing with the desktop app
2023-03-29 17:09:21 +00:00
Albert Vaca Cintora
cbc0749997 Do not use the ANDROID_ID as device ID
Since Android 8, this ID is stable across reinstalls of the app. This
causes other devices that already were paired with us to find a cert
mismatch and refuse to communicate with us after a reinstall or data wipe.
2023-03-29 17:09:21 +00:00
Albert Vaca Cintora
554769e1ef Fix plugins without permissions showing a generic explanation
This was because we only overrote the explanation in onCreate, which wasn't
called for plugins without permissions.
2023-03-29 19:01:57 +02:00
Albert Vaca Cintora
63718d5a58 Flip isIncompatible -> isCompatible 2023-03-29 18:51:32 +02:00
Albert Vaca Cintora
7670810155 Code review fixes 2023-03-29 16:32:40 +00:00
Albert Vaca Cintora
66a649313c Consolidate network listeners in BackgroundService
* Remove usage of deprecated WiFi ConnectivityManager
* Only listen for non-cellular network changes (where we can find devices)
* Do not listen for network changes also from PairingFragment
2023-03-29 16:32:40 +00:00
l10n daemon script
855ad36642 GIT_SILENT Sync po/docbooks with svn 2023-03-29 01:55:19 +00:00
l10n daemon script
0d1e358067 GIT_SILENT made messages (after extraction) 2023-03-29 00:47:12 +00:00
l10n daemon script
9b662776e8 GIT_SILENT Sync po/docbooks with svn 2023-03-28 02:17:52 +00:00
Jakub Wiśnia
6adb73bf5e Add separate sensitivity for gyroscope in plugin MousePad 2023-03-28 00:01:50 +02:00
Mhammad Alloush
e60c134d78 MousePadPlugin: Add gyro mouse
## Summary

This MR adds gyro mouse capability, which allows you to move the cursor of a connected device by simply moving the connected phone. It uses standard Android gyroscope sensors. Mainly aimed at usage with computers attached to very large screens (e.g. TV's), as using the touchpad as-is can feel somewhat unnatural.

While it does attempt pretty much the same thing as !285, this MR attempts to reduce redundancy as much as possible by simply extending the existing MousePadPlugin instead.

Tested on a Xiaomi Redmi Note 11, on a Samsung A71, and on a laptop running Arch Linux and KDE Plasma 5.27.3

## Test Plan

1. Make sure the 'Remote Input' plugin is enabled on the Android device.
2. Make sure the 'Virtual Input' plugin is enabled on the target device.
3. Open Plugin Settings -> Remote Input for the target device.
2. Enable the toggle for Gyro mouse.
3. Exit settings and go to the Remote Input activity for the target device.
4. Try moving the device around in 3D space.
5. Confirm that the mouse pointer moves predictably.
2023-03-27 20:58:48 +00:00
l10n daemon script
092b207aec GIT_SILENT Sync po/docbooks with svn 2023-03-27 02:40:27 +00:00
l10n daemon script
425011fadc GIT_SILENT made messages (after extraction) 2023-03-27 00:49:00 +00:00
l10n daemon script
738f60d671 GIT_SILENT made messages (after extraction) 2023-03-26 00:47:53 +00:00
Albert Vaca Cintora
118e045990 Replace Handlers by lightweight callbacks 2023-03-25 23:46:41 +00:00
Mihir Patel
b8cbd2b382 Adding support for per-app language preferences on Android 13 and later
Android 13 added the ability to select languages on a per-app basis. Supporting this feature simply requires us to provide a listing of all of the locales supported by the app: https://developer.android.com/guide/topics/resources/app-languages

This change adds a locales_config.xml file to list the locales and references this file in the application manifest
2023-03-25 19:25:39 +00:00
l10n daemon script
eb301341a5 GIT_SILENT made messages (after extraction) 2023-03-23 00:46:51 +00:00
Albert Vaca Cintora
58cbd49278 Use ConcurrentHashMap to fix ConcurrentModificationException 2023-03-22 20:12:27 +01:00
Albert Vaca Cintora
7bf2a40180 Rename updateComputerList -> updateDeviceList 2023-03-22 18:17:31 +01:00
l10n daemon script
e2a35fb97f GIT_SILENT made messages (after extraction) 2023-03-22 00:47:34 +00:00
l10n daemon script
a524fb8486 GIT_SILENT made messages (after extraction) 2023-03-21 00:47:36 +00:00
Nicolas Fella
d54f155b24 Add CI for debug PR builds
Add a debug and test CI. As the test coverage today is not much to get excited about, this is mostly a check that the app still builds, as well as a convenient way to download the prebuilt app for testing.
2023-03-21 00:00:03 +00:00
l10n daemon script
252e38cc07 GIT_SILENT made messages (after extraction) 2023-03-20 00:49:43 +00:00
Albert Vaca Cintora
25be43d88d Remove outdated comment 2023-03-20 00:06:16 +01:00
Albert Vaca Cintora
0933f6bb5f Bump Apache CommonsIO version
And the desugaring library as well. ThreadLocal.withInitial can now be
desugared, so we can use newer versions of CommonsIO.
2023-03-20 00:04:56 +01:00
Albert Vaca Cintora
33e8e0407b Upgrade from SpongyCastle 1.58 to BouncyCastle 1.70
SpongyCastle was a fork of BouncyCastle needed before Android 3.0 because
of a conflict with Android's own version of BC. It's no longer needed and
rarely receives updates anymore [1]. Furthermore the version we were using
was from 2015 and had security issues (although I'm not sure we were
affected by them since we only use it to generate certificates).

With this change we now also use Java's standard library to read the certs
from a byte[] since the standard CertificateFactory can already do that.


[1] https://github.com/rtyley/spongycastle/issues/34
2023-03-19 23:00:25 +00:00
Albert Vaca Cintora
51dfa2dd8c Delay initialization of sftp server 2023-03-19 20:26:09 +00:00
Albert Vaca Cintora
1ba9e59872 SftpPlugin: use MANAGE_EXTERNAL_STORAGE instead of SAF in Android 11+
https://developer.android.com/training/data-storage/manage-all-files

BUG: 447636
BUG: 464431
2023-03-19 20:26:09 +00:00
Albert Vaca Cintora
76c3cc4c57 Prevent spam of "Invalid packet" when using remote mouse 2023-03-19 11:57:35 +01:00
l10n daemon script
79275c51cf GIT_SILENT made messages (after extraction) 2023-03-19 00:47:28 +00:00
Albert Vaca Cintora
83b0c04d51 Release 1.23.2 2023-03-18 21:54:30 +01:00
Albert Vaca Cintora
3aba448bea Rollback android-device-names to 1.x
Was bumped in f2f1930cec but it was crashing
with "database disk image is malformed" and not returning a human name
2023-03-18 20:40:51 +01:00
l10n daemon script
5633183d57 GIT_SILENT made messages (after extraction) 2023-03-18 00:58:31 +00:00
Albert Vaca Cintora
a9e6fcff6a Release 1.23.1 2023-03-17 20:03:19 +01:00
Albert Vaca Cintora
772eae7a4c Revert "Make linter happy: use try-with-resources"
Those require higher API levels. Added comment.

This reverts commit 84e78e4bda.
2023-03-17 19:31:26 +01:00
Albert Vaca Cintora
ff3239f876 Open the notification plugin settings even without permissions 2023-03-17 19:16:04 +01:00
Albert Vaca Cintora
2de744aad8 Allow configuring plugins without permissions
This fixes the bug introduced in f97216 which prevented configuring storage
locations because the plugin wasn't returned by `getPlugin` when there are
no storage locations present.
2023-03-17 19:03:20 +01:00
Albert Vaca Cintora
01f44f524a package -> packet typo fixes 2023-03-17 18:57:02 +01:00
Albert Vaca Cintora
d9e641ae28 Update comments 2023-03-17 18:35:27 +01:00
Albert Vaca Cintora
f2f1930cec Bump versions of deps 2023-03-17 18:35:27 +01:00
l10n daemon script
bf13753022 GIT_SILENT made messages (after extraction) 2023-03-17 00:57:06 +00:00
Albert Vaca Cintora
afa0f89644 Bump target SDK to 32
https://developer.android.com/about/versions/12/behavior-changes-12
2023-03-16 12:00:32 +00:00
Albert Vaca Cintora
764a8f8525 Release 1.23.0 2023-03-16 12:51:42 +01:00
Albert Vaca Cintora
605c06b1e6 Fixes as per code review 2023-03-16 11:42:26 +00:00
Albert Vaca Cintora
26c1c2ac67 Remove commented if 2023-03-16 11:42:26 +00:00
Albert Vaca Cintora
e103d8cd47 Change version int to constant 2023-03-16 11:42:26 +00:00
Albert Vaca Cintora
9f037f841e Merge resources specific to API 21+ into the main resources 2023-03-16 11:42:26 +00:00
Albert Vaca Cintora
1002275ebe Remove even more checks for deprecated Android versions 2023-03-16 11:42:26 +00:00
Albert Vaca Cintora
3bfae23d1b Share Plugin: improvements for Android 11
* Do not ask for WRITE_EXTERNAL_STORAGE in Android 11+ (writing to "Downloads" is [allowed by default since 11](https://stackoverflow.com/questions/70248631/starting-from-android11-do-i-need-to-comply-to-androids-saf-just-to-even-creat)).
* Do not check for permissions before receiving a file. Try and let it error out, instead of silently doing nothing.
* Fix not offering to open content:// urls (we checked the URLs to be file:// urls to then convert them to content://).
* Better permission explanation text.
2023-03-15 22:01:39 +00:00
Albert Vaca Cintora
d2edd7a325 Sort plugins by name in preferences 2023-03-13 17:27:27 +00:00
l10n daemon script
a638d66dd3 GIT_SILENT Sync po/docbooks with svn 2023-03-13 02:06:46 +00:00
l10n daemon script
830a20fb87 GIT_SILENT made messages (after extraction) 2023-03-13 00:48:34 +00:00
l10n daemon script
148dd30d1b GIT_SILENT Sync po/docbooks with svn 2023-03-12 03:12:47 +00:00
l10n daemon script
74d3cea4f2 GIT_SILENT made messages (after extraction) 2023-03-12 00:46:05 +00:00
l10n daemon script
fd188b3e87 GIT_SILENT made messages (after extraction) 2023-03-11 00:48:46 +00:00
l10n daemon script
635452bcf6 GIT_SILENT made messages (after extraction) 2023-03-10 00:46:48 +00:00
l10n daemon script
03c0b06e39 GIT_SILENT made messages (after extraction) 2023-03-09 00:45:44 +00:00
l10n daemon script
0c24a78516 GIT_SILENT made messages (after extraction) 2023-03-08 00:46:51 +00:00
Albert Vaca Cintora
54952f11a5 Fix NPE 2023-03-07 15:41:58 +01:00
Albert Vaca Cintora
aae3518bb9 Remove specific list of ciphers
We can let the system use the full list when negotiating since we no longer
support Android < 5.0
2023-03-07 13:04:30 +00:00
l10n daemon script
4b3ddf9cc4 GIT_SILENT made messages (after extraction) 2023-03-07 00:46:47 +00:00
Albert Vaca Cintora
038f6e8598 Make linter happy: misc fixes 2023-03-06 00:02:45 +01:00
Albert Vaca Cintora
3212252e37 Make linter happy: use lambdas 2023-03-06 00:02:45 +01:00
Albert Vaca Cintora
84e78e4bda Make linter happy: use try-with-resources 2023-03-06 00:01:47 +01:00
Albert Vaca Cintora
cef68db2a6 Make linter happy: keep nullable/nonnull annotations 2023-03-06 00:01:47 +01:00
Albert Vaca Cintora
00f3fc43d0 Make linter happy: add final 2023-03-05 23:47:42 +01:00
Albert Vaca Cintora
20cc67e63a Extract strings 2023-03-05 22:26:19 +01:00
Albert Vaca Cintora
298b00a82e Reuse a single TrustManager 2023-03-05 22:11:58 +01:00
Albert Vaca Cintora
f97216c797 Sftp permissions aren't optional 2023-03-05 22:11:58 +01:00
Albert Vaca Cintora
0f4643e502 Project-wide optimize imports 2023-03-05 22:11:58 +01:00
Albert Vaca Cintora
42a7d5df41 Apply linter suggestions about left/right -> begin/end 2023-03-05 22:11:58 +01:00
Albert Vaca Cintora
6734efd227 Fix obviously broken out-of-bounds in loop 2023-03-05 21:42:17 +01:00
Albert Vaca Cintora
9cbfed84de Remove pre-kitkat code paths in SFTP plugin
We no longer support KitKat. This simplifies the SFTP plugin quite a bit since it contained a diferent code path for pre-kitkat devices
2023-03-05 16:15:03 +00:00
Albert Vaca Cintora
5b73c2bac2 Remove checks for SDK versions older than our target SDK
Removes conditional code for older Android versions (IceCreamSandwitch, JellyBean, KitKat, Lollipop) since we no longer support Android older than Lollipop (5.0).

This doesn't remove KitKat support in the SFTP plugin since it's a bit more convoluted. It will be done in a separate MR.
2023-03-05 16:14:01 +00:00
l10n daemon script
c72be8fe78 GIT_SILENT Sync po/docbooks with svn 2023-03-05 02:32:22 +00:00
l10n daemon script
d74d9cf279 GIT_SILENT made messages (after extraction) 2023-03-05 00:50:23 +00:00
Albert Vaca Cintora
296a055221 Bump project deps 2023-03-04 16:06:28 +01:00
Albert Vaca Cintora
3cf48ffd14 Add missing calls to super.onRequestPermissionsResult 2023-03-04 16:00:23 +01:00
Albert Vaca Cintora
adbf78afdb Fix typo 2023-03-04 15:59:55 +01:00
Bacteria Dev
118d8784fa Hide 'Send Clipboard' from DeviceFragment when READ_LOGS permission is granted
On Android 10 and above, Clipboard needs to be manually sent. Recently the app was shipped with the patches so that users can use adb to grant the required permissions for automatic clipboard propagation.

In case the permissions were granted for automatic clipboard propagation, 'Send Clipboard' option was hidden from persistent notification but was not removed from the DeviceFragment. This MR addresses this.
2023-03-04 12:34:59 +00:00
l10n daemon script
938985beff GIT_SILENT made messages (after extraction) 2023-03-02 00:54:29 +00:00
l10n daemon script
cf0e4d4100 GIT_SILENT Sync po/docbooks with svn 2023-02-28 02:30:01 +00:00
Matthew Mirvish
80d780ed85 Use colon instead of hyphen when building command control ids
Certain implementations of the protocol (namely GSConnect) use UUIDS
for the device IDS/command keys, which contain hyphens in them. The
current implementation of RunCommandControlsProviderService (used for
the android 11 power menu command control things) gives the controls
unique IDS with "{deviceid}-{commandkey}" and then tries to split on the
hyphen, which obviously breaks if the device id or command key contain
hyphens. This patch changes it to uses colons to separate them instead.

Note that I've only tested this with GSconnect, but I see no reason why
it wouldn't work with the normal KDE connect implementation too, unless
it uses colons in IDs.
2023-02-27 22:17:07 +00:00
l10n daemon script
cb5939f1df GIT_SILENT Sync po/docbooks with svn 2023-02-27 02:35:20 +00:00
l10n daemon script
e2041305fb GIT_SILENT made messages (after extraction) 2023-02-27 01:00:22 +00:00
l10n daemon script
f71256f8f6 GIT_SILENT Sync po/docbooks with svn 2023-02-26 02:22:04 +00:00
Albert Vaca Cintora
f6c61f4e4b Specify the foreground service type in Android 29+ 2023-02-25 11:31:18 +01:00
l10n daemon script
1011cdcb33 GIT_SILENT Sync po/docbooks with svn 2023-02-25 03:01:22 +00:00
l10n daemon script
1c650bea83 GIT_SILENT made messages (after extraction) 2023-02-25 01:00:02 +00:00
l10n daemon script
7d3f76cb87 GIT_SILENT made messages (after extraction) 2023-02-18 00:58:09 +00:00
l10n daemon script
08b26264b3 GIT_SILENT Sync po/docbooks with svn 2023-02-17 02:15:20 +00:00
l10n daemon script
8c1e8a8d35 GIT_SILENT Sync po/docbooks with svn 2023-02-16 03:04:18 +00:00
l10n daemon script
953785f5ad GIT_SILENT Sync po/docbooks with svn 2023-02-09 02:28:57 +00:00
l10n daemon script
fd16407a53 GIT_SILENT Sync po/docbooks with svn 2023-02-08 03:02:12 +00:00
l10n daemon script
4b5e632f5b GIT_SILENT made messages (after extraction) 2023-02-08 00:58:34 +00:00
l10n daemon script
7a1aadeeec GIT_SILENT made messages (after extraction) 2023-02-05 00:57:27 +00:00
l10n daemon script
bbe90633fd GIT_SILENT Sync po/docbooks with svn 2023-02-02 02:21:08 +00:00
l10n daemon script
d38bbd4476 GIT_SILENT made messages (after extraction) 2023-02-02 00:57:30 +00:00
Albert Vaca Cintora
c36cb98d50 Release 1.22.2 2023-02-01 17:41:03 +01:00
l10n daemon script
0e14382541 GIT_SILENT made messages (after extraction) 2023-02-01 00:56:44 +00:00
l10n daemon script
42d8e6b2e2 GIT_SILENT Sync po/docbooks with svn 2023-01-31 02:15:51 +00:00
Simon Redman
26ceeceb45 Switch to jitpack build for smsmms library
Is the third time the charm?

f-droid does not allow libraries pulled from non-listed maven repositories, thus the build fails in f-droid:
https://gitlab.com/fdroid/fdroiddata/-/jobs/3654530159#L236
> Found unknown maven repo 'https://invent.kde.org/api/v4/projects/72/packages/maven' at settings.gradle

This MR changes to use [jitpack](https://jitpack.io/#org.kde.invent.sredman/android-smsmms/kdeconnect-1-21-0), which is an allowed repository.
2023-01-30 23:07:27 +00:00
l10n daemon script
ba77fa786f GIT_SILENT made messages (after extraction) 2023-01-30 00:57:09 +00:00
l10n daemon script
aca039433c GIT_SILENT made messages (after extraction) 2023-01-29 00:57:31 +00:00
Albert Vaca Cintora
bbbc315cf7 Release 1.22.1 2023-01-27 18:25:54 +01:00
Albert Vaca Cintora
d74ad30740 Disable jetifier
Android Studio suggested it since we are not using it
2023-01-27 18:24:02 +01:00
Albert Vaca Cintora
b5d9293103 Remove REQUEST_INSTALL_PACKAGES permission
Google keeps being annoying and now they got really strict with which apps
can be published to the Play Store using this permission
2023-01-27 18:23:16 +01:00
Albert Vaca Cintora
9eb047e7a1 Actually, release 1.22 2023-01-23 23:34:24 +01:00
Albert Vaca Cintora
82415b3fa7 Release 1.21.2 2023-01-23 23:26:07 +01:00
Albert Vaca Cintora
15fec5e515 Bump deps 2023-01-23 23:24:27 +01:00
Simon Redman
bcf080f6eb [SMS Plugin] Change android-smsmms to in-house build until upstream supports SDK31
## Summary

Android apps which target SDK 31+ require specifying the mutability of any PENDING_INTENT. This is not supported in the upstream android-smsmms library: https://github.com/klinker41/android-smsmms/pull/193

Until the above PR is merged, we need a solution. I have pulled the code into https://invent.kde.org/sredman/android-smsmms and published the package in the Maven repository in gitlab.

BUG: 464392

## Test Plan

### Before:
Attempting to send an SMS or MMS message using kdeconnect-sms results in no message being sent, and an error being logged:

> V/Sending message: Sending new SMS
> E/Sending message: Exception
>     java.lang.IllegalArgumentException: org.kde.kdeconnect_tp: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
>     Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
>         at android.app.PendingIntent.checkFlags(PendingIntent.java:382)
>         at android.app.PendingIntent.getBroadcastAsUser(PendingIntent.java:673)
>         at android.app.PendingIntent.getBroadcast(PendingIntent.java:660)
>         at com.klinker.android.send_message.Transaction.sendSmsMessage(Transaction.java:267)
>         at com.klinker.android.send_message.Transaction.sendNewMessage(Transaction.java:158)
>         at com.klinker.android.send_message.Transaction.sendNewMessage(Transaction.java:172)
>         at org.kde.kdeconnect.Plugins.SMSPlugin.SmsMmsUtils.sendMessage(SmsMmsUtils.java:188)
>         at org.kde.kdeconnect.Plugins.SMSPlugin.SMSPlugin.onPacketReceived(SMSPlugin.java:414)
>         at org.kde.kdeconnect.Device.onPacketReceived(Device.java:570)
>         <snipped for brevity>

### After:
SMS and MMS sends normally.
2023-01-23 22:02:01 +00:00
Simon Redman
9db4c885a5 [SMS Plugin] Fix handling for addresses list of multi-target group messages
## Summary

Fix a logic error in the SMS plugin which caused it to skip the addresses of other targets when reporting group messages.

Notionally, this bug originated with the logic change in !197, where everything switched to using the android-smsmms library.

BUG: 464555

## Test Plan

### Before:
Group messages would be returned as single-target messages between you and the sender, meaning the desktop app would have a bad time showing them.

### After:
Group messages are returned with the appropriate list of addresses, the desktop app groups them appropriately.
2023-01-22 20:16:06 +00:00
l10n daemon script
67dc1f1fae GIT_SILENT made messages (after extraction) 2023-01-22 00:56:52 +00:00
Simon Redman
e76da90fa9 Correct logic error when determining which "new" messages to return
With the old logic, the mostRecentTimestamp would effectively only be updated once, the first time the app noticed an SMS/MMS. This means that, until the app was next closed, it would return every message sent or received after that timestamp. Since the app doesn't crash as often as it used to, this can grow to a quite significant number of messages.
2023-01-20 21:21:30 -05:00
l10n daemon script
f74336da30 GIT_SILENT made messages (after extraction) 2023-01-21 00:57:51 +00:00
l10n daemon script
154ce67a7c GIT_SILENT made messages (after extraction) 2023-01-16 00:56:06 +00:00
l10n daemon script
207d7b7eb0 GIT_SILENT made messages (after extraction) 2023-01-15 00:55:51 +00:00
l10n daemon script
9870150155 GIT_SILENT Sync po/docbooks with svn 2023-01-14 02:14:51 +00:00
l10n daemon script
141f711b8d GIT_SILENT Sync po/docbooks with svn 2023-01-13 02:51:57 +00:00
l10n daemon script
02ee982991 GIT_SILENT made messages (after extraction) 2023-01-13 00:55:52 +00:00
l10n daemon script
b5b2ebde9d GIT_SILENT Sync po/docbooks with svn 2023-01-12 02:15:28 +00:00
l10n daemon script
cd2dde90cd GIT_SILENT Sync po/docbooks with svn 2023-01-11 02:16:02 +00:00
l10n daemon script
725c302caa GIT_SILENT made messages (after extraction) 2023-01-11 00:56:46 +00:00
l10n daemon script
2680859acc GIT_SILENT made messages (after extraction) 2023-01-10 00:55:40 +00:00
l10n daemon script
7148038ea9 GIT_SILENT made messages (after extraction) 2023-01-09 00:55:14 +00:00
Albert Vaca Cintora
889e0d5c52 Release 1.21.1 2023-01-08 13:30:42 +01:00
l10n daemon script
c075cc0b63 GIT_SILENT made messages (after extraction) 2023-01-08 00:58:22 +00:00
l10n daemon script
91c0097158 GIT_SILENT made messages (after extraction) 2023-01-07 00:48:52 +00:00
l10n daemon script
a25e88238d GIT_SILENT made messages (after extraction) 2023-01-06 00:47:14 +00:00
l10n daemon script
4336ea4761 GIT_SILENT made messages (after extraction) 2023-01-05 00:47:29 +00:00
Albert Vaca Cintora
58fabe06bf Revert "Separate persistent notification channel based on whether devices are connected"
This reverts commit 9f9b565ce6.

Explained here: https://invent.kde.org/network/kdeconnect-android/-/merge_requests/299#note_590553

# Conflicts:
#	src/org/kde/kdeconnect/BackgroundService.java
2023-01-04 15:14:02 +01:00
l10n daemon script
7d7162bb5b GIT_SILENT Sync po/docbooks with svn 2023-01-04 02:43:22 +00:00
l10n daemon script
b0655fc9d0 GIT_SILENT made messages (after extraction) 2023-01-04 00:48:28 +00:00
Albert Vaca Cintora
1241a560f2 Change the explanation of the permission location
The app is being rejected from the Play Store because we are not explicit
about why whe require the location when the app is in the background.
2023-01-03 18:33:14 +01:00
l10n daemon script
f7b55e4416 GIT_SILENT Sync po/docbooks with svn 2023-01-03 02:57:06 +00:00
l10n daemon script
ff78fdfd59 GIT_SILENT made messages (after extraction) 2023-01-03 00:46:55 +00:00
Albert Vaca Cintora
8b01db3c34 Release 1.21.0 2023-01-02 22:29:09 +01:00
Albert Vaca Cintora
25728eae18 If you use FINE_LOCATION you also should declare COARSE_LOCATION 2023-01-02 22:28:48 +01:00
Albert Vaca Cintora
dc7fc46e62 Revert "Comment out MouseReceiverPlugin"
This reverts commit a663f4d106.
2023-01-02 22:08:09 +01:00
Albert Vaca Cintora
2b1e4dcb23 Bump deps 2023-01-02 22:00:32 +01:00
Albert Vaca Cintora
97b7eb71cf Delete tests broken since 2019
I spent a few hours and couldn't fix them
2023-01-02 21:54:21 +01:00
Harry Cheng
bb0ab51d3b Do not send cancel packet from disabled apps 2023-01-02 16:08:04 +08:00
l10n daemon script
f503b18993 GIT_SILENT made messages (after extraction) 2023-01-02 01:00:29 +00:00
l10n daemon script
58e9a5d2b6 GIT_SILENT made messages (after extraction) 2023-01-01 00:56:32 +00:00
Albert Vaca Cintora
fd34e56675 Use registerNetworkCallback to listen to network changes
ConnectivityManager.CONNECTIVITY_ACTION was deprecated in Android 9
2022-12-31 00:35:08 +01:00
Albert Vaca Cintora
4be79b52ae Show a toast if keyboard input is not supported 2022-12-31 00:03:41 +01:00
Albert Vaca Cintora
028a2992c9 Bump deps 2022-12-30 23:58:13 +01:00
Albert Vaca Cintora
bdfc21cf64 Hopefully fix NPE 2022-12-29 18:51:12 +01:00
Albert Vaca Cintora
5225d0b200 Release 1.20.2 2022-12-28 19:29:55 +01:00
Albert Vaca Cintora
54e5224f20 Fix minifier deleting "unused" xml that were actually used 2022-12-28 19:29:23 +01:00
Albert Vaca Cintora
6ab846cbbd Fix NPE 2022-12-28 17:31:52 +01:00
Albert Vaca Cintora
ea66605ef0 Fix crash on Android 7 2022-12-28 17:31:42 +01:00
Albert Vaca Cintora
c903c5d3fd Release 1.20.1
Untagged because it's for the play store only.
2022-12-28 00:26:58 +01:00
Albert Vaca Cintora
a663f4d106 Comment out MouseReceiverPlugin
The Play Store asks us a video showing why we need the accessibility
service, and I can't make it work so I can't record the video.
Removing this plugin removes the need for any accessibility permissions.
2022-12-28 00:14:49 +01:00
Albert Vaca Cintora
1a79c3e77a Release 1.20 2022-12-27 23:53:45 +01:00
Albert Vaca Cintora
6fbd923c60 Bump dependencies and targetSdkVersion
Motivation: We can't publish to the Play Store with a targetSdkVersion < 31

The new targetSdk required two changes:

* Specifying when activities, services and receivers should be exported or
  not to other apps. For the ones I wasn't sure of what we want, I made
  them exported to not break something.
* Specifying when a PendingIntent should be mutable or immutable. I made
  them all mutable for now.
2022-12-27 23:53:13 +01:00
l10n daemon script
f7b25bfaf7 GIT_SILENT Sync po/docbooks with svn 2022-12-26 02:16:12 +00:00
l10n daemon script
e61af6fa37 GIT_SILENT Sync po/docbooks with svn 2022-12-25 02:42:13 +00:00
Felix Fischer
9df91577d3 Add monochrome drawable (i.e. Android 13 themed icon)
## Summary

Since a lot of devices now have Android 13, some users might want support for the new themed app icons.
This adds support for these, by adding a monochrome drawable (just the default icon with only the phone border and K) in `res/drawable-v24/ic_launcher_monochrome.xml` and then referencing this in `res/minimap-anydpi-v26/ic_laucher(_round).xml`.

## Test Plan

This can be tested by simply compiling and installing the app as usual on any device running Android 13.
After installing the app, the option for an adaptive colour theme will need to be enabled:
- OneUI5: Long-press home screen > Wallpaper and Style > Colour palette > enable colour palette and check "Apply palette to app icons"
- Pixel: Long-press home screen > Wallpaper & style > check "Themed icons"

The app icon should now follow the system theme (on some devices only on home screen, on others both home screen and app drawer).

![Screenshot_20221204_231210](/uploads/75ec96d9a3b17486622e32148cfd775c/Screenshot_20221204_231210.png)
2022-12-19 22:12:03 +00:00
l10n daemon script
39ff1da82d GIT_SILENT Sync po/docbooks with svn 2022-12-15 02:14:58 +00:00
l10n daemon script
081bb4ebc8 GIT_SILENT Sync po/docbooks with svn 2022-12-14 02:40:53 +00:00
l10n daemon script
7f47dcf860 GIT_SILENT made messages (after extraction) 2022-12-11 00:46:45 +00:00
l10n daemon script
e5c976eeee GIT_SILENT Sync po/docbooks with svn 2022-12-08 02:10:14 +00:00
l10n daemon script
88b396b6f0 GIT_SILENT made messages (after extraction) 2022-12-04 00:45:55 +00:00
l10n daemon script
04067984ed GIT_SILENT Sync po/docbooks with svn 2022-12-03 02:07:49 +00:00
l10n daemon script
99d2f1b0df GIT_SILENT Sync po/docbooks with svn 2022-12-02 02:52:03 +00:00
l10n daemon script
f71d5b5e8c GIT_SILENT Sync po/docbooks with svn 2022-11-21 02:01:50 +00:00
l10n daemon script
5b346d9c7a GIT_SILENT Sync po/docbooks with svn 2022-11-20 02:31:18 +00:00
l10n daemon script
dd1aa4731d GIT_SILENT made messages (after extraction) 2022-11-19 00:45:11 +00:00
l10n daemon script
a941f2bf3a GIT_SILENT made messages (after extraction) 2022-11-17 00:45:23 +00:00
l10n daemon script
9ed7571e1d GIT_SILENT made messages (after extraction) 2022-11-16 00:46:27 +00:00
l10n daemon script
d9c2da2fdb GIT_SILENT made messages (after extraction) 2022-11-12 00:46:58 +00:00
l10n daemon script
4398d791a3 GIT_SILENT made messages (after extraction) 2022-11-11 00:45:24 +00:00
Simon Redman
c477cbe33c Fix lint errors in SMSHelper.java
## Summary

Clean up a bunch of lint errors in SMSHelper.java. Some of these are null issues which in theory might prevent a crash.

## Test Plan

No functional changes are expected. Fetching SMS still works for me.
2022-11-08 00:47:31 +00:00
Philip Cohn-Cort
a63d549739 Remove some unused imports
## Summary

Very basic maintenance MR to remove unused imports from code files.
2022-11-07 23:15:06 +00:00
l10n daemon script
d57072186a GIT_SILENT Sync po/docbooks with svn 2022-11-07 02:32:01 +00:00
l10n daemon script
10a7b50b0d GIT_SILENT made messages (after extraction) 2022-11-06 00:46:23 +00:00
l10n daemon script
d594f45914 GIT_SILENT made messages (after extraction) 2022-11-04 00:45:33 +00:00
l10n daemon script
45f557b0fe GIT_SILENT made messages (after extraction) 2022-11-03 00:45:43 +00:00
l10n daemon script
2448277211 GIT_SILENT made messages (after extraction) 2022-11-02 00:48:02 +00:00
l10n daemon script
817d00d2d8 GIT_SILENT Sync po/docbooks with svn 2022-11-01 02:04:45 +00:00
Yannik Sembritzki
9f9b565ce6 Separate persistent notification channel based on whether devices are connected
This allows users to selectively disable the persistent notification when no devices are connected.

BUG: 460927
2022-10-31 21:03:27 +00:00
Wojciech Matuszewski
70d70dcb33 Use a common thread pool instead of creating new threads manually
## Summary

Spawning new threads in Java is costly. This MR aims to use a common thread pool instead.

I've replaced all cases where a new thread is started just to perform a task in the background. This does not include cases where a reference to the newly created thread is kept as a part of application logic – this is probably a problem in itself, but it exceeds the scope of this quick optimization. ;) 

There was a couple of cases where a new thread was spawned just to sleep for a while an then change the state on a View on the main thread. I've replaced those with posting those deferred tasks to the View's message queue.

## Test Plan

Everything should work the same as it has before, just a bit faster and easier on the memory.
2022-10-31 20:59:17 +00:00
Arun Parolikkal
31d1882c6a Basic support for A12 colors
Colors don't work in some cards, menus and the hamburger menu

## Summary

I'm trying to make KDEConnect pull colours from the Material 3.0
wallpaper in Android 12. I've managed to do this to an extent by editing
the xml files in res/values*. There are, however, certain UI elements
that do not respond to the changes I've made, with no obvious files
where their colours may be changed.

## Screenshots

### The devices screen looks great (Except "KDE Connect Devices" in the
App bar isn't themed.)

![Screenshot_20211215-175156_KDE_Connect](/uploads/f00a03a9857a696acbf3ba14a0d01e23/Screenshot_20211215-175156_KDE_Connect.png)

### The hamburger menu has a white color in light mode. Don't know where
this is set and how to change it

![Screenshot_20211215-175206_KDE_Connect](/uploads/349b2bf72596a388e445f7462672b358/Screenshot_20211215-175206_KDE_Connect.png)

### Three dot menu has a white colour

![Screenshot_20211215-175210_KDE_Connect](/uploads/4a3204de26233ac3f6ea612358e9387d/Screenshot_20211215-175210_KDE_Connect.png)

### Add new devices looks good too
![Screenshot_20211215-175221_KDE_Connect](/uploads/78db4cd796ba31bfb763b9e2fae6e216/Screenshot_20211215-175221_KDE_Connect.png)

### Not the popup menus though

![Screenshot_20211215-175225_KDE_Connect](/uploads/a0fb8dbf4c0cc1fd3a2774d5ff8fda00/Screenshot_20211215-175225_KDE_Connect.png)

### Cards in the About section are still white

![Screenshot_20211215-175235_KDE_Connect](/uploads/18d1b3337af45eb7c9bcb157a0b34357/Screenshot_20211215-175235_KDE_Connect.png)

### Dark mode works fine

![Screenshot_20211215-175255_KDE_Connect](/uploads/3c2777e3f97ab7f377c6ace8b83297f2/Screenshot_20211215-175255_KDE_Connect.png)

### But again, some UI elements like the hamburger menu aren't themed.

![Screenshot_20211215-175302_KDE_Connect](/uploads/2ea118e6a352bcf4d5dc8760495d7b12/Screenshot_20211215-175302_KDE_Connect.png)

I'll keep trying to figure out how to make these elements to their
proper colours, but I've done a lot of searching through the source and
couldn't figure out how. I'm absolutely new to Android development. Help
please.

## Test Plan

For the changes made thus far, none are needed.
2022-10-31 16:43:18 -04:00
l10n daemon script
aacd0fa32a GIT_SILENT Sync po/docbooks with svn 2022-10-31 02:39:16 +00:00
l10n daemon script
cfc67f6a3a GIT_SILENT Sync po/docbooks with svn 2022-10-24 02:03:06 +00:00
l10n daemon script
9bed548dc3 GIT_SILENT Sync po/docbooks with svn 2022-10-22 11:22:29 +00:00
l10n daemon script
b0d2e6f822 GIT_SILENT Sync po/docbooks with svn 2022-10-21 02:09:38 +00:00
l10n daemon script
48e0ff2714 GIT_SILENT Sync po/docbooks with svn 2022-10-20 02:55:57 +00:00
Wojciech M
9af94884f9 fix channel names not being set when creating notification channels 2022-10-17 20:42:07 +02:00
l10n daemon script
67e4b27915 GIT_SILENT made messages (after extraction) 2022-10-15 00:46:11 +00:00
l10n daemon script
8038f58507 GIT_SILENT made messages (after extraction) 2022-10-14 00:46:37 +00:00
Isira Seneviratne
90ac4d68cf Use NotificationChannelCompat. 2022-10-10 20:49:52 +00:00
Isira Seneviratne
59303c1d0f Update Gradle Plugin to 7.2.2. 2022-10-10 20:49:22 +00:00
Simon Redman
5487d72c29 [SMS Plugin] Return conversation results one-by-one to more quickly populate the GUI
## Summary

Since !158, fetching messages has been painfully slow. This is because, instead of making one cursor (database) call, we needed to make two per conversation.

Unless someone finds a conversations URI which works on Samsung devices and reliably returns data, there isn't much we can do about that. What we can do, is return each conversation more quickly to get the UI populated and to prevent blocking the main thread forever.

This attempts to return conversations ordered by most-recent first. If the conversations URI returns junk for the thread date, it will return in an undefined order.

## Test Plan

#itworksforme
2022-10-10 20:44:19 +00:00
l10n daemon script
8c6a8b87db GIT_SILENT Sync po/docbooks with svn 2022-10-09 02:07:50 +00:00
l10n daemon script
69d335fe7a GIT_SILENT made messages (after extraction) 2022-10-09 00:47:47 +00:00
l10n daemon script
d2d6856b85 GIT_SILENT Sync po/docbooks with svn 2022-10-05 01:58:46 +00:00
l10n daemon script
9bd3ec3087 GIT_SILENT Sync po/docbooks with svn 2022-10-03 02:40:16 +00:00
l10n daemon script
0d71aa5ba8 GIT_SILENT Sync po/docbooks with svn 2022-10-02 02:48:20 +00:00
l10n daemon script
b51657555a GIT_SILENT Add new file (after extraction) 2022-09-30 00:43:48 +00:00
l10n daemon script
8fc3d6f51a GIT_SILENT made messages (after extraction) 2022-09-23 00:44:48 +00:00
l10n daemon script
1106788e46 GIT_SILENT made messages (after extraction) 2022-09-22 00:44:24 +00:00
l10n daemon script
90fa265447 GIT_SILENT made messages (after extraction) 2022-09-20 00:45:18 +00:00
Albert Vaca Cintora
801e9a2647 Remove individual contributors' contact buttons from About
To encourage using project-wide, open channels instead of private emails.
2022-09-18 23:43:58 +02:00
l10n daemon script
7c1d62f60c GIT_SILENT made messages (after extraction) 2022-09-11 00:44:55 +00:00
l10n daemon script
854555b142 GIT_SILENT made messages (after extraction) 2022-09-05 00:43:56 +00:00
l10n daemon script
bb97c5c4cb GIT_SILENT made messages (after extraction) 2022-09-01 00:44:31 +00:00
l10n daemon script
f9ddea53e2 GIT_SILENT made messages (after extraction) 2022-08-27 00:46:29 +00:00
l10n daemon script
a725cb3ac2 GIT_SILENT made messages (after extraction) 2022-08-26 00:44:29 +00:00
l10n daemon script
f5b9eae272 GIT_SILENT made messages (after extraction) 2022-08-25 00:46:12 +00:00
l10n daemon script
252d0a492d GIT_SILENT Add new file (after extraction) 2022-08-24 00:46:24 +00:00
l10n daemon script
0fd9ff2bf8 GIT_SILENT made messages (after extraction) 2022-08-15 00:44:12 +00:00
l10n daemon script
305a1d4c78 GIT_SILENT made messages (after extraction) 2022-08-09 00:45:40 +00:00
Nicolas Fella
2285c9b4d3 Remove arcconfig
We are not using Phabricator anymore
2022-08-05 01:34:08 +02:00
Nicolas Fella
a94eeb4947 Revert "Remove arcconfig"
Had unrelated changes

This reverts commit 53e2e0be10.
2022-08-05 01:23:55 +02:00
Nicolas Fella
53e2e0be10 Remove arcconfig
We are not using Phabricator anymore
2022-08-05 01:23:26 +02:00
l10n daemon script
357867145e GIT_SILENT made messages (after extraction) 2022-08-01 00:43:56 +00:00
Mikhail Zolotukhin
fccbdf0699 Declare repositories and project name in settings.gradle
Official gradle docs recommend using settings.gradle file (see https://docs.gradle.org/current/userguide/organizing_gradle_projects.html#always_define_a_settings_file).
Blank Android projects in Android Studio declare their name and repositories in settings.gradle. Therefore, it makes sense to create such file here and add that information in it.

An explicit project name allows us to know exactly to what `project.name` resolves, instead of relying on the project root directory name, which can be changed by the developer locally.
2022-07-25 20:44:56 +00:00
l10n daemon script
9de62747f7 GIT_SILENT made messages (after extraction) 2022-07-14 00:44:59 +00:00
l10n daemon script
28c0ad3328 GIT_SILENT made messages (after extraction) 2022-07-10 00:46:44 +00:00
l10n daemon script
358dbee727 GIT_SILENT made messages (after extraction) 2022-07-09 00:44:54 +00:00
l10n daemon script
cfee01f820 GIT_SILENT made messages (after extraction) 2022-07-07 00:44:14 +00:00
l10n daemon script
461b096af3 GIT_SILENT made messages (after extraction) 2022-07-04 00:45:10 +00:00
Nicolas Fella
cf94436208 [mpris] Remove workarounds for Spotify
It looks like Spotify fixed its MPRIS impl and these things are no longer broken

There's no need to hide them from the UI any more
2022-06-27 23:15:37 +00:00
Ilmaz Gumerov
edc655da5a Add logs reading for sending clipboard on Android 10
Enable with:
adb -d shell pm grant org.kde.kdeconnect_tp android.permission.READ_LOGS;
adb -d shell appops set org.kde.kdeconnect_tp SYSTEM_ALERT_WINDOW allow;
adb -d shell am force-stop org.kde.kdeconnect_tp;
2022-06-27 17:00:34 -04:00
l10n daemon script
de1e68d62f GIT_SILENT made messages (after extraction) 2022-06-25 00:47:11 +00:00
Art Pinch
f1d0c9acc6 Fix MprisActivity crash in landscape orientation
## Summary

Fixed MprisActivity crash in landscape orientation caused by mismatched portrait and landscape layout resources

BUG: 435016

## Test Plan

### Before:
App crashed on MprisActivity when phone is switched to landscape orientation

### After:
App works normally in landscape mode
2022-06-09 02:10:37 +00:00
Nicolas Fella
f2481644ae Update Gradle plugin 2022-06-02 00:39:06 +02:00
Art Pinch
7080b43d2d Control remote device volume by volume keys when MPRIS session is active
Allows to control the volume of the default sink of the remote device by pressing phone volume keys on API21+ (Lollipop and onwards) when MPRIS session is active (i.e. MPRIS media control notification is present). Remote device should support System Volume Plugin and report its default sink. Volume controlling works both when the phone screen is off and on. When the screen is on, you'll see a new slider in the volume panel.

BUG: 398848
2022-06-01 22:35:54 +00:00
Ravi Mistry
8f49ff57ab Fix byte array conversions
## Summary

Currently, KDE Connect for Android doesn't show the last 2 characters of the verification key when pairing a device. This MR solves this issue.

This bug is caused by incomplete conversions from byte arrays to strings in `SslHelper.java`:

```java
for (int i = 0; i < hash.length - 1; i++) {
    formatter.format("%02x", hash[i]);
}
```
The ```i < hash.length -1``` converts the bytes in the array up to (inclusive) the penultimate one. Removing the ```- 1``` allows for the last byte to be converted (this is the missing 2 characters).

BUG: 445955

## Test Plan

### Before:
Selecting a desktop from the available devices, then clicking the `Request Pairing` button causes a 62 character key to be displayed. It is 2 characters short of the actual key, which can be seen on the desktop KDE Connect app.

### After:
Selecting the `Request Pairing` button now shows the whole verification key, as intended.
2022-05-30 21:28:03 +00:00
l10n daemon script
9834a690b4 GIT_SILENT made messages (after extraction) 2022-05-21 00:44:36 +00:00
l10n daemon script
5a64ff7ebd GIT_SILENT made messages (after extraction) 2022-05-10 00:44:37 +00:00
l10n daemon script
bcd1bdb856 GIT_SILENT made messages (after extraction) 2022-05-08 00:45:48 +00:00
l10n daemon script
4148d672ba GIT_SILENT made messages (after extraction) 2022-05-06 00:45:18 +00:00
l10n daemon script
96ad654d7c GIT_SILENT made messages (after extraction) 2022-05-01 00:47:59 +00:00
l10n daemon script
4e4c68526e GIT_SILENT made messages (after extraction) 2022-04-22 00:45:00 +00:00
Thore Goebel
8e43ef421b Capture back press in Settings and About
The Settings and About fragments are arguably one logical layer below the PairingFragment (which feels like the "main screen").
Capture the back press and return to the PairingFragment.

Fixes https://bugs.kde.org/show_bug.cgi?id=442716.

Notes:
- In a DeviceFragment back-pressing continues to close the app, as before. Judging from the fact that the app persists the last selected device to the shared prefs, I assume this is a intentional.
- I also thought about storing from where the Settings/About were opened (e.g. from a specific DeviceFragment) and returning there. However this would be a much larger change with arguable user benefit. After all, from the PairingFragment it's just a single click to your device.
2022-04-21 00:54:42 +00:00
l10n daemon script
cbabc40e7b GIT_SILENT made messages (after extraction) 2022-04-21 00:43:49 +00:00
l10n daemon script
91709c5a2a GIT_SILENT made messages (after extraction) 2022-04-17 00:46:22 +00:00
l10n daemon script
222f748211 GIT_SILENT made messages (after extraction) 2022-04-12 00:43:22 +00:00
Thore Goebel
a2c20d93f2 Set action bar title in SettingsFragment
Set the title "Settings" to the action bar in the SettingsFragment.

Previously, depending on where you came from, it just read "KDE Connect Devices", "About" or the device name.
2022-04-09 16:39:58 +00:00
l10n daemon script
a2d7a1b58a GIT_SILENT made messages (after extraction) 2022-03-30 00:50:21 +00:00
l10n daemon script
3dafea53c9 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-03-29 02:08:04 +00:00
l10n daemon script
006eb5bc4a GIT_SILENT made messages (after extraction) 2022-03-19 00:43:53 +00:00
Albert Vaca Cintora
f628bbdabc Share plugin: Honor received last modified metadata 2022-03-06 12:49:08 +01:00
Albert Vaca Cintora
4fa634afa4 Upgrade gradle plugin 2022-03-03 23:58:23 +01:00
Jing Xia
3bf3cb1629 Automatically reconnect to trusted networks in the background on API 29+
## Problem

On Android 10 (API 29) or later, when a trusted network has been configured, if the mobile device rejoins the network while KDE Connect is running in the background, it doesn't reconnect to any paired devices in the trusted network. It only reconnects when the user brings the app to the foreground.

## Cause

Android 10 introduced [a separate permission for background location access](https://developer.android.com/about/versions/10/privacy/changes#app-access-device-location). 

When KDE Connect is running in the background with API 29+, [`TrustedNetworkHelper.currentSSID` fails to get the SSID](d22967f475/src/org/kde/kdeconnect/Helpers/TrustedNetworkHelper.java (L77)) because it doesn't have the required permission. This prevents KDE Connect from verifying whether a network is trusted.

## Solution

Make KDE Connect request for background location access permission.

To request for background location access, an app must [declare it in the manifest](https://developer.android.com/training/location/permissions#background), or else the option to to enable background location access won't appear in settings.

As a side note, the permission request dialog in `TrustedNetworksActivity` doesn't require changes because after Android 11, the option to allow background location no longer shows up in a dialog. [It has to be manually enabled in settings.](https://developer.android.com/training/location/permissions#background-dialog-target-sdk-version)

## Test Plan

### Before:
On Android 10 or later, configure a trusted network and pair with a device in it. Let KDE Connect run in the background. Disconnect from the trusted network and then rejoin. KDE Connect won't automatically reconnect to the paired device.

### After:
Do the same steps as above, except after configuring the trust network, go into settings and allow KDE Connect to access location all the time. After KDE Connect rejoins the trusted network, it should automatically reconnect to the paired device.

![kdeconnect_location_permission_settings](/uploads/c7d03de9f1fb1502d7036f45ccb811a0/kdeconnect_location_permission_settings.png)
2022-03-01 22:08:54 +00:00
l10n daemon script
22f47b660b GIT_SILENT made messages (after extraction) 2022-02-26 00:47:37 +00:00
l10n daemon script
bdf5f1e25a GIT_SILENT made messages (after extraction) 2022-02-24 00:43:35 +00:00
l10n daemon script
980cfaedad GIT_SILENT made messages (after extraction) 2022-02-21 00:43:16 +00:00
l10n daemon script
422ad0a11f GIT_SILENT made messages (after extraction) 2022-02-20 00:44:05 +00:00
l10n daemon script
9115e0f24b GIT_SILENT made messages (after extraction) 2022-02-18 00:44:24 +00:00
Manuel Jesús de la Fuente
5ba84c6e78 Add Android 8+ adaptive icons
![image](/uploads/a1aa9ed5e5ea5c8a0f39fb655299e79d/image.png)

Adds the Android 8+ style adaptive icons, using the app's highlight color for extra contrast against the current fallback white background behind the white phone border. This new icon follows the size and grid guidelines of material design, and was created as a 108dp@1x svg
2022-02-16 22:54:52 +00:00
l10n daemon script
90ceb073ae GIT_SILENT made messages (after extraction) 2022-02-16 00:44:51 +00:00
l10n daemon script
2b5943572c GIT_SILENT made messages (after extraction) 2022-02-14 00:43:20 +00:00
l10n daemon script
65a5e59d4b GIT_SILENT made messages (after extraction) 2022-02-13 00:42:54 +00:00
l10n daemon script
3a338609e8 GIT_SILENT made messages (after extraction) 2022-02-12 00:43:09 +00:00
l10n daemon script
62744ddae3 GIT_SILENT made messages (after extraction) 2022-02-07 00:44:04 +00:00
l10n daemon script
152b6e9a96 GIT_SILENT made messages (after extraction) 2022-02-06 00:46:27 +00:00
Manuel Jesús de la Fuente
ecd2752579 Make trashcan icon visible
BUG: 435986
2022-02-05 09:52:50 +00:00
l10n daemon script
9b2cd6a97f GIT_SILENT made messages (after extraction) 2022-02-05 00:43:21 +00:00
l10n daemon script
b50c79a2c4 GIT_SILENT made messages (after extraction) 2022-02-03 00:43:21 +00:00
l10n daemon script
4d13a90ba5 GIT_SILENT made messages (after extraction) 2022-02-02 00:44:16 +00:00
l10n daemon script
2587569af7 GIT_SILENT made messages (after extraction) 2022-01-31 00:43:21 +00:00
Albert Vaca Cintora
0f0740e3ac Remove unused imports 2022-01-25 21:18:38 +01:00
Albert Vaca Cintora
c9b2b53d59 Fix division by 0 2022-01-24 14:01:49 +01:00
Albert Vaca Cintora
209f0f8f43 Fix NPE if BackgroundService.instance() doesn't exist 2022-01-24 14:01:40 +01:00
Albert Vaca Cintora
db3f8f7f74 Release 1.19.1 2022-01-24 01:56:10 +01:00
Albert Vaca Cintora
60ecec9751 Bump dependencies 2022-01-24 01:56:10 +01:00
Albert Vaca Cintora
6cf0ef79b2 Small tweaks suggested by static code analyzer 2022-01-24 01:56:10 +01:00
Albert Vaca Cintora
2d55f282a8 Hopefully fix some NPE crashes 2022-01-24 01:56:10 +01:00
Albert Vaca Cintora
5ef7154d5e Fix mpris control crashing (NPE) in landscape mode 2022-01-24 01:56:10 +01:00
l10n daemon script
1c137d5ca8 GIT_SILENT made messages (after extraction) 2022-01-24 00:42:50 +00:00
Albert Vaca Cintora
f747639304 Fix warning about resource IDs becoming non-final soon 2022-01-22 12:03:53 +01:00
Albert Vaca Cintora
6208e0babb Add icon for compose text menu item 2022-01-22 11:52:29 +01:00
Albert Vaca Cintora
7188285dac Compose text: close after sending 2022-01-22 11:52:05 +01:00
Albert Vaca Cintora
fe94854f02 Release 1.19.0 2022-01-22 11:33:36 +01:00
Albert Vaca Cintora
767fbdfdd9 Bump dependencies 2022-01-22 11:28:49 +01:00
Piyush Aggarwal
2a07c1f528 mousereceiverplugin: add support for back and forward mousebuttons 2022-01-22 10:27:55 +00:00
l10n daemon script
0a83597d3c GIT_SILENT made messages (after extraction) 2022-01-22 00:43:42 +00:00
l10n daemon script
e83b5c6e74 GIT_SILENT made messages (after extraction) 2022-01-18 00:43:30 +00:00
l10n daemon script
2468928b05 GIT_SILENT made messages (after extraction) 2022-01-17 00:42:44 +00:00
l10n daemon script
ae3ebec87c GIT_SILENT made messages (after extraction) 2022-01-16 00:43:14 +00:00
Forrest Hilton
64ad798d70 Added a screen to allow users to compose the key strokes to send.
Added a screen to allow users to compose the key strokes to send. This is necessary because the keyboard that appears on the mouse pad screen does not have the voice to text microphone button on my phone. Even if it could be made to appear as it does on my tablet, some kind of text buffering is necessary because the voice text will change its mind.
2022-01-15 20:35:45 +00:00
Maxim Leshchenko
a6339312e4 Fix crash 2022-01-15 20:30:19 +00:00
Maxim Leshchenko
d43c9aa325 Improve code 2022-01-15 20:30:19 +00:00
Maxim Leshchenko
b74a6e6c6e Run command in a separate thread 2022-01-15 20:30:19 +00:00
Maxim Leshchenko
7286b8a24a Add ability to run commands from Android 11 power menu 2022-01-15 20:30:19 +00:00
l10n daemon script
870c40e412 GIT_SILENT made messages (after extraction) 2022-01-15 00:42:58 +00:00
l10n daemon script
99d0e7eb43 GIT_SILENT made messages (after extraction) 2022-01-14 00:43:37 +00:00
l10n daemon script
4ad5733391 GIT_SILENT made messages (after extraction) 2022-01-13 00:43:05 +00:00
l10n daemon script
9cb8d52b4f GIT_SILENT made messages (after extraction) 2022-01-12 00:44:43 +00:00
Piyush Aggarwal
29ca097054 mousepadplugin: allow selecting which click to send for left click 2022-01-10 19:46:18 +00:00
Piyush Aggarwal
9b4c4ff9cb add option for Left click to be triggered when pressing two or three fingers 2022-01-10 19:46:18 +00:00
Piyush Aggarwal
bf40545e11 rename singleClick to leftClick 2022-01-10 19:46:18 +00:00
Maxim Leshchenko
ff3778e983 Show the send clipboard button on the device page only if the application is running on Android 10 or higher 2022-01-10 19:25:07 +00:00
Maxim Leshchenko
2b8d320b87 Add forgotten import 2022-01-10 19:25:07 +00:00
Trevor Terris
3633ee0b69 Move send clipboard button to the main menu 2022-01-10 19:25:07 +00:00
Maxim Leshchenko
492555ab9b Add more ways to send clipboard
Add the ability to send the clipboard to the device via the quick settings tile and via the menu on the device page

BUG: 439951
2022-01-10 19:25:07 +00:00
Patrick Wang
b3a3884333 Disable sftp random writes 2022-01-11 00:37:00 +08:00
Patrick Wang
46e4ff291c Fix for sftp random reads 2022-01-10 02:49:26 +08:00
l10n daemon script
ba1de4e035 GIT_SILENT made messages (after extraction) 2022-01-05 00:45:35 +00:00
l10n daemon script
eb7a69ea1b GIT_SILENT made messages (after extraction) 2022-01-02 00:46:12 +00:00
l10n daemon script
91d4c23950 GIT_SILENT made messages (after extraction) 2021-12-31 00:42:57 +00:00
l10n daemon script
1523e2709c GIT_SILENT made messages (after extraction) 2021-12-28 00:42:58 +00:00
l10n daemon script
325db14a38 GIT_SILENT made messages (after extraction) 2021-12-23 00:44:20 +00:00
l10n daemon script
77472749c2 GIT_SILENT made messages (after extraction) 2021-12-20 00:42:27 +00:00
l10n daemon script
8994a4724d GIT_SILENT made messages (after extraction) 2021-12-14 00:44:01 +00:00
l10n daemon script
29f0ff7e3f GIT_SILENT made messages (after extraction) 2021-12-12 00:43:09 +00:00
l10n daemon script
1b298ccc2a GIT_SILENT made messages (after extraction) 2021-12-10 00:43:54 +00:00
l10n daemon script
8292aaa62c GIT_SILENT made messages (after extraction) 2021-12-08 00:45:07 +00:00
l10n daemon script
b734e69323 GIT_SILENT made messages (after extraction) 2021-12-06 00:43:19 +00:00
l10n daemon script
786a385dde GIT_SILENT made messages (after extraction) 2021-12-05 00:43:02 +00:00
Éric Gillet
baa9b9af78 Overwrite title in ShareActivity toolbar 2021-12-03 20:30:13 +00:00
Sourav Das
8c226cb4c2 Added option to show notification only if the screen is off 2021-12-03 11:11:12 +06:00
Albert Vaca Cintora
f3fb7acef7 Release 1.18.1 2021-11-30 21:57:47 +01:00
Albert Vaca Cintora
5b7f4374ab Hopefully fix NPE
Probably introduced in !105
2021-11-30 21:57:47 +01:00
l10n daemon script
589e90890e GIT_SILENT made messages (after extraction) 2021-11-29 00:27:39 +00:00
l10n daemon script
7341cbd3d5 GIT_SILENT made messages (after extraction) 2021-11-28 00:27:20 +00:00
l10n daemon script
a78bde2a7c GIT_SILENT made messages (after extraction) 2021-11-27 00:27:41 +00:00
l10n daemon script
9e88dacfa6 GIT_SILENT made messages (after extraction) 2021-11-26 00:27:08 +00:00
Nishith Khanna
beafdb26ab Fixed package visibility for Android 11 devices
BUG: 445702
2021-11-25 06:33:22 +00:00
l10n daemon script
3f548f5efa GIT_SILENT made messages (after extraction) 2021-11-25 00:27:45 +00:00
l10n daemon script
a82478a6fb GIT_SILENT made messages (after extraction) 2021-11-24 00:27:23 +00:00
l10n daemon script
4053d224ec GIT_SILENT made messages (after extraction) 2021-11-23 00:27:50 +00:00
l10n daemon script
3cf7dfae55 GIT_SILENT made messages (after extraction) 2021-11-22 00:27:34 +00:00
l10n daemon script
d88eb51ede GIT_SILENT made messages (after extraction) 2021-11-21 00:27:21 +00:00
Éric Gillet
c69c885350 Remove android.intent.action.SEND_MULTIPLE intent filter for MainActivity
BUG: 429681
2021-11-19 22:14:03 +00:00
Éric Gillet
61699108bc Specific android:label for ShareActiviy 2021-11-19 22:14:03 +00:00
l10n daemon script
f265a8b379 GIT_SILENT made messages (after extraction) 2021-11-19 00:30:00 +00:00
Albert Vaca Cintora
bfb3eae492 Release 1.18.0 2021-11-17 19:15:31 +01:00
Albert Vaca Cintora
9ce72908e1 Bump all the things 2021-11-17 19:04:00 +01:00
l10n daemon script
d4cf2be7f5 GIT_SILENT made messages (after extraction) 2021-11-13 00:26:54 +00:00
l10n daemon script
e0ee8d753e GIT_SILENT made messages (after extraction) 2021-11-11 00:17:08 +00:00
l10n daemon script
43e076d98e GIT_SILENT made messages (after extraction) 2021-11-10 00:17:03 +00:00
Albert Vaca Cintora
9d09e5cd22 Fix low battery notification spam on Android 12 2021-11-09 00:39:00 +01:00
l10n daemon script
3fa5e041cf GIT_SILENT made messages (after extraction) 2021-11-05 00:16:50 +00:00
l10n daemon script
4608643567 GIT_SILENT made messages (after extraction) 2021-11-04 00:17:50 +00:00
l10n daemon script
a8c41fc608 GIT_SILENT made messages (after extraction) 2021-11-03 00:19:29 +00:00
l10n daemon script
10383fa3c9 GIT_SILENT made messages (after extraction) 2021-10-31 00:16:23 +00:00
Maxim Leshchenko
5837345fa3 Fix back behaviour in licenses activity 2021-10-30 17:05:04 +03:00
l10n daemon script
465ffc92cd GIT_SILENT made messages (after extraction) 2021-10-24 00:17:19 +00:00
Albert Vaca Cintora
e395dbae1d Bump kotlin patch version 2021-10-18 20:34:05 +02:00
Gobinath A L
c99764187a override onSupportNavigateUp method to mimic system BACK behaviour 2021-10-17 12:01:05 +05:30
Gobinath A L
69e29d09e0 override onSupportNavigateUp method to mimic system BACK behaviour 2021-10-17 11:32:41 +05:30
l10n daemon script
065516d3ca GIT_SILENT made messages (after extraction) 2021-10-11 00:17:28 +00:00
l10n daemon script
7895403396 GIT_SILENT made messages (after extraction) 2021-10-09 00:19:29 +00:00
l10n daemon script
be2bce30d5 GIT_SILENT made messages (after extraction) 2021-10-07 00:16:56 +00:00
l10n daemon script
4996ad571e GIT_SILENT made messages (after extraction) 2021-10-06 00:17:54 +00:00
Albert Vaca Cintora
33f1e29401 Remove deprecated option 2021-10-05 00:31:50 +02:00
Albert Vaca Cintora
66a81f3612 Update gradle and gradle plugin 2021-10-05 00:30:26 +02:00
Albert Vaca Cintora
f8e0d8ee71 Fix warning
Fixes "Multiple substitutions specified in non-positional format"
2021-10-05 00:02:53 +02:00
l10n daemon script
6fee826082 GIT_SILENT made messages (after extraction) 2021-09-28 00:17:01 +00:00
l10n daemon script
8a57627489 GIT_SILENT made messages (after extraction) 2021-09-27 00:16:41 +00:00
l10n daemon script
46b4a9a792 GIT_SILENT made messages (after extraction) 2021-09-26 00:17:09 +00:00
l10n daemon script
b05292ca0f GIT_SILENT made messages (after extraction) 2021-09-25 00:16:15 +00:00
Andy Holmes
cabb933118 SMSPlugin: fix documentation of attachment mime-type
The `mime_type` field of incoming attachments was incorrectly described
as being `<int>` when it is in fact `<String>`.
2021-09-20 23:35:33 +00:00
l10n daemon script
9597da61d2 GIT_SILENT made messages (after extraction) 2021-09-20 00:18:12 +00:00
l10n daemon script
e3ef74f414 GIT_SILENT made messages (after extraction) 2021-09-19 00:21:02 +00:00
l10n daemon script
257fa37b12 GIT_SILENT made messages (after extraction) 2021-09-17 00:16:58 +00:00
l10n daemon script
31a8a08108 GIT_SILENT made messages (after extraction) 2021-09-15 00:18:24 +00:00
l10n daemon script
1963cbb842 GIT_SILENT made messages (after extraction) 2021-09-14 00:17:59 +00:00
l10n daemon script
05418b6623 GIT_SILENT made messages (after extraction) 2021-09-13 00:18:11 +00:00
Philip Cohn-Cort
5940e957a8 Display battery status at the bottom of each device on its DeviceFragment
kdeconnect-android!105
2021-09-13 00:09:43 +00:00
l10n daemon script
0f4aaa286d GIT_SILENT made messages (after extraction) 2021-09-12 00:17:53 +00:00
l10n daemon script
fe606cf644 GIT_SILENT made messages (after extraction) 2021-09-11 00:17:21 +00:00
Simon Redman
23b8d2e70b [SMS Plugin] Don't remove the sending address if it is the only thing in the list 2021-09-06 15:27:05 -07:00
l10n daemon script
a1fb54faf1 GIT_SILENT made messages (after extraction) 2021-09-06 00:17:54 +00:00
l10n daemon script
1932fbc313 GIT_SILENT made messages (after extraction) 2021-09-05 00:18:05 +00:00
l10n daemon script
d25d402ade GIT_SILENT made messages (after extraction) 2021-09-03 00:17:09 +00:00
l10n daemon script
dcd66e9f7a GIT_SILENT made messages (after extraction) 2021-09-02 00:17:30 +00:00
l10n daemon script
c3ba621af2 GIT_SILENT made messages (after extraction) 2021-09-01 00:18:21 +00:00
l10n daemon script
f308a79294 GIT_SILENT made messages (after extraction) 2021-08-31 00:20:18 +00:00
l10n daemon script
750351d288 GIT_SILENT made messages (after extraction) 2021-08-30 00:16:52 +00:00
l10n daemon script
c65b6a672d GIT_SILENT made messages (after extraction) 2021-08-29 00:18:04 +00:00
l10n daemon script
cde9e46f3f GIT_SILENT made messages (after extraction) 2021-08-28 00:17:13 +00:00
l10n daemon script
f992fc6431 GIT_SILENT made messages (after extraction) 2021-08-26 00:16:59 +00:00
l10n daemon script
cf44f9fdea GIT_SILENT made messages (after extraction) 2021-08-25 00:17:49 +00:00
l10n daemon script
b2f0d1c0f0 GIT_SILENT made messages (after extraction) 2021-08-24 00:17:36 +00:00
l10n daemon script
3695673627 GIT_SILENT made messages (after extraction) 2021-08-23 00:19:23 +00:00
l10n daemon script
1e738e3c31 GIT_SILENT made messages (after extraction) 2021-08-22 00:17:17 +00:00
Maxim Leshchenko
049cb6d6a6 Add a desktop-like about app page
Show version, authors and useful links
2021-08-21 13:11:55 +00:00
l10n daemon script
988ffe92ff GIT_SILENT made messages (after extraction) 2021-07-28 00:17:36 +00:00
l10n daemon script
db76c8add4 GIT_SILENT made messages (after extraction) 2021-07-26 00:17:24 +00:00
l10n daemon script
de3de39def GIT_SILENT made messages (after extraction) 2021-07-19 00:16:51 +00:00
l10n daemon script
682c3cb7c1 GIT_SILENT made messages (after extraction) 2021-07-18 00:17:49 +00:00
Piyush Aggarwal
956103b646 mousereceiver: add nullptr check 2021-07-16 05:10:25 +05:30
Piyush Aggarwal
e18522f731 mousereceiverplugin: add singlerelease support 2021-07-16 00:41:20 +05:30
Simon Redman
b7de76ce36 [SMS Plugin] Prevent crashing when trying to send when we do not know the device's local number 2021-07-11 15:40:01 +00:00
l10n daemon script
6853bce106 GIT_SILENT made messages (after extraction) 2021-07-08 00:17:05 +00:00
l10n daemon script
f3e92a6614 GIT_SILENT made messages (after extraction) 2021-07-05 00:17:23 +00:00
l10n daemon script
95ce471871 GIT_SILENT made messages (after extraction) 2021-07-03 00:17:01 +00:00
l10n daemon script
6d3bed9fcc GIT_SILENT made messages (after extraction) 2021-06-30 00:17:43 +00:00
l10n daemon script
589bfc0ffc GIT_SILENT made messages (after extraction) 2021-06-29 00:16:46 +00:00
l10n daemon script
f0502be190 GIT_SILENT made messages (after extraction) 2021-06-28 00:18:42 +00:00
l10n daemon script
cac8c80671 GIT_SILENT made messages (after extraction) 2021-06-26 00:17:28 +00:00
Łukasz Patron
843d25d112 Don't convert shuffle value to String when sending the command 2021-06-25 15:37:27 +00:00
l10n daemon script
8da49741f2 GIT_SILENT made messages (after extraction) 2021-06-25 00:16:26 +00:00
l10n daemon script
98fde5193e GIT_SILENT made messages (after extraction) 2021-06-23 00:17:55 +00:00
Piyush Aggarwal
116fa02795 mprisplugin: allow hiding per-app volume meter if not supported by remote media app 2021-06-22 08:10:34 +05:30
l10n daemon script
432753154f GIT_SILENT made messages (after extraction) 2021-06-22 00:16:55 +00:00
Łukasz Patron
d87a65d8b7 Add LoopStatus and Shuffle control to mpris plugin 2021-06-21 17:36:44 +00:00
Piyush Aggarwal
48abfa0c05 systemvolumeplugin: dont relay volumeChange packet when changed by remote system itself 2021-06-21 11:09:33 +05:30
Piyush Aggarwal
e86f731188 systemvolumeplugin: make long-press display device details, instead of displaying the label again 2021-06-21 10:52:27 +05:30
l10n daemon script
5189d238d0 GIT_SILENT made messages (after extraction) 2021-06-16 00:18:15 +00:00
l10n daemon script
53ff153e55 GIT_SILENT made messages (after extraction) 2021-06-15 00:16:26 +00:00
l10n daemon script
17a0dc7c24 GIT_SILENT made messages (after extraction) 2021-06-14 00:16:54 +00:00
l10n daemon script
2369041d81 GIT_SILENT made messages (after extraction) 2021-06-13 00:18:03 +00:00
l10n daemon script
d7c256d7d6 GIT_SILENT made messages (after extraction) 2021-06-01 00:17:31 +00:00
l10n daemon script
4d792a22bd GIT_SILENT made messages (after extraction) 2021-05-29 00:16:35 +00:00
l10n daemon script
682bfee88e GIT_SILENT made messages (after extraction) 2021-05-28 00:16:25 +00:00
l10n daemon script
b4dab18f5a GIT_SILENT made messages (after extraction) 2021-05-17 00:20:52 +00:00
l10n daemon script
cd085c6b46 GIT_SILENT made messages (after extraction) 2021-05-15 00:18:17 +00:00
Maxim Leshchenko
04f3662a56 Replace checkboxes with switches in plugins settings 2021-05-11 17:22:08 +00:00
Maxim Leshchenko
0875532d61 Add plugin settings fragment switch animation 2021-05-11 17:20:51 +00:00
l10n daemon script
5e71cdd636 GIT_SILENT made messages (after extraction) 2021-05-10 00:19:35 +00:00
l10n daemon script
d4ccaf5804 GIT_SILENT made messages (after extraction) 2021-05-08 00:18:00 +00:00
l10n daemon script
430aaf153f GIT_SILENT made messages (after extraction) 2021-05-07 00:18:19 +00:00
Albert Vaca Cintora
0d23639b15 Release 1.17.0 2021-05-06 20:02:25 +02:00
Albert Vaca Cintora
28f2ccb391 Bump dependencies and change jcenter (EOLd) to maven 2021-05-06 20:01:33 +02:00
Nicolas Fella
77d0b4aec9 Check plugin permissions before calling onCreate
Otherwise if we call something in onCreate for which we don't (yet) have permission we get a permission violation
2021-05-06 11:58:16 +00:00
l10n daemon script
1a5a60a722 GIT_SILENT made messages (after extraction) 2021-04-30 00:18:03 +00:00
l10n daemon script
fdfef1bd0e GIT_SILENT made messages (after extraction) 2021-04-26 00:18:44 +00:00
l10n daemon script
742d82f2a8 GIT_SILENT made messages (after extraction) 2021-04-25 00:18:13 +00:00
l10n daemon script
d0f76de334 GIT_SILENT made messages (after extraction) 2021-04-24 00:18:48 +00:00
l10n daemon script
266dce4bfa GIT_SILENT made messages (after extraction) 2021-04-22 00:17:36 +00:00
l10n daemon script
b9f6a8f484 GIT_SILENT made messages (after extraction) 2021-04-21 12:49:46 +00:00
l10n daemon script
3e9ebff477 GIT_SILENT Add new file (after extraction) 2021-04-21 00:18:32 +00:00
l10n daemon script
3ce370631a GIT_SILENT made messages (after extraction) 2021-04-21 00:18:21 +00:00
l10n daemon script
d1c799221e GIT_SILENT made messages (after extraction) 2021-04-19 00:19:10 +00:00
l10n daemon script
0d3ec8f2d1 GIT_SILENT made messages (after extraction) 2021-04-17 00:19:55 +00:00
l10n daemon script
a5a958e653 GIT_SILENT made messages (after extraction) 2021-04-15 00:18:25 +00:00
l10n daemon script
cf65a39110 GIT_SILENT made messages (after extraction) 2021-04-12 00:17:58 +00:00
l10n daemon script
df9bc885fa GIT_SILENT made messages (after extraction) 2021-04-11 00:19:13 +00:00
Andy Holmes
abae0a45e0 strings.xml: fix fingerprint label
Both remote and local certificates are SHA256, fix the local string to
reflect that.
2021-04-08 22:48:55 -07:00
Maxim Leshchenko
96f75431cd Fix mouse receiver plugin description 2021-04-07 13:03:45 +03:00
l10n daemon script
7821ed434d GIT_SILENT made messages (after extraction) 2021-04-07 00:18:52 +00:00
l10n daemon script
f3d5fa3bef GIT_SILENT made messages (after extraction) 2021-04-06 00:17:59 +00:00
Simon Redman
0499245ed2 Remove some noisy logging from last commit 2021-04-03 23:39:09 -07:00
Sohny Bohny
28efb48257 Implement basic mouse receiver
## Summary

A basic mouse receiver implementation. You can now control your Android Device remotely which might be useful when it's connected to a bigger screen (via HDMI).

Unfortunately Android does not provide moving mouse by software (other than adb and without root). Therefore this implementation uses Android [AccessibilityService](https://developer.android.com/reference/android/accessibilityservice/AccessibilityService) to create an ImageView Overlay as mouse pointer and simulate touch gestures.
This is quite hacky but I think the best way to do so.

## Demo
Here is a small demo

![Screen_Capture_select-area_20200803155517](/uploads/635de03b6c7cc6765c4535cb8d80e77e/Screen_Capture_select-area_20200803155517.gif)
2021-04-04 06:34:52 +00:00
l10n daemon script
8e8eca62b0 GIT_SILENT made messages (after extraction) 2021-04-04 00:18:16 +00:00
l10n daemon script
ef778a3c56 GIT_SILENT made messages (after extraction) 2021-04-01 00:17:31 +00:00
Albert Vaca Cintora
3825970c8e Update dependencies 2021-03-28 20:09:52 +02:00
l10n daemon script
e037247f48 GIT_SILENT made messages (after extraction) 2021-03-28 03:23:30 +02:00
l10n daemon script
d779a6751c GIT_SILENT made messages (after extraction) 2021-03-27 02:21:02 +01:00
l10n daemon script
38eaa2e21f GIT_SILENT made messages (after extraction) 2021-03-24 02:21:32 +01:00
l10n daemon script
b2cd347270 GIT_SILENT made messages (after extraction) 2021-03-22 02:18:37 +01:00
l10n daemon script
f89e96d42c GIT_SILENT made messages (after extraction) 2021-03-20 02:36:10 +01:00
l10n daemon script
a1b27d2b55 GIT_SILENT made messages (after extraction) 2021-03-19 03:10:33 +01:00
Maxim Leshchenko
7f23453cef Fix display of navigation drawer header on devices with high status bar 2021-03-18 13:48:57 +02:00
Simon Redman
edd9d0d8af [SMS App] Prevent assert in PduPersistor.load 2021-03-17 06:10:26 +00:00
l10n daemon script
ca86efa25d GIT_SILENT made messages (after extraction) 2021-03-17 04:10:00 +01:00
Albert Vaca Cintora
352b7be5dc More logging 2021-03-16 21:24:06 +01:00
Albert Vaca Cintora
fd3346626e Fix old typo 2021-03-16 21:21:15 +01:00
Albert Vaca Cintora
bb5b6f4fea Fail if server is not ready when we try to broadcast 2021-03-16 21:21:15 +01:00
Albert Vaca Cintora
1c31d3cb49 Update everything 2021-03-16 21:21:15 +01:00
Albert Vaca Cintora
d0e9a4bf8a Add foregroundServiceType, whatever it is used for 2021-03-16 21:21:15 +01:00
Maxim Leshchenko
e57e7b0257 Improve and fixup SendKeystrokesToHostActivity
Changes:
1. Add toolbar
2. Add device icons
3. Fix unexpected on-screen keyboard popping up when starting an activity on some Android versions
4. The distance between the device list and the text box has been reduced
2021-03-16 20:02:00 +00:00
Lorem Ipsum
b9a6681a4f Set navigation bar color according to theme on API 27+ 2021-03-16 19:59:33 +00:00
Maxim Leshchenko
d3b409ab52 Add Material ripple to lists 2021-03-16 19:44:51 +00:00
Art Pinch
a8065bab85 Open device screen on foreground notification tap 2021-03-16 19:42:38 +00:00
l10n daemon script
aa597d7f76 GIT_SILENT made messages (after extraction) 2021-03-15 03:07:17 +01:00
l10n daemon script
ade17468af GIT_SILENT made messages (after extraction) 2021-03-14 02:51:49 +01:00
Maxim Leshchenko
fa3065579a Fix some outdated links 2021-03-13 01:41:44 +00:00
l10n daemon script
78e11d613d GIT_SILENT made messages (after extraction) 2021-03-13 02:35:24 +01:00
Simon Redman
56ac852be5 (Fix build) Change reference from tp_alt.R to tp.R 2021-03-12 17:20:25 -08:00
David Shlemayev
32785cb510 Add ConnectivityReport Plugin
This plugin lets you monitor the signal strength of the mobile connection of the phone,
so you may know if opening a hotspot is viable, or figuring out why a connection dropped while hotspot-ing.
2021-03-13 00:35:47 +00:00
Aniket Kumar
10925b9724 [SMS App] Add support to extract attachments from network packet and send it MMS
## Summary

Add support for handling message request packets which have a list of attachments

## Test Plan

- Sent message with no attached file from desktop which was sent and received correctly
- Sent message with attached file from desktop which was sent and received correctly
- Sent message with two attached files which was sent and received correctly
2021-03-12 15:06:20 -08:00
l10n daemon script
88ef4cbca1 GIT_SILENT made messages (after extraction) 2021-03-12 02:52:55 +01:00
l10n daemon script
dbf012915f GIT_SILENT made messages (after extraction) 2021-03-11 02:52:09 +01:00
Daniel Weigl
801b6451ed Accept data via Intent and pass them on to the host as keystrokes
Adds new functionality to the MousepadPlugin to accept data via Intent and pass them on to the host as keystrokes via the existing MousePadPlugin.PACKET_TYPE_MOUSEPAD_REQUEST PackageType

 eg. to easily send OTP codes from the phone to the Desktop
2021-03-09 16:47:15 +00:00
l10n daemon script
f41360a7fc GIT_SILENT made messages (after extraction) 2021-03-08 02:49:05 +01:00
Maxim Leshchenko
8ddb28c001 Small redesign
Changes:
1. In the menu, the design of the selected item was changed, the icon of the current device was added and the image was removed
2. Changed the accent color to orange
3. Separators have been removed from almost all lists
4. The design of the selected item was changed in the menu, the icon of the current device was added and the image was removed
4. Changed the color of the toolbar to white or black (depending on the theme)
2021-03-07 10:55:47 +00:00
l10n daemon script
061b9b63ee GIT_SILENT made messages (after extraction) 2021-03-05 02:38:31 +01:00
Art Pinch
a4b3da7a14 Added switching between audio outputs and split player and devices into two pages 2021-02-19 19:00:29 +00:00
Daniel Tang
2f71fab62c Fix NullPointerException in MprisReceiverPlayer 2021-02-19 18:43:15 +00:00
Daniel Tang
3444771a62 Help Android Studio select the correct res dir 2021-02-19 18:28:47 +00:00
l10n daemon script
9f14d45626 GIT_SILENT made messages (after extraction) 2021-02-19 03:18:14 +01:00
l10n daemon script
07f571bf1a GIT_SILENT made messages (after extraction) 2021-02-18 02:34:25 +01:00
l10n daemon script
23356c87c7 GIT_SILENT made messages (after extraction) 2021-02-16 02:33:22 +01:00
l10n daemon script
3f57f3443a GIT_SILENT made messages (after extraction) 2021-02-15 02:45:55 +01:00
l10n daemon script
b28ef53940 GIT_SILENT made messages (after extraction) 2021-02-09 02:52:48 +01:00
l10n daemon script
6b94804ac8 GIT_SILENT made messages (after extraction) 2021-02-05 02:49:03 +01:00
l10n daemon script
046a66affa GIT_SILENT made messages (after extraction) 2021-02-02 02:41:02 +01:00
l10n daemon script
f105844eff GIT_SILENT made messages (after extraction) 2021-01-25 02:31:44 +01:00
l10n daemon script
80388fc530 GIT_SILENT made messages (after extraction) 2021-01-24 02:33:35 +01:00
l10n daemon script
19ff86d2ea GIT_SILENT made messages (after extraction) 2021-01-23 02:40:36 +01:00
l10n daemon script
59d9713240 GIT_SILENT made messages (after extraction) 2021-01-21 02:41:02 +01:00
l10n daemon script
53bac2ea05 GIT_SILENT made messages (after extraction) 2021-01-17 02:37:15 +01:00
l10n daemon script
ddd58b051d GIT_SILENT made messages (after extraction) 2021-01-16 02:39:43 +01:00
l10n daemon script
1573ede4fb GIT_SILENT made messages (after extraction) 2021-01-15 02:44:30 +01:00
l10n daemon script
a00c7a633b GIT_SILENT made messages (after extraction) 2021-01-14 02:45:23 +01:00
George Hopkins
a799854f36 Allow AES-GCM ciphers with RSA certificates 2021-01-12 16:43:30 +00:00
Daniel Tang
04a8bebe3a Add links and comply with GPL 2021-01-12 04:04:28 +00:00
l10n daemon script
7c8ea00cce GIT_SILENT made messages (after extraction) 2021-01-12 02:44:04 +01:00
l10n daemon script
b995af671b GIT_SILENT made messages (after extraction) 2021-01-10 02:43:02 +01:00
Albert Vaca Cintora
dfdb76103f Ignore exception when url is not http/https 2021-01-06 12:56:11 +01:00
Albert Vaca Cintora
d6a284cb25 Bump all the versions 2021-01-06 12:47:33 +01:00
Albert Vaca Cintora
fc0320e2b3 Release 1.16.0 2021-01-06 12:38:07 +01:00
Térence Clastres
d914c8763f StoragePreference: Use findViewbyId() instead of trying to bind
Since commit f3ada9738d, the app crashes with a ClassCastException when going into the "expose filesystem" menu.

This is because view binding checks if the root view is the one it expects but the one passed here isn't directly the checkbox layout but instead the whole StoragePreference layout.

Because there is one view to bind, view binding here doesn't make much sense so replace it with a findViewbyId().
Also  add viewBindingIgnore="true" to the view so its binding class is
not generated.
2021-01-05 09:17:49 +00:00
l10n daemon script
e95e66b1cb GIT_SILENT made messages (after extraction) 2021-01-05 02:28:04 +01:00
l10n daemon script
d1d451be46 GIT_SILENT made messages (after extraction) 2020-12-22 02:27:52 +01:00
l10n daemon script
d2cd898d6a GIT_SILENT made messages (after extraction) 2020-12-21 02:28:42 +01:00
l10n daemon script
bc9032119a GIT_SILENT made messages (after extraction) 2020-12-20 02:27:31 +01:00
l10n daemon script
ccc1e74e88 GIT_SILENT made messages (after extraction) 2020-12-13 02:29:10 +01:00
Nicolas Fella
f6ca187fb2 Fix not sending our own notification
This got broken during some MMS work.

BUG: 428754
BUG: 428715
2020-12-07 19:51:49 +00:00
l10n daemon script
edc2de7a33 GIT_SILENT made messages (after extraction) 2020-12-07 02:26:56 +01:00
l10n daemon script
b107c3d37c GIT_SILENT made messages (after extraction) 2020-12-04 02:25:40 +01:00
l10n daemon script
66b6c2c533 GIT_SILENT made messages (after extraction) 2020-12-02 02:29:20 +01:00
l10n daemon script
4691123cfe GIT_SILENT made messages (after extraction) 2020-11-30 02:26:02 +01:00
l10n daemon script
15a18fa5b8 GIT_SILENT made messages (after extraction) 2020-11-29 02:23:59 +01:00
l10n daemon script
af791fa676 GIT_SILENT made messages (after extraction) 2020-11-28 02:25:52 +01:00
Albert Vaca Cintora
d09ad45e11 Add a verification key that's displayed when pairing
The key is a sha256 of both devices' certificates. Both should generate the
same key, so hey user can check they are pairing against the right device.

Thanks Matthias Gerstner <mgerstner@suse.de> for reporting this.
2020-11-26 11:30:53 +01:00
l10n daemon script
dd210259b9 GIT_SILENT made messages (after extraction) 2020-11-22 02:22:34 +01:00
l10n daemon script
19f4cd8c42 GIT_SILENT made messages (after extraction) 2020-11-14 02:25:02 +01:00
l10n daemon script
f6482155c4 GIT_SILENT made messages (after extraction) 2020-11-13 02:24:18 +01:00
l10n daemon script
e26ff862a9 GIT_SILENT made messages (after extraction) 2020-11-11 02:42:17 +01:00
l10n daemon script
43800903a2 GIT_SILENT made messages (after extraction) 2020-11-08 02:24:09 +01:00
l10n daemon script
3f829681a2 GIT_SILENT made messages (after extraction) 2020-11-07 02:23:40 +01:00
Isira Seneviratne
9aeb49ad49 Remove Butterknife. 2020-11-03 11:31:20 +00:00
Isira Seneviratne
b52ba2e29d Use view binding in EditTextAlertDialogFragment. 2020-11-03 11:31:20 +00:00
Isira Seneviratne
8d71354aea Use view binding in CustomDevicesAdapter. 2020-11-03 11:31:20 +00:00
Isira Seneviratne
10b2d561f0 Use view binding in StoragePreferenceDialogFragment. 2020-11-03 11:31:20 +00:00
Isira Seneviratne
f3ada9738d Use view binding in StoragePreference. 2020-11-03 11:31:19 +00:00
Isira Seneviratne
df1a9fb557 Use view binding in MprisActivity. 2020-11-03 11:31:19 +00:00
Albert Vaca Cintora
baa7032e9d Release 1.15.1 2020-11-02 10:18:05 +01:00
Simon Redman
d206b737d3 [SMS App] Allow sending MMS while not the default messaging app
## Summary

Use [SmsManager.SendMultimediaMessage](https://developer.android.com/reference/android/telephony/SmsManager#sendMultimediaMessage(android.content.Context,%20android.net.Uri,%20java.lang.String,%20android.os.Bundle,%20android.app.PendingIntent)) for sending MMS

This allows us to remove the handling for being the default MMS app, which the Google Play Store is not allowing us to claim

Additionally, rip out the parts of the app necessary for being the default handler (notifications, receivers, etc.) and and make the handling for changes in the message database less fragile (handle more messages at a time and handle MMS)

This is a collaboration between myself and Albert Vaca

## Test Plan

Sent a few plain-text and group MMS. It "works for me".
2020-11-01 23:47:03 +00:00
Albert Vaca Cintora
b4119a18dc Pin gradle plugin 4.0.2 2020-11-01 15:43:37 -08:00
Albert Vaca Cintora
f8e1dfff1c Reduce number of calls to PduPersister.load 2020-10-31 19:42:55 +01:00
Isira Seneviratne
96a51a6e77 Use Long.hashCode() in SMSHelper. 2020-10-31 18:22:52 +00:00
l10n daemon script
34dee23197 GIT_SILENT made messages (after extraction) 2020-10-26 02:22:25 +01:00
l10n daemon script
00460ce1e7 GIT_SILENT made messages (after extraction) 2020-10-23 02:24:07 +02:00
Isira Seneviratne
acf4b02a25 Use TextViewCompat.setCompoundDrawablesRelativeWithIntrinsicBounds(). 2020-10-22 14:41:50 +05:30
Isira Seneviratne
86919e002b Use TextViewCompat.setCompoundDrawablesRelative(). 2020-10-22 14:38:42 +05:30
l10n daemon script
839ff29401 GIT_SILENT made messages (after extraction) 2020-10-22 02:24:43 +02:00
l10n daemon script
82e7a8a255 GIT_SILENT made messages (after extraction) 2020-10-20 02:24:22 +02:00
Albert Vaca Cintora
1aa29c56fe Bump gradle version 2020-10-18 14:51:20 +02:00
l10n daemon script
c429bb81b0 GIT_SILENT made messages (after extraction) 2020-10-18 02:23:18 +02:00
l10n daemon script
3865c31820 GIT_SILENT made messages (after extraction) 2020-10-16 02:18:35 +02:00
l10n daemon script
f0fb35bb6e GIT_SILENT made messages (after extraction) 2020-10-15 02:23:15 +02:00
l10n daemon script
0e90a6038d GIT_SILENT made messages (after extraction) 2020-10-13 02:21:22 +02:00
l10n daemon script
d6e654f140 GIT_SILENT made messages (after extraction) 2020-10-12 02:21:28 +02:00
Albert Vaca Cintora
3f703c9732 Bump version 2020-10-11 17:41:08 +02:00
Albert Vaca Cintora
cffafc40f7 Removed something that isn't a permission 2020-10-11 17:40:25 +02:00
Yuri Chornoivan
f7007fd557 Fix minor typo 2020-10-11 08:41:48 +03:00
l10n daemon script
4cee466940 GIT_SILENT made messages (after extraction) 2020-10-11 02:23:02 +02:00
Albert Vaca Cintora
42a2d68bdd Bump version 2020-10-10 22:43:42 +02:00
Albert Vaca Cintora
bb39e95658 Remove unused permission 2020-10-10 22:32:49 +02:00
Albert Vaca Cintora
0a608580d9 Release 1.15.0 2020-10-10 15:14:37 +02:00
Albert Vaca Cintora
5b34bcf3da More explicit explanation 2020-10-10 15:14:37 +02:00
Albert Vaca Cintora
bbd648c2fc Bump all deps 2020-10-10 14:40:14 +02:00
Simon Redman
aa8bd4ad59 [SMS App] Fix sending simple SMS
## Summary

In https://invent.kde.org/network/kdeconnect-kde/-/merge_requests/316 we made some changes which are not backwards-compatible with the Android app. Since we have not yet released the Android app since those changes, we have hopefully not broken anybody but me.

However, this might be related to a recent bug: https://bugs.kde.org/show_bug.cgi?id=425638

Also updates some of the header comments for the recent changes

## Test Plan

### Before:
Sending SMS would silently fail

### After:
Sending SMS throws an IllegalArgumentException

With https://invent.kde.org/network/kdeconnect-kde/-/merge_requests/320, SMS can be sent normally
2020-10-09 00:36:03 +00:00
l10n daemon script
4193f09267 GIT_SILENT made messages (after extraction) 2020-10-09 02:21:56 +02:00
Anjani Kumar
69b3154b69 SharePlugin: Configure receiving directory in plugin permission mechanism
BUG: 422330
2020-09-26 06:12:47 +00:00
l10n daemon script
07101533c7 GIT_SILENT made messages (after extraction) 2020-09-24 02:29:26 +02:00
l10n daemon script
a116fbd6fc GIT_SILENT made messages (after extraction) 2020-09-20 02:17:07 +02:00
Isira Seneviratne
b49dda30f8 Update project dependencies. 2020-09-19 05:38:53 +00:00
Titir Adhikary
4ed6f1070f [SMS Plugin] Fix confusing method names for fetching all conversations vs. single conversation
Revert a7a66ecb2b which accidentally confused two very similar method names

Rename those methods to make sure it's clearer for anyone else who reads this code in the future
2020-09-19 05:20:32 +00:00
l10n daemon script
651fed4e1f GIT_SILENT made messages (after extraction) 2020-09-19 02:15:02 +02:00
Titir Adhikary
a7a66ecb2b Update SMSPlugin.java by removing a duplicate lines 2020-09-15 06:24:40 +00:00
Simon Redman
aa51019d0a [SMS App] Stop getting messages from the conversations?simple=true content URI
This fixes an issue with the first sync of threads not returning the actual most-recent message if the most-recent message was an MMS with no plain-text body
2020-09-14 17:24:54 -07:00
l10n daemon script
0ef541588b GIT_SILENT Add new file (after extraction) 2020-09-15 02:20:25 +02:00
l10n daemon script
41b39c625f GIT_SILENT made messages (after extraction) 2020-09-15 02:20:12 +02:00
l10n daemon script
fdb1dd3b3c GIT_SILENT made messages (after extraction) 2020-09-13 02:20:43 +02:00
l10n daemon script
0840cda923 GIT_SILENT made messages (after extraction) 2020-09-07 02:18:52 +02:00
l10n daemon script
dc14e9cd8d GIT_SILENT made messages (after extraction) 2020-09-06 02:19:01 +02:00
Aniket Kumar
ba89ef3abc Added support to process PACKET_TYPE_SMS_REQUEST_ATTACHMENT packet and transfers the requested attachment file to the desktop using PACKET_TYPE_SMS_ATTACHMENT_FILE packet. 2020-08-31 14:41:22 +05:30
l10n daemon script
1ddebd86aa GIT_SILENT made messages (after extraction) 2020-08-29 02:18:33 +02:00
Philip Cohn-Cort
e9215b1bd0 Disable BigscreenPlugin's microphone permission on non-TV links. 2020-08-24 06:33:22 +00:00
Isira Seneviratne
e79aac5b6f Add more usages of try-with-resources. 2020-08-20 18:29:20 +00:00
l10n daemon script
f5635a42ad GIT_SILENT made messages (after extraction) 2020-08-19 02:20:43 +02:00
Aniket Kumar
b1de227b2d Fixed issue of appliaction's MmsSentReceiver Class not being invoked on receiving MMS_SENT intent. 2020-08-18 16:22:22 +00:00
Nicolas Fella
91b8db4544 Fix crash in devices list
When we trigger a refresh and immediately navigate away from the list the view is destroyed and the refreshing end callback is accessing the now null devicesListBinding
2020-08-18 14:28:28 +02:00
Nicolas Fella
17f37ebd04 Bump gradle stuff 2020-08-18 14:10:16 +02:00
Isira Seneviratne
ca69a1f4fc Add null check in TelephonyHelper.getAllPhoneNumbers(). 2020-08-18 12:02:43 +00:00
l10n daemon script
6ae658e6fd GIT_SILENT made messages (after extraction) 2020-08-18 02:18:30 +02:00
Nicolas Fella
b3b74f25f4 Convert license headers to SPDX 2020-08-17 16:17:20 +02:00
l10n daemon script
9565318944 GIT_SILENT made messages (after extraction) 2020-08-17 02:14:12 +02:00
Aniket Kumar
f3d683e2c5 Modifying SMSHelper.Message class and PACKET_TYPE_SMS_MESSAGE to contain list of attachment objects. 2020-08-12 17:08:02 +05:30
l10n daemon script
31dd2cbd5f GIT_SILENT made messages (after extraction) 2020-08-11 02:20:15 +02:00
l10n daemon script
456e4ed9cd GIT_SILENT made messages (after extraction) 2020-08-09 02:14:34 +02:00
l10n daemon script
348d6fb379 GIT_SILENT made messages (after extraction) 2020-08-08 02:15:26 +02:00
l10n daemon script
c327a5fd3e GIT_SILENT made messages (after extraction) 2020-08-07 02:16:58 +02:00
l10n daemon script
07e422ebe7 GIT_SILENT made messages (after extraction) 2020-08-06 02:17:32 +02:00
Aniket Kumar
0528de7fde Implemented notification support to notify the user about the newly received SMS/MMS when KDE Connect will be set as the default SMS app. 2020-08-05 15:22:31 +05:30
Aniket Kumar
2758fba3d0 Removed APN settings from user preferences completely and replaced Klinker's get APN settings method with TelephonyHelper's getPreferredApn method. 2020-08-05 15:14:30 +05:30
l10n daemon script
83cf689478 GIT_SILENT made messages (after extraction) 2020-08-04 02:17:59 +02:00
Isira Seneviratne
c6f8a2ecdc Fix test compilation errors. 2020-08-02 16:56:21 +00:00
Isira Seneviratne
340d7b0154 Adjust build optimizations 2020-08-02 06:31:33 +00:00
Sohny Bohny
fd29755cf1 Add null check before using RemoteKeyboardService.instance.visible 2020-08-01 22:11:49 +00:00
l10n daemon script
7ad78d95c4 GIT_SILENT made messages (after extraction) 2020-08-01 02:18:00 +02:00
l10n daemon script
d69ba84919 GIT_SILENT made messages (after extraction) 2020-07-30 02:17:25 +02:00
Isira Seneviratne
fb79673e85 Use StringUtils.join(). 2020-07-26 21:50:10 +00:00
Isira Seneviratne
7458adc7d6 Use ArrayUtils.EMPTY_STRING_ARRAY constant. 2020-07-26 21:50:10 +00:00
Isira Seneviratne
f6187333a8 Use StringUtils.firstNonEmpty(). 2020-07-26 21:50:10 +00:00
Isira Seneviratne
d22967f475 Use ArrayUtils.contains(). 2020-07-26 21:50:10 +00:00
Isira Seneviratne
531c158756 Use NumberUtils.toInt(). 2020-07-26 21:50:10 +00:00
Isira Seneviratne
bccc002d04 Use StringUtils' startsWith() and endsWith(). 2020-07-26 21:50:10 +00:00
Isira Seneviratne
b520291ccd Use StringUtils.defaultString(). 2020-07-26 21:50:10 +00:00
Isira Seneviratne
24efa1968c Use ArrayUtils' isEmpty() and isNotEmpty(). 2020-07-26 21:50:10 +00:00
Isira Seneviratne
e74743c684 Use StringUtils.contains(). 2020-07-26 21:50:10 +00:00
Isira Seneviratne
84ca679d84 Use StringUtils.containsAny(). 2020-07-26 21:50:10 +00:00
Isira Seneviratne
29c6d28569 Add Apache Commons Lang. 2020-07-26 21:50:10 +00:00
Isira Seneviratne
a6c08d00b2 Use android:src instead of app:srcCompat. 2020-07-25 10:35:33 +05:30
Anjani Kumar
f7f2045da1 RunCommandWidget: Add System Dark theme support 2020-07-24 10:54:43 +00:00
Isira Seneviratne
1a2a01d3ff Use Kotlin's Charsets class. 2020-07-24 10:53:09 +00:00
Isira Seneviratne
fcae39846e Use view binding in the classes in the 'List' package. 2020-07-24 10:50:15 +00:00
Isira Seneviratne
5073f5e3dd Use view binding in PairingFragment. 2020-07-24 10:50:15 +00:00
Isira Seneviratne
cfa00c05ca Use view binding in RunCommandWidgetDeviceSelector. 2020-07-24 10:50:15 +00:00
Isira Seneviratne
0c38405965 Use view binding in TrustedNetworksActivity. 2020-07-24 10:50:15 +00:00
Isira Seneviratne
d064cf6a1e Use view binding in CustomDevicesActivity. 2020-07-24 10:50:15 +00:00
Isira Seneviratne
3207e4b0eb Use view binding in ShareActivity. 2020-07-24 10:50:15 +00:00
Isira Seneviratne
32c9dc5ad5 Use view binding in RunCommandActivity. 2020-07-24 10:50:15 +00:00
Isira Seneviratne
74f9aba31a Use view binding in PresenterActivity. 2020-07-24 10:50:15 +00:00
Isira Seneviratne
2ab615d55e Use view binding in NotificationFilterActivity. 2020-07-24 10:50:15 +00:00
Isira Seneviratne
a6cf26e739 Use view binding in FindMyPhoneActivity. 2020-07-24 10:50:15 +00:00
Isira Seneviratne
54335ac755 Use view binding in MainActivity. 2020-07-24 10:50:15 +00:00
Isira Seneviratne
4624033991 Use view binding in DeviceFragment. 2020-07-24 10:50:15 +00:00
Isira Seneviratne
286bb7b3cd Use view binding in BigscreenActivity. 2020-07-24 10:50:15 +00:00
Isira Seneviratne
179d04ef00 Enable view binding. 2020-07-24 10:50:15 +00:00
Isira Seneviratne
2f386ff5c0 Use FileUtils.directoryContains(). 2020-07-24 10:49:32 +00:00
Isira Seneviratne
4a4147bd4d Use FilenameUtils' getBaseName() and getExtension(). 2020-07-24 10:48:28 +00:00
l10n daemon script
0deb624ca2 GIT_SILENT made messages (after extraction) 2020-07-22 02:20:05 +02:00
l10n daemon script
edfbf131f9 GIT_SILENT made messages (after extraction) 2020-07-19 02:13:27 +02:00
Nicolas Fella
dff9a2218e Send correct keyboard state when changing onlyWhenEditing option
Otherwise the desktop side won't show the input as available

I didn't even know that feature existed :)
2020-07-18 21:56:49 +00:00
Albert Vaca Cintora
0cea53540e incomingCapabilities can be null 2020-07-18 23:55:43 +02:00
Albert Vaca Cintora
bc7d3ebf3c Protocol version in devicehelper 2020-07-18 23:55:43 +02:00
Simon Redman
96fd6d1e7f Make TelephonyHelper.getPreferredApn not require KitKat 2020-07-18 11:16:16 -07:00
l10n daemon script
d18d83bfac GIT_SILENT made messages (after extraction) 2020-07-18 02:11:39 +02:00
Simon Redman
2c325ad0d9 [SMS App] Add getPreferredApn method to TelephonyHelper 2020-07-17 15:16:22 -07:00
Anjani Kumar
8e09936692 Set user preferred theme when activities are created
BUG: 422473
2020-07-16 06:28:33 +00:00
l10n daemon script
791c82b91a GIT_SILENT made messages (after extraction) 2020-07-16 02:10:36 +02:00
l10n daemon script
4cf7b65e70 GIT_SILENT made messages (after extraction) 2020-07-15 02:15:26 +02:00
l10n daemon script
6c95455fa0 GIT_SILENT made messages (after extraction) 2020-07-14 02:14:31 +02:00
l10n daemon script
c4e11cca81 GIT_SILENT made messages (after extraction) 2020-07-13 02:17:20 +02:00
l10n daemon script
412a45bb1d GIT_SILENT made messages (after extraction) 2020-07-12 02:12:19 +02:00
Isira Seneviratne
06aac453ea Use IOUtils.close(). 2020-07-11 21:36:24 +00:00
Isira Seneviratne
1c416852e2 Use IOUtils.copy(). 2020-07-11 21:36:24 +00:00
Isira Seneviratne
6e747e2166 Use IOUtils' readLines() and toString(). 2020-07-11 21:36:24 +00:00
Isira Seneviratne
268d01bb71 Add Apache Commons IO. 2020-07-11 21:36:24 +00:00
Anjani Kumar
2b136fac4f Remove string.xml's version(v28) qualifier 2020-07-12 00:57:45 +05:30
Isira Seneviratne
b427627148 Add JVM memory argument. 2020-07-11 02:10:37 +00:00
Isira Seneviratne
7c25fa64a1 Rewrite AlbumArtCache to make use of coroutines instead of AsyncTask. 2020-07-11 02:10:37 +00:00
Isira Seneviratne
e4774b5d17 Add Kotlin dependencies. 2020-07-11 02:10:37 +00:00
Isira Seneviratne
771dab54c3 Remove 'vectorDrawables.useSupportLibrary' flag. 2020-07-10 20:21:06 +05:30
Isira Seneviratne
c4dcecb8d8 Use Comparator.reverseOrder() and Map.computeIfAbsent() in SMSHelper. 2020-07-10 18:31:12 +05:30
Isira Seneviratne
ca7f691b93 Use the Streams API and Comparator.comparing() to sort CommandEntry objects. 2020-07-10 18:22:43 +05:30
Isira Seneviratne
847a949ace Use the Streams API in DevicePacketQueue. 2020-07-10 18:22:42 +05:30
Isira Seneviratne
87c1c44e68 Use SetUtils in PluginFactory. 2020-07-10 11:15:00 +00:00
Isira Seneviratne
144d5d431d Use MultiValuedMap in NotificationsPlugin and Device. 2020-07-10 11:15:00 +00:00
Isira Seneviratne
8f342ed239 Add Apache Commons Collections. 2020-07-10 11:15:00 +00:00
Isira Seneviratne
37baad615f Use ConnectivityManagerCompat.isActiveNetworkMetered(). 2020-07-10 04:23:34 +05:30
Isira Seneviratne
0ed8d5e62e Replace accept and reject PNGs with vector drawables. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
6026388dac Replace refresh PNGs with a vector drawable. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
a3d62c39b9 Replace error PNGs with a vector drawable. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
10e0d51774 Replace touch PNGs with a vector drawable. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
f4fbdbc03e Replace file PNGs with a vector drawable. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
0c50310d54 Replace run command PNGs with a vector drawable. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
a13f140b90 Replace play PNGs with a vector drawable. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
b2bf2dca0f Replace presenter PNGs with a vector drawable. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
4d1cc5b174 Replace phone link PNGs with vector drawables. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
355d6a4190 Replace keyboard hide PNGs with a vector drawable. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
b631060a0e Replace edit PNGs with a vector drawable. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
46070aa6bf Replace the device PNGs with vector drawables. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
acd96b86e5 Replace add circle PNGs with a vector drawable. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
8622c6c5f9 Replace keyboard PNGs with a vector drawable. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
45b2ac263f Enable vector drawable support and override some layouts for higher API levels. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
80121a7951 Use TextUtils' isEmpty() and equals(). 2020-07-09 14:24:17 +00:00
l10n daemon script
0f589fd821 GIT_SILENT made messages (after extraction) 2020-07-09 02:13:04 +02:00
l10n daemon script
17f682df46 GIT_SILENT made messages (after extraction) 2020-07-08 02:10:34 +02:00
Isira Seneviratne
2b25d26a7c Use ContextCompat.getColor(). 2020-07-07 13:31:03 +00:00
Isira Seneviratne
58be146c29 Use ContextCompat.getDrawable(). 2020-07-07 13:31:03 +00:00
Isira Seneviratne
39b8c571e3 Use ContextCompat.startForegroundService(). 2020-07-07 13:31:03 +00:00
Isira Seneviratne
fe3cbeb65b Mock ContextCompat.getSystemService() using PowerMockito. 2020-07-07 17:52:54 +05:30
Isira Seneviratne
52aafe6b8c Use ContextCompat.getSystemService() to retrieve system services without casting. 2020-07-07 16:47:39 +05:30
l10n daemon script
f4ff5c3c89 GIT_SILENT made messages (after extraction) 2020-07-07 02:12:20 +02:00
Aniket Kumar
b119de8e76 Added MMS support to the SMSPlugin using Klinker library. 2020-07-05 13:32:44 +05:30
Isira Seneviratne
edbf3ccaab Make use of the Java 8 Streams API in MprisPlugin. 2020-07-02 13:31:07 +05:30
Isira Seneviratne
6cfe45abfd Replace Comparator implementations with lambda expressions. 2020-07-02 13:31:07 +05:30
Isira Seneviratne
03b61f7d1d Use Java 8 Date/Time API instead of the legacy API. 2020-07-02 13:31:07 +05:30
Isira Seneviratne
2a4ac97880 Add Java 8 API desugaring support. 2020-07-02 13:31:04 +05:30
l10n daemon script
bf06e91636 GIT_SILENT made messages (after extraction) 2020-07-02 02:10:36 +02:00
l10n daemon script
5d0abd93a9 GIT_SILENT made messages (after extraction) 2020-06-27 02:09:29 +02:00
Nicolas Fella
d7fc002609 Bump gradle stuff 2020-06-23 12:38:40 +02:00
Ash Holland
7992820d36 Use appropriate notification channel for file transfer notifications
This fixes bug 421108 (https://bugs.kde.org/show_bug.cgi?id=421108)
2020-06-23 10:35:56 +00:00
l10n daemon script
43b90cd8f9 GIT_SILENT Add new file (after extraction) 2020-06-20 02:08:09 +02:00
l10n daemon script
6d28839c45 GIT_SILENT made messages (after extraction) 2020-06-19 02:10:35 +02:00
l10n daemon script
9bbfb1752b GIT_SILENT made messages (after extraction) 2020-06-18 02:18:29 +02:00
l10n daemon script
f4e000d046 GIT_SILENT Add new file (after extraction) 2020-06-17 02:05:33 +02:00
l10n daemon script
a7475a04d0 GIT_SILENT made messages (after extraction) 2020-06-17 02:05:31 +02:00
l10n daemon script
decfc2f261 GIT_SILENT made messages (after extraction) 2020-06-15 02:13:12 +02:00
Weixuan XIAO
0caa30e1d7 Fix telephony plugin while no SIM card inserted
On my Nokia 8, no SIM card means that there is no subscription
info, which will lead subscription info list a null pointer.
2020-06-14 13:44:53 +00:00
l10n daemon script
f1d8ae2f7d GIT_SILENT made messages (after extraction) 2020-06-14 02:12:14 +02:00
l10n daemon script
1ddb8c6d49 GIT_SILENT made messages (after extraction) 2020-06-13 02:11:11 +02:00
Simon Redman
876d1fa3db [SMS Helper] Use simple=true parameter for fetching the list of all conversations
## Summary

Use `content://mms-sms/conversations?simple=true` instead of just `content://mms-sms/conversations` which should work for more devices (and is reported to work on Samsung devices)

For some reason, this misses exactly one conversation on my phone and throws back one invalid thread ID -- I suspect this indicates that my message database is corrupt 🤷

BUG: 401677

## Test Plan

### Before:
Lots of devices were not able to retrieve conversations. See [bug 401677](https://bugs.kde.org/show_bug.cgi?id=401677)

### After:
Hopefully all devices are able to retrieve conversations. At minimum, hopefully there are no regressions :)
2020-06-10 03:58:34 +00:00
l10n daemon script
5db24b0038 GIT_SILENT made messages (after extraction) 2020-06-10 02:16:11 +02:00
l10n daemon script
bc7789ddc2 GIT_SILENT made messages (after extraction) 2020-06-09 02:09:30 +02:00
l10n daemon script
95c14e922f GIT_SILENT made messages (after extraction) 2020-06-08 02:10:39 +02:00
Simon Redman
3c5f91d9a6 [SMS Helper] Also handle IllegalArgumentException when constructing a MessageAccessException 2020-06-07 13:59:31 -07:00
Simon Redman
460bcba9d5 [SMS Helper] Catch more exception types which indicate that "sub_id" is not supported in the given URI 2020-06-07 13:52:31 -07:00
l10n daemon script
3e6c836c29 GIT_SILENT made messages (after extraction) 2020-06-07 02:09:31 +02:00
Aditya Mehra
ee5c75e10a Add support for Bigscreen STT using android's inbuilt speech engine 2020-06-06 21:39:41 +00:00
l10n daemon script
d5946faf3d GIT_SILENT made messages (after extraction) 2020-06-05 02:08:19 +02:00
Philip Cohn-Cort
615f2c1d20 Fix crash on Plugin Settings screen 2020-06-04 07:56:22 +00:00
l10n daemon script
4d10532a73 GIT_SILENT made messages (after extraction) 2020-06-03 02:08:55 +02:00
l10n daemon script
734e7e3097 GIT_SILENT made messages (after extraction) 2020-06-02 02:06:29 +02:00
l10n daemon script
f5e3687c54 GIT_SILENT made messages (after extraction) 2020-05-31 18:06:31 +02:00
Tobias Fella
df55a51aa3 Delete .reviewboardrc 2020-05-17 14:00:10 +02:00
l10n daemon script
ea2e121e98 GIT_SILENT made messages (after extraction) 2020-05-15 02:57:21 +02:00
l10n daemon script
b80235fec0 GIT_SILENT made messages (after extraction) 2020-05-14 02:52:13 +02:00
Abdel-Rahman Abdel-Rahman
787b07b522 Bump gradle wrapper version.
Satisfies minimum version of Android gradle plugin. See
https://developer.android.com/studio/releases/gradle-plugin#updating-gradle
2020-05-13 04:35:02 +00:00
l10n daemon script
bd1d7ca677 GIT_SILENT made messages (after extraction) 2020-05-13 02:52:16 +02:00
Anjani Kumar
74532f0cd2 Use an already defined string to improve readability 2020-05-12 04:48:45 +05:30
Anjani Kumar
c318d60916 New way to support dark theme to improve integration with system 2020-05-11 23:07:25 +00:00
Nicolas Fella
e315cbd9ef Update some dependency versions 2020-05-12 00:06:14 +02:00
Daniel Tang
31271ec4f9 Make plugin settings use material design 2020-05-10 08:39:52 -04:00
l10n daemon script
a75fe69554 GIT_SILENT made messages (after extraction) 2020-05-10 02:57:04 +02:00
l10n daemon script
f5281be132 GIT_SILENT made messages (after extraction) 2020-05-09 02:51:19 +02:00
l10n daemon script
e4465b5cd5 GIT_SILENT made messages (after extraction) 2020-04-30 02:44:09 +02:00
Philip Cohn-Cort
09a20e8b8e Include git commit in APK filename 2020-04-29 18:59:00 +00:00
Abdel-Rahman Abdel-Rahman
decb179bad Fix typo 2020-04-29 00:35:57 +02:00
Daniel Tang
4291473106 Use material design settings icon 2020-04-27 22:37:16 -04:00
l10n daemon script
b03cfa56ec GIT_SILENT made messages (after extraction) 2020-04-28 02:53:02 +02:00
l10n daemon script
528d13af10 GIT_SILENT made messages (after extraction) 2020-04-27 02:47:52 +02:00
l10n daemon script
548d78aff8 GIT_SILENT made messages (after extraction) 2020-04-25 02:55:47 +02:00
Nicolas Fella
8bcf699074 Show bigscreen plugin if other device is a TV 2020-04-24 16:18:41 +02:00
Nicolas Fella
96f00d4604 Hide plugins if onCreate fails 2020-04-24 16:18:02 +02:00
l10n daemon script
2fe787661c GIT_SILENT made messages (after extraction) 2020-04-24 02:59:33 +02:00
l10n daemon script
f8e6d84757 GIT_SILENT made messages (after extraction) 2020-04-23 02:54:43 +02:00
l10n daemon script
5278fa9036 GIT_SILENT made messages (after extraction) 2020-04-22 02:53:33 +02:00
Albert Vaca
1a247eacc9 Fix trusted networks on Android 10 2020-04-21 20:47:35 +02:00
Albert Vaca
a0636de6c7 Oops 2020-04-21 19:57:44 +02:00
Albert Vaca
e45262d8e6 Bump version to release 2020-04-21 19:48:17 +02:00
Anjani Kumar
74ecab507b Adding a layout file for ClipboardFloatinActivity. It contains an invisible button. 2020-04-21 15:15:49 +05:30
Anjani Kumar
34c80314ed This reverts commit 0fc5d09078. 2020-04-21 15:15:49 +05:30
l10n daemon script
7ddb647aa1 GIT_SILENT made messages (after extraction) 2020-04-21 02:53:14 +02:00
l10n daemon script
8b064f9b77 GIT_SILENT made messages (after extraction) 2020-04-20 02:53:50 +02:00
Vincent Blücher
0728f2d8d2 Android 10: Make SharePlugin usable again
- Due to Android 10 restrictions, background tasks can no longer launch activities
 - Post a notification instead when a URL is received and KDE Connect is not in foreground
2020-04-19 13:26:04 +00:00
l10n daemon script
49478a13d3 GIT_SILENT made messages (after extraction) 2020-04-18 02:52:22 +02:00
Albert Vaca Cintora
bd8a1c9610 Bump version to release 2020-04-17 23:11:12 +02:00
Albert Vaca Cintora
5c38de03ba Fix NPE when calling ClipboardListener.instance().setText()
Which only happens on Android 10 since we skip calling
ClipboardListener.instance().registerObserver()
2020-04-17 23:11:12 +02:00
Albert Vaca Cintora
48092f93bc Fix ConcurrentModificationException 2020-04-17 22:56:34 +02:00
Albert Vaca Cintora
f20fef2459 Fix "Connection closed by peer" crash 2020-04-17 22:56:34 +02:00
Albert Vaca Cintora
9b637eb386 Fix NPE 2020-04-17 22:56:34 +02:00
Albert Vaca Cintora
67944c075c Fix NPE 2020-04-17 22:56:34 +02:00
Albert Vaca Cintora
e4021b4bce Fix NPE 2020-04-17 22:56:34 +02:00
Albert Vaca Cintora
080f511cce Fix NPE 2020-04-17 22:06:48 +02:00
Albert Vaca Cintora
7331bd5392 Disable BigScreen by default 2020-04-17 21:59:42 +02:00
Albert Vaca Cintora
f58b6c5c39 Fix NPE 2020-04-17 21:58:47 +02:00
Albert Vaca Cintora
5808676cd0 Bump version to release 2020-04-17 00:07:27 +02:00
Albert Vaca Cintora
0fc5d09078 Revert send clipboard on Android X
This reverts 3 commits:

"Clipboard Plugin: Added support to send clipboard to multiple devices on Android 10 and later."
b92271105a

"Excluded ClipboardFloatingActivity from App recents Screen"
ee1562050c

"Make Clipboard plugin work in Android X"
b81d3a82e5
2020-04-16 23:55:22 +02:00
Anjani Kumar
b92271105a Clipboard Plugin: Added support to send clipboard to multiple devices on Android 10 and later. 2020-04-14 10:28:57 +05:30
Simon Redman
be34aa6f72 Add ecdh-sha2-nistp384 to mina-sshd's key exchange algorithms 2020-04-13 20:13:31 -07:00
l10n daemon script
c0301eaed1 GIT_SILENT made messages (after extraction) 2020-04-08 02:52:17 +02:00
Abdel-Rahman Abdel-Rahman
bfbe6b55ec Consider subscription id when sending SMS messages 2020-04-07 20:02:12 +00:00
Arjun Thekoot Harisankar
d58dd649e0 Add README.txt having the instructions on how to create a base skeleton for a Plugin 2020-04-07 11:11:05 -07:00
l10n daemon script
18a524971b GIT_SILENT made messages (after extraction) 2020-04-07 02:55:36 +02:00
l10n daemon script
d3ad014e21 GIT_SILENT made messages (after extraction) 2020-04-05 03:02:17 +02:00
l10n daemon script
fcfdec14fb GIT_SILENT made messages (after extraction) 2020-04-03 02:55:22 +02:00
l10n daemon script
d443a0d58d GIT_SILENT made messages (after extraction) 2020-04-02 02:49:19 +02:00
l10n daemon script
5dac72264f GIT_SILENT made messages (after extraction) 2020-04-01 02:53:12 +02:00
l10n daemon script
9f55fd4448 GIT_SILENT made messages (after extraction) 2020-03-31 02:51:14 +02:00
l10n daemon script
c16c2ee494 GIT_SILENT made messages (after extraction) 2020-03-30 02:48:13 +02:00
l10n daemon script
c4ad758110 GIT_SILENT made messages (after extraction) 2020-03-29 04:00:25 +02:00
Sylvia van Os
e3ca5aca57 Initial Bigscreen remote support 2020-03-27 20:33:10 +00:00
Albert Vaca Cintora
cff55ab8dd Fix battery level not being set yet when a request arrived 2020-03-27 15:43:55 +01:00
Nicolas Fella
e716205a48 Restore last player when mpris activity restarts 2020-03-26 13:49:15 +00:00
l10n daemon script
daa0676cbe GIT_SILENT made messages (after extraction) 2020-03-25 02:57:59 +01:00
l10n daemon script
e2e7b6fead GIT_SILENT made messages (after extraction) 2020-03-24 02:49:03 +01:00
l10n daemon script
977b2f9957 GIT_SILENT made messages (after extraction) 2020-03-23 02:43:50 +01:00
Philip Cohn-Cort
23337fb2f4 Target and compile against Android 10.0 (SDK 29) 2020-03-21 22:43:29 -04:00
Philip Cohn-Cort
5e0ae437bb Upgrade gradle plugin for AS 3.6.1 2020-03-21 22:43:29 -04:00
Philip Cohn-Cort
51b5989183 Request v10.2.1 of the butterknife runtime dependency
Note that there haven't been any updates to 'butterknife-compiler' since
the 10.0.0 release.
2020-03-21 22:43:29 -04:00
Philip Cohn-Cort
2c4274ed2a Update gradle wrapper files to match those bundled w/ 5.4.1 2020-03-21 22:43:29 -04:00
Philip Cohn-Cort
7e935a495e Remove old protocol v6 code from DeviceTest.java 2020-03-21 22:43:29 -04:00
Philip Cohn-Cort
06a73ca856 Use gradle.properties to control what kind of code optimization runs 2020-03-21 22:43:29 -04:00
l10n daemon script
753b61860e GIT_SILENT made messages (after extraction) 2020-03-22 02:46:17 +01:00
Albert Vaca Cintora
15773445cc Check for the actual menu item ID 2020-03-21 01:38:28 +01:00
Albert Vaca Cintora
f75ad76e78 Pause origin when continuing on phone
And simplify error cases
2020-03-21 01:30:20 +01:00
Albert Vaca Cintora
5a299376e3 Move "open URL" button to overflow menu 2020-03-21 01:25:19 +01:00
Albert Vaca Cintora
6bdd815c17 Merge branch 'strace/kdeconnect-android-seamless_playback' 2020-03-21 00:50:25 +01:00
Albert Vaca Cintora
c6514ab577 Merge branch 'anjani/kdeconnect-android-clip' 2020-03-20 23:33:09 +01:00
Erik Duisters
4d8e7cadde Use a prefences file per device/plugin combo
Cleanup global plugin preferences after migration to per device preferences
2020-03-20 20:30:58 +00:00
Albert Vaca Cintora
e7651ec9bc Merge branch 'shavez/kdeconnect-android-theme-improvements' 2020-03-20 21:28:37 +01:00
Anjani Kumar
ee1562050c Excluded ClipboardFloatingActivity from App recents Screen 2020-03-19 22:12:08 +05:30
l10n daemon script
e9d96e90a0 GIT_SILENT made messages (after extraction) 2020-03-19 02:43:38 +01:00
Md Shavez
a3b768fdf8 Added colors: secondary and onSecondary according to guidelines of material design 2020-03-17 12:30:25 +05:30
l10n daemon script
27e2a3a31d GIT_SILENT made messages (after extraction) 2020-03-17 02:46:08 +01:00
l10n daemon script
92dcec7883 GIT_SILENT made messages (after extraction) 2020-03-16 02:51:23 +01:00
l10n daemon script
4a678330a5 GIT_SILENT made messages (after extraction) 2020-03-15 02:49:01 +01:00
l10n daemon script
55259ed154 GIT_SILENT made messages (after extraction) 2020-03-14 02:47:21 +01:00
Joscha Henningsen
2c23b92bdd Fix bug concerning incorrect process status when sharing large files (>2.15GB) 2020-03-12 23:46:31 +00:00
Anjani Kumar
b81d3a82e5 Make Clipboard plugin work in Android X
## Summary

Fixes #5

BUG: 417419](https://bugs.kde.org/show_bug.cgi?id=417419)

This patch introduces a workaround to access the restricted clipboard in Android X.
Clipboard synchronisation in KDE Connect was one of the killer features before Android X. An action button is added in the persistent foreground notification **Send Clipboard** which adds the ability to send the clipboard using a small workaround. Clipboard Synchronisation works as usual in lower Android Versions.

This is a very convenient workaround for sending clipboard quickly as it does not requires to open the app. Floating Activity is quite handy for quick actions.

## Details of the workaround

### ClipboardFloatingActivity

* This activity is only executed in Android X.
* This is transparent, accesses the clipboard when in focus.
* Sends a `NetworkPacket` containing *text* and *timestamp*.
* When the packet has been sent, it pops up a toast with a success message.
* Automatically closes after the showing the Toast.

### Reverted changes for Android X.

* Changes done in commits 54be4a1a99 and 9f3b75b748 have been reverted.
* These changes are not required anymore as the workaround for clipboard sync works.

The action button in the notification for **Send Clipboard** is not added in the lower versions of Android. **It is only added in Android X**.

**Two way sync is working in Android X with this patch. Sync works normally in lower Android versions.**

## Test Plan

### Before:

Clipboard from PC to Phones were synchronised but Clipboard of phones didn't get synchronised with the PC.

### After:

The action button is up in Android X while using other apps.

![Screenshot_20200227-150435_Chrome](/uploads/201960e1577321c8a77c9945bd2b5e76/Screenshot_20200227-150435_Chrome.png)

After clicking the button, a cute Toast appears with the message *Clipboard sent*

![Screenshot_20200228-233701_Chrome](/uploads/8da58b1006b95ce82c7cec2c91f32878/Screenshot_20200228-233701_Chrome.png)

I think this is one of the best workarounds available to make this awesome plugin work.
2020-03-12 03:56:37 +00:00
l10n daemon script
61c1629ff0 GIT_SILENT made messages (after extraction) 2020-03-11 02:52:45 +01:00
Simon Redman
36f592a665 [SMS App] Add interface for querying a range of messages
## Summary
This patch adds an interface to return only a specified window of messages.

The current implementation of the conversation interface loads all messages every time the conversation is requested. This is might be painfully slow to load in case the conversation is large or if there are a lot of MMS/RCS messages in the conversation (since those are wildly slower to load than SMS)

Used by https://invent.kde.org/kde/kdeconnect-kde/merge_requests/203 to enable Desktop functionality

## Test Plan

 - With new Android app and old Desktop app:
   - The Android app will notice the missing fields and query for all messages as before.
 - With old Android app and new Desktop app:
   - The desktop will send fields for the new interface which will not be read and all messages will be returned.
 - With new Android app and new Desktop app:
   - The new interface is used and returns only a certain number of messages at a time.

## Known Issues
There is an un-covered corner case if lots of MMS messages are received in the same second (or SMS messages in the same millisecond): Since the interfaces uses timestamps as a filter, it might happen that not all messages sharing the same timestamp are returned. The fact that there are still more messages sharing the timestamp is invisible to the caller. This could be a real-world problem if, for example, a user gets off a plane and their phone downloads a bunch of MMS all at once.
2020-03-11 00:34:31 +00:00
l10n daemon script
2b934af3fa GIT_SILENT made messages (after extraction) 2020-03-04 02:48:50 +01:00
l10n daemon script
34cad4c117 GIT_SILENT made messages (after extraction) 2020-02-26 02:50:14 +01:00
Anjani Kumar
d7f3931eeb Removed extra string resource 2020-02-25 02:46:32 +05:30
Anjani Kumar
0a225d3217 Added a check for RunCommands being empty before adding action button. 2020-02-24 22:39:58 +05:30
Anjani Kumar
e5e0b6dad6 Added two new string resources in strings.xml for two action buttons 2020-02-24 22:39:58 +05:30
Anjani Kumar
e3f0572b9d Adding two action buttons (Send Files/Run Commands) in notification only when there is a single device connected 2020-02-24 22:39:58 +05:30
Albert Vaca
06bce217ac Merge remote-tracking branch 'albertvaka/photo-npe-fix' 2020-02-24 11:41:40 +01:00
l10n daemon script
e1f418e597 GIT_SILENT made messages (after extraction) 2020-02-21 02:41:41 +01:00
Albert Vaca
fb97bb5dbb Merge branch 'work/androidx-bump' 2020-02-18 21:13:06 +01:00
Simon Redman
0d69c0b96c Fix duplicated addresses 2020-02-17 16:34:51 -08:00
l10n daemon script
3dc171632c GIT_SILENT made messages (after extraction) 2020-02-17 02:46:50 +01:00
Dmitriy Bogdanov
4c5114388a Set correct actions in MPRIS notification 2020-02-14 16:14:58 +04:00
Albert Vaca Cintora
546613f4b8 Bump Androidx version
We went over the DEX methods limit, so I enabled Proguard on debug :(
2020-02-09 21:51:56 +01:00
l10n daemon script
4fe2b1b601 GIT_SILENT made messages (after extraction) 2020-02-08 02:48:36 +01:00
l10n daemon script
0b85d80634 GIT_SILENT made messages (after extraction) 2020-02-05 02:48:04 +01:00
l10n daemon script
0ca20767c7 GIT_SILENT made messages (after extraction) 2020-01-28 02:42:08 +01:00
l10n daemon script
519cfd8253 GIT_SILENT made messages (after extraction) 2020-01-25 02:46:28 +01:00
l10n daemon script
c09b310c6b GIT_SILENT made messages (after extraction) 2020-01-21 02:49:00 +01:00
l10n daemon script
c88a9df295 GIT_SILENT made messages (after extraction) 2020-01-20 02:46:40 +01:00
Soul Trace
564251e3cb MprisActivity: Fix "Open URL" button visibility check
It should be checked against empty string, not against null.
2020-01-19 11:39:23 +03:00
Soul Trace
b99082ef00 Let user open in the PC browser media URL to Android device [1/2]
Seek position is preserved for following domains:
youtube.com
youtu.be
pornhub.com
vimeo.com
dailymotion.com
twitch.tv

ic_arrow_black.xml was converted from Kubuntu 19.10 AMD64
breeze-icon-theme package:
/usr/share/icons/breeze-dark/actions/32/arrow.svg
2020-01-18 17:27:49 +00:00
l10n daemon script
6d8faa7c48 GIT_SILENT made messages (after extraction) 2020-01-18 02:47:42 +01:00
l10n daemon script
f2ef2e9047 GIT_SILENT made messages (after extraction) 2020-01-17 02:48:41 +01:00
l10n daemon script
45a5385ee5 GIT_SILENT made messages (after extraction) 2020-01-16 02:45:12 +01:00
Albert Vaca
386c3cec21 Listen to MY_PACKAGE_REPLACED to restart the service on app upgrades.
The old PACKAGE_REPLACED event doesn't work since Oreo [1].

[1] https://developer.android.com/about/versions/oreo/background.html#broadcasts

BUG: 416245
2020-01-15 12:46:22 +01:00
Albert Vaca Cintora
54be4a1a99 Don't load clipboard plugin in Android 10 2020-01-14 23:02:38 +01:00
Albert Vaca Cintora
9f3b75b748 Notify Android 10 users that clipboard won't work 2020-01-14 23:02:38 +01:00
Albert Vaca Cintora
b1e3113343 Allow negative button to not be present 2020-01-14 23:02:38 +01:00
Albert Vaca Cintora
2ee3c543f5 Remove requestCode from get[Optional]PermissionExplanationDialog 2020-01-14 23:02:38 +01:00
l10n daemon script
6a43975951 GIT_SILENT made messages (after extraction) 2020-01-14 02:45:56 +01:00
Albert Vaca
8e28580e93 Release 1.13.7 2020-01-13 17:35:25 +01:00
Albert Vaca
10f94781c3 Only set volume to previousVolume if it has a previous value
onDestroy() would call stopPlaying(), but previousVolume would be 0 (the
default value) if startPlaying() had been never called.
2020-01-13 17:33:15 +01:00
l10n daemon script
2f4dcd1448 GIT_SILENT made messages (after extraction) 2020-01-12 02:48:22 +01:00
Albert Vaca
acbea545d0 Linter fixes 2020-01-10 12:50:23 +01:00
Albert Vaca
aa69b67cfe Fix NPE 2020-01-10 12:50:14 +01:00
l10n daemon script
9c19fd9b41 GIT_SILENT made messages (after extraction) 2020-01-09 02:41:02 +01:00
Nicolas Fella
bb1f79b5e6 Open .itinerary files always in KDE Itinerary 2020-01-07 19:09:56 +00:00
l10n daemon script
f7c78eeb8c GIT_SILENT made messages (after extraction) 2020-01-07 02:51:48 +01:00
Albert Vaca Cintora
510028d738 Do not make all ONLY_ALERT_ONCE notifications silent
Propagate the flag to the desktop so we can use it there to do what it's
supposed to do.

Fixes Whatsapp notifications not showing up in the desktop.
2020-01-05 22:48:36 +01:00
Albert Vaca Cintora
b3d91e083a Merge branch 'albertvaka/trusted-networks'
# Conflicts:
#	AndroidManifest.xml
2020-01-05 22:39:05 +01:00
Albert Vaca Cintora
e37aa08dac Release 1.13.6 2020-01-05 22:34:07 +01:00
Erik Duisters
ad801f1db8 Make FindMyPhone plugin work on Android 10 2020-01-05 17:40:54 +00:00
Albert Vaca Cintora
235e49c80f Fixes as per code review 2020-01-05 17:27:16 +01:00
Rishabh Sharma
d4f35d8bd6 added dark navigation bar for dark mode 2020-01-05 16:02:25 +01:00
l10n daemon script
5cf11c0e75 GIT_SILENT made messages (after extraction) 2019-12-23 02:41:01 +01:00
Erik Duisters
ef55d6d783 Certificate generation fails when locale is set to Arabic 2019-12-22 18:57:36 +00:00
l10n daemon script
f66263d05c GIT_SILENT made messages (after extraction) 2019-12-19 02:38:47 +01:00
l10n daemon script
c292639d36 GIT_SILENT made messages (after extraction) 2019-12-17 02:42:25 +01:00
l10n daemon script
01a8b84087 GIT_SILENT made messages (after extraction) 2019-12-04 02:39:45 +01:00
l10n daemon script
ffea85c740 GIT_SILENT made messages (after extraction) 2019-11-30 02:50:50 +01:00
Albert Vaca Cintora
f6df98d648 Fix NPE 2019-11-25 14:38:38 +01:00
Albert Vaca Cintora
7f0c849fb0 Fix NPE on plugin in onActivityResult 2019-11-25 14:32:27 +01:00
Albert Vaca Cintora
5e37ffe7cd Release 1.13.5 2019-11-24 22:53:49 +01:00
Albert Vaca Cintora
5907517d91 Fix NPE
Apparently removeLink can be called when there are no links already
2019-11-24 22:52:47 +01:00
Albert Vaca Cintora
63d452908f Restrict this to even more version
Anyway, it only seems to be used since Android 10
2019-11-24 22:48:59 +01:00
Albert Vaca
ccda9d468b v1.13.4 2019-11-21 21:38:35 +01:00
Albert Vaca
c3d02adaa4 Fix IllegalArgumentException crashes 2019-11-21 21:38:25 +01:00
Albert Vaca Cintora
733dd604ba Release 1.13.3 2019-11-20 11:50:39 +01:00
Albert Vaca Cintora
f93a0e366f Bump gradle plugin version 2019-11-20 11:40:47 +01:00
Simon Redman
aa735c22b2 Remove Samsung compatibility mode 2019-11-18 22:42:57 -08:00
Ankit Bhardwaj
c78077a416 Fixed snackbar background color when darkmode is off 2019-11-17 23:06:50 +00:00
l10n daemon script
da074f9413 GIT_SILENT made messages (after extraction) 2019-11-14 02:43:15 +01:00
Krzysztof Dziembała
4a0c53610f Fix reading SMS/MMS on devices with no sub_id
Some (Xiaomi) devices running >= Android Lollipop (SDK 22+) don't
support `Telephony.Sms.SUBSCRIPTION_ID`.
This commit adds a verification step to ensure that only devices with
`"sub_id"` column include it in query.

* Address review comments

Check was moved to a separate helper function (boolean), it's
performed only on SDK 22+ and `Telephony.Sms.SUBSCRIPTION_ID`
is used in query (instead of null), so no NullPointerException
is thrown.

Also parseInt shouldn't now fail if `Message.SUBSCRIPTION_ID` key
exists in messageInfo, but value is null

* Return false if cursor is null

* Return true without checking column

If we got the cursor, the query won't fail when executed again, and the "sim_id" column must exist (because an exception wasn't thrown).
2019-11-09 11:27:54 -08:00
l10n daemon script
aa25372e91 GIT_SILENT made messages (after extraction) 2019-11-08 02:47:27 +01:00
Albert Vaca Cintora
125dd14b18 Remove redundant .create() 2019-10-27 23:43:42 +01:00
Albert Vaca Cintora
1448814ed7 Ask for permission, add to settings and notify in main activity 2019-10-27 23:37:40 +01:00
Simon Redman
6f81c67632 Refactor contacts-getting code to be either "everything" or "one"
Fixes bug from mailing list conversation dated 12 October 2019
2019-10-27 21:23:52 +00:00
Juan David Vega
7f8f1bee30 T8539 - Create a new flow to manage trusted networks
Summary: I have created a new activity that allows you to trust all networks or add networks one by one to a list when you are connected to that network

Test Plan:
Test Cases:
1. By default everything should works like it works before, If you uncheck the "Allow all" option in trusted network menu and there isn't any ssid in the trusted
network list the app doesn't send the first udp package and log "Current WiFi isn't a Trusted Network"
2. With the "Allow all" uncheck, use "Add: YOUR_SSID_NAME" button to add your current ssid to the trusted networks list, once you added, go back and the app should
works as always

{F6152314}

1 -> https://youtu.be/ZpCEFTstbJI

2 -> https://youtu.be/cVB1LXlFVyk

Reviewers: #kde_connect, jdvr

Subscribers: sredman, albertvaka, nicolasfella, apol, kdeconnect

Tags: #kde_connect

Maniphest Tasks: T8539

Differential Revision: https://phabricator.kde.org/D13505
2019-10-27 22:16:12 +01:00
Albert Vaca Cintora
1d5c280401 Update gradle plugin 2019-10-27 20:39:49 +01:00
Albert Vaca Cintora
432294c64c Broacast when we open the app but ratelimit broadcasts
Reviewed-by: Aleix Pol
2019-10-25 21:22:10 +02:00
Albert Vaca Cintora
d16293cca5 Add missing setEnabled(true)
The second time we entered the screen pull-to-refresh wasn't working

Reviewed-by: Aleix Pol
2019-10-25 20:18:46 +02:00
Albert Vaca Cintora
dd5fb954bc Don't use sender if not there
Reviewed-by: Aleix Pol
2019-10-25 20:09:26 +02:00
Simon Redman
b1c6df405c Delete broken getVCardsFast
This method does not work because the API doesn't provide the information we need.

If we decide to ressurect it, we can look this commit up later.

#TIMECAPSULE
2019-10-19 09:01:10 -07:00
Albert Vaca
418e1841f3 Actually read the "open" boolean
After sending a file, sending more was broken.
2019-10-13 21:41:31 +02:00
Albert Vaca Cintora
f2064aaef8 Honour FLAG_ONLY_ALERT_ONCE
Reviewed by Aleix Pol
2019-10-12 19:15:37 +02:00
Łukasz Patron
d1b892f368 Support ACTION_SEEK_TO in mpris media session 2019-10-12 14:55:50 +02:00
l10n daemon script
b5a1424206 GIT_SILENT made messages (after extraction) 2019-10-12 02:42:34 +02:00
l10n daemon script
b367e5d38e GIT_SILENT made messages (after extraction) 2019-10-10 02:43:06 +02:00
Simon Redman
a2ccafbdf8 Add information for bug reporting to README 2019-10-08 20:21:01 -07:00
l10n daemon script
da55b11c22 GIT_SILENT made messages (after extraction) 2019-10-06 02:38:36 +02:00
l10n daemon script
cf968a70ea GIT_SILENT made messages (after extraction) 2019-10-03 02:35:29 +02:00
l10n daemon script
7b78a4c78a GIT_SILENT made messages (after extraction) 2019-09-29 02:39:19 +02:00
l10n daemon script
9fcda1ec6f GIT_SILENT made messages (after extraction) 2019-09-27 02:37:00 +02:00
l10n daemon script
e359d59bdd GIT_SILENT made messages (after extraction) 2019-09-25 02:37:07 +02:00
l10n daemon script
ce7105ef89 GIT_SILENT made messages (after extraction) 2019-09-24 02:41:47 +02:00
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
690 changed files with 33302 additions and 13293 deletions

View File

@@ -1,3 +0,0 @@
{
"phabricator.uri" : "https://phabricator.kde.org/project/profile/159/"
}

1
.gitattributes vendored Normal file
View File

@@ -0,0 +1 @@
*.bat text eol=crlf

2
.gitignore vendored
View File

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

66
.gitlab-ci.yml Normal file
View File

@@ -0,0 +1,66 @@
# SPDX-FileCopyrightText: 2023 Nicolas Fella <nicolas.fella@gmx.de>
# SPDX-FileCopyrightText: 2023 Simon Redman <simon@ergotech.com>
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
#
# Test this pipeline locally by:
# - Set up Docker on your machine, if not already set up
# - Set up gitlab-runner, as described here: https://stackoverflow.com/a/52724374
# - Run `gitlab-runner exec docker --docker-privileged assembleDebug`
image: eclipse-temurin:17-jdk-focal
variables:
ANDROID_COMPILE_SDK: "31"
ANDROID_BUILD_TOOLS: "30.0.3"
ANDROID_SDK_TOOLS: "6609375"
before_script:
- apt-get --quiet update --yes
- apt-get --quiet install --yes wget tar unzip lib32stdc++6 lib32z1
- wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/commandlinetools-linux-6609375_latest.zip
- unzip -d cmdline-tools android-sdk.zip
- echo y | cmdline-tools/tools/bin/sdkmanager "platforms;android-${ANDROID_COMPILE_SDK}" >/dev/null
- echo y | cmdline-tools/tools/bin/sdkmanager "platform-tools" >/dev/null
- echo y | cmdline-tools/tools/bin/sdkmanager "patcher;v4" >/dev/null
- echo y | cmdline-tools/tools/bin/sdkmanager "emulator" >/dev/null
- echo y | cmdline-tools/tools/bin/sdkmanager "platform-tools" >/dev/null
- echo y | cmdline-tools/tools/bin/sdkmanager "tools" >/dev/null
- echo y | cmdline-tools/tools/bin/sdkmanager "build-tools;${ANDROID_BUILD_TOOLS}" >/dev/null
- export ANDROID_HOME=$PWD/cmdline-tools
- export PATH=$PATH:$PWD/cmdline-tools/platform-tools/
- chmod +x ./gradlew
# temporarily disable checking for EPIPE error and use yes to accept all licenses
- set +o pipefail
- yes | cmdline-tools/tools/bin/sdkmanager --licenses
# Gradle will automatically download parts of the SDK if they are missing,
# assuming the licenses are accepted. Even if you don't need it to download
# anything, it will fail if it detects the liceses are not accepted.
# https://developer.android.com/studio/intro/update.html#download-with-gradle
# Unfortunately, it looks for the license acceptances in a different location than
# the sdkmanager creates them!
# Copy them to the location Gradle expects to find them to make everything run smoothly.
- cp -ap "${PWD}/licenses" "${PWD}/cmdline-tools/licenses"
- set -o pipefail
stages:
- build
- test
lintDebug:
stage: build
script:
- ./gradlew generateLicenseReport
- ./gradlew -Pci --console=plain lintDebug -PbuildDir=lint
assembleDebug:
stage: build
script:
- ./gradlew assembleDebug
artifacts:
paths:
- build/outputs/
debugTests:
stage: test
script:
- ./gradlew -Pci --console=plain testDebug

View File

@@ -1,3 +0,0 @@
REVIEWBOARD_URL = "https://git.reviewboard.kde.org"
REPOSITORY = 'git://anongit.kde.org/kdeconnect-android'
TARGET_GROUPS = 'kdeconnect'

View File

@@ -1,15 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.kde.kdeconnect_tp"
android:versionCode="11290"
android:versionName="1.12.9">
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:xlargeScreens="true" />
<!--
SPDX-FileCopyrightText: 2023 Albert Vaca Cintora <albertvaka@gmail.com>
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:versionCode="12800"
android:versionName="1.28.0">
<uses-feature
android:name="android.hardware.telephony"
@@ -20,6 +20,9 @@
<!-- <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_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
@@ -28,24 +31,62 @@
<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.READ_CALL_LOG" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECEIVE_MMS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" tools:ignore="QueryAllPackagesPermission" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.READ_LOGS" tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" tools:ignore="ScopedStorage" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<application
android:icon="@drawable/icon"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:label="KDE Connect"
android:supportsRtl="true"
android:allowBackup="false"
android:dataExtractionRules="@xml/data_extraction_rules"
android:networkSecurityConfig="@xml/network_security_config"
android:theme="@style/KdeConnectTheme">
android:theme="@style/KdeConnectTheme.NoActionBar"
android:name="org.kde.kdeconnect.KdeConnect"
android:enableOnBackInvokedCallback="true">
<receiver
android:name="com.android.mms.transaction.PushReceiver"
android:exported="true"
android:permission="android.permission.BROADCAST_WAP_PUSH">
<intent-filter>
<action android:name="android.provider.Telephony.WAP_PUSH_DELIVER" />
<data android:mimeType="application/vnd.wap.mms-message" />
</intent-filter>
</receiver>
<service
android:name="com.android.mms.transaction.TransactionService"
android:enabled="true"
android:exported="true" />
<service
android:name="org.kde.kdeconnect.BackgroundService"
android:foregroundServiceType="connectedDevice"
android:icon="@drawable/icon"
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:exported="true"
android:permission="android.permission.BIND_INPUT_METHOD">
<intent-filter>
<action android:name="android.view.InputMethod" />
@@ -59,6 +100,7 @@
<activity
android:name="org.kde.kdeconnect.UserInterface.MainActivity"
android:label="KDE Connect"
android:exported="true"
android:theme="@style/KdeConnectTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -69,6 +111,7 @@
<activity
android:name="org.kde.kdeconnect.UserInterface.PluginSettingsActivity"
android:label="@string/device_menu_plugins"
android:exported="false"
android:parentActivityName="org.kde.kdeconnect.UserInterface.MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
@@ -77,6 +120,7 @@
<activity
android:name="org.kde.kdeconnect.UserInterface.CustomDevicesActivity"
android:label="@string/custom_devices_settings"
android:exported="false"
android:parentActivityName="org.kde.kdeconnect.UserInterface.MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
@@ -85,20 +129,17 @@
<activity
android:name="org.kde.kdeconnect.Plugins.SharePlugin.SendFileActivity"
android:label="KDE Connect"
android:exported="true"
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.KdeConnectBroadcastReceiver">
<receiver android:name="org.kde.kdeconnect.KdeConnectBroadcastReceiver"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<data
android:host="kdeconnect"
android:path="/"
android:scheme="package" />
<action android:name="android.intent.action.MY_PACKAGE_REPLACED"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
@@ -118,19 +159,33 @@
android:label="@string/findmyphone_title"
android:launchMode="singleInstance" />
<receiver android:name="org.kde.kdeconnect.Plugins.FindMyPhonePlugin.FindMyPhoneReceiver"
android:exported="true">
<intent-filter>
<action android:name="org.kde.kdeconnect.Plugins.FindMyPhonePlugin.foundIt" />
</intent-filter>
</receiver>
<!-- Plugin-related activities and services -->
<activity
android:name="org.kde.kdeconnect.Plugins.ClibpoardPlugin.ClipboardFloatingActivity"
android:theme="@style/Theme.Transparent"
android:excludeFromRecents="true"/>
<activity
android:name="org.kde.kdeconnect.Plugins.MprisPlugin.MprisActivity"
android:label="@string/open_mpris_controls"
android:launchMode="singleTop"
android:theme="@style/KdeConnectTheme.NoActionBar"
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">
<receiver android:name="org.kde.kdeconnect.Plugins.MprisPlugin.MprisMediaNotificationReceiver"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
@@ -139,28 +194,30 @@
<activity
android:name="org.kde.kdeconnect.Plugins.RunCommandPlugin.RunCommandActivity"
android:label="@string/pref_plugin_runcommand"
android:exported="false"
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:name="org.kde.kdeconnect.Plugins.RunCommandPlugin.RunCommandWidgetConfigActivity"
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" />
android:theme="@style/Theme.Material3.DayNight.Dialog" />
<service
android:name="org.kde.kdeconnect.Plugins.RunCommandPlugin.RunCommandWidgetDataProviderService"
android:name="org.kde.kdeconnect.Plugins.RunCommandPlugin.CommandsRemoteViewsService"
android:exported="false"
android:permission="android.permission.BIND_REMOTEVIEWS" />
<receiver
android:name="org.kde.kdeconnect.Plugins.RunCommandPlugin.RunCommandWidget"
android:label="@string/pref_plugin_runcommand">
android:name="org.kde.kdeconnect.Plugins.RunCommandPlugin.RunCommandWidgetProvider"
android:label="@string/pref_plugin_runcommand"
android:exported="true">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
@@ -173,7 +230,8 @@
android:resource="@xml/remotecommandplugin_widget" />
</receiver>
<activity android:name="org.kde.kdeconnect.Plugins.RunCommandPlugin.RunCommandUrlActivity">
<activity android:name="org.kde.kdeconnect.Plugins.RunCommandPlugin.RunCommandUrlActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
@@ -186,18 +244,57 @@
android:scheme="kdeconnect" />
</intent-filter>
</activity>
<activity
android:name="org.kde.kdeconnect.Plugins.BigscreenPlugin.BigscreenActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/pref_plugin_bigscreen"
android:exported="true"
android:parentActivityName="org.kde.kdeconnect.UserInterface.MainActivity"
android:windowSoftInputMode="stateHidden|adjustResize">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="org.kde.kdeconnect.UserInterface.MainActivity" />
</activity>
<activity
android:name="org.kde.kdeconnect.Plugins.MousePadPlugin.MousePadActivity"
android:label="@string/pref_plugin_mousepad"
android:exported="false"
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>
<activity
android:name="org.kde.kdeconnect.Plugins.MousePadPlugin.ComposeSendActivity"
android:label="@string/compose_send_title"
android:exported="false"
android:parentActivityName="org.kde.kdeconnect.Plugins.MousePadPlugin.MousePadActivity"
android:windowSoftInputMode="adjustResize">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="org.kde.kdeconnect.Plugins.MousePadPlugin.MousePadActivity" />
</activity>
<activity
android:name="org.kde.kdeconnect.Plugins.MousePadPlugin.SendKeystrokesToHostActivity"
android:label="@string/pref_plugin_mousepad_send_keystrokes"
android:exported="true"
android:parentActivityName="org.kde.kdeconnect.UserInterface.MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="org.kde.kdeconnect.UserInterface.MainActivity" />
<!-- Accept data with "text/x-keystrokes" to send the text to the connected host and emulate keystrokes -->
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/x-keystrokes"/>
</intent-filter>
</activity>
<activity
android:name="org.kde.kdeconnect.Plugins.PresenterPlugin.PresenterActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/pref_plugin_presenter"
android:exported="false"
android:parentActivityName="org.kde.kdeconnect.UserInterface.MainActivity"
android:windowSoftInputMode="stateHidden|adjustResize">
<meta-data
@@ -206,7 +303,8 @@
</activity>
<activity
android:name="org.kde.kdeconnect.Plugins.SharePlugin.ShareActivity"
android:label="KDE Connect">
android:exported="true"
android:label="@string/manifest_label_share">
<intent-filter>
<action android:name="android.intent.action.SEND" />
@@ -227,7 +325,8 @@
android:value="org.kde.kdeconnect.Plugins.SharePlugin.ShareChooserTargetService" />
</activity>
<receiver android:name="org.kde.kdeconnect.Plugins.SharePlugin.ShareBroadcastReceiver">
<receiver android:name="org.kde.kdeconnect.Plugins.SharePlugin.ShareBroadcastReceiver"
android:exported="true">
<intent-filter>
<action android:name="org.kde.kdeconnect.Plugins.SharePlugin.CancelShare" />
</intent-filter>
@@ -245,6 +344,7 @@
<service
android:name="org.kde.kdeconnect.Plugins.NotificationsPlugin.NotificationReceiver"
android:exported="true"
android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
<intent-filter>
<action android:name="android.service.notification.NotificationListenerService" />
@@ -252,11 +352,23 @@
</service>
<service
android:name="org.kde.kdeconnect.Plugins.SharePlugin.ShareChooserTargetService"
android:exported="true"
android:permission="android.permission.BIND_CHOOSER_TARGET_SERVICE">
<intent-filter>
<action android:name="android.service.chooser.ChooserTargetService" />
</intent-filter>
</service>
<service
android:name="org.kde.kdeconnect.Plugins.MouseReceiverPlugin.MouseReceiverService"
android:exported="true"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
<meta-data
android:name="android.accessibilityservice"
android:resource="@xml/mouse_receiver_service" />
</service>
<activity
android:name="org.kde.kdeconnect.Plugins.NotificationsPlugin.NotificationFilterActivity"
@@ -266,8 +378,64 @@
android:name="android.support.PARENT_ACTIVITY"
android:value="org.kde.kdeconnect.UserInterface.PluginSettingsActivity" />
</activity>
<activity android:name="org.kde.kdeconnect.Plugins.PhotoPlugin.PhotoActivity" />
<activity
android:name="org.kde.kdeconnect.UserInterface.TrustedNetworksActivity"
android:label="@string/trusted_networks"
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.UserInterface.About.EasterEggActivity"
android:label="@string/easter_egg"
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.UserInterface.About.AboutKDEActivity"
android:label="@string/about_kde"
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.UserInterface.About.LicensesActivity"
android:label="@string/licenses"
android:parentActivityName="org.kde.kdeconnect.UserInterface.MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="org.kde.kdeconnect.UserInterface.MainActivity" />
</activity>
<service
android:name="org.kde.kdeconnect.Plugins.ClibpoardPlugin.ClipboardTileService"
android:icon="@drawable/ic_baseline_content_paste_24"
android:exported="true"
android:label="@string/send_clipboard"
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
<intent-filter>
<action android:name="android.service.quicksettings.action.QS_TILE" />
</intent-filter>
</service>
<service android:name="org.kde.kdeconnect.Plugins.RunCommandPlugin.RunCommandControlsProviderService"
android:label="@string/kde_connect"
android:exported="true"
android:permission="android.permission.BIND_CONTROLS">
<intent-filter>
<action android:name="android.service.controls.ControlsProviderService" />
</intent-filter>
</service>
</application>
</manifest>
</manifest>

208
LICENSES/Apache-2.0.txt Normal file
View File

@@ -0,0 +1,208 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION,
AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction, and distribution
as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by the copyright
owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all other entities
that control, are controlled by, or are under common control with that entity.
For the purposes of this definition, "control" means (i) the power, direct
or indirect, to cause the direction or management of such entity, whether
by contract or otherwise, or (ii) ownership of fifty percent (50%) or more
of the outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity exercising permissions
granted by this License.
"Source" form shall mean the preferred form for making modifications, including
but not limited to software source code, documentation source, and configuration
files.
"Object" form shall mean any form resulting from mechanical transformation
or translation of a Source form, including but not limited to compiled object
code, generated documentation, and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or Object form,
made available under the License, as indicated by a copyright notice that
is included in or attached to the work (an example is provided in the Appendix
below).
"Derivative Works" shall mean any work, whether in Source or Object form,
that is based on (or derived from) the Work and for which the editorial revisions,
annotations, elaborations, or other modifications represent, as a whole, an
original work of authorship. For the purposes of this License, Derivative
Works shall not include works that remain separable from, or merely link (or
bind by name) to the interfaces of, the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including the original version
of the Work and any modifications or additions to that Work or Derivative
Works thereof, that is intentionally submitted to Licensor for inclusion in
the Work by the copyright owner or by an individual or Legal Entity authorized
to submit on behalf of the copyright owner. For the purposes of this definition,
"submitted" means any form of electronic, verbal, or written communication
sent to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems, and
issue tracking systems that are managed by, or on behalf of, the Licensor
for the purpose of discussing and improving the Work, but excluding communication
that is conspicuously marked or otherwise designated in writing by the copyright
owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf
of whom a Contribution has been received by Licensor and subsequently incorporated
within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of this
License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive,
no-charge, royalty-free, irrevocable copyright license to reproduce, prepare
Derivative Works of, publicly display, publicly perform, sublicense, and distribute
the Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of this License,
each Contributor hereby grants to You a perpetual, worldwide, non-exclusive,
no-charge, royalty-free, irrevocable (except as stated in this section) patent
license to make, have made, use, offer to sell, sell, import, and otherwise
transfer the Work, where such license applies only to those patent claims
licensable by such Contributor that are necessarily infringed by their Contribution(s)
alone or by combination of their Contribution(s) with the Work to which such
Contribution(s) was submitted. If You institute patent litigation against
any entity (including a cross-claim or counterclaim in a lawsuit) alleging
that the Work or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses granted to You
under this License for that Work shall terminate as of the date such litigation
is filed.
4. Redistribution. You may reproduce and distribute copies of the Work or
Derivative Works thereof in any medium, with or without modifications, and
in Source or Object form, provided that You meet the following conditions:
(a) You must give any other recipients of the Work or Derivative Works a copy
of this License; and
(b) You must cause any modified files to carry prominent notices stating that
You changed the files; and
(c) You must retain, in the Source form of any Derivative Works that You distribute,
all copyright, patent, trademark, and attribution notices from the Source
form of the Work, excluding those notices that do not pertain to any part
of the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its distribution,
then any Derivative Works that You distribute must include a readable copy
of the attribution notices contained within such NOTICE file, excluding those
notices that do not pertain to any part of the Derivative Works, in at least
one of the following places: within a NOTICE text file distributed as part
of the Derivative Works; within the Source form or documentation, if provided
along with the Derivative Works; or, within a display generated by the Derivative
Works, if and wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and do not modify the
License. You may add Your own attribution notices within Derivative Works
that You distribute, alongside or as an addendum to the NOTICE text from the
Work, provided that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and may provide
additional or different license terms and conditions for use, reproduction,
or distribution of Your modifications, or for any such Derivative Works as
a whole, provided Your use, reproduction, and distribution of the Work otherwise
complies with the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise, any
Contribution intentionally submitted for inclusion in the Work by You to the
Licensor shall be under the terms and conditions of this License, without
any additional terms or conditions. Notwithstanding the above, nothing herein
shall supersede or modify the terms of any separate license agreement you
may have executed with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade names,
trademarks, service marks, or product names of the Licensor, except as required
for reasonable and customary use in describing the origin of the Work and
reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or agreed to
in writing, Licensor provides the Work (and each Contributor provides its
Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied, including, without limitation, any warranties
or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR
A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness
of using or redistributing the Work and assume any risks associated with Your
exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory, whether
in tort (including negligence), contract, or otherwise, unless required by
applicable law (such as deliberate and grossly negligent acts) or agreed to
in writing, shall any Contributor be liable to You for damages, including
any direct, indirect, special, incidental, or consequential damages of any
character arising as a result of this License or out of the use or inability
to use the Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all other commercial
damages or losses), even if such Contributor has been advised of the possibility
of such damages.
9. Accepting Warranty or Additional Liability. While redistributing the Work
or Derivative Works thereof, You may choose to offer, and charge a fee for,
acceptance of support, warranty, indemnity, or other liability obligations
and/or rights consistent with this License. However, in accepting such obligations,
You may act only on Your own behalf and on Your sole responsibility, not on
behalf of any other Contributor, and only if You agree to indemnify, defend,
and hold each Contributor harmless for any liability incurred by, or claims
asserted against, such Contributor by reason of your accepting any such warranty
or additional liability. END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following boilerplate
notice, with the fields enclosed by brackets "[]" replaced with your own identifying
information. (Don't include the brackets!) The text should be enclosed in
the appropriate comment syntax for the file format. We also recommend that
a file or class name and description of purpose be included on the same "printed
page" as the copyright notice for easier identification within third-party
archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

319
LICENSES/GPL-2.0-only.txt Normal file
View File

@@ -0,0 +1,319 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
Everyone is permitted to copy and distribute verbatim copies of this license
document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your freedom to share
and change it. By contrast, the GNU General Public License is intended to
guarantee your freedom to share and change free software--to make sure the
software is free for all its users. This General Public License applies to
most of the Free Software Foundation's software and to any other program whose
authors commit to using it. (Some other Free Software Foundation software
is covered by the GNU Lesser General Public License instead.) You can apply
it to your programs, too.
When we speak of free software, we are referring to freedom, not price. Our
General Public Licenses are designed to make sure that you have the freedom
to distribute copies of free software (and charge for this service if you
wish), that you receive source code or can get it if you want it, that you
can change the software or use pieces of it in new free programs; and that
you know you can do these things.
To protect your rights, we need to make restrictions that forbid anyone to
deny you these rights or to ask you to surrender the rights. These restrictions
translate to certain responsibilities for you if you distribute copies of
the software, or if you modify it.
For example, if you distribute copies of such a program, whether gratis or
for a fee, you must give the recipients all the rights that you have. You
must make sure that they, too, receive or can get the source code. And you
must show them these terms so they know their rights.
We protect your rights with two steps: (1) copyright the software, and (2)
offer you this license which gives you legal permission to copy, distribute
and/or modify the software.
Also, for each author's protection and ours, we want to make certain that
everyone understands that there is no warranty for this free software. If
the software is modified by someone else and passed on, we want its recipients
to know that what they have is not the original, so that any problems introduced
by others will not reflect on the original authors' reputations.
Finally, any free program is threatened constantly by software patents. We
wish to avoid the danger that redistributors of a free program will individually
obtain patent licenses, in effect making the program proprietary. To prevent
this, we have made it clear that any patent must be licensed for everyone's
free use or not licensed at all.
The precise terms and conditions for copying, distribution and modification
follow.
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains a notice
placed by the copyright holder saying it may be distributed under the terms
of this General Public License. The "Program", below, refers to any such program
or work, and a "work based on the Program" means either the Program or any
derivative work under copyright law: that is to say, a work containing the
Program or a portion of it, either verbatim or with modifications and/or translated
into another language. (Hereinafter, translation is included without limitation
in the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not covered
by this License; they are outside its scope. The act of running the Program
is not restricted, and the output from the Program is covered only if its
contents constitute a work based on the Program (independent of having been
made by running the Program). Whether that is true depends on what the Program
does.
1. You may copy and distribute verbatim copies of the Program's source code
as you receive it, in any medium, provided that you conspicuously and appropriately
publish on each copy an appropriate copyright notice and disclaimer of warranty;
keep intact all the notices that refer to this License and to the absence
of any warranty; and give any other recipients of the Program a copy of this
License along with the Program.
You may charge a fee for the physical act of transferring a copy, and you
may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion of it,
thus forming a work based on the Program, and copy and distribute such modifications
or work under the terms of Section 1 above, provided that you also meet all
of these conditions:
a) You must cause the modified files to carry prominent notices stating that
you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in whole or
in part contains or is derived from the Program or any part thereof, to be
licensed as a whole at no charge to all third parties under the terms of this
License.
c) If the modified program normally reads commands interactively when run,
you must cause it, when started running for such interactive use in the most
ordinary way, to print or display an announcement including an appropriate
copyright notice and a notice that there is no warranty (or else, saying that
you provide a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this License.
(Exception: if the Program itself is interactive but does not normally print
such an announcement, your work based on the Program is not required to print
an announcement.)
These requirements apply to the modified work as a whole. If identifiable
sections of that work are not derived from the Program, and can be reasonably
considered independent and separate works in themselves, then this License,
and its terms, do not apply to those sections when you distribute them as
separate works. But when you distribute the same sections as part of a whole
which is a work based on the Program, the distribution of the whole must be
on the terms of this License, whose permissions for other licensees extend
to the entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest your
rights to work written entirely by you; rather, the intent is to exercise
the right to control the distribution of derivative or collective works based
on the Program.
In addition, mere aggregation of another work not based on the Program with
the Program (or with a work based on the Program) on a volume of a storage
or distribution medium does not bring the other work under the scope of this
License.
3. You may copy and distribute the Program (or a work based on it, under Section
2) in object code or executable form under the terms of Sections 1 and 2 above
provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable source code,
which must be distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three years, to give
any third party, for a charge no more than your cost of physically performing
source distribution, a complete machine-readable copy of the corresponding
source code, to be distributed under the terms of Sections 1 and 2 above on
a medium customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer to distribute
corresponding source code. (This alternative is allowed only for noncommercial
distribution and only if you received the program in object code or executable
form with such an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for making
modifications to it. For an executable work, complete source code means all
the source code for all modules it contains, plus any associated interface
definition files, plus the scripts used to control compilation and installation
of the executable. However, as a special exception, the source code distributed
need not include anything that is normally distributed (in either source or
binary form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component itself
accompanies the executable.
If distribution of executable or object code is made by offering access to
copy from a designated place, then offering equivalent access to copy the
source code from the same place counts as distribution of the source code,
even though third parties are not compelled to copy the source along with
the object code.
4. You may not copy, modify, sublicense, or distribute the Program except
as expressly provided under this License. Any attempt otherwise to copy, modify,
sublicense or distribute the Program is void, and will automatically terminate
your rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses terminated
so long as such parties remain in full compliance.
5. You are not required to accept this License, since you have not signed
it. However, nothing else grants you permission to modify or distribute the
Program or its derivative works. These actions are prohibited by law if you
do not accept this License. Therefore, by modifying or distributing the Program
(or any work based on the Program), you indicate your acceptance of this License
to do so, and all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the Program),
the recipient automatically receives a license from the original licensor
to copy, distribute or modify the Program subject to these terms and conditions.
You may not impose any further restrictions on the recipients' exercise of
the rights granted herein. You are not responsible for enforcing compliance
by third parties to this License.
7. If, as a consequence of a court judgment or allegation of patent infringement
or for any other reason (not limited to patent issues), conditions are imposed
on you (whether by court order, agreement or otherwise) that contradict the
conditions of this License, they do not excuse you from the conditions of
this License. If you cannot distribute so as to satisfy simultaneously your
obligations under this License and any other pertinent obligations, then as
a consequence you may not distribute the Program at all. For example, if a
patent license would not permit royalty-free redistribution of the Program
by all those who receive copies directly or indirectly through you, then the
only way you could satisfy both it and this License would be to refrain entirely
from distribution of the Program.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply and
the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any patents
or other property right claims or to contest validity of any such claims;
this section has the sole purpose of protecting the integrity of the free
software distribution system, which is implemented by public license practices.
Many people have made generous contributions to the wide range of software
distributed through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing to
distribute software through any other system and a licensee cannot impose
that choice.
This section is intended to make thoroughly clear what is believed to be a
consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in certain
countries either by patents or by copyrighted interfaces, the original copyright
holder who places the Program under this License may add an explicit geographical
distribution limitation excluding those countries, so that distribution is
permitted only in or among countries not thus excluded. In such case, this
License incorporates the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions of
the General Public License from time to time. Such new versions will be similar
in spirit to the present version, but may differ in detail to address new
problems or concerns.
Each version is given a distinguishing version number. If the Program specifies
a version number of this License which applies to it and "any later version",
you have the option of following the terms and conditions either of that version
or of any later version published by the Free Software Foundation. If the
Program does not specify a version number of this License, you may choose
any version ever published by the Free Software Foundation.
10. If you wish to incorporate parts of the Program into other free programs
whose distribution conditions are different, write to the author to ask for
permission. For software which is copyrighted by the Free Software Foundation,
write to the Free Software Foundation; we sometimes make exceptions for this.
Our decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing and reuse
of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM
"AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE
OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE
OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA
OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES
OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH
HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest possible
use to the public, the best way to achieve this is to make it free software
which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest to attach
them to the start of each source file to most effectively convey the exclusion
of warranty; and each file should have at least the "copyright" line and a
pointer to where the full notice is found.
<one line to give the program's name and an idea of what it does.>
Copyright (C)< yyyy> <name of author>
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
Street, Fifth Floor, Boston, MA 02110-1301, USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this when
it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author Gnomovision comes
with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software,
and you are welcome to redistribute it under certain conditions; type `show
c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may be
called something other than `show w' and `show c'; they could even be mouse-clicks
or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your school,
if any, to sign a "copyright disclaimer" for the program, if necessary. Here
is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision'
(which makes passes at compilers) written by James Hacker.
<signature of Ty Coon >, 1 April 1989 Ty Coon, President of Vice This General
Public License does not permit incorporating your program into proprietary
programs. If your program is a subroutine library, you may consider it more
useful to permit linking proprietary applications with the library. If this
is what you want to do, use the GNU Lesser General Public License instead
of this License.

625
LICENSES/GPL-3.0-only.txt Normal file
View File

@@ -0,0 +1,625 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright © 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies of this license
document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for software and
other kinds of works.
The licenses for most software and other practical works are designed to take
away your freedom to share and change the works. By contrast, the GNU General
Public License is intended to guarantee your freedom to share and change all
versions of a program--to make sure it remains free software for all its users.
We, the Free Software Foundation, use the GNU General Public License for most
of our software; it applies also to any other work released this way by its
authors. You can apply it to your programs, too.
When we speak of free software, we are referring to freedom, not price. Our
General Public Licenses are designed to make sure that you have the freedom
to distribute copies of free software (and charge for them if you wish), that
you receive source code or can get it if you want it, that you can change
the software or use pieces of it in new free programs, and that you know you
can do these things.
To protect your rights, we need to prevent others from denying you these rights
or asking you to surrender the rights. Therefore, you have certain responsibilities
if you distribute copies of the software, or if you modify it: responsibilities
to respect the freedom of others.
For example, if you distribute copies of such a program, whether gratis or
for a fee, you must pass on to the recipients the same freedoms that you received.
You must make sure that they, too, receive or can get the source code. And
you must show them these terms so they know their rights.
Developers that use the GNU GPL protect your rights with two steps: (1) assert
copyright on the software, and (2) offer you this License giving you legal
permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains that
there is no warranty for this free software. For both users' and authors'
sake, the GPL requires that modified versions be marked as changed, so that
their problems will not be attributed erroneously to authors of previous versions.
Some devices are designed to deny users access to install or run modified
versions of the software inside them, although the manufacturer can do so.
This is fundamentally incompatible with the aim of protecting users' freedom
to change the software. The systematic pattern of such abuse occurs in the
area of products for individuals to use, which is precisely where it is most
unacceptable. Therefore, we have designed this version of the GPL to prohibit
the practice for those products. If such problems arise substantially in other
domains, we stand ready to extend this provision to those domains in future
versions of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents. States
should not allow patents to restrict development and use of software on general-purpose
computers, but in those that do, we wish to avoid the special danger that
patents applied to a free program could make it effectively proprietary. To
prevent this, the GPL assures that patents cannot be used to render the program
non-free.
The precise terms and conditions for copying, distribution and modification
follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of works,
such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this License.
Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals
or organizations.
To "modify" a work means to copy from or adapt all or part of the work in
a fashion requiring copyright permission, other than the making of an exact
copy. The resulting work is called a "modified version" of the earlier work
or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based on the
Program.
To "propagate" a work means to do anything with it that, without permission,
would make you directly or secondarily liable for infringement under applicable
copyright law, except executing it on a computer or modifying a private copy.
Propagation includes copying, distribution (with or without modification),
making available to the public, and in some countries other activities as
well.
To "convey" a work means any kind of propagation that enables other parties
to make or receive copies. Mere interaction with a user through a computer
network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices" to the
extent that it includes a convenient and prominently visible feature that
(1) displays an appropriate copyright notice, and (2) tells the user that
there is no warranty for the work (except to the extent that warranties are
provided), that licensees may convey the work under this License, and how
to view a copy of this License. If the interface presents a list of user commands
or options, such as a menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work for making
modifications to it. "Object code" means any non-source form of a work.
A "Standard Interface" means an interface that either is an official standard
defined by a recognized standards body, or, in the case of interfaces specified
for a particular programming language, one that is widely used among developers
working in that language.
The "System Libraries" of an executable work include anything, other than
the work as a whole, that (a) is included in the normal form of packaging
a Major Component, but which is not part of that Major Component, and (b)
serves only to enable use of the work with that Major Component, or to implement
a Standard Interface for which an implementation is available to the public
in source code form. A "Major Component", in this context, means a major essential
component (kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to produce
the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all the source
code needed to generate, install, and (for an executable work) run the object
code and to modify the work, including scripts to control those activities.
However, it does not include the work's System Libraries, or general-purpose
tools or generally available free programs which are used unmodified in performing
those activities but which are not part of the work. For example, Corresponding
Source includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically linked
subprograms that the work is specifically designed to require, such as by
intimate data communication or control flow between those subprograms and
other parts of the work.
The Corresponding Source need not include anything that users can regenerate
automatically from other parts of the Corresponding Source.
The Corresponding Source for a work in source code form is that same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of copyright
on the Program, and are irrevocable provided the stated conditions are met.
This License explicitly affirms your unlimited permission to run the unmodified
Program. The output from running a covered work is covered by this License
only if the output, given its content, constitutes a covered work. This License
acknowledges your rights of fair use or other equivalent, as provided by copyright
law.
You may make, run and propagate covered works that you do not convey, without
conditions so long as your license otherwise remains in force. You may convey
covered works to others for the sole purpose of having them make modifications
exclusively for you, or provide you with facilities for running those works,
provided that you comply with the terms of this License in conveying all material
for which you do not control copyright. Those thus making or running the covered
works for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of your copyrighted
material outside their relationship with you.
Conveying under any other circumstances is permitted solely under the conditions
stated below. Sublicensing is not allowed; section 10 makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological measure
under any applicable law fulfilling obligations under article 11 of the WIPO
copyright treaty adopted on 20 December 1996, or similar laws prohibiting
or restricting circumvention of such measures.
When you convey a covered work, you waive any legal power to forbid circumvention
of technological measures to the extent such circumvention is effected by
exercising rights under this License with respect to the covered work, and
you disclaim any intention to limit operation or modification of the work
as a means of enforcing, against the work's users, your or third parties'
legal rights to forbid circumvention of technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you receive
it, in any medium, provided that you conspicuously and appropriately publish
on each copy an appropriate copyright notice; keep intact all notices stating
that this License and any non-permissive terms added in accord with section
7 apply to the code; keep intact all notices of the absence of any warranty;
and give all recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey, and you
may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to produce
it from the Program, in the form of source code under the terms of section
4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified it, and
giving a relevant date.
b) The work must carry prominent notices stating that it is released under
this License and any conditions added under section 7. This requirement modifies
the requirement in section 4 to "keep intact all notices".
c) You must license the entire work, as a whole, under this License to anyone
who comes into possession of a copy. This License will therefore apply, along
with any applicable section 7 additional terms, to the whole of the work,
and all its parts, regardless of how they are packaged. This License gives
no permission to license the work in any other way, but it does not invalidate
such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display Appropriate
Legal Notices; however, if the Program has interactive interfaces that do
not display Appropriate Legal Notices, your work need not make them do so.
A compilation of a covered work with other separate and independent works,
which are not by their nature extensions of the covered work, and which are
not combined with it such as to form a larger program, in or on a volume of
a storage or distribution medium, is called an "aggregate" if the compilation
and its resulting copyright are not used to limit the access or legal rights
of the compilation's users beyond what the individual works permit. Inclusion
of a covered work in an aggregate does not cause this License to apply to
the other parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms of sections
4 and 5, provided that you also convey the machine-readable Corresponding
Source under the terms of this License, in one of these ways:
a) Convey the object code in, or embodied in, a physical product (including
a physical distribution medium), accompanied by the Corresponding Source fixed
on a durable physical medium customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product (including
a physical distribution medium), accompanied by a written offer, valid for
at least three years and valid for as long as you offer spare parts or customer
support for that product model, to give anyone who possesses the object code
either (1) a copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical medium customarily
used for software interchange, for a price no more than your reasonable cost
of physically performing this conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the written
offer to provide the Corresponding Source. This alternative is allowed only
occasionally and noncommercially, and only if you received the object code
with such an offer, in accord with subsection 6b.
d) Convey the object code by offering access from a designated place (gratis
or for a charge), and offer equivalent access to the Corresponding Source
in the same way through the same place at no further charge. You need not
require recipients to copy the Corresponding Source along with the object
code. If the place to copy the object code is a network server, the Corresponding
Source may be on a different server (operated by you or a third party) that
supports equivalent copying facilities, provided you maintain clear directions
next to the object code saying where to find the Corresponding Source. Regardless
of what server hosts the Corresponding Source, you remain obligated to ensure
that it is available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided you inform
other peers where the object code and Corresponding Source of the work are
being offered to the general public at no charge under subsection 6d.
A separable portion of the object code, whose source code is excluded from
the Corresponding Source as a System Library, need not be included in conveying
the object code work.
A "User Product" is either (1) a "consumer product", which means any tangible
personal property which is normally used for personal, family, or household
purposes, or (2) anything designed or sold for incorporation into a dwelling.
In determining whether a product is a consumer product, doubtful cases shall
be resolved in favor of coverage. For a particular product received by a particular
user, "normally used" refers to a typical or common use of that class of product,
regardless of the status of the particular user or of the way in which the
particular user actually uses, or expects or is expected to use, the product.
A product is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent the
only significant mode of use of the product.
"Installation Information" for a User Product means any methods, procedures,
authorization keys, or other information required to install and execute modified
versions of a covered work in that User Product from a modified version of
its Corresponding Source. The information must suffice to ensure that the
continued functioning of the modified object code is in no case prevented
or interfered with solely because modification has been made.
If you convey an object code work under this section in, or with, or specifically
for use in, a User Product, and the conveying occurs as part of a transaction
in which the right of possession and use of the User Product is transferred
to the recipient in perpetuity or for a fixed term (regardless of how the
transaction is characterized), the Corresponding Source conveyed under this
section must be accompanied by the Installation Information. But this requirement
does not apply if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has been installed
in ROM).
The requirement to provide Installation Information does not include a requirement
to continue to provide support service, warranty, or updates for a work that
has been modified or installed by the recipient, or for the User Product in
which it has been modified or installed. Access to a network may be denied
when the modification itself materially and adversely affects the operation
of the network or violates the rules and protocols for communication across
the network.
Corresponding Source conveyed, and Installation Information provided, in accord
with this section must be in a format that is publicly documented (and with
an implementation available to the public in source code form), and must require
no special password or key for unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this License
by making exceptions from one or more of its conditions. Additional permissions
that are applicable to the entire Program shall be treated as though they
were included in this License, to the extent that they are valid under applicable
law. If additional permissions apply only to part of the Program, that part
may be used separately under those permissions, but the entire Program remains
governed by this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option remove any
additional permissions from that copy, or from any part of it. (Additional
permissions may be written to require their own removal in certain cases when
you modify the work.) You may place additional permissions on material, added
by you to a covered work, for which you have or can give appropriate copyright
permission.
Notwithstanding any other provision of this License, for material you add
to a covered work, you may (if authorized by the copyright holders of that
material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the terms of
sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or author
attributions in that material or in the Appropriate Legal Notices displayed
by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or requiring
that modified versions of such material be marked in reasonable ways as different
from the original version; or
d) Limiting the use for publicity purposes of names of licensors or authors
of the material; or
e) Declining to grant rights under trademark law for use of some trade names,
trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that material by
anyone who conveys the material (or modified versions of it) with contractual
assumptions of liability to the recipient, for any liability that these contractual
assumptions directly impose on those licensors and authors.
All other non-permissive additional terms are considered "further restrictions"
within the meaning of section 10. If the Program as you received it, or any
part of it, contains a notice stating that it is governed by this License
along with a term that is a further restriction, you may remove that term.
If a license document contains a further restriction but permits relicensing
or conveying under this License, you may add to a covered work material governed
by the terms of that license document, provided that the further restriction
does not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you must place,
in the relevant source files, a statement of the additional terms that apply
to those files, or a notice indicating where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the form
of a separately written license, or stated as exceptions; the above requirements
apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly provided
under this License. Any attempt otherwise to propagate or modify it is void,
and will automatically terminate your rights under this License (including
any patent licenses granted under the third paragraph of section 11).
However, if you cease all violation of this License, then your license from
a particular copyright holder is reinstated (a) provisionally, unless and
until the copyright holder explicitly and finally terminates your license,
and (b) permanently, if the copyright holder fails to notify you of the violation
by some reasonable means prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is reinstated permanently
if the copyright holder notifies you of the violation by some reasonable means,
this is the first time you have received notice of violation of this License
(for any work) from that copyright holder, and you cure the violation prior
to 30 days after your receipt of the notice.
Termination of your rights under this section does not terminate the licenses
of parties who have received copies or rights from you under this License.
If your rights have been terminated and not permanently reinstated, you do
not qualify to receive new licenses for the same material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or run a copy
of the Program. Ancillary propagation of a covered work occurring solely as
a consequence of using peer-to-peer transmission to receive a copy likewise
does not require acceptance. However, nothing other than this License grants
you permission to propagate or modify any covered work. These actions infringe
copyright if you do not accept this License. Therefore, by modifying or propagating
a covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically receives
a license from the original licensors, to run, modify and propagate that work,
subject to this License. You are not responsible for enforcing compliance
by third parties with this License.
An "entity transaction" is a transaction transferring control of an organization,
or substantially all assets of one, or subdividing an organization, or merging
organizations. If propagation of a covered work results from an entity transaction,
each party to that transaction who receives a copy of the work also receives
whatever licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the Corresponding
Source of the work from the predecessor in interest, if the predecessor has
it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the rights
granted or affirmed under this License. For example, you may not impose a
license fee, royalty, or other charge for exercise of rights granted under
this License, and you may not initiate litigation (including a cross-claim
or counterclaim in a lawsuit) alleging that any patent claim is infringed
by making, using, selling, offering for sale, or importing the Program or
any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this License
of the Program or a work on which the Program is based. The work thus licensed
is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims owned or controlled
by the contributor, whether already acquired or hereafter acquired, that would
be infringed by some manner, permitted by this License, of making, using,
or selling its contributor version, but do not include claims that would be
infringed only as a consequence of further modification of the contributor
version. For purposes of this definition, "control" includes the right to
grant patent sublicenses in a manner consistent with the requirements of this
License.
Each contributor grants you a non-exclusive, worldwide, royalty-free patent
license under the contributor's essential patent claims, to make, use, sell,
offer for sale, import and otherwise run, modify and propagate the contents
of its contributor version.
In the following three paragraphs, a "patent license" is any express agreement
or commitment, however denominated, not to enforce a patent (such as an express
permission to practice a patent or covenant not to sue for patent infringement).
To "grant" such a patent license to a party means to make such an agreement
or commitment not to enforce a patent against the party.
If you convey a covered work, knowingly relying on a patent license, and the
Corresponding Source of the work is not available for anyone to copy, free
of charge and under the terms of this License, through a publicly available
network server or other readily accessible means, then you must either (1)
cause the Corresponding Source to be so available, or (2) arrange to deprive
yourself of the benefit of the patent license for this particular work, or
(3) arrange, in a manner consistent with the requirements of this License,
to extend the patent license to downstream recipients. "Knowingly relying"
means you have actual knowledge that, but for the patent license, your conveying
the covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that country
that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or arrangement,
you convey, or propagate by procuring conveyance of, a covered work, and grant
a patent license to some of the parties receiving the covered work authorizing
them to use, propagate, modify or convey a specific copy of the covered work,
then the patent license you grant is automatically extended to all recipients
of the covered work and works based on it.
A patent license is "discriminatory" if it does not include within the scope
of its coverage, prohibits the exercise of, or is conditioned on the non-exercise
of one or more of the rights that are specifically granted under this License.
You may not convey a covered work if you are a party to an arrangement with
a third party that is in the business of distributing software, under which
you make payment to the third party based on the extent of your activity of
conveying the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory patent
license (a) in connection with copies of the covered work conveyed by you
(or copies made from those copies), or (b) primarily for and in connection
with specific products or compilations that contain the covered work, unless
you entered into that arrangement, or that patent license was granted, prior
to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting any implied
license or other defenses to infringement that may otherwise be available
to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or otherwise)
that contradict the conditions of this License, they do not excuse you from
the conditions of this License. If you cannot convey a covered work so as
to satisfy simultaneously your obligations under this License and any other
pertinent obligations, then as a consequence you may not convey it at all.
For example, if you agree to terms that obligate you to collect a royalty
for further conveying from those to whom you convey the Program, the only
way you could satisfy both those terms and this License would be to refrain
entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have permission to
link or combine any covered work with a work licensed under version 3 of the
GNU Affero General Public License into a single combined work, and to convey
the resulting work. The terms of this License will continue to apply to the
part which is the covered work, but the special requirements of the GNU Affero
General Public License, section 13, concerning interaction through a network
will apply to the combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of the
GNU General Public License from time to time. Such new versions will be similar
in spirit to the present version, but may differ in detail to address new
problems or concerns.
Each version is given a distinguishing version number. If the Program specifies
that a certain numbered version of the GNU General Public License "or any
later version" applies to it, you have the option of following the terms and
conditions either of that numbered version or of any later version published
by the Free Software Foundation. If the Program does not specify a version
number of the GNU General Public License, you may choose any version ever
published by the Free Software Foundation.
If the Program specifies that a proxy can decide which future versions of
the GNU General Public License can be used, that proxy's public statement
of acceptance of a version permanently authorizes you to choose that version
for the Program.
Later license versions may give you additional or different permissions. However,
no additional obligations are imposed on any author or copyright holder as
a result of your choosing to follow a later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM
PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM
AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO
USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED
INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER
PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided above cannot
be given local legal effect according to their terms, reviewing courts shall
apply local law that most closely approximates an absolute waiver of all civil
liability in connection with the Program, unless a warranty or assumption
of liability accompanies a copy of the Program in return for a fee. END OF
TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest possible
use to the public, the best way to achieve this is to make it free software
which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest to attach
them to the start of each source file to most effectively state the exclusion
of warranty; and each file should have at least the "copyright" line and a
pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation, either version 3 of the License, or (at your option) any later
version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short notice like
this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it under certain
conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands might
be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary. For
more information on this, and how to apply and follow the GNU GPL, see <https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General Public
License instead of this License. But first, please read <https://www.gnu.org/
licenses /why-not-lgpl.html>.

View File

@@ -0,0 +1,12 @@
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 3 of
the license or (at your option) at any later version that is
accepted by the membership of KDE e.V. (or its successor
approved by the membership of KDE e.V.), which shall act as a
proxy as defined in Section 14 of version 3 of the license.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

View File

@@ -13,17 +13,25 @@ All this without wires, over the already existing WiFi network, and using TLS en
## About this app
This is a native Android port of the KDE Connect Qt app. You will find a more complete readme about KDE Connect [here](https://github.com/KDE/kdeconnect-kde).
This is a native Android port of the KDE Connect Qt app. You will find a more complete readme about KDE Connect [here](https://invent.kde.org/network/kdeconnect-kde/).
## How to install this app
You can install this app from the [Play Store](https://play.google.com/store/apps/details?id=org.kde.kdeconnect_tp) as well as [F-Droid](https://f-droid.org/repository/browse/?fdid=org.kde.kdeconnect_tp). Note you will also need to install the [desktop app](https://github.com/KDE/kdeconnect-kde) for it to work.
You can install this app from the [Play Store](https://play.google.com/store/apps/details?id=org.kde.kdeconnect_tp) as well as [F-Droid](https://f-droid.org/repository/browse/?fdid=org.kde.kdeconnect_tp). Note you will also need to install the [desktop app](https://invent.kde.org/network/kdeconnect-kde) for it to work.
## 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)
For bug reporting, please use [KDE's Bugzilla](https://bugs.kde.org). Please do not use the issue tracker in GitLab since we want to keep everything in one place.
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)
If you are reading this from Github, you should know that this is just a mirror of the [KDE Project repo](https://projects.kde.org/projects/extragear/network/kdeconnect-android/repository/).
If you are reading this from Github, you should know that this is just a mirror of the [KDE Project repo](https://invent.kde.org/network/kdeconnect-android/).

View File

@@ -15,9 +15,37 @@ 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-*@*
# Generate the locales_config.xml
pushd res
echo '<?xml version="1.0" encoding="utf-8"?>' > xml/locales_config.xml
echo '<locale-config xmlns:android="http://schemas.android.com/apk/res/android">' >> xml/locales_config.xml
transform_locale_regex='(\w+)-r(\w+)'
# Add en-US as the first locale so that is the fallback, and also because it won't be handled in the following loop
echo -e '\t<locale android:name="en-US"/>' >> xml/locales_config.xml
for i in values-*; do
if [ -d "${i}" ]; then
if [ -e "${i}/strings.xml" ]; then
locale="${i:7}"
if [[ "${locale}" =~ $transform_locale_regex ]]; then
# Special case to turn locales like "en-rUS", "en-rGB" into "en-US" and "en-GB"
transformed_locale="${BASH_REMATCH[1]}-${BASH_REMATCH[2]}"
echo -e "\t<locale android:name=\"${transformed_locale}\"/>" >> xml/locales_config.xml
else
echo -e "\t<locale android:name=\"${locale}\"/>" >> xml/locales_config.xml
fi
fi
fi
done
echo "</locale-config>" >> xml/locales_config.xml
popd
}

620
adaptive_icon.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -1,98 +0,0 @@
apply plugin: 'com.android.application'
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.1'
}
}
android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 14
targetSdkVersion 28
}
dexOptions {
javaMaxHeapSize "2g"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['resources']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
test {
java.srcDirs = ['tests']
}
}
packagingOptions {
merge "META-INF/DEPENDENCIES"
merge "META-INF/LICENSE"
merge "META-INF/NOTICE"
}
lintOptions {
abortOnError false
checkReleaseBuilds false
}
buildTypes {
debug {
minifyEnabled false
useProguard false
}
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'
}
}
}
dependencies {
repositories {
jcenter()
google()
/* Needed for org.apache.sshd debugging
maven {
url "https://jitpack.io"
}
*/
}
implementation 'androidx.media:media:1.0.1'
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.preference:preference:1.0.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 '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.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
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'
}

241
build.gradle.kts Normal file
View File

@@ -0,0 +1,241 @@
import com.github.jk1.license.LicenseReportExtension
import com.github.jk1.license.render.ReportRenderer
import com.github.jk1.license.render.TextReportRenderer
buildscript {
dependencies {
classpath(libs.android.gradlePlugin)
classpath(libs.kotlin.gradlePlugin)
}
}
@Suppress("DSL_SCOPE_VIOLATION") // TODO: remove once https://youtrack.jetbrains.com/issue/KTIJ-19369 is fixed
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.dependencyLicenseReport)
}
val licenseResDir = File("$projectDir/build/dependency-license-res")
fun String.runCommand(
workingDir: File = File("."),
timeoutAmount: Long = 60,
timeoutUnit: TimeUnit = TimeUnit.SECONDS
): String = ProcessBuilder(split("\\s(?=(?:[^'\"`]*(['\"`])[^'\"`]*\\1)*[^'\"`]*$)".toRegex()))
.directory(workingDir)
.redirectOutput(ProcessBuilder.Redirect.PIPE)
.redirectError(ProcessBuilder.Redirect.PIPE)
.start()
.apply { waitFor(timeoutAmount, timeoutUnit) }
.run {
val error = errorStream.bufferedReader().readText().trim()
if (error.isNotEmpty()) {
throw Exception(error)
}
inputStream.bufferedReader().readText().trim()
}
android {
namespace = "org.kde.kdeconnect_tp"
compileSdk = 34
defaultConfig {
minSdk = 21
targetSdk = 33
proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
}
buildFeatures {
viewBinding = true
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion = "1.5.3"
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
// Flag to enable support for the new language APIs
isCoreLibraryDesugaringEnabled = true
}
kotlinOptions {
jvmTarget = "1.8"
}
androidResources {
generateLocaleConfig = true
}
sourceSets {
getByName("main") {
manifest.srcFile("AndroidManifest.xml")
java.setSrcDirs(listOf("src"))
resources.setSrcDirs(listOf("resources"))
res.setSrcDirs(listOf(licenseResDir, "res"))
assets.setSrcDirs(listOf("assets"))
}
getByName("test") {
java.setSrcDirs(listOf("tests"))
}
}
packaging {
resources {
merges += listOf("META-INF/DEPENDENCIES", "META-INF/LICENSE", "META-INF/NOTICE")
}
}
signingConfigs {
getByName("debug") {
storeFile = file("debug.keystore")
storePassword = "android"
keyAlias = "androiddebugkey"
keyPassword = "android"
}
}
buildTypes {
getByName("debug") {
isMinifyEnabled = true
isShrinkResources = true
signingConfig = signingConfigs.getByName("debug")
}
// keep minifyEnabled false above for faster builds; set to 'true'
// when testing to make sure ProGuard/R8 is not deleting important stuff
getByName("release") {
isMinifyEnabled = true
isShrinkResources = true
}
}
lint {
abortOnError = false
checkReleaseBuilds = false
}
testOptions {
unitTests.all {
it.jvmArgs = it.jvmArgs.orEmpty() + listOf(
"--add-opens=java.base/java.lang=ALL-UNNAMED",
"--add-opens=java.base/java.security=ALL-UNNAMED",
"--add-opens=java.base/sun.security.rsa=ALL-UNNAMED",
"--add-opens=java.base/sun.security.x509=ALL-UNNAMED",
"--add-opens=java.base/java.util=ALL-UNNAMED",
"--add-opens=java.base/java.lang.reflect=ALL-UNNAMED"
)
}
}
applicationVariants.all {
val variant = this
logger.quiet("Found a variant called ${variant.name}")
if (variant.buildType.isDebuggable) {
variant.outputs.all {
val output = this as com.android.build.gradle.internal.api.BaseVariantOutputImpl
if (output.outputFile.name.endsWith(".apk")) {
// Default output filename is "${project.name}-${v.name}.apk". We want
// the Git commit short-hash to be added onto that default filename.
try {
val hash = "git rev-parse --short HEAD".runCommand(workingDir = rootDir)
val newName = "${project.name}-${variant.name}-${hash}.apk"
logger.quiet(" Found an output file ${output.outputFile.name}, renaming to ${newName}")
output.outputFileName = newName
} catch (ignored: Exception) {
logger.warn("Could not make use of the 'git' command-line tool. Output filenames will not be customized.")
}
}
}
}
}
}
dependencies {
coreLibraryDesugaring(libs.android.desugarJdkLibs)
implementation(libs.androidx.compose.material3)
implementation(libs.androidx.compose.ui.tooling.preview)
implementation(libs.androidx.activity.compose)
implementation(libs.accompanist.themeadapter.material3) // TODO: Remove deprecated library https://google.github.io/accompanist/themeadapter-material3/
implementation(libs.androidx.constraintlayout.compose)
implementation(libs.androidx.compose.ui.tooling.preview)
debugImplementation(libs.androidx.compose.ui.tooling)
implementation(libs.androidx.media)
implementation(libs.androidx.appcompat)
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.preference.ktx)
implementation(libs.androidx.recyclerview)
implementation(libs.androidx.swiperefreshlayout)
implementation(libs.androidx.documentfile)
implementation(libs.androidx.lifecycle.viewmodel.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.lifecycle.extensions)
implementation(libs.androidx.lifecycle.common.java8)
implementation(libs.androidx.gridlayout)
implementation(libs.material)
implementation(libs.disklrucache) //For caching album art bitmaps
implementation(libs.apache.sshd.core)
implementation(libs.apache.mina.core) //For some reason, makes sshd-core:0.14.0 work without NIO, which isn't available until Android 8 (api 26)
//implementation("com.github.bright:slf4android:0.1.6") { transitive = true } // For org.apache.sshd debugging
implementation(libs.bcpkix.jdk15on) //For SSL certificate generation
implementation(libs.classindex)
annotationProcessor(libs.classindex)
// The android-smsmms library is the only way I know to handle MMS in Android
// (Shouldn't a phone OS make phone things easy?)
// This library was originally authored as com.klinkerapps at https://github.com/klinker41/android-smsmms.
// However, that version is under-loved. I have therefore made "some fixes" and published it.
// Please see https://invent.kde.org/sredman/android-smsmms/-/tree/master
implementation(libs.android.smsmms)
implementation(libs.logger)
implementation(libs.commons.io)
implementation(libs.commons.collections4)
implementation(libs.commons.lang3)
implementation(libs.univocity.parsers)
// Kotlin
implementation(libs.kotlin.stdlib.jdk8)
implementation(libs.kotlinx.coroutines.core)
implementation(libs.kotlinx.coroutines.android)
// Testing
testImplementation(libs.junit)
testImplementation(libs.powermock.core)
testImplementation(libs.powermock.module.junit4)
testImplementation(libs.powermock.api.mockito2)
testImplementation(libs.mockito.core) // powermock isn't compatible with mockito 4
testImplementation(libs.jsonassert)
// For device controls
implementation(libs.reactive.streams)
implementation(libs.rxjava)
}
licenseReport {
configurations = LicenseReportExtension.ALL
renderers = arrayOf<ReportRenderer>(TextReportRenderer())
}
tasks.named("generateLicenseReport") {
doLast {
val target = File(licenseResDir, "raw/license")
target.parentFile.mkdirs()
target.writeText(
files(
layout.projectDirectory.file("COPYING"),
layout.buildDirectory.file("reports/dependency-license/THIRD-PARTY-NOTICES.txt")
).joinToString(separator = "\n") {
it.readText()
}
)
}
}
tasks.named("preBuild") {
dependsOn("generateLicenseReport")
}

BIN
debug.keystore Normal file

Binary file not shown.

2
fastlane/Appfile Normal file
View File

@@ -0,0 +1,2 @@
json_key_file("/please/pass/the/key/using/--json-key/instead")
package_name("org.kde.kdeconnect_tp")

7
fastlane/README Normal file
View File

@@ -0,0 +1,7 @@
To upload translations to the Play Store, run from the root of the repo:
```
fastlane supply --skip_upload_screenshots --skip_upload_images --skip_upload_changelogs --json-key <path to the json key file>
```
F-Droid reads them directly from this directory for each release tag, so no action is needed.

View File

@@ -0,0 +1,40 @@
EXPORTS_POT_DIR=1
FILE_PREFIX=kdeconnect-android-store
function export_pot_dir # First parameter will be the path of the directory where we have to store the pot files
{
potdir=$1
txt2po --no-segmentation --progress=names -P -i ./metadata/android/en-US/short_description.txt -o $potdir/kdeconnect-android-store-short.pot
txt2po --no-segmentation --progress=names -P -i ./metadata/android/en-US/full_description.txt -o $potdir/kdeconnect-android-store-full.pot
}
function import_po_dirs # First parameter will be a path that will be a directory to the dirs for each lang and then all the .po files inside
{
podir=$1
# Some languages don't exist in Google Play or have different codes
declare -a to_delete=( "bs" "ca@valencia" "sr@ijekavian" "sr@ijekavianlatin" "sr@latin" "ia" "eo" "tg" )
for lang in "${to_delete[@]}"; do
if [ -d $podir/$lang ]; then
rm $podir/$lang/*
rmdir $podir/$lang
fi
done
declare -A to_rename=( ["az"]="az-AZ" ["cs"]="cs-CZ" ["da"]="da-DK" ["de"]="de-DE" ["el"]="el-GR" ["es"]="es-ES" ["eu"]="eu-ES"
["fi"]="fi-FI" ["fr"]="fr-FR" ["gl"]="gl-ES" ["he"]="iw-IL" ["hu"]="hu-HU" ["is"]="is-IS" ["it"]="it-IT"
["ja"]="ja-JP" ["ka"]="ka-GE" ["ko"]="ko-KR" ["nl"]="nl-NL" ["nn"]="no-NO" ["pl"]="pl-PL" ["pt"]="pt-PT"
["ru"]="ru-RU" ["sv"]="sv-SE" ["ta"]="ta-IN" ["tr"]="tr-TR")
for lang in "${!to_rename[@]}"; do
if [ -d $podir/$lang ]; then
mv $podir/$lang $podir/${to_rename[$lang]}
fi
done
for lang in $(ls $podir); do
if [ -f $podir/$lang/kdeconnect-android-store-short.po -a -f $podir/$lang/kdeconnect-android-store-full.po ]; then
mkdir -p ./metadata/android/$lang/
cp ./metadata/android/en-US/title.txt ./metadata/android/$lang/title.txt # we do not translate the app name
po2txt --fuzzy --progress=names -i $podir/$lang/kdeconnect-android-store-short.po -o ./metadata/android/$lang/short_description.txt
po2txt --fuzzy --progress=names -i $podir/$lang/kdeconnect-android-store-full.po -o ./metadata/android/$lang/full_description.txt
fi
done
}

View File

@@ -0,0 +1,14 @@
KDE connect cihazlarınız arasında inteqrasiya üçün funksiyalar dəstini təqdim edir:
- Mübadilə yaddaşının paylaşılması: cihazlarınız arasında kopyalayın və yerləşdirin.
- İstənilən tətbiqdən komputeriniz ilə URL ünvanlarını və faylları paylaşın.
- Kompyyuterinizdə gələn zənglər və SMS ismarıcları haqqında bildirişlər alın.
- Virtual toxunma paneli: Telefonunuzun ektranını kompyuterin toxunma paneli kimi istifdə edin.
- Bildirişlərin eyniləşdirilməsi: Android bildirişlərinizi kompyuterinizin iş masasından ozuyun.
- Multimedianın məsafədən idarə edilməsi: Linux media oxuducusunu telefonunuzdan idarə edin.
- WiFi bağlantısı: USB qoşulması və ya Bluetooth qoşulmasına ehtiyyac yoxdur.
- Ucdan-uca TLC şifrələmə: məlumatlarınızın təhlükəsizliyi qorunur.
Nəzərə alın ki, bu tətbiqin işləməsi üçün kompyuterinizə KDE Connect-i quraşdırmalısınız və sonuncu funksiyaların işləməsi üçün İş masası və Android versiyalarını sonuncu versiyaya eyni şəkildə yeniləməlisiniz.
Bu tətbiq açıq qaynaq layihəsinin bir hissəsidir və ona töhvə verənlərin sayəsində mövcuddur. Mənbə kodunu əldə etmək üçün veb-səhifəyə daxil olun.

View File

@@ -0,0 +1 @@
KDE Connect kompyuteriniz ilə smartfonunuzu inteqrasiya edir

View File

@@ -0,0 +1 @@
KDE Connect

View File

@@ -0,0 +1,20 @@
El KDE Connect proporciona un conjunt de característiques per a integrar el flux de treball entre dispositius:
- Porta-retalls compartit: copieu i enganxeu entre els dispositius.
- Compartiu fitxers i URL a l'ordinador des de qualsevol aplicació.
- Obteniu notificacions de trucades entrants i missatges SMS al vostre PC.
- Ratolí tàctil virtual: utilitzeu la pantalla del telèfon com a ratolí tàctil de l'ordinador.
- Sincronització de notificacions: llegiu les notificacions de l'Android a l'escriptori.
- Control remot multimèdia: utilitzeu el telèfon com a control remot dels reproductors multimèdia Linux.
- Connexió Wi-Fi: no cal connexió USB ni Bluetooth.
- Encriptatge TLS d'extrem a extrem: la informació és segura.
Tingueu en compte que haureu d'instal·lar el KDE Connect a l'ordinador perquè aquesta aplicació funcioni, i mantingueu actualitzada la versió d'escriptori amb la versió de l'Android perquè funcionin les últimes característiques.
Informació dels permisos confidencials:
* Permís d'accessibilitat: requerit per rebre l'entrada des d'un altre dispositiu per controlar el telèfon Android, si utilitzeu la característica d'entrada remota.
* Permís d'ubicació en segon pla: requerit per saber a quina xarxa WiFi esteu connectat, si utilitzeu la característica xarxes de confiança.
El KDE Connect mai envia cap informació a KDE ni a cap tercer. El KDE Connect envia dades des d'un dispositiu a l'altre directament utilitzant la xarxa local, mai a través d'Internet, i utilitzant l'encriptatge d'extrem a extrem.
Aquesta aplicació forma part d'un projecte de codi obert i existeix gràcies a totes les persones que hi han contribuït. Visiteu el lloc web per aconseguir el codi font.

View File

@@ -0,0 +1 @@
El KDE Connect integra el vostre telèfon intel·ligent i l'ordinador

View File

@@ -0,0 +1 @@
KDE Connect

View File

@@ -0,0 +1,20 @@
KDE Connect poskytuje sadu vlastností pro vzájemnou integraci vašich zařízení:
- Sdílená schránka: kopírujte a vkládejte z jednoho zařízení na druhé.
- Sdílejte soubory a odkazy z jakékoliv aplikace na váš počítač.
- Přijímejte upozornění na příchozí hovory nebo SMS na vašem PC.
- Virtuální touchpad: Používejte obrazovku svého telefonu jako touchpad počítače.
- Synchronizace upozornění: Čtěte upozornění z vašeho Androidu na počítači.
- Vzdálené ovládání multimédií: Používejte svůj telefon jako ovladač přehrávače na Linuxu.
- Připojení WiFi: Není potřeba kabel USB ani Bluetooth.
- Koncové šifrování TLS: Vaše informace jsou v bezpečí.
Prosím pamatujte, že pro správnou funkci této aplikace je nutné abyste na vašem počítači měli nainstalován KDE Connect a udržovali jej aktuální zde i na Androidu.
Informace o citlivých oprávněních:
* Oprávnění přístupnosti: Nutné pro příjem vstupu z jiného zařízení aby mohlo ovládat váš telefon Android pokud používáte vlastnost Vzdálený vstup.
* Oprávnění o poloze na pozadí: Je potřebné pro rozpoznání, ke které síti WiFi jste připojeni, pokud používáte funkci Důvěryhodné sítě.
KDE Connect nikdy neposílá KDE ani nikomu jinému jakékoliv informace. KDE Connect odesílá data z jednoho zařízení druhému přímo přes místní síť, nikdy přes internet, a výhradně s použitím koncového šifrování.
Tato aplikace je součástí Open Source projektu a existuje jenom díky přispěvatelům. Zdrojové soubory naleznete na webových stránkách.

View File

@@ -0,0 +1 @@
KDE Connect integruje váš chytrý telefon a počítač

View File

@@ -0,0 +1 @@
KDE Connect

View File

@@ -0,0 +1,20 @@
KDE Connect provides a set of features to integrate your workflow across devices:
- Shared clipboard: copy and paste between your devices.
- Share files and URLs to your computer from any app.
- Get notifications for incoming calls and SMS messages on your PC.
- Virtual touchpad: Use your phone screen as your computer's touchpad.
- Notifications sync: Read your Android notifications from the desktop.
- Multimedia remote control: Use your phone as a remote for Linux media players.
- WiFi connection: no USB wire or bluetooth needed.
- End-to-end TLS encryption: your information is safe.
Please note you will need to install KDE Connect on your computer for this app to work, and keep the desktop version up-to-date with the Android version for the latest features to work.
Sensitive permissions information:
* Accessibility permission: Required to receive input from another device to control your Android phone, if you use the Remote Input feature.
* Background location permission: Required to know to which WiFi network you are connected to, if you use the Trusted Networks feature.
KDE Connect never sends any information to KDE nor to any third party. KDE Connect sends data from one device to the other directly using the local network, never through the internet, and using end to end encryption.
This app is part of an open source project and it exists thanks to all the people who contributed to it. Visit the website to grab the source code.

View File

@@ -0,0 +1 @@
KDE Connect verbindet Ihr Smartphone mit Ihrem Computer

View File

@@ -0,0 +1 @@
KDE Connect

View File

@@ -0,0 +1,3 @@
1.25.0:
* Rewrite some of the internals to improve performance.
* Add search by name in the notification plugin settings.

View File

@@ -0,0 +1,6 @@
1.26.0:
* Allow having different widgets for diferent devices.
* Add stats about network packets sent and received.
* Add the option to cancel a pairing request after sending it.
* Fix device name set initially not being human-friendly.
* Rewrite some of the internals to improve performance.

View File

@@ -0,0 +1,9 @@
1.26.1:
* Fix infinite loop that would cause high CPU usage.
1.26.0:
* Allow having different widgets for diferent devices.
* Add stats about network packets sent and received.
* Add the option to cancel a pairing request after sending it.
* Fix device name set initially not being human-friendly.
* Rewrite some of the internals to improve performance.

View File

@@ -0,0 +1,12 @@
1.26.2:
* Fixed several bugs and crashes related to media controls.
1.26.1:
* Fix infinite loop that would cause high CPU usage.
1.26.0:
* Allow having different widgets for diferent devices.
* Add stats about network packets sent and received.
* Add the option to cancel a pairing request after sending it.
* Fix device name set initially not being human-friendly.
* Rewrite some of the internals to improve performance.

View File

@@ -0,0 +1,12 @@
1.26.3:
* Fixed several bugs and crashes related to media controls.
1.26.1:
* Fix infinite loop that would cause high CPU usage.
1.26.0:
* Allow having different widgets for diferent devices.
* Add stats about network packets sent and received.
* Add the option to cancel a pairing request after sending it.
* Fix device name set initially not being human-friendly.
* Rewrite some of the internals to improve performance.

View File

@@ -0,0 +1,12 @@
1.26.4:
* Fixed several bugs and crashes related to media controls.
1.26.1:
* Fix infinite loop that would cause high CPU usage.
1.26.0:
* Allow having different widgets for diferent devices.
* Add stats about network packets sent and received.
* Add the option to cancel a pairing request after sending it.
* Fix device name set initially not being human-friendly.
* Rewrite some of the internals to improve performance.

View File

@@ -0,0 +1,9 @@
1.27:
* Added back the mouse receiver plugin.
1.26:
* Allow having different widgets for diferent devices.
* Add stats about network packets sent and received.
* Add the option to cancel a pairing request after sending it.
* Fix device name set initially not being human-friendly.
* Rewrite some of the internals to improve performance.

View File

@@ -0,0 +1,12 @@
1.27.1:
* Fixed crashes.
1.27:
* Added back the mouse receiver plugin.
1.26:
* Allow having different widgets for diferent devices.
* Add stats about network packets sent and received.
* Add the option to cancel a pairing request after sending it.
* Fix device name set initially not being human-friendly.
* Rewrite some of the internals to improve performance.

View File

@@ -0,0 +1,12 @@
1.28:
* Improved connection reliability.
1.27:
* Added back the mouse receiver plugin.
1.26:
* Allow having different widgets for diferent devices.
* Add stats about network packets sent and received.
* Add the option to cancel a pairing request after sending it.
* Fix device name set initially not being human-friendly.
* Rewrite some of the internals to improve performance.

View File

@@ -0,0 +1,20 @@
KDE Connect provides a set of features to integrate your workflow across devices:
- Shared clipboard: copy and paste between your devices.
- Share files and URLs to your computer from any app.
- Get notifications for incoming calls and SMS messages on your PC.
- Virtual touchpad: Use your phone screen as your computer's touchpad.
- Notifications sync: Read your Android notifications from the desktop.
- Multimedia remote control: Use your phone as a remote for Linux media players.
- WiFi connection: no USB wire or bluetooth needed.
- End-to-end TLS encryption: your information is safe.
Please note you will need to install KDE Connect on your computer for this app to work, and keep the desktop version up-to-date with the Android version for the latest features to work.
Sensitive permissions information:
* Accessibility permission: Required to receive input from another device to control your Android phone, if you use the Remote Input feature.
* Background location permission: Required to know to which WiFi network you are connected to, if you use the Trusted Networks feature.
KDE Connect never sends any information to KDE nor to any third party. KDE Connect sends data from one device to the other directly using the local network, never through the internet, and using end to end encryption.
This app is part of an open source project and it exists thanks to all the people who contributed to it. Visit the website to grab the source code.

Binary file not shown.

After

Width:  |  Height:  |  Size: 698 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

View File

@@ -0,0 +1 @@
KDE Connect integrates your smartphone and computer

View File

@@ -0,0 +1 @@
KDE Connect

View File

@@ -0,0 +1,14 @@
KDE Connect provides a set of features to integrate your workflow across devices:
- Shared clipboard: copy and paste between your devices.
- Share files and URLs to your computer from any app.
- Get notifications for incoming calls and SMS messages on your PC.
- Virtual touchpad: Use your phone screen as your computer's touchpad.
- Notifications sync: Read your Android notifications from the desktop.
- Multimedia remote control: Use your phone as a remote for Linux media players.
- WiFi connection: no USB wire or bluetooth needed.
- End-to-end TLS encryption: your information is safe.
Please note you will need to install KDE Connect on your computer for this app to work, and keep the desktop version up-to-date with the Android version for the latest features to work.
This app is part of an open source project and it exists thanks to all the people who contributed to it. Visit the website to grab the source code.

View File

@@ -0,0 +1 @@
KDE Connect integrates your smartphone and computer

View File

@@ -0,0 +1 @@
KDE Connect

View File

@@ -0,0 +1,20 @@
KDE Connect proporciona una serie de funcionalidades para integrar tus flujos de trabajo entre distintos dispositivos:
- Portapapeles compartido: copia y pega entre tus dispositivos.
- Envía archivos y URLs a tu equipo desde cualquier aplicación.
- Recibe notificaciones de llamadas entrantes y mensajes SMS en tu PC.
- Panel táctil virtual: Usa la pantalla de tu teléfono como panel táctil de tu equipo.
- Sincronización de notificaciones: Lee tus notificaciones Android desde tu escritorio.
- Control remoto multimedia: Usa tu teléfono como mando a distancia de tus reproductores multimedia Linux.
- Conexión WiFi: no se necesitan cables USB o Bluetooth.
- Cifrado TLS extremo a extremo: tu información está a salvo.
Ten en cuenta que necesitas tener instalado KDE en tu equipo para que esta aplicación funcione, y mantener la versión de escritorio actualizada con la versión de Android para tener acceso a las nuevas funcionalidades.
Información de permisos:
* Permisos de acceso: Necesarios para recibir entradas desde otro dispositivo para controlar su dispositivo Android, si usa la funcionalidad de entrada remota.
* Permisos de localización en segundo plano: Necesarios para saber a que red WiFi está conectado, si usa la funcionalidad de redes confiables.
KDE Connect nunca envía ninguna información a KDE o a terceros. KDE Connect envía datos de un dispositivo a otro usando directamente la red local, nunca a través de internet, y usando cifrado extremo a extremo.
Esta aplicación es parte de un proyecto de código abierto y existe gracias a toda gente que ha contribuido a ella. Visita la página web para acceder al código fuente.

View File

@@ -0,0 +1 @@
KDE Connect integra tu teléfono inteligente y tu equipo

View File

@@ -0,0 +1 @@
KDE Connect

View File

@@ -0,0 +1,20 @@
«KDE Connect»ek zure lan-fluxua gailuen artean bateratzeko ezaugarri multzo bat eskaintzen du:
- Arbela partekatua: Gailu batetik bestera kopiatu eta itsatsi.
- Partekatu fitxategiak eta URLak zure ordenagailuarekin edozein aplikaziotatik.
- Jaso zure ordenagailuan sarrerako deien eta SMS mezuen jakinarazpenak.
- Alegiazko ukimen-sagua: Erabili zure telefonoaren pantaila zure ordenagailuaren ukimen-sagu gisa.
- Jakinarazpenak sinkronizatzea: Irakurri zure Androideko jakinarazpenak zure mahaigainetik.
- Multimediaren urrutiko agintea: Erabili zure telefonoa Linuxeko euskarri jotzaileen urrutiko aginte gisa.
- Wi-Fi konexioa: Ez da USB kablerik edo bluetooth-ik behar.
- Muturren arteko TLS zifratzea: Zure informazioa seguru dago.
Kontuan izan, aplikazio hau ibil dadin KDE Connect zure ordenagailuan instalatu beharko duzula, eta mahaigaineko bertsioa Androideko bertsioarekin eguneratuta mantendu beharko duzula ezaugarri berrienak ibil daitezen.
Babes bereziko baimenei buruzko informazioa:
* Irisgarritasun baimena: Beharrezkoa zure Android telefonoa kontrolatzeko beste gailu baten sarrera jasotzeko, urrutiko sarrera ezaugarria erabiltzen baduzu.
* Atzeko planoko kokapen baimena: Beharrezkoa zein Wi-Fi sarera konektatuta zauden jakiteko, Konfiantzazko sareen ezaugarria erabiltzen baduzu.
«KDE Connect»ek ez dio sekula KDEri edo beste inori informaziorik bidaltzen. «KDE Connect»ek datuak gailu batetik beste batera zuzenean bidaltzen ditu sare lokala erabiliz, sekula ez Internet bidez, eta betiere muturren artean zifratuta.
Aplikazio hau sorburu irekiko proiektu baten zati da, eta horretan lagundu duten lagun guztiei esker existitzen da. Bisitatu webgunea sorburu-kodea hartzeko.

View File

@@ -0,0 +1 @@
«KDE Connect»ek zure telefono adimenduna eta ordenagailua bateratzen ditu

View File

@@ -0,0 +1 @@
KDE Connect

View File

@@ -0,0 +1,14 @@
KDE Connect tarjoaa ominaisuudet työnvuosi eheyttämiseksi laitteiden kesken:
Jaettu leikepöytä: kopioi ja liitä laitteelta toiselle.
Jaa tiedostoja ja verkko-osoitteita tietokoneeseesi mistä sovelluksesta vain.
Saa ilmoitukset saapuvista puheluista ja tekstiviesteistä tietokoneellesi.
Näyttönäppäimistö: käytä puhelimen näyttöä tietokoneesi osoitinlaitteena.
Ilmoitusten tahdistus: lue Android-ilmoituksesi työpöydältä.
Multimedian etähallinta: käytä puhelinta Linux-mediasoitinten kaukosäätimenä.
Langaton verkkoyhteys: USB-johtoa tai Bluetoothia ei tarvita.
Päästä päähän -TLS-salaus: tietosi ovat turvassa.
Huomaa, että sovelluksen toimimiseksi KDE Connect tulee asentaa tietokoneeseen ja pitää ajan tasalla Android-version kanssa, jotta kaikki ominaisuudet toimisivat.
Sovellus on avoimen lähdekoodin projekti ja on olemassa sitä avustaneiden ihmisten ansiosta. Lähdekoodin saat noudettua kotisivulta.

View File

@@ -0,0 +1 @@
KDE Connect eheyttää älypuhelimen ja tietokoneen

View File

@@ -0,0 +1 @@
KDE Connect

View File

@@ -0,0 +1,20 @@
KDE Connect provides a set of features to integrate your workflow across devices:
- Shared clipboard: copy and paste between your devices.
- Share files and URLs to your computer from any app.
- Get notifications for incoming calls and SMS messages on your PC.
- Virtual touchpad: Use your phone screen as your computer's touchpad.
- Notifications sync: Read your Android notifications from the desktop.
- Multimedia remote control: Use your phone as a remote for Linux media players.
- WiFi connection: no USB wire or bluetooth needed.
- End-to-end TLS encryption: your information is safe.
Please note you will need to install KDE Connect on your computer for this app to work, and keep the desktop version up-to-date with the Android version for the latest features to work.
Sensitive permissions information:
* Accessibility permission: Required to receive input from another device to control your Android phone, if you use the Remote Input feature.
* Background location permission: Required to know to which WiFi network you are connected to, if you use the Trusted Networks feature.
KDE Connect never sends any information to KDE nor to any third party. KDE Connect sends data from one device to the other directly using the local network, never through the internet, and using end to end encryption.
This app is part of an open source project and it exists thanks to all the people who contributed to it. Visit the website to grab the source code.

View File

@@ -0,0 +1 @@
KDE Connect intègre votre téléphone et votre ordinateur.

View File

@@ -0,0 +1 @@
KDE Connect

View File

@@ -0,0 +1,14 @@
KDE Connect fornece funcionalidades para facilitar traballar con varios dispositivos:
- Portapapeis compartido: copie e peque entre dispositivos.
- Compartir ficheiros e enderezos URL co computador desde calquera aplicación.
- Obter notificacións de chamadas e mensaxes SMS no computador.
- Panel táctil virtual: use a pantalla do teléfono como panel táctil do computador.
- Sincronización de notificacións: lea as notificacións do teléfono desde o computador.
- Mando a distancia: use o teléfono como mando a distancia para reprodutores multimedia no computador.
- Conexión WiFi: non necesita cable USB nin Bluetooth.
- Cifrado TLS de punto a punto: a súa información está segura.
Para que esta aplicación funcione ten que instalar KDE Connect no computador, e manter a versión do computador e do móbil actualizadas para que funcionen as últimas funcionalidades.
Esta aplicación é parte dun proxecto de software libre e existe grazas á xente que colaborou no proxecto. Visite o sitio web para obter o código fonte.

View File

@@ -0,0 +1 @@
KDE Connect integra teléfono e computador.

View File

@@ -0,0 +1 @@
KDE Connect

View File

@@ -0,0 +1,20 @@
KDE Connect fornisce una serie di funzionalità per integrare il tuo flusso di lavoro su tutti i dispositivi:
- Appunti condivisi: copia e incolla tra i tuoi dispositivi.
- Condividi file e URL sul tuo computer da qualsiasi applicazione.
- Ricevi notifiche per chiamate in arrivo e messaggi SMS sul tuo PC.
- Touchpad virtuale: utilizza lo schermo del telefono come touchpad del computer.
- Sincronizzazione delle notifiche: leggi le notifiche Android dal desktop.
- Telecomando multimediale: usa il tuo telefono come telecomando per i lettori multimediali per Linux.
- Connessione WiFi: non necessita di alcun cavo USB o bluetooth.
- Cifratura TLS end-to-end: le tue informazioni sono al sicuro.
Tieni presente che dovrai installare KDE Connect sul tuo computer affinché questa applicazione funzioni e mantenere la versione desktop aggiornata con la versione Android affinché funzionino le funzionalità più recenti.
Informazioni sensibili sui permessi:
* Permesso di accessibilità: necessaria per ricevere input da un altro dispositivo per controllare il tuo telefono Android, se utilizzi la funzione di immissione remota.
* Permesso alla posizione in background: necessaria per sapere a quale rete WiFi sei collegato, se utilizzi la funzionalità Reti affidabili.
KDE Connect non invia mai alcuna informazione a KDE né a terze parti. KDE Connect invia i dati da un dispositivo all'altro direttamente utilizzando la rete locale, mai attraverso Internet, e utilizzando la cifratura end-to-end.
Questa applicazione fa parte di un progetto open source ed esiste grazie a tutte le persone che vi hanno contribuito. Visita il sito web per ottenere il codice sorgente.

View File

@@ -0,0 +1 @@
KDE Connect integra il tuo smartphone e computer

View File

@@ -0,0 +1 @@
KDE Connect

View File

@@ -0,0 +1,20 @@
KDE Connect は携帯電話と PC を連携させてあなたのワークフローを円滑にします:
・クリップボードの共有: デバイス間でコピー・ペーストできます。
・ファイルや URL をあらゆるアプリからコンピュータに送信できます。
・電話や SMS の通知を PC 上に表示できます。
・仮想タッチパッド: 携帯電話の画面をタッチパッドのように使用できます。
・通知の同期: Android の通知をデスクトップに表示できます。
・マルチメディアリモコン: 携帯電話を PC 上のメディアプレーヤーのリモコンとして使用できます。
・WiFi 接続: USB ケーブルや Bluetooth は必要ありません。
・エンドツーエンド TLS 暗号化: あなたの情報は保護されます。
このアプリを動作させるには、お使いのコンピュータにも KDE Connect をインストールする必要があることに注意してください。最新の機能を使用するために、いずれの機器の KDE Connect も最新バージョンに更新してください。
センシティブな権限に関する情報:
*アクセシビリティ: リモート入力機能を使用する場合、他のデバイスから入力を受信して Android 端末を操作するために要求されます。
*バックグラウンドでの位置情報: 「信頼されたネットワーク」機能を使用する場合、どの WiFi ネットワークに接続されているか検知するために要求されます。
KDE Connect は KDE や第三者にいかなる情報も送信しません。このアプリは、ローカルネットワークを通じてエンドツーエンドで暗号化されたデータを送受信します。インターネットは全く使用されません。
このアプリはオープンソースプロジェクトであり、多くの人々の貢献のもとに成り立っています。ソースコードを取得するには、私たちのウェブサイトを訪れてください。

View File

@@ -0,0 +1 @@
KDE Connect は携帯電話と PC を連携させます

View File

@@ -0,0 +1 @@
KDE Connect

View File

@@ -0,0 +1,20 @@
KDE Connect를 사용하여 여러 장치에서 작업을 이어서 진행할 수 있습니다.
- 공유 클립보드: 장치간 복사와 붙여넣기를 지원합니다.
- 모든 앱과 컴퓨터간 파일이나 URL을 공유할 수 있습니다.
- 컴퓨터에서 수신 전화나 SMS 알림을 받을 수 있습니다.
- 가상 터치패드: 휴대폰 화면을 컴퓨터 터치패드로 사용할 수 있습니다.
- 알림 동기화: 안드로이드 알림을 데스크톱에서 확인할 수 있습니다.
- 멀티미디어 리모콘: 리눅스 미디어 재생기의 리모콘으로 사용할 수 있습니다.
- Wi-Fi 연결: 유선 USB나 블루투스 연결이 필요하지 않습니다.
- 종단간 TLS 암호화: 정보를 안전하게 유지합니다.
이 앱을 사용하려면 KDE Connect를 컴퓨터에도 설치하고, 최신 기능을 사용하려면 데스크톱 버전을 안드로이드 버전에 따라서 업데이트해야 합니다.
권한 정보:
* 접근성 권한: 원격 입력 기능을 사용할 때 다른 장치에서 입력을 받아서 안드로이드 장치를 제어할 때 필요합니다.
* 백그라운드 위치 권한: 신뢰하는 네트워크 기능을 사용할 때 현재 연결된 Wi-Fi 네트워크 정보를 얻으려면 필요합니다.
KDE Connect는 KDE나 제3자에게 정보를 전송하지 않습니다. KDE Connect는 인터넷을 통하지 않고 로컬 네트워크 내에서 장치간 정보를 직접 전송하며, 종단간 암호화를 사용합니다.
이 앱은 오픈 소스 프로젝트의 일부입니다. 웹사이트를 방문하여 소스 코드를 확인할 수 있습니다.

View File

@@ -0,0 +1 @@
KDE Connect는 스마트폰과 컴퓨터를 통합합니다

View File

@@ -0,0 +1 @@
KDE Connect

View File

@@ -0,0 +1,20 @@
KDE Connect biedt een set mogelijkheden om uw werkmethode te integreren tussen apparaten:
- Gedeeld klembord: kopiëren en plakken tussen uw apparaten.
- Bestanden en URL's delen naar uw computer vanuit elke app.
- Meldingen krijgen over inkomende oproepen en SMS berichten op uw PC.
- Virtueel touchpad: uw telefoonscherm gebruiken als het touchpad van uw computer.
- Meldingen synchroniseren: lees uw Android meldingen vanaf het bureaublad.
- Afstandsbediening van multimedia: uw telefoon als een afstandsbediening gebruiken voor Linux mediaspelers.
- WiFi verbinding: geen USB-draad of bluetooth nodig.
- Eind-tot-eind TLS versleuteling: uw informatie is veilig.
Merk op dat u KDE Connect op uw computer moet installeren om deze app te laten werken, en de bureaubladversie up-to-date te houden met de Android-version om de laatste mogelijkheden te laten werken.
Informatie over gevoelige toestemmingen:
* Toegangsrechten: vereist om invoer te ontvangen uit een ander apparaat om uw Android telefoon te besturen, als u de functie Invoer van afstand gebruikt.
* Rechten voor achtergrondlocatie: vereist om te weten naar welk WiFi-netwerk u bent verbonden, als de functie vertrouwde netwerken gebruikt.
KDE Connect stuurt nooit enige informatie naar KDE noch naar een derde partij. KDE Connect verstuurt gegevens van het ene apparaat direct naar het andere met gebruik van het lokale netwerk, nooit via het internet en gebruikt eind-tot-eind versleuteling.
Deze app is onderdeel van een open-source-project en het bestaat dankzij alle mensen die er aan hebben bijgedragen. Bezoek de website om de broncode te verkrijgen.

View File

@@ -0,0 +1 @@
KDE Connect integreert uw smartphone en computer

View File

@@ -0,0 +1 @@
KDE Connect

View File

@@ -0,0 +1,11 @@
O KDE Connect oferece um conjunto de funcionalidades para integrar os seus procedimentos com os dispositivos:
- Área de transferência partilhada: copiar e colar entre os seus dispositivos.
- Partilhar ficheiros e URL's para o seu computador a partir de qualquer aplicação.
- Obter notificações para as chamadas e mensagens SMS recebidas no seu PC.
- Rato por toque virtual: Use o ecrã do seu telefone como o rato do seu computador.
- Sincronização das notificações: Leia as notificações do seu Android no ambiente de trabalho.
- Comando à distância multimédia: Use o seu telefone como um comando para leitores multimédia do Linux.
- Ligação WiFi: sem necessitar de um cabo USB ou de Bluetooth.
- Encriptação TLS ponto-a-ponto: a sua informação está segura.
Lembre-se que terá de instalar o KDE Connect no seu computador para esta aplicação funcionar, e manter a versão no computador actualizada com a versão do Android para as últimas funcionalidades resultarem.
Esta aplicação faz parte de um projecto de código aberto e existe graças a todas as pessoas que contribuíram para elas. Visite a página Web para capturar o código-fonte.

View File

@@ -0,0 +1 @@
O KDE Connect integra o seu telemóvel com o computador

View File

@@ -0,0 +1 @@
KDE Connect

View File

@@ -0,0 +1,20 @@
O KDE Connect fornece um conjunto de recursos para integrar seu fluxo de trabalho entre dispositivos:
- Área de transferência compartilhada: copie e cole entre seus dispositivos.
- Compartilhe arquivos e URLs em seu computador a partir de qualquer app.
- Receba notificações de chamadas recebidas e mensagens SMS no seu PC.
- Touchpad virtual: use a tela do telefone como touchpad do computador.
- Sincronização de notificações: leia as notificações do seu Android na área de trabalho.
- Controle remoto multimídia: use seu telefone como controle remoto para reprodutores de mídia Linux.
- Conexão Wi-Fi: sem necessidade de cabos USB ou bluetooth.
- Criptografia TLS de ponta a ponta: suas informações estão seguras.
Observe que você precisará instalar o KDE Connect no seu computador para que este aplicativo funcione e mantenha a versão para desktop atualizada com a versão do Android para que os recursos mais recentes funcionem.
Informações a respeito de permissões especiais :
* Permissão de acessibilidade: necessária para receber entrada de outro dispositivo para controlar seu telefone Android, se você usar o recurso de entrada remota.
* Permissão de localização em segundo plano: necessária para saber a qual rede Wi-Fi você está conectado, se você usar o recurso de redes confiáveis.
O KDE Connect nunca envia nenhuma informação ao KDE nem a terceiros. O KDE Connect envia dados de um dispositivo para outro diretamente usando a rede local, nunca pela Internet e usando criptografia de ponta a ponta.
Este aplicativo faz parte de um projeto de código aberto e existe graças a todas as pessoas que contribuíram para ele. Visite o site para obter o código-fonte.

View File

@@ -0,0 +1 @@
O KDE Connect integra seu celular e computador

View File

@@ -0,0 +1 @@
KDE Connect

View File

@@ -0,0 +1,19 @@
KDE Connect ponuja niz funkcij za integracijo delovnega procesa na različnih napravah:
- Skupno odložišče: kopirajte in lepite med napravami;
- Datoteke in URL-je lahko z računalnikom delite iz poljubnega programa;
- Prejemanje obvestil o dohodnih klicih in sporočilih SMS na računalniku;
- Virtualna sledilna plošča: uporabite zaslon telefona kot sledilno tablico na računalniku;
- Sinhronizacija obvestil: preberite obvestila iz sistema Android na namizju;
- Večpredstavnostni daljinski upravljalnik: uporabite telefon kot daljinski upravljalnik za večpredstavnostne predvajalnike na Linuxu;
- Šovezava WiFi: ne potrebujete žice USB ali bluetootha;
- Šifriranje TLS od enega konca do drugega: vaši podatki so varni.
Upoštevajte, da morate za delovanje tega programa na računalnik namestiti program KDE Connect in posodobiti namizno različico z različico za Android, da bodo delovale najnovejše funkcije.
Informacija o senzitivnih dovoljenjih:
* Dovoljenje za dostop: Zahtevano za prejemanje vhoda iz druge naprave za upravljanje vašega telefona z Androidom, če uporabljate zmožnost oddaljenega vhoda.
* Dovoljenje lokacije v zaledju: Zahtevano, da se ve na katero WiFi omrežje ste povezani, če uporabljate zmožnost zaupanja vrednega omrežja.
KDE Connect nikoli ne pošilja nobenih informacij niti za KDE niti kateri tretji stranki. KDE Connect pošilja podatke iz ene naprave do druge neposredno z uporabo lokalne mreže, nikoli preko interneta in z uporabo šifriranja od začetka do konca.
Ta program je del odprto-kodnega projekta in obstaja po zaslugi vseh ljudi, ki so prispevali. Obiščite spletno mesto in si zagotovite izvorno kodo.

View File

@@ -0,0 +1 @@
KDE Connect integrira vaš pametni telefon in računalnik

View File

@@ -0,0 +1 @@
KDE Connect

View File

@@ -0,0 +1,20 @@
KDE-anslut tillhandahåller en uppsättning funktioner för att integrera ditt arbetsflöde mellan apparater:
- Delat klippbord: kopiera och klistra in mellan dina apparater.
- Dela filer och webbadresser till din dator från valfritt program.
- Få underrättelse om inkommande samtal och SMS på din dator.
- Virtuell pekplatta: Använd din telefonskärm som din dators pekplatta.
- Synkronisering av underrättelser: Läs dina Android-underrättelser från skrivbordet.
- Multimediafjärrkontroll: Använd din telefon som fjärrkontroll för Linux-mediaspelare.
- WIFI-anslutning: Ingen USB-kabel eller Blåtand behövs.
- TLS-kryptering hela vägen: Din information är säker.
Observera att du måste installera KDE-anslut på din dator för att programmet ska fungerar och hålla skrivbordsversionen uppdaterad med Androidversionen för att de senaste funktionerna ska fungera.
Känslig behörighetsinformation:
* Åtkomsträttigheter: Krävs för att ta emot indata från en annan apparat för att styra din Android-telefon om du använder funktionen fjärrinmatning.
* Bakgrundsåtkomst av plats: Krävs för att veta vilket WIFI-nätverk du är ansluten till, om du använder funktionen Pålitliga nätverk.
KDE-anslut skickar aldrig någon information till KDE eller till någon tredje part. KDE-anslut skickar data från en apparat till en annan direkt med hjälp av det lokala nätverket, aldrig via Internet, och med kryptering hela vägen.
Det här programmet är en del av ett projekt med öppen källkod och det existerar tack vare alla de som bidragit till det. Besök webbplatsen för att hämta källkoden.

View File

@@ -0,0 +1 @@
KDE-anslut integrerar din smarta telefon och dator

View File

@@ -0,0 +1 @@
KDE Connect

View File

@@ -0,0 +1,20 @@
KDE Bağlan, iş akışınızı aygıtlar arasında tümleştirmek için bir dizi özellik sağlar:
- Paylaşılan pano: Aygıtlarınız arasında kopyalayıp yapıştırın.
- Dosyaları ve URL'leri herhangi bir uygulamadan bilgisayarınıza paylaşın.
- Bilgisayarınıza gelen aramalar ve SMS iletileri için bildirimler alın.
- Sanal dokunmatik yüzey: Telefon ekranınızı bilgisayarınızın dokunmatik yüzeyi olarak kullanın.
- Bildirim eşzamanlaması: Android bildirimlerinizi masaüstünden okuyun.
- Çoklu ortam uzaktan kumandası: Telefonunuzu Linux ortam oynatıcıları için uzaktan kumanda olarak kullanın.
- WiFi bağlantısı: USB kablosu veya Bluetooth gerekmez.
- Uçtan uca TLS şifrelemesi: Bilgileriniz güvende.
Bu uygulamanın çalışması için bilgisayarınıza KDE Bağlan'ı kurmanız ve güncel özelliklerin çalışması için masaüstü sürümünü Android sürümüyle güncel tutmanız gerekeceğini lütfen unutmayın.
Hassas izin bilgileri:
* Erişilebilirlik izni: Uzaktan Giriş özelliğini kullanıyorsanız Android telefonunuzu denetlemek üzere başka bir aygıttan giriş almak için gereklidir.
* Arka planda konum izni: Güvenilir Ağlar özelliğini kullanıyorsanız hangi Wi-Fi ağına bağlı olduğunuzu bilmek için gereklidir.
KDE Bağlan, KDE'ye veya herhangi bir üçüncü tarafa asla herhangi bir bilgi göndermez. KDE Bağlan, verileri bir aygıttan diğerine doğrudan yerel ağı kullanarak gönderir, asla interneti kullanmaz ve uçtan uca şifrelemeden yararlanır.
Bu uygulama, açık kaynaklı bir projenin parçasıdır ve ona katkıda bulunan tüm insanlar sayesinde var olur. Kaynak kodunu almak için web sitesini ziyaret edin.

View File

@@ -0,0 +1 @@
KDE Bağlan, akıllı telefonunuzu ve bilgisayarınızı tümleştirir

View File

@@ -0,0 +1 @@
KDE Connect

View File

@@ -0,0 +1,20 @@
KDE Connect надає у ваше розпорядження набір можливостей для виконання інтеграції ваших робочих процесів між пристроями:
- Спільний буфер даних: копіювання і вставлення даних між вашими пристроями.
- Використання файлів та адрес на вашому комп'ютері з будь-якої програми.
- Отримання сповіщень щодо вхідних викликів та повідомлень SMS на вашому комп'ютері.
- Віртуальна сенсорна панель: скористайтеся екраном вашого телефону як сенсорною панеллю комп'ютера.
- Синхронізація сповіщень: читайте ваші сповіщення Android на стільниці комп'ютера.
- Віддалене керування мультимедійними даними: користуйтеся вашим телефоном як пультом керування для програвачів мультимедійних даних у Linux.
- З'єднання WiFi: вам не знадобиться кабель USB або bluetooth.
- Міжвузлове шифрування TLS: ваші дані у безпеці.
Будь ласка, зауважте, що для роботи вам слід встановити KDE Connect на ваш комп'ютер і підтримувати актуальність версії з версією для Android, щоб працювали найсвіжіші можливості.
Відомості щодо прав доступу до конфіденційних даних:
* Права доступу до даних доступності: потрібні для отримання введених даних з іншого пристрою для керування вашим телефоном із Android, якщо ви користуєтеся можливістю віддаленого введення.
* Права доступу до базових даних щодо місця перебування: потрібні для визначення, з якою мережею WiFi вас з'єднано, якщо ви користуєтеся можливістю «Надійні мережі».
KDE Connect ніколи не надсилає жодних відомостей до KDE або будь-яких сторонніх осіб або організацій. KDE Connect надсилає дані з одного пристрою на інший безпосередньо з використанням локальної мережі, ніколи за допомогою інтернету, із використанням міжвузлового шифрування даних.
Ця програма є частиною проєкту із відкритим кодом і вона існує завдяки усім тим людям, які беруть участь у її створенні. Відвідайте сайт, щоб отримати початковий код програми.

View File

@@ -0,0 +1 @@
KDE Connect виконує завдання з інтеграції вашого смартфону і комп'ютера

View File

@@ -0,0 +1 @@
KDE Connect

View File

@@ -0,0 +1,20 @@
KDE Connect 提供了一系列功能,用于整合不同设备之间的工作流:
- 剪贴板共享:跨设备复制粘贴。
- 使用任意 APP 分享文件和 URL 到电脑端。
- 在电脑端获得来电和短信的通知。
- 虚拟触摸板:使用手机屏幕作为电脑端的触摸板。
- 通知同步:在电脑端读取安卓设备的通知。
- 多媒体遥控:使用手机遥控 Linux 环境中的媒体播放器。
- WiFi 连接:无需通过 USB 数据线或者蓝牙连接。
- 端到端 TLS 加密:保障数据安全。
请注意:您必须在电脑端安装 KDE Connect 才能让此 APP 发挥作用。要确保最新功能正常工作,请保持电脑端和安卓 APP 均为最新版本。
敏感权限信息:
* 无障碍辅助功能权限:如果您要使用远程输入功能控制安卓手机,则必须授予无障碍辅助权限以从其他设备接收输入事件。
* 后台位置权限:如果您要使用可信任的网络功能,则必须授予后台位置权限以确定设备正在连接的 WiFi 网络。
KDE Connect 不会发送任何信息给 KDE 或者第三方机构。KDE Connect 通过本地网络直接在设备之间传输数据,不经过互联网,并使用端到端加密保障数据安全。
此 APP 是一个自由开源软件项目的组成部分。它的存续和发展有赖于所有做出了贡献的人员。如需获取源代码,请访问我们的官方网站。

View File

@@ -0,0 +1 @@
KDE Connect 可以整合您的智能手机和电脑

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