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

Compare commits

..

1267 Commits

Author SHA1 Message Date
Albert Vaca Cintora
f747639304 Fix warning about resource IDs becoming non-final soon 2022-01-22 12:03:53 +01:00
Albert Vaca Cintora
6208e0babb Add icon for compose text menu item 2022-01-22 11:52:29 +01:00
Albert Vaca Cintora
7188285dac Compose text: close after sending 2022-01-22 11:52:05 +01:00
Albert Vaca Cintora
fe94854f02 Release 1.19.0 2022-01-22 11:33:36 +01:00
Albert Vaca Cintora
767fbdfdd9 Bump dependencies 2022-01-22 11:28:49 +01:00
Piyush Aggarwal
2a07c1f528 mousereceiverplugin: add support for back and forward mousebuttons 2022-01-22 10:27:55 +00:00
l10n daemon script
0a83597d3c GIT_SILENT made messages (after extraction) 2022-01-22 00:43:42 +00:00
l10n daemon script
e83b5c6e74 GIT_SILENT made messages (after extraction) 2022-01-18 00:43:30 +00:00
l10n daemon script
2468928b05 GIT_SILENT made messages (after extraction) 2022-01-17 00:42:44 +00:00
l10n daemon script
ae3ebec87c GIT_SILENT made messages (after extraction) 2022-01-16 00:43:14 +00:00
Forrest Hilton
64ad798d70 Added a screen to allow users to compose the key strokes to send.
Added a screen to allow users to compose the key strokes to send. This is necessary because the keyboard that appears on the mouse pad screen does not have the voice to text microphone button on my phone. Even if it could be made to appear as it does on my tablet, some kind of text buffering is necessary because the voice text will change its mind.
2022-01-15 20:35:45 +00:00
Maxim Leshchenko
a6339312e4 Fix crash 2022-01-15 20:30:19 +00:00
Maxim Leshchenko
d43c9aa325 Improve code 2022-01-15 20:30:19 +00:00
Maxim Leshchenko
b74a6e6c6e Run command in a separate thread 2022-01-15 20:30:19 +00:00
Maxim Leshchenko
7286b8a24a Add ability to run commands from Android 11 power menu 2022-01-15 20:30:19 +00:00
l10n daemon script
870c40e412 GIT_SILENT made messages (after extraction) 2022-01-15 00:42:58 +00:00
l10n daemon script
99d0e7eb43 GIT_SILENT made messages (after extraction) 2022-01-14 00:43:37 +00:00
l10n daemon script
4ad5733391 GIT_SILENT made messages (after extraction) 2022-01-13 00:43:05 +00:00
l10n daemon script
9cb8d52b4f GIT_SILENT made messages (after extraction) 2022-01-12 00:44:43 +00:00
Piyush Aggarwal
29ca097054 mousepadplugin: allow selecting which click to send for left click 2022-01-10 19:46:18 +00:00
Piyush Aggarwal
9b4c4ff9cb add option for Left click to be triggered when pressing two or three fingers 2022-01-10 19:46:18 +00:00
Piyush Aggarwal
bf40545e11 rename singleClick to leftClick 2022-01-10 19:46:18 +00:00
Maxim Leshchenko
ff3778e983 Show the send clipboard button on the device page only if the application is running on Android 10 or higher 2022-01-10 19:25:07 +00:00
Maxim Leshchenko
2b8d320b87 Add forgotten import 2022-01-10 19:25:07 +00:00
Trevor Terris
3633ee0b69 Move send clipboard button to the main menu 2022-01-10 19:25:07 +00:00
Maxim Leshchenko
492555ab9b Add more ways to send clipboard
Add the ability to send the clipboard to the device via the quick settings tile and via the menu on the device page

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

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

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

## Demo
Here is a small demo

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

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

## Test Plan

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

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

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

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

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

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

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

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

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

This is a collaboration between myself and Albert Vaca

## Test Plan

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

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

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

Also updates some of the header comments for the recent changes

## Test Plan

### Before:
Sending SMS would silently fail

### After:
Sending SMS throws an IllegalArgumentException

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

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

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

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

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

BUG: 401677

## Test Plan

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

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

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

"Excluded ClipboardFloatingActivity from App recents Screen"
ee1562050c

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

Fixes #5

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

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

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

## Details of the workaround

### ClipboardFloatingActivity

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

### Reverted changes for Android X.

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

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

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

## Test Plan

### Before:

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

### After:

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

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

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

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

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

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

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

## Test Plan

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

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

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

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

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

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

* Address review comments

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

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

* Return false if cursor is null

* Return true without checking column

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

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

{F6152314}

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

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

Reviewers: #kde_connect, jdvr

Subscribers: sredman, albertvaka, nicolasfella, apol, kdeconnect

Tags: #kde_connect

Maniphest Tasks: T8539

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

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

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

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, sredman, kdeconnect

Tags: #kde_connect

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

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

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

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

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

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

Reviewers: nicolasfella

Reviewed By: nicolasfella

Subscribers: kdeconnect

Tags: #kde_connect

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

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

BUG: 401677

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

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

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

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

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

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

BUG: 398889

## Test Plan

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

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

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

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

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

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

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

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

Reviewers: #kde_connect, nicolasfella, albertvaka

Reviewed By: #kde_connect, nicolasfella, albertvaka

Subscribers: albertvaka, nicolasfella, andyholmes, kdeconnect

Tags: #kde_connect

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

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

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

Reviewers: #kde_connect, sredman

Reviewed By: #kde_connect, sredman

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

Tags: #kde_connect

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

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

BUG: 349956

{F6373048}

{F6373050}

{F6373051}

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

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

Reviewers: #kde_connect, nicolasfella, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, nicolasfella, kdeconnect

Tags: #kde_connect

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

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

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

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

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

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

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

Reviewers: #kde_connect, albertvaka, sredman

Reviewed By: #kde_connect, albertvaka, sredman

Subscribers: albertvaka, sredman, kdeconnect

Tags: #kde_connect

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

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: eduisters, kdeconnect

Tags: #kde_connect

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

Reviewers: #kde_connect, broulik, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, ngraham, kdeconnect

Tags: #kde_connect

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

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

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

Reviewers: #kde_connect, nicolasfella, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, nicolasfella, kdeconnect

Tags: #kde_connect

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

BUG: 400883

Test Plan: Pairing still works

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, thomasp, kdeconnect

Tags: #kde_connect

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

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

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect

Tags: #kde_connect

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

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

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

Tags: #kde_connect

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect

Tags: #kde_connect

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

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

(Ok button is disabled if you are wondering)

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect

Tags: #kde_connect

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

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

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

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

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

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

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

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

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

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

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: kdeconnect

Tags: #kde_connect

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

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

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

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: kdeconnect

Tags: #kde_connect

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

Test Plan: Apply patch and verify everything works as before

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: shubham, kdeconnect

Tags: #kde_connect

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect

Tags: #kde_connect

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

BUG: 402489

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect

Tags: #kde_connect

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

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect

Tags: #kde_connect

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect

Tags: #kde_connect

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

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect

Tags: #kde_connect

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect

Tags: #kde_connect

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

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, nicolasfella, kdeconnect

Tags: #kde_connect

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

This fix reorders the placeholders.

Reviewers: #kde_connect, eduisters

Reviewed By: #kde_connect, eduisters

Subscribers: kdeconnect

Tags: #kde_connect

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

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

Reviewers: #kde_connect, sredman

Reviewed By: #kde_connect, sredman

Subscribers: ltoscano, nicolasfella, albertvaka, sredman, kdeconnect

Tags: #kde_connect

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

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

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

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

Reviewers: sredman, #kde_connect

Reviewed By: sredman, #kde_connect

Subscribers: sredman, alexkovrigin, kdeconnect

Tags: #kde_connect

Maniphest Tasks: T9850

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

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

This patch corresponds to the KDE-side revision D17516

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

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

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

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

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

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

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: kdeconnect

Tags: #kde_connect

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

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

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: kdeconnect

Tags: #kde_connect

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

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

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

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: kdeconnect

Tags: #kde_connect

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect

Tags: #kde_connect

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

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

netstat -pW | grep kde

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

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

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

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

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

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

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

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: kdeconnect

Tags: #kde_connect

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

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

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

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

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect

Tags: #kde_connect

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

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: kdeconnect

Tags: #kde_connect

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

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: kdeconnect

Tags: #kde_connect

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

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

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

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

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

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect

Tags: #kde_connect

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

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect

Tags: #kde_connect

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

Depends on: D17081

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect

Tags: #kde_connect

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

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect

Tags: #kde_connect

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

Test Plan: TBA

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect

Tags: #kde_connect

Maniphest Tasks: T8637

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

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

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: zhigalin, albertvaka, kdeconnect

Tags: #kde_connect

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

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

Reviewers: sredman

Reviewed By: sredman

Subscribers: sredman, alexkovrigin, kdeconnect

Tags: #kde_connect

Maniphest Tasks: T9841

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

Send new "event" field

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

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

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

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect

Tags: #kde_connect

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

BUG: 397507

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

Apply patch install and send image again

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect

Tags: #kde_connect

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

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

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

BUG: 396051

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

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect

Tags: #kde_connect

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

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

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

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

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

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

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

When you reject the pairing the PairingFragment should be shown

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

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

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect

Tags: #kde_connect

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

Add a helper for this pattern and port existing code

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect

Tags: #kde_connect

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

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect

Tags: #kde_connect

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

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

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

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: kdeconnect

Tags: #kde_connect

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, nicolasfella, sredman, kdeconnect

Tags: #kde_connect

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

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

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

Test Plan: Denie some permissions, open permission explanation dialogs

Reviewers: #kde_connect

Subscribers: kdeconnect, mtijink, #kde_connect

Tags: #kde_connect

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

Add checkbox to (de)select all

{F5812151}

Old proposal:

{F5810640}

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

Reviewers: #kde_connect, broulik

Reviewed By: #kde_connect

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

Tags: #kde_connect

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

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

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect

Tags: #kde_connect

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

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

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

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

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

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

Please see KDE-side patch here: D15543

Test Plan: See test plan in D15543

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect

Tags: #kde_connect

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

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect

Tags: #kde_connect

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

Test Plan: Tested manually.

Reviewers: #kde_connect, nicolasfella, apol

Reviewed By: #kde_connect, nicolasfella, apol

Subscribers: apol, nicolasfella, kdeconnect

Tags: #kde_connect

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

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

Reviewers: albertvaka, nicolasfella, #kde_connect

Reviewed By: albertvaka

Subscribers: kdeconnect, nicolasfella

Tags: #kde_connect

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

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

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

{F6136062}

Reviewers: #kde_connect, apol, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, apol, kdeconnect

Tags: #kde_connect

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

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

Test Plan:
Before:
{F5810802}

After:
{F5810803}

Reviewers: #kde_connect, #vdg, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: kdeconnect, apol, #kde_connect

Tags: #kde_connect

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

Reviewers: #kde_connect, mtijink, albertvaka

Reviewed By: #kde_connect, albertvaka

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

Tags: #kde_connect

Maniphest Tasks: T4659

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

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect, kossebau, #kde_connect

Tags: #kde_connect

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

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

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, apol, kdeconnect, #kde_connect

Tags: #kde_connect

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

{F5950736}

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect, #kde_connect

Tags: #kde_connect

Maniphest Tasks: T9070

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

Reviewed By: #kde_connect, apol

Subscribers: kdeconnect, apol, #kde_connect

Tags: #kde_connect

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

Addresses the following bug:
BUG: 391029

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: sredman, nicolasfella, kdeconnect

Tags: #kde_connect

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

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

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

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

Tags: #kde_connect

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

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

BUG: 367999

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

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

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

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

Reviewers: #kde_connect, mtijink, nicolasfella

Reviewed By: #kde_connect, nicolasfella

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

Tags: #kde_connect

Maniphest Tasks: T8283

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

Reviewers: #kde_connect, sredman

Reviewed By: sredman

Subscribers: albertvaka, sredman, kdeconnect, #kde_connect

Tags: #kde_connect

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

Reviewers: #kde_connect

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

Tags: #kde_connect

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

Reviewers: #kde_connect

Subscribers: mtijink, albertvaka, #kde_connect

Tags: #kde_connect

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

Implements task T6218.

Reviewers: #kde_connect, nicolasfella

Subscribers: apol, albertvaka, nicolasfella

Differential Revision: https://phabricator.kde.org/D8966
2018-05-20 23:32:08 +02:00
l10n daemon script
e8418c171f GIT_SILENT made messages (after extraction) 2018-05-19 03:54:48 +02:00
l10n daemon script
e371119049 GIT_SILENT made messages (after extraction) 2018-05-18 03:36:49 +02:00
Albert Vaca
85c51ee720 Disable crashing plugin and bump version to release
This plugin was crashing for lots of users with Android 4.X
2018-05-16 17:11:36 +02:00
l10n daemon script
3dbe956b30 GIT_SILENT made messages (after extraction) 2018-05-16 03:32:25 +02:00
Albert Vaca
b1dcc3c40f Bumped version to release 2018-05-15 00:55:28 +02:00
Albert Vaca
f5254e504d Hopefully fixed crash in Android 8.1 2018-05-15 00:55:28 +02:00
509 changed files with 35205 additions and 9566 deletions

1
.gitattributes vendored Normal file
View File

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

3
.gitignore vendored
View File

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

View File

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

View File

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

View File

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

View File

@@ -1,8 +1,9 @@
<?xml version="1.0" encoding="utf-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="1830"
android:versionName="1.8.3">
android:versionCode="11900"
android:versionName="1.19">
<supports-screens
android:anyDensity="true"
@@ -15,40 +16,74 @@
android:name="android.hardware.telephony"
android:required="false" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.INTERNET" />
<!--<uses-permission android:name="android.permission.BLUETOOTH" />-->
<!--<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />-->
<!-- <uses-permission android:name="android.permission.BLUETOOTH" /> -->
<!-- <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<uses-permission android:name="android.permission.BATTERY_STATS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECEIVE_MMS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
<application
android:allowBackup="true"
android:icon="@drawable/icon"
android:label="KDE Connect"
android:supportsRtl="true"
android:theme="@style/KdeConnectTheme">
android:allowBackup="false"
android:networkSecurityConfig="@xml/network_security_config"
android:theme="@style/KdeConnectTheme.NoActionBar"
android:name="org.kde.kdeconnect.MyApplication">
<receiver
android:name="com.android.mms.transaction.PushReceiver"
android:exported="true"
android:permission="android.permission.BROADCAST_WAP_PUSH">
<intent-filter>
<action android:name="android.provider.Telephony.WAP_PUSH_DELIVER" />
<data android:mimeType="application/vnd.wap.mms-message" />
</intent-filter>
</receiver>
<service
android:name="com.android.mms.transaction.TransactionService"
android:enabled="true"
android:exported="true" />
<service
android:name="org.kde.kdeconnect.BackgroundService"
android:foregroundServiceType="connectedDevice"
android:icon="@drawable/icon"
android:enabled="true" />
<service
android:name="org.kde.kdeconnect.Plugins.RemoteKeyboardPlugin.RemoteKeyboardService"
android:label="KDE Connect Remote Keyboard"
android:label="@string/remote_keyboard_service"
android:permission="android.permission.BIND_INPUT_METHOD">
<intent-filter>
<action android:name="android.view.InputMethod" />
</intent-filter>
<meta-data
android:name="android.view.im"
android:resource="@xml/remotekeyboardplugin_method" />
@@ -60,12 +95,12 @@
android:theme="@style/KdeConnectTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="org.kde.kdeconnect.UserInterface.SettingsActivity"
android:name="org.kde.kdeconnect.UserInterface.PluginSettingsActivity"
android:label="@string/device_menu_plugins"
android:parentActivityName="org.kde.kdeconnect.UserInterface.MainActivity">
<meta-data
@@ -88,23 +123,6 @@
android:name="android.support.PARENT_ACTIVITY"
android:value="org.kde.kdeconnect.UserInterface.MainActivity" />
</activity>
<activity
android:name="org.kde.kdeconnect.UserInterface.PluginSettingsActivity"
android:label="@string/device_menu_plugins"
android:parentActivityName="org.kde.kdeconnect.UserInterface.SettingsActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="org.kde.kdeconnect.UserInterface.SettingsActivity" />
</activity>
<activity
android:name="org.kde.kdeconnect.Plugins.SharePlugin.ShareSettingsActivity"
android:label="@string/device_menu_plugins"
android:parentActivityName="org.kde.kdeconnect.UserInterface.SettingsActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="org.kde.kdeconnect.Plugins.SharePlugin.ShareSettingsActivity" />
</activity>
<receiver android:name="org.kde.kdeconnect.KdeConnectBroadcastReceiver">
<intent-filter>
@@ -115,6 +133,9 @@
android:path="/"
android:scheme="package" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MY_PACKAGE_REPLACED"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
@@ -133,17 +154,30 @@
android:label="@string/findmyphone_title"
android:launchMode="singleInstance" />
<receiver android:name="org.kde.kdeconnect.Plugins.FindMyPhonePlugin.FindMyPhoneReceiver">
<intent-filter>
<action android:name="org.kde.kdeconnect.Plugins.FindMyPhonePlugin.foundIt" />
</intent-filter>
</receiver>
<!-- Plugin-related activities and services -->
<activity
android:name="org.kde.kdeconnect.Plugins.ClibpoardPlugin.ClipboardFloatingActivity"
android:theme="@style/Theme.Transparent"
android:excludeFromRecents="true"/>
<activity
android:name="org.kde.kdeconnect.Plugins.MprisPlugin.MprisActivity"
android:label="@string/remote_control"
android:parentActivityName="org.kde.kdeconnect.UserInterface.MainActivity"
android:launchMode="singleTop">
android:label="@string/open_mpris_controls"
android:launchMode="singleTop"
android:theme="@style/KdeConnectTheme.NoActionBar"
android:parentActivityName="org.kde.kdeconnect.UserInterface.MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="org.kde.kdeconnect.UserInterface.MainActivity" />
</activity>
<receiver android:name="org.kde.kdeconnect.Plugins.MprisPlugin.MprisMediaNotificationReceiver">
<intent-filter>
<action android:name="android.intent.action.MEDIA_BUTTON" />
@@ -152,16 +186,99 @@
<activity
android:name="org.kde.kdeconnect.Plugins.RunCommandPlugin.RunCommandActivity"
android:label="@string/remote_control"
android:label="@string/pref_plugin_runcommand"
android:parentActivityName="org.kde.kdeconnect.UserInterface.MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="org.kde.kdeconnect.UserInterface.MainActivity" />
</activity>
<activity
android:name="org.kde.kdeconnect.Plugins.MousePadPlugin.MousePadActivity"
android:name="org.kde.kdeconnect.Plugins.RunCommandPlugin.RunCommandWidgetDeviceSelector"
android:excludeFromRecents="true"
android:label="@string/pref_plugin_runcommand"
android:launchMode="singleTask"
android:noHistory="true"
android:screenOrientation="user"
android:theme="@style/Theme.AppCompat.Light.Dialog" />
<service
android:name="org.kde.kdeconnect.Plugins.RunCommandPlugin.RunCommandWidgetDataProviderService"
android:exported="false"
android:permission="android.permission.BIND_REMOTEVIEWS" />
<receiver
android:name="org.kde.kdeconnect.Plugins.RunCommandPlugin.RunCommandWidget"
android:label="@string/pref_plugin_runcommand">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<intent-filter>
<action android:name="RUN_COMMAND_ACTION" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/remotecommandplugin_widget" />
</receiver>
<activity android:name="org.kde.kdeconnect.Plugins.RunCommandPlugin.RunCommandUrlActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="runcommand"
android:scheme="kdeconnect" />
</intent-filter>
</activity>
<activity
android:name="org.kde.kdeconnect.Plugins.BigscreenPlugin.BigscreenActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/remote_control"
android:label="@string/pref_plugin_bigscreen"
android:parentActivityName="org.kde.kdeconnect.UserInterface.MainActivity"
android:windowSoftInputMode="stateHidden|adjustResize">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="org.kde.kdeconnect.UserInterface.MainActivity" />
</activity>
<activity
android:name="org.kde.kdeconnect.Plugins.MousePadPlugin.MousePadActivity"
android:label="@string/pref_plugin_mousepad"
android: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"
android:label="@string/pref_plugin_presenter"
android:parentActivityName="org.kde.kdeconnect.UserInterface.MainActivity"
android:windowSoftInputMode="stateHidden|adjustResize">
<meta-data
@@ -170,7 +287,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" />
@@ -191,8 +308,14 @@
android:value="org.kde.kdeconnect.Plugins.SharePlugin.ShareChooserTargetService" />
</activity>
<receiver android:name="org.kde.kdeconnect.Plugins.SharePlugin.ShareBroadcastReceiver">
<intent-filter>
<action android:name="org.kde.kdeconnect.Plugins.SharePlugin.CancelShare" />
</intent-filter>
</receiver>
<provider
android:name="android.support.v4.content.FileProvider"
android:name="androidx.core.content.FileProvider"
android:authorities="org.kde.kdeconnect_tp.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
@@ -215,6 +338,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"
@@ -225,7 +358,60 @@
android:value="org.kde.kdeconnect.UserInterface.PluginSettingsActivity" />
</activity>
<activity android:name="org.kde.kdeconnect.Plugins.PhotoPlugin.PhotoActivity" />
<activity
android:name="org.kde.kdeconnect.UserInterface.TrustedNetworksActivity"
android:label="@string/trusted_networks"
android:parentActivityName="org.kde.kdeconnect.UserInterface.MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="org.kde.kdeconnect.UserInterface.MainActivity" />
</activity>
<activity
android:name="org.kde.kdeconnect.UserInterface.About.EasterEggActivity"
android:label="@string/easter_egg"
android:parentActivityName="org.kde.kdeconnect.UserInterface.MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="org.kde.kdeconnect.UserInterface.MainActivity" />
</activity>
<activity
android:name="org.kde.kdeconnect.UserInterface.About.AboutKDEActivity"
android:label="@string/about_kde"
android:parentActivityName="org.kde.kdeconnect.UserInterface.MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="org.kde.kdeconnect.UserInterface.MainActivity" />
</activity>
<activity
android:name="org.kde.kdeconnect.UserInterface.About.LicensesActivity"
android:label="@string/licenses"
android:parentActivityName="org.kde.kdeconnect.UserInterface.MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="org.kde.kdeconnect.UserInterface.MainActivity" />
</activity>
<service
android:name="org.kde.kdeconnect.Plugins.ClibpoardPlugin.ClipboardTileService"
android:icon="@drawable/ic_baseline_content_paste_24"
android: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>

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

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

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

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

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

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

View File

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

View File

@@ -13,17 +13,25 @@ All this without wires, over the already existing WiFi network, and using TLS en
## About this app
This is a native Android port of the KDE Connect Qt app. You will find a more complete readme about KDE Connect [here](https://github.com/KDE/kdeconnect-kde).
This is a native Android port of the KDE Connect Qt app. You will find a more complete readme about KDE Connect [here](https://invent.kde.org/network/kdeconnect-kde/).
## How to install this app
You can install this app from the [Play Store](https://play.google.com/store/apps/details?id=org.kde.kdeconnect_tp) as well as [F-Droid](https://f-droid.org/repository/browse/?fdid=org.kde.kdeconnect_tp). Note you will also need to install the [desktop app](https://github.com/KDE/kdeconnect-kde) for it to work.
You can install this app from the [Play Store](https://play.google.com/store/apps/details?id=org.kde.kdeconnect_tp) as well as [F-Droid](https://f-droid.org/repository/browse/?fdid=org.kde.kdeconnect_tp). Note you will also need to install the [desktop app](https://invent.kde.org/network/kdeconnect-kde) for it to work.
## Contributing
To contribute patches, use [KDE Connect's Phabricator](https://phabricator.kde.org/project/profile/159/). There you can also find a task list with stuff to do, and links to other relevant resources. It is a good idea to also subscribe to the [KDE Connect mailing list](https://mail.kde.org/mailman/listinfo/kdeconnect).
A lot of useful information, including how to get started working on KDE Connect and how to connect with the current developers, is on our [KDE Community Wiki page](https://community.kde.org/KDEConnect)
For bug reporting, please use [KDE's Bugzilla](https://bugs.kde.org). Please do not use the issue tracker in GitLab since we want to keep everything in one place.
To contribute patches, use [KDE Connect's Gitlab](https://invent.kde.org/kde/kdeconnect-android/).
On Gitlab (as well as on our [old Phabricator](https://phabricator.kde.org/tag/kde_connect/)) you can find a task list with stuff to do and links to other relevant resources.
It is a good idea to also subscribe to the [KDE Connect mailing list](https://mail.kde.org/mailman/listinfo/kdeconnect).
Please know that all translations for all KDE apps are handled by the [localization team](https://l10n.kde.org/). If you would like to submit a translation, that should be done by working with the proper team for that language.
## License
[GNU GPL v2](https://www.gnu.org/licenses/gpl-2.0.html) and [GNU GPL v3](https://www.gnu.org/licenses/gpl-3.0.html)
If you are reading this from Github, you should know that this is just a mirror of the [KDE Project repo](https://projects.kde.org/projects/extragear/network/kdeconnect-android/repository/).
If you are reading this from Github, you should know that this is just a mirror of the [KDE Project repo](https://invent.kde.org/network/kdeconnect-android/).

View File

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

View File

@@ -1,89 +1,223 @@
import com.android.build.gradle.AppExtension
import com.android.build.gradle.api.ApkVariantOutput
import com.android.build.gradle.api.ApplicationVariant
import com.github.jk1.license.render.TextReportRenderer
buildscript {
ext.kotlin_version = '1.6.10'
repositories {
jcenter()
mavenCentral()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.2'
classpath 'com.android.tools.build:gradle:7.0.4'
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 {
buildToolsVersion '27.0.3'
compileSdkVersion 25
compileSdkVersion 31
defaultConfig {
minSdkVersion 9
targetSdkVersion 25
//multiDexEnabled true
//testInstrumentationRunner "com.android.test.runner.MultiDexTestRunner"
minSdkVersion 14
targetSdkVersion 30
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
multiDexEnabled true
}
dexOptions {
javaMaxHeapSize "2g"
buildFeatures {
viewBinding true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
// Flag to enable support for the new language APIs
coreLibraryDesugaringEnabled true
}
sourceSets {
kotlinOptions {
jvmTarget = '1.8'
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['resources']
res.srcDirs = ['res']
res.srcDirs = [licenseResDir, 'res']
assets.srcDirs = ['assets']
}
androidTest {
test {
java.srcDirs = ['tests']
}
}
packagingOptions {
pickFirst "META-INF/DEPENDENCIES"
pickFirst "META-INF/LICENSE"
pickFirst "META-INF/NOTICE"
pickFirst "META-INF/BCKEY.SF"
pickFirst "META-INF/BCKEY.DSA"
pickFirst "META-INF/INDEX.LIST"
pickFirst "META-INF/io.netty.versions.properties"
merge "META-INF/DEPENDENCIES"
merge "META-INF/LICENSE"
merge "META-INF/NOTICE"
}
lintOptions {
abortOnError false
checkReleaseBuilds false
}
buildTypes {
signingConfigs {
debug {
minifyEnabled false
useProguard false
}
release { //keep on 'release', set to 'all' when testing to make sure proguard is not deleting important stuff
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
storeFile file("debug.keystore")
storePassword 'android'
keyAlias 'androiddebugkey'
keyPassword 'android'
}
}
buildTypes {
debug {
minifyEnabled true
shrinkResources true
signingConfig signingConfigs.debug
}
// keep minifyEnabled false above for faster builds; set to 'true'
// when testing to make sure ProGuard/R8 is not deleting important stuff
release {
minifyEnabled true
shrinkResources true
}
}
}
/**
* This is a special on-demand Gradle object.
*
* Its value will not be determined until someone calls one of the gitHashProvider.getXXX() methods.
*
* If it does not encounter an explicit 'return' statement, getHashProvider.isPresent() will return false.
*/
Provider<String> gitHashProvider = project.provider {
Process gitCommand = null
try {
// This invokes 'git' immediately, but does not wait for it to finish
gitCommand = 'git rev-parse --short HEAD'.execute([], project.rootDir)
} catch (IOException ignored) {
}
if (gitCommand == null) {
logger.log(LogLevel.WARN, "Could not make use of the 'git' command-line tool. Output filenames will not be customized.")
} else if (gitCommand.waitFor() == 0) {
// This call to '::getText' (using the 'text' Groovy accessor syntax) collects the
// output stream
return '-' + gitCommand.text.trim()
} else {
logger.log(
LogLevel.WARN,
"Could not determine which commit is currently checked out -" +
" did you download this code without the .git directory?"
)
}
}
// We know we can safely cast the 'android' type to the 'AppExtension' class because
// we used the 'com.android.application' plugin at the top of the file.
//
// Note the use of the '::all' extension method; unlike '::each', it can detect every
// object added to the collection, no matter in which build phase that happens.
(android as AppExtension).applicationVariants.all { ApplicationVariant v ->
logger.log(LogLevel.INFO, "Found a variant called '${v.name}'.")
if (v.buildType.debuggable) {
// We're looking at variants made from android.buildTypes.debug! This one
// might have multiple outputs, but only one output will be an APK file.
v.outputs.matching { it instanceof ApkVariantOutput }.all {
// Default output filename is "${project.name}-${v.name}.apk". We want
// the Git commit short-hash to be added onto that default filename.
(it as ApkVariantOutput).outputFileName = "${project.name}-${v.name}${gitHashProvider.getOrElse("")}.apk"
}
}
}
ext {
coroutines_version = '1.5.0'
}
dependencies {
repositories {
jcenter()
mavenCentral()
google()
/* Needed for org.apache.sshd debugging
maven {
url "https://jitpack.io"
}
*/
}
implementation 'com.android.support:support-v4:25.4.0'
implementation 'com.android.support:appcompat-v7:25.4.0'
implementation 'com.android.support:design:25.4.0'
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
implementation 'androidx.multidex:multidex:2.0.1'
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.2.1'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
implementation 'androidx.documentfile:documentfile:1.0.1'
implementation 'androidx.lifecycle:lifecycle-runtime:2.4.0'
implementation "androidx.lifecycle:lifecycle-extensions: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.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
implementation 'org.apache.sshd:sshd-core:0.8.0' //0.9 seems to fail on Android 6 and 1.+ requires java.nio.file, which doesn't exist in Android
implementation 'org.apache.sshd:sshd-core:0.14.0'
implementation 'org.apache.mina:mina-core:2.0.19' //For some reason, makes sshd-core:0.14.0 work without NIO, which isn't available until Android 8 (api 26)
implementation 'com.madgag.spongycastle:pkix:1.54.0.0' //For SSL certificate generation
//implementation('com.github.bright:slf4android:0.1.6') { transitive = true } // For org.apache.sshd debugging
implementation 'com.madgag.spongycastle:bcpkix-jdk15on:1.58.0.0' //For SSL certificate generation
implementation 'org.atteo.classindex:classindex:3.6'
annotationProcessor 'org.atteo.classindex:classindex:3.6'
implementation 'com.klinkerapps:android-smsmms:5.2.6' //For SMS and MMS purposes
implementation 'commons-io:commons-io:2.7'
implementation 'org.apache.commons:commons-collections4:4.4'
implementation 'org.apache.commons:commons-lang3:3.11'
// Kotlin
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version"
// Testing
androidTestImplementation 'org.mockito:mockito-core:1.10.19'
androidTestImplementation 'com.google.dexmaker:dexmaker-mockito:1.1'// Because mockito has some problems with dex environment
androidTestImplementation 'org.skyscreamer:jsonassert:1.3.0'
testImplementation 'junit:junit:4.12'
testImplementation '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)

BIN
debug.keystore Normal file

Binary file not shown.

3
gradle.properties Normal file
View File

@@ -0,0 +1,3 @@
android.enableJetifier=true
android.useAndroidX=true
org.gradle.jvmargs=-Xmx4096m

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

Binary file not shown.

View File

@@ -0,0 +1,6 @@
#Sun Oct 18 13:33:18 CEST 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip

183
gradlew vendored Executable file
View File

@@ -0,0 +1,183 @@
#!/usr/bin/env sh
#
# Copyright 2015 the original author or authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn () {
echo "$*"
}
die () {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin or MSYS, switch paths to Windows format before running java
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=`expr $i + 1`
done
case $i in
0) set -- ;;
1) set -- "$args0" ;;
2) set -- "$args0" "$args1" ;;
3) set -- "$args0" "$args1" "$args2" ;;
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Escape application args
save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
APP_ARGS=`save "$@"`
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
exec "$JAVACMD" "$@"

103
gradlew.bat vendored Normal file
View File

@@ -0,0 +1,103 @@
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto init
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:init
@rem Get command-line arguments, handling Windows variants
if not "%OS%" == "Windows_NT" goto win9xME_args
:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2
:win9xME_args_slurp
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega

16
proguard-rules.pro vendored
View File

@@ -18,11 +18,6 @@
-dontobfuscate
# Allow obfuscation of android.support.v7.internal.view.menu.**
# to avoid problem on Samsung 4.2.2 devices with appcompat v21
# see https://code.google.com/p/android/issues/detail?id=78377
-keepnames class !android.support.v7.internal.view.menu.**,android.support.v7.** {*;}
-dontwarn org.spongycastle.**
-dontwarn org.apache.sshd.**
-dontwarn org.apache.mina.**
@@ -35,5 +30,16 @@
# SSHd requires mina, and mina uses reflection so some classes would get deleted
-keep class org.apache.mina.** {*;}
-keep class org.apache.sshd.** {*;}
-keep class org.kde.kdeconnect.** {*;}
-dontwarn org.mockito.**
-dontwarn sun.reflect.**
-dontwarn android.test.**
-dontwarn java.lang.management.**
-dontwarn javax.**
-dontwarn android.net.ConnectivityManager
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
-dontwarn android.net.LinkProperties

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>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 469 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 418 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 532 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 557 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 590 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 627 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 560 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 444 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 327 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 959 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 358 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 686 B

After

Width:  |  Height:  |  Size: 469 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 378 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 474 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 449 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 553 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 441 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 313 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 287 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 645 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 462 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 431 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 750 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 365 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 365 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 377 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 402 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 304 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 347 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 163 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 650 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 462 B

After

Width:  |  Height:  |  Size: 313 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 277 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 308 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 841 B

View File

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

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 552 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 520 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 994 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 451 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 713 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 750 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 790 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 693 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 611 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 439 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 304 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 300 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 936 B

After

Width:  |  Height:  |  Size: 552 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 412 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 624 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 529 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 591 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 608 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 931 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 786 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

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