mirror of
https://github.com/KDE/kdeconnect-android
synced 2025-09-01 14:45:08 +00:00
Compare commits
58 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
2e3fabb3e5 | ||
|
c7b754a36e | ||
|
347c34927d | ||
|
e9013e7995 | ||
|
3b5a7deebe | ||
|
ac04f5a610 | ||
|
efce35366b | ||
|
1a32f8142d | ||
|
103f24c140 | ||
|
66cdb77bbd | ||
|
91eefcc65a | ||
|
b25ec2d133 | ||
|
e2e78cb562 | ||
|
8b0b65178b | ||
|
34d8a771d7 | ||
|
7f3afd194b | ||
|
ef79b04d1a | ||
|
62bf2ccab7 | ||
|
901440f78a | ||
|
e9a64dc99a | ||
|
23f7eb90ba | ||
|
a8838b57bb | ||
|
2989fe5ab3 | ||
|
9c40374b00 | ||
|
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 |
@@ -1,8 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="org.kde.kdeconnect_tp"
|
package="org.kde.kdeconnect_tp"
|
||||||
android:versionCode="1200"
|
android:versionCode="1440"
|
||||||
android:versionName="1.2">
|
android:versionName="1.4.4">
|
||||||
|
|
||||||
<uses-sdk android:minSdkVersion="9"
|
<uses-sdk android:minSdkVersion="9"
|
||||||
android:targetSdkVersion="22" />
|
android:targetSdkVersion="22" />
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
<uses-permission android:name="android.permission.BATTERY_STATS" />
|
<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.READ_PHONE_STATE" android:required="false" />
|
||||||
<uses-permission android:name="android.permission.RECEIVE_SMS" 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_CONTACTS" />
|
||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||||
@@ -187,6 +187,7 @@
|
|||||||
android:value="org.kde.kdeconnect.UserInterface.PluginSettingsActivity" />
|
android:value="org.kde.kdeconnect.UserInterface.PluginSettingsActivity" />
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
|
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
||||||
|
@@ -3,7 +3,7 @@ buildscript {
|
|||||||
jcenter()
|
jcenter()
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:2.1.2'
|
classpath 'com.android.tools.build:gradle:2.2.0'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,22 +1,32 @@
|
|||||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
|
android:layout_width="match_parent"
|
||||||
android:paddingRight="@dimen/activity_horizontal_margin"
|
android:layout_height="match_parent"
|
||||||
android:paddingTop="@dimen/activity_vertical_margin"
|
android:orientation="vertical"
|
||||||
android:paddingBottom="@dimen/activity_vertical_margin"
|
|
||||||
tools:context="org.kde.kdeconnect.Plugins.NotificationsPlugin.NotificationFilterActivity">
|
tools:context="org.kde.kdeconnect.Plugins.NotificationsPlugin.NotificationFilterActivity">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:text="@string/filter_apps_info"
|
android:text="@string/filter_apps_info"
|
||||||
|
android:paddingLeft="@dimen/activity_horizontal_margin"
|
||||||
|
android:paddingRight="@dimen/activity_horizontal_margin"
|
||||||
|
android:paddingTop="@dimen/activity_vertical_margin"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingBottom="5dp"
|
android:paddingBottom="5dp"
|
||||||
android:id="@+id/tFilter"/>
|
android:id="@+id/tFilter"/>
|
||||||
|
|
||||||
|
<ProgressBar
|
||||||
|
android:layout_marginTop="64dip"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:id="@+id/spinner" />
|
||||||
|
|
||||||
<ListView
|
<ListView
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="fill_parent"
|
android:layout_height="fill_parent"
|
||||||
android:id="@+id/lvFilterApps"
|
android:id="@+id/lvFilterApps"
|
||||||
android:layout_below="@id/tFilter"/>
|
android:visibility="gone"
|
||||||
|
/>
|
||||||
|
|
||||||
</RelativeLayout>
|
</LinearLayout>
|
||||||
|
@@ -24,28 +24,23 @@
|
|||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:paddingEnd="?android:attr/scrollbarSize"
|
android:paddingEnd="?android:attr/scrollbarSize"
|
||||||
android:paddingRight="?android:attr/scrollbarSize"
|
android:paddingRight="?android:attr/scrollbarSize"
|
||||||
|
android:paddingStart="12dip"
|
||||||
|
android:paddingLeft="12dip"
|
||||||
android:background="?attr/selectableItemBackground">
|
android:background="?attr/selectableItemBackground">
|
||||||
|
|
||||||
<!-- Preference should place its actual preference widget here. -->
|
<!-- Preference will place its actual preference widget here. -->
|
||||||
<LinearLayout android:id="@+android:id/widget_frame"
|
<LinearLayout android:id="@+android:id/widget_frame"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:orientation="vertical" />
|
android:orientation="vertical" />
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+android:id/icon"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="15dip"
|
android:layout_marginStart="12dip"
|
||||||
android:layout_marginLeft="15dip"
|
android:layout_marginLeft="12dip"
|
||||||
android:layout_marginEnd="15dip"
|
android:layout_marginEnd="4dip"
|
||||||
android:layout_marginRight="4dip"
|
android:layout_marginRight="4dip"
|
||||||
android:layout_marginTop="6dip"
|
android:layout_marginTop="6dip"
|
||||||
android:layout_marginBottom="6dip"
|
android:layout_marginBottom="6dip"
|
||||||
|
@@ -5,12 +5,9 @@
|
|||||||
<string name="pref_plugin_battery">تقرير البطّاريّة</string>
|
<string name="pref_plugin_battery">تقرير البطّاريّة</string>
|
||||||
<string name="pref_plugin_battery_desc">بلّغ عن حالة البطّاريّة دوريًّا</string>
|
<string name="pref_plugin_battery_desc">بلّغ عن حالة البطّاريّة دوريًّا</string>
|
||||||
<string name="pref_plugin_sftp">اكشف نظام الملفّات</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">مزامنة الحافظة</string>
|
||||||
<string name="pref_plugin_clipboard_desc">شارك محتوى الحافظة</string>
|
<string name="pref_plugin_clipboard_desc">شارك محتوى الحافظة</string>
|
||||||
<string name="pref_plugin_mousepad">الدَّخل البعيد</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">وخزة</string>
|
||||||
<string name="pref_plugin_ping_desc">أرسل واستقبل وخزات</string>
|
<string name="pref_plugin_ping_desc">أرسل واستقبل وخزات</string>
|
||||||
<string name="pref_plugin_notifications">مزامنة الإخطارات</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_telephony_desc">Unvia avisos pa SMS y llamaes</string>
|
||||||
<string name="pref_plugin_battery">Informe de batería</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_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">Sincronización del cartafueyu</string>
|
||||||
<string name="pref_plugin_clipboard_desc">Comparte\'l conteníu 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">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">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">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">Sincronización d\'avisos</string>
|
||||||
<string name="pref_plugin_notifications_desc">Accede a los tos avisos dende otros preseos</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="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="plugin_not_available">Esta carauterística nun ta disponible na to versión d\'Android</string>
|
||||||
<string name="device_list_empty">Ensin preseos</string>
|
<string name="device_list_empty">Ensin preseos</string>
|
||||||
@@ -28,34 +23,23 @@
|
|||||||
<string name="send_ping">Unviar ping</string>
|
<string name="send_ping">Unviar ping</string>
|
||||||
<string name="open_mpris_controls">Controles multimedia</string>
|
<string name="open_mpris_controls">Controles multimedia</string>
|
||||||
<string name="open_mousepad">Entrada remota</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_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 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-array name="mousepad_tap_entries">
|
<string-array name="mousepad_tap_entries">
|
||||||
<item>Clic drechu</item>
|
<item>Clic drechu</item>
|
||||||
<item>Clic d\'en mediu</item>
|
<item>Clic d\'en mediu</item>
|
||||||
<item>Nada</item>
|
<item>Nada</item>
|
||||||
</string-array>
|
</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">
|
<string-array name="mousepad_sensitivity_entries">
|
||||||
<item>La más lenta</item>
|
<item>Slowest</item>
|
||||||
<item>Above Slowest</item>
|
<item>Above Slowest</item>
|
||||||
<item>Predeterminada</item>
|
<item>Default</item>
|
||||||
<item>Penriba lo predeterminao</item>
|
<item>Above Default</item>
|
||||||
<item>La más rápida</item>
|
<item>Fastest</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string name="category_connected_devices">Preseos coneutaos</string>
|
<string name="category_connected_devices">Preseos coneutaos</string>
|
||||||
<string name="category_not_paired_devices">Preseos disponibles</string>
|
<string name="category_not_paired_devices">Preseos disponibles</string>
|
||||||
<string name="category_remembered_devices">Preseos recordaos</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="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="unknown_device">Preséu desconocíu</string>
|
||||||
<string name="error_not_reachable">Nun ye algamable\'l preséu</string>
|
<string name="error_not_reachable">Nun ye algamable\'l preséu</string>
|
||||||
<string name="error_already_requested">Empareyamientu yá solicitá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="sent_file_failed_text">%1s</string>
|
||||||
<string name="tap_to_answer">Calca pa responder</string>
|
<string name="tap_to_answer">Calca pa responder</string>
|
||||||
<string name="reconnect">Reconeutar</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="show_keyboard">Amosar tecláu</string>
|
||||||
<string name="device_not_paired">Preséu non empareyáu</string>
|
<string name="device_not_paired">Preséu non empareyáu</string>
|
||||||
<string name="request_pairing">Solicitar empareyamientu</string>
|
<string name="request_pairing">Solicitar empareyamientu</string>
|
||||||
@@ -109,7 +91,6 @@
|
|||||||
<item>1 minutu</item>
|
<item>1 minutu</item>
|
||||||
<item>2 minutos</item>
|
<item>2 minutos</item>
|
||||||
</string-array>
|
</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_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="protocol_version_newer">Esti preséu usa una versión anovada del protocolu</string>
|
||||||
<string name="general_settings">Axustes xenerales</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="mpris_player_on_device">%1$s en %2$s</string>
|
||||||
<string name="send_files">Unviar ficheros</string>
|
<string name="send_files">Unviar ficheros</string>
|
||||||
<string name="pairing_title">Preseos KDE Connect</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_paired">Preséu empareyáu</string>
|
||||||
<string name="device_rename_title">Renomar preséu</string>
|
<string name="device_rename_title">Renomar preséu</string>
|
||||||
<string name="device_rename_confirm">Renomar</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">Unviar SMS</string>
|
||||||
<string name="pref_plugin_telepathy_desc">Unvia mensaxes de testu dende\'l to escritoriu</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="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="findmyphone_found">Alcontrar</string>
|
||||||
<string name="open">Abrir</string>
|
<string name="open">Abrir</string>
|
||||||
<string name="close">Zarrar</string>
|
<string name="close">Zarrar</string>
|
||||||
|
@@ -5,10 +5,8 @@
|
|||||||
<string name="pref_plugin_battery">Доклад за батерията</string>
|
<string name="pref_plugin_battery">Доклад за батерията</string>
|
||||||
<string name="pref_plugin_battery_desc">Периодично съобщаване за състоянието на батерията</string>
|
<string name="pref_plugin_battery_desc">Периодично съобщаване за състоянието на батерията</string>
|
||||||
<string name="pref_plugin_sftp">Достъп до файловата система</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">Синхронизиране на буфера</string>
|
||||||
<string name="pref_plugin_clipboard_desc">Споделяне съдържанието на буфера</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">Пинг</string>
|
||||||
<string name="pref_plugin_ping_desc">Изпращане и получаване на пинг</string>
|
<string name="pref_plugin_ping_desc">Изпращане и получаване на пинг</string>
|
||||||
<string name="pref_plugin_notifications">Синхронизиране на уведомленията</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">Baterijski izvještaj</string>
|
||||||
<string name="pref_plugin_battery_desc">Periodično javi baterijski status</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">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">Sinhronizovanje sandučića</string>
|
||||||
<string name="pref_plugin_clipboard_desc">Podijeli sadržaj 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">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">Ping</string>
|
||||||
<string name="pref_plugin_ping_desc">Šalji i primaj ping-ove</string>
|
<string name="pref_plugin_ping_desc">Šalji i primaj ping-ove</string>
|
||||||
<string name="pref_plugin_notifications">Sinhronizovano obavještenje</string>
|
<string name="pref_plugin_notifications">Sinhronizovano obavještenje</string>
|
||||||
|
@@ -1,23 +1,25 @@
|
|||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
<resources>
|
<resources>
|
||||||
<string name="pref_plugin_telephony">Notificador de telefonia</string>
|
<string name="pref_plugin_telephony">Notificador de la telefonia</string>
|
||||||
<string name="pref_plugin_telephony_desc">Envia notificacions pels SMS i les trucades</string>
|
<string name="pref_plugin_telephony_desc">Envia notificacions pels SMS i les trucades</string>
|
||||||
<string name="pref_plugin_battery">Informe de la bateria</string>
|
<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_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">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">Sincronitza el porta-retalls</string>
|
||||||
<string name="pref_plugin_clipboard_desc">Comparteix el contingut del 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">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">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">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">Ping</string>
|
||||||
<string name="pref_plugin_ping_desc">Envia i rep els pings</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">Sincronitza les notificacions</string>
|
||||||
<string name="pref_plugin_notifications_desc">Accedeix a les vostres notificacions des d\'altres dispositius</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">Comparteix i rep</string>
|
||||||
<string name="pref_plugin_sharereceiver_desc">Comparteix els fitxers i els URL entre els dispositius</string>
|
<string name="pref_plugin_sharereceiver_desc">Comparteix els fitxers i els URL entre els dispositius</string>
|
||||||
<string name="plugin_not_available">Aquesta característica no està disponible en la vostra versió d\'Android</string>
|
<string name="plugin_not_available">Aquesta característica no està disponible en la vostra versió d\'Android</string>
|
||||||
@@ -66,7 +68,7 @@
|
|||||||
<string name="error_canceled_by_user">Cancel·lat per l\'usuari</string>
|
<string name="error_canceled_by_user">Cancel·lat per l\'usuari</string>
|
||||||
<string name="error_canceled_by_other_peer">Cancel·lat per l\'altre parell</string>
|
<string name="error_canceled_by_other_peer">Cancel·lat per l\'altre parell</string>
|
||||||
<string name="error_invalid_key">S\'ha rebut una clau no vàlida</string>
|
<string name="error_invalid_key">S\'ha rebut una clau no vàlida</string>
|
||||||
<string name="encryption_info_title">Informació d\'encriptatge</string>
|
<string name="encryption_info_title">Informació de l\'encriptatge</string>
|
||||||
<string name="encryption_info_msg_no_ssl">L\'altre dispositiu no usa una versió recent del KDE Connect, s\'utilitzarà el mètode d\'encriptatge antic.</string>
|
<string name="encryption_info_msg_no_ssl">L\'altre dispositiu no usa una versió recent del KDE Connect, s\'utilitzarà el mètode d\'encriptatge antic.</string>
|
||||||
<string name="my_device_fingerprint">L\'empremta digital SHA1 del certificat del vostre dispositiu és:</string>
|
<string name="my_device_fingerprint">L\'empremta digital SHA1 del certificat del vostre dispositiu és:</string>
|
||||||
<string name="remote_device_fingerprint">L\'empremta digital SHA1 del certificat del dispositiu remot és:</string>
|
<string name="remote_device_fingerprint">L\'empremta digital SHA1 del certificat del dispositiu remot és:</string>
|
||||||
@@ -156,7 +158,8 @@
|
|||||||
<string name="pref_plugin_telepathy_desc">Envia missatges de text des de l\'escriptori</string>
|
<string name="pref_plugin_telepathy_desc">Envia missatges de text des de l\'escriptori</string>
|
||||||
<string name="plugin_not_supported">Aquest connector no és admès pel dispositiu</string>
|
<string name="plugin_not_supported">Aquest connector no és admès pel dispositiu</string>
|
||||||
<string name="findmyphone_title">Cerca el meu telèfon</string>
|
<string name="findmyphone_title">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="findmyphone_found">L\'he trobat</string>
|
||||||
<string name="open">Obre</string>
|
<string name="open">Obre</string>
|
||||||
<string name="close">Tanca</string>
|
<string name="close">Tanca</string>
|
||||||
|
@@ -5,18 +5,21 @@
|
|||||||
<string name="pref_plugin_battery">Hlášení baterie</string>
|
<string name="pref_plugin_battery">Hlášení baterie</string>
|
||||||
<string name="pref_plugin_battery_desc">Periodicky hlásit stav baterky</string>
|
<string name="pref_plugin_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">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">Synchronizace schránky</string>
|
||||||
<string name="pref_plugin_clipboard_desc">Sdílet obsah 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">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">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">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">Ping</string>
|
||||||
<string name="pref_plugin_ping_desc">Posílat a přijímat 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">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_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">Sdílet s přijmnout</string>
|
||||||
<string name="pref_plugin_sharereceiver_desc">Sdílet soubory a odkazy mezi zařízeními</string>
|
<string name="pref_plugin_sharereceiver_desc">Sdílet soubory a odkazy mezi zařízeními</string>
|
||||||
<string name="plugin_not_available">Tato vlastnost není pro vaši verzi Androidu platná</string>
|
<string name="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_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="error_invalid_key">Byl přijat neplatný klíč</string>
|
||||||
<string name="encryption_info_title">Informace o šifrování</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="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="pairing_request_from">Požadavek o párování z %1s</string>
|
||||||
<string name="received_url_title">Přijat odkaz od %1s</string>
|
<string name="received_url_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="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="plugin_not_supported">Tento modul zařízení nepodporuje</string>
|
||||||
<string name="findmyphone_title">Najít můj telefon</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="findmyphone_found">Nalezeno</string>
|
||||||
<string name="open">Otevřít</string>
|
<string name="open">Otevřít</string>
|
||||||
<string name="close">Zavřít</string>
|
<string name="close">Zavřít</string>
|
||||||
|
@@ -5,19 +5,20 @@
|
|||||||
<string name="pref_plugin_battery">Batterirapport</string>
|
<string name="pref_plugin_battery">Batterirapport</string>
|
||||||
<string name="pref_plugin_battery_desc">Rapportér batteristatus periodisk</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">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">Synk. af udklipsholder</string>
|
||||||
<string name="pref_plugin_clipboard_desc">Del indholdet af udklipsholderen</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">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">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">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">Ping</string>
|
||||||
<string name="pref_plugin_ping_desc">Send og modtag 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">Synk. af bekendtgørelser</string>
|
||||||
<string name="pref_plugin_notifications_desc">Tilgå dine bekendtgørelser fra andre enheder</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">Del og modtag</string>
|
||||||
<string name="pref_plugin_sharereceiver_desc">Del filer og URL\'er mellem enheder</string>
|
<string name="pref_plugin_sharereceiver_desc">Del filer og URL\'er mellem enheder</string>
|
||||||
<string name="plugin_not_available">Denne funktion er ikke tilgængelig i din Android-version</string>
|
<string name="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_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_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_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">
|
<string-array name="mousepad_tap_entries">
|
||||||
<item>Højreklik</item>
|
<item>Højreklik</item>
|
||||||
<item>Midterklik</item>
|
<item>Midterklik</item>
|
||||||
@@ -41,13 +40,12 @@
|
|||||||
</string-array>
|
</string-array>
|
||||||
<string name="mousepad_double_default">højre</string>
|
<string name="mousepad_double_default">højre</string>
|
||||||
<string name="mousepad_triple_default">midter</string>
|
<string name="mousepad_triple_default">midter</string>
|
||||||
<string name="mousepad_sensitivity_default">standard</string>
|
|
||||||
<string-array name="mousepad_sensitivity_entries">
|
<string-array name="mousepad_sensitivity_entries">
|
||||||
<item>Mest langsom</item>
|
<item>Slowest</item>
|
||||||
<item>Over mest langsom</item>
|
<item>Above Slowest</item>
|
||||||
<item>Standard</item>
|
<item>Default</item>
|
||||||
<item>Over standard</item>
|
<item>Above Default</item>
|
||||||
<item>Hurtigst</item>
|
<item>Fastest</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string name="category_connected_devices">Forbundne enheder</string>
|
<string name="category_connected_devices">Forbundne enheder</string>
|
||||||
<string name="category_not_paired_devices">Tilgængelig 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_user">Annulleret af brugeren</string>
|
||||||
<string name="error_canceled_by_other_peer">Annulleret af modpart</string>
|
<string name="error_canceled_by_other_peer">Annulleret af modpart</string>
|
||||||
<string name="error_invalid_key">Ugyldige nøgle modtaget</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="pair_requested">Anmodet om parring</string>
|
||||||
<string name="pairing_request_from">Parringsanmodning fra %1s</string>
|
<string name="pairing_request_from">Parringsanmodning fra %1s</string>
|
||||||
<string name="received_url_title">Modtog link 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">Send SMS</string>
|
||||||
<string name="pref_plugin_telepathy_desc">Send SMS-beskeder fra din desktop</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="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 enhed, så du kan finde den.</string>
|
||||||
<string name="findmyphone_description">Ringer til denne telefon, så du kan finde den.</string>
|
|
||||||
<string name="findmyphone_found">Fundet</string>
|
<string name="findmyphone_found">Fundet</string>
|
||||||
<string name="open">Åbn</string>
|
|
||||||
<string name="close">Luk</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -5,19 +5,19 @@
|
|||||||
<string name="pref_plugin_battery">Akkubericht</string>
|
<string name="pref_plugin_battery">Akkubericht</string>
|
||||||
<string name="pref_plugin_battery_desc">Akkustatus periodisch berichten</string>
|
<string name="pref_plugin_battery_desc">Akkustatus periodisch berichten</string>
|
||||||
<string name="pref_plugin_sftp">Dateisystem zeigen</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_sftp_desc">Erlaubt das Browsen des Dateisystems auf diesem Gerät aus der Ferne</string>
|
||||||
<string name="pref_plugin_clipboard">Abgleich der Zwischenablage</string>
|
<string name="pref_plugin_clipboard">Abgleich der Zwischenablage</string>
|
||||||
<string name="pref_plugin_clipboard_desc">Inhalt der Zwischenablage freigeben</string>
|
<string name="pref_plugin_clipboard_desc">Inhalt der Zwischenablage freigeben</string>
|
||||||
<string name="pref_plugin_mousepad">Ferneingabe</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_mousepad_desc">Verwendet Ihr Handy als Tablett, Touchpad und Tastatur</string>
|
||||||
<string name="pref_plugin_mpris">Multimedia-Bedienung</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">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_runcommand_desc">Von Ihrem Telefon oder Tablett Befehle auf anderen Geräten ausführen</string>
|
||||||
<string name="pref_plugin_ping">Ping</string>
|
<string name="pref_plugin_ping">Ping</string>
|
||||||
<string name="pref_plugin_ping_desc">Senden und Empfangen von Pings</string>
|
<string name="pref_plugin_ping_desc">Senden und Empfangen von Pings</string>
|
||||||
<string name="pref_plugin_notifications">Benachrichtigungs-Abgleich</string>
|
<string name="pref_plugin_notifications">Benachrichtigungs-Abgleich</string>
|
||||||
<string name="pref_plugin_notifications_desc">Zugriff auf Ihre Benachrichtigungen von anderen Geräten</string>
|
<string name="pref_plugin_notifications_desc">Zugriff auf Ihre Benachrichtigungen von anderen Geräten</string>
|
||||||
|
<string name="pref_plugin_receive_notifications">Benachrichtigungen empfangen</string>
|
||||||
<string name="pref_plugin_sharereceiver">Veröffentlichen und Empfangen</string>
|
<string name="pref_plugin_sharereceiver">Veröffentlichen und Empfangen</string>
|
||||||
<string name="pref_plugin_sharereceiver_desc">Dateien und Adressen (URLs) zwischen Geräten teilen</string>
|
<string name="pref_plugin_sharereceiver_desc">Dateien und Adressen (URLs) zwischen Geräten teilen</string>
|
||||||
<string name="plugin_not_available">Diese Funktion ist in Ihrer Android-Version nicht verfügbar</string>
|
<string name="plugin_not_available">Diese Funktion ist in Ihrer Android-Version nicht verfügbar</string>
|
||||||
@@ -149,7 +149,8 @@
|
|||||||
<string name="pref_plugin_telepathy_desc">Text-Nachrichten von Ihrer Arbeitsfläche 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="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_title">Mein Telefon suchen</string>
|
||||||
<string name="findmyphone_description">Ruft dieses Telefon an, um es zu suchen.</string>
|
<string name="findmyphone_title_tablet">Mein Tablett suchen</string>
|
||||||
|
<string name="findmyphone_description">Ruft dieses Gerät an, um es zu suchen.</string>
|
||||||
<string name="findmyphone_found">Gefunden</string>
|
<string name="findmyphone_found">Gefunden</string>
|
||||||
<string name="open">Öffnen</string>
|
<string name="open">Öffnen</string>
|
||||||
<string name="close">Schließen</string>
|
<string name="close">Schließen</string>
|
||||||
|
@@ -5,15 +5,11 @@
|
|||||||
<string name="pref_plugin_battery">Αναφορά μπαταρίας</string>
|
<string name="pref_plugin_battery">Αναφορά μπαταρίας</string>
|
||||||
<string name="pref_plugin_battery_desc">Περιοδική αναφορά κατάστασης μπαταρίας</string>
|
<string name="pref_plugin_battery_desc">Περιοδική αναφορά κατάστασης μπαταρίας</string>
|
||||||
<string name="pref_plugin_sftp">Αποκάλυψη συστήματος αρχείων</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">Συγχρονισμός προχείρου</string>
|
||||||
<string name="pref_plugin_clipboard_desc">Διαμοιρασμός περιεχομένου προχείρου</string>
|
<string name="pref_plugin_clipboard_desc">Διαμοιρασμός περιεχομένου προχείρου</string>
|
||||||
<string name="pref_plugin_mousepad">Απομακρυσμένη είσοδος στοιχείων</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">Κονσόλα πολυμέσων</string>
|
||||||
<string name="pref_plugin_mpris_desc">Έλεγχος μουσικής/βίντεο από το κινητό</string>
|
|
||||||
<string name="pref_plugin_runcommand">Εκτέλεση εντολής</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">Ping</string>
|
||||||
<string name="pref_plugin_ping_desc">Αποστολή και λήψη pings</string>
|
<string name="pref_plugin_ping_desc">Αποστολή και λήψη pings</string>
|
||||||
<string name="pref_plugin_notifications">Συγχρονισμός ειδοποιήσεων</string>
|
<string name="pref_plugin_notifications">Συγχρονισμός ειδοποιήσεων</string>
|
||||||
@@ -156,7 +152,6 @@
|
|||||||
<string name="pref_plugin_telepathy_desc">Αποστολή μηνυμάτων κειμένου από τον υπολογιστή σας</string>
|
<string name="pref_plugin_telepathy_desc">Αποστολή μηνυμάτων κειμένου από τον υπολογιστή σας</string>
|
||||||
<string name="plugin_not_supported">Αυτό το πρόσθετο δεν υποστηρίζεται από τη συσκευή</string>
|
<string name="plugin_not_supported">Αυτό το πρόσθετο δεν υποστηρίζεται από τη συσκευή</string>
|
||||||
<string name="findmyphone_title">Αναζήτηση του κινητού μου</string>
|
<string name="findmyphone_title">Αναζήτηση του κινητού μου</string>
|
||||||
<string name="findmyphone_description">Καλεί αυτό το κινητό ώστε να το εντοπίσετε.</string>
|
|
||||||
<string name="findmyphone_found">Βρέθηκε</string>
|
<string name="findmyphone_found">Βρέθηκε</string>
|
||||||
<string name="open">Άνοιγμα</string>
|
<string name="open">Άνοιγμα</string>
|
||||||
<string name="close">Κλείσιμο</string>
|
<string name="close">Κλείσιμο</string>
|
||||||
|
@@ -5,18 +5,21 @@
|
|||||||
<string name="pref_plugin_battery">Battery report</string>
|
<string name="pref_plugin_battery">Battery report</string>
|
||||||
<string name="pref_plugin_battery_desc">Periodically report battery status</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">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">Clipboard sync</string>
|
||||||
<string name="pref_plugin_clipboard_desc">Share the clipboard content</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">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">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">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">Ping</string>
|
||||||
<string name="pref_plugin_ping_desc">Send and receive pings</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">Notification sync</string>
|
||||||
<string name="pref_plugin_notifications_desc">Access your notifications from other devices</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">Share and receive</string>
|
||||||
<string name="pref_plugin_sharereceiver_desc">Share files and URLs between devices</string>
|
<string name="pref_plugin_sharereceiver_desc">Share files and URLs between devices</string>
|
||||||
<string name="plugin_not_available">This feature is not available in your Android version</string>
|
<string name="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_user">Cancelled by user</string>
|
||||||
<string name="error_canceled_by_other_peer">Cancelled by other peer</string>
|
<string name="error_canceled_by_other_peer">Cancelled by other peer</string>
|
||||||
<string name="error_invalid_key">Invalid key received</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="pair_requested">Pair requested</string>
|
||||||
<string name="pairing_request_from">Pairing request from %1s</string>
|
<string name="pairing_request_from">Pairing request from %1s</string>
|
||||||
<string name="received_url_title">Received link from %1s</string>
|
<string name="received_url_title">Received link from %1s</string>
|
||||||
@@ -150,7 +157,9 @@
|
|||||||
<string name="pref_plugin_telepathy">Send SMS</string>
|
<string name="pref_plugin_telepathy">Send SMS</string>
|
||||||
<string name="pref_plugin_telepathy_desc">Send text messages from your desktop</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="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="findmyphone_found">Found</string>
|
||||||
<string name="open">Open</string>
|
<string name="open">Open</string>
|
||||||
<string name="close">Close</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">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_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">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">Sincronización del portapapeles</string>
|
||||||
<string name="pref_plugin_clipboard_desc">Compartir el contenido 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">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">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">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">Ping</string>
|
||||||
<string name="pref_plugin_ping_desc">Enviar y recibir pings</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">Sincronizar notificaciones</string>
|
||||||
<string name="pref_plugin_notifications_desc">Acceder a las notificaciones desde otros dispositivos</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">Compartir y recibir</string>
|
||||||
<string name="pref_plugin_sharereceiver_desc">Compartir archivos y URL entre dispositivos</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>
|
<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="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="plugin_not_supported">Este complemento no está permitido por el dispositivo</string>
|
||||||
<string name="findmyphone_title">Encontrar mi teléfono</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="findmyphone_found">Encontrado</string>
|
||||||
<string name="open">Abrir</string>
|
<string name="open">Abrir</string>
|
||||||
<string name="close">Cerrar</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">Akkuraportti</string>
|
||||||
<string name="pref_plugin_battery_desc">Raportoi akun tila säännöllisesti</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">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">Leikepöydän synkronointi</string>
|
||||||
<string name="pref_plugin_clipboard_desc">Jaa leikepöydän sisältö</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">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">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_runcommand">Suorita komento</string>
|
||||||
<string name="pref_plugin_ping">Tiedustelupaketti</string>
|
<string name="pref_plugin_ping">Tiedustelupaketti</string>
|
||||||
<string name="pref_plugin_ping_desc">Lähetä ja vastaanota tiedustelupaketteja</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_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_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_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">
|
<string-array name="mousepad_tap_entries">
|
||||||
<item>Oikea napsautus</item>
|
<item>Oikea napsautus</item>
|
||||||
<item>Keskinapsautus</item>
|
<item>Keskinapsautus</item>
|
||||||
@@ -40,13 +35,12 @@
|
|||||||
</string-array>
|
</string-array>
|
||||||
<string name="mousepad_double_default">Oikea painike</string>
|
<string name="mousepad_double_default">Oikea painike</string>
|
||||||
<string name="mousepad_triple_default">Keskipainike</string>
|
<string name="mousepad_triple_default">Keskipainike</string>
|
||||||
<string name="mousepad_sensitivity_default">oletus</string>
|
|
||||||
<string-array name="mousepad_sensitivity_entries">
|
<string-array name="mousepad_sensitivity_entries">
|
||||||
<item>Hitain</item>
|
<item>Slowest</item>
|
||||||
<item>Hitainta suurempi</item>
|
<item>Above Slowest</item>
|
||||||
<item>Oletus</item>
|
<item>Default</item>
|
||||||
<item>Oletusta suurempi</item>
|
<item>Above Default</item>
|
||||||
<item>Nopein</item>
|
<item>Fastest</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string name="category_connected_devices">Yhdistetyt laitteet</string>
|
<string name="category_connected_devices">Yhdistetyt laitteet</string>
|
||||||
<string name="category_not_paired_devices">Saatavilla olevat 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">Lähetä tekstiviesti</string>
|
||||||
<string name="pref_plugin_telepathy_desc">Lähetä tekstiviestejä työpöydältäsi</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="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="findmyphone_found">Löytyi</string>
|
||||||
<string name="open">Avaa</string>
|
<string name="open">Avaa</string>
|
||||||
<string name="close">Sulje</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">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_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">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">Synchronisation avec le presse-papiers</string>
|
||||||
<string name="pref_plugin_clipboard_desc">Partage le contenu du 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">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">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">Commande « Ping »</string>
|
||||||
<string name="pref_plugin_ping_desc">Envoie et reçoit des commandes « 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>
|
<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">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_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">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">Sincronización do portapapeis</string>
|
||||||
<string name="pref_plugin_clipboard_desc">Comparta o contido 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">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">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_runcommand">Executar unha orde</string>
|
||||||
<string name="pref_plugin_ping">Ping</string>
|
<string name="pref_plugin_ping">Ping</string>
|
||||||
<string name="pref_plugin_ping_desc">Envíe e reciba pings.</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_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_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_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">
|
<string-array name="mousepad_tap_entries">
|
||||||
<item>Clic dereito</item>
|
<item>Clic dereito</item>
|
||||||
<item>Clic central</item>
|
<item>Clic central</item>
|
||||||
@@ -40,13 +35,12 @@
|
|||||||
</string-array>
|
</string-array>
|
||||||
<string name="mousepad_double_default">dereita</string>
|
<string name="mousepad_double_default">dereita</string>
|
||||||
<string name="mousepad_triple_default">medio</string>
|
<string name="mousepad_triple_default">medio</string>
|
||||||
<string name="mousepad_sensitivity_default">predeterminado</string>
|
|
||||||
<string-array name="mousepad_sensitivity_entries">
|
<string-array name="mousepad_sensitivity_entries">
|
||||||
<item>O máis lento</item>
|
<item>Slowest</item>
|
||||||
<item>Lento</item>
|
<item>Above Slowest</item>
|
||||||
<item>Predeterminado</item>
|
<item>Default</item>
|
||||||
<item>Rápido</item>
|
<item>Above Default</item>
|
||||||
<item>O mais rápido</item>
|
<item>Fastest</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string name="category_connected_devices">Dispositivos conectados</string>
|
<string name="category_connected_devices">Dispositivos conectados</string>
|
||||||
<string name="category_not_paired_devices">Dispositivos dispoñíbeis</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">Enviar unha mensaxe de texto</string>
|
||||||
<string name="pref_plugin_telepathy_desc">Enviar mensaxes de texto desde un computador de escritorio.</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="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="findmyphone_found">Atopado</string>
|
||||||
<string name="open">Abrir</string>
|
<string name="open">Abrir</string>
|
||||||
<string name="close">Pechar</string>
|
<string name="close">Pechar</string>
|
||||||
|
@@ -5,15 +5,11 @@
|
|||||||
<string name="pref_plugin_battery">דיווח סוללה</string>
|
<string name="pref_plugin_battery">דיווח סוללה</string>
|
||||||
<string name="pref_plugin_battery_desc">מדווח על אחוז הסוללה למחשב</string>
|
<string name="pref_plugin_battery_desc">מדווח על אחוז הסוללה למחשב</string>
|
||||||
<string name="pref_plugin_sftp">גישה לקבצים</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">סנכנרון לוח העתקה</string>
|
||||||
<string name="pref_plugin_clipboard_desc">שתף בין המחשבים את מה שמועתק</string>
|
<string name="pref_plugin_clipboard_desc">שתף בין המחשבים את מה שמועתק</string>
|
||||||
<string name="pref_plugin_mousepad">שליטה מרחוק</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">שליטה במדיה</string>
|
||||||
<string name="pref_plugin_mpris_desc">שלוט בניגון שמע או וידאו מהפלאפון</string>
|
|
||||||
<string name="pref_plugin_runcommand">הרץ פקודה</string>
|
<string name="pref_plugin_runcommand">הרץ פקודה</string>
|
||||||
<string name="pref_plugin_runcommand_desc">הרץ פקודה במחשב מהפלאפון</string>
|
|
||||||
<string name="pref_plugin_ping">פינג</string>
|
<string name="pref_plugin_ping">פינג</string>
|
||||||
<string name="pref_plugin_ping_desc">שלח וקבל פינגים</string>
|
<string name="pref_plugin_ping_desc">שלח וקבל פינגים</string>
|
||||||
<string name="pref_plugin_notifications">סנכרון התראות</string>
|
<string name="pref_plugin_notifications">סנכרון התראות</string>
|
||||||
@@ -156,7 +152,6 @@
|
|||||||
<string name="pref_plugin_telepathy_desc">שלח הודעות מהמחשב שלך</string>
|
<string name="pref_plugin_telepathy_desc">שלח הודעות מהמחשב שלך</string>
|
||||||
<string name="plugin_not_supported">התוסף הזה לא נתמך ע\"י המכשיר שלך</string>
|
<string name="plugin_not_supported">התוסף הזה לא נתמך ע\"י המכשיר שלך</string>
|
||||||
<string name="findmyphone_title">מצא את המכשיר שלי</string>
|
<string name="findmyphone_title">מצא את המכשיר שלי</string>
|
||||||
<string name="findmyphone_description">הפעל רעש במכשיר כדי שתוכל למצוא אותו.</string>
|
|
||||||
<string name="findmyphone_found">נמצא</string>
|
<string name="findmyphone_found">נמצא</string>
|
||||||
<string name="open">פתח</string>
|
<string name="open">פתח</string>
|
||||||
<string name="close">סגור</string>
|
<string name="close">סגור</string>
|
||||||
|
@@ -5,10 +5,8 @@
|
|||||||
<string name="pref_plugin_battery">Akkumulátor jelentés</string>
|
<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_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">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">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_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">Ping</string>
|
||||||
<string name="pref_plugin_ping_desc">Pingek küldése és fogadása</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>
|
<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">Livello batteria</string>
|
||||||
<string name="pref_plugin_battery_desc">Comunica periodicamente lo stato della 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">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">Sincronizzazione appunti</string>
|
||||||
<string name="pref_plugin_clipboard_desc">Condividi il contenuto degli 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">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">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">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">Ping</string>
|
||||||
<string name="pref_plugin_ping_desc">Invia e ricevi 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">Sincronizzazione notifiche</string>
|
||||||
<string name="pref_plugin_notifications_desc">Consenti l\'accesso alle notifiche dagli altri dispositivi</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">Condividi e ricevi</string>
|
||||||
<string name="pref_plugin_sharereceiver_desc">Condividi file e URL tra i dispositivi</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>
|
<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="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="plugin_not_supported">Questa estensione non è supportata dal dispositivo</string>
|
||||||
<string name="findmyphone_title">Trova il mio telefono</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="findmyphone_found">Trovato</string>
|
||||||
<string name="open">Apri</string>
|
<string name="open">Apri</string>
|
||||||
<string name="close">Chiudi</string>
|
<string name="close">Chiudi</string>
|
||||||
|
@@ -5,13 +5,10 @@
|
|||||||
<string name="pref_plugin_battery">배터리 보고</string>
|
<string name="pref_plugin_battery">배터리 보고</string>
|
||||||
<string name="pref_plugin_battery_desc">주기적으로 배터리 상태 보고</string>
|
<string name="pref_plugin_battery_desc">주기적으로 배터리 상태 보고</string>
|
||||||
<string name="pref_plugin_sftp">파일 시스템 보기</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">클립보드 동기화</string>
|
||||||
<string name="pref_plugin_clipboard_desc">클립보드 내용 동기화</string>
|
<string name="pref_plugin_clipboard_desc">클립보드 내용 동기화</string>
|
||||||
<string name="pref_plugin_mousepad">원격 입력</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">멀티미디어 제어</string>
|
||||||
<string name="pref_plugin_mpris_desc">휴대폰에서 오디오/비디오 제어</string>
|
|
||||||
<string name="pref_plugin_runcommand">명령 실행</string>
|
<string name="pref_plugin_runcommand">명령 실행</string>
|
||||||
<string name="pref_plugin_ping">핑</string>
|
<string name="pref_plugin_ping">핑</string>
|
||||||
<string name="pref_plugin_ping_desc">핑 보내고 받기</string>
|
<string name="pref_plugin_ping_desc">핑 보내고 받기</string>
|
||||||
@@ -146,7 +143,6 @@
|
|||||||
<string name="pref_plugin_telepathy">SMS 보내기</string>
|
<string name="pref_plugin_telepathy">SMS 보내기</string>
|
||||||
<string name="pref_plugin_telepathy_desc">데스크톱에서 문자 메시지 보내기</string>
|
<string name="pref_plugin_telepathy_desc">데스크톱에서 문자 메시지 보내기</string>
|
||||||
<string name="plugin_not_supported">장치에서 이 플러그인을 지원하지 않습니다</string>
|
<string name="plugin_not_supported">장치에서 이 플러그인을 지원하지 않습니다</string>
|
||||||
<string name="findmyphone_description">소리를 울려서 휴대폰을 찾는 데 도움을 줍니다.</string>
|
|
||||||
<string name="findmyphone_found">찾았음</string>
|
<string name="findmyphone_found">찾았음</string>
|
||||||
<string name="open">열기</string>
|
<string name="open">열기</string>
|
||||||
<string name="close">닫기</string>
|
<string name="close">닫기</string>
|
||||||
|
@@ -41,11 +41,14 @@
|
|||||||
<string name="error_already_requested">Jau paprašyta suporuoti</string>
|
<string name="error_already_requested">Jau paprašyta suporuoti</string>
|
||||||
<string name="error_already_paired">Įrenginys jau suporuotas</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_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_user">Naudotojas atšaukė užduotį</string>
|
||||||
<string name="error_canceled_by_other_peer">Porininkas 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="error_invalid_key">Gautas netinkamas raktas</string>
|
||||||
<string name="pair_requested">Paprašyta suporuoti</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="tap_to_answer">Norėdami atsakyti, palieskite</string>
|
||||||
<string name="reconnect">Prisijungti iš naujo</string>
|
<string name="reconnect">Prisijungti iš naujo</string>
|
||||||
<string name="show_keyboard">Rodyti klaviatūrą</string>
|
<string name="show_keyboard">Rodyti klaviatūrą</string>
|
||||||
@@ -83,6 +86,7 @@
|
|||||||
<string name="pair_device_action">Suporuoti naują įrenginį</string>
|
<string name="pair_device_action">Suporuoti naują įrenginį</string>
|
||||||
<string name="unpair_device_action">Atrišti %s</string>
|
<string name="unpair_device_action">Atrišti %s</string>
|
||||||
<string name="custom_device_list">Pridėti įrenginį pagal IP</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_all_files">Visi failai</string>
|
||||||
<string name="sftp_sdcard_num">SD kortelė %d</string>
|
<string name="sftp_sdcard_num">SD kortelė %d</string>
|
||||||
<string name="sftp_sdcard">SD kortelė</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="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_paired">Įrenginys suporuotas</string>
|
||||||
<string name="device_rename_title">Pervadinti įrenginį</string>
|
<string name="device_rename_title">Pervadinti įrenginį</string>
|
||||||
<string name="device_rename_confirm">Pervadinti</string>
|
|
||||||
<string name="refresh">Atnaujinti</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="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="pref_plugin_telepathy">Siųsti SMS</string>
|
||||||
<string name="plugin_not_supported">Telefonas nepalaiko šio papildinio</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="findmyphone_found">Radau</string>
|
||||||
<string name="open">Atverti</string>
|
|
||||||
<string name="close">Užverti</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -5,19 +5,21 @@
|
|||||||
<string name="pref_plugin_battery">Batterijrapportage</string>
|
<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_battery_desc">Rapporteer periodiek de status van de batterij</string>
|
||||||
<string name="pref_plugin_sftp">Bestandssysteem blootstellen</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">Klembordsynchronisatie</string>
|
||||||
<string name="pref_plugin_clipboard_desc">De inhoud van het klembord delen</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">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">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">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">Ping</string>
|
||||||
<string name="pref_plugin_ping_desc">Pings verzenden en ontvangen</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">Synchronisatie van meldingen</string>
|
||||||
<string name="pref_plugin_notifications_desc">Bekijk uw meldingen van andere apparaten</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">Delen en Ontvangen</string>
|
||||||
<string name="pref_plugin_sharereceiver_desc">Bestanden en URL\'s delen tussen apparaten</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>
|
<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="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="plugin_not_supported">Deze plug-in wordt niet ondersteund door het apparaat</string>
|
||||||
<string name="findmyphone_title">Zoek mijn telefoon</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="findmyphone_found">Gevonden</string>
|
||||||
<string name="open">Openen</string>
|
<string name="open">Openen</string>
|
||||||
<string name="close">Sluiten</string>
|
<string name="close">Sluiten</string>
|
||||||
|
@@ -5,19 +5,21 @@
|
|||||||
<string name="pref_plugin_battery">Zgłaszanie baterii</string>
|
<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_battery_desc">Okresowo zgłaszaj stan baterii</string>
|
||||||
<string name="pref_plugin_sftp">Eksponowanie systemu plików</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">Synchronizacja schowka</string>
|
||||||
<string name="pref_plugin_clipboard_desc">Udostępnij zawartość 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">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">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">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">Ping</string>
|
||||||
<string name="pref_plugin_ping_desc">Wysyłaj i otrzymuj pingi</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">Powiadomienia synchronizacji</string>
|
||||||
<string name="pref_plugin_notifications_desc">Uzyskaj dostęp do swoich powiadomień z innego urządzenia</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">Udostępniaj i otrzymuj</string>
|
||||||
<string name="pref_plugin_sharereceiver_desc">Współdziel pliki i adresy URL pomiędzy urządzeniami</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>
|
<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="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="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_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="findmyphone_found">Znaleziony</string>
|
||||||
<string name="open">Otwórz</string>
|
<string name="open">Otwórz</string>
|
||||||
<string name="close">Zamknij</string>
|
<string name="close">Zamknij</string>
|
||||||
|
@@ -5,18 +5,19 @@
|
|||||||
<string name="pref_plugin_battery">Relatório da bateria</string>
|
<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_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">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_sftp_desc">Permite navegar no sistema de arquivos deste telefone remotamente</string>
|
||||||
<string name="pref_plugin_clipboard">Sincronização da área de transferência</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_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">Introdução de dados remota</string>
|
||||||
<string name="pref_plugin_mousepad_desc">Use seu telefone como mouse ou teclado</string>
|
<string name="pref_plugin_mousepad_desc">Use seu telefone ou tablet como mouse e teclado</string>
|
||||||
<string name="pref_plugin_mpris">Controle multimídia</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_mpris_desc">Fornece um controle remoto de seu reprodutor de mídia</string>
|
||||||
<string name="pref_plugin_runcommand">Executar comando</string>
|
<string name="pref_plugin_runcommand">Executar comando</string>
|
||||||
<string name="pref_plugin_ping">Ping</string>
|
<string name="pref_plugin_ping">Ping</string>
|
||||||
<string name="pref_plugin_ping_desc">Envia e recebe pings</string>
|
<string name="pref_plugin_ping_desc">Envia e recebe pings</string>
|
||||||
<string name="pref_plugin_notifications">Sincronização de notificações</string>
|
<string name="pref_plugin_notifications">Sincronização de notificações</string>
|
||||||
<string name="pref_plugin_notifications_desc">Acesse suas notificações a partir de outros dispositivos</string>
|
<string name="pref_plugin_notifications_desc">Acesse suas notificações a partir de outros dispositivos</string>
|
||||||
|
<string name="pref_plugin_receive_notifications">Receber notificações</string>
|
||||||
<string name="pref_plugin_sharereceiver">Compartilhar e receber</string>
|
<string name="pref_plugin_sharereceiver">Compartilhar e receber</string>
|
||||||
<string name="pref_plugin_sharereceiver_desc">Compartilha arquivos e URLs entre os dispositivos</string>
|
<string name="pref_plugin_sharereceiver_desc">Compartilha arquivos e URLs entre os dispositivos</string>
|
||||||
<string name="plugin_not_available">Esta funcionalidade não está disponível na sua versão do Android</string>
|
<string name="plugin_not_available">Esta funcionalidade não está disponível na sua versão do Android</string>
|
||||||
@@ -65,6 +66,7 @@
|
|||||||
<string name="error_canceled_by_user">Cancelado pelo usuário</string>
|
<string name="error_canceled_by_user">Cancelado pelo usuário</string>
|
||||||
<string name="error_canceled_by_other_peer">Cancelado pelo outro dispositivo</string>
|
<string name="error_canceled_by_other_peer">Cancelado pelo outro dispositivo</string>
|
||||||
<string name="error_invalid_key">Chave inválida recebida</string>
|
<string name="error_invalid_key">Chave inválida recebida</string>
|
||||||
|
<string name="encryption_info_title">Informação da criptografia</string>
|
||||||
<string name="pair_requested">Solicitação de emparelhamento</string>
|
<string name="pair_requested">Solicitação de emparelhamento</string>
|
||||||
<string name="pairing_request_from">Emparelhamento solicitado por %1s</string>
|
<string name="pairing_request_from">Emparelhamento solicitado por %1s</string>
|
||||||
<string name="received_url_title">Link recebido de %1s</string>
|
<string name="received_url_title">Link recebido de %1s</string>
|
||||||
@@ -150,7 +152,8 @@
|
|||||||
<string name="pref_plugin_telepathy">Enviar SMS</string>
|
<string name="pref_plugin_telepathy">Enviar SMS</string>
|
||||||
<string name="pref_plugin_telepathy_desc">Enviar mensagens de texto do seu Desktop</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="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_title">Encontrar meu telefone</string>
|
||||||
|
<string name="findmyphone_title_tablet">Encontrar meu tablet</string>
|
||||||
<string name="findmyphone_found">Encontrado</string>
|
<string name="findmyphone_found">Encontrado</string>
|
||||||
<string name="open">Abrir</string>
|
<string name="open">Abrir</string>
|
||||||
<string name="close">Fechar</string>
|
<string name="close">Fechar</string>
|
||||||
|
@@ -5,19 +5,21 @@
|
|||||||
<string name="pref_plugin_battery">Relatório da bateria</string>
|
<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_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">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">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_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">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">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">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">Contacto</string>
|
||||||
<string name="pref_plugin_ping_desc">Enviar e receber pedidos de contacto (\'ping\')</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">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_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">Partilhar e receber</string>
|
||||||
<string name="pref_plugin_sharereceiver_desc">Partilhar ficheiros e URL\'s entre dispositivos</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>
|
<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-array>
|
||||||
<string name="mousepad_double_default">direita</string>
|
<string name="mousepad_double_default">direita</string>
|
||||||
<string name="mousepad_triple_default">meio</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">
|
<string-array name="mousepad_sensitivity_entries">
|
||||||
<item>Mais Lento</item>
|
<item>Mais Lenta</item>
|
||||||
<item>Ainda Mais Lento</item>
|
<item>Ainda Mais Lenta</item>
|
||||||
<item>Predefinição</item>
|
<item>Predefinição</item>
|
||||||
<item>Acima da Predefinição</item>
|
<item>Acima da Predefinição</item>
|
||||||
<item>Mais Rápido</item>
|
<item>Mais Rápida</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string name="category_connected_devices">Dispositivos ligados</string>
|
<string name="category_connected_devices">Dispositivos ligados</string>
|
||||||
<string name="category_not_paired_devices">Dispositivos disponíveis</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_user">Cancelado pelo utilizador</string>
|
||||||
<string name="error_canceled_by_other_peer">Cancelado pela outra máquina</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="error_invalid_key">Chave inválida recebida</string>
|
||||||
<string name="encryption_info_title">Dados 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; será usado o método antigo 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="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="remote_device_fingerprint">A impressão digital SHA1 do certificado do dispositivo remoto é:</string>
|
||||||
<string name="pair_requested">Emparelhamento pedido</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="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="plugin_not_supported">Este \'plugin\' não é suportado pelo dispositivo</string>
|
||||||
<string name="findmyphone_title">Descobrir o meu telefone</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="findmyphone_found">Encontrado</string>
|
||||||
<string name="open">Abrir</string>
|
<string name="open">Abrir</string>
|
||||||
<string name="close">Fechar</string>
|
<string name="close">Fechar</string>
|
||||||
|
@@ -5,10 +5,8 @@
|
|||||||
<string name="pref_plugin_battery">Raport acumulator</string>
|
<string name="pref_plugin_battery">Raport acumulator</string>
|
||||||
<string name="pref_plugin_battery_desc">Raportează periodic starea acumulatorului</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">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">Sincronizare clipboard</string>
|
||||||
<string name="pref_plugin_clipboard_desc">Partajează conținutul clipboardului</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">Ping</string>
|
||||||
<string name="pref_plugin_ping_desc">Trimite și primește ping-uri</string>
|
<string name="pref_plugin_ping_desc">Trimite și primește ping-uri</string>
|
||||||
<string name="pref_plugin_notifications">Sincronizare notificări</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">Состояние батареи</string>
|
||||||
<string name="pref_plugin_battery_desc">Периодическое информирование о состоянии батареи</string>
|
<string name="pref_plugin_battery_desc">Периодическое информирование о состоянии батареи</string>
|
||||||
<string name="pref_plugin_sftp">Просмотр файловой системы</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">Синхронизация буфера обмена</string>
|
||||||
<string name="pref_plugin_clipboard_desc">Использование общего буфера обмена</string>
|
<string name="pref_plugin_clipboard_desc">Использование общего буфера обмена</string>
|
||||||
<string name="pref_plugin_mousepad">Удалённый ввод</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">Управление воспроизведением</string>
|
||||||
<string name="pref_plugin_mpris_desc">Управление медиапроигрывателем с телефона</string>
|
|
||||||
<string name="pref_plugin_runcommand">Запуск команд</string>
|
<string name="pref_plugin_runcommand">Запуск команд</string>
|
||||||
<string name="pref_plugin_ping">Пинг</string>
|
<string name="pref_plugin_ping">Пинг</string>
|
||||||
<string name="pref_plugin_ping_desc">Отправка и получение тестовых сигналов</string>
|
<string name="pref_plugin_ping_desc">Отправка и получение тестовых сигналов</string>
|
||||||
@@ -146,7 +143,6 @@
|
|||||||
<string name="pref_plugin_telepathy">Отправка SMS</string>
|
<string name="pref_plugin_telepathy">Отправка SMS</string>
|
||||||
<string name="pref_plugin_telepathy_desc">Отправка SMS-сообщений с вашего компьютера</string>
|
<string name="pref_plugin_telepathy_desc">Отправка SMS-сообщений с вашего компьютера</string>
|
||||||
<string name="plugin_not_supported">Этот модуль не поддерживается устройством</string>
|
<string name="plugin_not_supported">Этот модуль не поддерживается устройством</string>
|
||||||
<string name="findmyphone_description">Подача звукового сигнала на телефоне, чтобы вы могли его найти.</string>
|
|
||||||
<string name="findmyphone_found">Найден</string>
|
<string name="findmyphone_found">Найден</string>
|
||||||
<string name="open">Открыть</string>
|
<string name="open">Открыть</string>
|
||||||
<string name="close">Закрыть</string>
|
<string name="close">Закрыть</string>
|
||||||
|
@@ -5,19 +5,21 @@
|
|||||||
<string name="pref_plugin_battery">Oznam o batérii</string>
|
<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_battery_desc">Periodicky oznamovať stav batérie</string>
|
||||||
<string name="pref_plugin_sftp">Odhaliť súborový systém</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_sftp_desc">Umožní prehliadač súborový systém zariadenia vzdialene</string>
|
||||||
<string name="pref_plugin_clipboard">Synchronizácia schránky</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_clipboard_desc">Zdieľať obsah schránky</string>
|
||||||
<string name="pref_plugin_mousepad">Vzdialený vstup</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_mousepad_desc">Použiť váš telefón alebo tablet ako touchpad a klávesnicu</string>
|
||||||
<string name="pref_plugin_mpris">Multimediálne ovládače</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_mpris_desc">Poskytuje vzdialené ovládanie pre váš prehrávač médií</string>
|
||||||
<string name="pref_plugin_runcommand">Spustiť príkaz</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_runcommand_desc">Vyvolať vzdialené príkazy z vášho mobilu alebo tabletu</string>
|
||||||
<string name="pref_plugin_ping">Ping</string>
|
<string name="pref_plugin_ping">Ping</string>
|
||||||
<string name="pref_plugin_ping_desc">Poslať a prijať pingy</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">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_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_receive_notifications_desc">Prístup k pripomienkam z iných zariadení a zobrazenie ich na Androide</string>
|
||||||
<string name="pref_plugin_sharereceiver">Zdieľať a prijať</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="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>
|
<string name="plugin_not_available">Táto funkcia nie je dostupná vo vašej verzii Androidu</string>
|
||||||
@@ -156,7 +158,8 @@
|
|||||||
<string name="pref_plugin_telepathy_desc">Posielať textové správy z vášho počítača</string>
|
<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="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_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_title_tablet">Nájsť môj tablet</string>
|
||||||
|
<string name="findmyphone_description">Prezvoní vaše zariadenie, aby ste ho našli</string>
|
||||||
<string name="findmyphone_found">Nájdené</string>
|
<string name="findmyphone_found">Nájdené</string>
|
||||||
<string name="open">Otvoriť</string>
|
<string name="open">Otvoriť</string>
|
||||||
<string name="close">Zavrieť</string>
|
<string name="close">Zavrieť</string>
|
||||||
|
@@ -5,19 +5,21 @@
|
|||||||
<string name="pref_plugin_battery">Batterirapport</string>
|
<string name="pref_plugin_battery">Batterirapport</string>
|
||||||
<string name="pref_plugin_battery_desc">Rapportera periodiskt batteriets status</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">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">Synkronisera klippbord</string>
|
||||||
<string name="pref_plugin_clipboard_desc">Dela klippbordets innehåll</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">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">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">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">Ping</string>
|
||||||
<string name="pref_plugin_ping_desc">Skicka och ta emot 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">Synkronisering av underrättelser</string>
|
||||||
<string name="pref_plugin_notifications_desc">Kom åt underrättelser från andra apparater</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">Dela och ta emot</string>
|
||||||
<string name="pref_plugin_sharereceiver_desc">Dela filer och webbadresser mellan apparater</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>
|
<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="pref_plugin_telepathy_desc">Skicka textmeddelanden från skrivbordet</string>
|
||||||
<string name="plugin_not_supported">Insticksprogrammet stöds inte av apparaten</string>
|
<string name="plugin_not_supported">Insticksprogrammet stöds inte av apparaten</string>
|
||||||
<string name="findmyphone_title">Hitta min telefon</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="findmyphone_found">Hittade den</string>
|
||||||
<string name="open">Öppna</string>
|
<string name="open">Öppna</string>
|
||||||
<string name="close">Stäng</string>
|
<string name="close">Stäng</string>
|
||||||
|
@@ -5,19 +5,21 @@
|
|||||||
<string name="pref_plugin_battery">Звіт щодо заряду</string>
|
<string name="pref_plugin_battery">Звіт щодо заряду</string>
|
||||||
<string name="pref_plugin_battery_desc">Періодична інформація щодо стану акумулятора</string>
|
<string name="pref_plugin_battery_desc">Періодична інформація щодо стану акумулятора</string>
|
||||||
<string name="pref_plugin_sftp">Показ файлової системи</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">Синхронізація буфера</string>
|
||||||
<string name="pref_plugin_clipboard_desc">Спільне використання буфера обміну даними</string>
|
<string name="pref_plugin_clipboard_desc">Спільне використання буфера обміну даними</string>
|
||||||
<string name="pref_plugin_mousepad">Дистанційне введення</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">Керування відтворенням</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">Виконати команду</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">Підтримання зв’язку</string>
|
||||||
<string name="pref_plugin_ping_desc">Надсилання і отримання сигналів підтримання зв’язку</string>
|
<string name="pref_plugin_ping_desc">Надсилання і отримання сигналів підтримання зв’язку</string>
|
||||||
<string name="pref_plugin_notifications">Синхронізація сповіщень</string>
|
<string name="pref_plugin_notifications">Синхронізація сповіщень</string>
|
||||||
<string name="pref_plugin_notifications_desc">Доступ до ваших сповіщень з інших пристроїв</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">Надання і отримання</string>
|
||||||
<string name="pref_plugin_sharereceiver_desc">Спільне використання файлів і адрес між пристроями</string>
|
<string name="pref_plugin_sharereceiver_desc">Спільне використання файлів і адрес між пристроями</string>
|
||||||
<string name="plugin_not_available">Ця можливість є недоступною для вашої версії для Android</string>
|
<string name="plugin_not_available">Ця можливість є недоступною для вашої версії для Android</string>
|
||||||
@@ -156,7 +158,8 @@
|
|||||||
<string name="pref_plugin_telepathy_desc">Надсилати текстові повідомлення з вашої робочої станції</string>
|
<string name="pref_plugin_telepathy_desc">Надсилати текстові повідомлення з вашої робочої станції</string>
|
||||||
<string name="plugin_not_supported">Підтримки цього додатка не передбачено на пристрої</string>
|
<string name="plugin_not_supported">Підтримки цього додатка не передбачено на пристрої</string>
|
||||||
<string name="findmyphone_title">Знайти телефон</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="findmyphone_found">Знайдено</string>
|
||||||
<string name="open">Відкрити</string>
|
<string name="open">Відкрити</string>
|
||||||
<string name="close">Закрити</string>
|
<string name="close">Закрити</string>
|
||||||
|
@@ -5,13 +5,10 @@
|
|||||||
<string name="pref_plugin_battery">电池报告</string>
|
<string name="pref_plugin_battery">电池报告</string>
|
||||||
<string name="pref_plugin_battery_desc">定期报告电池状态</string>
|
<string name="pref_plugin_battery_desc">定期报告电池状态</string>
|
||||||
<string name="pref_plugin_sftp">开放文件系统</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">剪贴板同步</string>
|
||||||
<string name="pref_plugin_clipboard_desc">共享剪贴板内容</string>
|
<string name="pref_plugin_clipboard_desc">共享剪贴板内容</string>
|
||||||
<string name="pref_plugin_mousepad">远程输入</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">多媒体控制</string>
|
||||||
<string name="pref_plugin_mpris_desc">从手机控制音频或视频</string>
|
|
||||||
<string name="pref_plugin_runcommand">执行命令</string>
|
<string name="pref_plugin_runcommand">执行命令</string>
|
||||||
<string name="pref_plugin_ping">Ping</string>
|
<string name="pref_plugin_ping">Ping</string>
|
||||||
<string name="pref_plugin_ping_desc">发送和接受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">发送短消息</string>
|
||||||
<string name="pref_plugin_telepathy_desc">从桌面发送短消息</string>
|
<string name="pref_plugin_telepathy_desc">从桌面发送短消息</string>
|
||||||
<string name="plugin_not_supported">设备不支持此插件</string>
|
<string name="plugin_not_supported">设备不支持此插件</string>
|
||||||
<string name="findmyphone_description">让手机响铃从而找到它</string>
|
|
||||||
<string name="findmyphone_found">找到</string>
|
<string name="findmyphone_found">找到</string>
|
||||||
<string name="open">打开</string>
|
|
||||||
<string name="close">关闭</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
22
res/values-zh-rTW/strings.xml
Normal file
22
res/values-zh-rTW/strings.xml
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<resources>
|
||||||
|
<string-array name="mousepad_tap_entries">
|
||||||
|
<item>Right click</item>
|
||||||
|
<item>Middle click</item>
|
||||||
|
<item>Nothing</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="mousepad_sensitivity_entries">
|
||||||
|
<item>Slowest</item>
|
||||||
|
<item>Above Slowest</item>
|
||||||
|
<item>Default</item>
|
||||||
|
<item>Above Default</item>
|
||||||
|
<item>Fastest</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="mpris_time_entries">
|
||||||
|
<item>10 seconds</item>
|
||||||
|
<item>20 seconds</item>
|
||||||
|
<item>30 seconds</item>
|
||||||
|
<item>1 minute</item>
|
||||||
|
<item>2 minutes</item>
|
||||||
|
</string-array>
|
||||||
|
</resources>
|
@@ -6,21 +6,21 @@
|
|||||||
<string name="pref_plugin_battery">Battery report</string>
|
<string name="pref_plugin_battery">Battery report</string>
|
||||||
<string name="pref_plugin_battery_desc">Periodically report battery status</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">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">Clipboard sync</string>
|
||||||
<string name="pref_plugin_clipboard_desc">Share the clipboard content</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">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">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">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">Ping</string>
|
||||||
<string name="pref_plugin_ping_desc">Send and receive pings</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">Notification sync</string>
|
||||||
<string name="pref_plugin_notifications_desc">Access your notifications from other devices</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">Receive notifications</string>
|
||||||
<string name="pref_plugin_receive_notifications_desc">Receive notifications from other devices</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">Share and receive</string>
|
||||||
<string name="pref_plugin_sharereceiver_desc">Share files and URLs between devices</string>
|
<string name="pref_plugin_sharereceiver_desc">Share files and URLs between devices</string>
|
||||||
<string name="plugin_not_available">This feature is not available in your Android version</string>
|
<string name="plugin_not_available">This feature is not available in your Android version</string>
|
||||||
@@ -185,7 +185,8 @@
|
|||||||
<string name="pref_plugin_telepathy_desc">Send text messages from your desktop</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="plugin_not_supported">This plugin is not supported by the device</string>
|
||||||
<string name="findmyphone_title">Find my phone</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="findmyphone_found">Found</string>
|
||||||
|
|
||||||
<string name="open">Open</string>
|
<string name="open">Open</string>
|
||||||
|
@@ -54,20 +54,14 @@ public abstract class BasePairingHandler {
|
|||||||
|
|
||||||
|
|
||||||
protected Device mDevice;
|
protected Device mDevice;
|
||||||
protected BaseLink mBaseLink;
|
|
||||||
protected PairStatus mPairStatus;
|
protected PairStatus mPairStatus;
|
||||||
protected PairingHandlerCallback mCallback;
|
protected PairingHandlerCallback mCallback;
|
||||||
protected Timer mPairingTimer;
|
|
||||||
|
|
||||||
public BasePairingHandler(Device device, PairingHandlerCallback callback) {
|
public BasePairingHandler(Device device, PairingHandlerCallback callback) {
|
||||||
this.mDevice = device;
|
this.mDevice = device;
|
||||||
this.mCallback = callback;
|
this.mCallback = callback;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setLink(BaseLink baseLink) {
|
|
||||||
this.mBaseLink = baseLink;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isPaired() {
|
public boolean isPaired() {
|
||||||
return mPairStatus == PairStatus.Paired;
|
return mPairStatus == PairStatus.Paired;
|
||||||
}
|
}
|
||||||
@@ -81,12 +75,10 @@ public abstract class BasePairingHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* To be implemented by respective pairing handler */
|
/* To be implemented by respective pairing handler */
|
||||||
public abstract NetworkPackage createPairPackage();
|
|
||||||
public abstract void packageReceived(NetworkPackage np) throws Exception;
|
public abstract void packageReceived(NetworkPackage np) throws Exception;
|
||||||
public abstract void requestPairing();
|
public abstract void requestPairing();
|
||||||
public abstract void acceptPairing();
|
public abstract void acceptPairing();
|
||||||
public abstract void rejectPairing();
|
public abstract void rejectPairing();
|
||||||
public abstract void pairingDone();
|
|
||||||
public abstract void unpair();
|
public abstract void unpair();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -246,7 +246,6 @@ public class LanLink extends BaseLink {
|
|||||||
@Override
|
@Override
|
||||||
public void sendPackage(NetworkPackage np,Device.SendPackageStatusCallback callback) {
|
public void sendPackage(NetworkPackage np,Device.SendPackageStatusCallback callback) {
|
||||||
sendPackageInternal(np, callback, null);
|
sendPackageInternal(np, callback, null);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//Blocking, do not call from main thread
|
//Blocking, do not call from main thread
|
||||||
@@ -270,13 +269,13 @@ public class LanLink extends BaseLink {
|
|||||||
|
|
||||||
Socket payloadSocket = new Socket();
|
Socket payloadSocket = new Socket();
|
||||||
try {
|
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
|
// Use ssl if existing link is on ssl
|
||||||
if (socket instanceof SSLSocket) {
|
if (socket instanceof SSLSocket) {
|
||||||
payloadSocket = SslHelper.convertToSslSocket(context, payloadSocket, getDeviceId(), true, true);
|
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());
|
np.setPayload(payloadSocket.getInputStream(), np.getPayloadSize());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
try { payloadSocket.close(); } catch(Exception ignored) { }
|
try { payloadSocket.close(); } catch(Exception ignored) { }
|
||||||
@@ -292,16 +291,11 @@ public class LanLink extends BaseLink {
|
|||||||
@Override
|
@Override
|
||||||
public boolean linkShouldBeKeptAlive() {
|
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
|
//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
|
//pairing to us, or connections that are already paired.
|
||||||
|
//return (connectionSource == ConnectionStarted.Remotely);
|
||||||
if (connectionSource == ConnectionStarted.Remotely) {
|
|
||||||
//Log.e("LinkShouldBeKeptAlive", "because the other end started the connection");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Log.e("LinkShouldBeKeptAlive", "false");
|
|
||||||
return false;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -198,6 +198,20 @@ public class LanLinkProvider extends BaseLinkProvider implements LanLink.LinkDis
|
|||||||
SharedPreferences preferences = context.getSharedPreferences("trusted_devices", Context.MODE_PRIVATE);
|
SharedPreferences preferences = context.getSharedPreferences("trusted_devices", Context.MODE_PRIVATE);
|
||||||
boolean isDeviceTrusted = preferences.getBoolean(deviceId, false);
|
boolean isDeviceTrusted = preferences.getBoolean(deviceId, false);
|
||||||
|
|
||||||
|
if (isDeviceTrusted && !SslHelper.isCertificateStored(context, deviceId)) {
|
||||||
|
//Device paired with and old version, we can't use it as we lack the certificate
|
||||||
|
BackgroundService.RunCommand(context, new BackgroundService.InstanceCallback() {
|
||||||
|
@Override
|
||||||
|
public void onServiceStart(BackgroundService service) {
|
||||||
|
Device device = service.getDevice(deviceId);
|
||||||
|
if (device == null) return;
|
||||||
|
device.unpair();
|
||||||
|
//Retry as unpaired
|
||||||
|
identityPackageReceived(identityPackage, socket, connectionStarted);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
Log.i("KDE/LanLinkProvider","Starting SSL handshake with " + identityPackage.getString("deviceName") + " trusted:"+isDeviceTrusted);
|
Log.i("KDE/LanLinkProvider","Starting SSL handshake with " + identityPackage.getString("deviceName") + " trusted:"+isDeviceTrusted);
|
||||||
|
|
||||||
final SSLSocket sslsocket = SslHelper.convertToSslSocket(context, socket, deviceId, isDeviceTrusted, clientMode);
|
final SSLSocket sslsocket = SslHelper.convertToSslSocket(context, socket, deviceId, isDeviceTrusted, clientMode);
|
||||||
@@ -231,7 +245,13 @@ public class LanLinkProvider extends BaseLinkProvider implements LanLink.LinkDis
|
|||||||
try {
|
try {
|
||||||
sslsocket.startHandshake();
|
sslsocket.startHandshake();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
Log.e("KDE/LanLinkProvider","Handshake failed with " + identityPackage.getString("deviceName"));
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|
||||||
|
//String[] ciphers = sslsocket.getSupportedCipherSuites();
|
||||||
|
//for (String cipher : ciphers) {
|
||||||
|
// Log.i("SupportedCiphers","cipher: " + cipher);
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}).start();
|
}).start();
|
||||||
|
@@ -39,6 +39,8 @@ import java.util.TimerTask;
|
|||||||
|
|
||||||
public class LanPairingHandler extends BasePairingHandler {
|
public class LanPairingHandler extends BasePairingHandler {
|
||||||
|
|
||||||
|
private Timer mPairingTimer;
|
||||||
|
|
||||||
public LanPairingHandler(Device device, final PairingHandlerCallback callback) {
|
public LanPairingHandler(Device device, final PairingHandlerCallback callback) {
|
||||||
super(device, callback);
|
super(device, callback);
|
||||||
|
|
||||||
@@ -49,8 +51,7 @@ public class LanPairingHandler extends BasePairingHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
private NetworkPackage createPairPackage() {
|
||||||
public NetworkPackage createPairPackage() {
|
|
||||||
NetworkPackage np = new NetworkPackage(NetworkPackage.PACKAGE_TYPE_PAIR);
|
NetworkPackage np = new NetworkPackage(NetworkPackage.PACKAGE_TYPE_PAIR);
|
||||||
np.set("pair", true);
|
np.set("pair", true);
|
||||||
SharedPreferences globalSettings = PreferenceManager.getDefaultSharedPreferences(mDevice.getContext());
|
SharedPreferences globalSettings = PreferenceManager.getDefaultSharedPreferences(mDevice.getContext());
|
||||||
@@ -196,7 +197,6 @@ public class LanPairingHandler extends BasePairingHandler {
|
|||||||
mDevice.sendPackage(np);
|
mDevice.sendPackage(np);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void pairingDone() {
|
public void pairingDone() {
|
||||||
// Store device information needed to create a Device object in a future
|
// Store device information needed to create a Device object in a future
|
||||||
//Log.e("KDE/PairingDone", "Pairing Done");
|
//Log.e("KDE/PairingDone", "Pairing Done");
|
||||||
|
@@ -20,13 +20,45 @@
|
|||||||
|
|
||||||
package org.kde.kdeconnect.Backends.LoopbackBackend;
|
package org.kde.kdeconnect.Backends.LoopbackBackend;
|
||||||
|
|
||||||
import org.kde.kdeconnect.Backends.LanBackend.LanPairingHandler;
|
import android.util.Log;
|
||||||
import org.kde.kdeconnect.Device;
|
|
||||||
|
|
||||||
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) {
|
public LoopbackPairingHandler(Device device, PairingHandlerCallback callback) {
|
||||||
super(device, 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() {
|
private void registerLinkProviders() {
|
||||||
|
|
||||||
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
|
//linkProviders.add(new LoopbackLinkProvider(this));
|
||||||
|
|
||||||
//if (settings.getBoolean("loopback_link", true)) {
|
linkProviders.add(new LanLinkProvider(this));
|
||||||
// linkProviders.add(new LoopbackLinkProvider(this));
|
|
||||||
//}
|
|
||||||
|
|
||||||
if (settings.getBoolean("lan_link", true)) {
|
|
||||||
linkProviders.add(new LanLinkProvider(this));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -37,7 +37,6 @@ import android.util.Log;
|
|||||||
import org.kde.kdeconnect.Backends.BaseLink;
|
import org.kde.kdeconnect.Backends.BaseLink;
|
||||||
import org.kde.kdeconnect.Backends.BasePairingHandler;
|
import org.kde.kdeconnect.Backends.BasePairingHandler;
|
||||||
import org.kde.kdeconnect.Backends.LanBackend.LanLinkProvider;
|
import org.kde.kdeconnect.Backends.LanBackend.LanLinkProvider;
|
||||||
import org.kde.kdeconnect.Helpers.ObjectsHelper;
|
|
||||||
import org.kde.kdeconnect.Helpers.SecurityHelpers.SslHelper;
|
import org.kde.kdeconnect.Helpers.SecurityHelpers.SslHelper;
|
||||||
import org.kde.kdeconnect.Plugins.Plugin;
|
import org.kde.kdeconnect.Plugins.Plugin;
|
||||||
import org.kde.kdeconnect.Plugins.PluginFactory;
|
import org.kde.kdeconnect.Plugins.PluginFactory;
|
||||||
@@ -51,12 +50,12 @@ import java.security.cert.Certificate;
|
|||||||
import java.security.spec.PKCS8EncodedKeySpec;
|
import java.security.spec.PKCS8EncodedKeySpec;
|
||||||
import java.security.spec.X509EncodedKeySpec;
|
import java.security.spec.X509EncodedKeySpec;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.Vector;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.concurrent.CopyOnWriteArrayList;
|
import java.util.concurrent.CopyOnWriteArrayList;
|
||||||
|
|
||||||
@@ -71,8 +70,6 @@ public class Device implements BaseLink.PackageReceiver {
|
|||||||
private int notificationId;
|
private int notificationId;
|
||||||
private int protocolVersion;
|
private int protocolVersion;
|
||||||
|
|
||||||
private static final int MIN_VERSION_WITH_CAPPABILITIES_SUPPORT = 6;
|
|
||||||
|
|
||||||
private DeviceType deviceType;
|
private DeviceType deviceType;
|
||||||
private PairStatus pairStatus;
|
private PairStatus pairStatus;
|
||||||
|
|
||||||
@@ -81,25 +78,13 @@ public class Device implements BaseLink.PackageReceiver {
|
|||||||
|
|
||||||
private final CopyOnWriteArrayList<BaseLink> links = new CopyOnWriteArrayList<>();
|
private final CopyOnWriteArrayList<BaseLink> links = new CopyOnWriteArrayList<>();
|
||||||
|
|
||||||
private ArrayList<String> incomingCapabilities = new ArrayList<>();
|
private List<String> m_supportedPlugins = new ArrayList<>();
|
||||||
private ArrayList<String> outgoingCapabilities = new ArrayList<>();
|
|
||||||
|
|
||||||
private final ConcurrentHashMap<String, Plugin> plugins = new ConcurrentHashMap<>();
|
private final ConcurrentHashMap<String, Plugin> plugins = new ConcurrentHashMap<>();
|
||||||
private final ConcurrentHashMap<String, Plugin> failedPlugins = new ConcurrentHashMap<>();
|
private final ConcurrentHashMap<String, Plugin> failedPlugins = new ConcurrentHashMap<>();
|
||||||
|
private Map<String, ArrayList<String>> pluginsByIncomingInterface;
|
||||||
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 final SharedPreferences settings;
|
private final SharedPreferences settings;
|
||||||
|
|
||||||
public ArrayList<String> getUnsupportedPlugins() {
|
|
||||||
return unsupportedPlugins;
|
|
||||||
}
|
|
||||||
|
|
||||||
private final CopyOnWriteArrayList<PluginsChangedListener> pluginsChangedListeners = new CopyOnWriteArrayList<>();
|
private final CopyOnWriteArrayList<PluginsChangedListener> pluginsChangedListeners = new CopyOnWriteArrayList<>();
|
||||||
|
|
||||||
public interface PluginsChangedListener {
|
public interface PluginsChangedListener {
|
||||||
@@ -161,7 +146,11 @@ public class Device implements BaseLink.PackageReceiver {
|
|||||||
Log.e("KDE/Device","Exception deserializing stored public key for device");
|
Log.e("KDE/Device","Exception deserializing stored public key for device");
|
||||||
}
|
}
|
||||||
|
|
||||||
reloadPluginsFromSettings();
|
//Assume every plugin is supported until addLink is called and we can get the actual list
|
||||||
|
m_supportedPlugins = new Vector<>(PluginFactory.getAvailablePlugins());
|
||||||
|
|
||||||
|
//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
|
//Device known via an incoming connection sent to us via a devicelink, we know everything but we don't trust it yet
|
||||||
@@ -298,7 +287,6 @@ public class Device implements BaseLink.PackageReceiver {
|
|||||||
SharedPreferences preferences = context.getSharedPreferences("trusted_devices", Context.MODE_PRIVATE);
|
SharedPreferences preferences = context.getSharedPreferences("trusted_devices", Context.MODE_PRIVATE);
|
||||||
preferences.edit().remove(deviceId).apply();
|
preferences.edit().remove(deviceId).apply();
|
||||||
|
|
||||||
// FIXME : We delete all device info here, but the xml file still persists
|
|
||||||
SharedPreferences devicePreferences = context.getSharedPreferences(deviceId, Context.MODE_PRIVATE);
|
SharedPreferences devicePreferences = context.getSharedPreferences(deviceId, Context.MODE_PRIVATE);
|
||||||
devicePreferences.edit().clear().apply();
|
devicePreferences.edit().clear().apply();
|
||||||
|
|
||||||
@@ -491,22 +479,19 @@ public class Device implements BaseLink.PackageReceiver {
|
|||||||
};
|
};
|
||||||
pairingHandlers.put(link.getName(), link.getPairingHandler(this, callback));
|
pairingHandlers.put(link.getName(), link.getPairingHandler(this, callback));
|
||||||
}
|
}
|
||||||
pairingHandlers.get(link.getName()).setLink(link);
|
|
||||||
|
|
||||||
/*
|
Set<String> outgoingCapabilities = identityPackage.getStringSet("outgoingCapabilities", null);
|
||||||
Collections.sort(links, new Comparator<BaseLink>() {
|
Set<String> incomingCapabilities = identityPackage.getStringSet("incomingCapabilities", null);
|
||||||
@Override
|
if (incomingCapabilities != null && outgoingCapabilities != null) {
|
||||||
public int compare(BaseLink o, BaseLink o2) {
|
m_supportedPlugins = new Vector<>(PluginFactory.pluginsForCapabilities(context, incomingCapabilities, outgoingCapabilities));
|
||||||
return o2.getLinkProvider().getPriority() - o.getLinkProvider().getPriority();
|
} else {
|
||||||
}
|
m_supportedPlugins = new Vector<>(PluginFactory.getAvailablePlugins());
|
||||||
});
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
link.addPackageReceiver(this);
|
link.addPackageReceiver(this);
|
||||||
|
|
||||||
if (links.size() == 1) {
|
reloadPluginsFromSettings();
|
||||||
reloadPluginsFromSettings();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeLink(BaseLink link) {
|
public void removeLink(BaseLink link) {
|
||||||
@@ -549,16 +534,6 @@ public class Device implements BaseLink.PackageReceiver {
|
|||||||
Log.e("PairingPackageReceived","Exception");
|
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()) {
|
} else if (isPaired()) {
|
||||||
|
|
||||||
//If capabilities are not supported, iterate all plugins
|
//If capabilities are not supported, iterate all plugins
|
||||||
@@ -643,10 +618,13 @@ public class Device implements BaseLink.PackageReceiver {
|
|||||||
|
|
||||||
hackToMakeRetrocompatiblePacketTypes(np);
|
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", "Sending package...");
|
||||||
//Log.e("sendPackage", np.serialize());
|
//Log.e("sendPackage", np.serialize());
|
||||||
@@ -713,7 +691,8 @@ public class Device implements BaseLink.PackageReceiver {
|
|||||||
final Plugin plugin = PluginFactory.instantiatePluginForDevice(context, pluginKey, this);
|
final Plugin plugin = PluginFactory.instantiatePluginForDevice(context, pluginKey, this);
|
||||||
if (plugin == null) {
|
if (plugin == null) {
|
||||||
Log.e("KDE/addPlugin","could not instantiate plugin: "+pluginKey);
|
Log.e("KDE/addPlugin","could not instantiate plugin: "+pluginKey);
|
||||||
failedPlugins.put(pluginKey, null);
|
//Can't put a null
|
||||||
|
//failedPlugins.put(pluginKey, null);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -774,29 +753,15 @@ public class Device implements BaseLink.PackageReceiver {
|
|||||||
return enabled;
|
return enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasPluginsLoaded() {
|
|
||||||
return !plugins.isEmpty() || !failedPlugins.isEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void reloadPluginsFromSettings() {
|
public void reloadPluginsFromSettings() {
|
||||||
|
|
||||||
failedPlugins.clear();
|
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>> newPluginsByIncomingInterface = new HashMap<>();
|
||||||
HashMap<String, ArrayList<String>> newPluginsByOutgoingInterface = new HashMap<>();
|
|
||||||
|
|
||||||
final boolean supportsCapabilities = (protocolVersion >= MIN_VERSION_WITH_CAPPABILITIES_SUPPORT);
|
for (String pluginKey : m_supportedPlugins) {
|
||||||
|
|
||||||
for (String pluginKey : availablePlugins) {
|
|
||||||
|
|
||||||
PluginFactory.PluginInfo pluginInfo = PluginFactory.getPluginInfo(context, pluginKey);
|
PluginFactory.PluginInfo pluginInfo = PluginFactory.getPluginInfo(context, pluginKey);
|
||||||
Set<String> incomingInterfaces = pluginInfo.getSupportedPackageTypes();
|
|
||||||
Set<String> outgoingInterfaces = pluginInfo.getOutgoingPackageTypes();
|
|
||||||
|
|
||||||
boolean pluginEnabled = false;
|
boolean pluginEnabled = false;
|
||||||
boolean listenToUnpaired = pluginInfo.listenToUnpaired();
|
boolean listenToUnpaired = pluginInfo.listenToUnpaired();
|
||||||
@@ -804,48 +769,16 @@ public class Device implements BaseLink.PackageReceiver {
|
|||||||
pluginEnabled = isPluginEnabled(pluginKey);
|
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) {
|
if (pluginEnabled) {
|
||||||
boolean success = addPlugin(pluginKey);
|
boolean success = addPlugin(pluginKey);
|
||||||
|
|
||||||
if (success) {
|
if (success) {
|
||||||
|
for (String packageType : pluginInfo.getSupportedPackageTypes()) {
|
||||||
newSupportedIncomingInterfaces.addAll(incomingInterfaces);
|
|
||||||
newSupportedOutgoingInterfaces.addAll(outgoingInterfaces);
|
|
||||||
|
|
||||||
for (String packageType : incomingInterfaces) {
|
|
||||||
packageType = hackToMakeRetrocompatiblePacketTypes(packageType);
|
packageType = hackToMakeRetrocompatiblePacketTypes(packageType);
|
||||||
ArrayList<String> plugins = newPluginsByIncomingInterface.get(packageType);
|
ArrayList<String> plugins = newPluginsByIncomingInterface.get(packageType);
|
||||||
if (plugins == null) plugins = new ArrayList<>();
|
if (plugins == null) plugins = new ArrayList<>();
|
||||||
plugins.add(pluginKey);
|
plugins.add(pluginKey);
|
||||||
newPluginsByIncomingInterface.put(packageType, plugins);
|
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 {
|
} else {
|
||||||
removePlugin(pluginKey);
|
removePlugin(pluginKey);
|
||||||
@@ -853,32 +786,9 @@ public class Device implements BaseLink.PackageReceiver {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean capabilitiesChanged = false;
|
|
||||||
if (!newSupportedIncomingInterfaces.equals(supportedIncomingInterfaces) ||
|
|
||||||
!newSupportedOutgoingInterfaces.equals(pluginsByOutgoingInterface)) {
|
|
||||||
capabilitiesChanged = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
pluginsByOutgoingInterface = newPluginsByOutgoingInterface;
|
|
||||||
pluginsByIncomingInterface = newPluginsByIncomingInterface;
|
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();
|
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() {
|
public void onPluginsChanged() {
|
||||||
@@ -925,14 +835,17 @@ public class Device implements BaseLink.PackageReceiver {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void hackToMakeRetrocompatiblePacketTypes(NetworkPackage np) {
|
public List<String> getSupportedPlugins() {
|
||||||
if (protocolVersion >= MIN_VERSION_WITH_CAPPABILITIES_SUPPORT) return;
|
return m_supportedPlugins;
|
||||||
np.mType = np.getType().replace(".request","");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void hackToMakeRetrocompatiblePacketTypes(NetworkPackage np) {
|
||||||
|
if (protocolVersion >= 6) return;
|
||||||
|
np.mType = np.getType().replace(".request","");
|
||||||
|
}
|
||||||
public String hackToMakeRetrocompatiblePacketTypes(String type) {
|
public String hackToMakeRetrocompatiblePacketTypes(String type) {
|
||||||
if (protocolVersion >= MIN_VERSION_WITH_CAPPABILITIES_SUPPORT) return type;
|
if (protocolVersion >= 6) return type;
|
||||||
return type.replace(".request","");
|
return type.replace(".request", "");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -75,8 +75,9 @@ public class ContactsHelper {
|
|||||||
contactInfo.put("photoID", cursor.getString(nameIndex));
|
contactInfo.put("photoID", cursor.getString(nameIndex));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try { cursor.close(); } catch (Exception e) {}
|
||||||
|
|
||||||
if (!contactInfo.isEmpty()) {
|
if (!contactInfo.isEmpty()) {
|
||||||
cursor.close();
|
|
||||||
return contactInfo;
|
return contactInfo;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -131,6 +131,12 @@ public class SslHelper {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isCertificateStored(Context context, String deviceId) {
|
||||||
|
SharedPreferences devicePreferences = context.getSharedPreferences(deviceId, Context.MODE_PRIVATE);
|
||||||
|
String cert = devicePreferences.getString("certificate", "");
|
||||||
|
return !cert.isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
public static SSLContext getSslContext(Context context, String deviceId, boolean isDeviceTrusted) {
|
public static SSLContext getSslContext(Context context, String deviceId, boolean isDeviceTrusted) {
|
||||||
//TODO: Cache
|
//TODO: Cache
|
||||||
try {
|
try {
|
||||||
@@ -203,13 +209,17 @@ public class SslHelper {
|
|||||||
// These cipher suites are most common of them that are accepted by kde and android during handshake
|
// These cipher suites are most common of them that are accepted by kde and android during handshake
|
||||||
ArrayList<String> supportedCiphers = new ArrayList<>();
|
ArrayList<String> supportedCiphers = new ArrayList<>();
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||||
supportedCiphers.add("TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384");
|
supportedCiphers.add("TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"); // API 20+
|
||||||
supportedCiphers.add("TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256");
|
supportedCiphers.add("TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"); // API 20+
|
||||||
supportedCiphers.add("TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA");
|
supportedCiphers.add("TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA"); // API 11+
|
||||||
|
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
|
||||||
|
supportedCiphers.add("TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA"); // API 11+
|
||||||
|
supportedCiphers.add("SSL_RSA_WITH_RC4_128_SHA"); // API 9+
|
||||||
|
supportedCiphers.add("SSL_RSA_WITH_RC4_128_MD5"); // API 9+
|
||||||
} else {
|
} else {
|
||||||
// Following ciphers are for and due to old devices
|
// Following ciphers are for and due to old devices
|
||||||
supportedCiphers.add("SSL_RSA_WITH_RC4_128_SHA");
|
supportedCiphers.add("SSL_RSA_WITH_RC4_128_SHA"); // API 9+
|
||||||
supportedCiphers.add("SSL_RSA_WITH_RC4_128_MD5");
|
supportedCiphers.add("SSL_RSA_WITH_RC4_128_MD5"); // API 9+
|
||||||
}
|
}
|
||||||
socket.setEnabledCipherSuites(supportedCiphers.toArray(new String[supportedCiphers.size()]));
|
socket.setEnabledCipherSuites(supportedCiphers.toArray(new String[supportedCiphers.size()]));
|
||||||
|
|
||||||
|
@@ -6,4 +6,11 @@ public class StringsHelper {
|
|||||||
|
|
||||||
public static final Charset UTF8 = Charset.forName("UTF-8");
|
public static final Charset UTF8 = Charset.forName("UTF-8");
|
||||||
|
|
||||||
|
public static int compare(String a, String b) {
|
||||||
|
if (a == b) return 0;
|
||||||
|
if (a == null) return -1;
|
||||||
|
if (b == null) return 1;
|
||||||
|
return a.compareToIgnoreCase(b);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -27,11 +27,13 @@ import org.json.JSONArray;
|
|||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
import org.kde.kdeconnect.Helpers.DeviceHelper;
|
import org.kde.kdeconnect.Helpers.DeviceHelper;
|
||||||
|
import org.kde.kdeconnect.Plugins.PluginFactory;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
public class NetworkPackage {
|
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_IDENTITY = "kdeconnect.identity";
|
||||||
public final static String PACKAGE_TYPE_PAIR = "kdeconnect.pair";
|
public final static String PACKAGE_TYPE_PAIR = "kdeconnect.pair";
|
||||||
public final static String PACKAGE_TYPE_ENCRYPTED = "kdeconnect.encrypted";
|
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>() {{
|
public static Set<String> protocolPackageTypes = new HashSet<String>() {{
|
||||||
add(PACKAGE_TYPE_IDENTITY);
|
add(PACKAGE_TYPE_IDENTITY);
|
||||||
add(PACKAGE_TYPE_PAIR);
|
add(PACKAGE_TYPE_PAIR);
|
||||||
add(PACKAGE_TYPE_ENCRYPTED);
|
add(PACKAGE_TYPE_ENCRYPTED);
|
||||||
add(PACKAGE_TYPE_CAPABILITIES);
|
|
||||||
}};
|
}};
|
||||||
|
|
||||||
private long mId;
|
private long mId;
|
||||||
@@ -96,35 +96,58 @@ public class NetworkPackage {
|
|||||||
public JSONArray getJSONArray(String key) { return mBody.optJSONArray(key); }
|
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 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);
|
JSONArray jsonArray = mBody.optJSONArray(key);
|
||||||
if (jsonArray == null) return null;
|
if (jsonArray == null) return null;
|
||||||
ArrayList<String> list = new ArrayList<>();
|
Set<String> list = new HashSet<>();
|
||||||
int length = jsonArray.length();
|
int length = jsonArray.length();
|
||||||
for (int i = 0; i < length; i++) {
|
for (int i = 0; i < length; i++) {
|
||||||
try {
|
try {
|
||||||
String str = jsonArray.getString(i);
|
String str = jsonArray.getString(i);
|
||||||
list.add(str);
|
list.add(str);
|
||||||
} catch(Exception e) {
|
} catch(Exception e) { }
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
public ArrayList<String> getStringList(String key, ArrayList<String> defaultValue) {
|
public Set<String> getStringSet(String key, Set<String> defaultValue) {
|
||||||
if (mBody.has(key)) return getStringList(key);
|
if (mBody.has(key)) return getStringSet(key);
|
||||||
else return defaultValue;
|
else return defaultValue;
|
||||||
}
|
}
|
||||||
public void set(String key, ArrayList<String> value) {
|
public void set(String key, Set<String> value) {
|
||||||
try {
|
try {
|
||||||
JSONArray jsonArray = new JSONArray();
|
JSONArray jsonArray = new JSONArray();
|
||||||
for(String str : value) {
|
for(String str : value) {
|
||||||
jsonArray.put(str);
|
jsonArray.put(str);
|
||||||
}
|
}
|
||||||
mBody.put(key,jsonArray);
|
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 has(String key) { return mBody.has(key); }
|
||||||
|
|
||||||
@@ -169,6 +192,8 @@ public class NetworkPackage {
|
|||||||
np.mBody.put("deviceName", DeviceHelper.getDeviceName(context));
|
np.mBody.put("deviceName", DeviceHelper.getDeviceName(context));
|
||||||
np.mBody.put("protocolVersion", NetworkPackage.ProtocolVersion);
|
np.mBody.put("protocolVersion", NetworkPackage.ProtocolVersion);
|
||||||
np.mBody.put("deviceType", DeviceHelper.isTablet()? "tablet" : "phone");
|
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) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
Log.e("NetworkPacakge","Exception on createIdentityPackage");
|
Log.e("NetworkPacakge","Exception on createIdentityPackage");
|
||||||
|
@@ -28,12 +28,15 @@ import android.os.Build;
|
|||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
|
|
||||||
import org.kde.kdeconnect.Device;
|
import java.util.HashSet;
|
||||||
import org.kde.kdeconnect.NetworkPackage;
|
|
||||||
|
|
||||||
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
|
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
|
||||||
public class ClipboardListener {
|
public class ClipboardListener {
|
||||||
|
|
||||||
|
public interface ClipboardObserver {
|
||||||
|
void clipboardChanged(String content);
|
||||||
|
}
|
||||||
|
private HashSet<ClipboardObserver> observers = new HashSet<>();
|
||||||
|
|
||||||
private final Context context;
|
private final Context context;
|
||||||
private String currentContent;
|
private String currentContent;
|
||||||
@@ -41,9 +44,26 @@ public class ClipboardListener {
|
|||||||
private ClipboardManager cm = null;
|
private ClipboardManager cm = null;
|
||||||
private ClipboardManager.OnPrimaryClipChangedListener listener;
|
private ClipboardManager.OnPrimaryClipChangedListener listener;
|
||||||
|
|
||||||
ClipboardListener(final Context ctx, final Device device) {
|
private static ClipboardListener _instance = null;
|
||||||
|
public static ClipboardListener instance(Context context) {
|
||||||
|
if (_instance == null) {
|
||||||
|
_instance = new ClipboardListener(context);
|
||||||
|
}
|
||||||
|
return _instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void registerObserver(ClipboardObserver observer) {
|
||||||
|
observers.add(observer);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeObserver(ClipboardObserver observer) {
|
||||||
|
observers.remove(observer);
|
||||||
|
}
|
||||||
|
|
||||||
|
ClipboardListener(final Context ctx) {
|
||||||
context = ctx;
|
context = ctx;
|
||||||
if(android.os.Build.VERSION.SDK_INT < 11) {
|
|
||||||
|
if(android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -59,11 +79,14 @@ public class ClipboardListener {
|
|||||||
ClipData.Item item = cm.getPrimaryClip().getItemAt(0);
|
ClipData.Item item = cm.getPrimaryClip().getItemAt(0);
|
||||||
String content = item.coerceToText(context).toString();
|
String content = item.coerceToText(context).toString();
|
||||||
|
|
||||||
if (!content.equals(currentContent)) {
|
if (content.equals(currentContent)) {
|
||||||
NetworkPackage np = new NetworkPackage(ClipboardPlugin.PACKAGE_TYPE_CLIPBOARD);
|
return;
|
||||||
np.set("content", content);
|
}
|
||||||
device.sendPackage(np);
|
|
||||||
currentContent = content;
|
currentContent = content;
|
||||||
|
|
||||||
|
for (ClipboardObserver observer : observers) {
|
||||||
|
observer.clipboardChanged(content);
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -76,18 +99,10 @@ public class ClipboardListener {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void stop() {
|
|
||||||
if(android.os.Build.VERSION.SDK_INT < 11) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
cm.removePrimaryClipChangedListener(listener);
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
public void setText(String text) {
|
public void setText(String text) {
|
||||||
currentContent = text;
|
currentContent = text;
|
||||||
if(android.os.Build.VERSION.SDK_INT < 11) {
|
if(android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
|
||||||
android.text.ClipboardManager clipboard = (android.text.ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
|
android.text.ClipboardManager clipboard = (android.text.ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
|
||||||
clipboard.setText(text);
|
clipboard.setText(text);
|
||||||
}
|
}
|
||||||
|
@@ -20,6 +20,8 @@
|
|||||||
|
|
||||||
package org.kde.kdeconnect.Plugins.ClibpoardPlugin;
|
package org.kde.kdeconnect.Plugins.ClibpoardPlugin;
|
||||||
|
|
||||||
|
import android.os.Build;
|
||||||
|
|
||||||
import org.kde.kdeconnect.NetworkPackage;
|
import org.kde.kdeconnect.NetworkPackage;
|
||||||
import org.kde.kdeconnect.Plugins.Plugin;
|
import org.kde.kdeconnect.Plugins.Plugin;
|
||||||
import org.kde.kdeconnect_tp.R;
|
import org.kde.kdeconnect_tp.R;
|
||||||
@@ -41,28 +43,34 @@ public class ClipboardPlugin extends Plugin {
|
|||||||
@Override
|
@Override
|
||||||
public boolean isEnabledByDefault() {
|
public boolean isEnabledByDefault() {
|
||||||
//Disabled by default due to just one direction sync(incoming clipboard change) in early version of android.
|
//Disabled by default due to just one direction sync(incoming clipboard change) in early version of android.
|
||||||
return (android.os.Build.VERSION.SDK_INT >= 11);
|
return (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB);
|
||||||
}
|
}
|
||||||
|
|
||||||
private ClipboardListener listener;
|
@Override
|
||||||
|
public boolean onPackageReceived(NetworkPackage np) {
|
||||||
|
String content = np.getString("content");
|
||||||
|
ClipboardListener.instance(context).setText(content);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private ClipboardListener.ClipboardObserver observer = new ClipboardListener.ClipboardObserver() {
|
||||||
|
@Override
|
||||||
|
public void clipboardChanged(String content) {
|
||||||
|
NetworkPackage np = new NetworkPackage(ClipboardPlugin.PACKAGE_TYPE_CLIPBOARD);
|
||||||
|
np.set("content", content);
|
||||||
|
device.sendPackage(np);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCreate() {
|
public boolean onCreate() {
|
||||||
listener = new ClipboardListener(context, device);
|
ClipboardListener.instance(context).registerObserver(observer);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
listener.stop();
|
ClipboardListener.instance(context).removeObserver(observer);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onPackageReceived(NetworkPackage np) {
|
|
||||||
|
|
||||||
String content = np.getString("content");
|
|
||||||
listener.setText(content);
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
package org.kde.kdeconnect.Plugins.FindMyPhonePlugin;
|
package org.kde.kdeconnect.Plugins.FindMyPhonePlugin;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
|
import android.content.Intent;
|
||||||
import android.media.AudioAttributes;
|
import android.media.AudioAttributes;
|
||||||
import android.media.AudioManager;
|
import android.media.AudioManager;
|
||||||
import android.media.Ringtone;
|
import android.media.Ringtone;
|
||||||
@@ -16,6 +17,12 @@ import org.kde.kdeconnect_tp.R;
|
|||||||
public class FindMyPhoneActivity extends Activity {
|
public class FindMyPhoneActivity extends Activity {
|
||||||
Ringtone ringtone;
|
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
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
@@ -2,6 +2,7 @@ package org.kde.kdeconnect.Plugins.FindMyPhonePlugin;
|
|||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
|
||||||
|
import org.kde.kdeconnect.Helpers.DeviceHelper;
|
||||||
import org.kde.kdeconnect.NetworkPackage;
|
import org.kde.kdeconnect.NetworkPackage;
|
||||||
import org.kde.kdeconnect.Plugins.Plugin;
|
import org.kde.kdeconnect.Plugins.Plugin;
|
||||||
import org.kde.kdeconnect_tp.R;
|
import org.kde.kdeconnect_tp.R;
|
||||||
@@ -18,7 +19,7 @@ public class FindMyPhonePlugin extends Plugin {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getDisplayName() {
|
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
|
@Override
|
||||||
|
@@ -46,7 +46,7 @@ import org.kde.kdeconnect.Device;
|
|||||||
import org.kde.kdeconnect.NetworkPackage;
|
import org.kde.kdeconnect.NetworkPackage;
|
||||||
import org.kde.kdeconnect_tp.R;
|
import org.kde.kdeconnect_tp.R;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.List;
|
||||||
|
|
||||||
public class MprisActivity extends ActionBarActivity {
|
public class MprisActivity extends ActionBarActivity {
|
||||||
|
|
||||||
@@ -133,7 +133,7 @@ public class MprisActivity extends ActionBarActivity {
|
|||||||
mpris.setPlayerListUpdatedHandler("activity", new Handler() {
|
mpris.setPlayerListUpdatedHandler("activity", new Handler() {
|
||||||
@Override
|
@Override
|
||||||
public void handleMessage(Message msg) {
|
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,
|
final ArrayAdapter<String> adapter = new ArrayAdapter<>(MprisActivity.this,
|
||||||
android.R.layout.simple_spinner_item,
|
android.R.layout.simple_spinner_item,
|
||||||
playerList.toArray(new String[playerList.size()])
|
playerList.toArray(new String[playerList.size()])
|
||||||
|
@@ -37,6 +37,7 @@ import org.kde.kdeconnect_tp.R;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class MprisPlugin extends Plugin {
|
public class MprisPlugin extends Plugin {
|
||||||
|
|
||||||
@@ -53,7 +54,7 @@ public class MprisPlugin extends Plugin {
|
|||||||
private long lastPositionTime;
|
private long lastPositionTime;
|
||||||
private HashMap<String,Handler> playerStatusUpdated = new HashMap<>();
|
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<>();
|
private HashMap<String,Handler> playerListUpdated = new HashMap<>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -152,7 +153,7 @@ public class MprisPlugin extends Plugin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ArrayList<String> newPlayerList = np.getStringList("playerList");
|
List<String> newPlayerList = np.getStringList("playerList");
|
||||||
if (newPlayerList != null) {
|
if (newPlayerList != null) {
|
||||||
boolean equals = false;
|
boolean equals = false;
|
||||||
if (newPlayerList.size() == playerList.size()) {
|
if (newPlayerList.size() == playerList.size()) {
|
||||||
@@ -232,7 +233,7 @@ public class MprisPlugin extends Plugin {
|
|||||||
requestPlayerStatus();
|
requestPlayerStatus();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArrayList<String> getPlayerList() {
|
public List<String> getPlayerList() {
|
||||||
return playerList;
|
return playerList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -26,26 +26,32 @@ import android.database.Cursor;
|
|||||||
import android.database.sqlite.SQLiteDatabase;
|
import android.database.sqlite.SQLiteDatabase;
|
||||||
import android.database.sqlite.SQLiteOpenHelper;
|
import android.database.sqlite.SQLiteOpenHelper;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
|
||||||
public class AppDatabase {
|
public class AppDatabase {
|
||||||
|
|
||||||
public static final String KEY_ROW_ID = "id";
|
static final private HashSet<String> disabledByDefault = new HashSet<>();
|
||||||
public static final String KEY_NAME = "app";
|
static {
|
||||||
public static final String KEY_PACKAGE_NAME = "packageName";
|
disabledByDefault.add("com.android.messaging"); //We already have sms notifications in the telephony plugin
|
||||||
public static final String KEY_IS_ENABLED = "isEnabled";
|
disabledByDefault.add("com.google.android.googlequicksearchbox"); //Google Now notifications re-spawn every few minutes
|
||||||
|
}
|
||||||
|
|
||||||
private static final String DATABASE_NAME = "Applications";
|
static final String KEY_PACKAGE_NAME = "packageName";
|
||||||
private static final String DATABASE_TABLE = "Applications";
|
static final String KEY_IS_ENABLED = "isEnabled";
|
||||||
private static final int DATABASE_VERSION = 1;
|
|
||||||
|
|
||||||
private final Context ourContext;
|
static final String DATABASE_NAME = "Applications";
|
||||||
private SQLiteDatabase ourDatabase;
|
static final String DATABASE_TABLE = "Applications";
|
||||||
private DbHelper ourHelper;
|
static final int DATABASE_VERSION = 2;
|
||||||
|
|
||||||
|
final Context ourContext;
|
||||||
|
SQLiteDatabase ourDatabase;
|
||||||
|
DbHelper ourHelper;
|
||||||
|
|
||||||
public AppDatabase(Context c) {
|
public AppDatabase(Context c) {
|
||||||
ourContext = c;
|
ourContext = c;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class DbHelper extends SQLiteOpenHelper{
|
private static class DbHelper extends SQLiteOpenHelper {
|
||||||
|
|
||||||
public DbHelper(Context context) {
|
public DbHelper(Context context) {
|
||||||
super(context, DATABASE_NAME, null, DATABASE_VERSION);
|
super(context, DATABASE_NAME, null, DATABASE_VERSION);
|
||||||
@@ -53,73 +59,57 @@ public class AppDatabase {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(SQLiteDatabase db) {
|
public void onCreate(SQLiteDatabase db) {
|
||||||
db.execSQL("CREATE TABLE " + DATABASE_TABLE + "(" + KEY_ROW_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
|
db.execSQL("CREATE TABLE " + DATABASE_TABLE + "(" + KEY_PACKAGE_NAME + " TEXT PRIMARY KEY NOT NULL, " + KEY_IS_ENABLED + " TEXT NOT NULL); ");
|
||||||
+ KEY_NAME + " TEXT NOT NULL, " + KEY_PACKAGE_NAME + " TEXT NOT NULL, " + KEY_IS_ENABLED + " TEXT NOT NULL); ");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onUpgrade(SQLiteDatabase db, int i, int i2) {
|
public void onUpgrade(SQLiteDatabase db, int i, int i2) {
|
||||||
db.execSQL("DROP TABLE IF EXISTS "+ DATABASE_TABLE);
|
db.execSQL("DROP TABLE IF EXISTS "+ DATABASE_TABLE);
|
||||||
onCreate(db);
|
onCreate(db);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void open(){
|
public void open() {
|
||||||
ourHelper = new DbHelper(ourContext);
|
ourHelper = new DbHelper(ourContext);
|
||||||
ourDatabase = ourHelper.getWritableDatabase();
|
ourDatabase = ourHelper.getWritableDatabase();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void close() {
|
||||||
public void close(){
|
|
||||||
ourHelper.close();
|
ourHelper.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Cursor getAllApplications()
|
public void setEnabled(String packageName, boolean isEnabled) {
|
||||||
{
|
String[] columns = new String []{KEY_IS_ENABLED};
|
||||||
String[] columns = new String []{KEY_ROW_ID,KEY_NAME,KEY_PACKAGE_NAME,KEY_IS_ENABLED};
|
Cursor res = ourDatabase.query(DATABASE_TABLE, columns, KEY_PACKAGE_NAME + " =? ",new String[]{packageName},null,null,null);
|
||||||
Cursor res = ourDatabase.query(DATABASE_TABLE,columns,null,null,null,null,KEY_NAME);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
public long create(String appName, String packageName, boolean isEnabled) {
|
|
||||||
ContentValues cv = new ContentValues();
|
ContentValues cv = new ContentValues();
|
||||||
cv.put(KEY_NAME, appName);
|
|
||||||
cv.put(KEY_PACKAGE_NAME, packageName);
|
|
||||||
cv.put(KEY_IS_ENABLED, isEnabled?"true":"false");
|
cv.put(KEY_IS_ENABLED, isEnabled?"true":"false");
|
||||||
return ourDatabase.insert(DATABASE_TABLE, null, cv);
|
if (res.getCount() > 0) {
|
||||||
}
|
ourDatabase.update(DATABASE_TABLE, cv, KEY_PACKAGE_NAME + "=?",new String[]{packageName});
|
||||||
|
} else {
|
||||||
public long update(String packageName, boolean isEnabled) {
|
cv.put(KEY_PACKAGE_NAME, packageName);
|
||||||
ContentValues cvUpdate = new ContentValues();
|
ourDatabase.insert(DATABASE_TABLE, null, cv);
|
||||||
cvUpdate.put(KEY_IS_ENABLED, isEnabled?"true":"false");
|
}
|
||||||
return ourDatabase.update(DATABASE_TABLE,cvUpdate,KEY_PACKAGE_NAME + "=?",new String[]{packageName});
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean exists(String packageName) {
|
|
||||||
String[] columns = new String []{KEY_ROW_ID};
|
|
||||||
Cursor res = ourDatabase.query(DATABASE_TABLE,columns,KEY_PACKAGE_NAME + " =? ",new String[]{packageName},null,null,null);
|
|
||||||
int count = res.getCount();
|
|
||||||
res.close();
|
res.close();
|
||||||
return (count != 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isEnabled(String packageName){
|
public boolean isEnabled(String packageName) {
|
||||||
String[] columns = new String []{KEY_IS_ENABLED};
|
String[] columns = new String []{KEY_IS_ENABLED};
|
||||||
Cursor res = ourDatabase.query(DATABASE_TABLE,columns,KEY_PACKAGE_NAME + " =? ",new String[]{packageName},null,null,null);
|
Cursor res = ourDatabase.query(DATABASE_TABLE,columns,KEY_PACKAGE_NAME + " =? ",new String[]{packageName},null,null,null);
|
||||||
boolean result = true; //Apps are enabled by default
|
boolean result;
|
||||||
if (res.getCount() > 0) {
|
if (res.getCount() > 0) {
|
||||||
res.moveToFirst();
|
res.moveToFirst();
|
||||||
result = (res.getString(res.getColumnIndex(KEY_IS_ENABLED))).equals("true");
|
result = (res.getString(res.getColumnIndex(KEY_IS_ENABLED))).equals("true");
|
||||||
|
} else {
|
||||||
|
result = getDefaultStatus(packageName);
|
||||||
}
|
}
|
||||||
res.close();
|
res.close();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void delete(String packageName){
|
private boolean getDefaultStatus(String packageName) {
|
||||||
ourDatabase.delete(DATABASE_TABLE,KEY_PACKAGE_NAME + " =? ",new String[]{packageName} );
|
return !disabledByDefault.contains(packageName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -22,142 +22,144 @@ package org.kde.kdeconnect.Plugins.NotificationsPlugin;
|
|||||||
|
|
||||||
import android.content.pm.ApplicationInfo;
|
import android.content.pm.ApplicationInfo;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.database.Cursor;
|
import android.content.res.Resources;
|
||||||
|
import android.graphics.Bitmap;
|
||||||
|
import android.graphics.Canvas;
|
||||||
|
import android.graphics.drawable.BitmapDrawable;
|
||||||
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v7.app.ActionBarActivity;
|
import android.support.v7.app.ActionBarActivity;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
import android.widget.AdapterView;
|
import android.widget.AdapterView;
|
||||||
import android.widget.ArrayAdapter;
|
import android.widget.BaseAdapter;
|
||||||
|
import android.widget.CheckedTextView;
|
||||||
import android.widget.ListView;
|
import android.widget.ListView;
|
||||||
|
|
||||||
import org.kde.kdeconnect.BackgroundService;
|
import org.kde.kdeconnect.BackgroundService;
|
||||||
|
import org.kde.kdeconnect.Helpers.StringsHelper;
|
||||||
import org.kde.kdeconnect_tp.R;
|
import org.kde.kdeconnect_tp.R;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class NotificationFilterActivity extends ActionBarActivity {
|
public class NotificationFilterActivity extends ActionBarActivity {
|
||||||
|
|
||||||
private AppDatabase appDatabase;
|
AppDatabase appDatabase;
|
||||||
|
|
||||||
|
static class AppListInfo {
|
||||||
|
String pkg;
|
||||||
|
String name;
|
||||||
|
Drawable icon;
|
||||||
|
boolean isEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
AppListInfo[] apps;
|
||||||
|
|
||||||
|
class AppListAdapter extends BaseAdapter {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getCount() {
|
||||||
|
return apps.length;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AppListInfo getItem(int position) {
|
||||||
|
return apps[position];
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long getItemId(int position) {
|
||||||
|
return position;
|
||||||
|
}
|
||||||
|
|
||||||
|
public View getView(int position, View view, ViewGroup parent) {
|
||||||
|
if (view == null) {
|
||||||
|
LayoutInflater inflater = getLayoutInflater();
|
||||||
|
view = inflater.inflate(android.R.layout.simple_list_item_multiple_choice, null, true);
|
||||||
|
}
|
||||||
|
CheckedTextView checkedTextView = (CheckedTextView)view;
|
||||||
|
checkedTextView.setText(apps[position].name);
|
||||||
|
checkedTextView.setCompoundDrawablesWithIntrinsicBounds(apps[position].icon, null, null, null);
|
||||||
|
checkedTextView.setCompoundDrawablePadding((int)(8*getResources().getDisplayMetrics().density));
|
||||||
|
|
||||||
|
return view;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_notification_filter);
|
setContentView(R.layout.activity_notification_filter);
|
||||||
final ListView listView = (ListView)findViewById(R.id.lvFilterApps);
|
appDatabase = new AppDatabase(NotificationFilterActivity.this);
|
||||||
appDatabase = new AppDatabase(this);
|
|
||||||
|
|
||||||
deleteUninstalledApps();
|
new Thread(new Runnable() {
|
||||||
addNewlyInstalledApps();
|
@Override
|
||||||
|
public void run() {
|
||||||
|
|
||||||
appDatabase.open();
|
PackageManager packageManager = getPackageManager();
|
||||||
Cursor res = appDatabase.getAllApplications();
|
List<ApplicationInfo> appList = packageManager.getInstalledApplications(0);
|
||||||
res.moveToFirst();
|
int count = appList.size();
|
||||||
|
|
||||||
String[] appName = new String[res.getCount()];
|
apps = new AppListInfo[count];
|
||||||
final String[] pkgName = new String[res.getCount()];
|
appDatabase.open();
|
||||||
Boolean[] isFiltered = new Boolean[res.getCount()];
|
for (int i = 0; i < count; i++) {
|
||||||
|
ApplicationInfo appInfo = appList.get(i);
|
||||||
|
apps[i] = new AppListInfo();
|
||||||
|
apps[i].pkg = appInfo.packageName;
|
||||||
|
apps[i].name = appInfo.loadLabel(packageManager).toString();
|
||||||
|
apps[i].icon = resizeIcon(appInfo.loadIcon(packageManager), 48);
|
||||||
|
apps[i].isEnabled = appDatabase.isEnabled(appInfo.packageName);
|
||||||
|
}
|
||||||
|
appDatabase.close();
|
||||||
|
|
||||||
int i = 0;
|
Arrays.sort(apps, new Comparator<AppListInfo>() {
|
||||||
while(!res.isAfterLast()){
|
@Override
|
||||||
appName[i] = res.getString(res.getColumnIndex(AppDatabase.KEY_NAME));
|
public int compare(AppListInfo lhs, AppListInfo rhs) {
|
||||||
pkgName[i] = res.getString(res.getColumnIndex(AppDatabase.KEY_PACKAGE_NAME));
|
return StringsHelper.compare(lhs.name, rhs.name);
|
||||||
isFiltered[i] = res.getString(res.getColumnIndex(AppDatabase.KEY_IS_ENABLED)).equals("true");
|
}
|
||||||
res.moveToNext();
|
});
|
||||||
i++;
|
|
||||||
}
|
|
||||||
res.close();
|
|
||||||
appDatabase.close();
|
|
||||||
|
|
||||||
ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
|
runOnUiThread(new Runnable() {
|
||||||
android.R.layout.simple_list_item_multiple_choice, android.R.id.text1, appName);
|
@Override
|
||||||
|
public void run() {
|
||||||
|
displayAppList();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}).start();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void displayAppList() {
|
||||||
|
|
||||||
|
final ListView listView = (ListView) findViewById(R.id.lvFilterApps);
|
||||||
|
AppListAdapter adapter = new AppListAdapter();
|
||||||
listView.setAdapter(adapter);
|
listView.setAdapter(adapter);
|
||||||
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
|
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
|
||||||
for (i = 0 ; i < isFiltered.length; i++){
|
|
||||||
if (isFiltered[i]) {
|
|
||||||
listView.setItemChecked(i, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
|
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
|
||||||
boolean checked = listView.isItemChecked(i);
|
boolean checked = listView.isItemChecked(i);
|
||||||
//Log.e("NotificationFilterActivity", pkgName[i] + ":" + checked);
|
|
||||||
appDatabase.open();
|
appDatabase.open();
|
||||||
appDatabase.update(pkgName[i], checked);
|
appDatabase.setEnabled(apps[i].pkg, checked);
|
||||||
appDatabase.close();
|
appDatabase.close();
|
||||||
|
apps[i].isEnabled = checked;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
for (int i = 0 ; i < apps.length; i++) {
|
||||||
|
listView.setItemChecked(i, apps[i].isEnabled);
|
||||||
// Delete apps from database which are uninstalled
|
|
||||||
private void deleteUninstalledApps(){
|
|
||||||
Cursor res;
|
|
||||||
appDatabase.open();
|
|
||||||
res = appDatabase.getAllApplications();
|
|
||||||
if (res != null) {
|
|
||||||
res.moveToFirst();
|
|
||||||
while (!res.isAfterLast()) {
|
|
||||||
String packageName = res.getString(res.getColumnIndex(AppDatabase.KEY_PACKAGE_NAME));
|
|
||||||
if (!isPackageInstalled(packageName)) {
|
|
||||||
appDatabase.delete(packageName);
|
|
||||||
}
|
|
||||||
res.moveToNext();
|
|
||||||
}
|
|
||||||
res.close();
|
|
||||||
}
|
|
||||||
appDatabase.close();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Adding newly installed apps in database
|
|
||||||
private void addNewlyInstalledApps() {
|
|
||||||
|
|
||||||
List<ApplicationInfo> PackList = getPackageManager().getInstalledApplications(0);
|
|
||||||
appDatabase.open();
|
|
||||||
|
|
||||||
for (int i=0; i < PackList.size(); i++)
|
|
||||||
{
|
|
||||||
ApplicationInfo PackInfo = PackList.get(i);
|
|
||||||
|
|
||||||
String appName = PackInfo.loadLabel(getPackageManager()).toString();
|
|
||||||
String packageName = PackInfo.packageName;
|
|
||||||
|
|
||||||
if ( (PackInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0 ) {
|
|
||||||
|
|
||||||
if (!appDatabase.exists(packageName)) {
|
|
||||||
appDatabase.create(appName, packageName, true);
|
|
||||||
}
|
|
||||||
//Log.e("App FLAG_UPDATED_SYSTEM_APP: " + Integer.toString(i), appName);
|
|
||||||
|
|
||||||
} else if ( (PackInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
|
|
||||||
|
|
||||||
//ignore these apps
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
if (!appDatabase.exists(packageName)) {
|
|
||||||
appDatabase.create(appName, packageName, true);
|
|
||||||
}
|
|
||||||
//Log.e("App : " + Integer.toString(i), appName);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
appDatabase.close();
|
listView.setVisibility(View.VISIBLE);
|
||||||
|
findViewById(R.id.spinner).setVisibility(View.GONE);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isPackageInstalled(String packageName){
|
|
||||||
PackageManager pm = getPackageManager();
|
|
||||||
try {
|
|
||||||
pm.getPackageInfo(packageName, PackageManager.GET_META_DATA);
|
|
||||||
} catch (Exception e) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onStart() {
|
protected void onStart() {
|
||||||
super.onStart();
|
super.onStart();
|
||||||
@@ -170,4 +172,19 @@ public class NotificationFilterActivity extends ActionBarActivity {
|
|||||||
BackgroundService.removeGuiInUseCounter(this);
|
BackgroundService.removeGuiInUseCounter(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Drawable resizeIcon(Drawable icon, int maxSize) {
|
||||||
|
Resources res = getResources();
|
||||||
|
|
||||||
|
//Convert to display pixels
|
||||||
|
maxSize = (int)(maxSize*res.getDisplayMetrics().density);
|
||||||
|
|
||||||
|
Bitmap bitmap = Bitmap.createBitmap(maxSize, maxSize, Bitmap.Config.ARGB_8888);
|
||||||
|
Canvas canvas = new Canvas(bitmap);
|
||||||
|
icon.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
|
||||||
|
icon.draw(canvas);
|
||||||
|
|
||||||
|
return new BitmapDrawable(res, bitmap);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -170,11 +170,6 @@ public class NotificationsPlugin extends Plugin implements NotificationReceiver.
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (packageName.equals("com.google.android.googlequicksearchbox")) {
|
|
||||||
//HACK: Hide Google Now notifications that keep constantly popping up (and without text because we don't know how to read them properly)
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
NetworkPackage np = new NetworkPackage(PACKAGE_TYPE_NOTIFICATION);
|
NetworkPackage np = new NetworkPackage(PACKAGE_TYPE_NOTIFICATION);
|
||||||
|
|
||||||
if (packageName.equals("org.kde.kdeconnect_tp"))
|
if (packageName.equals("org.kde.kdeconnect_tp"))
|
||||||
|
@@ -36,6 +36,7 @@ import org.kde.kdeconnect.Plugins.ReceiveNotificationsPlugin.ReceiveNotification
|
|||||||
import org.kde.kdeconnect.Plugins.RunCommandPlugin.RunCommandPlugin;
|
import org.kde.kdeconnect.Plugins.RunCommandPlugin.RunCommandPlugin;
|
||||||
import org.kde.kdeconnect.Plugins.SftpPlugin.SftpPlugin;
|
import org.kde.kdeconnect.Plugins.SftpPlugin.SftpPlugin;
|
||||||
import org.kde.kdeconnect.Plugins.SharePlugin.SharePlugin;
|
import org.kde.kdeconnect.Plugins.SharePlugin.SharePlugin;
|
||||||
|
import org.kde.kdeconnect.Plugins.TelepathyPlugin.TelepathyPlugin;
|
||||||
import org.kde.kdeconnect.Plugins.TelephonyPlugin.TelephonyPlugin;
|
import org.kde.kdeconnect.Plugins.TelephonyPlugin.TelephonyPlugin;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@@ -107,10 +108,9 @@ public class PluginFactory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static final Map<String, Class> availablePlugins = new TreeMap<>();
|
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 {
|
static {
|
||||||
//TODO: Use reflection to find all subclasses of Plugin, instead of adding them manually
|
|
||||||
PluginFactory.registerPlugin(TelephonyPlugin.class);
|
PluginFactory.registerPlugin(TelephonyPlugin.class);
|
||||||
PluginFactory.registerPlugin(PingPlugin.class);
|
PluginFactory.registerPlugin(PingPlugin.class);
|
||||||
PluginFactory.registerPlugin(MprisPlugin.class);
|
PluginFactory.registerPlugin(MprisPlugin.class);
|
||||||
@@ -121,14 +121,14 @@ public class PluginFactory {
|
|||||||
PluginFactory.registerPlugin(ReceiveNotificationsPlugin.class);
|
PluginFactory.registerPlugin(ReceiveNotificationsPlugin.class);
|
||||||
PluginFactory.registerPlugin(MousePadPlugin.class);
|
PluginFactory.registerPlugin(MousePadPlugin.class);
|
||||||
PluginFactory.registerPlugin(SharePlugin.class);
|
PluginFactory.registerPlugin(SharePlugin.class);
|
||||||
//PluginFactory.registerPlugin(TelepathyPlugin.class);
|
PluginFactory.registerPlugin(TelepathyPlugin.class);
|
||||||
PluginFactory.registerPlugin(FindMyPhonePlugin.class);
|
PluginFactory.registerPlugin(FindMyPhonePlugin.class);
|
||||||
PluginFactory.registerPlugin(RunCommandPlugin.class);
|
PluginFactory.registerPlugin(RunCommandPlugin.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static PluginInfo getPluginInfo(Context context, String pluginKey) {
|
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) {
|
if (info != null) {
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
@@ -139,7 +139,7 @@ public class PluginFactory {
|
|||||||
info = new PluginInfo(p.getDisplayName(), p.getDescription(), p.getIcon(),
|
info = new PluginInfo(p.getDisplayName(), p.getDescription(), p.getIcon(),
|
||||||
p.isEnabledByDefault(), p.hasSettings(), p.listensToUnpairedDevices(),
|
p.isEnabledByDefault(), p.hasSettings(), p.listensToUnpairedDevices(),
|
||||||
p.getSupportedPackageTypes(), p.getOutgoingPackageTypes());
|
p.getSupportedPackageTypes(), p.getOutgoingPackageTypes());
|
||||||
availablePluginsInfo.put(pluginKey, info); //Cache it
|
pluginInfoCache.put(pluginKey, info); //Cache it
|
||||||
return info;
|
return info;
|
||||||
} catch(Exception e) {
|
} catch(Exception e) {
|
||||||
Log.e("PluginFactory","getPluginInfo exception");
|
Log.e("PluginFactory","getPluginInfo exception");
|
||||||
@@ -182,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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -69,7 +69,9 @@ public class SendFileActivity extends ActionBarActivity {
|
|||||||
public void onServiceStart(BackgroundService service) {
|
public void onServiceStart(BackgroundService service) {
|
||||||
Device device = service.getDevice(mDeviceId);
|
Device device = service.getDevice(mDeviceId);
|
||||||
if (device == null) {
|
if (device == null) {
|
||||||
|
Log.e("SendFileActivity", "Device is null");
|
||||||
finish();
|
finish();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
ArrayList<Uri> uris = new ArrayList<>();
|
ArrayList<Uri> uris = new ArrayList<>();
|
||||||
uris.add(uri);
|
uris.add(uri);
|
||||||
|
@@ -346,8 +346,6 @@ public class SharePlugin extends Plugin {
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
np.setPayload(inputStream, size);
|
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
// Probably a content:// uri, so we query the Media content provider
|
// Probably a content:// uri, so we query the Media content provider
|
||||||
|
|
||||||
@@ -384,13 +382,13 @@ public class SharePlugin extends Plugin {
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
cursor.close();
|
try { cursor.close(); } catch (Exception e) { }
|
||||||
}
|
}
|
||||||
|
|
||||||
np.setPayload(inputStream, size);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
np.setPayload(inputStream, size);
|
||||||
|
|
||||||
final String filename = np.getString("filename");
|
final String filename = np.getString("filename");
|
||||||
|
|
||||||
builder.setContentText(res.getString(R.string.outgoing_file_text,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.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.ConcurrentModificationException;
|
import java.util.ConcurrentModificationException;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
|
|
||||||
@@ -121,9 +122,10 @@ public class DeviceFragment extends Fragment {
|
|||||||
|
|
||||||
refreshUI();
|
refreshUI();
|
||||||
|
|
||||||
if (!device.hasPluginsLoaded()) {
|
//TODO: Is this needed?
|
||||||
device.reloadPluginsFromSettings();
|
//if (!device.hasPluginsLoaded() && device.isReachable()) {
|
||||||
}
|
// device.reloadPluginsFromSettings();
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -240,7 +242,7 @@ public class DeviceFragment extends Fragment {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (device.isPaired()) {
|
if (device.isPaired() && device.isReachable()) {
|
||||||
|
|
||||||
menu.add(R.string.encryption_info_title).setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
|
menu.add(R.string.encryption_info_title).setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
|
||||||
@Override
|
@Override
|
||||||
@@ -264,6 +266,9 @@ public class DeviceFragment extends Fragment {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (device.isPaired()) {
|
||||||
|
|
||||||
menu.add(R.string.device_menu_unpair).setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
|
menu.add(R.string.device_menu_unpair).setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
|
||||||
@Override
|
@Override
|
||||||
@@ -283,17 +288,21 @@ public class DeviceFragment extends Fragment {
|
|||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
|
|
||||||
|
//TODO: Is this needed?
|
||||||
|
/*
|
||||||
BackgroundService.RunCommand(mActivity, new BackgroundService.InstanceCallback() {
|
BackgroundService.RunCommand(mActivity, new BackgroundService.InstanceCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onServiceStart(BackgroundService service) {
|
public void onServiceStart(BackgroundService service) {
|
||||||
if (mDeviceId != null) {
|
if (mDeviceId != null) {
|
||||||
Device device = service.getDevice(mDeviceId);
|
Device device = service.getDevice(mDeviceId);
|
||||||
if (device != null) {
|
if (device != null && device.isReachable()) {
|
||||||
device.reloadPluginsFromSettings();
|
device.reloadPluginsFromSettings();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
*/
|
||||||
|
|
||||||
getView().setFocusableInTouchMode(true);
|
getView().setFocusableInTouchMode(true);
|
||||||
getView().requestFocus();
|
getView().requestFocus();
|
||||||
@@ -373,15 +382,16 @@ public class DeviceFragment extends Fragment {
|
|||||||
errorHeader.setText(getResources().getString(R.string.plugins_failed_to_load));
|
errorHeader.setText(getResources().getString(R.string.plugins_failed_to_load));
|
||||||
}
|
}
|
||||||
items.add(new CustomItem(errorHeader));
|
items.add(new CustomItem(errorHeader));
|
||||||
for (String s : failed.keySet()) {
|
for (Map.Entry<String, Plugin> entry : failed.entrySet()) {
|
||||||
final Plugin p = failed.get(s);
|
String pluginKey = entry.getKey();
|
||||||
if (p == null) {
|
final Plugin plugin = entry.getValue();
|
||||||
items.add(new SmallEntryItem(s));
|
if (plugin == null) {
|
||||||
|
items.add(new SmallEntryItem(pluginKey));
|
||||||
} else {
|
} else {
|
||||||
items.add(new SmallEntryItem(p.getDisplayName(), new View.OnClickListener() {
|
items.add(new SmallEntryItem(plugin.getDisplayName(), new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
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");
|
String deviceId = data.getStringExtra("deviceId");
|
||||||
mActivity.onDeviceSelected(deviceId);
|
mActivity.onDeviceSelected(deviceId);
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
}
|
}
|
||||||
|
@@ -1,9 +1,7 @@
|
|||||||
package org.kde.kdeconnect.UserInterface;
|
package org.kde.kdeconnect.UserInterface;
|
||||||
|
|
||||||
import android.graphics.Color;
|
|
||||||
import android.preference.CheckBoxPreference;
|
import android.preference.CheckBoxPreference;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.TextView;
|
|
||||||
|
|
||||||
import org.kde.kdeconnect.Device;
|
import org.kde.kdeconnect.Device;
|
||||||
import org.kde.kdeconnect.Plugins.Plugin;
|
import org.kde.kdeconnect.Plugins.Plugin;
|
||||||
@@ -53,11 +51,7 @@ public class PluginPreference extends CheckBoxPreference {
|
|||||||
super.onBindView(root);
|
super.onBindView(root);
|
||||||
final View button = root.findViewById(R.id.settingsButton);
|
final View button = root.findViewById(R.id.settingsButton);
|
||||||
|
|
||||||
if (device.getUnsupportedPlugins().contains(pluginKey)) {
|
if (listener == null) {
|
||||||
((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) {
|
|
||||||
button.setVisibility(View.GONE);
|
button.setVisibility(View.GONE);
|
||||||
} else {
|
} else {
|
||||||
button.setEnabled(isChecked());
|
button.setEnabled(isChecked());
|
||||||
|
@@ -26,9 +26,8 @@ import android.view.MenuItem;
|
|||||||
|
|
||||||
import org.kde.kdeconnect.BackgroundService;
|
import org.kde.kdeconnect.BackgroundService;
|
||||||
import org.kde.kdeconnect.Device;
|
import org.kde.kdeconnect.Device;
|
||||||
import org.kde.kdeconnect.Plugins.PluginFactory;
|
|
||||||
|
|
||||||
import java.util.Set;
|
import java.util.List;
|
||||||
|
|
||||||
public class SettingsActivity extends AppCompatPreferenceActivity {
|
public class SettingsActivity extends AppCompatPreferenceActivity {
|
||||||
|
|
||||||
@@ -58,7 +57,7 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
|
|||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Set<String> plugins = PluginFactory.getAvailablePlugins();
|
List<String> plugins = device.getSupportedPlugins();
|
||||||
for (final String pluginKey : plugins) {
|
for (final String pluginKey : plugins) {
|
||||||
PluginPreference pref = new PluginPreference(SettingsActivity.this, pluginKey, device);
|
PluginPreference pref = new PluginPreference(SettingsActivity.this, pluginKey, device);
|
||||||
preferenceScreen.addPreference(pref);
|
preferenceScreen.addPreference(pref);
|
||||||
|
Reference in New Issue
Block a user