Repo Created

This commit is contained in:
Fr4nz D13trich 2025-11-15 17:44:12 +01:00
parent eb305e2886
commit a8c22c65db
4784 changed files with 329907 additions and 2 deletions

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?><!--
~ SPDX-FileCopyrightText: 2024 microG Project Team
~ SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application>
<service
android:name="org.microg.gms.threadnetwork.ThreadNetworkService"
android:exported="true">
<intent-filter>
<action android:name="com.google.android.gms.threadnetwork.service.START" />
</intent-filter>
</service>
</application>
</manifest>

View file

@ -0,0 +1,95 @@
/*
* SPDX-FileCopyrightText: 2024 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package org.microg.gms.threadnetwork
import android.content.Context
import android.util.Log
import com.google.android.gms.common.ConnectionResult
import com.google.android.gms.common.Feature
import com.google.android.gms.common.api.CommonStatusCodes
import com.google.android.gms.common.api.Status
import com.google.android.gms.common.api.internal.IStatusCallback
import com.google.android.gms.common.internal.ConnectionInfo
import com.google.android.gms.common.internal.GetServiceRequest
import com.google.android.gms.common.internal.IGmsCallbacks
import com.google.android.gms.threadnetwork.ThreadBorderAgent
import com.google.android.gms.threadnetwork.ThreadNetworkCredentials
import com.google.android.gms.threadnetwork.ThreadNetworkStatusCodes
import com.google.android.gms.threadnetwork.internal.*
import org.microg.gms.BaseService
import org.microg.gms.common.GmsService
private const val TAG = "ThreadNetworkService"
class ThreadNetworkService : BaseService(TAG, GmsService.THREAD_NETWORK) {
override fun handleServiceRequest(callback: IGmsCallbacks, request: GetServiceRequest, service: GmsService) {
val connectionInfo = ConnectionInfo()
connectionInfo.features = arrayOf(Feature("threadnetwork", 8))
callback.onPostInitCompleteWithConnectionInfo(
ConnectionResult.SUCCESS, ThreadNetworkServiceImpl(this, request.packageName).asBinder(), connectionInfo
)
}
}
class ThreadNetworkServiceImpl(private val context: Context, private val packageName: String) : IThreadNetworkService.Stub() {
private val THREAD_NETWORK_NOT_FOUND = Status(ThreadNetworkStatusCodes.THREAD_NETWORK_NOT_FOUND, "THREAD_NETWORK_NOT_FOUND")
override fun addCredentials(callback: IStatusCallback?, borderAgent: ThreadBorderAgent?, credentials: ThreadNetworkCredentials?) {
if (borderAgent == null || credentials == null) {
runCatching { callback?.onResult(Status(CommonStatusCodes.DEVELOPER_ERROR, "Illegal arguments")) }
return
}
Log.d(TAG, "Not yet implemented: addCredentials")
runCatching { callback?.onResult(Status.SUCCESS) }
}
override fun removeCredentials(callback: IStatusCallback?, borderAgent: ThreadBorderAgent?) {
if (borderAgent == null) {
runCatching { callback?.onResult(Status(CommonStatusCodes.DEVELOPER_ERROR, "Illegal arguments")) }
return
}
Log.d(TAG, "Not yet implemented: removeCredentials")
runCatching { callback?.onResult(Status.SUCCESS) }
}
override fun getAllCredentials(callbacks: IThreadNetworkServiceCallbacks?) {
Log.d(TAG, "Not yet implemented: getAllCredentials")
runCatching { callbacks?.onCredentials(Status.SUCCESS, emptyList()) }
}
override fun getCredentialsByExtendedPanId(callback: IGetCredentialsByExtendedPanIdCallback?, extendedPanId: ByteArray?) {
if (extendedPanId == null) {
runCatching { callback?.onCredentials(Status(CommonStatusCodes.DEVELOPER_ERROR, "Illegal arguments"), null) }
return
}
Log.d(TAG, "Not yet implemented: getCredentialsByExtendedPanId")
runCatching { callback?.onCredentials(THREAD_NETWORK_NOT_FOUND, null) }
}
override fun getCredentialsByBorderAgent(callbacks: IThreadNetworkServiceCallbacks?, borderAgent: ThreadBorderAgent?) {
if (borderAgent == null) {
runCatching { callbacks?.onCredentials(Status(CommonStatusCodes.DEVELOPER_ERROR, "Illegal arguments"), emptyList()) }
return
}
Log.d(TAG, "Not yet implemented: getCredentialsByBorderAgent: $borderAgent")
runCatching { callbacks?.onCredentials(Status.SUCCESS, emptyList()) }
}
override fun getPreferredCredentials(callback: IGetPreferredCredentialsCallback?) {
Log.d(TAG, "Not yet implemented: getPreferredCredentials")
runCatching { callback?.onPreferredCredentials(THREAD_NETWORK_NOT_FOUND, null) }
}
override fun isPreferredCredentials(callback: IIsPreferredCredentialsCallback?, credentials: ThreadNetworkCredentials?) {
if (credentials == null) {
runCatching { callback?.onIsPreferredCredentials(Status(CommonStatusCodes.DEVELOPER_ERROR, "Illegal arguments"), false) }
return
}
Log.d(TAG, "Not yet implemented: isPreferredCredentials: $credentials")
runCatching { callback?.onIsPreferredCredentials(THREAD_NETWORK_NOT_FOUND, false) }
}
}