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

Compare commits

..

8 Commits

Author SHA1 Message Date
Albert Vaca Cintora
e53338c70e Release 1.26.3 2023-07-02 23:34:46 +02:00
Albert Vaca Cintora
e641ff5a0a Don't call put if we are going to call remove right after
Note we still want the remove in case the plugin already was loaded
2023-07-02 23:26:56 +02:00
Albert Vaca Cintora
2ebaf6ae5b Ignore exceptions in pairingSuccessful callbacks
Bubbling up the exception to the PairingHandler makes the device become
unpaired, and we only want this if the error happens persisting device info
2023-07-02 23:01:05 +02:00
Albert Vaca Cintora
dd89463d75 Add logging to help debug a crash restoring saved devices 2023-07-02 22:57:40 +02:00
Albert Vaca Cintora
7194b308cb Fix NPE 2023-07-02 20:46:11 +02:00
Albert Vaca Cintora
328b708083 Fix NPE by checking if there's a Device 2023-07-02 10:27:52 +02:00
l10n daemon script
6404b86373 GIT_SILENT Sync po/docbooks with svn 2023-07-01 01:53:29 +00:00
l10n daemon script
3263b37c8a GIT_SILENT Sync po/docbooks with svn 2023-06-30 01:53:09 +00:00
6 changed files with 130 additions and 16 deletions

View File

@@ -9,8 +9,8 @@ SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="org.kde.kdeconnect_tp"
android:versionCode="12602"
android:versionName="1.26.2">
android:versionCode="12603"
android:versionName="1.26.3">
<uses-feature
android:name="android.hardware.telephony"

View File

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

View File

@@ -0,0 +1,86 @@
# KDE Connect store listing texts
# Copyright (C) 2014 Albert Vaca Cintora
# This file is distributed under the same license as kdeconnect-android.
#
# Albert Vaca Cintora <albertvaka@gmail.com>, 2014.
# Mincho Kondarev <mkondarev@yahoo.de>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2019-06-30 11:38+0200\n"
"PO-Revision-Date: 2023-06-22 20:53+0200\n"
"Last-Translator: Mincho Kondarev <mkondarev@yahoo.de>\n"
"Language: bg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language-Team: Bulgarian <kde-i18n-doc@kde.org>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Lokalize 23.04.2\n"
#: dummy:1
msgid "Integrate Android with the KDE Plasma Desktop."
msgstr "Интеграция на Android с работната среда Plasma на KDE."
#: dummy:2
msgid ""
"KDE Connect provides several features to integrate your phone and your"
" computer:\n"
"\n"
"- Share files and URLs to KDE from any app, without wires.\n"
"- Touchpad emulation: Use your phone screen as your computer's touchpad*.\n"
"- Notifications sync (4.3+): Read your Android notifications from the"
" desktop.\n"
"- Shared clipboard: copy and paste between your phone and your computer.\n"
"- Multimedia remote control: Use your phone as a remote for Linux media"
" players.\n"
"- WiFi connection: no usb wire or bluetooth needed.\n"
"- RSA Encryption: your information is safe.\n"
"\n"
"Please note you will need to install KDE Connect on your computer for this"
" app to work, and keep the desktop version up-to-date with the Android"
" version for the latest features to work.\n"
"\n"
"*NOTE for Ubuntu users: The Ubuntu folks are not updating their repos as fast"
" as this app gets updated. Some features will not work if the KDE Connect"
" version in you desktop doesn't match the one in your phone. To make sure you"
" always have the latest version on your desktop, use this PPA repository: "
" https://code.launchpad.net/~vikoadi/+archive/ubuntu/ppa/ \n"
"\n"
"This app is part of an open source project, visit the website to grab the"
" sources.\n"
msgstr ""
"KDE Connect предоставя няколко функции за интегриране на телефона с "
"компютъра:\n"
"\n"
"- Безжично поделяне на файлове и URL адреси в KDE от всяко приложение.\n"
"- Емулация на тъчпад: Използвайте екрана на телефона си като тъчпад на"
" компютъра*.\n"
"- Синхронизиране на известия (4.3+): Четете известията си за Android от "
"десктопа.\n"
"- Споделен клипборд: копиране и поставяне между телефона и компютъра.\n"
"- Мултимедийно дистанционно управление: Използвайте телефона си като"
" дистанционно управление за Linux мултимедийни "
"плейъри.\n"
"- WiFi връзка: не е необходим USB кабел или Bluetooth.\n"
"- RSA криптиране: информацията ви е сигурна.\n"
"\n"
"Моля, обърнете внимание, че за тази функция ще трябва да инсталирате KDE"
" Connect на компютъра си "
"и да поддържате версията за настолни компютри в актуално състояние с версията"
" за Android, "
"за да работят най-новите функции.\n"
"\n"
"*Забележка за потребителите на Ubuntu: Ubuntu не актуализират своите"
" хранилища "
"толкова бързо, колкото се обновява това приложение. Някои функции няма да"
" работят, ако KDE "
"Connect в десктопа не съвпада с версията в телефона ви. За да да сте сигурни,"
" че винаги "
"имате най-новата версия на десктопа си, използвайте това PPA "
"хранилище: https://code.launchpad.net/~vikoadi/+archive/ubuntu/ppa/ \n"
"\n"
"Това приложение е част от проект с отворен код, посетете уебсайта, за да"
" изтеглите "
"изходния код.\n"

View File

@@ -186,6 +186,8 @@ public class Device implements BaseLink.PacketReceiver {
@Override
public void pairingSuccessful() {
Log.i("Device", "pairing successful, adding to trusted devices list");
hidePairingNotification();
// Store current device certificate so we can check it in the future (TOFU)
@@ -195,10 +197,15 @@ public class Device implements BaseLink.PacketReceiver {
SharedPreferences preferences = context.getSharedPreferences("trusted_devices", Context.MODE_PRIVATE);
preferences.edit().putBoolean(deviceInfo.id, true).apply();
reloadPluginsFromSettings();
try {
reloadPluginsFromSettings();
for (PairingHandler.PairingCallback cb : pairingCallbacks) {
cb.pairingSuccessful();
for (PairingHandler.PairingCallback cb : pairingCallbacks) {
cb.pairingSuccessful();
}
} catch (Exception e) {
Log.e("PairingHandler", "Exception in pairingSuccessful. Not unpairing because saving the trusted device succeeded");
e.printStackTrace();
}
}
@@ -212,6 +219,7 @@ public class Device implements BaseLink.PacketReceiver {
@Override
public void unpaired() {
Log.i("Device", "unpaired, removing from trusted devices list");
SharedPreferences preferences = context.getSharedPreferences("trusted_devices", Context.MODE_PRIVATE);
preferences.edit().remove(deviceInfo.id).apply();
@@ -566,8 +574,6 @@ public class Device implements BaseLink.PacketReceiver {
return false;
}
plugins.put(pluginKey, plugin);
if (!plugin.checkRequiredPermissions()) {
Log.d("KDE/addPlugin", "No permission " + pluginKey);
plugins.remove(pluginKey);
@@ -575,6 +581,7 @@ public class Device implements BaseLink.PacketReceiver {
return false;
} else {
Log.d("KDE/addPlugin", "Permissions OK " + pluginKey);
plugins.put(pluginKey, plugin);
pluginsWithoutPermissions.remove(pluginKey);
if (plugin.checkOptionalPermissions()) {
Log.d("KDE/addPlugin", "Optional Permissions OK " + pluginKey);

View File

@@ -264,13 +264,10 @@ public class MprisMediaSession implements
return;
}
synchronized (instance) {
if (mediaSession == null) {
mediaSession = new MediaSessionCompat(context, MPRIS_MEDIA_SESSION_TAG);
mediaSession.setCallback(mediaSessionCallback, new Handler(context.getMainLooper()));
// Deprecated flags not required in Build.VERSION_CODES.O and later
mediaSession.setFlags(MediaSessionCompat.FLAG_HANDLES_MEDIA_BUTTONS | MediaSessionCompat.FLAG_HANDLES_TRANSPORT_CONTROLS);
}
Device device = KdeConnect.getInstance().getDevice(notificationDevice);
if (device == null) {
closeMediaNotification();
return;
}
//Make sure our information is up-to-date
@@ -282,6 +279,15 @@ public class MprisMediaSession implements
return;
}
synchronized (instance) {
if (mediaSession == null) {
mediaSession = new MediaSessionCompat(context, MPRIS_MEDIA_SESSION_TAG);
mediaSession.setCallback(mediaSessionCallback, new Handler(context.getMainLooper()));
// Deprecated flags not required in Build.VERSION_CODES.O and later
mediaSession.setFlags(MediaSessionCompat.FLAG_HANDLES_MEDIA_BUTTONS | MediaSessionCompat.FLAG_HANDLES_TRANSPORT_CONTROLS);
}
}
updateRemoteDeviceVolumeControl();
MediaMetadataCompat.Builder metadata = new MediaMetadataCompat.Builder();
@@ -363,7 +369,7 @@ public class MprisMediaSession implements
.setShowWhen(false)
.setColor(ContextCompat.getColor(context, R.color.primary))
.setVisibility(androidx.core.app.NotificationCompat.VISIBILITY_PUBLIC)
.setSubText(KdeConnect.getInstance().getDevice(notificationDevice).getName());
.setSubText(device.getName());
notification.setContentTitle(currentPlayer.getTitle());

View File

@@ -245,7 +245,10 @@ public class MprisNowPlayingFragment extends Fragment implements VolumeKeyListen
return; //Player hasn't actually changed
}
targetPlayer = plugin.getPlayerStatus(player);
targetPlayerName = targetPlayer.getPlayerName();
if (targetPlayer != null) {
targetPlayerName = targetPlayer.getPlayerName();
}
updatePlayerStatus(plugin);
if (targetPlayer != null && targetPlayer.isPlaying()) {