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

Compare commits

..

322 Commits

Author SHA1 Message Date
Manuel de la Fuente
3b1f9d92ff initial work on new bigscreen remote ui 2022-09-15 08:00:18 +00: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
250 changed files with 11555 additions and 2521 deletions

View File

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

View File

@@ -2,8 +2,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="org.kde.kdeconnect_tp"
android:versionCode="11510"
android:versionName="1.15.1">
android:versionCode="11910"
android:versionName="1.19.1">
<supports-screens
android:anyDensity="true"
@@ -42,16 +42,21 @@
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" />
<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" />
<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" />
<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:networkSecurityConfig="@xml/network_security_config"
android:theme="@style/KdeConnectTheme"
android:theme="@style/KdeConnectTheme.NoActionBar"
android:name="org.kde.kdeconnect.MyApplication">
<receiver
@@ -72,6 +77,8 @@
<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"
@@ -95,12 +102,6 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
</activity>
<activity
android:name="org.kde.kdeconnect.UserInterface.PluginSettingsActivity"
@@ -174,6 +175,7 @@
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"
@@ -249,11 +251,34 @@
<activity
android:name="org.kde.kdeconnect.Plugins.MousePadPlugin.MousePadActivity"
android:label="@string/pref_plugin_mousepad"
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="Compose send"
android:parentActivityName="org.kde.kdeconnect.Plugins.MousePadPlugin.MousePadActivity">
<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: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"
@@ -266,7 +291,7 @@
</activity>
<activity
android:name="org.kde.kdeconnect.Plugins.SharePlugin.ShareActivity"
android:label="KDE Connect">
android:label="@string/manifest_label_share">
<intent-filter>
<action android:name="android.intent.action.SEND" />
@@ -317,6 +342,16 @@
<action android:name="android.service.chooser.ChooserTargetService" />
</intent-filter>
</service>
<service
android:name="org.kde.kdeconnect.Plugins.MouseReceiverPlugin.MouseReceiverService"
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"
@@ -338,7 +373,49 @@
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: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:permission="android.permission.BIND_CONTROLS">
<intent-filter>
<action android:name="android.service.controls.ControlsProviderService" />
</intent-filter>
</service>
</application>
</manifest>

View File

@@ -13,11 +13,11 @@ 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
@@ -34,4 +34,4 @@ Please know that all translations for all KDE apps are handled by the [localizat
## 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/).

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,29 +1,29 @@
import com.android.build.gradle.AppExtension
import com.android.build.gradle.api.ApkVariantOutput
import com.android.build.gradle.api.ApplicationVariant
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
import com.github.jk1.license.render.TextReportRenderer
buildscript {
ext.kotlin_version = '1.4.10'
repositories {
jcenter()
google()
}
ext.kotlin_version = '1.6.10'
dependencies {
// Pinned 4.0.2 due to this bug on 4.1: https://issuetracker.google.com/issues/172096891
//noinspection GradleDependency
classpath 'com.android.tools.build:gradle:4.0.2'
classpath 'com.android.tools.build:gradle:7.2.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
plugins {
id 'com.github.jk1.dependency-license-report' version '1.16'
}
def licenseResDir = new File("$projectDir/build/dependency-license-res")
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
android {
compileSdkVersion 29
compileSdkVersion 31
defaultConfig {
minSdkVersion 14
targetSdkVersion 29
targetSdkVersion 30
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
multiDexEnabled true
@@ -31,9 +31,6 @@ android {
buildFeatures {
viewBinding true
}
dexOptions {
javaMaxHeapSize "2g"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
@@ -49,7 +46,7 @@ android {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['resources']
res.srcDirs = ['res']
res.srcDirs = [licenseResDir, 'res']
assets.srcDirs = ['assets']
}
test {
@@ -57,13 +54,9 @@ android {
}
}
packagingOptions {
merge "META-INF/DEPENDENCIES"
merge "META-INF/LICENSE"
merge "META-INF/NOTICE"
}
lintOptions {
abortOnError false
checkReleaseBuilds false
resources {
merges += ['META-INF/DEPENDENCIES', 'META-INF/LICENSE', 'META-INF/NOTICE']
}
}
signingConfigs {
debug {
@@ -86,6 +79,10 @@ android {
shrinkResources true
}
}
lint {
abortOnError false
checkReleaseBuilds false
}
}
/**
@@ -137,36 +134,25 @@ Provider<String> gitHashProvider = project.provider {
}
ext {
coroutines_version = '1.3.8'
coroutines_version = '1.6.0'
}
dependencies {
repositories {
jcenter()
google()
/* Needed for org.apache.sshd debugging
maven {
url "https://jitpack.io"
}
*/
}
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.10'
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
implementation 'androidx.multidex:multidex:2.0.1'
implementation 'androidx.media:media:1.2.0'
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.core:core-ktx:1.3.2'
implementation 'androidx.media:media:1.4.3'
implementation 'androidx.appcompat:appcompat:1.4.1'
implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.preference:preference:1.1.1'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation 'androidx.recyclerview:recyclerview:1.2.1'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
implementation 'androidx.documentfile:documentfile:1.0.1'
implementation 'androidx.lifecycle:lifecycle-runtime:2.2.0'
implementation 'androidx.lifecycle:lifecycle-runtime:2.4.0'
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
implementation 'androidx.lifecycle:lifecycle-common-java8:2.2.0'
implementation 'androidx.lifecycle:lifecycle-common-java8:2.4.0'
implementation 'androidx.gridlayout:gridlayout:1.0.0'
implementation 'com.google.android.material:material:1.2.1'
implementation 'com.google.android.material:material:1.5.0'
implementation 'com.jakewharton:disklrucache:2.0.2' //For caching album art bitmaps
implementation 'com.jaredrummler:android-device-names:1.1.9' //To get a human-friendly device name
@@ -176,10 +162,6 @@ dependencies {
//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
//noinspection AnnotationProcessorOnCompilePath - c.f. https://issuetracker.google.com/issues/140881211
implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
implementation 'org.atteo.classindex:classindex:3.6'
annotationProcessor 'org.atteo.classindex:classindex:3.6'
@@ -187,7 +169,7 @@ dependencies {
implementation 'commons-io:commons-io:2.7'
implementation 'org.apache.commons:commons-collections4:4.4'
implementation 'org.apache.commons:commons-lang3:3.10'
implementation 'org.apache.commons:commons-lang3:3.11'
// Kotlin
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
@@ -195,15 +177,27 @@ dependencies {
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version"
// Testing
testImplementation 'junit:junit:4.12'
testImplementation 'junit:junit:4.13.1'
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'
// For device controls
implementation 'org.reactivestreams:reactive-streams:1.0.3'
implementation 'io.reactivex.rxjava2:rxjava:2.2.0'
}
repositories {
google()
mavenCentral()
licenseReport {
configurations = ALL
renderers = [new TextReportRenderer()]
}
generateLicenseReport.doLast {
def target = new File(licenseResDir, "raw/license")
target.parentFile.mkdirs()
target.text =
files("COPYING", "$projectDir/build/reports/dependency-license/THIRD-PARTY-NOTICES.txt")
.collect { it.getText() }.join('\n')
}
preBuild.dependsOn(generateLicenseReport)

View File

@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/* //device/apps/common/res/anim/slide_in_left.xml
**
** SPDX-FileCopyrightText: 2007 The Android Open Source Project
**
** SPDX-License-Identifier: Apache-2.0
*/
-->
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="-50%p" android:toXDelta="0"
android:duration="@android:integer/config_shortAnimTime"/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="@android:integer/config_shortAnimTime" />
</set>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/* //device/apps/common/res/anim/slide_in_right.xml
**
** SPDX-FileCopyrightText: 2007 The Android Open Source Project
**
** SPDX-License-Identifier: Apache-2.0
*/
-->
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="50%p" android:toXDelta="0"
android:duration="@android:integer/config_shortAnimTime"/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="@android:integer/config_shortAnimTime" />
</set>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/* //device/apps/common/res/anim/slide_out_left.xml
**
** SPDX-FileCopyrightText: 2007 The Android Open Source Project
**
** SPDX-License-Identifier: Apache-2.0
*/
-->
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0" android:toXDelta="-50%p"
android:duration="@android:integer/config_shortAnimTime"/>
<alpha android:fromAlpha="1.0" android:toAlpha="0.0"
android:duration="@android:integer/config_shortAnimTime" />
</set>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/* //device/apps/common/res/anim/slide_out_right.xml
**
** SPDX-FileCopyrightText: 2007 The Android Open Source Project
**
** SPDX-License-Identifier: Apache-2.0
*/
-->
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0" android:toXDelta="50%p"
android:duration="@android:integer/config_shortAnimTime"/>
<alpha android:fromAlpha="1.0" android:toAlpha="0.0"
android:duration="@android:integer/config_shortAnimTime" />
</set>

View File

@@ -0,0 +1,26 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path
android:pathData="m0,0h108v108h-108z"
android:fillColor="@color/accent"/>
<path
android:pathData="m0,0h108v108h-108z"
android:strokeAlpha="0.2"
android:fillAlpha="0.2">
<aapt:attr name="android:fillColor">
<gradient
android:startY="0"
android:endY="108"
android:startX="0"
android:endX="0"
android:type="linear">
<item android:offset="0" android:color="#FFFFFFFF"/>
<item android:offset="1" android:color="#00FFFFFF"/>
</gradient>
</aapt:attr>
</path>
</vector>

View File

@@ -0,0 +1,66 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<group android:scaleX="0.8"
android:scaleY="0.8"
android:translateX="10.8"
android:translateY="10.8">
<path
android:pathData="M40,27L68,27A2,2 0,0 1,70 29L70,79A2,2 0,0 1,68 81L40,81A2,2 0,0 1,38 79L38,29A2,2 0,0 1,40 27z"
android:strokeWidth="1.73436">
<aapt:attr name="android:fillColor">
<gradient
android:startY="27"
android:startX="38"
android:endY="81"
android:endX="38"
android:type="linear">
<item android:offset="0" android:color="#FFF5F5F5"/>
<item android:offset="1" android:color="#FFF0F0F0"/>
</gradient>
</aapt:attr>
</path>
<path
android:pathData="m41,30h26v48h-26z"
android:strokeWidth="1.00241"
android:fillColor="#2d2d2d"/>
<path
android:pathData="M50.25,28.25L57.75,28.25A0.25,0.25 0,0 1,58 28.5L58,28.5A0.25,0.25 0,0 1,57.75 28.75L50.25,28.75A0.25,0.25 0,0 1,50 28.5L50,28.5A0.25,0.25 0,0 1,50.25 28.25z"
android:strokeWidth=".632455"
android:fillColor="#2d2d2d"/>
<path
android:pathData="m47.694,47.379c-0.04,0.004 -0.083,0.015 -0.113,0.045 0,0 -1.381,1.381 -1.381,1.381 -0.058,0.058 -0.065,0.147 -0.023,0.218 0,0 1.614,2.665 1.614,2.665 -0.287,0.482 -0.519,0.999 -0.683,1.547 0,0 -2.965,0.616 -2.965,0.616 -0.083,0.017 -0.143,0.096 -0.143,0.18v1.952c0,0.083 0.063,0.153 0.143,0.173 0,0 2.875,0.698 2.875,0.698 0.154,0.634 0.391,1.241 0.706,1.794 0,0 -1.667,2.538 -1.667,2.538 -0.046,0.071 -0.037,0.165 0.023,0.225 0,0 1.381,1.381 1.381,1.381 0.058,0.058 0.147,0.065 0.218,0.023 0,0 2.613,-1.584 2.613,-1.584 0.512,0.296 1.067,0.533 1.652,0.691 0,0 0.608,2.928 0.608,2.928 0.017,0.083 0.088,0.143 0.173,0.143h1.952c0.082,0 0.153,-0.055 0.173,-0.135 0,0 0.721,-2.943 0.721,-2.943 0.603,-0.163 1.171,-0.404 1.697,-0.713 0,0 2.575,1.689 2.575,1.689 0.071,0.046 0.165,0.037 0.225,-0.023 0,0 1.374,-1.381 1.374,-1.381 0.058,-0.058 0.073,-0.147 0.03,-0.218 0,0 -0.938,-1.547 -0.938,-1.547s-0.308,0.098 -0.308,0.098c-0.044,0.014 -0.094,-0.006 -0.12,-0.045 0,0 -0.593,-0.872 -1.366,-2.005 -0.925,1.81 -2.812,3.048 -4.985,3.048 -3.088,0 -5.593,-2.505 -5.593,-5.593 0,-2.271 1.358,-4.222 3.303,-5.098v-1.441c-0.354,0.124 -0.696,0.273 -1.021,0.45 -0.001,-0 0.001,-0.007 0,-0.007 0,0 -2.635,-1.727 -2.635,-1.727 -0.035,-0.023 -0.073,-0.027 -0.113,-0.023 0,0 0,0 0,-0zM55.659,43.85s-3.514,0.338 -3.514,0.338v14.475s3.476,-0.526 3.476,-0.526v-6.171s4.677,6.847 4.677,6.847 3.664,-1.164 3.664,-1.164 -4.79,-6.584 -4.79,-6.584 4.827,-6.209 4.827,-6.209 -3.739,-0.856 -3.739,-0.856 -4.64,6.209 -4.64,6.209 0.038,-6.359 0.038,-6.359z"
android:fillColor="#f2f2f2"/>
<path
android:pathData="m41,30h22l-18,45h-4z"
android:strokeAlpha="0.1"
android:fillAlpha="0.1">
<aapt:attr name="android:fillColor">
<gradient
android:startY="30"
android:startX="41"
android:endY="70"
android:endX="60"
android:type="linear">
<item android:offset="0" android:color="#FFFFFFFD"/>
<item android:offset="1" android:color="#00FFFFFD"/>
</gradient>
</aapt:attr>
</path>
<path
android:fillColor="#FF000000"
android:pathData="m38,78v1c0,1.108 0.892,2 2,2h28c1.108,0 2,-0.892 2,-2v-1c0,1.108 -0.892,2 -2,2h-28c-1.108,0 -2,-0.892 -2,-2z"
android:strokeAlpha="0.1"
android:strokeWidth="1.73436"
android:fillAlpha="0.1"/>
<path
android:pathData="m70,30v-1c0,-1.108 -0.892,-2 -2,-2h-28c-1.108,0 -2,0.892 -2,2v1c0,-1.108 0.892,-2 2,-2h28c1.108,0 2,0.892 2,2z"
android:strokeAlpha="0.5"
android:strokeWidth="1.73436"
android:fillColor="#fffff8"
android:fillAlpha="0.5"/>
</group>
</vector>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

View File

@@ -1,4 +1,4 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt"
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:viewportWidth="32"
android:viewportHeight="32"
android:width="32dp"

View File

@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M11.8,10.9c-2.27,-0.59 -3,-1.2 -3,-2.15 0,-1.09 1.01,-1.85 2.7,-1.85 1.78,0 2.44,0.85 2.5,2.1h2.21c-0.07,-1.72 -1.12,-3.3 -3.21,-3.81V3h-3v2.16c-1.94,0.42 -3.5,1.68 -3.5,3.61 0,2.31 1.91,3.46 4.7,4.13 2.5,0.6 3,1.48 3,2.41 0,0.69 -0.49,1.79 -2.7,1.79 -2.06,0 -2.87,-0.92 -2.98,-2.1h-2.2c0.12,2.19 1.76,3.42 3.68,3.83V21h3v-2.15c1.95,-0.37 3.5,-1.5 3.5,-3.55 0,-2.84 -2.43,-3.81 -4.7,-4.4z"/>
</vector>

View File

@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M20,8h-2.81c-0.45,-0.78 -1.07,-1.45 -1.82,-1.96L17,4.41 15.59,3l-2.17,2.17C12.96,5.06 12.49,5 12,5c-0.49,0 -0.96,0.06 -1.41,0.17L8.41,3 7,4.41l1.62,1.63C7.88,6.55 7.26,7.22 6.81,8L4,8v2h2.09c-0.05,0.33 -0.09,0.66 -0.09,1v1L4,12v2h2v1c0,0.34 0.04,0.67 0.09,1L4,16v2h2.81c1.04,1.79 2.97,3 5.19,3s4.15,-1.21 5.19,-3L20,18v-2h-2.09c0.05,-0.33 0.09,-0.66 0.09,-1v-1h2v-2h-2v-1c0,-0.34 -0.04,-0.67 -0.09,-1L20,10L20,8zM14,16h-4v-2h4v2zM14,12h-4v-2h4v2z"/>
</vector>

View File

@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M9.4,16.6L4.8,12l4.6,-4.6L8,6l-6,6 6,6 1.4,-1.4zM14.6,16.6l4.6,-4.6 -4.6,-4.6L16,6l6,6 -6,6 -1.4,-1.4z"/>
</vector>

View File

@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M19,2h-4.18C14.4,0.84 13.3,0 12,0c-1.3,0 -2.4,0.84 -2.82,2L5,2c-1.1,0 -2,0.9 -2,2v16c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2L21,4c0,-1.1 -0.9,-2 -2,-2zM12,2c0.55,0 1,0.45 1,1s-0.45,1 -1,1 -1,-0.45 -1,-1 0.45,-1 1,-1zM19,20L5,20L5,4h2v3h10L17,4h2v16z"/>
</vector>

View File

@@ -0,0 +1,19 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M5.2496,8.0688l2.83,-2.8268l14.134,14.15l-2.83,2.8268z"/>
<path
android:fillColor="@android:color/white"
android:pathData="M9.4857,3.8272l2.828,-2.8288l5.6576,5.656l-2.828,2.8288z"/>
<path
android:fillColor="@android:color/white"
android:pathData="M0.9989,12.3147l2.8284,-2.8284l5.6568,5.6568l-2.8284,2.8284z"/>
<path
android:fillColor="@android:color/white"
android:pathData="M1,21h12v2h-12z"/>
</vector>

View File

@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,17h-2v-6h2v6zM13,9h-2L11,7h2v2z"/>
</vector>

View File

@@ -0,0 +1,12 @@
<vector
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportHeight="24"
android:viewportWidth="24"
android:width="24dp"
xmlns:android="http://schemas.android.com/apk/res/android">
<path
android:fillColor="@android:color/white"
android:pathData="M7.41,8.59L12,13.17l4.59,-4.58L18,10l-6,6 -6,-6 1.41,-1.41z" />
</vector>

View File

@@ -0,0 +1,12 @@
<vector
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportHeight="24"
android:viewportWidth="24"
android:width="24dp"
xmlns:android="http://schemas.android.com/apk/res/android">
<path
android:fillColor="@android:color/white"
android:pathData="M15.41,16.59L10.83,12l4.58,-4.59L14,6l-6,6 6,6 1.41,-1.41z" />
</vector>

View File

@@ -0,0 +1,12 @@
<vector
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportHeight="24"
android:viewportWidth="24"
android:width="24dp"
xmlns:android="http://schemas.android.com/apk/res/android">
<path
android:fillColor="@android:color/white"
android:pathData="M8.59,16.59L13.17,12 8.59,7.41 10,6l6,6 -6,6 -1.41,-1.41z" />
</vector>

View File

@@ -0,0 +1,12 @@
<vector
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportHeight="24"
android:viewportWidth="24"
android:width="24dp"
xmlns:android="http://schemas.android.com/apk/res/android">
<path
android:fillColor="@android:color/white"
android:pathData="M7.41,15.41L12,10.83l4.59,4.58L18,14l-6,-6 -6,6z" />
</vector>

View File

@@ -0,0 +1,11 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal"
android:autoMirrored="true">
<path
android:fillColor="@android:color/white"
android:pathData="M2.01,21L23,12 2.01,3 2,10l15,2 -15,2z"/>
</vector>

View File

@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M20,4L4,4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM15,18L4,18v-4h11v4zM15,13L4,13L4,9h11v4zM20,18h-4L16,9h4v9z"/>
</vector>

View File

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

View File

@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M3,10h11v2H3V10zM3,8h11V6H3V8zM3,16h7v-2H3V16zM18.01,12.87l0.71,-0.71c0.39,-0.39 1.02,-0.39 1.41,0l0.71,0.71c0.39,0.39 0.39,1.02 0,1.41l-0.71,0.71L18.01,12.87zM17.3,13.58l-5.3,5.3V21h2.12l5.3,-5.3L17.3,13.58z"/>
</vector>

View File

@@ -1,9 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<vector
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportHeight="24"
android:viewportWidth="24"
android:width="24dp"
xmlns:android="http://schemas.android.com/apk/res/android">
<path
android:fillColor="#FF000000"
android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z"/>
android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z" />
</vector>

View File

@@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="48"
android:viewportWidth="48" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#fcfcfc" android:pathData="m26.8172,6.058 l-5.9774,0.5722v24.6133l5.9142,-0.8904v-10.494l7.9499,11.6392 6.2324,-1.972 -8.1405,-11.1935 8.2042,-10.5576 -6.3594,-1.4621 -7.8865,10.5572zM13.2678,12.0558c-0.0675,0.0071 -0.1327,0.0369 -0.1834,0.0877l-2.346,2.3456c-0.0986,0.0989 -0.1172,0.2523 -0.0445,0.3721l2.7467,4.5238c-0.4872,0.819 -0.8776,1.7021 -1.1567,2.6336l-5.0426,1.0489c-0.1403,0.0291 -0.2414,0.1534 -0.2414,0.2973v3.3173c0,0.1403 0.096,0.2618 0.2312,0.2945l4.8943,1.1963c0.261,1.0789 0.6654,2.1016 1.2,3.0416l-2.833,4.32c-0.079,0.1208 -0.0625,0.2798 0.0396,0.3815l2.3452,2.3456c0.0986,0.0984 0.2526,0.1176 0.3729,0.0454l4.4393,-2.6961c0.872,0.5032 1.8124,0.8992 2.8063,1.1677l1.0358,4.98c0.0291,0.1412 0.1539,0.2414 0.2969,0.2414h3.3177c0.1395,0 0.2612,-0.0952 0.2945,-0.232l1.22,-4.9903c1.0246,-0.2765 1.9935,-0.6886 2.8869,-1.2147l4.3747,2.8684c0.1203,0.0792 0.2794,0.0633 0.3815,-0.0387l2.346,-2.3456c0.0992,-0.0992 0.117,-0.2526 0.0441,-0.3721l-1.597,-2.632 -0.5167,0.1634c-0.0753,0.0238 -0.1575,-0.0043 -0.2018,-0.0699 0,0 -1.0186,-1.4912 -2.3342,-3.4167 -1.5727,3.0779 -4.7723,5.1864 -8.4672,5.1864 -5.2496,0 -9.5055,-4.2561 -9.5055,-9.5059 0,-3.8619 2.3035,-7.1832 5.6102,-8.6711v-2.4523c-0.6018,0.2105 -1.1836,0.4644 -1.7362,0.7654 -0.0004,-0.0004 -0.0008,-0.0014 -0.0024,-0.0028l-4.4777,-2.9368c-0.0603,-0.0394 -0.1302,-0.0551 -0.1977,-0.0482z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:viewportWidth="48"
android:viewportHeight="48">
<path
android:pathData="m26.8172,6.058 l-5.9774,0.5722v24.6133l5.9142,-0.8904v-10.494l7.9499,11.6392 6.2324,-1.972 -8.1405,-11.1935 8.2042,-10.5576 -6.3594,-1.4621 -7.8865,10.5572zM13.2678,12.0558c-0.0675,0.0071 -0.1327,0.0369 -0.1834,0.0877l-2.346,2.3456c-0.0986,0.0989 -0.1172,0.2523 -0.0445,0.3721l2.7467,4.5238c-0.4872,0.819 -0.8776,1.7021 -1.1567,2.6336l-5.0426,1.0489c-0.1403,0.0291 -0.2414,0.1534 -0.2414,0.2973v3.3173c0,0.1403 0.096,0.2618 0.2312,0.2945l4.8943,1.1963c0.261,1.0789 0.6654,2.1016 1.2,3.0416l-2.833,4.32c-0.079,0.1208 -0.0625,0.2798 0.0396,0.3815l2.3452,2.3456c0.0986,0.0984 0.2526,0.1176 0.3729,0.0454l4.4393,-2.6961c0.872,0.5032 1.8124,0.8992 2.8063,1.1677l1.0358,4.98c0.0291,0.1412 0.1539,0.2414 0.2969,0.2414h3.3177c0.1395,0 0.2612,-0.0952 0.2945,-0.232l1.22,-4.9903c1.0246,-0.2765 1.9935,-0.6886 2.8869,-1.2147l4.3747,2.8684c0.1203,0.0792 0.2794,0.0633 0.3815,-0.0387l2.346,-2.3456c0.0992,-0.0992 0.117,-0.2526 0.0441,-0.3721l-1.597,-2.632 -0.5167,0.1634c-0.0753,0.0238 -0.1575,-0.0043 -0.2018,-0.0699 0,0 -1.0186,-1.4912 -2.3342,-3.4167 -1.5727,3.0779 -4.7723,5.1864 -8.4672,5.1864 -5.2496,0 -9.5055,-4.2561 -9.5055,-9.5059 0,-3.8619 2.3035,-7.1832 5.6102,-8.6711v-2.4523c-0.6018,0.2105 -1.1836,0.4644 -1.7362,0.7654 -0.0004,-0.0004 -0.0008,-0.0014 -0.0024,-0.0028l-4.4777,-2.9368c-0.0603,-0.0394 -0.1302,-0.0551 -0.1977,-0.0482z"
android:fillColor="#fcfcfc"/>
</vector>

10
res/drawable/ic_key.xml Normal file
View File

@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M12.65,10C11.83,7.67 9.61,6 7,6c-3.31,0 -6,2.69 -6,6s2.69,6 6,6c2.61,0 4.83,-1.67 5.65,-4H17v4h4v-4h2v-4H12.65zM7,14c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2 2,0.9 2,2 -0.9,2 -2,2z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M7,7h10v3l4,-4 -4,-4v3L5,5v6h2L7,7zM17,17L7,17v-3l-4,4 4,4v-3h12v-6h-2v4z" />
</vector>

View File

@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:fillType="evenOdd"
android:pathData="M21,1L3,1c-1.1,0 -2,0.9 -2,2v18c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2L23,3c0,-1.1 -0.9,-2 -2,-2zM7,7h10v3l4,-4 -4,-4v3L5,5v6h2L7,7zM17,17L7,17v-3l-4,4 4,4v-3h12v-6h-2v4z" />
</vector>

View File

@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:fillType="evenOdd"
android:pathData="M21,1L3,1c-1.1,0 -2,0.9 -2,2v18c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2L23,3c0,-1.1 -0.9,-2 -2,-2zM7,7h10v3l4,-4 -4,-4v3L5,5v6h2L7,7zM17,17L7,17v-3l-4,4 4,4v-3h12v-6h-2v4zM13,15L13,9h-1l-2,1v1h1.5v4L13,15z" />
</vector>

View File

@@ -1,9 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
<vector
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
android:tint="?attr/colorControlNormal"
android:viewportHeight="24"
android:viewportWidth="24"
android:width="24dp"
xmlns:android="http://schemas.android.com/apk/res/android">
<path
android:fillColor="#FF000000"
android:pathData="M 16.766667,8.7612589 v 2.5197071 c 0,2.182796 -2.138935,3.959544 -4.766667,3.959544 -2.6277329,0 -4.7666673,-1.776748 -4.7666673,-3.959544 V 8.7612589 H 5.4999999 v 2.5197071 c 0,2.732804 2.4587328,4.991913 5.6333321,5.345392 v 2.933663 H 8.0999999 v 1.439831 H 15.9 V 19.560021 H 12.866667 V 16.626358 C 16.041267,16.272879 18.5,14.01377 18.5,11.280966 V 8.7612589 Z M 12,13.800679 A 3.0333332,2.5197106 0 0 1 8.9666671,11.280966 V 5.5216304 a 3.0333332,2.5197106 0 1 1 6.0666649,0 V 11.280966 A 3.0333332,2.5197106 0 0 1 12,13.800679 Z"/>
android:pathData="M 16.766667,8.7612589 v 2.5197071 c 0,2.182796 -2.138935,3.959544 -4.766667,3.959544 -2.6277329,0 -4.7666673,-1.776748 -4.7666673,-3.959544 V 8.7612589 H 5.4999999 v 2.5197071 c 0,2.732804 2.4587328,4.991913 5.6333321,5.345392 v 2.933663 H 8.0999999 v 1.439831 H 15.9 V 19.560021 H 12.866667 V 16.626358 C 16.041267,16.272879 18.5,14.01377 18.5,11.280966 V 8.7612589 Z M 12,13.800679 A 3.0333332,2.5197106 0 0 1 8.9666671,11.280966 V 5.5216304 a 3.0333332,2.5197106 0 1 1 6.0666649,0 V 11.280966 A 3.0333332,2.5197106 0 0 1 12,13.800679 Z" />
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M10.59,9.17L5.41,4 4,5.41l5.17,5.17 1.42,-1.41zM14.5,4l2.04,2.04L4,18.59 5.41,20 17.96,7.46 20,9.5L20,4h-5.5zM14.83,13.41l-1.41,1.41 3.13,3.13L14.5,20L20,20v-5.5l-2.04,2.04 -3.13,-3.13z" />
</vector>

View File

@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:fillType="evenOdd"
android:pathData="M21,1L3,1c-1.1,0 -2,0.9 -2,2v18c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2L23,3c0,-1.1 -0.9,-2 -2,-2zM10.59,9.17L5.41,4 4,5.41l5.17,5.17 1.42,-1.41zM14.5,4l2.04,2.04L4,18.59 5.41,20 17.96,7.46 20,9.5L20,4h-5.5zM14.83,13.41l-1.41,1.41 3.13,3.13L14.5,20L20,20v-5.5l-2.04,2.04 -3.13,-3.13z" />
</vector>

BIN
res/drawable/konqi.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid
android:color="#000000"/>
<size
android:width="12dp"
android:height="12dp"/>
<stroke
android:width="1dp"
android:color="#ffffff"/>
</shape>

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid
android:color="#000000"/>
<size
android:width="12dp"
android:height="12dp"/>
<stroke
android:width="1dp"
android:color="#ffffff"/>
</shape>
</item>
<item
android:top="4dp"
android:right="4dp"
android:bottom="4dp"
android:left="4dp">
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid
android:color="#ffffff"/>
</shape>
</item>
</layer-list>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="8dp"/>
<stroke android:width="3dp" android:color="?colorAccent" />
</shape>

View File

@@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<size android:width="1000dp" android:height="2dp" />
<solid android:color="#cecbce"/>
</shape>

View File

@@ -3,10 +3,8 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:paddingBottom="25dp"
android:paddingLeft="25dp"
android:paddingRight="25dp"
android:paddingTop="25dp">
android:paddingHorizontal="@dimen/activity_horizontal_margin"
android:paddingVertical="@dimen/activity_vertical_margin">
<ImageView
android:id="@+id/album_art"
@@ -19,6 +17,7 @@
android:scaleType="fitCenter" />
<include
android:id="@+id/mpris_control"
layout="@layout/mpris_control"
android:layout_width="0dp"
android:layout_height="match_parent"

View File

@@ -1,14 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:clickable="false"
android:drawableStart="@drawable/ic_warning"
android:drawablePadding="8dp"
android:drawableTint="?attr/colorControlNormal"
android:paddingTop="16dp"
android:paddingBottom="12dp"
android:text="@string/on_non_trusted_message">
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:text="@string/on_non_trusted_message"
app:drawableTint="?attr/colorControlNormal"
app:drawableStartCompat="@drawable/ic_warning">
</TextView>

View File

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

View File

@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:tools="http://schemas.android.com/tools"
android:background="?android:attr/selectableItemBackground"
android:baselineAligned="false"
android:minHeight="?android:attr/listPreferredItemHeight"
android:orientation="horizontal"
android:paddingStart="4dp"
android:paddingLeft="4dp"
android:gravity="center_vertical"
android:paddingEnd="?android:attr/scrollbarSize"
android:paddingRight="?android:attr/scrollbarSize">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_vertical"
android:orientation="vertical">
<TextView
android:id="@+id/about_person_list_item_entry_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="17sp"
tools:text="Konqi Konqueror" />
<TextView
android:id="@+id/about_person_list_item_entry_task"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:visibility="gone"
tools:text="Developer"
tools:visibility="visible" />
</LinearLayout>
<ImageButton
android:id="@+id/about_person_list_item_entry_visit_homepage_button"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_marginEnd="@dimen/default_gap"
android:layout_marginRight="@dimen/default_gap"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/visit_contributors_homepage"
android:src="@drawable/ic_baseline_web_24"
android:visibility="gone"
app:tint="@color/text_color"
tools:visibility="visible" />
<ImageButton
android:id="@+id/about_person_list_item_entry_email_button"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_marginEnd="4dp"
android:layout_marginRight="4dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/email_contributor"
android:src="@drawable/ic_baseline_send_24"
android:visibility="gone"
app:tint="@color/text_color"
tools:visibility="visible" />
</LinearLayout>

View File

@@ -0,0 +1,137 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
tools:context="org.kde.kdeconnect.UserInterface.About.AboutKDEActivity">
<include layout="@layout/toolbar" android:id="@+id/toolbar_layout" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
android:id="@+id/about_layout"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawablePadding="8dp"
android:gravity="center_vertical"
android:layout_margin="24dp"
android:text="@string/kde_be_free"
android:textAppearance="?attr/textAppearanceHeadline6"
app:drawableLeftCompat="@drawable/ic_kde_48dp"
app:drawableStartCompat="@drawable/ic_kde_48dp"
app:drawableTint="@color/text_color" />
<com.google.android.material.card.MaterialCardView
xmlns:card_view="https://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginStart="12dp"
android:layout_marginRight="12dp"
android:layout_marginEnd="12dp"
android:layout_marginBottom="12dp"
card_view:cardBackgroundColor="@color/card_stroke_color"
card_view:cardCornerRadius="12dp"
card_view:cardElevation="5dp"
card_view:cardUseCompatPadding="true">
<TextView
android:id="@+id/about_text_view"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:padding="12dp"
android:textIsSelectable="true"
tools:text="@string/about_kde_about" />
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
xmlns:card_view="https://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginStart="12dp"
android:layout_marginRight="12dp"
android:layout_marginEnd="12dp"
android:layout_marginBottom="12dp"
card_view:cardBackgroundColor="@color/card_stroke_color"
card_view:cardCornerRadius="12dp"
card_view:cardElevation="5dp"
card_view:cardUseCompatPadding="true">
<TextView
android:id="@+id/report_bugs_or_wishes_text_view"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:padding="12dp"
android:textIsSelectable="true"
tools:text="@string/about_kde_report_bugs_or_wishes" />
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
xmlns:card_view="https://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginStart="12dp"
android:layout_marginRight="12dp"
android:layout_marginEnd="12dp"
android:layout_marginBottom="12dp"
card_view:cardBackgroundColor="@color/card_stroke_color"
card_view:cardCornerRadius="12dp"
card_view:cardElevation="5dp"
card_view:cardUseCompatPadding="true">
<TextView
android:id="@+id/join_kde_text_view"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:padding="12dp"
android:textIsSelectable="true"
tools:text="@string/about_kde_join_kde" />
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
xmlns:card_view="https://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginStart="12dp"
android:layout_marginRight="12dp"
android:layout_marginEnd="12dp"
android:layout_marginBottom="12dp"
card_view:cardBackgroundColor="@color/card_stroke_color"
card_view:cardCornerRadius="12dp"
card_view:cardElevation="5dp"
card_view:cardUseCompatPadding="true">
<TextView
android:id="@+id/support_kde_text_view"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:padding="12dp"
android:textIsSelectable="true"
tools:text="@string/about_kde_support_kde" />
</com.google.android.material.card.MaterialCardView>
<ImageView
android:layout_width="wrap_content"
android:layout_height="256dp"
android:layout_gravity="center"
android:contentDescription="@string/konqi"
android:paddingBottom="12dp"
android:src="@drawable/konqi" />
</LinearLayout>
</ScrollView>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@@ -1,77 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.gridlayout.widget.GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:grid="http://schemas.android.com/apk/res-auto"
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
grid:useDefaultMargins="true">
tools:context="org.kde.kdeconnect.Plugins.BigscreenPlugin.BigscreenActivity">
<ImageButton
android:id="@+id/home_button"
grid:layout_column="0"
grid:layout_row="0"
grid:layout_columnWeight="1"
grid:layout_rowWeight="1"
android:contentDescription="@string/bigscreen_home"
android:src="@drawable/ic_home_black_24dp"
android:theme="@style/DisableableButton" />
<include
android:id="@+id/toolbar_layout"
layout="@layout/toolbar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageButton
android:id="@+id/up_button"
grid:layout_column="1"
grid:layout_row="0"
grid:layout_columnWeight="1"
grid:layout_rowWeight="1"
android:contentDescription="@string/bigscreen_up"
android:src="@drawable/ic_arrow_upward_black_24dp"
android:theme="@style/DisableableButton" />
<org.kde.kdeconnect.UserInterface.Utils.RoundedConstraintLayout
android:id="@+id/rConstraintLayout"
<ImageButton
android:id="@+id/mic_button"
grid:layout_column="2"
grid:layout_columnWeight="1"
grid:layout_row="0"
grid:layout_rowWeight="1"
android:contentDescription="@string/bigscreen_mic"
android:src="@drawable/ic_mic_black"
android:theme="@style/DisableableButton" />
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_margin="24dp"
<ImageButton
android:id="@+id/left_button"
grid:layout_column="0"
grid:layout_row="1"
grid:layout_columnWeight="1"
grid:layout_rowWeight="1"
android:contentDescription="@string/bigscreen_left"
android:src="@drawable/ic_arrow_back_black_24dp"
android:theme="@style/DisableableButton" />
app:layout_constraintBottom_toTopOf="@+id/rLinearLayout"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/toolbar_layout">
<ImageButton
android:id="@+id/select_button"
grid:layout_column="1"
grid:layout_row="1"
grid:layout_columnWeight="1"
grid:layout_rowWeight="1"
android:contentDescription="@string/bigscreen_select"
android:src="@drawable/ic_keyboard_return_black_24dp"
android:theme="@style/DisableableButton" />
<androidx.gridlayout.widget.GridLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/disabled_grey"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageButton
android:id="@+id/right_button"
grid:layout_column="2"
grid:layout_row="1"
grid:layout_columnWeight="1"
grid:layout_rowWeight="1"
android:contentDescription="@string/bigscreen_right"
android:src="@drawable/ic_arrow_forward_black_24dp"
android:theme="@style/DisableableButton" />
<ImageButton
android:id="@+id/up_button"
android:contentDescription="@string/bigscreen_up"
android:src="@drawable/ic_baseline_keyboard_arrow_up_24"
android:theme="@style/TransparentButton"
app:layout_column="1"
app:layout_columnWeight="1"
app:layout_row="0"
app:layout_rowWeight="1" />
<ImageButton
android:id="@+id/down_button"
grid:layout_column="1"
grid:layout_row="2"
grid:layout_columnWeight="1"
grid:layout_rowWeight="1"
android:contentDescription="@string/bigscreen_down"
android:src="@drawable/ic_arrow_downward_black_24dp"
android:theme="@style/DisableableButton" />
</androidx.gridlayout.widget.GridLayout>
<ImageButton
android:id="@+id/left_button"
android:contentDescription="@string/bigscreen_left"
android:src="@drawable/ic_baseline_keyboard_arrow_left_24"
android:theme="@style/TransparentButton"
app:layout_column="0"
app:layout_columnWeight="1"
app:layout_row="1"
app:layout_rowWeight="1" />
<ImageButton
android:id="@+id/select_button"
style="@style/CircleButton"
android:contentDescription="@string/bigscreen_select"
app:layout_column="1"
app:layout_columnWeight="2"
app:layout_row="1"
app:layout_rowWeight="2" />
<ImageButton
android:id="@+id/right_button"
android:contentDescription="@string/bigscreen_right"
android:src="@drawable/ic_baseline_keyboard_arrow_right_24"
android:theme="@style/TransparentButton"
app:layout_column="2"
app:layout_columnWeight="1"
app:layout_row="1"
app:layout_rowWeight="1" />
<ImageButton
android:id="@+id/down_button"
android:contentDescription="@string/bigscreen_down"
android:src="@drawable/ic_baseline_keyboard_arrow_down_24"
android:theme="@style/TransparentButton"
app:layout_column="1"
app:layout_columnWeight="1"
app:layout_row="2"
app:layout_rowWeight="1" />
</androidx.gridlayout.widget.GridLayout>
</org.kde.kdeconnect.UserInterface.Utils.RoundedConstraintLayout>
<LinearLayout
android:id="@+id/rLinearLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="32dp"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/rConstraintLayout">
<ImageButton
android:id="@+id/home_button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:contentDescription="@string/bigscreen_home"
android:src="@drawable/ic_home_black_24dp"
android:theme="@style/DisableableButton"/>
<ImageButton
android:id="@+id/mic_button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:contentDescription="@string/bigscreen_mic"
android:src="@drawable/ic_mic_black"
android:theme="@style/DisableableButton"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBarLayout2"
android:layout_width="match_parent"
android:layout_height="0dp"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" />
</com.google.android.material.appbar.AppBarLayout>
<EditText
android:id="@+id/compose"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="16dp"
android:ems="10"
android:hint="@string/click_here_to_type"
android:imeActionLabel="@string/send_compose"
android:imeOptions="actionSend|actionDone"
android:importantForAutofill="no"
android:inputType="textLongMessage|textMultiLine"
android:isScrollContainer="true"
android:saveEnabled="true"
android:scrollbars="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/appBarLayout2"
app:layout_constraintVertical_bias="1.0"
tools:ignore="SpeakableTextPresentCheck,TextContrastCheck" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

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

View File

@@ -1,113 +1,68 @@
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="org.kde.kdeconnect.UserInterface.DeviceFragment">
<LinearLayout
android:id="@+id/pairing_buttons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical"
android:padding="@dimen/activity_vertical_margin"
android:visibility="gone">
<ProgressBar
android:id="@+id/pair_progress"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone"/>
<TextView
android:id="@+id/pair_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dip"
android:text="@string/device_not_paired"
android:textAppearance="?android:attr/textAppearanceMedium"/>
<Button
android:id="@+id/pair_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/button_round"
android:text="@string/request_pairing"
android:textColor="@android:color/white"/>
<LinearLayout
android:id="@+id/pair_request_buttons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:visibility="gone">
<Button
android:id="@+id/accept_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="4dip"
android:layout_weight="1"
android:background="@drawable/button_round"
android:text="@string/pairing_accept"
android:textColor="@android:color/white"/>
<Button
android:id="@+id/reject_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="4dip"
android:layout_weight="1"
android:background="@drawable/button_round"
android:text="@string/pairing_reject"
android:textColor="@android:color/white"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/error_message_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="horizontal"
android:padding="16dp"
android:visibility="gone">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/error_message_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:importantForAccessibility="no"
android:paddingEnd="8dip"
android:paddingLeft="0dip"
android:paddingRight="8dip"
android:paddingStart="0dip"
android:src="@drawable/ic_error_outline_48dp"
app:tint="?attr/colorHighContrast"
tools:ignore="UnusedAttribute"/>
<TextView
android:id="@+id/not_reachable_message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="@string/unreachable_description"
android:textAppearance="?android:attr/textAppearanceMedium"
android:visibility="gone" />
</LinearLayout>
<!-- Layout shown when device is reachable but not yet paired -->
<include
android:id="@+id/pair_request"
layout="@layout/view_pair_request"
tools:visibility="gone"/>
<!-- Layout shown when we can't pair with device or device is not reachable -->
<include
android:id="@+id/pair_error"
layout="@layout/view_pair_error"
tools:visibility="gone"/>
<!-- Layout shown when device is paired and reachable -->
<ListView
android:id="@+id/buttons_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_height="0dp"
android:fillViewport="true"
android:divider="@drawable/list_divider"
tools:context=".DeviceActivity"
tools:listitem="@layout/list_item_with_icon_entry"/>
tools:listitem="@layout/list_item_with_icon_entry"
android:layout_weight=".8"
android:divider="@null"
android:dividerHeight="0dp" />
<!-- Extra information about the current device -->
<RelativeLayout
android:id="@+id/view_status_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:elevation="4dp"
android:padding="8dp"
android:visibility="gone"
tools:visibility="visible"
tools:ignore="UnusedAttribute">
<TextView
android:id="@+id/view_status_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:padding="4dp"
android:text="@string/view_status_title"
android:textAppearance="@style/TextAppearance.MaterialComponents.Headline5"
/>
<CheckedTextView
android:id="@+id/view_battery_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/view_status_title"
android:checkMark="@null"
android:clickable="false"
android:padding="4dp"
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
android:text="@string/battery_status_unknown"
tools:text="100%"
/>
</RelativeLayout>
</LinearLayout>

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/easter_egg_layout"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#1d99f3"
android:gravity="center">
<ImageView
android:id="@+id/logo"
android:layout_width="396dp"
android:layout_height="396dp"
android:src="@drawable/ic_kde_48dp"
android:contentDescription="@string/easter_egg" />
<TextView
android:id="@+id/angle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/white"
tools:text="90°"/>
</LinearLayout>

View File

@@ -1,23 +1,33 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
xmlns:tools="http://schemas.android.com/tools"
tools:context="org.kde.kdeconnect.Plugins.FindMyPhonePlugin.FindMyPhoneActivity">
<include layout="@layout/toolbar" android:id="@+id/toolbar_layout" />
<Button
android:id="@+id/bFindMyPhone"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:text="@string/findmyphone_found"
android:textSize="50sp" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<Button
android:id="@+id/bFindMyPhone"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:text="@string/findmyphone_found"
android:textSize="50sp" />
</RelativeLayout>
</RelativeLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context="org.kde.kdeconnect.UserInterface.About.LicensesActivity">
<include layout="@layout/toolbar" android:id="@+id/toolbar_layout" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/licenses_text"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@@ -12,17 +12,7 @@
android:layout_width="match_parent"
tools:context="org.kde.kdeconnect.UserInterface.MainActivity">
<com.google.android.material.appbar.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:elevation="8dp"/>
</com.google.android.material.appbar.AppBarLayout>
<include layout="@layout/toolbar" android:id="@+id/toolbar_layout" />
<FrameLayout
android:id="@+id/container"
@@ -37,7 +27,6 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/nav_header"
style="?attr/mainNavigationViewStyle" />
app:headerLayout="@layout/nav_header" />
</androidx.drawerlayout.widget.DrawerLayout>

View File

@@ -1,25 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mousepad_view"
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:keepScreenOn="true"
android:orientation="vertical">
xmlns:tools="http://schemas.android.com/tools"
tools:context="org.kde.kdeconnect.Plugins.MousePadPlugin.MousePadActivity">
<TextView
style="@android:style/TextAppearance.Medium"
<include layout="@layout/toolbar" android:id="@+id/toolbar_layout" />
<RelativeLayout
android:id="@+id/mousepad_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center"
android:padding="12dip"
android:text="@string/mousepad_info" />
android:layout_height="match_parent"
android:keepScreenOn="true"
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<view
android:id="@+id/keyListener"
class="org.kde.kdeconnect.Plugins.MousePadPlugin.KeyListenerView"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
style="@android:style/TextAppearance.Medium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center"
android:padding="12dip"
android:text="@string/mousepad_info" />
</RelativeLayout>
<view
android:id="@+id/keyListener"
class="org.kde.kdeconnect.Plugins.MousePadPlugin.KeyListenerView"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@@ -1,31 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="15dp"
android:paddingLeft="25dp"
android:paddingRight="25dp"
android:paddingTop="25dp">
tools:context="org.kde.kdeconnect.Plugins.MprisPlugin.MprisActivity">
<ImageView
android:id="@+id/album_art"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginBottom="25dp"
android:layout_weight="4"
android:contentDescription="@string/mpris_coverart_description"
android:scaleType="fitCenter" />
<include
layout="@layout/mpris_control"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<fragment android:name="org.kde.kdeconnect.Plugins.SystemvolumePlugin.SystemvolumeFragment"
android:id="@+id/systemvolume_fragment"
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"/>
android:elevation="8dp"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar">
</LinearLayout>
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" />
<com.google.android.material.tabs.TabLayout
android:id="@+id/mpris_tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/toolbar_color"
app:tabIndicatorColor="?android:textColorPrimary"
app:tabSelectedTextColor="?android:textColorPrimary" />
</com.google.android.material.appbar.AppBarLayout>
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/mpris_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@@ -1,31 +1,55 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
xmlns:tools="http://schemas.android.com/tools"
tools:context="org.kde.kdeconnect.Plugins.NotificationsPlugin.NotificationFilterActivity">
<TextView
android:id="@+id/tFilter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="16dp"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:text="@string/filter_apps_info" />
<include layout="@layout/toolbar" android:id="@+id/toolbar_layout" />
<ProgressBar
android:id="@+id/spinner"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="64dip" />
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="org.kde.kdeconnect.Plugins.NotificationsPlugin.NotificationFilterActivity"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<ListView
android:id="@+id/lvFilterApps"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:visibility="gone" />
<com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/smScreenOffNotification"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingBottom="16dp"
android:text="@string/show_notification_if_screen_off" />
</LinearLayout>
<TextView
android:id="@+id/tFilter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="16dp"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:text="@string/filter_apps_info" />
<ProgressBar
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="64dip" />
<ListView
android:id="@+id/lvFilterApps"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:visibility="gone"
android:divider="@android:color/transparent"
android:dividerHeight="4dp" />
</LinearLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@@ -1,7 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragmentPlaceHolder"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
tools:context="org.kde.kdeconnect.UserInterface.PluginSettingsActivity">
<include layout="@layout/toolbar" android:id="@+id/toolbar_layout" />
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragmentPlaceHolder"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@@ -1,63 +1,75 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mpris_control_view"
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="12dp"
android:orientation="vertical">
<TextView
style="@android:style/TextAppearance.Medium"
android:id="@+id/textView"
android:layout_weight="0"
android:layout_marginBottom="6dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/presenter_lock_tip" />
xmlns:tools="http://schemas.android.com/tools"
tools:context="org.kde.kdeconnect.Plugins.PresenterPlugin.PresenterActivity">
<include layout="@layout/toolbar" android:id="@+id/toolbar_layout" />
<LinearLayout
android:id="@+id/mpris_control_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="6dp"
android:orientation="horizontal"
android:layout_weight="1">
android:layout_height="match_parent"
android:padding="12dp"
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<ImageButton
android:id="@+id/previous_button"
<TextView
style="@android:style/TextAppearance.Medium"
android:id="@+id/textView"
android:layout_weight="0"
android:layout_marginBottom="6dp"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:contentDescription="@string/mpris_rew"
android:layout_weight="0.25"
android:layout_marginRight="3dp"
android:layout_marginEnd="3dp"
android:src="@drawable/ic_previous_black"
android:layout_height="wrap_content"
android:text="@string/presenter_lock_tip" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="6dp"
android:orientation="horizontal"
android:layout_weight="1">
<ImageButton
android:id="@+id/previous_button"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:contentDescription="@string/mpris_rew"
android:layout_weight="0.25"
android:layout_marginRight="3dp"
android:layout_marginEnd="3dp"
android:src="@drawable/ic_previous_black"
android:theme="@style/DisableableButton" />
<ImageButton
android:id="@+id/next_button"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="3dp"
android:layout_marginStart="3dp"
android:layout_weight="0.25"
android:contentDescription="@string/mpris_ff"
android:src="@drawable/ic_next_black"
android:theme="@style/DisableableButton" />
</LinearLayout>
<Button
android:id="@+id/pointer_button"
android:layout_width="match_parent"
android:layout_marginBottom="6dp"
android:layout_height="wrap_content"
android:layout_weight="0.30"
android:visibility="gone"
android:text="@string/presenter_pointer"
android:theme="@style/DisableableButton" />
<ImageButton
android:id="@+id/next_button"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="3dp"
android:layout_marginStart="3dp"
android:layout_weight="0.25"
android:contentDescription="@string/mpris_ff"
android:src="@drawable/ic_next_black"
android:theme="@style/DisableableButton" />
</LinearLayout>
<Button
android:id="@+id/pointer_button"
android:layout_width="match_parent"
android:layout_marginBottom="6dp"
android:layout_height="wrap_content"
android:layout_weight="0.30"
android:visibility="gone"
android:text="@string/presenter_pointer"
android:theme="@style/DisableableButton" />
</LinearLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@@ -1,36 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
tools:context="org.kde.kdeconnect.Plugins.RunCommandPlugin.RunCommandActivity">
<ListView
android:id="@+id/run_commands_list"
<include layout="@layout/toolbar" android:id="@+id/toolbar_layout" />
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="4dp"
android:addStatesFromChildren="true"
android:orientation="vertical" />
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/add_command_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="16dp"
android:src="@drawable/ic_action_image_edit_24dp"
app:backgroundTint="@color/primary"
app:layout_anchor="@id/run_commands_list"
app:layout_anchorGravity="bottom|end" />
<ListView
android:id="@+id/run_commands_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="4dp"
android:addStatesFromChildren="true"
android:orientation="vertical"
android:divider="@null"
android:dividerHeight="0dp" />
<TextView
android:id="@+id/add_comand_explanation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:padding="30dp"
android:text="@string/addcommand_explanation"
android:textAlignment="center"
android:textSize="16sp" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/add_command_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="16dp"
android:src="@drawable/ic_action_image_edit_24dp"
app:backgroundTint="@color/primary"
app:layout_anchor="@id/run_commands_list"
app:layout_anchorGravity="bottom|end" />
<TextView
android:id="@+id/add_comand_explanation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:padding="30dp"
android:text="@string/addcommand_explanation"
android:textAlignment="center"
android:textSize="16sp" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
tools:context="org.kde.kdeconnect.Plugins.MousePadPlugin.SendKeystrokesToHostActivity">
<include layout="@layout/toolbar" android:id="@+id/toolbar_layout" />
<LinearLayout
android:id="@+id/sendkeystrokes_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:keepScreenOn="true"
android:orientation="vertical"
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<com.google.android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="4dp"
android:layout_margin="4dp"
app:errorEnabled="true">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/textToSend"
style="@style/Widget.MaterialComponents.TextInputEditText.FilledBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:cursorVisible="true"
android:hint="@string/sendkeystrokes_textbox_hint"
android:inputType="text"
android:lines="1"
android:maxLines="1"
android:scrollHorizontally="true"
android:text="" />
</com.google.android.material.textfield.TextInputLayout>
<ListView
android:id="@+id/devices_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:addStatesFromChildren="true"
android:divider="@null"
android:dividerHeight="0dp"
android:orientation="vertical"
android:paddingTop="8dp"
tools:context=".MainActivity" />
</LinearLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
tools:context="org.kde.kdeconnect.Plugins.SharePlugin.ShareActivity">
<include layout="@layout/toolbar" android:id="@+id/toolbar_layout" />
<androidx.coordinatorlayout.widget.CoordinatorLayout
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_height="match_parent"
android:layout_width="match_parent">
<include
layout="@layout/devices_list"
android:id="@+id/devices_list_layout" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@@ -13,8 +13,6 @@
android:divider="@null"
android:dividerHeight="0dp"
android:orientation="vertical"
android:paddingLeft="16dip"
android:paddingRight="16dip"
tools:context=".MainActivity" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

View File

@@ -0,0 +1,191 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:fillViewport="true">
<LinearLayout
android:id="@+id/about_layout"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.card.MaterialCardView
xmlns:card_view="https://schemas.android.com/apk/res-auto"
android:id="@+id/general_info_card"
android:background="?android:attr/selectableItemBackground"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="12dp"
card_view:cardBackgroundColor="@color/card_stroke_color"
card_view:cardCornerRadius="12dp"
card_view:cardElevation="5dp"
card_view:cardUseCompatPadding="true">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="12dp">
<LinearLayout
android:orientation="horizontal"
android:layout_height="wrap_content"
android:layout_width="match_parent">
<ImageView
android:id="@+id/app_icon"
android:layout_width="52dp"
android:layout_height="52dp"
android:layout_gravity="top"
android:paddingTop="@dimen/nav_header_vertical_spacing"
android:paddingBottom="4dp"
android:contentDescription="@string/kde_connect"
tools:src="@drawable/icon" />
<LinearLayout
android:orientation="vertical"
android:layout_gravity="center_vertical"
android:layout_height="wrap_content"
android:layout_width="match_parent">
<TextView
android:id="@+id/app_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:text="Application Name"
android:textAppearance="?attr/textAppearanceHeadline6" />
<TextView
android:id="@+id/app_version"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="Version 1.xy.z" />
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/app_description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textIsSelectable="true"
android:layout_margin="12dp"
tools:text="Application Description" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<org.kde.kdeconnect.UserInterface.About.AutoGridLayout
android:id="@+id/info_buttons_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:columnCount="3"
app:columnWidth="84dp"
app:changeColumnCountIfTheyHaveOnlyOneElement="true">
<FrameLayout
android:id="@+id/report_bug_button"
style="@style/AboutButton">
<TextView
android:text="@string/report_bug"
app:drawableTopCompat="@drawable/ic_baseline_bug_report_24"
style="@style/AboutButton.TextView" />
</FrameLayout>
<FrameLayout
android:id="@+id/donate_button"
style="@style/AboutButton">
<TextView
android:text="@string/donate"
app:drawableTopCompat="@drawable/ic_baseline_attach_money_24"
style="@style/AboutButton.TextView" />
</FrameLayout>
<FrameLayout
android:id="@+id/source_code_button"
style="@style/AboutButton">
<TextView
android:text="@string/source_code"
app:drawableTopCompat="@drawable/ic_baseline_code_24"
style="@style/AboutButton.TextView" />
</FrameLayout>
<FrameLayout
android:id="@+id/licenses_button"
style="@style/AboutButton">
<TextView
android:text="@string/licenses"
app:drawableTopCompat="@drawable/ic_baseline_gavel_24"
style="@style/AboutButton.TextView" />
</FrameLayout>
<FrameLayout
android:id="@+id/about_kde_button"
style="@style/AboutButton">
<TextView
android:text="@string/about_kde"
app:drawableTopCompat="@drawable/ic_kde_24dp"
style="@style/AboutButton.TextView" />
</FrameLayout>
<FrameLayout
android:id="@+id/website_button"
style="@style/AboutButton">
<TextView
android:text="@string/website"
app:drawableTopCompat="@drawable/ic_baseline_web_24"
style="@style/AboutButton.TextView" />
</FrameLayout>
</org.kde.kdeconnect.UserInterface.About.AutoGridLayout>
<com.google.android.material.card.MaterialCardView
xmlns:card_view="https://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="12dp"
card_view:cardBackgroundColor="@color/card_stroke_color"
card_view:cardCornerRadius="12dp"
card_view:cardElevation="5dp"
card_view:cardUseCompatPadding="true">
<LinearLayout
android:orientation="vertical"
android:layout_gravity="center_vertical"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:padding="12dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/authors"
android:textAppearance="?attr/textAppearanceHeadline6" />
<org.kde.kdeconnect.UserInterface.About.AdapterLinearLayout
android:id="@+id/authors_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="0dp" />
<TextView
android:id="@+id/authors_footer_text"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textSize="14sp"
android:layout_marginTop="8dp"
android:paddingStart="4dp"
android:paddingLeft="4dp"
tools:text="Everyone else who has contributed to KDE Connect over the years"
tools:ignore="RtlSymmetry" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
</ScrollView>

View File

@@ -2,6 +2,7 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical">
<TextView
@@ -9,14 +10,11 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:drawableBottom="@drawable/text_section_header"
android:drawablePadding="4dp"
android:paddingLeft="8dip"
android:paddingRight="8dip"
android:textAllCaps="true"
android:textColor="?android:textColorSecondary"
android:textSize="14sp"
android:textStyle="bold" />
android:paddingLeft="16dip"
android:paddingRight="16dip"
android:textSize="16sp"
tools:text="Header" />
<TextView
android:id="@+id/list_item_category_empty_placeholder"

View File

@@ -3,7 +3,7 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/abc_list_selector_holo_dark"
android:background="?android:attr/selectableItemBackground"
android:baselineAligned="false"
android:gravity="center_vertical"
android:minHeight="?android:attr/listPreferredItemHeight"
@@ -13,8 +13,6 @@
android:paddingRight="?android:attr/scrollbarSize"
android:paddingStart="12dip"
android:id="@+id/list_item_entry">
<!-- We should use android:background="@android:/listChoiceBackgroundIndicator"
instead of abc_list_selector_holo_dark but that's only supported from API11 -->
<TextView
android:id="@+id/list_item_entry_title"

View File

@@ -1,44 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/sink_card"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/systemvolume_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:textAppearance="@style/TextAppearance.AppCompat.Medium" />
android:layout_height="wrap_content"
app:cardCornerRadius="8dp"
app:cardElevation="0dp"
app:contentPadding="8dp"
app:strokeColor="@color/card_stroke_color"
app:strokeWidth="1dp">
<LinearLayout
android:id="@+id/systemvolume_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="8dip"
android:orientation="horizontal">
android:gravity="center"
android:orientation="vertical">
<ImageButton
android:id="@+id/systemvolume_mute"
android:layout_width="30dp"
android:layout_height="30dp"
android:background="@android:color/transparent"
android:contentDescription="@string/mute"
android:scaleType="fitXY"
android:src="@drawable/ic_volume_black"
app:tint="?attr/colorHighContrast" />
<RadioButton
android:id="@+id/systemvolume_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:ellipsize="end"
android:maxLines="1"
android:paddingLeft="14dp"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
tools:text="Device name" />
<SeekBar
android:id="@+id/systemvolume_seek"
android:layout_width="0dp"
<LinearLayout
android:id="@+id/systemvolume_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:max="100" />
android:layout_marginTop="8dip"
android:orientation="horizontal">
<ImageButton
android:id="@+id/systemvolume_mute"
android:layout_width="30dp"
android:layout_height="30dp"
android:background="@android:color/transparent"
android:contentDescription="@string/mute"
android:scaleType="fitXY"
android:src="@drawable/ic_volume_black"
app:tint="?attr/colorHighContrast" />
<SeekBar
android:id="@+id/systemvolume_seek"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:max="100" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>

View File

@@ -3,9 +3,10 @@
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/abc_list_selector_holo_dark"
android:background="?android:attr/selectableItemBackground"
android:baselineAligned="false"
android:gravity="center_vertical"
android:minHeight="?android:attr/listPreferredItemHeight"
@@ -40,7 +41,9 @@
android:fadingEdge="horizontal"
android:singleLine="true"
android:text=""
android:textAppearance="?android:attr/textAppearanceMedium"/>
android:textAppearance="?android:attr/textAppearanceMedium"
tools:maxLength="20"
tools:text="@tools:sample/lorem/random"/>
<TextView
android:id="@+id/list_item_entry_summary"
@@ -52,8 +55,10 @@
android:text=""
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#CC2222"
android:visibility="gone"/>
android:visibility="gone"
tools:text="Other (optional) info"
tools:visibility="visible"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/mouse_cursor"
android:src="@drawable/mouse_pointer" />
</RelativeLayout>

View File

@@ -36,18 +36,56 @@
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceMedium" />
<ImageButton
android:id="@+id/play_button"
android:layout_width="fill_parent"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="75dp"
android:layout_gravity="center"
android:layout_weight="0"
android:adjustViewBounds="false"
android:baselineAlignBottom="true"
android:clickable="false"
android:contentDescription="@string/mpris_play"
android:src="@drawable/ic_play_black"
android:theme="@style/DisableableButton" />
android:orientation="horizontal">
<ImageButton
android:id="@+id/loop_button"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="center"
android:adjustViewBounds="false"
android:baselineAlignBottom="true"
android:clickable="false"
android:contentDescription="@string/mpris_loop"
android:src="@drawable/ic_loop_none_black"
android:theme="@style/DisableableButton"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_percent="0.20" />
<ImageButton
android:id="@+id/play_button"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="center"
android:adjustViewBounds="false"
android:baselineAlignBottom="true"
android:clickable="false"
android:contentDescription="@string/mpris_play"
android:src="@drawable/ic_play_black"
android:theme="@style/DisableableButton"
app:layout_constraintEnd_toStartOf="@id/shuffle_button"
app:layout_constraintStart_toEndOf="@id/loop_button"
app:layout_constraintTop_toTopOf="parent" />
<ImageButton
android:id="@+id/shuffle_button"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="center"
android:adjustViewBounds="false"
android:baselineAlignBottom="true"
android:clickable="false"
android:contentDescription="@string/mpris_shuffle"
android:src="@drawable/ic_shuffle_off_black"
android:theme="@style/DisableableButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintWidth_percent="0.20" />
</androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout
android:layout_width="match_parent"

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingHorizontal="@dimen/activity_horizontal_margin"
android:paddingVertical="@dimen/activity_vertical_margin">
<ImageView
android:id="@+id/album_art"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginBottom="25dp"
android:layout_weight="4"
android:contentDescription="@string/mpris_coverart_description"
android:scaleType="fitCenter" />
<include
android:id="@+id/mpris_control"
layout="@layout/mpris_control"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>

View File

@@ -1,36 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="160dp"
android:background="@drawable/drawer_header"
android:gravity="bottom"
android:orientation="vertical">
android:layout_height="wrap_content"
android:fitsSystemWindows="true">
<TextView
android:id="@+id/kdeconnect_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingEnd="48dp"
android:paddingLeft="16dp"
android:paddingRight="48dp"
android:paddingStart="16dp"
android:paddingTop="8dp"
android:text="@string/kde_connect"
android:textColor="#FFF"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:paddingStart="@dimen/nav_header_horizontal_margin"
android:paddingLeft="@dimen/nav_header_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingEnd="@dimen/nav_header_horizontal_margin"
android:paddingRight="@dimen/nav_header_horizontal_margin"
android:paddingBottom="@dimen/activity_vertical_margin">
<TextView
android:id="@+id/device_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="0dp"
android:paddingBottom="16dp"
android:paddingEnd="48dp"
android:paddingLeft="16dp"
android:paddingRight="48dp"
android:paddingStart="16dp"
android:paddingTop="4dp"
android:text="My device"
android:textColor="#fff" />
<ImageView
android:id="@+id/device_type"
android:layout_width="52dp"
android:layout_height="52dp"
android:layout_gravity="top"
android:paddingTop="@dimen/nav_header_vertical_spacing"
android:paddingBottom="4dp"
tools:srcCompat="@drawable/ic_device_phone_32dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="vertical">
<TextView
android:id="@+id/kdeconnect_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/kde_connect"
android:textAppearance="?attr/textAppearanceHeadline6" />
<TextView
android:id="@+id/device_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?attr/textAppearanceBody2"
android:textColor="@color/material_on_surface_emphasis_medium"
tools:text="My device" />
</LinearLayout>
</LinearLayout>
</FrameLayout>

View File

@@ -1,14 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:clickable="false"
android:drawableStart="@drawable/ic_warning"
android:drawableLeft="@drawable/ic_warning"
android:drawablePadding="8dp"
android:paddingTop="16dp"
android:paddingBottom="12dp"
android:text="@string/on_non_trusted_message">
android:paddingLeft="16dip"
android:paddingRight="16dip"
android:text="@string/on_non_trusted_message"
app:drawableStartCompat="@drawable/ic_warning"
app:drawableLeftCompat="@drawable/ic_warning">
</TextView>

View File

@@ -5,6 +5,8 @@
android:layout_height="wrap_content"
android:paddingTop="16dp"
android:paddingBottom="12dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:text="@string/pairing_description"
android:clickable="false"
android:background="@android:color/transparent"

View File

@@ -1,14 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:drawableStart="@drawable/ic_wifi"
android:drawableLeft="@drawable/ic_wifi"
android:focusable="true"
android:drawablePadding="8dp"
android:paddingTop="16dp"
android:paddingBottom="12dp"
android:text="@string/no_wifi">
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:text="@string/no_wifi"
app:drawableStartCompat="@drawable/ic_wifi"
app:drawableLeftCompat="@drawable/ic_wifi">
</TextView>

View File

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

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.recyclerview.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/audio_devices_recycler"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:orientation="vertical"
android:paddingHorizontal="@dimen/activity_horizontal_margin"
android:paddingVertical="@dimen/activity_vertical_margin">
</androidx.recyclerview.widget.RecyclerView>

16
res/layout/toolbar.xml Normal file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.appbar.AppBarLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:elevation="8dp"
app:title="@string/kde_connect"/>
</com.google.android.material.appbar.AppBarLayout>

View File

@@ -1,38 +1,51 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="org.kde.kdeconnect.UserInterface.TrustedNetworksActivity">
<include layout="@layout/toolbar" android:id="@+id/toolbar_layout" />
<CheckBox
<LinearLayout
android:id="@+id/trusted_networks_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<CheckBox
android:text="@string/allow_all_networks_text"
android:layout_width="match_parent"
android:checked="true"
android:layout_height="wrap_content"
android:id="@+id/trust_all_networks_checkBox"/>
<TextView
<TextView
android:id="@+id/trusted_network_list_empty"
android:layout_width="fill_parent"
android:layout_height="100dp"
android:text="@string/empty_trusted_networks_list_text"
android:gravity="center" />
<ListView
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<Button
android:id="@android:id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone" />
<Button
android:id="@android:id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone" />
</LinearLayout>
</LinearLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/error_message_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="horizontal"
android:padding="16dp"
android:visibility="gone"
tools:visibility="visible">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/error_message_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:importantForAccessibility="no"
android:paddingEnd="8dip"
android:paddingLeft="0dip"
android:paddingRight="8dip"
android:paddingStart="0dip"
android:src="@drawable/ic_error_outline_48dp"
app:tint="?attr/colorHighContrast"
tools:ignore="UnusedAttribute" />
<TextView
android:id="@+id/not_reachable_message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="@string/unreachable_description"
android:textAppearance="?android:attr/textAppearanceMedium"
android:visibility="gone"
tools:visibility="visible" />
</LinearLayout>

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/pairing_buttons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical"
android:padding="@dimen/activity_vertical_margin"
android:visibility="gone"
tools:visibility="visible">
<ProgressBar
android:id="@+id/pair_progress"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone" />
<TextView
android:id="@+id/pair_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dip"
android:text="@string/device_not_paired"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/pair_verification"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawablePadding="5dp"
android:drawableLeft="@drawable/ic_key"
android:drawableStart="@drawable/ic_key"
android:layout_marginBottom="8dip"
android:visibility="gone"
android:text=""
android:textAppearance="?android:attr/textAppearanceMedium" />
<Button
android:id="@+id/pair_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/button_round"
android:text="@string/request_pairing"
android:textColor="@android:color/white" />
<LinearLayout
android:id="@+id/pair_request_buttons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:visibility="gone">
<Button
android:id="@+id/accept_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="4dip"
android:layout_weight="1"
android:background="@drawable/button_round"
android:text="@string/pairing_accept"
android:textColor="@android:color/white" />
<Button
android:id="@+id/reject_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="4dip"
android:layout_weight="1"
android:background="@drawable/button_round"
android:text="@string/pairing_reject"
android:textColor="@android:color/white" />
</LinearLayout>
</LinearLayout>

View File

@@ -11,6 +11,8 @@
android:layout_height="match_parent"
android:layout_margin="4dp"
android:addStatesFromChildren="true"
android:orientation="vertical" />
android:orientation="vertical"
android:divider="@null"
android:dividerHeight="0dp" />
</LinearLayout>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:kdeconnect="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_send_compose"
android:icon="@android:drawable/ic_menu_send"
android:title="@string/send_compose"
kdeconnect:showAsAction="ifRoom" />
<item
android:id="@+id/menu_clear_compose"
android:title="@string/clear_compose"
kdeconnect:showAsAction="always" />
</menu>

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:kdeconnect="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_rise_up"
android:icon="@drawable/ic_arrow_upward_black_24dp"
android:title="@string/rise_up"
android:iconTint="@color/text_color"
kdeconnect:showAsAction="ifRoom" />
<item
android:id="@+id/menu_rise_down"
android:icon="@drawable/ic_arrow_downward_black_24dp"
android:title="@string/rise_down"
android:iconTint="@color/text_color"
kdeconnect:showAsAction="ifRoom" />
</menu>

View File

@@ -8,6 +8,11 @@
android:title="@string/show_keyboard"
kdeconnect:showAsAction="ifRoom" />
<item
android:id="@+id/menu_open_compose_send"
android:icon="@drawable/ic_edit_note_24dp"
android:title="@string/open_compose_send"
kdeconnect:showAsAction="ifRoom" />
<item
android:id="@+id/menu_right_click"
android:title="@string/right_click"

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background"/>
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
</adaptive-icon>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background"/>
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
</adaptive-icon>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -1,18 +1,27 @@
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="kde_connect">كدي المتّصل</string>
<string name="manifest_label_share">أرسِل إلى جهاز</string>
<string name="foreground_notification_no_devices">غير متصل بأي جهاز</string>
<string name="foreground_notification_devices">متّصل بـ: %s</string>
<string name="foreground_notification_send_clipboard">أرسل الحافظة</string>
<string name="pref_plugin_telephony">مُخطِر المهاتفة</string>
<string name="pref_plugin_telephony_desc">أرسل إخطارات للمكالمات الواردة</string>
<string name="pref_plugin_battery">تقرير البطّاريّة</string>
<string name="pref_plugin_battery_desc">بلّغ عن حالة البطّاريّة دوريًّا</string>
<string name="pref_plugin_connectivity_report">تقرير الاتصال</string>
<string name="pref_plugin_sftp">اكشف نظام الملفّات</string>
<string name="pref_plugin_sftp_desc">تسمح بتصفّح نظام ملفّات هذا الهاتف عن بعد</string>
<string name="pref_plugin_clipboard">مزامنة الحافظة</string>
<string name="pref_plugin_clipboard_desc">شارك محتوى الحافظة</string>
<string name="pref_plugin_clipboard_sent">أرسل الحافظة</string>
<string name="pref_plugin_mousepad">الدّخل البعيد</string>
<string name="pref_plugin_mousepad_desc">استخدم الهاتف أو اللوحيّ كفأرة ولوحة مفاتيح</string>
<string name="pref_plugin_mpris">تحكّمات الوسائط المتعدّدة</string>
<string name="pref_plugin_mpris_desc">توفّر تحكّمًا بعيدًا لمشغّل الوسائط</string>
<string name="pref_plugin_runcommand">شغّل أمرًا</string>
<string name="pref_plugin_runcommand_desc">تحفّز أوامر عن بعد من الهاتف أو اللوحيّ</string>
<string name="pref_plugin_contacts">مزامن المتراسلين</string>
<string name="pref_plugin_ping">وخزة</string>
<string name="pref_plugin_ping_desc">أرسل واستقبل وخزات</string>
<string name="pref_plugin_notifications">مزامنة الإخطارات</string>
@@ -23,18 +32,22 @@
<string name="pref_plugin_sharereceiver_desc">شارك الملفّات والعناوين بين الجهازين</string>
<string name="device_list_empty">لا أجهزة</string>
<string name="ok">حسنًا</string>
<string name="sad_ok">حسنًا ):</string>
<string name="cancel">ألغِ</string>
<string name="open_settings">افتح الإعدادات</string>
<string name="no_permissions">عليك إعطاء التّطبيق صلاحيّات للنّفاذ إلى الإخطارات</string>
<string name="send_ping">أرسل وخزة</string>
<string name="open_mpris_controls">تحكّمات الوسائط المتعدّدة</string>
<string name="open_mousepad">الدّخل البعيد</string>
<string name="mousepad_single_tap_settings_title">اضبط إجراء الطَرق بالأصبع</string>
<string name="mousepad_double_tap_settings_title">اضبط إجراء اللمس بإصبعين</string>
<string name="mousepad_triple_tap_settings_title">اضبط إجراء اللمس بثلاث أصابع</string>
<string name="mousepad_sensitivity_settings_title">اضبط حساسيّة لوحة اللمس</string>
<string name="mousepad_acceleration_profile_settings_title">عيّن تسارع المؤشر</string>
<string name="mousepad_scroll_direction_title">اعكس اتّجاه التّمرير</string>
<string-array name="mousepad_tap_entries">
<item>النّقر باليمين</item>
<item>النّقر باليسار</item>
<item>النقر باليمين</item>
<item>النّقر بالوسط</item>
<item>لا شيء</item>
</string-array>
@@ -46,13 +59,17 @@
<item>الأسرع</item>
</string-array>
<string-array name="mousepad_acceleration_profile_entries">
<item>No Acceleration</item>
<item>Weakest</item>
<item>Weaker</item>
<item>Medium</item>
<item>Stronger</item>
<item>Strongest</item>
<item>بدون تسريع</item>
<item>الأكثر ضعفاً</item>
<item>ضعيف</item>
<item>متوسط</item>
<item>أقوى</item>
<item>الأقوى</item>
</string-array>
<string name="view_status_title">الحالة</string>
<string name="battery_status_format">البطارية: %d%%</string>
<string name="battery_status_low_format">البطارية: %d%% منخفضة</string>
<string name="battery_status_charging_format">البطارية: %d%% تشحن</string>
<string name="category_connected_devices">الأجهزة المقترن بها</string>
<string name="category_not_paired_devices">الأجهزة المتوفّرة</string>
<string name="category_remembered_devices">الأجهزة المتذكَّرة</string>
@@ -68,10 +85,9 @@
<string name="error_canceled_by_other_peer">ألغاه ندّ آخر</string>
<string name="encryption_info_title">معلومات التّعمية</string>
<string name="encryption_info_msg_no_ssl">لا يستخدم الجهاز الآخر إصدارة حديثة من «كدي المتّصل»، ستُستخدم طريقة التّعمية القديمة.</string>
<string name="my_device_fingerprint">بصمة SHA1 لشهادة جهازك هي:</string>
<string name="remote_device_fingerprint">بصمة SHA1 لشهادة الجهاز البعيد هي:</string>
<string name="pair_requested">طُلب الاقتران</string>
<string name="pairing_request_from">طلب اقتران من %1s</string>
<string name="tap_to_open">اطرق لتفتح</string>
<string name="received_file_text">المس لفتح \'%1s\'</string>
<string name="tap_to_answer">المس للإجابة</string>
<string name="right_click">أرسل نقرة باليمين</string>
@@ -81,13 +97,18 @@
<string name="request_pairing">اطلب الاقتران</string>
<string name="pairing_accept">اقبل</string>
<string name="pairing_reject">ارفض</string>
<string name="settings">إعدادات</string>
<string name="mpris_play">شغّل</string>
<string name="mpris_pause">ألبث</string>
<string name="mpris_previous">السّابق</string>
<string name="mpris_rew">رجوع</string>
<string name="mpris_ff">تقدّم سريع</string>
<string name="mpris_next">التّالي</string>
<string name="mpris_loop">حلقة</string>
<string name="mpris_shuffle">اخلط</string>
<string name="mpris_volume">المستوى</string>
<string name="mpris_time_settings_title">زرّا التّقدّم والإرجاع</string>
<string name="mpris_time_settings_summary">اضبط الوقت عند نقر زرّيّ التّقديم أو الإرجاع</string>
<string-array name="mpris_time_entries">
<item>10 ثوان</item>
<item>20 ثانية</item>
@@ -95,20 +116,33 @@
<item>دقيقة واحدة</item>
<item>دقيقتان</item>
</string-array>
<string name="share_to">شارك مع...</string>
<string name="protocol_version_newer">يستخدم هذا الجهاز إصدار ميفاق أحدث</string>
<string name="plugin_settings_with_name">إعدادات %s</string>
<string name="invalid_device_name">اسم جهاز غير صالح</string>
<string name="shareplugin_text_saved">استُقبل نصّ، حُفظ إلى الحافظة</string>
<string name="custom_devices_settings">قائمة أجهزة مخصّصة</string>
<string name="custom_device_list">أضف أجهزة بميفاق الإنترنت م​إ</string>
<string name="custom_device_deleted">حُذف الجهاز المخصّص</string>
<string name="custom_device_fab_hint">أضف جهازاً</string>
<string name="undo">تراجع</string>
<string name="share_notification_preference">إخطارات مزعجة</string>
<string name="share_notification_preference_summary">اهتزّ وشغّل صوتًا عند استقبال ملفّ</string>
<string name="share_destination_folder_preference">مجلد الوجهة</string>
<string name="share">شارك</string>
<string name="share_received_file">شارك \"%s\"</string>
<string name="title_activity_notification_filter">مرشّح الإخطارات</string>
<string name="filter_apps_info">ستُزامن الإخطارات من التّطبيقات المحدّدة.</string>
<string name="sftp_sdcard_num">بطاقة SD %d</string>
<string name="sftp_sdcard">بطاقة SD</string>
<string name="sftp_readonly">(للقراءة فقط)</string>
<string name="sftp_camera">صور الكاميرا</string>
<string name="add_device_dialog_title">أضف جهازاً</string>
<string name="add_device_hint">اسم المضيف أو عنوان IP</string>
<string name="sftp_storage_preference_click_to_select">"انقر للاختيار "</string>
<string name="sftp_storage_preference_display_name">اسم العرض</string>
<string name="sftp_action_mode_menu_delete">احذف</string>
<string name="sftp_no_sdcard_detected">لم يكتشف أي بطاقة ذاكرة</string>
<string name="no_players_connected">لم يُعثر على مشغّلات</string>
<string name="send_files">أرسل ملفّات</string>
<string name="pairing_title">أجهزة «كدي المتّصل»</string>
@@ -123,23 +157,108 @@
<string name="findmyphone_title">جِد جهازي</string>
<string name="findmyphone_title_tablet">جِد جهازي اللوحيّ</string>
<string name="findmyphone_description">يرّن هذا الجهاز لتجده</string>
<string name="findmyphone_found">عثر عليه</string>
<string name="open">افتح</string>
<string name="close">أغلق</string>
<string name="select_ringtone">اختر النغمة</string>
<string name="telephony_pref_blocked_title">أرقام محظورة</string>
<string name="mpris_coverart_description">الصورة الفنية للوسيط الحالي</string>
<string name="device_icon_description">أيقونة الجهاز</string>
<string name="settings_icon_description">أيقونة الإعدادات</string>
<string name="presenter_fullscreen">ملء الشّاشة</string>
<string name="presenter_exit">اخرج من العرض التقديمي</string>
<string name="add_command">أضف أمراً</string>
<string name="addcommand_explanation">لا يوجد أوامر مسجلة</string>
<string name="pref_plugin_mprisreceiver">متحكم الوسائط</string>
<string name="notification_channel_default">إخطارات أخرى</string>
<string name="notification_channel_media_control">متحكم الوسائط</string>
<string name="notification_channel_filetransfer">نقل الملفّات</string>
<string name="notification_channel_high_priority">مرتفعة الأولوية</string>
<string name="notification_channel_sms_mms">رسالة جديدة</string>
<string name="mpris_stop">أوقف المشغل الحالي</string>
<string name="copy_url_to_clipboard">انسخ المسار إلى الحافظة</string>
<string name="clipboard_toast">نُسخ إلى الحافظة</string>
<string name="runcommand_notreachable">الجهاز غير قابل الوصول</string>
<string name="runcommand_notpaired">الجهاز غير مقترن</string>
<string name="pref_plugin_findremotedevice">اعثر على جهاز بعيد</string>
<string name="pref_plugin_findremotedevice_desc">رنّ على الجهاز البعيد</string>
<string name="ring">رّن</string>
<string name="pref_plugin_systemvolume">صوت النظام</string>
<string name="mute">اكتم</string>
<string name="all">الكلّ</string>
<string name="devices">الأجهزة</string>
<string name="settings_rename">اسم الجهاز</string>
<string name="settings_dark_mode">سمة مظلمة</string>
<string name="settings_more_settings_title">المزيد من الإعدادات</string>
<string name="privacy_options">خيارات الخصوصية</string>
<string name="set_privacy_options">حدد خيارات الخصوصية</string>
<string name="block_contents">امنح محتويات الإخطارات</string>
<string name="block_images">امنع الصور في الإخطارات</string>
<string name="notification_channel_receivenotification">إخطارات من أجهزة أخرى</string>
<string name="take_picture">شغّل الكاميرا</string>
<string name="presenter_pointer">المؤشر</string>
<string name="trusted_networks">الشّبكات الموثوقة</string>
<string name="add_trusted_network">أضف %s</string>
<string name="allow_all_networks_text">اسمح للكل</string>
<string name="location_permission_needed_title">الإذن مطلوب</string>
<string name="bigscreen_home">المنزل</string>
<string name="bigscreen_up">أعلى</string>
<string name="bigscreen_left">يسار</string>
<string name="bigscreen_select">اختر</string>
<string name="bigscreen_right">يمين</string>
<string name="bigscreen_down">أسفل</string>
<string name="bigscreen_mic">اللاقط</string>
<string name="pref_plugin_bigscreen">متحكم الشاشة الكبيرة</string>
<string name="bigscreen_speech_extra_prompt">حديث</string>
<string name="message_reply_label">ردّ</string>
<string name="mark_as_read_label">علّم كمقروءة</string>
<string name="user_display_name">أنت</string>
<string name="set_default_sms_app_title">أرسل رسالة قصيرة</string>
<string name="set_group_message_as_mms_title">أرسل رسالة جماعية</string>
<string name="set_long_text_as_mms_title">أرسل نص طويل كرسالة وسائط</string>
<string name="convert_to_mms_after_title">حول إلى رسالة وسائط</string>
<string-array name="convert_to_mms_after_entries">
<item>After one message</item>
<item>After two messages</item>
<item>After three messages</item>
<item>After four messages</item>
<item>After five messages</item>
<item>بعد رسالة واحدة</item>
<item>بعد رسالتين</item>
<item>بعد ثلاث رسائل</item>
<item>بعد أربع رسائل</item>
<item>بعد خمس رسائل</item>
</string-array>
<string name="theme_dialog_title">اختر سمة</string>
<string-array name="theme_list">
<item>Set by Battery Saver</item>
<item/>
<item>Dark</item>
<item>معينة بواسطة حافظ البطارية</item>
<item>خفيف</item>
<item>مظلمة</item>
</string-array>
<string-array name="theme_list_v28">
<item/>
<item/>
<item>Dark</item>
<item>افتراضيات النظام</item>
<item>خفيف</item>
<item>مظلمة</item>
</string-array>
<string name="report_bug">أبلغ عن علة</string>
<string name="donate">تبرّع</string>
<string name="source_code">الشيفرة المصدرية</string>
<string name="licenses">الرّخص</string>
<string name="website">موقع الوبّ</string>
<string name="about">عن</string>
<string name="authors">المؤلفين</string>
<string name="thanks_to">الشكر إلى</string>
<string name="easter_egg">بيض الفصح</string>
<string name="email_contributor">راسل المساهم:\n%s</string>
<string name="visit_contributors_homepage">زر صفحة المساهم الرئيسية\n%s</string>
<string name="version">الإصدار %s</string>
<string name="about_kde">عن كدي</string>
<string name="kde_be_free">كدي- كن حرًّا!</string>
<string name="kde">كدي</string>
<string name="konqi">كوينكي</string>
<string name="rise_up">ارفع</string>
<string name="rise_down">اخفض</string>
<string name="click_here_to_type">اطُرق لتكتب</string>
<string name="clear_compose">امسح</string>
<string name="send_compose">أرسل</string>
<string name="open_compose_send">ألف نص</string>
<string name="maintainer_and_developer">المصين ومطوّر</string>
<string name="developer">مطوّر</string>
<string name="bug_fixes_and_general_improvements">إصلاح علل وتحسينات عامة</string>
<string name="send_clipboard">أرسل الحافظة</string>
</resources>

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