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

Allow for debugging on the same device

This change builds separate debugging app with a different
ID which can be installed alongside the release version.
This commit is contained in:
TPJ Schikhof 2024-12-27 18:20:08 +00:00 committed by Albert Vaca Cintora
parent b0c9e46a31
commit fa22722498
7 changed files with 43 additions and 4 deletions

View File

@ -359,7 +359,7 @@ SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted
<provider <provider
android:name="androidx.core.content.FileProvider" android:name="androidx.core.content.FileProvider"
android:authorities="org.kde.kdeconnect_tp.fileprovider" android:authorities="${applicationId}.fileprovider"
android:exported="false" android:exported="false"
android:grantUriPermissions="true"> android:grantUriPermissions="true">
<meta-data <meta-data

View File

@ -27,6 +27,7 @@ plugins {
} }
val licenseResDir = File("$projectDir/build/dependency-license-res") val licenseResDir = File("$projectDir/build/dependency-license-res")
val debugSuffix = "debugging_edition"
fun String.runCommand( fun String.runCommand(
workingDir: File = File("."), workingDir: File = File("."),
@ -82,6 +83,13 @@ android {
res.setSrcDirs(listOf(licenseResDir, "res")) res.setSrcDirs(listOf(licenseResDir, "res"))
assets.setSrcDirs(listOf("assets")) assets.setSrcDirs(listOf("assets"))
} }
getByName("debug") {
manifest.srcFile("AndroidManifest.xml")
java.setSrcDirs(listOf("src"))
resources.setSrcDirs(listOf("resources"))
res.setSrcDirs(listOf(licenseResDir, "dbg-res"))
assets.setSrcDirs(listOf("assets"))
}
getByName("test") { getByName("test") {
java.setSrcDirs(listOf("tests")) java.setSrcDirs(listOf("tests"))
} }
@ -105,6 +113,8 @@ android {
isMinifyEnabled = false isMinifyEnabled = false
isShrinkResources = false isShrinkResources = false
signingConfig = signingConfigs.getByName("debug") signingConfig = signingConfigs.getByName("debug")
applicationIdSuffix = ".$debugSuffix"
versionNameSuffix = "-$debugSuffix"
} }
getByName("release") { getByName("release") {
isMinifyEnabled = true isMinifyEnabled = true

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<!-- <background android:drawable="@drawable/ic_launcher_background"/>-->
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
<monochrome android:drawable="@drawable/ic_launcher_monochrome"/>
</adaptive-icon>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<!-- <background android:drawable="@drawable/ic_launcher_banner_background"/>-->
<foreground android:drawable="@drawable/ic_launcher_banner_foreground"/>
</adaptive-icon>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<!-- <background android:drawable="@drawable/ic_launcher_background"/>-->
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
<monochrome android:drawable="@drawable/ic_launcher_monochrome"/>
</adaptive-icon>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
SPDX-FileCopyrightText: 2024 TPJ Schikhof <kde@schikhof.eu>
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
-->
<resources>
<string name="kde_connect">KDE Connect Debug</string>
</resources>

View File

@ -32,6 +32,7 @@ import org.kde.kdeconnect.Backends.BaseLinkProvider
import org.kde.kdeconnect.Backends.BaseLinkProvider.ConnectionReceiver import org.kde.kdeconnect.Backends.BaseLinkProvider.ConnectionReceiver
import org.kde.kdeconnect.Backends.BluetoothBackend.BluetoothLinkProvider import org.kde.kdeconnect.Backends.BluetoothBackend.BluetoothLinkProvider
import org.kde.kdeconnect.Backends.LanBackend.LanLinkProvider import org.kde.kdeconnect.Backends.LanBackend.LanLinkProvider
import org.kde.kdeconnect.Backends.LoopbackBackend.LoopbackLinkProvider
import org.kde.kdeconnect.Helpers.NotificationHelper import org.kde.kdeconnect.Helpers.NotificationHelper
import org.kde.kdeconnect.Plugins.ClibpoardPlugin.ClipboardFloatingActivity import org.kde.kdeconnect.Plugins.ClibpoardPlugin.ClipboardFloatingActivity
import org.kde.kdeconnect.Plugins.RunCommandPlugin.RunCommandActivity import org.kde.kdeconnect.Plugins.RunCommandPlugin.RunCommandActivity
@ -50,7 +51,7 @@ import org.kde.kdeconnect_tp.R
class BackgroundService : Service() { class BackgroundService : Service() {
private lateinit var applicationInstance: KdeConnect private lateinit var applicationInstance: KdeConnect
private val linkProviders = ArrayList<BaseLinkProvider>() private val linkProviders = mutableListOf<BaseLinkProvider>()
private val connectedToNonCellularNetwork = MutableLiveData<Boolean>() private val connectedToNonCellularNetwork = MutableLiveData<Boolean>()
/** Indicates whether device is connected over wifi / usb / bluetooth / (anything other than cellular) */ /** Indicates whether device is connected over wifi / usb / bluetooth / (anything other than cellular) */
@ -148,8 +149,8 @@ class BackgroundService : Service() {
private fun createForegroundNotification(): Notification { private fun createForegroundNotification(): Notification {
// Why is this needed: https://developer.android.com/guide/components/services#Foreground // Why is this needed: https://developer.android.com/guide/components/services#Foreground
val connectedDevices = ArrayList<String>() val connectedDevices = mutableListOf<String>()
val connectedDeviceIds = ArrayList<String>() val connectedDeviceIds = mutableListOf<String>()
for (device in applicationInstance.devices.values) { for (device in applicationInstance.devices.values) {
if (device.isReachable && device.isPaired) { if (device.isReachable && device.isPaired) {
connectedDeviceIds.add(device.deviceId) connectedDeviceIds.add(device.deviceId)