Skip to content

Commit 0bd4966

Browse files
committed
style: add ktlint dependency to sysbridge module and reformat
1 parent 4e9f24b commit 0bd4966

20 files changed

+198
-158
lines changed

sysbridge/build.gradle.kts

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ plugins {
66
alias(libs.plugins.google.devtools.ksp)
77
alias(libs.plugins.dagger.hilt.android)
88
alias(libs.plugins.kotlin.parcelize)
9+
alias(libs.plugins.jlleitschuh.gradle.ktlint)
910
}
1011

1112
android {
@@ -29,7 +30,7 @@ android {
2930
"-DANDROID_STL=c++_static",
3031
"-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON",
3132
"-DANDROID_WEAK_API_DEFS=ON",
32-
"-Daidl_src_dir=${aidlSrcDir.absolutePath}"
33+
"-Daidl_src_dir=${aidlSrcDir.absolutePath}",
3334
)
3435
}
3536
}
@@ -39,7 +40,7 @@ android {
3940
release {
4041
proguardFiles(
4142
getDefaultProguardFile("proguard-android-optimize.txt"),
42-
"proguard-rules.pro"
43+
"proguard-rules.pro",
4344
)
4445
}
4546
}
@@ -127,7 +128,9 @@ val generateLibEvDevEventNames by tasks.registering(Exec::class) {
127128
?: throw GradleException("No prebuilt toolchain directories found in $prebuiltDir")
128129

129130
if (hostDirs.size != 1) {
130-
throw GradleException("Expected exactly one prebuilt toolchain directory in $prebuiltDir, found ${hostDirs.size}")
131+
throw GradleException(
132+
"Expected exactly one prebuilt toolchain directory in $prebuiltDir, found ${hostDirs.size}",
133+
)
131134
}
132135
val toolchainDir = hostDirs[0].absolutePath
133136

@@ -196,9 +199,11 @@ val compileAidlNdk by tasks.registering(Exec::class) {
196199
"-o", cppOutDir.absolutePath,
197200
"-h", cppHeaderOutDir.absolutePath,
198201
"-I", importSearchPath,
199-
aidlFile.absolutePath
202+
aidlFile.absolutePath,
200203
)
201204
}
202205

203-
logger.lifecycle("AIDL NDK compilation finished. Check outputs in $cppOutDir and $cppHeaderOutDir")
204-
}
206+
logger.lifecycle(
207+
"AIDL NDK compilation finished. Check outputs in $cppOutDir and $cppHeaderOutDir",
208+
)
209+
}

sysbridge/src/main/java/io/github/sds100/keymapper/sysbridge/SystemBridgeHiltModule.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,17 @@ abstract class SystemBridgeHiltModule {
1818

1919
@Singleton
2020
@Binds
21-
abstract fun bindSystemBridgeSetupController(impl: SystemBridgeSetupControllerImpl): SystemBridgeSetupController
21+
abstract fun bindSystemBridgeSetupController(
22+
impl: SystemBridgeSetupControllerImpl,
23+
): SystemBridgeSetupController
2224

2325
@Singleton
2426
@Binds
25-
abstract fun bindSystemBridgeManager(impl: SystemBridgeConnectionManagerImpl): SystemBridgeConnectionManager
27+
abstract fun bindSystemBridgeManager(
28+
impl: SystemBridgeConnectionManagerImpl,
29+
): SystemBridgeConnectionManager
2630

2731
@Singleton
2832
@Binds
2933
abstract fun bindAdbManager(impl: AdbManagerImpl): AdbManager
30-
}
34+
}

sysbridge/src/main/java/io/github/sds100/keymapper/sysbridge/adb/AdbClient.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@ import io.github.sds100.keymapper.sysbridge.adb.AdbProtocol.A_STLS
1414
import io.github.sds100.keymapper.sysbridge.adb.AdbProtocol.A_STLS_VERSION
1515
import io.github.sds100.keymapper.sysbridge.adb.AdbProtocol.A_VERSION
1616
import io.github.sds100.keymapper.sysbridge.adb.AdbProtocol.A_WRTE
17-
import kotlinx.coroutines.delay
18-
import timber.log.Timber
1917
import java.io.Closeable
2018
import java.io.DataInputStream
2119
import java.io.DataOutputStream
@@ -26,6 +24,8 @@ import java.nio.ByteBuffer
2624
import java.nio.ByteOrder
2725
import javax.net.ssl.SSLProtocolException
2826
import javax.net.ssl.SSLSocket
27+
import kotlinx.coroutines.delay
28+
import timber.log.Timber
2929

3030
private const val TAG = "AdbClient"
3131

@@ -147,16 +147,16 @@ internal class AdbClient(private val host: String, private val port: Int, privat
147147
}
148148

149149
private fun write(command: Int, arg0: Int, arg1: Int, data: ByteArray? = null) = write(
150-
AdbMessage(command, arg0, arg1, data)
150+
AdbMessage(command, arg0, arg1, data),
151151
)
152152

153153
private fun write(command: Int, arg0: Int, arg1: Int, data: String) = write(
154154
AdbMessage(
155155
command,
156156
arg0,
157157
arg1,
158-
data
159-
)
158+
data,
159+
),
160160
)
161161

162162
private fun write(message: AdbMessage) {

sysbridge/src/main/java/io/github/sds100/keymapper/sysbridge/adb/AdbError.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ sealed class AdbError : KMError() {
99
data object ConnectionError : AdbError()
1010
data object SslHandshakeError : AdbError()
1111
data class Unknown(val exception: kotlin.Exception) : AdbError()
12-
}
12+
}

sysbridge/src/main/java/io/github/sds100/keymapper/sysbridge/adb/AdbKey.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,6 @@ import android.security.keystore.KeyProperties
88
import android.util.Base64
99
import androidx.annotation.RequiresApi
1010
import androidx.core.content.edit
11-
import org.bouncycastle.asn1.x500.X500Name
12-
import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo
13-
import org.bouncycastle.cert.X509v3CertificateBuilder
14-
import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder
15-
import org.conscrypt.Conscrypt
16-
import rikka.core.ktx.unsafeLazy
1711
import java.io.ByteArrayInputStream
1812
import java.math.BigInteger
1913
import java.net.Socket
@@ -42,6 +36,12 @@ import javax.net.ssl.SSLContext
4236
import javax.net.ssl.SSLEngine
4337
import javax.net.ssl.X509ExtendedKeyManager
4438
import javax.net.ssl.X509ExtendedTrustManager
39+
import org.bouncycastle.asn1.x500.X500Name
40+
import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo
41+
import org.bouncycastle.cert.X509v3CertificateBuilder
42+
import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder
43+
import org.conscrypt.Conscrypt
44+
import rikka.core.ktx.unsafeLazy
4545

4646
private const val TAG = "AdbKey"
4747

@@ -344,7 +344,7 @@ class PreferenceAdbKeyStore(private val preference: SharedPreferences) : AdbKeyS
344344

345345
const val ANDROID_PUBKEY_MODULUS_SIZE = 2048 / 8
346346
const val ANDROID_PUBKEY_MODULUS_SIZE_WORDS = ANDROID_PUBKEY_MODULUS_SIZE / 4
347-
const val RSAPublicKey_Size = 524
347+
const val RSA_PUBLIC_KEY_SIZE = 524
348348

349349
private fun BigInteger.toAdbEncoded(): IntArray {
350350
// little-endian integer with padding zeros in the end
@@ -379,7 +379,7 @@ private fun RSAPublicKey.adbEncoded(name: String): ByteArray {
379379
val r = BigInteger.ZERO.setBit(ANDROID_PUBKEY_MODULUS_SIZE * 8)
380380
val rr = r.modPow(BigInteger.valueOf(2), modulus)
381381

382-
val buffer = ByteBuffer.allocate(RSAPublicKey_Size).order(ByteOrder.LITTLE_ENDIAN)
382+
val buffer = ByteBuffer.allocate(RSA_PUBLIC_KEY_SIZE).order(ByteOrder.LITTLE_ENDIAN)
383383
buffer.putInt(ANDROID_PUBKEY_MODULUS_SIZE_WORDS)
384384
buffer.putInt(n0inv.toInt())
385385
modulus.toAdbEncoded().forEach { buffer.putInt(it) }

sysbridge/src/main/java/io/github/sds100/keymapper/sysbridge/adb/AdbManager.kt

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,18 @@ import io.github.sds100.keymapper.common.utils.KMResult
1010
import io.github.sds100.keymapper.common.utils.Success
1111
import io.github.sds100.keymapper.common.utils.success
1212
import io.github.sds100.keymapper.common.utils.then
13+
import javax.inject.Inject
14+
import javax.inject.Singleton
1315
import kotlinx.coroutines.Dispatchers
1416
import kotlinx.coroutines.sync.Mutex
1517
import kotlinx.coroutines.sync.withLock
1618
import kotlinx.coroutines.withContext
1719
import timber.log.Timber
18-
import javax.inject.Inject
19-
import javax.inject.Singleton
20-
2120

2221
@RequiresApi(Build.VERSION_CODES.R)
2322
@Singleton
24-
class AdbManagerImpl @Inject constructor(
25-
@ApplicationContext private val ctx: Context,
26-
) : AdbManager {
23+
class AdbManagerImpl @Inject constructor(@ApplicationContext private val ctx: Context) :
24+
AdbManager {
2725
companion object {
2826
private const val LOCALHOST = "127.0.0.1"
2927
}
@@ -92,11 +90,15 @@ class AdbManagerImpl @Inject constructor(
9290
withContext(Dispatchers.IO) {
9391
start()
9492
}
95-
Timber.i("Successfully paired with wireless ADB on port $port with code $code")
93+
Timber.i(
94+
"Successfully paired with wireless ADB on port $port with code $code",
95+
)
9696
Success(Unit)
9797
} catch (e: Exception) {
9898
e.printStackTrace()
99-
Timber.e("Failed to pair with wireless ADB on port $port with code $code: $e")
99+
Timber.e(
100+
"Failed to pair with wireless ADB on port $port with code $code: $e",
101+
)
100102
AdbError.PairingError
101103
}
102104
}
@@ -126,4 +128,4 @@ interface AdbManager {
126128

127129
@RequiresApi(Build.VERSION_CODES.R)
128130
suspend fun pair(code: String): KMResult<Unit>
129-
}
131+
}

sysbridge/src/main/java/io/github/sds100/keymapper/sysbridge/adb/AdbMdns.kt

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ import android.net.nsd.NsdServiceInfo
66
import android.os.Build
77
import android.os.ext.SdkExtensions
88
import androidx.annotation.RequiresApi
9+
import java.io.IOException
10+
import java.net.InetSocketAddress
11+
import java.net.NetworkInterface
12+
import java.net.ServerSocket
913
import kotlinx.coroutines.Dispatchers
1014
import kotlinx.coroutines.ExperimentalCoroutinesApi
1115
import kotlinx.coroutines.channels.Channel
@@ -18,19 +22,12 @@ import kotlinx.coroutines.sync.withLock
1822
import kotlinx.coroutines.withContext
1923
import kotlinx.coroutines.withTimeout
2024
import timber.log.Timber
21-
import java.io.IOException
22-
import java.net.InetSocketAddress
23-
import java.net.NetworkInterface
24-
import java.net.ServerSocket
2525

2626
/**
2727
* This uses mDNS to scan for the ADB pairing and connection ports.
2828
*/
2929
@RequiresApi(Build.VERSION_CODES.R)
30-
internal class AdbMdns(
31-
ctx: Context,
32-
private val serviceType: AdbServiceType,
33-
) {
30+
internal class AdbMdns(ctx: Context, private val serviceType: AdbServiceType) {
3431

3532
private val nsdManager: NsdManager = ctx.getSystemService(NsdManager::class.java)
3633

@@ -52,7 +49,9 @@ internal class AdbMdns(
5249
}
5350

5451
override fun onServiceResolved(nsdServiceInfo: NsdServiceInfo) {
55-
Timber.d("onServiceResolved: ${nsdServiceInfo.serviceName} ${nsdServiceInfo.host} ${nsdServiceInfo.port} ${nsdServiceInfo.serviceType}")
52+
Timber.d(
53+
"onServiceResolved: ${nsdServiceInfo.serviceName} ${nsdServiceInfo.host} ${nsdServiceInfo.port} ${nsdServiceInfo.serviceType}",
54+
)
5655
serviceResolvedChannel?.trySendBlocking(nsdServiceInfo)
5756
}
5857

@@ -92,7 +91,9 @@ internal class AdbMdns(
9291
}
9392

9493
override fun onServiceFound(serviceInfo: NsdServiceInfo) {
95-
Timber.d("onServiceFound: ${serviceInfo.serviceName} ${serviceInfo.host} ${serviceInfo.port} ${serviceInfo.serviceType}")
94+
Timber.d(
95+
"onServiceFound: ${serviceInfo.serviceName} ${serviceInfo.host} ${serviceInfo.port} ${serviceInfo.serviceType}",
96+
)
9697

9798
// You can only resolve one service at a time and they can take some time to resolve.
9899
serviceDiscoveredChannel?.trySend(serviceInfo)
@@ -135,7 +136,7 @@ internal class AdbMdns(
135136
nsdManager.discoverServices(
136137
serviceType.id,
137138
NsdManager.PROTOCOL_DNS_SD,
138-
discoveryListener
139+
discoveryListener,
139140
)
140141

141142
try {
@@ -164,7 +165,6 @@ internal class AdbMdns(
164165
}
165166
}
166167
}
167-
168168
} catch (e: Exception) {
169169
Timber.e(e, "Failed to discover ADB port")
170170
} finally {

sysbridge/src/main/java/io/github/sds100/keymapper/sysbridge/adb/AdbMessage.kt

Lines changed: 27 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -12,29 +12,31 @@ import java.nio.ByteBuffer
1212
import java.nio.ByteOrder
1313

1414
internal class AdbMessage(
15-
val command: Int,
16-
val arg0: Int,
17-
val arg1: Int,
18-
val data_length: Int,
19-
val data_crc32: Int,
20-
val magic: Int,
21-
val data: ByteArray?
15+
val command: Int,
16+
val arg0: Int,
17+
val arg1: Int,
18+
val data_length: Int,
19+
val data_crc32: Int,
20+
val magic: Int,
21+
val data: ByteArray?,
2222
) {
2323

2424
constructor(command: Int, arg0: Int, arg1: Int, data: String) : this(
25-
command,
26-
arg0,
27-
arg1,
28-
"$data\u0000".toByteArray())
25+
command,
26+
arg0,
27+
arg1,
28+
"$data\u0000".toByteArray(),
29+
)
2930

3031
constructor(command: Int, arg0: Int, arg1: Int, data: ByteArray?) : this(
31-
command,
32-
arg0,
33-
arg1,
34-
data?.size ?: 0,
35-
crc32(data),
36-
(command.toLong() xor 0xFFFFFFFF).toInt(),
37-
data)
32+
command,
33+
arg0,
34+
arg1,
35+
data?.size ?: 0,
36+
crc32(data),
37+
(command.toLong() xor 0xFFFFFFFF).toInt(),
38+
data,
39+
)
3840

3941
fun validate(): Boolean {
4042
if (command != magic xor -0x1) return false
@@ -77,7 +79,9 @@ internal class AdbMessage(
7779
if (data != null) {
7880
if (other.data == null) return false
7981
if (!data.contentEquals(other.data)) return false
80-
} else if (other.data != null) return false
82+
} else if (other.data != null) {
83+
return false
84+
}
8185

8286
return true
8387
}
@@ -109,22 +113,23 @@ internal class AdbMessage(
109113
A_STLS -> "A_STLS"
110114
else -> command.toString()
111115
}
116+
@Suppress("ktlint:standard:max-line-length")
112117
return "command=$commandString, arg0=$arg0, arg1=$arg1, data_length=$data_length, data_crc32=$data_crc32, magic=$magic, data=${data?.contentToString()}"
113118
}
114119

115120
companion object {
116121

117122
const val HEADER_LENGTH = 24
118123

119-
120124
private fun crc32(data: ByteArray?): Int {
121125
if (data == null) return 0
122126
var res = 0
123127
for (b in data) {
124-
if (b >= 0)
128+
if (b >= 0) {
125129
res += b
126-
else
130+
} else {
127131
res += b + 256
132+
}
128133
}
129134
return res
130135
}

0 commit comments

Comments
 (0)