mirror of
https://github.com/KDE/kdeconnect-android
synced 2025-08-31 14:15:14 +00:00
Compare commits
40 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
1b369d0bf8 | ||
|
f093326f93 | ||
|
b43e0628c2 | ||
|
fdd6de5cee | ||
|
816d47026e | ||
|
14e97545e4 | ||
|
1d5efe36f0 | ||
|
9478f5bb39 | ||
|
1f0e7f9705 | ||
|
fe4f099663 | ||
|
7272c0abf1 | ||
|
cbb1f3d806 | ||
|
37669e2be0 | ||
|
25527af4ad | ||
|
6c7cb63af9 | ||
|
e49ab67e26 | ||
|
edc3075763 | ||
|
fd2102b432 | ||
|
adee9014fd | ||
|
2c0d9af64d | ||
|
53117c9a4b | ||
|
47ba298128 | ||
|
c5456fd84e | ||
|
d29868ac04 | ||
|
4b7c5fb85a | ||
|
de81a20f82 | ||
|
ed9b804693 | ||
|
d9cc1c0ba4 | ||
|
92b8238977 | ||
|
8567abdfa6 | ||
|
d490d53be7 | ||
|
7981d952ec | ||
|
4e86eb0dd3 | ||
|
6f8947377a | ||
|
106e651c6c | ||
|
5669e3c22c | ||
|
2d1dbd124c | ||
|
1edcbd2b39 | ||
|
c76a32ff05 | ||
|
c078e45a98 |
@@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.kde.kdeconnect_tp"
|
||||
android:versionCode="1102"
|
||||
android:versionName="1.1">
|
||||
android:versionCode="1400"
|
||||
android:versionName="1.4">
|
||||
|
||||
<uses-sdk android:minSdkVersion="9"
|
||||
android:targetSdkVersion="22" />
|
||||
@@ -23,7 +23,7 @@
|
||||
<uses-permission android:name="android.permission.BATTERY_STATS" />
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" android:required="false" />
|
||||
<uses-permission android:name="android.permission.RECEIVE_SMS" android:required="false" />
|
||||
<!-- <uses-permission android:name="android.permission.SEND_SMS" android:required="false" /> -->
|
||||
<uses-permission android:name="android.permission.SEND_SMS" android:required="false" />
|
||||
<uses-permission android:name="android.permission.READ_CONTACTS" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
|
@@ -3,7 +3,7 @@ buildscript {
|
||||
jcenter()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:2.1.2'
|
||||
classpath 'com.android.tools.build:gradle:2.1.3'
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -5,12 +5,9 @@
|
||||
<string name="pref_plugin_battery">تقرير البطّاريّة</string>
|
||||
<string name="pref_plugin_battery_desc">بلّغ عن حالة البطّاريّة دوريًّا</string>
|
||||
<string name="pref_plugin_sftp">اكشف نظام الملفّات</string>
|
||||
<string name="pref_plugin_sftp_desc">تسمح بتصفّح نظام ملفّات الهاتف عن بعد</string>
|
||||
<string name="pref_plugin_clipboard">مزامنة الحافظة</string>
|
||||
<string name="pref_plugin_clipboard_desc">شارك محتوى الحافظة</string>
|
||||
<string name="pref_plugin_mousepad">الدَّخل البعيد</string>
|
||||
<string name="pref_plugin_mousepad_desc">استخدم هاتفك كفأرة ولوحة مفاتيح</string>
|
||||
<string name="pref_plugin_mpris_desc">تحكّم بالصّوت والصّورة من هاتفك</string>
|
||||
<string name="pref_plugin_ping">وخزة</string>
|
||||
<string name="pref_plugin_ping_desc">أرسل واستقبل وخزات</string>
|
||||
<string name="pref_plugin_notifications">مزامنة الإخطارات</string>
|
||||
|
@@ -4,20 +4,15 @@
|
||||
<string name="pref_plugin_telephony_desc">Unvia avisos pa SMS y llamaes</string>
|
||||
<string name="pref_plugin_battery">Informe de batería</string>
|
||||
<string name="pref_plugin_battery_desc">Infoma davezu del estáu de la batería</string>
|
||||
<string name="pref_plugin_sftp">Esposición del sistema de ficheros</string>
|
||||
<string name="pref_plugin_sftp_desc">Permite restolar remotamente\'l sistema de ficheros del teléfonu</string>
|
||||
<string name="pref_plugin_clipboard">Sincronización del cartafueyu</string>
|
||||
<string name="pref_plugin_clipboard_desc">Comparte\'l conteníu del cartafueyu</string>
|
||||
<string name="pref_plugin_mousepad">Entrada remota</string>
|
||||
<string name="pref_plugin_mousepad_desc">Usa\'l to teléfonu como mur y tecláu</string>
|
||||
<string name="pref_plugin_mpris">Controles remotos multimedia</string>
|
||||
<string name="pref_plugin_mpris_desc">Controla l\'audiu/videu dende\'l to teléfonu</string>
|
||||
<string name="pref_plugin_runcommand">Executar comandu</string>
|
||||
<string name="pref_plugin_ping">Ping</string>
|
||||
<string name="pref_plugin_ping_desc">Unvia y recibe pings</string>
|
||||
<string name="pref_plugin_ping_desc">Unvia y recibi pings</string>
|
||||
<string name="pref_plugin_notifications">Sincronización d\'avisos</string>
|
||||
<string name="pref_plugin_notifications_desc">Accede a los tos avisos dende otros preseos</string>
|
||||
<string name="pref_plugin_sharereceiver">Compartir y recibir</string>
|
||||
<string name="pref_plugin_sharereceiver">Unvia y recibi pings</string>
|
||||
<string name="pref_plugin_sharereceiver_desc">Comparte ficheros y URLs ente preseos</string>
|
||||
<string name="plugin_not_available">Esta carauterística nun ta disponible na to versión d\'Android</string>
|
||||
<string name="device_list_empty">Ensin preseos</string>
|
||||
@@ -28,34 +23,23 @@
|
||||
<string name="send_ping">Unviar ping</string>
|
||||
<string name="open_mpris_controls">Controles multimedia</string>
|
||||
<string name="open_mousepad">Entrada remota</string>
|
||||
<string name="mousepad_info">Muevi un deu enriba la pantalla pa mover el mur. Calca pa un clic y usa dos/tres deos pa los botones de drecha y en mediu. Usa un primíu llargu p\'arrastrar y soltar.</string>
|
||||
<string name="mousepad_double_tap_settings_title">Afitar aición de calcu con dos deos</string>
|
||||
<string name="mousepad_triple_tap_settings_title">Afitar aición de calcu con tres deos</string>
|
||||
<string name="mousepad_sensitivity_settings_title">Afitar sensibilidá del panel táutil</string>
|
||||
<string name="mousepad_scroll_direction_title">Direición inversa de desplazamientu</string>
|
||||
<string name="mousepad_info">Muevi un deu enriba la pantalla pa mover el mur. calca pa un clic y usa dos/tres deos pa los motones de drecha y mediu. Usa un primíu llargu pa arrastrar y soltar.</string>
|
||||
<string-array name="mousepad_tap_entries">
|
||||
<item>Clic drechu</item>
|
||||
<item>Clic d\'en mediu</item>
|
||||
<item>Nada</item>
|
||||
</string-array>
|
||||
<string name="mousepad_double_default">drecha</string>
|
||||
<string name="mousepad_triple_default">d\'en mediu</string>
|
||||
<string name="mousepad_sensitivity_default">por defeutu</string>
|
||||
<string-array name="mousepad_sensitivity_entries">
|
||||
<item>La más lenta</item>
|
||||
<item>Slowest</item>
|
||||
<item>Above Slowest</item>
|
||||
<item>Predeterminada</item>
|
||||
<item>Penriba lo predeterminao</item>
|
||||
<item>La más rápida</item>
|
||||
<item>Default</item>
|
||||
<item>Above Default</item>
|
||||
<item>Fastest</item>
|
||||
</string-array>
|
||||
<string name="category_connected_devices">Preseos coneutaos</string>
|
||||
<string name="category_not_paired_devices">Preseos disponibles</string>
|
||||
<string name="category_remembered_devices">Preseos recordaos</string>
|
||||
<string name="plugins_failed_to_load">Los complementos fallaron al cargase (calca pa más información):</string>
|
||||
<string name="device_menu_plugins">Axustes de complementos</string>
|
||||
<string name="device_menu_unpair">Desempareyar</string>
|
||||
<string name="device_not_reachable">El preséu empareyáu nun ye agamable</string>
|
||||
<string name="pair_new_device">Empareyar preséu nuevu</string>
|
||||
<string name="unknown_device">Preséu desconocíu</string>
|
||||
<string name="error_not_reachable">Nun ye algamable\'l preséu</string>
|
||||
<string name="error_already_requested">Empareyamientu yá solicitáu</string>
|
||||
@@ -82,8 +66,6 @@
|
||||
<string name="sent_file_failed_text">%1s</string>
|
||||
<string name="tap_to_answer">Calca pa responder</string>
|
||||
<string name="reconnect">Reconeutar</string>
|
||||
<string name="right_click">Unviar clic drechu</string>
|
||||
<string name="middle_click">Unviar clic d\'en mediu</string>
|
||||
<string name="show_keyboard">Amosar tecláu</string>
|
||||
<string name="device_not_paired">Preséu non empareyáu</string>
|
||||
<string name="request_pairing">Solicitar empareyamientu</string>
|
||||
@@ -109,7 +91,6 @@
|
||||
<item>1 minutu</item>
|
||||
<item>2 minutos</item>
|
||||
</string-array>
|
||||
<string name="share_to">Compartir en...</string>
|
||||
<string name="protocol_version_older">Esti preséu usa una versión vieya del protocolu</string>
|
||||
<string name="protocol_version_newer">Esti preséu usa una versión anovada del protocolu</string>
|
||||
<string name="general_settings">Axustes xenerales</string>
|
||||
@@ -140,7 +121,7 @@
|
||||
<string name="mpris_player_on_device">%1$s en %2$s</string>
|
||||
<string name="send_files">Unviar ficheros</string>
|
||||
<string name="pairing_title">Preseos KDE Connect</string>
|
||||
<string name="pairing_description">Equí deberíen apaecer otros preseos executando KDE Connect.</string>
|
||||
<string name="pairing_description">Deberíen apaecer equí otros preseos executando KDE Connect.</string>
|
||||
<string name="device_paired">Preséu empareyáu</string>
|
||||
<string name="device_rename_title">Renomar preséu</string>
|
||||
<string name="device_rename_confirm">Renomar</string>
|
||||
@@ -150,7 +131,6 @@
|
||||
<string name="pref_plugin_telepathy">Unviar SMS</string>
|
||||
<string name="pref_plugin_telepathy_desc">Unvia mensaxes de testu dende\'l to escritoriu</string>
|
||||
<string name="plugin_not_supported">Esti complementu nun ta sofitáu pol preséu</string>
|
||||
<string name="findmyphone_description">Fai sonar esti teléfonu pa que pueas alcontralu.</string>
|
||||
<string name="findmyphone_found">Alcontrar</string>
|
||||
<string name="open">Abrir</string>
|
||||
<string name="close">Zarrar</string>
|
||||
|
@@ -5,10 +5,8 @@
|
||||
<string name="pref_plugin_battery">Доклад за батерията</string>
|
||||
<string name="pref_plugin_battery_desc">Периодично съобщаване за състоянието на батерията</string>
|
||||
<string name="pref_plugin_sftp">Достъп до файловата система</string>
|
||||
<string name="pref_plugin_sftp_desc">Позволява отдалечен достъп до файловата система на телефона</string>
|
||||
<string name="pref_plugin_clipboard">Синхронизиране на буфера</string>
|
||||
<string name="pref_plugin_clipboard_desc">Споделяне съдържанието на буфера</string>
|
||||
<string name="pref_plugin_mpris_desc">Управление на звук/видео от телефона</string>
|
||||
<string name="pref_plugin_ping">Пинг</string>
|
||||
<string name="pref_plugin_ping_desc">Изпращане и получаване на пинг</string>
|
||||
<string name="pref_plugin_notifications">Синхронизиране на уведомленията</string>
|
||||
|
@@ -5,12 +5,9 @@
|
||||
<string name="pref_plugin_battery">Baterijski izvještaj</string>
|
||||
<string name="pref_plugin_battery_desc">Periodično javi baterijski status</string>
|
||||
<string name="pref_plugin_sftp">Otkrivanje datotečnog sistema</string>
|
||||
<string name="pref_plugin_sftp_desc">Dopušta daljinsko pretraživanje datotečnog sistema telefona</string>
|
||||
<string name="pref_plugin_clipboard">Sinhronizovanje sandučića</string>
|
||||
<string name="pref_plugin_clipboard_desc">Podijeli sadržaj sandučića</string>
|
||||
<string name="pref_plugin_mousepad">Daljinska kontrola ulaza</string>
|
||||
<string name="pref_plugin_mousepad_desc">Koristi telofon kao miš i tastaturu</string>
|
||||
<string name="pref_plugin_mpris_desc">Upravljajte zvukom/slikom sa vašeg telefona</string>
|
||||
<string name="pref_plugin_ping">Ping</string>
|
||||
<string name="pref_plugin_ping_desc">Šalji i primaj ping-ove</string>
|
||||
<string name="pref_plugin_notifications">Sinhronizovano obavještenje</string>
|
||||
|
@@ -5,19 +5,21 @@
|
||||
<string name="pref_plugin_battery">Informe de la bateria</string>
|
||||
<string name="pref_plugin_battery_desc">Informa periòdicament sobre l\'estat de la bateria</string>
|
||||
<string name="pref_plugin_sftp">Exposa el sistema de fitxers</string>
|
||||
<string name="pref_plugin_sftp_desc">Permet navegar de forma remota pel sistema de fitxers del telèfon</string>
|
||||
<string name="pref_plugin_sftp_desc">Permet navegar de forma remota pel sistema de fitxers del dispositiu</string>
|
||||
<string name="pref_plugin_clipboard">Sincronitza el porta-retalls</string>
|
||||
<string name="pref_plugin_clipboard_desc">Comparteix el contingut del porta-retalls</string>
|
||||
<string name="pref_plugin_mousepad">Entrada remota</string>
|
||||
<string name="pref_plugin_mousepad_desc">Usa el vostre telèfon com un ratolí i un teclat</string>
|
||||
<string name="pref_plugin_mousepad_desc">Usa el vostre telèfon o tauleta com un ratolí i un teclat</string>
|
||||
<string name="pref_plugin_mpris">Controls multimèdia</string>
|
||||
<string name="pref_plugin_mpris_desc">Controla l\'àudio i el vídeo del vostre telèfon</string>
|
||||
<string name="pref_plugin_mpris_desc">Proporciona un comandament a distància pel reproductor multimèdia</string>
|
||||
<string name="pref_plugin_runcommand">Executa una ordre</string>
|
||||
<string name="pref_plugin_runcommand_desc">Activa les ordres remotes des del vostre telèfon</string>
|
||||
<string name="pref_plugin_runcommand_desc">Activa les ordres remotes des del telèfon o tauleta</string>
|
||||
<string name="pref_plugin_ping">Ping</string>
|
||||
<string name="pref_plugin_ping_desc">Envia i rep els pings</string>
|
||||
<string name="pref_plugin_notifications">Sincronitza les notificacions</string>
|
||||
<string name="pref_plugin_notifications_desc">Accedeix a les vostres notificacions des d\'altres dispositius</string>
|
||||
<string name="pref_plugin_receive_notifications">Recepció de les notificacions</string>
|
||||
<string name="pref_plugin_receive_notifications_desc">Rep notificacions des d\'altres dispositius i mostrar-los a l\'Android</string>
|
||||
<string name="pref_plugin_sharereceiver">Comparteix i rep</string>
|
||||
<string name="pref_plugin_sharereceiver_desc">Comparteix els fitxers i els URL entre els dispositius</string>
|
||||
<string name="plugin_not_available">Aquesta característica no està disponible en la vostra versió d\'Android</string>
|
||||
@@ -156,7 +158,8 @@
|
||||
<string name="pref_plugin_telepathy_desc">Envia missatges de text des de l\'escriptori</string>
|
||||
<string name="plugin_not_supported">Aquest connector no és admès pel dispositiu</string>
|
||||
<string name="findmyphone_title">Cerca el meu telèfon</string>
|
||||
<string name="findmyphone_description">Fa sonar aquest telèfon perquè el pugueu trobar.</string>
|
||||
<string name="findmyphone_title_tablet">Cerca la meva tauleta</string>
|
||||
<string name="findmyphone_description">Fa sonar aquest dispositiu perquè el pugueu trobar.</string>
|
||||
<string name="findmyphone_found">L\'he trobat</string>
|
||||
<string name="open">Obre</string>
|
||||
<string name="close">Tanca</string>
|
||||
|
@@ -5,18 +5,21 @@
|
||||
<string name="pref_plugin_battery">Hlášení baterie</string>
|
||||
<string name="pref_plugin_battery_desc">Periodicky hlásit stav baterky</string>
|
||||
<string name="pref_plugin_sftp">Přístup k souborovému systému</string>
|
||||
<string name="pref_plugin_sftp_desc">Umožní vám vzdáleně prohlížet souborový systém telefonu</string>
|
||||
<string name="pref_plugin_sftp_desc">Umožní vám vzdáleně prohlížet souborový systém tohoto zařízení</string>
|
||||
<string name="pref_plugin_clipboard">Synchronizace schránky</string>
|
||||
<string name="pref_plugin_clipboard_desc">Sdílet obsah schránky</string>
|
||||
<string name="pref_plugin_mousepad">Vzdálený vstup</string>
|
||||
<string name="pref_plugin_mousepad_desc">Používejte svůj telefon jako myš a klávesnici</string>
|
||||
<string name="pref_plugin_mousepad_desc">Používejte svůj telefon nebo tablet jako touchpad a klávesnici</string>
|
||||
<string name="pref_plugin_mpris">Ovládání multimédií</string>
|
||||
<string name="pref_plugin_mpris_desc">Ovládejte audio/video z vašeho telefonu</string>
|
||||
<string name="pref_plugin_mpris_desc">Poskytuje dálkové ovládání přehrávačů médií</string>
|
||||
<string name="pref_plugin_runcommand">Spustit příkaz</string>
|
||||
<string name="pref_plugin_runcommand_desc">Spouštějte příkazy vzdáleně z vašeho telefonu</string>
|
||||
<string name="pref_plugin_ping">Ping</string>
|
||||
<string name="pref_plugin_ping_desc">Posílat a přijímat ping</string>
|
||||
<string name="pref_plugin_notifications">Synchronizace upozornění</string>
|
||||
<string name="pref_plugin_notifications_desc">Zpřístupněte si upozornění z jiných zařízení</string>
|
||||
<string name="pref_plugin_receive_notifications">Přijímat oznámení</string>
|
||||
<string name="pref_plugin_receive_notifications_desc">Přijímat oznámení z jiného zařízení a zobrazovat je v Androidu</string>
|
||||
<string name="pref_plugin_sharereceiver">Sdílet s přijmnout</string>
|
||||
<string name="pref_plugin_sharereceiver_desc">Sdílet soubory a odkazy mezi zařízeními</string>
|
||||
<string name="plugin_not_available">Tato vlastnost není pro vaši verzi Androidu platná</string>
|
||||
@@ -66,6 +69,9 @@
|
||||
<string name="error_canceled_by_other_peer">Přerušeno druhým uživatelem</string>
|
||||
<string name="error_invalid_key">Byl přijat neplatný klíč</string>
|
||||
<string name="encryption_info_title">Informace o šifrování</string>
|
||||
<string name="encryption_info_msg_no_ssl">Druhé zařízení nepoužívá poslední verzi KDE connect. Bude použita stará metoda šifrování.</string>
|
||||
<string name="my_device_fingerprint">Otisk SHA1 certifikátu vašeho zařízení je:</string>
|
||||
<string name="remote_device_fingerprint">Otisk SHA1 certifikátu vzdáleného zařízení je:</string>
|
||||
<string name="pair_requested">Bylo vyžádáno párování</string>
|
||||
<string name="pairing_request_from">Požadavek o párování z %1s</string>
|
||||
<string name="received_url_title">Přijat odkaz od %1s</string>
|
||||
@@ -152,7 +158,8 @@
|
||||
<string name="pref_plugin_telepathy_desc">Posílejte zprávy ze své pracovní plochy</string>
|
||||
<string name="plugin_not_supported">Tento modul zařízení nepodporuje</string>
|
||||
<string name="findmyphone_title">Najít můj telefon</string>
|
||||
<string name="findmyphone_description">Prozvoní tento telefon, takže jej můžete najít.</string>
|
||||
<string name="findmyphone_title_tablet">Najít můj tablet</string>
|
||||
<string name="findmyphone_description">Prozvoní toto zařízení, takže jej můžete najít</string>
|
||||
<string name="findmyphone_found">Nalezeno</string>
|
||||
<string name="open">Otevřít</string>
|
||||
<string name="close">Zavřít</string>
|
||||
|
@@ -5,19 +5,20 @@
|
||||
<string name="pref_plugin_battery">Batterirapport</string>
|
||||
<string name="pref_plugin_battery_desc">Rapportér batteristatus periodisk</string>
|
||||
<string name="pref_plugin_sftp">Filsystem-expose</string>
|
||||
<string name="pref_plugin_sftp_desc">Muliggør at gennemsøge telefonens filsystem eksternt</string>
|
||||
<string name="pref_plugin_sftp_desc">Muliggør at gennemsøge denne enheds filsystem eksternt</string>
|
||||
<string name="pref_plugin_clipboard">Synk. af udklipsholder</string>
|
||||
<string name="pref_plugin_clipboard_desc">Del indholdet af udklipsholderen</string>
|
||||
<string name="pref_plugin_mousepad">Eksternt input</string>
|
||||
<string name="pref_plugin_mousepad_desc">Brug din telefon som mus og tastatur</string>
|
||||
<string name="pref_plugin_mousepad_desc">Brug din telefon eller tablet som mus og tastatur</string>
|
||||
<string name="pref_plugin_mpris">Multimediekontroller</string>
|
||||
<string name="pref_plugin_mpris_desc">Styr lyd og video fra din telefon</string>
|
||||
<string name="pref_plugin_mpris_desc">Giver en fjernbetjening til din medieafspiller</string>
|
||||
<string name="pref_plugin_runcommand">Kør kommando</string>
|
||||
<string name="pref_plugin_runcommand_desc">Kør eksterne kommandoer fra din telefon</string>
|
||||
<string name="pref_plugin_ping">Ping</string>
|
||||
<string name="pref_plugin_ping_desc">Send og modtag ping</string>
|
||||
<string name="pref_plugin_notifications">Synk. af bekendtgørelser</string>
|
||||
<string name="pref_plugin_notifications_desc">Tilgå dine bekendtgørelser fra andre enheder</string>
|
||||
<string name="pref_plugin_receive_notifications">Modtag bekendtgørelser</string>
|
||||
<string name="pref_plugin_receive_notifications_desc">Modtag bekendtgørelser fra den anden enhed og vis dem på Android</string>
|
||||
<string name="pref_plugin_sharereceiver">Del og modtag</string>
|
||||
<string name="pref_plugin_sharereceiver_desc">Del filer og URL\'er mellem enheder</string>
|
||||
<string name="plugin_not_available">Denne funktion er ikke tilgængelig i din Android-version</string>
|
||||
@@ -32,8 +33,6 @@
|
||||
<string name="mousepad_info">Bevæg en finger på skærmen for at flytte musemarkøren. Tap for at klikke og brug to/tre-fingre for højre og midterste museknap. Brug et langt tryk til at trække og slippe.</string>
|
||||
<string name="mousepad_double_tap_settings_title">Angiv handling for tap med to fingre</string>
|
||||
<string name="mousepad_triple_tap_settings_title">Angiv handling for tap med tre fingre</string>
|
||||
<string name="mousepad_sensitivity_settings_title">Angiv følsomhed for touchpad</string>
|
||||
<string name="mousepad_scroll_direction_title">Omvendt rulleretning</string>
|
||||
<string-array name="mousepad_tap_entries">
|
||||
<item>Højreklik</item>
|
||||
<item>Midterklik</item>
|
||||
@@ -41,13 +40,12 @@
|
||||
</string-array>
|
||||
<string name="mousepad_double_default">højre</string>
|
||||
<string name="mousepad_triple_default">midter</string>
|
||||
<string name="mousepad_sensitivity_default">standard</string>
|
||||
<string-array name="mousepad_sensitivity_entries">
|
||||
<item>Mest langsom</item>
|
||||
<item>Over mest langsom</item>
|
||||
<item>Standard</item>
|
||||
<item>Over standard</item>
|
||||
<item>Hurtigst</item>
|
||||
<item>Slowest</item>
|
||||
<item>Above Slowest</item>
|
||||
<item>Default</item>
|
||||
<item>Above Default</item>
|
||||
<item>Fastest</item>
|
||||
</string-array>
|
||||
<string name="category_connected_devices">Forbundne enheder</string>
|
||||
<string name="category_not_paired_devices">Tilgængelig enheder</string>
|
||||
@@ -66,10 +64,6 @@
|
||||
<string name="error_canceled_by_user">Annulleret af brugeren</string>
|
||||
<string name="error_canceled_by_other_peer">Annulleret af modpart</string>
|
||||
<string name="error_invalid_key">Ugyldige nøgle modtaget</string>
|
||||
<string name="encryption_info_title">Krypteringsinfo</string>
|
||||
<string name="encryption_info_msg_no_ssl">Den anden enhed bruger ikke en nylig version af KDE Connect, og bruger dermed den forældede krypteringsmetode.</string>
|
||||
<string name="my_device_fingerprint">SHA1-fingeraftrykket for dit enhedscertifikat er:</string>
|
||||
<string name="remote_device_fingerprint">SHA1-fingeraftrykket for det eksterne enhedscertifikat er:</string>
|
||||
<string name="pair_requested">Anmodet om parring</string>
|
||||
<string name="pairing_request_from">Parringsanmodning fra %1s</string>
|
||||
<string name="received_url_title">Modtog link fra %1s</string>
|
||||
@@ -155,9 +149,6 @@
|
||||
<string name="pref_plugin_telepathy">Send SMS</string>
|
||||
<string name="pref_plugin_telepathy_desc">Send SMS-beskeder fra din desktop</string>
|
||||
<string name="plugin_not_supported">Dette plugin er ikke understøttet af enheden</string>
|
||||
<string name="findmyphone_title">Find min telefon</string>
|
||||
<string name="findmyphone_description">Ringer til denne telefon, så du kan finde den.</string>
|
||||
<string name="findmyphone_description">Ringer til denne enhed, så du kan finde den.</string>
|
||||
<string name="findmyphone_found">Fundet</string>
|
||||
<string name="open">Åbn</string>
|
||||
<string name="close">Luk</string>
|
||||
</resources>
|
||||
|
@@ -5,15 +5,11 @@
|
||||
<string name="pref_plugin_battery">Akkubericht</string>
|
||||
<string name="pref_plugin_battery_desc">Akkustatus periodisch berichten</string>
|
||||
<string name="pref_plugin_sftp">Dateisystem zeigen</string>
|
||||
<string name="pref_plugin_sftp_desc">Erlaubt das Browsen des Dateisystems auf dem entfernten Handy</string>
|
||||
<string name="pref_plugin_clipboard">Abgleich der Zwischenablage</string>
|
||||
<string name="pref_plugin_clipboard_desc">Inhalt der Zwischenablage freigeben</string>
|
||||
<string name="pref_plugin_mousepad">Ferneingabe</string>
|
||||
<string name="pref_plugin_mousepad_desc">Verwendet Ihr Handy als Maus und Tastatur</string>
|
||||
<string name="pref_plugin_mpris">Multimedia-Bedienung</string>
|
||||
<string name="pref_plugin_mpris_desc">Audio und Video mit Ihrem Telefon steuern</string>
|
||||
<string name="pref_plugin_runcommand">Befehl ausführen</string>
|
||||
<string name="pref_plugin_runcommand_desc">Von Ihrem Telefon Befehle auf anderen Geräten ausführen</string>
|
||||
<string name="pref_plugin_ping">Ping</string>
|
||||
<string name="pref_plugin_ping_desc">Senden und Empfangen von Pings</string>
|
||||
<string name="pref_plugin_notifications">Benachrichtigungs-Abgleich</string>
|
||||
@@ -31,8 +27,6 @@
|
||||
<string name="open_mousepad">Ferneingabe</string>
|
||||
<string name="mousepad_double_tap_settings_title">Aktionsausführung bei Berührung mit zwei Fingern einstellen</string>
|
||||
<string name="mousepad_triple_tap_settings_title">Aktionsausführung bei Berührung mit drei Fingern einstellen</string>
|
||||
<string name="mousepad_sensitivity_settings_title">Empfindlichkeit des Touchpads einstellen</string>
|
||||
<string name="mousepad_scroll_direction_title">Bildlaufrichtung umkehren</string>
|
||||
<string-array name="mousepad_tap_entries">
|
||||
<item>Rechtsklick</item>
|
||||
<item>Mittelklick</item>
|
||||
@@ -40,13 +34,12 @@
|
||||
</string-array>
|
||||
<string name="mousepad_double_default">Rechts</string>
|
||||
<string name="mousepad_triple_default">Mitte</string>
|
||||
<string name="mousepad_sensitivity_default">Standard</string>
|
||||
<string-array name="mousepad_sensitivity_entries">
|
||||
<item>Langsamste</item>
|
||||
<item>Slowest</item>
|
||||
<item>Above Slowest</item>
|
||||
<item>Standard</item>
|
||||
<item>Default</item>
|
||||
<item>Above Default</item>
|
||||
<item>Schnellste</item>
|
||||
<item>Fastest</item>
|
||||
</string-array>
|
||||
<string name="category_connected_devices">Verbundene Geräte</string>
|
||||
<string name="category_not_paired_devices">Verfügbare Gerät</string>
|
||||
@@ -65,9 +58,6 @@
|
||||
<string name="error_canceled_by_user">Abbruch durch Benutzer</string>
|
||||
<string name="error_canceled_by_other_peer">Abbruch durch Gegenstelle</string>
|
||||
<string name="error_invalid_key">Ungültiger Schlüssel empfangen</string>
|
||||
<string name="encryption_info_title">Verschlüsselungsinformationen</string>
|
||||
<string name="my_device_fingerprint">Der SHA1-Fingerabdruck Ihres Gerätezertifikats lautet:</string>
|
||||
<string name="remote_device_fingerprint">Der SHA1-Fingerabdruck des Gerätezertifikats der Gegenstelle lautet:</string>
|
||||
<string name="pair_requested">Verbindung angefordert</string>
|
||||
<string name="pairing_request_from">Verbindungsanfrage von %1s</string>
|
||||
<string name="received_url_title">Verknüpfung von %1s erhalten</string>
|
||||
@@ -148,8 +138,6 @@
|
||||
<string name="pref_plugin_telepathy">SMS senden</string>
|
||||
<string name="pref_plugin_telepathy_desc">Text-Nachrichten von Ihrer Arbeitsfläche senden</string>
|
||||
<string name="plugin_not_supported">Dieses Modul wird durch das Gerät nicht unterstützt</string>
|
||||
<string name="findmyphone_title">Mein Telefon suchen</string>
|
||||
<string name="findmyphone_description">Ruft dieses Telefon an, um es zu suchen.</string>
|
||||
<string name="findmyphone_found">Gefunden</string>
|
||||
<string name="open">Öffnen</string>
|
||||
<string name="close">Schließen</string>
|
||||
|
@@ -5,15 +5,11 @@
|
||||
<string name="pref_plugin_battery">Αναφορά μπαταρίας</string>
|
||||
<string name="pref_plugin_battery_desc">Περιοδική αναφορά κατάστασης μπαταρίας</string>
|
||||
<string name="pref_plugin_sftp">Αποκάλυψη συστήματος αρχείων</string>
|
||||
<string name="pref_plugin_sftp_desc">Επιτρέπει την απομακρυσμένη περιήγηση του συστήματος αρχείων του κινητού</string>
|
||||
<string name="pref_plugin_clipboard">Συγχρονισμός προχείρου</string>
|
||||
<string name="pref_plugin_clipboard_desc">Διαμοιρασμός περιεχομένου προχείρου</string>
|
||||
<string name="pref_plugin_mousepad">Απομακρυσμένη είσοδος στοιχείων</string>
|
||||
<string name="pref_plugin_mousepad_desc">Χρήση του κινητού ως ποντίκι και πληκτρολόγιο</string>
|
||||
<string name="pref_plugin_mpris">Κονσόλα πολυμέσων</string>
|
||||
<string name="pref_plugin_mpris_desc">Έλεγχος μουσικής/βίντεο από το κινητό</string>
|
||||
<string name="pref_plugin_runcommand">Εκτέλεση εντολής</string>
|
||||
<string name="pref_plugin_runcommand_desc">Εκτέλεση απομακρυσμένων εντολών από το κινητό</string>
|
||||
<string name="pref_plugin_ping">Ping</string>
|
||||
<string name="pref_plugin_ping_desc">Αποστολή και λήψη pings</string>
|
||||
<string name="pref_plugin_notifications">Συγχρονισμός ειδοποιήσεων</string>
|
||||
@@ -156,7 +152,6 @@
|
||||
<string name="pref_plugin_telepathy_desc">Αποστολή μηνυμάτων κειμένου από τον υπολογιστή σας</string>
|
||||
<string name="plugin_not_supported">Αυτό το πρόσθετο δεν υποστηρίζεται από τη συσκευή</string>
|
||||
<string name="findmyphone_title">Αναζήτηση του κινητού μου</string>
|
||||
<string name="findmyphone_description">Καλεί αυτό το κινητό ώστε να το εντοπίσετε.</string>
|
||||
<string name="findmyphone_found">Βρέθηκε</string>
|
||||
<string name="open">Άνοιγμα</string>
|
||||
<string name="close">Κλείσιμο</string>
|
||||
|
@@ -5,18 +5,21 @@
|
||||
<string name="pref_plugin_battery">Battery report</string>
|
||||
<string name="pref_plugin_battery_desc">Periodically report battery status</string>
|
||||
<string name="pref_plugin_sftp">Filesystem expose</string>
|
||||
<string name="pref_plugin_sftp_desc">Allows to browse the phone\'s filesystem remotely</string>
|
||||
<string name="pref_plugin_sftp_desc">Allows to browse this device\'s filesystem remotely</string>
|
||||
<string name="pref_plugin_clipboard">Clipboard sync</string>
|
||||
<string name="pref_plugin_clipboard_desc">Share the clipboard content</string>
|
||||
<string name="pref_plugin_mousepad">Remote input</string>
|
||||
<string name="pref_plugin_mousepad_desc">Use your phone as a mouse and keyboard</string>
|
||||
<string name="pref_plugin_mousepad_desc">Use your phone or tablet as a touchpad and keyboard</string>
|
||||
<string name="pref_plugin_mpris">Multimedia controls</string>
|
||||
<string name="pref_plugin_mpris_desc">Control audio/video from your phone</string>
|
||||
<string name="pref_plugin_mpris_desc">Provides a remote control for your media player</string>
|
||||
<string name="pref_plugin_runcommand">Run Command</string>
|
||||
<string name="pref_plugin_runcommand_desc">Trigger remote commands from your phone or tablet</string>
|
||||
<string name="pref_plugin_ping">Ping</string>
|
||||
<string name="pref_plugin_ping_desc">Send and receive pings</string>
|
||||
<string name="pref_plugin_notifications">Notification sync</string>
|
||||
<string name="pref_plugin_notifications_desc">Access your notifications from other devices</string>
|
||||
<string name="pref_plugin_receive_notifications">Receive notifications</string>
|
||||
<string name="pref_plugin_receive_notifications_desc">Receive notifications from the other device and display them on Android</string>
|
||||
<string name="pref_plugin_sharereceiver">Share and receive</string>
|
||||
<string name="pref_plugin_sharereceiver_desc">Share files and URLs between devices</string>
|
||||
<string name="plugin_not_available">This feature is not available in your Android version</string>
|
||||
@@ -65,6 +68,10 @@
|
||||
<string name="error_canceled_by_user">Cancelled by user</string>
|
||||
<string name="error_canceled_by_other_peer">Cancelled by other peer</string>
|
||||
<string name="error_invalid_key">Invalid key received</string>
|
||||
<string name="encryption_info_title">Encryption Info</string>
|
||||
<string name="encryption_info_msg_no_ssl">The other device doesn\'t use a recent version of KDE Connect, using the legacy encryption method.</string>
|
||||
<string name="my_device_fingerprint">SHA1 fingerprint of your device certificate is:</string>
|
||||
<string name="remote_device_fingerprint">SHA1 fingerprint of remote device certificate is:</string>
|
||||
<string name="pair_requested">Pair requested</string>
|
||||
<string name="pairing_request_from">Pairing request from %1s</string>
|
||||
<string name="received_url_title">Received link from %1s</string>
|
||||
@@ -150,7 +157,9 @@
|
||||
<string name="pref_plugin_telepathy">Send SMS</string>
|
||||
<string name="pref_plugin_telepathy_desc">Send text messages from your desktop</string>
|
||||
<string name="plugin_not_supported">This plugin is not supported by the device</string>
|
||||
<string name="findmyphone_description">Rings this phone so you can find it.</string>
|
||||
<string name="findmyphone_title">Find my phone</string>
|
||||
<string name="findmyphone_title_tablet">Find my tablet</string>
|
||||
<string name="findmyphone_description">Rings this device so you can find it</string>
|
||||
<string name="findmyphone_found">Found</string>
|
||||
<string name="open">Open</string>
|
||||
<string name="close">Close</string>
|
||||
|
@@ -5,19 +5,21 @@
|
||||
<string name="pref_plugin_battery">Informe de la batería</string>
|
||||
<string name="pref_plugin_battery_desc">Informar periódicamente del estado de la batería</string>
|
||||
<string name="pref_plugin_sftp">Mostrar el sistema de archivos</string>
|
||||
<string name="pref_plugin_sftp_desc">Permite examinar de forma remota el sistema de archivos del teléfono</string>
|
||||
<string name="pref_plugin_sftp_desc">Permite examinar de forma remota el sistema de archivos de este dispositivo</string>
|
||||
<string name="pref_plugin_clipboard">Sincronización del portapapeles</string>
|
||||
<string name="pref_plugin_clipboard_desc">Compartir el contenido del portapapeles</string>
|
||||
<string name="pref_plugin_mousepad">Entrada remota</string>
|
||||
<string name="pref_plugin_mousepad_desc">Usar su teléfono como ratón y teclado</string>
|
||||
<string name="pref_plugin_mousepad_desc">Usar su teléfono o tableta como teclado y teclado táctil</string>
|
||||
<string name="pref_plugin_mpris">Controles multimedia</string>
|
||||
<string name="pref_plugin_mpris_desc">Controlar audio y vídeo desde el teléfono</string>
|
||||
<string name="pref_plugin_mpris_desc">Proporciona un control remoto para su reproductor de medios</string>
|
||||
<string name="pref_plugin_runcommand">Ejecutar orden</string>
|
||||
<string name="pref_plugin_runcommand_desc">Desencadenar órdenes remotas desde su teléfono</string>
|
||||
<string name="pref_plugin_runcommand_desc">Desencadenar órdenes remotas desde su teléfono o tableta</string>
|
||||
<string name="pref_plugin_ping">Ping</string>
|
||||
<string name="pref_plugin_ping_desc">Enviar y recibir pings</string>
|
||||
<string name="pref_plugin_notifications">Sincronizar notificaciones</string>
|
||||
<string name="pref_plugin_notifications_desc">Acceder a las notificaciones desde otros dispositivos</string>
|
||||
<string name="pref_plugin_receive_notifications">Recibir notificaciones</string>
|
||||
<string name="pref_plugin_receive_notifications_desc">Recibir notificaciones desde el otro dispositivo y mostrarlas en Android</string>
|
||||
<string name="pref_plugin_sharereceiver">Compartir y recibir</string>
|
||||
<string name="pref_plugin_sharereceiver_desc">Compartir archivos y URL entre dispositivos</string>
|
||||
<string name="plugin_not_available">Esta funcionalidad no está disponible en su versión de Android</string>
|
||||
@@ -156,7 +158,8 @@
|
||||
<string name="pref_plugin_telepathy_desc">Enviar mensajes de texto desde el escritorio</string>
|
||||
<string name="plugin_not_supported">Este complemento no está permitido por el dispositivo</string>
|
||||
<string name="findmyphone_title">Encontrar mi teléfono</string>
|
||||
<string name="findmyphone_description">Hace sonar este teléfono para que pueda encontrarlo.</string>
|
||||
<string name="findmyphone_title_tablet">Encontrar mi tableta</string>
|
||||
<string name="findmyphone_description">Hace sonar este dispositivo para que pueda encontrarlo</string>
|
||||
<string name="findmyphone_found">Encontrado</string>
|
||||
<string name="open">Abrir</string>
|
||||
<string name="close">Cerrar</string>
|
||||
|
166
res/values-et/strings.xml
Normal file
166
res/values-et/strings.xml
Normal file
@@ -0,0 +1,166 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<resources>
|
||||
<string name="pref_plugin_telephony">Telefoni märguanded</string>
|
||||
<string name="pref_plugin_telephony_desc">SMS-ide ja kõnede märguannete saatmine</string>
|
||||
<string name="pref_plugin_battery">Aku aruanne</string>
|
||||
<string name="pref_plugin_battery_desc">Perioodiline aku olekust teavitamine</string>
|
||||
<string name="pref_plugin_sftp">Failisüsteemi sirvimine</string>
|
||||
<string name="pref_plugin_sftp_desc">Seadme failisüsteemi eemalt sirvimise võimaldamine</string>
|
||||
<string name="pref_plugin_clipboard">Lõikepuhvri sünkroonimine</string>
|
||||
<string name="pref_plugin_clipboard_desc">Lõikepuhvri sisu jagamine</string>
|
||||
<string name="pref_plugin_mousepad">Kaugsisestus</string>
|
||||
<string name="pref_plugin_mousepad_desc">Telefoni või tahvli kasutamine puuteplaadi ja klaviatuurina</string>
|
||||
<string name="pref_plugin_mpris">Multimeedia juhtimine</string>
|
||||
<string name="pref_plugin_mpris_desc">Meediamängija kaugjuhtimise võimaldamine</string>
|
||||
<string name="pref_plugin_runcommand">Käsu käivitamine</string>
|
||||
<string name="pref_plugin_runcommand_desc">Telefonist või tahvlist kaugkäskude käivitamine</string>
|
||||
<string name="pref_plugin_ping">Ping</string>
|
||||
<string name="pref_plugin_ping_desc">Pingide saatmine ja vastuvõtmine</string>
|
||||
<string name="pref_plugin_notifications">Märguannete sünkroonimine</string>
|
||||
<string name="pref_plugin_notifications_desc">Märguannete nägemine teistes seadmetes</string>
|
||||
<string name="pref_plugin_receive_notifications">Märguannete vastuvõtmine</string>
|
||||
<string name="pref_plugin_receive_notifications_desc">Märguannete vastuvõtmine teisest seadmest ja nende näitamine Androidis</string>
|
||||
<string name="pref_plugin_sharereceiver">Jagamine ja vastuvõtmine</string>
|
||||
<string name="pref_plugin_sharereceiver_desc">Failide ja URL-ide jagamine seadmete vahel</string>
|
||||
<string name="plugin_not_available">See omadus ei ole sinu Androidi versioonis veel saadaval</string>
|
||||
<string name="device_list_empty">Seadmed puuduvad</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="cancel">Loobu</string>
|
||||
<string name="open_settings">Ava seadistused</string>
|
||||
<string name="no_permissions">Märguannete nägemiseks tuleb anda vastavad õigused</string>
|
||||
<string name="send_ping">Saada ping</string>
|
||||
<string name="open_mpris_controls">Multimeedia juhtimine</string>
|
||||
<string name="open_mousepad">Kaugsisestus</string>
|
||||
<string name="mousepad_info">Hiirekursori liigutamiseks liiguta sõrme ekraanil. Koputa klõpsamiseks ja kasuta kaht või kolme sõrme parema ja keskmise nupu jaoks. Pika vajutusega saab lohistada.</string>
|
||||
<string name="mousepad_double_tap_settings_title">Kahe sõrmega koputamise toimingu määramine</string>
|
||||
<string name="mousepad_triple_tap_settings_title">Kolme sõrmega koputamise toimingu määramine</string>
|
||||
<string name="mousepad_sensitivity_settings_title">Puutepadja tundlikkuse määramine</string>
|
||||
<string name="mousepad_scroll_direction_title">Vastupidi kerimise suund</string>
|
||||
<string-array name="mousepad_tap_entries">
|
||||
<item>Paremklõps</item>
|
||||
<item>Keskklõps</item>
|
||||
<item>Ei tee midagi</item>
|
||||
</string-array>
|
||||
<string name="mousepad_double_default">parem</string>
|
||||
<string name="mousepad_triple_default">keskmine</string>
|
||||
<string name="mousepad_sensitivity_default">vaikimisi</string>
|
||||
<string-array name="mousepad_sensitivity_entries">
|
||||
<item>Kõige aeglasem</item>
|
||||
<item>Kõige aeglasemast kiirem</item>
|
||||
<item>Vaikimisi</item>
|
||||
<item>Keskmisest kiirem</item>
|
||||
<item>Kõige kiirem</item>
|
||||
</string-array>
|
||||
<string name="category_connected_devices">Ühendatud seadmed</string>
|
||||
<string name="category_not_paired_devices">Saadaolevad seadmed</string>
|
||||
<string name="category_remembered_devices">Meeldejäetud seadmed</string>
|
||||
<string name="plugins_failed_to_load">Pluginate laadimine nurjus (koputa rohkema teabe saamiseks)</string>
|
||||
<string name="device_menu_plugins">Plugina seadistused</string>
|
||||
<string name="device_menu_unpair">Eemalda paardumine</string>
|
||||
<string name="device_not_reachable">Paardunud seade pole saadaval</string>
|
||||
<string name="pair_new_device">Paarita uus seade</string>
|
||||
<string name="unknown_device">Tundmatu seade</string>
|
||||
<string name="error_not_reachable">Seade pole saadaval</string>
|
||||
<string name="error_already_requested">Paardumist on juba soovitud</string>
|
||||
<string name="error_already_paired">Seade on juba paaritatud</string>
|
||||
<string name="error_could_not_send_package">Paketi saatmine nurjus</string>
|
||||
<string name="error_timed_out">Ajaületus</string>
|
||||
<string name="error_canceled_by_user">Kasutaja katkestas</string>
|
||||
<string name="error_canceled_by_other_peer">Teine pool katkestas</string>
|
||||
<string name="error_invalid_key">Saadi vigane võti</string>
|
||||
<string name="encryption_info_title">Krüptimise teave</string>
|
||||
<string name="encryption_info_msg_no_ssl">Teine seade ei kasuta KDE Connecti uusimat versiooni ja tarvitab krüptimisel pärandmeetodit.</string>
|
||||
<string name="my_device_fingerprint">Sinu seadme sertifikaadi SHA1 sõrmejälg on:</string>
|
||||
<string name="remote_device_fingerprint">Kaugseadme sertifikaadi SHA1 sõrmejälg on:</string>
|
||||
<string name="pair_requested">Paardumise soov</string>
|
||||
<string name="pairing_request_from">Paardumise soov seadmest %1s</string>
|
||||
<string name="received_url_title">Lingi saamine seadmest %1s</string>
|
||||
<string name="received_url_text">Koputa \"%1s\" avamiseks</string>
|
||||
<string name="incoming_file_title">Saabuv fail seadmest %1s</string>
|
||||
<string name="incoming_file_text">%1s</string>
|
||||
<string name="outgoing_file_title">Faili saatmine seadmesse %1s</string>
|
||||
<string name="outgoing_file_text">%1s</string>
|
||||
<string name="received_file_title">Faili saamine seadmest %1s</string>
|
||||
<string name="received_file_fail_title">Faili saamine seadmest %1s nurjus</string>
|
||||
<string name="received_file_text">Koputa \"%1s\" avamiseks</string>
|
||||
<string name="sent_file_title">Fail saadeti seadmesse %1s</string>
|
||||
<string name="sent_file_text">%1s</string>
|
||||
<string name="sent_file_failed_title">Faili %1s saatmine nurjus</string>
|
||||
<string name="sent_file_failed_text">%1s</string>
|
||||
<string name="tap_to_answer">Koputa vastamiseks</string>
|
||||
<string name="reconnect">Ühenda uuesti</string>
|
||||
<string name="right_click">Saada paremklõps</string>
|
||||
<string name="middle_click">Saada keskklõps</string>
|
||||
<string name="show_keyboard">Näita klaviatuuri</string>
|
||||
<string name="device_not_paired">Seadmed pole paaritatud</string>
|
||||
<string name="request_pairing">Soovi paardumist</string>
|
||||
<string name="pairing_accept">Nõustu</string>
|
||||
<string name="pairing_reject">Keeldu</string>
|
||||
<string name="device">Seade</string>
|
||||
<string name="pair_device">Paarita seade</string>
|
||||
<string name="remote_control">Kaugjuhtimine</string>
|
||||
<string name="settings">KDE Connecti seadistused</string>
|
||||
<string name="mpris_play">Esita</string>
|
||||
<string name="mpris_previous">Eelmine</string>
|
||||
<string name="mpris_rew">Keri tagasi</string>
|
||||
<string name="mpris_ff">Kiiresti edasi</string>
|
||||
<string name="mpris_next">Järgmine</string>
|
||||
<string name="mpris_volume">Helitugevus</string>
|
||||
<string name="mpris_settings">Multimeedia seadistused</string>
|
||||
<string name="mpris_time_settings_title">Edasi-tagasikerimise nupud</string>
|
||||
<string name="mpris_time_settings_summary">Kiire edasi-tagasikerimise aeg vajutamisel</string>
|
||||
<string-array name="mpris_time_entries">
|
||||
<item>10 sekundit</item>
|
||||
<item>20 sekundit</item>
|
||||
<item>30 sekundit</item>
|
||||
<item>1 minut</item>
|
||||
<item>2 minutit</item>
|
||||
</string-array>
|
||||
<string name="share_to">Jaga...</string>
|
||||
<string name="protocol_version_older">See seade kasutab vana protokolli versiooni</string>
|
||||
<string name="protocol_version_newer">See seade kasutab uuemat protokolli versiooni</string>
|
||||
<string name="general_settings">Üldised seadistused</string>
|
||||
<string name="plugin_settings">Seadistused</string>
|
||||
<string name="plugin_settings_with_name">%s seadistused</string>
|
||||
<string name="device_name">Seadme nimi</string>
|
||||
<string name="device_name_preference_summary">%s</string>
|
||||
<string name="invalid_device_name">Vigane seadme nimi</string>
|
||||
<string name="shareplugin_text_saved">Saadi tekst, salvestati lõikepuhvrisse</string>
|
||||
<string name="custom_devices_settings">Kohandatud seadmete loend</string>
|
||||
<string name="pair_device_action">Paarita uus seade</string>
|
||||
<string name="unpair_device_action">Eemalda %s paardumine</string>
|
||||
<string name="custom_device_list">Lisa seadmeid IP järgi</string>
|
||||
<string name="share_notification_preference">Mürarikkad märguanded</string>
|
||||
<string name="share_notification_preference_summary">Vibreerimine ja heli esitamine faili saamisel</string>
|
||||
<string name="title_activity_notification_filter">Märguannete filter</string>
|
||||
<string name="filter_apps_info">Valitud rakenduste märguanded sünkroonitakse</string>
|
||||
<string name="sftp_internal_storage">Sisemine salvesti</string>
|
||||
<string name="sftp_all_files">Kõik failid</string>
|
||||
<string name="sftp_sdcard_num">SD-kaart %d</string>
|
||||
<string name="sftp_sdcard">SD-kaart</string>
|
||||
<string name="sftp_readonly">(kirjutuskaitstud)</string>
|
||||
<string name="sftp_camera">Kaamera pildid</string>
|
||||
<string name="add_host">Lisa masin/IP</string>
|
||||
<string name="add_host_hint">Masinanimi või IP</string>
|
||||
<string name="no_players_connected">Ühtegi mängijat ei leitud</string>
|
||||
<string name="custom_dev_list_help">Seda tuleks kasutada ainult siis, kui sinu seadet ei tuvastatud automaatselt. Sisesta allpool IP-aadress või masinanimi ja puuduta nuppu selle lisamiseks loendisse. Puuduta olemasolevat kirjet selle eemaldamiseks loendist.</string>
|
||||
<string name="mpris_player_on_device">%1$s seadmes %2$s</string>
|
||||
<string name="send_files">Saada faile</string>
|
||||
<string name="pairing_title">KDE Connecti seadmed</string>
|
||||
<string name="pairing_description">Siin näeb teisi seadmeid samas võrgus, kus töötab KDE Connect</string>
|
||||
<string name="device_paired">Seade on paaritatud</string>
|
||||
<string name="device_rename_title">Muuda seadme nime</string>
|
||||
<string name="device_rename_confirm">Muuda nime</string>
|
||||
<string name="refresh">Värskenda</string>
|
||||
<string name="unreachable_description">See paardunud seade pole saadaval. Kontrolli, kas see on ikka ühendatud sinuga samasse võrku.</string>
|
||||
<string name="no_file_browser">Ühtegi failisirvijat pole paigaldatud</string>
|
||||
<string name="pref_plugin_telepathy">Saada SMS</string>
|
||||
<string name="pref_plugin_telepathy_desc">Tekstisõnumite saatmine oma töölaualt</string>
|
||||
<string name="plugin_not_supported">Seade ei toeta seda pluginat</string>
|
||||
<string name="findmyphone_title">Leia mu telefon</string>
|
||||
<string name="findmyphone_title_tablet">Leia mu tahvel</string>
|
||||
<string name="findmyphone_description">Seadmele helistamine, et see üles leida</string>
|
||||
<string name="findmyphone_found">Leitud</string>
|
||||
<string name="open">Ava</string>
|
||||
<string name="close">Sulge</string>
|
||||
</resources>
|
@@ -5,13 +5,10 @@
|
||||
<string name="pref_plugin_battery">Akkuraportti</string>
|
||||
<string name="pref_plugin_battery_desc">Raportoi akun tila säännöllisesti</string>
|
||||
<string name="pref_plugin_sftp">Tiedostojärjestelmän paljastaminen</string>
|
||||
<string name="pref_plugin_sftp_desc">Mahdollistaa puhelimen tiedostojärjestelmän etäselaamisen</string>
|
||||
<string name="pref_plugin_clipboard">Leikepöydän synkronointi</string>
|
||||
<string name="pref_plugin_clipboard_desc">Jaa leikepöydän sisältö</string>
|
||||
<string name="pref_plugin_mousepad">Kauko-ohjaus</string>
|
||||
<string name="pref_plugin_mousepad_desc">Käytä puhelintasi hiirenä ja näppäimistönä</string>
|
||||
<string name="pref_plugin_mpris">Multimedian ohjaus</string>
|
||||
<string name="pref_plugin_mpris_desc">Ohjaa ääntä ja videota puhelimestasi</string>
|
||||
<string name="pref_plugin_runcommand">Suorita komento</string>
|
||||
<string name="pref_plugin_ping">Tiedustelupaketti</string>
|
||||
<string name="pref_plugin_ping_desc">Lähetä ja vastaanota tiedustelupaketteja</string>
|
||||
@@ -31,8 +28,6 @@
|
||||
<string name="mousepad_info">Liikuta hiiren osoitinta liikuttamalla sormeasi näytöllä. Napsauta napauttamalla yhdellä sormella, käytä oikeaa painiketta kahdella sormella ja keskipainiketta kolmella. Vedä ja pudota painamalla pitkään.</string>
|
||||
<string name="mousepad_double_tap_settings_title">Aseta kahden sormen napautuksen toiminto</string>
|
||||
<string name="mousepad_triple_tap_settings_title">Aseta kolmen sormen napautuksen toiminto</string>
|
||||
<string name="mousepad_sensitivity_settings_title">Aseta kosketuslevyn herkkyys</string>
|
||||
<string name="mousepad_scroll_direction_title">Käänteinen vierityssuunta</string>
|
||||
<string-array name="mousepad_tap_entries">
|
||||
<item>Oikea napsautus</item>
|
||||
<item>Keskinapsautus</item>
|
||||
@@ -40,13 +35,12 @@
|
||||
</string-array>
|
||||
<string name="mousepad_double_default">Oikea painike</string>
|
||||
<string name="mousepad_triple_default">Keskipainike</string>
|
||||
<string name="mousepad_sensitivity_default">oletus</string>
|
||||
<string-array name="mousepad_sensitivity_entries">
|
||||
<item>Hitain</item>
|
||||
<item>Hitainta suurempi</item>
|
||||
<item>Oletus</item>
|
||||
<item>Oletusta suurempi</item>
|
||||
<item>Nopein</item>
|
||||
<item>Slowest</item>
|
||||
<item>Above Slowest</item>
|
||||
<item>Default</item>
|
||||
<item>Above Default</item>
|
||||
<item>Fastest</item>
|
||||
</string-array>
|
||||
<string name="category_connected_devices">Yhdistetyt laitteet</string>
|
||||
<string name="category_not_paired_devices">Saatavilla olevat laitteet</string>
|
||||
@@ -150,7 +144,6 @@
|
||||
<string name="pref_plugin_telepathy">Lähetä tekstiviesti</string>
|
||||
<string name="pref_plugin_telepathy_desc">Lähetä tekstiviestejä työpöydältäsi</string>
|
||||
<string name="plugin_not_supported">Laite ei tue tätä liitännäistä</string>
|
||||
<string name="findmyphone_description">Laittaa puhelimen soimaan, jotta voit löytää sen.</string>
|
||||
<string name="findmyphone_found">Löytyi</string>
|
||||
<string name="open">Avaa</string>
|
||||
<string name="close">Sulje</string>
|
||||
|
@@ -5,13 +5,10 @@
|
||||
<string name="pref_plugin_battery">Rapport sur la batterie</string>
|
||||
<string name="pref_plugin_battery_desc">Rapport périodique sur l\'état de la batterie</string>
|
||||
<string name="pref_plugin_sftp">Exposer le système de fichiers</string>
|
||||
<string name="pref_plugin_sftp_desc">Permettre de parcourir le système de fichiers du téléphone à distance</string>
|
||||
<string name="pref_plugin_clipboard">Synchronisation avec le presse-papiers</string>
|
||||
<string name="pref_plugin_clipboard_desc">Partage le contenu du presse-papiers</string>
|
||||
<string name="pref_plugin_mousepad">Contrôle distant</string>
|
||||
<string name="pref_plugin_mousepad_desc">Utilisez votre téléphone comme une souris et un clavier</string>
|
||||
<string name="pref_plugin_mpris">Contrôles multimédia</string>
|
||||
<string name="pref_plugin_mpris_desc">Contrôle l\'audio / la vidéo depuis votre téléphone</string>
|
||||
<string name="pref_plugin_ping">Commande « Ping »</string>
|
||||
<string name="pref_plugin_ping_desc">Envoie et reçoit des commandes « Ping »</string>
|
||||
<string name="pref_plugin_notifications">Synchronisation des notifications</string>
|
||||
|
@@ -5,13 +5,10 @@
|
||||
<string name="pref_plugin_battery">Informe da batería</string>
|
||||
<string name="pref_plugin_battery_desc">Envíe periodicamente un informe sobre o estado da batería.</string>
|
||||
<string name="pref_plugin_sftp">Revelador do sistema de ficheiros</string>
|
||||
<string name="pref_plugin_sftp_desc">Permite examinar o sistema de ficheiros do teléfono remotamente.</string>
|
||||
<string name="pref_plugin_clipboard">Sincronización do portapapeis</string>
|
||||
<string name="pref_plugin_clipboard_desc">Comparta o contido do portapapeis.</string>
|
||||
<string name="pref_plugin_mousepad">Entrada remota</string>
|
||||
<string name="pref_plugin_mousepad_desc">Use o teléfono como rato e teclado.</string>
|
||||
<string name="pref_plugin_mpris">Controis multimedia</string>
|
||||
<string name="pref_plugin_mpris_desc">Controle o son e o vídeo desde o teléfono.</string>
|
||||
<string name="pref_plugin_runcommand">Executar unha orde</string>
|
||||
<string name="pref_plugin_ping">Ping</string>
|
||||
<string name="pref_plugin_ping_desc">Envíe e reciba pings.</string>
|
||||
@@ -31,8 +28,6 @@
|
||||
<string name="mousepad_info">Mova un dedo na pantalla para mover o cursor. Toque para facer clic, e use dous ou tres dedos para os botóns secundario e central. Prema durante un tempo para arrastrar e soltar.</string>
|
||||
<string name="mousepad_double_tap_settings_title">Definir a acción de tocar con dous dedos</string>
|
||||
<string name="mousepad_triple_tap_settings_title">Definir a acción de tocar con tres dedos</string>
|
||||
<string name="mousepad_sensitivity_settings_title">Definir a sensibilidade do punteiro táctil</string>
|
||||
<string name="mousepad_scroll_direction_title">Inverter a dirección de desprazamento</string>
|
||||
<string-array name="mousepad_tap_entries">
|
||||
<item>Clic dereito</item>
|
||||
<item>Clic central</item>
|
||||
@@ -40,13 +35,12 @@
|
||||
</string-array>
|
||||
<string name="mousepad_double_default">dereita</string>
|
||||
<string name="mousepad_triple_default">medio</string>
|
||||
<string name="mousepad_sensitivity_default">predeterminado</string>
|
||||
<string-array name="mousepad_sensitivity_entries">
|
||||
<item>O máis lento</item>
|
||||
<item>Lento</item>
|
||||
<item>Predeterminado</item>
|
||||
<item>Rápido</item>
|
||||
<item>O mais rápido</item>
|
||||
<item>Slowest</item>
|
||||
<item>Above Slowest</item>
|
||||
<item>Default</item>
|
||||
<item>Above Default</item>
|
||||
<item>Fastest</item>
|
||||
</string-array>
|
||||
<string name="category_connected_devices">Dispositivos conectados</string>
|
||||
<string name="category_not_paired_devices">Dispositivos dispoñíbeis</string>
|
||||
@@ -150,7 +144,6 @@
|
||||
<string name="pref_plugin_telepathy">Enviar unha mensaxe de texto</string>
|
||||
<string name="pref_plugin_telepathy_desc">Enviar mensaxes de texto desde un computador de escritorio.</string>
|
||||
<string name="plugin_not_supported">O dispositivo non é compatíbel con este complemento.</string>
|
||||
<string name="findmyphone_description">Reproduce un son de chamada no móbil para que poida atopalo.</string>
|
||||
<string name="findmyphone_found">Atopado</string>
|
||||
<string name="open">Abrir</string>
|
||||
<string name="close">Pechar</string>
|
||||
|
158
res/values-he/strings.xml
Normal file
158
res/values-he/strings.xml
Normal file
@@ -0,0 +1,158 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<resources>
|
||||
<string name="pref_plugin_telephony">התראות טלפוניות</string>
|
||||
<string name="pref_plugin_telephony_desc">שלח התראה על הודעות ושיחות</string>
|
||||
<string name="pref_plugin_battery">דיווח סוללה</string>
|
||||
<string name="pref_plugin_battery_desc">מדווח על אחוז הסוללה למחשב</string>
|
||||
<string name="pref_plugin_sftp">גישה לקבצים</string>
|
||||
<string name="pref_plugin_clipboard">סנכנרון לוח העתקה</string>
|
||||
<string name="pref_plugin_clipboard_desc">שתף בין המחשבים את מה שמועתק</string>
|
||||
<string name="pref_plugin_mousepad">שליטה מרחוק</string>
|
||||
<string name="pref_plugin_mpris">שליטה במדיה</string>
|
||||
<string name="pref_plugin_runcommand">הרץ פקודה</string>
|
||||
<string name="pref_plugin_ping">פינג</string>
|
||||
<string name="pref_plugin_ping_desc">שלח וקבל פינגים</string>
|
||||
<string name="pref_plugin_notifications">סנכרון התראות</string>
|
||||
<string name="pref_plugin_notifications_desc">הראה את ההתראות מהפלאפון בהתקן אחר</string>
|
||||
<string name="pref_plugin_sharereceiver">שתף וקבל קבצים וכתובות</string>
|
||||
<string name="pref_plugin_sharereceiver_desc">שתף וקבל קבצים וכתובת אינטרנט בין התקנים</string>
|
||||
<string name="plugin_not_available">אפשרות זו אינה זמינה בגרסת האנדרואיד שלך</string>
|
||||
<string name="device_list_empty">אין התקנים</string>
|
||||
<string name="ok">בסדר</string>
|
||||
<string name="cancel">בטל</string>
|
||||
<string name="open_settings">פתח הגדרות</string>
|
||||
<string name="no_permissions">אתה צריך לתת הרשאות לגישה להתראות</string>
|
||||
<string name="send_ping">שלח פינג</string>
|
||||
<string name="open_mpris_controls">שליטה על המדיה</string>
|
||||
<string name="open_mousepad">שלוט על המחשב</string>
|
||||
<string name="mousepad_info">הזז את האצבע על המסך כדי להזיז את סמן העכבר במחשב. לחץ כדי ללחוץ במחשב, השתמש בשנים או שלוש אצבעות כדי ללחוץ על המקש הימני או האמצעי. השתמש בליחצה ארוכה לגרירה ושחרור.</string>
|
||||
<string name="mousepad_double_tap_settings_title">הגדר פעולה ללחיצת שתי אצבעות</string>
|
||||
<string name="mousepad_triple_tap_settings_title">הגדר פעולה ללחיצת שלוש אצבעות</string>
|
||||
<string name="mousepad_sensitivity_settings_title">הגדר רגישות משטח המגע</string>
|
||||
<string name="mousepad_scroll_direction_title">הפוך את כיוון הגלילה</string>
|
||||
<string-array name="mousepad_tap_entries">
|
||||
<item>"לחיצה ימנית "</item>
|
||||
<item>לחיצה אצמעית (גלגלת)</item>
|
||||
<item>שום דבר</item>
|
||||
</string-array>
|
||||
<string name="mousepad_double_default">ימין</string>
|
||||
<string name="mousepad_triple_default">אמצע</string>
|
||||
<string name="mousepad_sensitivity_default">ברירת מחדל</string>
|
||||
<string-array name="mousepad_sensitivity_entries">
|
||||
<item>הכי איטי</item>
|
||||
<item>יותר מההכי איטי</item>
|
||||
<item>ברירת החדל</item>
|
||||
<item>יותר מהברירת מחדל</item>
|
||||
<item>הכי מהיר</item>
|
||||
</string-array>
|
||||
<string name="category_connected_devices">התקנים מחוברים</string>
|
||||
<string name="category_not_paired_devices">התקנים זמינים</string>
|
||||
<string name="category_remembered_devices">התקנים זכורים</string>
|
||||
<string name="plugins_failed_to_load">טעינת התוסף נכשלה (לחץ לעוד מידע):</string>
|
||||
<string name="device_menu_plugins">הגדרות תוספים</string>
|
||||
<string name="device_menu_unpair">בטל התאמה</string>
|
||||
<string name="device_not_reachable">ההתקן המותאם לא זמין</string>
|
||||
<string name="pair_new_device">התאם התקן חדש</string>
|
||||
<string name="unknown_device">התקן לא ידוע</string>
|
||||
<string name="error_not_reachable">ההתקן לא זמין</string>
|
||||
<string name="error_already_requested">כבר בוקשה התאמה</string>
|
||||
<string name="error_already_paired">ההתקן כבר מותאם</string>
|
||||
<string name="error_could_not_send_package">לא יכול לשלוח חבילה</string>
|
||||
<string name="error_timed_out">נגמר הזמן</string>
|
||||
<string name="error_canceled_by_user">בוטל ע\"י המשתמש</string>
|
||||
<string name="error_canceled_by_other_peer">בוטל ע\"י מישהו אחר</string>
|
||||
<string name="error_invalid_key">התקבל מפתח לא חוקי</string>
|
||||
<string name="encryption_info_title">פרטי הצפנה</string>
|
||||
<string name="encryption_info_msg_no_ssl">ההתקן השני אינו משתמש בגרסה האחרונה של KDE Connect, משתמש בשיטת ההצפנה הישנה.</string>
|
||||
<string name="my_device_fingerprint">טביעת האצבע SHA1 של ההתקן היא:</string>
|
||||
<string name="remote_device_fingerprint">"טביעת האצבע SHA1 של ההתקן המרוחק היא: "</string>
|
||||
<string name="pair_requested">בקשת התאמה</string>
|
||||
<string name="pairing_request_from">בוקשה התאמה מ־%1s</string>
|
||||
<string name="received_url_title">התקבל קישור מ־%1s</string>
|
||||
<string name="received_url_text">לחץ כדי לפתוח את \'%1s\'</string>
|
||||
<string name="incoming_file_title">התקבל קובץ ־%1s</string>
|
||||
<string name="incoming_file_text">%1s</string>
|
||||
<string name="outgoing_file_title">שולח קובץ ל־%1s</string>
|
||||
<string name="outgoing_file_text">%1s</string>
|
||||
<string name="received_file_title">התקבל קובץ מ־%1s</string>
|
||||
<string name="received_file_fail_title">נכשל בקבלת קובץ מ־%1s</string>
|
||||
<string name="received_file_text">לחץ כדי לפתוח את %1s</string>
|
||||
<string name="sent_file_title">הקובץ נשלח ל־%1s</string>
|
||||
<string name="sent_file_text">%1s</string>
|
||||
<string name="sent_file_failed_title">נכשל בשליחת הקובץ ל־%1s</string>
|
||||
<string name="sent_file_failed_text">%1s</string>
|
||||
<string name="tap_to_answer">לחץ כדי לענות</string>
|
||||
<string name="reconnect">התחבר מחדש</string>
|
||||
<string name="right_click">שלח לחיצה ימנית</string>
|
||||
<string name="middle_click">שלח לחיצה אמצעית (גלגלת)</string>
|
||||
<string name="show_keyboard">הראה מקלדת</string>
|
||||
<string name="device_not_paired">ההתקן לא מותאם</string>
|
||||
<string name="request_pairing">בקש התאמה</string>
|
||||
<string name="pairing_accept">אשר</string>
|
||||
<string name="pairing_reject">דחה</string>
|
||||
<string name="device">התקן</string>
|
||||
<string name="pair_device">התאם התקן</string>
|
||||
<string name="remote_control">שלוט מרחוק</string>
|
||||
<string name="settings">הגדרות KDE Connect</string>
|
||||
<string name="mpris_play">נגן</string>
|
||||
<string name="mpris_previous">הקודם</string>
|
||||
<string name="mpris_rew">דילוג אחורה</string>
|
||||
<string name="mpris_ff">דילוג קדימה</string>
|
||||
<string name="mpris_next">הבא</string>
|
||||
<string name="mpris_volume">עוצמה</string>
|
||||
<string name="mpris_settings">הגדרות מדיה</string>
|
||||
<string name="mpris_time_settings_title">כפתור דילוג קדימה או אחורה</string>
|
||||
<string name="mpris_time_settings_summary">בחר כמה זמן ידולג שלוחצים על דילוג קדימה או אחורה</string>
|
||||
<string-array name="mpris_time_entries">
|
||||
<item>10 שניות</item>
|
||||
<item>20 שניות</item>
|
||||
<item>חצי דקה</item>
|
||||
<item>דקה</item>
|
||||
<item>שתי דקות</item>
|
||||
</string-array>
|
||||
<string name="share_to">שתף ל...</string>
|
||||
<string name="protocol_version_older">ההתקן משתמש בגרסה ישנה יותר</string>
|
||||
<string name="protocol_version_newer">ההתקן משתמש בגרסה חדשה יותר</string>
|
||||
<string name="general_settings">הגדרות כלליות</string>
|
||||
<string name="plugin_settings">הגדרות</string>
|
||||
<string name="plugin_settings_with_name">הגדרות %s</string>
|
||||
<string name="device_name">שם המכשיר</string>
|
||||
<string name="device_name_preference_summary">%s</string>
|
||||
<string name="invalid_device_name">שם המכשיר לא תקין</string>
|
||||
<string name="shareplugin_text_saved">התקבל טקסט, נשמר ללוח העתקה</string>
|
||||
<string name="custom_devices_settings">רשימת התקנים מותאמת אישית</string>
|
||||
<string name="pair_device_action">התאם התקן חדש</string>
|
||||
<string name="unpair_device_action">בטל את ההתאמה עם %s</string>
|
||||
<string name="custom_device_list">הוסף התקן ע\"י כתובת IP</string>
|
||||
<string name="share_notification_preference">התראות רועשות</string>
|
||||
<string name="share_notification_preference_summary">רטוט ונגן צליל בעת קבלת קובץ</string>
|
||||
<string name="title_activity_notification_filter">סנן התראות</string>
|
||||
<string name="filter_apps_info">התראות יסונכרנו רק לאפליקציות נבחרות</string>
|
||||
<string name="sftp_internal_storage">זיכרון פנימי</string>
|
||||
<string name="sftp_all_files">כל הקבצים</string>
|
||||
<string name="sftp_sdcard_num">כרטיס זיכרון %d</string>
|
||||
<string name="sftp_sdcard">כרטיס זיכרון</string>
|
||||
<string name="sftp_readonly">(לקריאה בלבד)</string>
|
||||
<string name="sftp_camera">תמונות מצלמה</string>
|
||||
<string name="add_host">הוסף כתובת שרת או IP</string>
|
||||
<string name="add_host_hint">כתבות שרת או IP</string>
|
||||
<string name="no_players_connected">לא נמצא נגן</string>
|
||||
<string name="custom_dev_list_help">השתמש באפשרות זו רק אם המכשיר שלך לא מזוהה באופן אוטומטי. הקלד את כתובת הIP או את כינוי ההתקן למטה ולחץ על הכפתור כדי להוסיף לרשימה. לחץ על פריט קיים כדי להסיר אותו מהרשימה.</string>
|
||||
<string name="mpris_player_on_device">%1$s ב־%2$s</string>
|
||||
<string name="send_files">שלח קובץ</string>
|
||||
<string name="pairing_title">מכשירי KDE Connect</string>
|
||||
<string name="pairing_description">התקנים אחרים המריצים KDE Connect ברשת הנוכחית צריכים להופיע פה.</string>
|
||||
<string name="device_paired">התקן מתואם</string>
|
||||
<string name="device_rename_title">שנה שם התקן</string>
|
||||
<string name="device_rename_confirm">שנה שם</string>
|
||||
<string name="refresh">רענן</string>
|
||||
<string name="unreachable_description">ההתקן המתואם לא זמין, וודא שהוא מחובר לאותה רשת אליה התקן זה מחובר.</string>
|
||||
<string name="no_file_browser">לא נמצאו מנהלי קבצים מותקנים במכשיר זה.</string>
|
||||
<string name="pref_plugin_telepathy">שלח SMS</string>
|
||||
<string name="pref_plugin_telepathy_desc">שלח הודעות מהמחשב שלך</string>
|
||||
<string name="plugin_not_supported">התוסף הזה לא נתמך ע\"י המכשיר שלך</string>
|
||||
<string name="findmyphone_title">מצא את המכשיר שלי</string>
|
||||
<string name="findmyphone_found">נמצא</string>
|
||||
<string name="open">פתח</string>
|
||||
<string name="close">סגור</string>
|
||||
</resources>
|
@@ -5,10 +5,8 @@
|
||||
<string name="pref_plugin_battery">Akkumulátor jelentés</string>
|
||||
<string name="pref_plugin_battery_desc">Akkumulátorállapot időszakos jelentése</string>
|
||||
<string name="pref_plugin_sftp">Fájlrendszer kifejtés</string>
|
||||
<string name="pref_plugin_sftp_desc">Lehetővé teszi a telefon fájlrendszerének távolról történő tallózását</string>
|
||||
<string name="pref_plugin_clipboard">Vágólap szinkronizáció</string>
|
||||
<string name="pref_plugin_clipboard_desc">A vágólap tartalmának megosztása</string>
|
||||
<string name="pref_plugin_mpris_desc">Hang vagy videó vezérlése a telefonról</string>
|
||||
<string name="pref_plugin_ping">Ping</string>
|
||||
<string name="pref_plugin_ping_desc">Pingek küldése és fogadása</string>
|
||||
<string name="pref_plugin_notifications">Értesítés szinkronizáció</string>
|
||||
|
@@ -5,19 +5,21 @@
|
||||
<string name="pref_plugin_battery">Livello batteria</string>
|
||||
<string name="pref_plugin_battery_desc">Comunica periodicamente lo stato della batteria</string>
|
||||
<string name="pref_plugin_sftp">Esposizione filesystem</string>
|
||||
<string name="pref_plugin_sftp_desc">Consente di navigare da remoto il filesystem del telefono</string>
|
||||
<string name="pref_plugin_sftp_desc">Consente di navigare da remoto il filesystem del dispositivo</string>
|
||||
<string name="pref_plugin_clipboard">Sincronizzazione appunti</string>
|
||||
<string name="pref_plugin_clipboard_desc">Condividi il contenuto degli appunti</string>
|
||||
<string name="pref_plugin_mousepad">Impulso remoto</string>
|
||||
<string name="pref_plugin_mousepad_desc">Usa il tuo telefono come mouse e tastiera</string>
|
||||
<string name="pref_plugin_mousepad_desc">Usa il tuo telefono o il tablet come touchpad e tastiera</string>
|
||||
<string name="pref_plugin_mpris">Controlli multimediali</string>
|
||||
<string name="pref_plugin_mpris_desc">Controlla la riproduzione audio/video dal telefono</string>
|
||||
<string name="pref_plugin_mpris_desc">Fornisce un controllo remoto per il tuo lettore multimediale</string>
|
||||
<string name="pref_plugin_runcommand">Esegui comando</string>
|
||||
<string name="pref_plugin_runcommand_desc">Esegui comandi remoti dal tuo telefono</string>
|
||||
<string name="pref_plugin_runcommand_desc">Esegui comandi remoti dal tuo telefono o tablet</string>
|
||||
<string name="pref_plugin_ping">Ping</string>
|
||||
<string name="pref_plugin_ping_desc">Invia e ricevi ping</string>
|
||||
<string name="pref_plugin_notifications">Sincronizzazione notifiche</string>
|
||||
<string name="pref_plugin_notifications_desc">Consenti l\'accesso alle notifiche dagli altri dispositivi</string>
|
||||
<string name="pref_plugin_receive_notifications">Ricevi notifiche</string>
|
||||
<string name="pref_plugin_receive_notifications_desc">Ricevi notifiche da altri dispositivi e le visualizza su Android</string>
|
||||
<string name="pref_plugin_sharereceiver">Condividi e ricevi</string>
|
||||
<string name="pref_plugin_sharereceiver_desc">Condividi file e URL tra i dispositivi</string>
|
||||
<string name="plugin_not_available">Questa funzionalità non è disponibile sulla tua versione di Android</string>
|
||||
@@ -156,7 +158,8 @@
|
||||
<string name="pref_plugin_telepathy_desc">Invia messaggi di testo dal tuo desktop</string>
|
||||
<string name="plugin_not_supported">Questa estensione non è supportata dal dispositivo</string>
|
||||
<string name="findmyphone_title">Trova il mio telefono</string>
|
||||
<string name="findmyphone_description">Fa squillare questo telefono per trovarlo.</string>
|
||||
<string name="findmyphone_title_tablet">Trova il mio tablet</string>
|
||||
<string name="findmyphone_description">Fa squillare questo dispositivo per trovarlo</string>
|
||||
<string name="findmyphone_found">Trovato</string>
|
||||
<string name="open">Apri</string>
|
||||
<string name="close">Chiudi</string>
|
||||
|
@@ -5,13 +5,10 @@
|
||||
<string name="pref_plugin_battery">배터리 보고</string>
|
||||
<string name="pref_plugin_battery_desc">주기적으로 배터리 상태 보고</string>
|
||||
<string name="pref_plugin_sftp">파일 시스템 보기</string>
|
||||
<string name="pref_plugin_sftp_desc">휴대폰의 파일 시스템 보기</string>
|
||||
<string name="pref_plugin_clipboard">클립보드 동기화</string>
|
||||
<string name="pref_plugin_clipboard_desc">클립보드 내용 동기화</string>
|
||||
<string name="pref_plugin_mousepad">원격 입력</string>
|
||||
<string name="pref_plugin_mousepad_desc">내 장치를 마우스와 키보드로 사용하기</string>
|
||||
<string name="pref_plugin_mpris">멀티미디어 제어</string>
|
||||
<string name="pref_plugin_mpris_desc">휴대폰에서 오디오/비디오 제어</string>
|
||||
<string name="pref_plugin_runcommand">명령 실행</string>
|
||||
<string name="pref_plugin_ping">핑</string>
|
||||
<string name="pref_plugin_ping_desc">핑 보내고 받기</string>
|
||||
@@ -146,7 +143,6 @@
|
||||
<string name="pref_plugin_telepathy">SMS 보내기</string>
|
||||
<string name="pref_plugin_telepathy_desc">데스크톱에서 문자 메시지 보내기</string>
|
||||
<string name="plugin_not_supported">장치에서 이 플러그인을 지원하지 않습니다</string>
|
||||
<string name="findmyphone_description">소리를 울려서 휴대폰을 찾는 데 도움을 줍니다.</string>
|
||||
<string name="findmyphone_found">찾았음</string>
|
||||
<string name="open">열기</string>
|
||||
<string name="close">닫기</string>
|
||||
|
@@ -41,11 +41,14 @@
|
||||
<string name="error_already_requested">Jau paprašyta suporuoti</string>
|
||||
<string name="error_already_paired">Įrenginys jau suporuotas</string>
|
||||
<string name="error_could_not_send_package">Nepavyksta išsiųsti paketo</string>
|
||||
<string name="error_timed_out">Skirtasis laikas baigėsi</string>
|
||||
<string name="error_canceled_by_user">Naudotojas atšaukė užduotį</string>
|
||||
<string name="error_canceled_by_other_peer">Porininkas atšaukė užduotį</string>
|
||||
<string name="error_invalid_key">Gautas netinkamas raktas</string>
|
||||
<string name="pair_requested">Paprašyta suporuoti</string>
|
||||
<string name="incoming_file_text">%1s</string>
|
||||
<string name="outgoing_file_text">%1s</string>
|
||||
<string name="sent_file_text">%1s</string>
|
||||
<string name="sent_file_failed_text">%1s</string>
|
||||
<string name="tap_to_answer">Norėdami atsakyti, palieskite</string>
|
||||
<string name="reconnect">Prisijungti iš naujo</string>
|
||||
<string name="show_keyboard">Rodyti klaviatūrą</string>
|
||||
@@ -83,6 +86,7 @@
|
||||
<string name="pair_device_action">Suporuoti naują įrenginį</string>
|
||||
<string name="unpair_device_action">Atrišti %s</string>
|
||||
<string name="custom_device_list">Pridėti įrenginį pagal IP</string>
|
||||
<string name="sftp_internal_storage">Vidinė saugykla</string>
|
||||
<string name="sftp_all_files">Visi failai</string>
|
||||
<string name="sftp_sdcard_num">SD kortelė %d</string>
|
||||
<string name="sftp_sdcard">SD kortelė</string>
|
||||
@@ -96,13 +100,9 @@
|
||||
<string name="pairing_description">Čia turėtų pasirodyti to kiti paties tinklo įrenginiai, kuriuose veikia „KDE Connect“</string>
|
||||
<string name="device_paired">Įrenginys suporuotas</string>
|
||||
<string name="device_rename_title">Pervadinti įrenginį</string>
|
||||
<string name="device_rename_confirm">Pervadinti</string>
|
||||
<string name="refresh">Atnaujinti</string>
|
||||
<string name="unreachable_description">Šis suporuotas įrenginys nepasiekiamas. Patikrinkite, ar jis prisijungęs prie to paties tinklo.</string>
|
||||
<string name="pref_plugin_telepathy">Siųsti SMS</string>
|
||||
<string name="plugin_not_supported">Telefonas nepalaiko šio papildinio</string>
|
||||
<string name="findmyphone_description">Telefonas skambės, tad galėsite jį rasti.</string>
|
||||
<string name="findmyphone_found">Radau</string>
|
||||
<string name="open">Atverti</string>
|
||||
<string name="close">Užverti</string>
|
||||
</resources>
|
||||
|
@@ -5,19 +5,21 @@
|
||||
<string name="pref_plugin_battery">Batterijrapportage</string>
|
||||
<string name="pref_plugin_battery_desc">Rapporteer periodiek de status van de batterij</string>
|
||||
<string name="pref_plugin_sftp">Bestandssysteem blootstellen</string>
|
||||
<string name="pref_plugin_sftp_desc">Het bladeren in het bestandssysteem op afstand in de telefoon toestaan</string>
|
||||
<string name="pref_plugin_sftp_desc">Het bladeren in het bestandssysteem van het apparaat op afstand toestaan</string>
|
||||
<string name="pref_plugin_clipboard">Klembordsynchronisatie</string>
|
||||
<string name="pref_plugin_clipboard_desc">De inhoud van het klembord delen</string>
|
||||
<string name="pref_plugin_mousepad">Invoer op afstand</string>
|
||||
<string name="pref_plugin_mousepad_desc">Uw telefoon gebruiken als een muis en toetsenbord</string>
|
||||
<string name="pref_plugin_mousepad_desc">Uw telefoon of tablet gebruiken als een touchpad en toetsenbord</string>
|
||||
<string name="pref_plugin_mpris">Bediening van multimedia</string>
|
||||
<string name="pref_plugin_mpris_desc">Bedien de audio/video vanaf uw telefoon</string>
|
||||
<string name="pref_plugin_mpris_desc">Biedt een afstandsbediening voor uw mediaspeler</string>
|
||||
<string name="pref_plugin_runcommand">Commando uitvoeren</string>
|
||||
<string name="pref_plugin_runcommand_desc">Commando\'s afvuren op afstand vanaf uw telefoon</string>
|
||||
<string name="pref_plugin_runcommand_desc">Commando\'s afvuren op afstand vanaf uw telefoon of tablet</string>
|
||||
<string name="pref_plugin_ping">Ping</string>
|
||||
<string name="pref_plugin_ping_desc">Pings verzenden en ontvangen</string>
|
||||
<string name="pref_plugin_notifications">Synchronisatie van meldingen</string>
|
||||
<string name="pref_plugin_notifications_desc">Bekijk uw meldingen van andere apparaten</string>
|
||||
<string name="pref_plugin_receive_notifications">Meldingen ontvangen</string>
|
||||
<string name="pref_plugin_receive_notifications_desc">Meldingen van het andere apparaat ontvangen en tonen op Android</string>
|
||||
<string name="pref_plugin_sharereceiver">Delen en Ontvangen</string>
|
||||
<string name="pref_plugin_sharereceiver_desc">Bestanden en URL\'s delen tussen apparaten</string>
|
||||
<string name="plugin_not_available">Deze functie is niet beschikbaar in uw versie van Android</string>
|
||||
@@ -156,7 +158,8 @@
|
||||
<string name="pref_plugin_telepathy_desc">Stuur tekstberichten van uw bureaublad</string>
|
||||
<string name="plugin_not_supported">Deze plug-in wordt niet ondersteund door het apparaat</string>
|
||||
<string name="findmyphone_title">Zoek mijn telefoon</string>
|
||||
<string name="findmyphone_description">Laat deze telefoon bellen zodat u het kunt vinden.</string>
|
||||
<string name="findmyphone_title_tablet">Zoek mijn tablet</string>
|
||||
<string name="findmyphone_description">Laat dit apparaat bellen zodat u het kunt vinden</string>
|
||||
<string name="findmyphone_found">Gevonden</string>
|
||||
<string name="open">Openen</string>
|
||||
<string name="close">Sluiten</string>
|
||||
|
@@ -5,19 +5,21 @@
|
||||
<string name="pref_plugin_battery">Zgłaszanie baterii</string>
|
||||
<string name="pref_plugin_battery_desc">Okresowo zgłaszaj stan baterii</string>
|
||||
<string name="pref_plugin_sftp">Eksponowanie systemu plików</string>
|
||||
<string name="pref_plugin_sftp_desc">Zezwala na zdalne przeglądanie systemu plików telefonu</string>
|
||||
<string name="pref_plugin_sftp_desc">Zezwala na zdalne przeglądanie systemu plików tego urządzenia</string>
|
||||
<string name="pref_plugin_clipboard">Synchronizacja schowka</string>
|
||||
<string name="pref_plugin_clipboard_desc">Udostępnij zawartość schowka</string>
|
||||
<string name="pref_plugin_mousepad">Zdalne sterowanie</string>
|
||||
<string name="pref_plugin_mousepad_desc">Użyj swojego telefonu jako myszy i klawiatury</string>
|
||||
<string name="pref_plugin_mousepad_desc">Użyj swojego telefonu lub tabletu jako myszy i klawiatury</string>
|
||||
<string name="pref_plugin_mpris">Sterowanie multimediami</string>
|
||||
<string name="pref_plugin_mpris_desc">Steruj dźwiękiem/obrazem ze swojego telefonu</string>
|
||||
<string name="pref_plugin_mpris_desc">Zapewnia zdalne sterowanie twoim odtwarzaczem multimedialnym</string>
|
||||
<string name="pref_plugin_runcommand">Wykonaj polecenie</string>
|
||||
<string name="pref_plugin_runcommand_desc">Wyzwalaj zdalne polecenia z twojego telefonu</string>
|
||||
<string name="pref_plugin_runcommand_desc">Wyzwalaj zdalne polecenia z twojego telefonu lub tabletu</string>
|
||||
<string name="pref_plugin_ping">Ping</string>
|
||||
<string name="pref_plugin_ping_desc">Wysyłaj i otrzymuj pingi</string>
|
||||
<string name="pref_plugin_notifications">Powiadomienia synchronizacji</string>
|
||||
<string name="pref_plugin_notifications_desc">Uzyskaj dostęp do swoich powiadomień z innego urządzenia</string>
|
||||
<string name="pref_plugin_receive_notifications">Otrzymuj powiadomienia</string>
|
||||
<string name="pref_plugin_receive_notifications_desc">Otrzymuj powiadomienia z urządzeń i wyświetlaj je na Androidzie</string>
|
||||
<string name="pref_plugin_sharereceiver">Udostępniaj i otrzymuj</string>
|
||||
<string name="pref_plugin_sharereceiver_desc">Współdziel pliki i adresy URL pomiędzy urządzeniami</string>
|
||||
<string name="plugin_not_available">Funkcja ta nie jest dostępna w twojej wersji Androida</string>
|
||||
@@ -156,7 +158,8 @@
|
||||
<string name="pref_plugin_telepathy_desc">Wyślij wiadomość tekstową z komputera</string>
|
||||
<string name="plugin_not_supported">Ta wtyczka nie jest obsługiwana przez to urządzenie</string>
|
||||
<string name="findmyphone_title">Znajdź mój telefon</string>
|
||||
<string name="findmyphone_description">Dzwoni na ten telefon, tak abyś mógł go znaleźć.</string>
|
||||
<string name="findmyphone_title_tablet">Znajdź mój tablet</string>
|
||||
<string name="findmyphone_description">Dzwoni na dane urządzenie, tak abyś mógł je znaleźć.</string>
|
||||
<string name="findmyphone_found">Znaleziony</string>
|
||||
<string name="open">Otwórz</string>
|
||||
<string name="close">Zamknij</string>
|
||||
|
@@ -5,13 +5,10 @@
|
||||
<string name="pref_plugin_battery">Relatório da bateria</string>
|
||||
<string name="pref_plugin_battery_desc">Informação periódica do status da bateria</string>
|
||||
<string name="pref_plugin_sftp">Exposição do sistema de arquivos</string>
|
||||
<string name="pref_plugin_sftp_desc">Navegação remota pelo sistema de arquivos do telefone</string>
|
||||
<string name="pref_plugin_clipboard">Sincronização da área de transferência</string>
|
||||
<string name="pref_plugin_clipboard_desc">Compartilha o conteúdo da área de transferência</string>
|
||||
<string name="pref_plugin_mousepad">Introdução de dados remota</string>
|
||||
<string name="pref_plugin_mousepad_desc">Use seu telefone como mouse ou teclado</string>
|
||||
<string name="pref_plugin_mpris">Controle multimídia</string>
|
||||
<string name="pref_plugin_mpris_desc">Controla áudio e vídeo a partir do seu telefone</string>
|
||||
<string name="pref_plugin_runcommand">Executar comando</string>
|
||||
<string name="pref_plugin_ping">Ping</string>
|
||||
<string name="pref_plugin_ping_desc">Envia e recebe pings</string>
|
||||
@@ -31,8 +28,6 @@
|
||||
<string name="mousepad_info">Mova um dedo pela tela para mover o ponteiro do mouse. Dê um toque para clicar e use dois/três dedos para os botões da direita e do meio. Use uma pressão longa para arrastar e soltar.</string>
|
||||
<string name="mousepad_double_tap_settings_title">Definir a ação do toque com dois dedos</string>
|
||||
<string name="mousepad_triple_tap_settings_title">Definir a ação do toque com três dedos</string>
|
||||
<string name="mousepad_sensitivity_settings_title">Definir a sensibilidade do touchpad</string>
|
||||
<string name="mousepad_scroll_direction_title">Direção de rolagem inversa</string>
|
||||
<string-array name="mousepad_tap_entries">
|
||||
<item>Botão direito</item>
|
||||
<item>Botão do meio</item>
|
||||
@@ -40,13 +35,12 @@
|
||||
</string-array>
|
||||
<string name="mousepad_double_default">direita</string>
|
||||
<string name="mousepad_triple_default">meio</string>
|
||||
<string name="mousepad_sensitivity_default">padrão</string>
|
||||
<string-array name="mousepad_sensitivity_entries">
|
||||
<item>Mais lento</item>
|
||||
<item>Ainda mais lento</item>
|
||||
<item>Padrão</item>
|
||||
<item>Acima do padrão</item>
|
||||
<item>Mais rápido</item>
|
||||
<item>Slowest</item>
|
||||
<item>Above Slowest</item>
|
||||
<item>Default</item>
|
||||
<item>Above Default</item>
|
||||
<item>Fastest</item>
|
||||
</string-array>
|
||||
<string name="category_connected_devices">Dispositivos conectados</string>
|
||||
<string name="category_not_paired_devices">Dispositivos disponíveis</string>
|
||||
@@ -150,8 +144,5 @@
|
||||
<string name="pref_plugin_telepathy">Enviar SMS</string>
|
||||
<string name="pref_plugin_telepathy_desc">Enviar mensagens de texto do seu Desktop</string>
|
||||
<string name="plugin_not_supported">Este plugin não é suportado pelo dispositivo</string>
|
||||
<string name="findmyphone_description">Faça este telefone tocar para encontrá-lo.</string>
|
||||
<string name="findmyphone_found">Encontrado</string>
|
||||
<string name="open">Abrir</string>
|
||||
<string name="close">Fechar</string>
|
||||
</resources>
|
||||
|
@@ -5,19 +5,21 @@
|
||||
<string name="pref_plugin_battery">Relatório da bateria</string>
|
||||
<string name="pref_plugin_battery_desc">Comunicar periodicamente o estado da bateria</string>
|
||||
<string name="pref_plugin_sftp">Exposição do sistema de ficheiros</string>
|
||||
<string name="pref_plugin_sftp_desc">Permite navegar pelo sistema de ficheiros remoto do telefone</string>
|
||||
<string name="pref_plugin_sftp_desc">Permite navegar pelo sistema de ficheiros remoto deste dispositivo</string>
|
||||
<string name="pref_plugin_clipboard">Sincronização da área de transferência</string>
|
||||
<string name="pref_plugin_clipboard_desc">Partilhar o conteúdo da área de transferência</string>
|
||||
<string name="pref_plugin_mousepad">Introdução remota de dados</string>
|
||||
<string name="pref_plugin_mousepad_desc">Usar o seu telefone como um rato ou teclado</string>
|
||||
<string name="pref_plugin_mousepad_desc">Usar o seu telefone ou \'tablet\' como um rato ou teclado</string>
|
||||
<string name="pref_plugin_mpris">Comandos multimédia</string>
|
||||
<string name="pref_plugin_mpris_desc">Controlar o áudio/vídeo a partir do seu telefone</string>
|
||||
<string name="pref_plugin_mpris_desc">Oferece um comando à distância para o seu leitor multimédia</string>
|
||||
<string name="pref_plugin_runcommand">Executar um Comando</string>
|
||||
<string name="pref_plugin_runcommand_desc">Despoletar comandos remotos a partir do seu telefone</string>
|
||||
<string name="pref_plugin_runcommand_desc">Despoletar comandos remotos a partir do seu telefone ou \'tablet\'</string>
|
||||
<string name="pref_plugin_ping">Contacto</string>
|
||||
<string name="pref_plugin_ping_desc">Enviar e receber pedidos de contacto (\'ping\')</string>
|
||||
<string name="pref_plugin_notifications">Sincronização da notificação</string>
|
||||
<string name="pref_plugin_notifications_desc">Aceder às suas notificações a partir de outros dispositivos</string>
|
||||
<string name="pref_plugin_receive_notifications">Receber as notificações</string>
|
||||
<string name="pref_plugin_receive_notifications_desc">Receber as notificações do outro dispositivo e mostrá-las no Android</string>
|
||||
<string name="pref_plugin_sharereceiver">Partilhar e receber</string>
|
||||
<string name="pref_plugin_sharereceiver_desc">Partilhar ficheiros e URL\'s entre dispositivos</string>
|
||||
<string name="plugin_not_available">Esta funcionalidade não está disponível na sua versão do Android</string>
|
||||
@@ -41,13 +43,13 @@
|
||||
</string-array>
|
||||
<string name="mousepad_double_default">direita</string>
|
||||
<string name="mousepad_triple_default">meio</string>
|
||||
<string name="mousepad_sensitivity_default">predefinição</string>
|
||||
<string name="mousepad_sensitivity_default">por omissão</string>
|
||||
<string-array name="mousepad_sensitivity_entries">
|
||||
<item>Mais Lento</item>
|
||||
<item>Ainda Mais Lento</item>
|
||||
<item>Mais Lenta</item>
|
||||
<item>Ainda Mais Lenta</item>
|
||||
<item>Predefinição</item>
|
||||
<item>Acima da Predefinição</item>
|
||||
<item>Mais Rápido</item>
|
||||
<item>Mais Rápida</item>
|
||||
</string-array>
|
||||
<string name="category_connected_devices">Dispositivos ligados</string>
|
||||
<string name="category_not_paired_devices">Dispositivos disponíveis</string>
|
||||
@@ -66,8 +68,8 @@
|
||||
<string name="error_canceled_by_user">Cancelado pelo utilizador</string>
|
||||
<string name="error_canceled_by_other_peer">Cancelado pela outra máquina</string>
|
||||
<string name="error_invalid_key">Chave inválida recebida</string>
|
||||
<string name="encryption_info_title">Dados de Encriptação</string>
|
||||
<string name="encryption_info_msg_no_ssl">O outro dispositivo não usa uma versão recente do KDE Connect; será usado o método antigo de encriptação.</string>
|
||||
<string name="encryption_info_title">Informação de Encriptação</string>
|
||||
<string name="encryption_info_msg_no_ssl">O outro dispositivo não usa uma versão recente do KDE Connect; a ser usado o método de encriptação antigo.</string>
|
||||
<string name="my_device_fingerprint">A impressão digital SHA1 do certificado do seu dispositivo é:</string>
|
||||
<string name="remote_device_fingerprint">A impressão digital SHA1 do certificado do dispositivo remoto é:</string>
|
||||
<string name="pair_requested">Emparelhamento pedido</string>
|
||||
@@ -156,7 +158,8 @@
|
||||
<string name="pref_plugin_telepathy_desc">Enviar mensagens de texto a partir do seu ambiente de trabalho</string>
|
||||
<string name="plugin_not_supported">Este \'plugin\' não é suportado pelo dispositivo</string>
|
||||
<string name="findmyphone_title">Descobrir o meu telefone</string>
|
||||
<string name="findmyphone_description">Toca este telefone para que o possa encontrar.</string>
|
||||
<string name="findmyphone_title_tablet">Descobrir o meu \'tablet\'</string>
|
||||
<string name="findmyphone_description">Toca este dispositivo para que o possa encontrar</string>
|
||||
<string name="findmyphone_found">Encontrado</string>
|
||||
<string name="open">Abrir</string>
|
||||
<string name="close">Fechar</string>
|
||||
|
@@ -5,10 +5,8 @@
|
||||
<string name="pref_plugin_battery">Raport acumulator</string>
|
||||
<string name="pref_plugin_battery_desc">Raportează periodic starea acumulatorului</string>
|
||||
<string name="pref_plugin_sftp">Expunere sistem de fișiere</string>
|
||||
<string name="pref_plugin_sftp_desc">Vă permite să răsfoiți de la distanță sistemul de fișiere al dispozitivului</string>
|
||||
<string name="pref_plugin_clipboard">Sincronizare clipboard</string>
|
||||
<string name="pref_plugin_clipboard_desc">Partajează conținutul clipboardului</string>
|
||||
<string name="pref_plugin_mpris_desc">Controlați audio/video de pe telefon</string>
|
||||
<string name="pref_plugin_ping">Ping</string>
|
||||
<string name="pref_plugin_ping_desc">Trimite și primește ping-uri</string>
|
||||
<string name="pref_plugin_notifications">Sincronizare notificări</string>
|
||||
|
@@ -5,13 +5,10 @@
|
||||
<string name="pref_plugin_battery">Состояние батареи</string>
|
||||
<string name="pref_plugin_battery_desc">Периодическое информирование о состоянии батареи</string>
|
||||
<string name="pref_plugin_sftp">Просмотр файловой системы</string>
|
||||
<string name="pref_plugin_sftp_desc">Позволяет удалённо просматривать файловую систему телефона</string>
|
||||
<string name="pref_plugin_clipboard">Синхронизация буфера обмена</string>
|
||||
<string name="pref_plugin_clipboard_desc">Использование общего буфера обмена</string>
|
||||
<string name="pref_plugin_mousepad">Удалённый ввод</string>
|
||||
<string name="pref_plugin_mousepad_desc">Использование телефона вместо мыши и клавиатуры</string>
|
||||
<string name="pref_plugin_mpris">Управление воспроизведением</string>
|
||||
<string name="pref_plugin_mpris_desc">Управление медиапроигрывателем с телефона</string>
|
||||
<string name="pref_plugin_runcommand">Запуск команд</string>
|
||||
<string name="pref_plugin_ping">Пинг</string>
|
||||
<string name="pref_plugin_ping_desc">Отправка и получение тестовых сигналов</string>
|
||||
@@ -146,7 +143,6 @@
|
||||
<string name="pref_plugin_telepathy">Отправка SMS</string>
|
||||
<string name="pref_plugin_telepathy_desc">Отправка SMS-сообщений с вашего компьютера</string>
|
||||
<string name="plugin_not_supported">Этот модуль не поддерживается устройством</string>
|
||||
<string name="findmyphone_description">Подача звукового сигнала на телефоне, чтобы вы могли его найти.</string>
|
||||
<string name="findmyphone_found">Найден</string>
|
||||
<string name="open">Открыть</string>
|
||||
<string name="close">Закрыть</string>
|
||||
|
@@ -5,19 +5,16 @@
|
||||
<string name="pref_plugin_battery">Oznam o batérii</string>
|
||||
<string name="pref_plugin_battery_desc">Periodicky oznamovať stav batérie</string>
|
||||
<string name="pref_plugin_sftp">Odhaliť súborový systém</string>
|
||||
<string name="pref_plugin_sftp_desc">Umožní prístup na súborový systém telefónu vzdialene</string>
|
||||
<string name="pref_plugin_clipboard">Synchronizácia schránky</string>
|
||||
<string name="pref_plugin_clipboard_desc">Zdieľať obsah schránky</string>
|
||||
<string name="pref_plugin_mousepad">Vzdialený vstup</string>
|
||||
<string name="pref_plugin_mousepad_desc">Použiť váš telefón ako myš a klávesnicu</string>
|
||||
<string name="pref_plugin_mpris">Multimediálne ovládače</string>
|
||||
<string name="pref_plugin_mpris_desc">Ovládať audio/video z vášho telefónu</string>
|
||||
<string name="pref_plugin_runcommand">Spustiť príkaz</string>
|
||||
<string name="pref_plugin_runcommand_desc">Spustiť vzdialené príkazy z vášho telefónu</string>
|
||||
<string name="pref_plugin_ping">Ping</string>
|
||||
<string name="pref_plugin_ping_desc">Poslať a prijať pingy</string>
|
||||
<string name="pref_plugin_notifications">Synchronizácia pripomienok</string>
|
||||
<string name="pref_plugin_notifications_desc">Prístup k vašim pripomienkam z iných zariadení</string>
|
||||
<string name="pref_plugin_receive_notifications">Prijať upozornenia</string>
|
||||
<string name="pref_plugin_sharereceiver">Zdieľať a prijať</string>
|
||||
<string name="pref_plugin_sharereceiver_desc">Zdieľať súbory a medzi zariadeniami</string>
|
||||
<string name="plugin_not_available">Táto funkcia nie je dostupná vo vašej verzii Androidu</string>
|
||||
@@ -156,7 +153,6 @@
|
||||
<string name="pref_plugin_telepathy_desc">Posielať textové správy z vášho počítača</string>
|
||||
<string name="plugin_not_supported">Tento plugin nie je podporovaný zariadením</string>
|
||||
<string name="findmyphone_title">Nájsť môj telefón</string>
|
||||
<string name="findmyphone_description">Prezvoní vaše zariadenie, aby ste ho našli.</string>
|
||||
<string name="findmyphone_found">Nájdené</string>
|
||||
<string name="open">Otvoriť</string>
|
||||
<string name="close">Zavrieť</string>
|
||||
|
@@ -5,19 +5,21 @@
|
||||
<string name="pref_plugin_battery">Batterirapport</string>
|
||||
<string name="pref_plugin_battery_desc">Rapportera periodiskt batteriets status</string>
|
||||
<string name="pref_plugin_sftp">Exponera filsystem</string>
|
||||
<string name="pref_plugin_sftp_desc">Gör det möjligt att bläddra i telefonens filsystem från annan apparat</string>
|
||||
<string name="pref_plugin_sftp_desc">Gör det möjligt att bläddra i apparatens filsystem från annan apparat</string>
|
||||
<string name="pref_plugin_clipboard">Synkronisera klippbord</string>
|
||||
<string name="pref_plugin_clipboard_desc">Dela klippbordets innehåll</string>
|
||||
<string name="pref_plugin_mousepad">Fjärrinmatning</string>
|
||||
<string name="pref_plugin_mousepad_desc">Använd telefonen som mus och tangentbord</string>
|
||||
<string name="pref_plugin_mousepad_desc">Använd telefonen eller surfplattan som mus och tangentbord</string>
|
||||
<string name="pref_plugin_mpris">Multimediakontroller</string>
|
||||
<string name="pref_plugin_mpris_desc">Styr ljud och video från telefonen</string>
|
||||
<string name="pref_plugin_mpris_desc">Tillhandahåller en fjärrkontroll för mediaspelaren</string>
|
||||
<string name="pref_plugin_runcommand">Kör kommando</string>
|
||||
<string name="pref_plugin_runcommand_desc">Utlös fjärrkommandon från din telefon</string>
|
||||
<string name="pref_plugin_runcommand_desc">Utlös fjärrkommandon från din telefon eller surfplatta</string>
|
||||
<string name="pref_plugin_ping">Ping</string>
|
||||
<string name="pref_plugin_ping_desc">Skicka och ta emot ping</string>
|
||||
<string name="pref_plugin_notifications">Synkronisering av underrättelser</string>
|
||||
<string name="pref_plugin_notifications_desc">Kom åt underrättelser från andra apparater</string>
|
||||
<string name="pref_plugin_receive_notifications">Ta emot underrättelser</string>
|
||||
<string name="pref_plugin_receive_notifications_desc">Ta emot underrättelser från andra apparater och visa dem på Android</string>
|
||||
<string name="pref_plugin_sharereceiver">Dela och ta emot</string>
|
||||
<string name="pref_plugin_sharereceiver_desc">Dela filer och webbadresser mellan apparater</string>
|
||||
<string name="plugin_not_available">Funktionen är inte tillgänglig i Android-versionen</string>
|
||||
@@ -156,7 +158,8 @@
|
||||
<string name="pref_plugin_telepathy_desc">Skicka textmeddelanden från skrivbordet</string>
|
||||
<string name="plugin_not_supported">Insticksprogrammet stöds inte av apparaten</string>
|
||||
<string name="findmyphone_title">Hitta min telefon</string>
|
||||
<string name="findmyphone_description">Ringer till telefonen så att du kan hitta den.</string>
|
||||
<string name="findmyphone_title_tablet">Hitta min surfplatta</string>
|
||||
<string name="findmyphone_description">Ringer till apparaten så att du kan hitta den</string>
|
||||
<string name="findmyphone_found">Hittade den</string>
|
||||
<string name="open">Öppna</string>
|
||||
<string name="close">Stäng</string>
|
||||
|
@@ -5,19 +5,21 @@
|
||||
<string name="pref_plugin_battery">Звіт щодо заряду</string>
|
||||
<string name="pref_plugin_battery_desc">Періодична інформація щодо стану акумулятора</string>
|
||||
<string name="pref_plugin_sftp">Показ файлової системи</string>
|
||||
<string name="pref_plugin_sftp_desc">Надає змогу віддалено переглядати файлову систему телефону</string>
|
||||
<string name="pref_plugin_sftp_desc">Надає змогу віддалено переглядати файлову систему цього пристрою</string>
|
||||
<string name="pref_plugin_clipboard">Синхронізація буфера</string>
|
||||
<string name="pref_plugin_clipboard_desc">Спільне використання буфера обміну даними</string>
|
||||
<string name="pref_plugin_mousepad">Дистанційне введення</string>
|
||||
<string name="pref_plugin_mousepad_desc">Скористайтеся телефоном як замінником миші і клавіатури</string>
|
||||
<string name="pref_plugin_mousepad_desc">Скористайтеся телефоном або планшетом як замінником сенсорної панелі і клавіатури</string>
|
||||
<string name="pref_plugin_mpris">Керування відтворенням</string>
|
||||
<string name="pref_plugin_mpris_desc">Керування відтворенням звуку та відео з вашого телефону</string>
|
||||
<string name="pref_plugin_mpris_desc">Надає можливість віддаленого керування вашим мультимедійним програвачем</string>
|
||||
<string name="pref_plugin_runcommand">Виконати команду</string>
|
||||
<string name="pref_plugin_runcommand_desc">Віддалені команди з вашого телефону</string>
|
||||
<string name="pref_plugin_runcommand_desc">Віддалені команди з вашого телефону або планшета</string>
|
||||
<string name="pref_plugin_ping">Підтримання зв’язку</string>
|
||||
<string name="pref_plugin_ping_desc">Надсилання і отримання сигналів підтримання зв’язку</string>
|
||||
<string name="pref_plugin_notifications">Синхронізація сповіщень</string>
|
||||
<string name="pref_plugin_notifications_desc">Доступ до ваших сповіщень з інших пристроїв</string>
|
||||
<string name="pref_plugin_receive_notifications">Отримати сповіщення</string>
|
||||
<string name="pref_plugin_receive_notifications_desc">Отримання сповіщень з іншого пристрою і показ їх у Android</string>
|
||||
<string name="pref_plugin_sharereceiver">Надання і отримання</string>
|
||||
<string name="pref_plugin_sharereceiver_desc">Спільне використання файлів і адрес між пристроями</string>
|
||||
<string name="plugin_not_available">Ця можливість є недоступною для вашої версії для Android</string>
|
||||
@@ -156,7 +158,8 @@
|
||||
<string name="pref_plugin_telepathy_desc">Надсилати текстові повідомлення з вашої робочої станції</string>
|
||||
<string name="plugin_not_supported">Підтримки цього додатка не передбачено на пристрої</string>
|
||||
<string name="findmyphone_title">Знайти телефон</string>
|
||||
<string name="findmyphone_description">Відтворити дзвінок, щоб телефон було простіше знайти.</string>
|
||||
<string name="findmyphone_title_tablet">Знайти планшет</string>
|
||||
<string name="findmyphone_description">Відтворити дзвінок, щоб цей пристрій було простіше знайти</string>
|
||||
<string name="findmyphone_found">Знайдено</string>
|
||||
<string name="open">Відкрити</string>
|
||||
<string name="close">Закрити</string>
|
||||
|
@@ -5,13 +5,10 @@
|
||||
<string name="pref_plugin_battery">电池报告</string>
|
||||
<string name="pref_plugin_battery_desc">定期报告电池状态</string>
|
||||
<string name="pref_plugin_sftp">开放文件系统</string>
|
||||
<string name="pref_plugin_sftp_desc">允许远程浏览手机的文件系统</string>
|
||||
<string name="pref_plugin_clipboard">剪贴板同步</string>
|
||||
<string name="pref_plugin_clipboard_desc">共享剪贴板内容</string>
|
||||
<string name="pref_plugin_mousepad">远程输入</string>
|
||||
<string name="pref_plugin_mousepad_desc">将手机用作鼠标和键盘</string>
|
||||
<string name="pref_plugin_mpris">多媒体控制</string>
|
||||
<string name="pref_plugin_mpris_desc">从手机控制音频或视频</string>
|
||||
<string name="pref_plugin_runcommand">执行命令</string>
|
||||
<string name="pref_plugin_ping">Ping</string>
|
||||
<string name="pref_plugin_ping_desc">发送和接受ping</string>
|
||||
@@ -147,8 +144,5 @@
|
||||
<string name="pref_plugin_telepathy">发送短消息</string>
|
||||
<string name="pref_plugin_telepathy_desc">从桌面发送短消息</string>
|
||||
<string name="plugin_not_supported">设备不支持此插件</string>
|
||||
<string name="findmyphone_description">让手机响铃从而找到它</string>
|
||||
<string name="findmyphone_found">找到</string>
|
||||
<string name="open">打开</string>
|
||||
<string name="close">关闭</string>
|
||||
</resources>
|
||||
|
@@ -6,19 +6,21 @@
|
||||
<string name="pref_plugin_battery">Battery report</string>
|
||||
<string name="pref_plugin_battery_desc">Periodically report battery status</string>
|
||||
<string name="pref_plugin_sftp">Filesystem expose</string>
|
||||
<string name="pref_plugin_sftp_desc">Allows to browse the phone\'s filesystem remotely</string>
|
||||
<string name="pref_plugin_sftp_desc">Allows to browse this device\'s filesystem remotely</string>
|
||||
<string name="pref_plugin_clipboard">Clipboard sync</string>
|
||||
<string name="pref_plugin_clipboard_desc">Share the clipboard content</string>
|
||||
<string name="pref_plugin_mousepad">Remote input</string>
|
||||
<string name="pref_plugin_mousepad_desc">Use your phone as a mouse and keyboard</string>
|
||||
<string name="pref_plugin_mousepad_desc">Use your phone or tablet as a touchpad and keyboard</string>
|
||||
<string name="pref_plugin_mpris">Multimedia controls</string>
|
||||
<string name="pref_plugin_mpris_desc">Control audio/video from your phone</string>
|
||||
<string name="pref_plugin_mpris_desc">Provides a remote control for your media player</string>
|
||||
<string name="pref_plugin_runcommand">Run Command</string>
|
||||
<string name="pref_plugin_runcommand_desc">Trigger remote commands from your phone</string>
|
||||
<string name="pref_plugin_runcommand_desc">Trigger remote commands from your phone or tablet</string>
|
||||
<string name="pref_plugin_ping">Ping</string>
|
||||
<string name="pref_plugin_ping_desc">Send and receive pings</string>
|
||||
<string name="pref_plugin_notifications">Notification sync</string>
|
||||
<string name="pref_plugin_notifications_desc">Access your notifications from other devices</string>
|
||||
<string name="pref_plugin_receive_notifications">Receive notifications</string>
|
||||
<string name="pref_plugin_receive_notifications_desc">Receive notifications from the other device and display them on Android</string>
|
||||
<string name="pref_plugin_sharereceiver">Share and receive</string>
|
||||
<string name="pref_plugin_sharereceiver_desc">Share files and URLs between devices</string>
|
||||
<string name="plugin_not_available">This feature is not available in your Android version</string>
|
||||
@@ -183,7 +185,8 @@
|
||||
<string name="pref_plugin_telepathy_desc">Send text messages from your desktop</string>
|
||||
<string name="plugin_not_supported">This plugin is not supported by the device</string>
|
||||
<string name="findmyphone_title">Find my phone</string>
|
||||
<string name="findmyphone_description">Rings this phone so you can find it.</string>
|
||||
<string name="findmyphone_title_tablet">Find my tablet</string>
|
||||
<string name="findmyphone_description">Rings this device so you can find it</string>
|
||||
<string name="findmyphone_found">Found</string>
|
||||
|
||||
<string name="open">Open</string>
|
||||
|
@@ -54,20 +54,14 @@ public abstract class BasePairingHandler {
|
||||
|
||||
|
||||
protected Device mDevice;
|
||||
protected BaseLink mBaseLink;
|
||||
protected PairStatus mPairStatus;
|
||||
protected PairingHandlerCallback mCallback;
|
||||
protected Timer mPairingTimer;
|
||||
|
||||
public BasePairingHandler(Device device, PairingHandlerCallback callback) {
|
||||
this.mDevice = device;
|
||||
this.mCallback = callback;
|
||||
}
|
||||
|
||||
public void setLink(BaseLink baseLink) {
|
||||
this.mBaseLink = baseLink;
|
||||
}
|
||||
|
||||
public boolean isPaired() {
|
||||
return mPairStatus == PairStatus.Paired;
|
||||
}
|
||||
@@ -81,12 +75,10 @@ public abstract class BasePairingHandler {
|
||||
}
|
||||
|
||||
/* To be implemented by respective pairing handler */
|
||||
public abstract NetworkPackage createPairPackage();
|
||||
public abstract void packageReceived(NetworkPackage np) throws Exception;
|
||||
public abstract void requestPairing();
|
||||
public abstract void acceptPairing();
|
||||
public abstract void rejectPairing();
|
||||
public abstract void pairingDone();
|
||||
public abstract void unpair();
|
||||
|
||||
}
|
||||
|
@@ -246,7 +246,6 @@ public class LanLink extends BaseLink {
|
||||
@Override
|
||||
public void sendPackage(NetworkPackage np,Device.SendPackageStatusCallback callback) {
|
||||
sendPackageInternal(np, callback, null);
|
||||
|
||||
}
|
||||
|
||||
//Blocking, do not call from main thread
|
||||
@@ -270,13 +269,13 @@ public class LanLink extends BaseLink {
|
||||
|
||||
Socket payloadSocket = new Socket();
|
||||
try {
|
||||
int tcpPort = np.getPayloadTransferInfo().getInt("port");
|
||||
InetSocketAddress deviceAddress = (InetSocketAddress) socket.getRemoteSocketAddress();
|
||||
payloadSocket.connect(new InetSocketAddress(deviceAddress.getAddress(), tcpPort));
|
||||
// Use ssl if existing link is on ssl
|
||||
if (socket instanceof SSLSocket) {
|
||||
payloadSocket = SslHelper.convertToSslSocket(context, payloadSocket, getDeviceId(), true, true);
|
||||
}
|
||||
int tcpPort = np.getPayloadTransferInfo().getInt("port");
|
||||
InetSocketAddress address = (InetSocketAddress) socket.getRemoteSocketAddress();
|
||||
payloadSocket.connect(new InetSocketAddress(address.getAddress(), tcpPort));
|
||||
np.setPayload(payloadSocket.getInputStream(), np.getPayloadSize());
|
||||
} catch (Exception e) {
|
||||
try { payloadSocket.close(); } catch(Exception ignored) { }
|
||||
@@ -292,16 +291,11 @@ public class LanLink extends BaseLink {
|
||||
@Override
|
||||
public boolean linkShouldBeKeptAlive() {
|
||||
|
||||
return true; //FIXME: Current implementation is broken, so for now we will keep links always established
|
||||
|
||||
//We keep the remotely initiated connections, since the remotes require them if they want to request
|
||||
//pairing to us, or connections that are already paired. TODO: Keep connections in the process of pairing
|
||||
|
||||
if (connectionSource == ConnectionStarted.Remotely) {
|
||||
//Log.e("LinkShouldBeKeptAlive", "because the other end started the connection");
|
||||
return true;
|
||||
}
|
||||
|
||||
//Log.e("LinkShouldBeKeptAlive", "false");
|
||||
return false;
|
||||
//pairing to us, or connections that are already paired.
|
||||
//return (connectionSource == ConnectionStarted.Remotely);
|
||||
|
||||
}
|
||||
}
|
||||
|
@@ -231,7 +231,16 @@ public class LanLinkProvider extends BaseLinkProvider implements LanLink.LinkDis
|
||||
try {
|
||||
sslsocket.startHandshake();
|
||||
} catch (Exception e) {
|
||||
Log.e("KDE/LanLinkProvider","Handshake failed with " + identityPackage.getString("deviceName"));
|
||||
e.printStackTrace();
|
||||
BackgroundService.RunCommand(context, new BackgroundService.InstanceCallback() {
|
||||
@Override
|
||||
public void onServiceStart(BackgroundService service) {
|
||||
Device device = service.getDevice(deviceId);
|
||||
if (device == null) return;
|
||||
device.unpair();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}).start();
|
||||
@@ -240,6 +249,15 @@ public class LanLinkProvider extends BaseLinkProvider implements LanLink.LinkDis
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
BackgroundService.RunCommand(context, new BackgroundService.InstanceCallback() {
|
||||
@Override
|
||||
public void onServiceStart(BackgroundService service) {
|
||||
Device device = service.getDevice(deviceId);
|
||||
Log.e("LanLinkProvider", "Unpairing "+(device != null));
|
||||
if (device == null) return;
|
||||
device.unpair();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -39,6 +39,8 @@ import java.util.TimerTask;
|
||||
|
||||
public class LanPairingHandler extends BasePairingHandler {
|
||||
|
||||
private Timer mPairingTimer;
|
||||
|
||||
public LanPairingHandler(Device device, final PairingHandlerCallback callback) {
|
||||
super(device, callback);
|
||||
|
||||
@@ -49,8 +51,7 @@ public class LanPairingHandler extends BasePairingHandler {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public NetworkPackage createPairPackage() {
|
||||
private NetworkPackage createPairPackage() {
|
||||
NetworkPackage np = new NetworkPackage(NetworkPackage.PACKAGE_TYPE_PAIR);
|
||||
np.set("pair", true);
|
||||
SharedPreferences globalSettings = PreferenceManager.getDefaultSharedPreferences(mDevice.getContext());
|
||||
@@ -196,7 +197,6 @@ public class LanPairingHandler extends BasePairingHandler {
|
||||
mDevice.sendPackage(np);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void pairingDone() {
|
||||
// Store device information needed to create a Device object in a future
|
||||
//Log.e("KDE/PairingDone", "Pairing Done");
|
||||
|
@@ -20,13 +20,45 @@
|
||||
|
||||
package org.kde.kdeconnect.Backends.LoopbackBackend;
|
||||
|
||||
import org.kde.kdeconnect.Backends.LanBackend.LanPairingHandler;
|
||||
import org.kde.kdeconnect.Device;
|
||||
import android.util.Log;
|
||||
|
||||
public class LoopbackPairingHandler extends LanPairingHandler{
|
||||
import org.kde.kdeconnect.Backends.BasePairingHandler;
|
||||
import org.kde.kdeconnect.Device;
|
||||
import org.kde.kdeconnect.NetworkPackage;
|
||||
|
||||
public class LoopbackPairingHandler extends BasePairingHandler {
|
||||
|
||||
public LoopbackPairingHandler(Device device, PairingHandlerCallback callback) {
|
||||
super(device, callback);
|
||||
}
|
||||
// Extending from LanPairingHandler, as it is similar to it
|
||||
|
||||
@Override
|
||||
public void packageReceived(NetworkPackage np) throws Exception {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void requestPairing() {
|
||||
Log.i("LoopbackPairing", "requestPairing");
|
||||
mCallback.pairingDone();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void acceptPairing() {
|
||||
Log.i("LoopbackPairing", "acceptPairing");
|
||||
mCallback.pairingDone();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void rejectPairing() {
|
||||
Log.i("LoopbackPairing", "rejectPairing");
|
||||
mCallback.unpaired();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unpair() {
|
||||
Log.i("LoopbackPairing", "unpair");
|
||||
mCallback.unpaired();
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -142,15 +142,9 @@ public class BackgroundService extends Service {
|
||||
|
||||
private void registerLinkProviders() {
|
||||
|
||||
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
//linkProviders.add(new LoopbackLinkProvider(this));
|
||||
|
||||
//if (settings.getBoolean("loopback_link", true)) {
|
||||
// linkProviders.add(new LoopbackLinkProvider(this));
|
||||
//}
|
||||
|
||||
if (settings.getBoolean("lan_link", true)) {
|
||||
linkProviders.add(new LanLinkProvider(this));
|
||||
}
|
||||
linkProviders.add(new LanLinkProvider(this));
|
||||
|
||||
}
|
||||
|
||||
|
@@ -37,7 +37,6 @@ import android.util.Log;
|
||||
import org.kde.kdeconnect.Backends.BaseLink;
|
||||
import org.kde.kdeconnect.Backends.BasePairingHandler;
|
||||
import org.kde.kdeconnect.Backends.LanBackend.LanLinkProvider;
|
||||
import org.kde.kdeconnect.Helpers.ObjectsHelper;
|
||||
import org.kde.kdeconnect.Helpers.SecurityHelpers.SslHelper;
|
||||
import org.kde.kdeconnect.Plugins.Plugin;
|
||||
import org.kde.kdeconnect.Plugins.PluginFactory;
|
||||
@@ -51,12 +50,12 @@ import java.security.cert.Certificate;
|
||||
import java.security.spec.PKCS8EncodedKeySpec;
|
||||
import java.security.spec.X509EncodedKeySpec;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.Vector;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
@@ -71,8 +70,6 @@ public class Device implements BaseLink.PackageReceiver {
|
||||
private int notificationId;
|
||||
private int protocolVersion;
|
||||
|
||||
private static final int MIN_VERSION_WITH_CAPPABILITIES_SUPPORT = 6;
|
||||
|
||||
private DeviceType deviceType;
|
||||
private PairStatus pairStatus;
|
||||
|
||||
@@ -81,25 +78,13 @@ public class Device implements BaseLink.PackageReceiver {
|
||||
|
||||
private final CopyOnWriteArrayList<BaseLink> links = new CopyOnWriteArrayList<>();
|
||||
|
||||
private ArrayList<String> incomingCapabilities = new ArrayList<>();
|
||||
private ArrayList<String> outgoingCapabilities = new ArrayList<>();
|
||||
|
||||
private List<String> m_supportedPlugins = new ArrayList<>();
|
||||
private final ConcurrentHashMap<String, Plugin> plugins = new ConcurrentHashMap<>();
|
||||
private final ConcurrentHashMap<String, Plugin> failedPlugins = new ConcurrentHashMap<>();
|
||||
|
||||
private ArrayList<String> unsupportedPlugins = new ArrayList<>();
|
||||
private HashSet<String> supportedIncomingInterfaces = new HashSet<>();
|
||||
private HashSet<String> supportedOutgoingInterfaces = new HashSet<>();
|
||||
|
||||
private HashMap<String, ArrayList<String>> pluginsByIncomingInterface;
|
||||
private HashMap<String, ArrayList<String>> pluginsByOutgoingInterface;
|
||||
private Map<String, ArrayList<String>> pluginsByIncomingInterface;
|
||||
|
||||
private final SharedPreferences settings;
|
||||
|
||||
public ArrayList<String> getUnsupportedPlugins() {
|
||||
return unsupportedPlugins;
|
||||
}
|
||||
|
||||
private final CopyOnWriteArrayList<PluginsChangedListener> pluginsChangedListeners = new CopyOnWriteArrayList<>();
|
||||
|
||||
public interface PluginsChangedListener {
|
||||
@@ -161,7 +146,8 @@ public class Device implements BaseLink.PackageReceiver {
|
||||
Log.e("KDE/Device","Exception deserializing stored public key for device");
|
||||
}
|
||||
|
||||
reloadPluginsFromSettings();
|
||||
//Do not load plugins yet, the device is not present
|
||||
//reloadPluginsFromSettings();
|
||||
}
|
||||
|
||||
//Device known via an incoming connection sent to us via a devicelink, we know everything but we don't trust it yet
|
||||
@@ -491,22 +477,19 @@ public class Device implements BaseLink.PackageReceiver {
|
||||
};
|
||||
pairingHandlers.put(link.getName(), link.getPairingHandler(this, callback));
|
||||
}
|
||||
pairingHandlers.get(link.getName()).setLink(link);
|
||||
|
||||
/*
|
||||
Collections.sort(links, new Comparator<BaseLink>() {
|
||||
@Override
|
||||
public int compare(BaseLink o, BaseLink o2) {
|
||||
return o2.getLinkProvider().getPriority() - o.getLinkProvider().getPriority();
|
||||
}
|
||||
});
|
||||
*/
|
||||
Set<String> outgoingCapabilities = identityPackage.getStringSet("outgoingCapabilities", null);
|
||||
Set<String> incomingCapabilities = identityPackage.getStringSet("incomingCapabilities", null);
|
||||
if (incomingCapabilities != null && outgoingCapabilities != null) {
|
||||
m_supportedPlugins = new Vector<>(PluginFactory.pluginsForCapabilities(context, incomingCapabilities, outgoingCapabilities));
|
||||
} else {
|
||||
m_supportedPlugins = new Vector<>(PluginFactory.getAvailablePlugins());
|
||||
}
|
||||
|
||||
link.addPackageReceiver(this);
|
||||
|
||||
if (links.size() == 1) {
|
||||
reloadPluginsFromSettings();
|
||||
}
|
||||
reloadPluginsFromSettings();
|
||||
|
||||
}
|
||||
|
||||
public void removeLink(BaseLink link) {
|
||||
@@ -549,16 +532,6 @@ public class Device implements BaseLink.PackageReceiver {
|
||||
Log.e("PairingPackageReceived","Exception");
|
||||
}
|
||||
}
|
||||
} else if (NetworkPackage.PACKAGE_TYPE_CAPABILITIES.equals(np.getType())) {
|
||||
ArrayList<String> newIncomingCapabilities = np.getStringList("IncomingCapabilities");
|
||||
ArrayList<String> newOutgoingCapabilities = np.getStringList("OutgoingCapabilities");
|
||||
if (!ObjectsHelper.equals(newIncomingCapabilities, incomingCapabilities) ||
|
||||
!ObjectsHelper.equals(newOutgoingCapabilities, outgoingCapabilities)) {
|
||||
incomingCapabilities = newIncomingCapabilities;
|
||||
outgoingCapabilities = newOutgoingCapabilities;
|
||||
reloadPluginsFromSettings();
|
||||
}
|
||||
|
||||
} else if (isPaired()) {
|
||||
|
||||
//If capabilities are not supported, iterate all plugins
|
||||
@@ -571,6 +544,7 @@ public class Device implements BaseLink.PackageReceiver {
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
Log.e("KDE/Device", "Exception in " + plugin.getPluginKey() + "'s onPackageReceived()");
|
||||
//try { Log.e("KDE/Device", "NetworkPackage:" + np.serialize()); } catch (Exception _) { }
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -642,10 +616,13 @@ public class Device implements BaseLink.PackageReceiver {
|
||||
|
||||
hackToMakeRetrocompatiblePacketTypes(np);
|
||||
|
||||
if (protocolVersion >= MIN_VERSION_WITH_CAPPABILITIES_SUPPORT && !supportedOutgoingInterfaces.contains(np.getType()) && !NetworkPackage.protocolPackageTypes.contains(np.getType())) {
|
||||
Log.e("Device/sendPackage", "Plugin tried to send an unsupported package: " + np.getType());
|
||||
Log.w("Device/sendPackage", "Supported package types: " + Arrays.toString(supportedOutgoingInterfaces.toArray()));
|
||||
|
||||
/*
|
||||
if (!m_outgoingCapabilities.contains(np.getType()) && !NetworkPackage.protocolPackageTypes.contains(np.getType())) {
|
||||
Log.e("Device/sendPackage", "Plugin tried to send an undeclared package: " + np.getType());
|
||||
Log.w("Device/sendPackage", "Declared outgoing package types: " + Arrays.toString(m_outgoingCapabilities.toArray()));
|
||||
}
|
||||
*/
|
||||
|
||||
//Log.e("sendPackage", "Sending package...");
|
||||
//Log.e("sendPackage", np.serialize());
|
||||
@@ -712,7 +689,8 @@ public class Device implements BaseLink.PackageReceiver {
|
||||
final Plugin plugin = PluginFactory.instantiatePluginForDevice(context, pluginKey, this);
|
||||
if (plugin == null) {
|
||||
Log.e("KDE/addPlugin","could not instantiate plugin: "+pluginKey);
|
||||
failedPlugins.put(pluginKey, null);
|
||||
//Can't put a null
|
||||
//failedPlugins.put(pluginKey, null);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -773,29 +751,15 @@ public class Device implements BaseLink.PackageReceiver {
|
||||
return enabled;
|
||||
}
|
||||
|
||||
public boolean hasPluginsLoaded() {
|
||||
return !plugins.isEmpty() || !failedPlugins.isEmpty();
|
||||
}
|
||||
|
||||
public void reloadPluginsFromSettings() {
|
||||
|
||||
failedPlugins.clear();
|
||||
|
||||
Set<String> availablePlugins = PluginFactory.getAvailablePlugins();
|
||||
|
||||
ArrayList<String> newUnsupportedPlugins = new ArrayList<>();
|
||||
HashSet<String> newSupportedIncomingInterfaces = new HashSet<>();
|
||||
HashSet<String> newSupportedOutgoingInterfaces = new HashSet<>();
|
||||
HashMap<String, ArrayList<String>> newPluginsByIncomingInterface = new HashMap<>();
|
||||
HashMap<String, ArrayList<String>> newPluginsByOutgoingInterface = new HashMap<>();
|
||||
|
||||
final boolean supportsCapabilities = (protocolVersion >= MIN_VERSION_WITH_CAPPABILITIES_SUPPORT);
|
||||
|
||||
for (String pluginKey : availablePlugins) {
|
||||
for (String pluginKey : m_supportedPlugins) {
|
||||
|
||||
PluginFactory.PluginInfo pluginInfo = PluginFactory.getPluginInfo(context, pluginKey);
|
||||
Set<String> incomingInterfaces = pluginInfo.getSupportedPackageTypes();
|
||||
Set<String> outgoingInterfaces = pluginInfo.getOutgoingPackageTypes();
|
||||
|
||||
boolean pluginEnabled = false;
|
||||
boolean listenToUnpaired = pluginInfo.listenToUnpaired();
|
||||
@@ -803,48 +767,16 @@ public class Device implements BaseLink.PackageReceiver {
|
||||
pluginEnabled = isPluginEnabled(pluginKey);
|
||||
}
|
||||
|
||||
//TODO: Check for plugins that will fail to load before checking the capabilities
|
||||
|
||||
if (supportsCapabilities && (!incomingInterfaces.isEmpty() || !outgoingInterfaces.isEmpty())) {
|
||||
HashSet<String> supportedOut = new HashSet<>(outgoingInterfaces);
|
||||
supportedOut.retainAll(incomingCapabilities); //Intersection
|
||||
HashSet<String> supportedIn = new HashSet<>(incomingInterfaces);
|
||||
supportedIn.retainAll(outgoingCapabilities);
|
||||
if (supportedOut.isEmpty() && supportedIn.isEmpty()) {
|
||||
newUnsupportedPlugins.add(pluginKey);
|
||||
if (pluginEnabled) {
|
||||
//We still want to announce this capability, to prevent a deadlock
|
||||
newSupportedOutgoingInterfaces.addAll(outgoingInterfaces);
|
||||
newSupportedIncomingInterfaces.addAll(incomingInterfaces);
|
||||
pluginEnabled = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (pluginEnabled) {
|
||||
boolean success = addPlugin(pluginKey);
|
||||
|
||||
if (success) {
|
||||
|
||||
newSupportedIncomingInterfaces.addAll(incomingInterfaces);
|
||||
newSupportedOutgoingInterfaces.addAll(outgoingInterfaces);
|
||||
|
||||
for (String packageType : incomingInterfaces) {
|
||||
for (String packageType : pluginInfo.getSupportedPackageTypes()) {
|
||||
packageType = hackToMakeRetrocompatiblePacketTypes(packageType);
|
||||
ArrayList<String> plugins = newPluginsByIncomingInterface.get(packageType);
|
||||
if (plugins == null) plugins = new ArrayList<>();
|
||||
plugins.add(pluginKey);
|
||||
newPluginsByIncomingInterface.put(packageType, plugins);
|
||||
}
|
||||
|
||||
for (String packageType : outgoingInterfaces) {
|
||||
packageType = hackToMakeRetrocompatiblePacketTypes(packageType);
|
||||
ArrayList<String> plugins = newPluginsByOutgoingInterface.get(packageType);
|
||||
if (plugins == null) plugins = new ArrayList<>();
|
||||
plugins.add(pluginKey);
|
||||
newPluginsByOutgoingInterface.put(packageType, plugins);
|
||||
}
|
||||
|
||||
}
|
||||
} else {
|
||||
removePlugin(pluginKey);
|
||||
@@ -852,32 +784,9 @@ public class Device implements BaseLink.PackageReceiver {
|
||||
|
||||
}
|
||||
|
||||
boolean capabilitiesChanged = false;
|
||||
if (!newSupportedIncomingInterfaces.equals(supportedIncomingInterfaces) ||
|
||||
!newSupportedOutgoingInterfaces.equals(pluginsByOutgoingInterface)) {
|
||||
capabilitiesChanged = true;
|
||||
}
|
||||
|
||||
pluginsByOutgoingInterface = newPluginsByOutgoingInterface;
|
||||
pluginsByIncomingInterface = newPluginsByIncomingInterface;
|
||||
supportedIncomingInterfaces = newSupportedIncomingInterfaces;
|
||||
supportedOutgoingInterfaces = newSupportedOutgoingInterfaces;
|
||||
unsupportedPlugins = newUnsupportedPlugins;
|
||||
|
||||
if (!unsupportedPlugins.isEmpty()) {
|
||||
Log.i("ReloadPlugins", "not loading " + Arrays.toString(unsupportedPlugins.toArray()) + " because of unmatched capabilities");
|
||||
}
|
||||
|
||||
onPluginsChanged();
|
||||
|
||||
//Only send capabilities to devices using protocol version 6 or later
|
||||
if (capabilitiesChanged && isReachable() && isPaired() && protocolVersion >= MIN_VERSION_WITH_CAPPABILITIES_SUPPORT) {
|
||||
NetworkPackage np = new NetworkPackage(NetworkPackage.PACKAGE_TYPE_CAPABILITIES);
|
||||
np.set("IncomingCapabilities", new ArrayList<>(newSupportedIncomingInterfaces));
|
||||
np.set("OutgoingCapabilities", new ArrayList<>(newSupportedOutgoingInterfaces));
|
||||
sendPackage(np);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onPluginsChanged() {
|
||||
@@ -924,14 +833,17 @@ public class Device implements BaseLink.PackageReceiver {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void hackToMakeRetrocompatiblePacketTypes(NetworkPackage np) {
|
||||
if (protocolVersion >= MIN_VERSION_WITH_CAPPABILITIES_SUPPORT) return;
|
||||
np.mType = np.getType().replace(".request","");
|
||||
public List<String> getSupportedPlugins() {
|
||||
return m_supportedPlugins;
|
||||
}
|
||||
|
||||
public void hackToMakeRetrocompatiblePacketTypes(NetworkPackage np) {
|
||||
if (protocolVersion >= 6) return;
|
||||
np.mType = np.getType().replace(".request","");
|
||||
}
|
||||
public String hackToMakeRetrocompatiblePacketTypes(String type) {
|
||||
if (protocolVersion >= MIN_VERSION_WITH_CAPPABILITIES_SUPPORT) return type;
|
||||
return type.replace(".request","");
|
||||
if (protocolVersion >= 6) return type;
|
||||
return type.replace(".request", "");
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -75,8 +75,9 @@ public class ContactsHelper {
|
||||
contactInfo.put("photoID", cursor.getString(nameIndex));
|
||||
}
|
||||
|
||||
try { cursor.close(); } catch (Exception e) {}
|
||||
|
||||
if (!contactInfo.isEmpty()) {
|
||||
cursor.close();
|
||||
return contactInfo;
|
||||
}
|
||||
}
|
||||
|
@@ -27,11 +27,13 @@ import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
import org.kde.kdeconnect.Helpers.DeviceHelper;
|
||||
import org.kde.kdeconnect.Plugins.PluginFactory;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
public class NetworkPackage {
|
||||
@@ -41,13 +43,11 @@ public class NetworkPackage {
|
||||
public final static String PACKAGE_TYPE_IDENTITY = "kdeconnect.identity";
|
||||
public final static String PACKAGE_TYPE_PAIR = "kdeconnect.pair";
|
||||
public final static String PACKAGE_TYPE_ENCRYPTED = "kdeconnect.encrypted";
|
||||
public final static String PACKAGE_TYPE_CAPABILITIES = "kdeconnect.capabilities";
|
||||
|
||||
public static Set<String> protocolPackageTypes = new HashSet<String>() {{
|
||||
add(PACKAGE_TYPE_IDENTITY);
|
||||
add(PACKAGE_TYPE_PAIR);
|
||||
add(PACKAGE_TYPE_ENCRYPTED);
|
||||
add(PACKAGE_TYPE_CAPABILITIES);
|
||||
}};
|
||||
|
||||
private long mId;
|
||||
@@ -96,40 +96,61 @@ public class NetworkPackage {
|
||||
public JSONArray getJSONArray(String key) { return mBody.optJSONArray(key); }
|
||||
public void set(String key, JSONArray value) { try { mBody.put(key,value); } catch(Exception e) { } }
|
||||
|
||||
public ArrayList<String> getStringList(String key) {
|
||||
public Set<String> getStringSet(String key) {
|
||||
JSONArray jsonArray = mBody.optJSONArray(key);
|
||||
if (jsonArray == null) return null;
|
||||
ArrayList<String> list = new ArrayList<>();
|
||||
Set<String> list = new HashSet<>();
|
||||
int length = jsonArray.length();
|
||||
for (int i = 0; i < length; i++) {
|
||||
try {
|
||||
String str = jsonArray.getString(i);
|
||||
list.add(str);
|
||||
} catch(Exception e) {
|
||||
|
||||
}
|
||||
} catch(Exception e) { }
|
||||
}
|
||||
return list;
|
||||
}
|
||||
public ArrayList<String> getStringList(String key, ArrayList<String> defaultValue) {
|
||||
if (mBody.has(key)) return getStringList(key);
|
||||
public Set<String> getStringSet(String key, Set<String> defaultValue) {
|
||||
if (mBody.has(key)) return getStringSet(key);
|
||||
else return defaultValue;
|
||||
}
|
||||
public void set(String key, ArrayList<String> value) {
|
||||
public void set(String key, Set<String> value) {
|
||||
try {
|
||||
JSONArray jsonArray = new JSONArray();
|
||||
for(String str : value) {
|
||||
jsonArray.put(str);
|
||||
}
|
||||
mBody.put(key,jsonArray);
|
||||
} catch(Exception e) {
|
||||
} catch(Exception e) { }
|
||||
}
|
||||
|
||||
public List<String> getStringList(String key) {
|
||||
JSONArray jsonArray = mBody.optJSONArray(key);
|
||||
if (jsonArray == null) return null;
|
||||
List<String> list = new ArrayList<>();
|
||||
int length = jsonArray.length();
|
||||
for (int i = 0; i < length; i++) {
|
||||
try {
|
||||
String str = jsonArray.getString(i);
|
||||
list.add(str);
|
||||
} catch(Exception e) { }
|
||||
}
|
||||
return list;
|
||||
}
|
||||
public List<String> getStringList(String key, List<String> defaultValue) {
|
||||
if (mBody.has(key)) return getStringList(key);
|
||||
else return defaultValue;
|
||||
}
|
||||
public void set(String key, List<String> value) {
|
||||
try {
|
||||
JSONArray jsonArray = new JSONArray();
|
||||
for(String str : value) {
|
||||
jsonArray.put(str);
|
||||
}
|
||||
mBody.put(key,jsonArray);
|
||||
} catch(Exception e) { }
|
||||
}
|
||||
public boolean has(String key) { return mBody.has(key); }
|
||||
|
||||
public boolean isEncrypted() { return mType.equals(PACKAGE_TYPE_ENCRYPTED); }
|
||||
|
||||
public String serialize() throws JSONException {
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("id", mId);
|
||||
@@ -171,6 +192,8 @@ public class NetworkPackage {
|
||||
np.mBody.put("deviceName", DeviceHelper.getDeviceName(context));
|
||||
np.mBody.put("protocolVersion", NetworkPackage.ProtocolVersion);
|
||||
np.mBody.put("deviceType", DeviceHelper.isTablet()? "tablet" : "phone");
|
||||
np.mBody.put("incomingCapabilities", new JSONArray(PluginFactory.getIncomingCapabilities(context)));
|
||||
np.mBody.put("outgoingCapabilities", new JSONArray(PluginFactory.getOutgoingCapabilities(context)));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
Log.e("NetworkPacakge","Exception on createIdentityPackage");
|
||||
|
@@ -1,6 +1,7 @@
|
||||
package org.kde.kdeconnect.Plugins.FindMyPhonePlugin;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.media.AudioAttributes;
|
||||
import android.media.AudioManager;
|
||||
import android.media.Ringtone;
|
||||
@@ -16,6 +17,12 @@ import org.kde.kdeconnect_tp.R;
|
||||
public class FindMyPhoneActivity extends Activity {
|
||||
Ringtone ringtone;
|
||||
|
||||
@Override
|
||||
protected void onNewIntent(Intent intent) {
|
||||
super.onNewIntent(intent);
|
||||
finish(); //If this activity was already open and we received the ring packet again, just finish it
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
@@ -2,6 +2,7 @@ package org.kde.kdeconnect.Plugins.FindMyPhonePlugin;
|
||||
|
||||
import android.content.Intent;
|
||||
|
||||
import org.kde.kdeconnect.Helpers.DeviceHelper;
|
||||
import org.kde.kdeconnect.NetworkPackage;
|
||||
import org.kde.kdeconnect.Plugins.Plugin;
|
||||
import org.kde.kdeconnect_tp.R;
|
||||
@@ -18,7 +19,7 @@ public class FindMyPhonePlugin extends Plugin {
|
||||
|
||||
@Override
|
||||
public String getDisplayName() {
|
||||
return context.getString(R.string.findmyphone_title);
|
||||
return DeviceHelper.isTablet() ? context.getString(R.string.findmyphone_title_tablet) : context.getString(R.string.findmyphone_title);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -46,7 +46,7 @@ import org.kde.kdeconnect.Device;
|
||||
import org.kde.kdeconnect.NetworkPackage;
|
||||
import org.kde.kdeconnect_tp.R;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class MprisActivity extends ActionBarActivity {
|
||||
|
||||
@@ -133,7 +133,7 @@ public class MprisActivity extends ActionBarActivity {
|
||||
mpris.setPlayerListUpdatedHandler("activity", new Handler() {
|
||||
@Override
|
||||
public void handleMessage(Message msg) {
|
||||
final ArrayList<String> playerList = mpris.getPlayerList();
|
||||
final List<String> playerList = mpris.getPlayerList();
|
||||
final ArrayAdapter<String> adapter = new ArrayAdapter<>(MprisActivity.this,
|
||||
android.R.layout.simple_spinner_item,
|
||||
playerList.toArray(new String[playerList.size()])
|
||||
|
@@ -37,6 +37,7 @@ import org.kde.kdeconnect_tp.R;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
public class MprisPlugin extends Plugin {
|
||||
|
||||
@@ -53,7 +54,7 @@ public class MprisPlugin extends Plugin {
|
||||
private long lastPositionTime;
|
||||
private HashMap<String,Handler> playerStatusUpdated = new HashMap<>();
|
||||
|
||||
private ArrayList<String> playerList = new ArrayList<>();
|
||||
private List<String> playerList = new ArrayList<>();
|
||||
private HashMap<String,Handler> playerListUpdated = new HashMap<>();
|
||||
|
||||
@Override
|
||||
@@ -152,9 +153,8 @@ public class MprisPlugin extends Plugin {
|
||||
}
|
||||
}
|
||||
|
||||
if (np.has("playerList")) {
|
||||
|
||||
ArrayList<String> newPlayerList = np.getStringList("playerList");
|
||||
List<String> newPlayerList = np.getStringList("playerList");
|
||||
if (newPlayerList != null) {
|
||||
boolean equals = false;
|
||||
if (newPlayerList.size() == playerList.size()) {
|
||||
equals = true;
|
||||
@@ -233,7 +233,7 @@ public class MprisPlugin extends Plugin {
|
||||
requestPlayerStatus();
|
||||
}
|
||||
|
||||
public ArrayList<String> getPlayerList() {
|
||||
public List<String> getPlayerList() {
|
||||
return playerList;
|
||||
}
|
||||
|
||||
|
@@ -24,19 +24,12 @@ import android.annotation.TargetApi;
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Notification;
|
||||
import android.app.NotificationManager;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.provider.Settings;
|
||||
import android.service.notification.StatusBarNotification;
|
||||
import android.support.v4.app.NotificationCompat;
|
||||
import android.support.v4.app.TaskStackBuilder;
|
||||
import android.util.Log;
|
||||
|
||||
import org.kde.kdeconnect.Helpers.AppsHelper;
|
||||
@@ -46,8 +39,6 @@ import org.kde.kdeconnect.UserInterface.MaterialActivity;
|
||||
import org.kde.kdeconnect.UserInterface.SettingsActivity;
|
||||
import org.kde.kdeconnect_tp.R;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
|
||||
public class NotificationsPlugin extends Plugin implements NotificationReceiver.NotificationListener {
|
||||
|
||||
@@ -111,11 +102,6 @@ public class NotificationsPlugin extends Plugin implements NotificationReceiver.
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// request all existing notifications
|
||||
NetworkPackage np = new NetworkPackage(PACKAGE_TYPE_NOTIFICATION_REQUEST);
|
||||
np.set("request", true);
|
||||
device.sendPackage(np);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -135,7 +121,7 @@ public class NotificationsPlugin extends Plugin implements NotificationReceiver.
|
||||
@Override
|
||||
public void onNotificationRemoved(StatusBarNotification statusBarNotification) {
|
||||
String id = getNotificationKeyCompat(statusBarNotification);
|
||||
NetworkPackage np = new NetworkPackage(PACKAGE_TYPE_NOTIFICATION_REQUEST);
|
||||
NetworkPackage np = new NetworkPackage(PACKAGE_TYPE_NOTIFICATION);
|
||||
np.set("id", id);
|
||||
np.set("isCancel", true);
|
||||
device.sendPackage(np);
|
||||
@@ -324,58 +310,6 @@ public class NotificationsPlugin extends Plugin implements NotificationReceiver.
|
||||
}
|
||||
});
|
||||
|
||||
} else {
|
||||
if (!np.has("ticker") || !np.has("appName") || !np.has("id")) {
|
||||
Log.e("NotificationsPlugin", "Received notification package lacks properties");
|
||||
} else {
|
||||
TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
|
||||
stackBuilder.addParentStack(MaterialActivity.class);
|
||||
stackBuilder.addNextIntent(new Intent(context, MaterialActivity.class));
|
||||
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(
|
||||
0,
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
);
|
||||
|
||||
Bitmap largeIcon = null;
|
||||
if (np.hasPayload()) {
|
||||
int width = 64; // default icon dimensions
|
||||
int height = 64;
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
|
||||
width = context.getResources().getDimensionPixelSize(android.R.dimen.notification_large_icon_width);
|
||||
height = context.getResources().getDimensionPixelSize(android.R.dimen.notification_large_icon_height);
|
||||
}
|
||||
final InputStream input = np.getPayload();
|
||||
largeIcon = BitmapFactory.decodeStream(np.getPayload());
|
||||
try { input.close(); } catch (Exception e) { }
|
||||
if (largeIcon != null) {
|
||||
//Log.i("NotificationsPlugin", "hasPayload: size=" + largeIcon.getWidth() + "/" + largeIcon.getHeight() + " opti=" + width + "/" + height);
|
||||
if (largeIcon.getWidth() > width || largeIcon.getHeight() > height) {
|
||||
// older API levels don't scale notification icons automatically, therefore:
|
||||
largeIcon = Bitmap.createScaledBitmap(largeIcon, width, height, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
Notification noti = new NotificationCompat.Builder(context)
|
||||
.setContentTitle(np.getString("appName"))
|
||||
.setContentText(np.getString("ticker"))
|
||||
.setContentIntent(resultPendingIntent)
|
||||
.setTicker(np.getString("ticker"))
|
||||
.setSmallIcon(R.drawable.ic_notification)
|
||||
.setLargeIcon(largeIcon)
|
||||
.setAutoCancel(true)
|
||||
.setLocalOnly(true) // to avoid bouncing the notification back to other kdeconnect nodes
|
||||
.setDefaults(Notification.DEFAULT_ALL)
|
||||
.build();
|
||||
|
||||
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
try {
|
||||
// tag all incoming notifications
|
||||
notificationManager.notify("kdeconnectId:" + np.getString("id", "0"), np.getInt("id", 0), noti);
|
||||
} catch (Exception e) {
|
||||
//4.1 will throw an exception about not having the VIBRATE permission, ignore it.
|
||||
//https://android.googlesource.com/platform/frameworks/base/+/android-4.2.1_r1.2%5E%5E!/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -419,12 +353,12 @@ public class NotificationsPlugin extends Plugin implements NotificationReceiver.
|
||||
|
||||
@Override
|
||||
public String[] getSupportedPackageTypes() {
|
||||
return new String[]{PACKAGE_TYPE_NOTIFICATION, PACKAGE_TYPE_NOTIFICATION_REQUEST};
|
||||
return new String[]{PACKAGE_TYPE_NOTIFICATION_REQUEST};
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getOutgoingPackageTypes() {
|
||||
return new String[]{PACKAGE_TYPE_NOTIFICATION, PACKAGE_TYPE_NOTIFICATION_REQUEST};
|
||||
return new String[]{PACKAGE_TYPE_NOTIFICATION};
|
||||
}
|
||||
|
||||
//For compat with API<21, because lollipop changed the way to cancel notifications
|
||||
|
@@ -32,9 +32,11 @@ import org.kde.kdeconnect.Plugins.MousePadPlugin.MousePadPlugin;
|
||||
import org.kde.kdeconnect.Plugins.MprisPlugin.MprisPlugin;
|
||||
import org.kde.kdeconnect.Plugins.NotificationsPlugin.NotificationsPlugin;
|
||||
import org.kde.kdeconnect.Plugins.PingPlugin.PingPlugin;
|
||||
import org.kde.kdeconnect.Plugins.ReceiveNotificationsPlugin.ReceiveNotificationsPlugin;
|
||||
import org.kde.kdeconnect.Plugins.RunCommandPlugin.RunCommandPlugin;
|
||||
import org.kde.kdeconnect.Plugins.SftpPlugin.SftpPlugin;
|
||||
import org.kde.kdeconnect.Plugins.SharePlugin.SharePlugin;
|
||||
import org.kde.kdeconnect.Plugins.TelepathyPlugin.TelepathyPlugin;
|
||||
import org.kde.kdeconnect.Plugins.TelephonyPlugin.TelephonyPlugin;
|
||||
|
||||
import java.util.Collections;
|
||||
@@ -106,10 +108,9 @@ public class PluginFactory {
|
||||
}
|
||||
|
||||
private static final Map<String, Class> availablePlugins = new TreeMap<>();
|
||||
private static final Map<String, PluginInfo> availablePluginsInfo = new TreeMap<>();
|
||||
private static final Map<String, PluginInfo> pluginInfoCache = new TreeMap<>();
|
||||
|
||||
static {
|
||||
//TODO: Use reflection to find all subclasses of Plugin, instead of adding them manually
|
||||
PluginFactory.registerPlugin(TelephonyPlugin.class);
|
||||
PluginFactory.registerPlugin(PingPlugin.class);
|
||||
PluginFactory.registerPlugin(MprisPlugin.class);
|
||||
@@ -117,16 +118,17 @@ public class PluginFactory {
|
||||
PluginFactory.registerPlugin(BatteryPlugin.class);
|
||||
PluginFactory.registerPlugin(SftpPlugin.class);
|
||||
PluginFactory.registerPlugin(NotificationsPlugin.class);
|
||||
PluginFactory.registerPlugin(ReceiveNotificationsPlugin.class);
|
||||
PluginFactory.registerPlugin(MousePadPlugin.class);
|
||||
PluginFactory.registerPlugin(SharePlugin.class);
|
||||
//PluginFactory.registerPlugin(TelepathyPlugin.class);
|
||||
PluginFactory.registerPlugin(TelepathyPlugin.class);
|
||||
PluginFactory.registerPlugin(FindMyPhonePlugin.class);
|
||||
PluginFactory.registerPlugin(RunCommandPlugin.class);
|
||||
}
|
||||
|
||||
public static PluginInfo getPluginInfo(Context context, String pluginKey) {
|
||||
|
||||
PluginInfo info = availablePluginsInfo.get(pluginKey); //Is it cached?
|
||||
PluginInfo info = pluginInfoCache.get(pluginKey); //Is it cached?
|
||||
if (info != null) {
|
||||
return info;
|
||||
}
|
||||
@@ -137,7 +139,7 @@ public class PluginFactory {
|
||||
info = new PluginInfo(p.getDisplayName(), p.getDescription(), p.getIcon(),
|
||||
p.isEnabledByDefault(), p.hasSettings(), p.listensToUnpairedDevices(),
|
||||
p.getSupportedPackageTypes(), p.getOutgoingPackageTypes());
|
||||
availablePluginsInfo.put(pluginKey, info); //Cache it
|
||||
pluginInfoCache.put(pluginKey, info); //Cache it
|
||||
return info;
|
||||
} catch(Exception e) {
|
||||
Log.e("PluginFactory","getPluginInfo exception");
|
||||
@@ -180,4 +182,39 @@ public class PluginFactory {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static Set<String> getIncomingCapabilities(Context context) {
|
||||
HashSet<String> capabilities = new HashSet<>();
|
||||
for (String pluginId : availablePlugins.keySet()) {
|
||||
PluginInfo plugin = getPluginInfo(context, pluginId);
|
||||
capabilities.addAll(plugin.getSupportedPackageTypes());
|
||||
}
|
||||
|
||||
return capabilities;
|
||||
}
|
||||
|
||||
public static Set<String> getOutgoingCapabilities(Context context) {
|
||||
HashSet<String> capabilities = new HashSet<>();
|
||||
for (String pluginId : availablePlugins.keySet()) {
|
||||
PluginInfo plugin = getPluginInfo(context, pluginId);
|
||||
capabilities.addAll(plugin.getOutgoingPackageTypes());
|
||||
}
|
||||
return capabilities;
|
||||
}
|
||||
|
||||
public static Set<String> pluginsForCapabilities(Context context, Set<String> incoming, Set<String> outgoing) {
|
||||
HashSet<String> plugins = new HashSet<>();
|
||||
for (String pluginId : availablePlugins.keySet()) {
|
||||
PluginInfo plugin = getPluginInfo(context, pluginId);
|
||||
//Check incoming against outgoing
|
||||
if (Collections.disjoint(outgoing, plugin.getSupportedPackageTypes())
|
||||
&& Collections.disjoint(incoming, plugin.getOutgoingPackageTypes())) {
|
||||
Log.i("PluginFactory", "Won't load " + pluginId + " because of unmatched capabilities");
|
||||
continue; //No capabilities in common, do not load this plugin
|
||||
}
|
||||
plugins.add(pluginId);
|
||||
}
|
||||
return plugins;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -0,0 +1,139 @@
|
||||
/*
|
||||
* Copyright 2014 Albert Vaca Cintora <albertvaka@gmail.com>
|
||||
*
|
||||
* 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) version 3 or any later version
|
||||
* 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
|
||||
* 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.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.kde.kdeconnect.Plugins.ReceiveNotificationsPlugin;
|
||||
|
||||
import android.app.Notification;
|
||||
import android.app.NotificationManager;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.os.Build;
|
||||
import android.support.v4.app.NotificationCompat;
|
||||
import android.support.v4.app.TaskStackBuilder;
|
||||
import android.util.Log;
|
||||
|
||||
import org.kde.kdeconnect.NetworkPackage;
|
||||
import org.kde.kdeconnect.Plugins.Plugin;
|
||||
import org.kde.kdeconnect.UserInterface.MaterialActivity;
|
||||
import org.kde.kdeconnect_tp.R;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
||||
public class ReceiveNotificationsPlugin extends Plugin {
|
||||
|
||||
public final static String PACKAGE_TYPE_NOTIFICATION = "kdeconnect.notification";
|
||||
public final static String PACKAGE_TYPE_NOTIFICATION_REQUEST = "kdeconnect.notification.request";
|
||||
|
||||
@Override
|
||||
public String getDisplayName() {
|
||||
return context.getResources().getString(R.string.pref_plugin_receive_notifications);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return context.getResources().getString(R.string.pref_plugin_receive_notifications_desc);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEnabledByDefault() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreate() {
|
||||
// request all existing notifications
|
||||
NetworkPackage np = new NetworkPackage(PACKAGE_TYPE_NOTIFICATION_REQUEST);
|
||||
np.set("request", true);
|
||||
device.sendPackage(np);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPackageReceived(final NetworkPackage np) {
|
||||
|
||||
if (!np.has("ticker") || !np.has("appName") || !np.has("id")) {
|
||||
Log.e("NotificationsPlugin", "Received notification package lacks properties");
|
||||
} else {
|
||||
TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
|
||||
stackBuilder.addParentStack(MaterialActivity.class);
|
||||
stackBuilder.addNextIntent(new Intent(context, MaterialActivity.class));
|
||||
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(
|
||||
0,
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
);
|
||||
|
||||
Bitmap largeIcon = null;
|
||||
if (np.hasPayload()) {
|
||||
int width = 64; // default icon dimensions
|
||||
int height = 64;
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
|
||||
width = context.getResources().getDimensionPixelSize(android.R.dimen.notification_large_icon_width);
|
||||
height = context.getResources().getDimensionPixelSize(android.R.dimen.notification_large_icon_height);
|
||||
}
|
||||
final InputStream input = np.getPayload();
|
||||
largeIcon = BitmapFactory.decodeStream(np.getPayload());
|
||||
try { input.close(); } catch (Exception e) { }
|
||||
if (largeIcon != null) {
|
||||
//Log.i("NotificationsPlugin", "hasPayload: size=" + largeIcon.getWidth() + "/" + largeIcon.getHeight() + " opti=" + width + "/" + height);
|
||||
if (largeIcon.getWidth() > width || largeIcon.getHeight() > height) {
|
||||
// older API levels don't scale notification icons automatically, therefore:
|
||||
largeIcon = Bitmap.createScaledBitmap(largeIcon, width, height, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
Notification noti = new NotificationCompat.Builder(context)
|
||||
.setContentTitle(np.getString("appName"))
|
||||
.setContentText(np.getString("ticker"))
|
||||
.setContentIntent(resultPendingIntent)
|
||||
.setTicker(np.getString("ticker"))
|
||||
.setSmallIcon(R.drawable.ic_notification)
|
||||
.setLargeIcon(largeIcon)
|
||||
.setAutoCancel(true)
|
||||
.setLocalOnly(true) // to avoid bouncing the notification back to other kdeconnect nodes
|
||||
.setDefaults(Notification.DEFAULT_ALL)
|
||||
.build();
|
||||
|
||||
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
try {
|
||||
// tag all incoming notifications
|
||||
notificationManager.notify("kdeconnectId:" + np.getString("id", "0"), np.getInt("id", 0), noti);
|
||||
} catch (Exception e) {
|
||||
//4.1 will throw an exception about not having the VIBRATE permission, ignore it.
|
||||
//https://android.googlesource.com/platform/frameworks/base/+/android-4.2.1_r1.2%5E%5E!/
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getSupportedPackageTypes() {
|
||||
return new String[]{PACKAGE_TYPE_NOTIFICATION};
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getOutgoingPackageTypes() {
|
||||
return new String[]{PACKAGE_TYPE_NOTIFICATION_REQUEST};
|
||||
}
|
||||
|
||||
}
|
@@ -69,7 +69,9 @@ public class SendFileActivity extends ActionBarActivity {
|
||||
public void onServiceStart(BackgroundService service) {
|
||||
Device device = service.getDevice(mDeviceId);
|
||||
if (device == null) {
|
||||
Log.e("SendFileActivity", "Device is null");
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
ArrayList<Uri> uris = new ArrayList<>();
|
||||
uris.add(uri);
|
||||
|
@@ -346,8 +346,6 @@ public class SharePlugin extends Plugin {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
np.setPayload(inputStream, size);
|
||||
|
||||
}else{
|
||||
// Probably a content:// uri, so we query the Media content provider
|
||||
|
||||
@@ -384,13 +382,13 @@ public class SharePlugin extends Plugin {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} finally {
|
||||
cursor.close();
|
||||
try { cursor.close(); } catch (Exception e) { }
|
||||
}
|
||||
|
||||
np.setPayload(inputStream, size);
|
||||
|
||||
}
|
||||
|
||||
np.setPayload(inputStream, size);
|
||||
|
||||
final String filename = np.getString("filename");
|
||||
|
||||
builder.setContentText(res.getString(R.string.outgoing_file_text,filename));
|
||||
|
@@ -51,6 +51,7 @@ import org.kde.kdeconnect_tp.R;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.ConcurrentModificationException;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
|
||||
@@ -121,9 +122,10 @@ public class DeviceFragment extends Fragment {
|
||||
|
||||
refreshUI();
|
||||
|
||||
if (!device.hasPluginsLoaded()) {
|
||||
device.reloadPluginsFromSettings();
|
||||
}
|
||||
//TODO: Is this needed?
|
||||
//if (!device.hasPluginsLoaded() && device.isReachable()) {
|
||||
// device.reloadPluginsFromSettings();
|
||||
//}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -283,17 +285,21 @@ public class DeviceFragment extends Fragment {
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
|
||||
//TODO: Is this needed?
|
||||
/*
|
||||
BackgroundService.RunCommand(mActivity, new BackgroundService.InstanceCallback() {
|
||||
@Override
|
||||
public void onServiceStart(BackgroundService service) {
|
||||
if (mDeviceId != null) {
|
||||
Device device = service.getDevice(mDeviceId);
|
||||
if (device != null) {
|
||||
if (device != null && device.isReachable()) {
|
||||
device.reloadPluginsFromSettings();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
*/
|
||||
|
||||
getView().setFocusableInTouchMode(true);
|
||||
getView().requestFocus();
|
||||
@@ -373,15 +379,16 @@ public class DeviceFragment extends Fragment {
|
||||
errorHeader.setText(getResources().getString(R.string.plugins_failed_to_load));
|
||||
}
|
||||
items.add(new CustomItem(errorHeader));
|
||||
for (String s : failed.keySet()) {
|
||||
final Plugin p = failed.get(s);
|
||||
if (p == null) {
|
||||
items.add(new SmallEntryItem(s));
|
||||
for (Map.Entry<String, Plugin> entry : failed.entrySet()) {
|
||||
String pluginKey = entry.getKey();
|
||||
final Plugin plugin = entry.getValue();
|
||||
if (plugin == null) {
|
||||
items.add(new SmallEntryItem(pluginKey));
|
||||
} else {
|
||||
items.add(new SmallEntryItem(p.getDisplayName(), new View.OnClickListener() {
|
||||
items.add(new SmallEntryItem(plugin.getDisplayName(), new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
p.getErrorDialog(mActivity).show();
|
||||
plugin.getErrorDialog(mActivity).show();
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
@@ -213,6 +213,7 @@ public class PairingFragment extends Fragment implements PairingDeviceItem.Callb
|
||||
String deviceId = data.getStringExtra("deviceId");
|
||||
mActivity.onDeviceSelected(deviceId);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
}
|
||||
|
@@ -1,9 +1,7 @@
|
||||
package org.kde.kdeconnect.UserInterface;
|
||||
|
||||
import android.graphics.Color;
|
||||
import android.preference.CheckBoxPreference;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import org.kde.kdeconnect.Device;
|
||||
import org.kde.kdeconnect.Plugins.Plugin;
|
||||
@@ -53,11 +51,7 @@ public class PluginPreference extends CheckBoxPreference {
|
||||
super.onBindView(root);
|
||||
final View button = root.findViewById(R.id.settingsButton);
|
||||
|
||||
if (device.getUnsupportedPlugins().contains(pluginKey)) {
|
||||
((TextView)root.findViewById(android.R.id.title)).setTextColor(Color.GRAY);
|
||||
((TextView)root.findViewById(android.R.id.summary)).setText(R.string.plugin_not_supported);
|
||||
button.setVisibility(View.GONE);
|
||||
} else if (listener == null) {
|
||||
if (listener == null) {
|
||||
button.setVisibility(View.GONE);
|
||||
} else {
|
||||
button.setEnabled(isChecked());
|
||||
|
@@ -26,9 +26,8 @@ import android.view.MenuItem;
|
||||
|
||||
import org.kde.kdeconnect.BackgroundService;
|
||||
import org.kde.kdeconnect.Device;
|
||||
import org.kde.kdeconnect.Plugins.PluginFactory;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.List;
|
||||
|
||||
public class SettingsActivity extends AppCompatPreferenceActivity {
|
||||
|
||||
@@ -58,7 +57,7 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
|
||||
});
|
||||
return;
|
||||
}
|
||||
Set<String> plugins = PluginFactory.getAvailablePlugins();
|
||||
List<String> plugins = device.getSupportedPlugins();
|
||||
for (final String pluginKey : plugins) {
|
||||
PluginPreference pref = new PluginPreference(SettingsActivity.this, pluginKey, device);
|
||||
preferenceScreen.addPreference(pref);
|
||||
|
Reference in New Issue
Block a user