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

Compare commits

..

8 Commits

Author SHA1 Message Date
Albert Vaca Cintora
61190189ec Release 1.24.1 2023-04-13 19:10:54 +02:00
Albert Vaca Cintora
4c6cda711f Fix "find my phone" notification being dismissable
Dismissing the notification caused the alarm to keep playing without a
way to stop it.

BUG: 446349
2023-04-13 19:10:12 +02:00
Albert Vaca Cintora
64b32003cc Fix cards still visibile if device got unpaired with the app open 2023-04-13 18:55:49 +02:00
Albert Vaca Cintora
39fb60b81b Rename binding to pairingBinding 2023-04-13 18:55:28 +02:00
Albert Vaca Cintora
431312fcd0 Bump dependencies 2023-04-13 18:37:27 +02:00
Albert Vaca Cintora
6c8c6dd63e Fix compatibility with API 20 2023-04-13 17:56:13 +02:00
Dmitry Yudin
8aeefded7c Main activity responsive layout 2023-04-13 17:56:13 +02:00
Albert Vaca Cintora
e2dbc39e3a Do not force TLS v1
Stop specifying the TLS version we want and let the system chose

Co-authored-by: Daniel Tang <danielzgtg.opensource@gmail.com>
2023-04-13 11:07:29 +00:00
11 changed files with 39 additions and 38 deletions

8
.idea/.gitignore generated vendored
View File

@@ -1,8 +0,0 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

BIN
.idea/icon.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

View File

@@ -2,8 +2,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="org.kde.kdeconnect_tp"
android:versionCode="12400"
android:versionName="1.24.0">
android:versionCode="12401"
android:versionName="1.24.1">
<supports-screens
android:anyDensity="true"

View File

@@ -4,7 +4,7 @@ import com.android.build.gradle.api.ApplicationVariant
import com.github.jk1.license.render.TextReportRenderer
buildscript {
ext.kotlin_version = '1.8.0'
ext.kotlin_version = '1.8.10'
dependencies {
classpath 'com.android.tools.build:gradle:7.4.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
@@ -136,19 +136,19 @@ ext {
}
dependencies {
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.2'
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.3'
implementation 'androidx.media:media:1.6.0'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.core:core-ktx:1.9.0'
implementation 'androidx.core:core-ktx:1.10.0'
implementation 'androidx.preference:preference-ktx:1.2.0'
implementation 'androidx.recyclerview:recyclerview:1.3.0'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
implementation 'androidx.documentfile:documentfile:1.0.1'
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.0"
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.6.0'
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1"
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.6.1'
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
implementation 'androidx.lifecycle:lifecycle-common-java8:2.6.0'
implementation 'androidx.lifecycle:lifecycle-common-java8:2.6.1'
implementation 'androidx.gridlayout:gridlayout:1.0.0'
implementation 'com.google.android.material:material:1.8.0'
implementation 'com.jakewharton:disklrucache:2.0.2' //For caching album art bitmaps

View File

@@ -209,7 +209,7 @@ public class SslHelper {
trustManagerFactory.init(keyStore);
// Setup custom trust manager if device not trusted
SSLContext tlsContext = SSLContext.getInstance("TLSv1"); //Newer TLS versions are only supported on API 16+
SSLContext tlsContext = SSLContext.getInstance("TLS");
if (isDeviceTrusted) {
tlsContext.init(keyManagerFactory.getKeyManagers(), trustManagerFactory.getTrustManagers(), RandomHelper.secureRandom);
} else {

View File

@@ -151,6 +151,7 @@ public class FindMyPhonePlugin extends Plugin {
.setFullScreenIntent(pendingIntent, true)
.setPriority(NotificationCompat.PRIORITY_HIGH)
.setAutoCancel(true)
.setOngoing(true)
.setContentTitle(context.getString(R.string.findmyphone_found));
notification.setGroup("BackgroundService");

View File

@@ -61,8 +61,8 @@ class DeviceFragment : Fragment() {
*
* Used to start and retry pairing.
*/
private var binding: ViewPairRequestBinding? = null
private fun requireBinding() = binding ?: throw IllegalStateException("binding is not set")
private var pairingBinding: ViewPairRequestBinding? = null
private fun requirePairingBinding() = pairingBinding ?: throw IllegalStateException("binding is not set")
/**
* Cannot-communicate ViewBinding.
@@ -94,7 +94,7 @@ class DeviceFragment : Fragment() {
val deviceBinding = deviceBinding ?: return null
// Inner binding for the layout shown when we're not paired yet...
binding = deviceBinding.pairRequest
pairingBinding = deviceBinding.pairRequest
// ...and for when pairing doesn't (or can't) work
errorBinding = deviceBinding.pairError
@@ -102,8 +102,8 @@ class DeviceFragment : Fragment() {
device = it.getDevice(deviceId)
}
requireBinding().pairButton.setOnClickListener {
with(requireBinding()) {
requirePairingBinding().pairButton.setOnClickListener {
with(requirePairingBinding()) {
pairButton.visibility = View.GONE
pairMessage.text = null
pairVerification.visibility = View.VISIBLE
@@ -112,13 +112,13 @@ class DeviceFragment : Fragment() {
}
device?.requestPairing()
}
requireBinding().acceptButton.setOnClickListener {
requirePairingBinding().acceptButton.setOnClickListener {
device?.apply {
acceptPairing()
requireBinding().pairingButtons.visibility = View.GONE
requirePairingBinding().pairingButtons.visibility = View.GONE
}
}
requireBinding().rejectButton.setOnClickListener {
requirePairingBinding().rejectButton.setOnClickListener {
device?.apply {
//Remove listener so buttons don't show for a while before changing the view
removePluginsChangedListener(pluginsChangedListener)
@@ -155,7 +155,7 @@ class DeviceFragment : Fragment() {
device.removePairingCallback(pairingCallback)
}
super.onDestroyView()
binding = null
pairingBinding = null
errorBinding = null
deviceBinding = null
}
@@ -243,28 +243,36 @@ class DeviceFragment : Fragment() {
mActivity?.runOnUiThread(object : Runnable {
override fun run() {
if (device.isPairRequestedByPeer) {
requireBinding().pairMessage.setText(R.string.pair_requested)
requireBinding().pairVerification.visibility = View.VISIBLE
requireBinding().pairVerification.text =
SslHelper.getVerificationKey(SslHelper.certificate, device.certificate)
requireBinding().pairingButtons.visibility = View.VISIBLE
requireBinding().pairProgress.visibility = View.GONE
requireBinding().pairButton.visibility = View.GONE
requireBinding().pairRequestButtons.visibility = View.VISIBLE
with (requirePairingBinding()) {
pairMessage.setText(R.string.pair_requested)
pairVerification.visibility = View.VISIBLE
pairVerification.text = SslHelper.getVerificationKey(SslHelper.certificate, device.certificate)
pairingButtons.visibility = View.VISIBLE
pairProgress.visibility = View.GONE
pairButton.visibility = View.GONE
pairRequestButtons.visibility = View.VISIBLE
}
with (requireDeviceBinding()) {
permissionsList.visibility = View.GONE
pluginsList.visibility = View.GONE
}
} else {
val paired = device.isPaired
val reachable = device.isReachable
requireBinding().pairingButtons.visibility = if (paired) View.GONE else View.VISIBLE
requirePairingBinding().pairingButtons.visibility = if (paired) View.GONE else View.VISIBLE
if (paired && !reachable) {
requireErrorBinding().errorMessageContainer.visibility = View.VISIBLE
requireErrorBinding().notReachableMessage.visibility = View.VISIBLE
requireDeviceBinding().permissionsList.visibility = View.GONE
requireDeviceBinding().pluginsList.visibility = View.GONE
} else {
} else if (paired) {
requireErrorBinding().errorMessageContainer.visibility = View.GONE
requireErrorBinding().notReachableMessage.visibility = View.GONE
requireDeviceBinding().permissionsList.visibility = View.VISIBLE
requireDeviceBinding().pluginsList.visibility = View.VISIBLE
} else {
requireDeviceBinding().permissionsList.visibility = View.GONE
requireDeviceBinding().pluginsList.visibility = View.GONE
}
try {
if (paired && reachable) {
@@ -332,7 +340,7 @@ class DeviceFragment : Fragment() {
override fun pairingFailed(error: String) {
mActivity?.runOnUiThread {
with(requireBinding()) {
with(requirePairingBinding()) {
pairMessage.text = error
pairVerification.text = null
pairVerification.visibility = View.GONE
@@ -346,7 +354,7 @@ class DeviceFragment : Fragment() {
override fun unpaired() {
mActivity?.runOnUiThread {
with(requireBinding()) {
with(requirePairingBinding()) {
pairMessage.setText(R.string.device_not_paired)
pairVerification.visibility = View.GONE
pairProgress.visibility = View.GONE