Repo Created
This commit is contained in:
parent
eb305e2886
commit
a8c22c65db
4784 changed files with 329907 additions and 2 deletions
50
play-services-fitness/core/build.gradle
Normal file
50
play-services-fitness/core/build.gradle
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2024 microG Project Team
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
apply plugin: 'com.android.library'
|
||||
apply plugin: 'kotlin-android'
|
||||
apply plugin: 'maven-publish'
|
||||
apply plugin: 'signing'
|
||||
|
||||
dependencies {
|
||||
api project(':play-services-fitness')
|
||||
|
||||
implementation project(':play-services-base-core')
|
||||
}
|
||||
|
||||
android {
|
||||
namespace "org.microg.gms.fitness.core"
|
||||
|
||||
compileSdkVersion androidCompileSdk
|
||||
buildToolsVersion "$androidBuildVersionTools"
|
||||
|
||||
defaultConfig {
|
||||
versionName version
|
||||
minSdkVersion androidMinSdk
|
||||
targetSdkVersion androidTargetSdk
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main.java.srcDirs += 'src/main/kotlin'
|
||||
}
|
||||
|
||||
lintOptions {
|
||||
disable 'MissingTranslation', 'GetLocales'
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = 1.8
|
||||
targetCompatibility = 1.8
|
||||
}
|
||||
|
||||
kotlinOptions {
|
||||
jvmTarget = 1.8
|
||||
}
|
||||
}
|
||||
|
||||
// Not publishable yet
|
||||
// apply from: '../../gradle/publish-android.gradle'
|
||||
|
||||
description = 'microG service implementation for play-services-fitness'
|
||||
47
play-services-fitness/core/src/main/AndroidManifest.xml
Normal file
47
play-services-fitness/core/src/main/AndroidManifest.xml
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
<?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"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<application>
|
||||
<service
|
||||
android:name="com.google.android.gms.fitness.service.config.FitConfigBroker"
|
||||
android:exported="true"
|
||||
android:enabled="true">
|
||||
<intent-filter>
|
||||
<action android:name="com.google.android.gms.fitness.ConfigApi" />
|
||||
</intent-filter>
|
||||
</service>
|
||||
|
||||
<service
|
||||
android:name="com.google.android.gms.fitness.service.history.FitHistoryBroker"
|
||||
android:enabled="true"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="com.google.android.gms.fitness.HistoryApi" />
|
||||
</intent-filter>
|
||||
</service>
|
||||
|
||||
<service
|
||||
android:name="com.google.android.gms.fitness.service.sessions.FitSessionsBroker"
|
||||
android:enabled="true"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="com.google.android.gms.fitness.SessionsApi" />
|
||||
</intent-filter>
|
||||
</service>
|
||||
|
||||
<service
|
||||
android:name="com.google.android.gms.fitness.service.recording.FitRecordingBroker"
|
||||
android:enabled="true"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="com.google.android.gms.fitness.RecordingApi"/>
|
||||
</intent-filter>
|
||||
</service>
|
||||
|
||||
</application>
|
||||
</manifest>
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
/**
|
||||
* SPDX-FileCopyrightText: 2024 microG Project Team
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package com.google.android.gms.fitness.service.config
|
||||
|
||||
import com.google.android.gms.fitness.service.FITNESS_FEATURES
|
||||
import android.os.Parcel
|
||||
import android.util.Log
|
||||
import com.google.android.gms.common.api.CommonStatusCodes
|
||||
import com.google.android.gms.common.api.Status
|
||||
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.fitness.internal.IGoogleFitConfigApi
|
||||
import com.google.android.gms.fitness.request.DataTypeCreateRequest
|
||||
import com.google.android.gms.fitness.request.DisableFitRequest
|
||||
import com.google.android.gms.fitness.request.ReadDataTypeRequest
|
||||
import org.microg.gms.BaseService
|
||||
import org.microg.gms.common.GmsService
|
||||
import org.microg.gms.utils.warnOnTransactionIssues
|
||||
|
||||
private const val TAG = "FitConfigBroker"
|
||||
|
||||
class FitConfigBroker : BaseService(TAG, GmsService.FITNESS_CONFIG) {
|
||||
override fun handleServiceRequest(callback: IGmsCallbacks, request: GetServiceRequest, service: GmsService) {
|
||||
callback.onPostInitCompleteWithConnectionInfo(CommonStatusCodes.SUCCESS, FitConfigBrokerImpl(),
|
||||
ConnectionInfo().apply {
|
||||
features = FITNESS_FEATURES
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
class FitConfigBrokerImpl : IGoogleFitConfigApi.Stub() {
|
||||
|
||||
override fun createCustomDataType(request: DataTypeCreateRequest?) {
|
||||
Log.d(TAG, "Not implemented createCustomDataType: $request")
|
||||
}
|
||||
|
||||
override fun readDataType(request: ReadDataTypeRequest?) {
|
||||
Log.d(TAG, "Not implemented readDataType: $request")
|
||||
}
|
||||
|
||||
override fun disableFit(request: DisableFitRequest?) {
|
||||
Log.d(TAG, "Method <disableFit> Called: $request")
|
||||
try {
|
||||
request?.callback?.onResult(Status.SUCCESS)
|
||||
} catch (e: Exception) {
|
||||
Log.w(TAG, "disableFit Error $e")
|
||||
}
|
||||
}
|
||||
|
||||
override fun onTransact(code: Int, data: Parcel, reply: Parcel?, flags: Int): Boolean =
|
||||
warnOnTransactionIssues(code, reply, flags, TAG) { super.onTransact(code, data, reply, flags) }
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2025 microG Project Team
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package com.google.android.gms.fitness.service
|
||||
|
||||
import com.google.android.gms.common.Feature
|
||||
|
||||
val FITNESS_FEATURES = arrayOf(
|
||||
Feature("temp_data_point_changelogs", 1L),
|
||||
Feature("temp_session_changelogs", 1L),
|
||||
Feature("temp_data_source_changelogs", 1L),
|
||||
Feature("local_no_account_mode", 1L),
|
||||
)
|
||||
|
|
@ -0,0 +1,109 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2023 microG Project Team
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package com.google.android.gms.fitness.service.history
|
||||
|
||||
import com.google.android.gms.fitness.service.FITNESS_FEATURES
|
||||
import android.os.Parcel
|
||||
import android.util.Log
|
||||
import com.google.android.gms.common.api.CommonStatusCodes
|
||||
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.fitness.internal.IGoogleFitHistoryApi
|
||||
import com.google.android.gms.fitness.request.DailyTotalRequest
|
||||
import com.google.android.gms.fitness.request.DataDeleteRequest
|
||||
import com.google.android.gms.fitness.request.DataInsertRequest
|
||||
import com.google.android.gms.fitness.request.DataPointChangesRequest
|
||||
import com.google.android.gms.fitness.request.DataReadRequest
|
||||
import com.google.android.gms.fitness.request.DataUpdateListenerRegistrationRequest
|
||||
import com.google.android.gms.fitness.request.DataUpdateListenerUnregistrationRequest
|
||||
import com.google.android.gms.fitness.request.DataUpdateRequest
|
||||
import com.google.android.gms.fitness.request.DebugInfoRequest
|
||||
import com.google.android.gms.fitness.request.GetFileUriRequest
|
||||
import com.google.android.gms.fitness.request.GetSyncInfoRequest
|
||||
import com.google.android.gms.fitness.request.ReadRawRequest
|
||||
import com.google.android.gms.fitness.request.ReadStatsRequest
|
||||
import com.google.android.gms.fitness.request.SessionChangesRequest
|
||||
import org.microg.gms.BaseService
|
||||
import org.microg.gms.common.GmsService
|
||||
import org.microg.gms.utils.warnOnTransactionIssues
|
||||
|
||||
private const val TAG = "FitHistoryBroker"
|
||||
|
||||
class FitHistoryBroker : BaseService(TAG, GmsService.FITNESS_HISTORY) {
|
||||
override fun handleServiceRequest(callback: IGmsCallbacks, request: GetServiceRequest, service: GmsService) {
|
||||
callback.onPostInitCompleteWithConnectionInfo(CommonStatusCodes.SUCCESS, FitHistoryBrokerImpl().asBinder(),
|
||||
ConnectionInfo().apply {
|
||||
features = FITNESS_FEATURES
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
class FitHistoryBrokerImpl : IGoogleFitHistoryApi.Stub() {
|
||||
|
||||
override fun readData(request: DataReadRequest?) {
|
||||
Log.d(TAG, "Not implemented readData: $request")
|
||||
}
|
||||
|
||||
override fun insertData(request: DataInsertRequest?) {
|
||||
Log.d(TAG, "Not implemented insertData: $request")
|
||||
}
|
||||
|
||||
override fun deleteData(request: DataDeleteRequest?) {
|
||||
Log.d(TAG, "Not implemented deleteData: $request")
|
||||
}
|
||||
|
||||
override fun getSyncInfo(request: GetSyncInfoRequest) {
|
||||
Log.d(TAG, "Not implemented getSyncInfo: $request")
|
||||
}
|
||||
|
||||
override fun readStats(request: ReadStatsRequest?) {
|
||||
Log.d(TAG, "Not implemented readStats: $request")
|
||||
}
|
||||
|
||||
override fun readRaw(request: ReadRawRequest?) {
|
||||
Log.d(TAG, "Not implemented readRaw: $request")
|
||||
}
|
||||
|
||||
override fun getDailyTotal(request: DailyTotalRequest?) {
|
||||
Log.d(TAG, "Not implemented getDailyTotal: $request")
|
||||
}
|
||||
|
||||
override fun insertDataPrivileged(request: DataInsertRequest?) {
|
||||
Log.d(TAG, "Not implemented insertDataPrivileged: $request")
|
||||
}
|
||||
|
||||
override fun updateData(request: DataUpdateRequest?) {
|
||||
Log.d(TAG, "Not implemented updateData: $request")
|
||||
}
|
||||
|
||||
override fun registerDataUpdateListener(request: DataUpdateListenerRegistrationRequest?) {
|
||||
Log.d(TAG, "Not implemented registerDataUpdateListener: $request")
|
||||
}
|
||||
|
||||
override fun unregisterDataUpdateListener(request: DataUpdateListenerUnregistrationRequest?) {
|
||||
Log.d(TAG, "Not implemented unregisterDataUpdateListener: $request")
|
||||
}
|
||||
|
||||
override fun getFileUri(request: GetFileUriRequest?) {
|
||||
Log.d(TAG, "Not implemented getFileUri: $request")
|
||||
}
|
||||
|
||||
override fun getDebugInfo(request: DebugInfoRequest?) {
|
||||
Log.d(TAG, "Not implemented getDebugInfo: $request")
|
||||
}
|
||||
|
||||
override fun getDataPointChanges(request: DataPointChangesRequest?) {
|
||||
Log.d(TAG, "Not implemented getDataPointChanges: $request")
|
||||
}
|
||||
|
||||
override fun getSessionChanges(request: SessionChangesRequest?) {
|
||||
Log.d(TAG, "Not implemented getSessionChanges: $request")
|
||||
}
|
||||
|
||||
override fun onTransact(code: Int, data: Parcel, reply: Parcel?, flags: Int): Boolean =
|
||||
warnOnTransactionIssues(code, reply, flags, TAG) { super.onTransact(code, data, reply, flags) }
|
||||
}
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
/**
|
||||
* SPDX-FileCopyrightText: 2025 microG Project Team
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package com.google.android.gms.fitness.service.recording
|
||||
|
||||
import com.google.android.gms.fitness.service.FITNESS_FEATURES
|
||||
import android.util.Log
|
||||
import com.google.android.gms.common.api.CommonStatusCodes
|
||||
import com.google.android.gms.common.api.Status
|
||||
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.fitness.data.Subscription
|
||||
import com.google.android.gms.fitness.internal.IGoogleFitRecordingApi
|
||||
import com.google.android.gms.fitness.request.ListSubscriptionsRequest
|
||||
import com.google.android.gms.fitness.request.SubscribeRequest
|
||||
import com.google.android.gms.fitness.request.UnsubscribeRequest
|
||||
import com.google.android.gms.fitness.result.ListSubscriptionsResult
|
||||
import org.microg.gms.BaseService
|
||||
import org.microg.gms.common.GmsService
|
||||
|
||||
private const val TAG = "FitRecordingBroker"
|
||||
|
||||
class FitRecordingBroker : BaseService(TAG, GmsService.FITNESS_RECORDING) {
|
||||
|
||||
override fun handleServiceRequest(callback: IGmsCallbacks, request: GetServiceRequest, service: GmsService) {
|
||||
Log.d(TAG, "handleServiceRequest: account: ${request.account.name} packageName: ${request.packageName}")
|
||||
callback.onPostInitCompleteWithConnectionInfo(CommonStatusCodes.SUCCESS, FitRecordingBrokerImpl(),
|
||||
ConnectionInfo().apply {
|
||||
features = FITNESS_FEATURES
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class FitRecordingBrokerImpl() : IGoogleFitRecordingApi.Stub() {
|
||||
|
||||
override fun subscribe(request: SubscribeRequest) {
|
||||
Log.d(TAG, "Not yet implemented subscribe request: $request")
|
||||
return request.callback.onResult(Status.SUCCESS)
|
||||
}
|
||||
|
||||
override fun unsubscribe(request: UnsubscribeRequest) {
|
||||
Log.d(TAG, "Not yet implemented unsubscribe request: $request")
|
||||
request.callback.onResult(Status.SUCCESS)
|
||||
}
|
||||
|
||||
override fun listSubscriptions(request: ListSubscriptionsRequest) {
|
||||
Log.d(TAG, "Not yet implemented listSubscriptions request: $request")
|
||||
return request.callback.onListSubscriptions(ListSubscriptionsResult(emptyList<Subscription>(), Status(5008)))
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
/**
|
||||
* SPDX-FileCopyrightText: 2024 microG Project Team
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package com.google.android.gms.fitness.service.sessions;
|
||||
|
||||
import com.google.android.gms.fitness.service.FITNESS_FEATURES
|
||||
import android.os.Parcel
|
||||
import android.util.Log
|
||||
import com.google.android.gms.common.api.CommonStatusCodes
|
||||
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.fitness.internal.IGoogleFitSessionsApi
|
||||
import com.google.android.gms.fitness.request.SessionInsertRequest
|
||||
import com.google.android.gms.fitness.request.SessionReadRequest
|
||||
import com.google.android.gms.fitness.request.SessionRegistrationRequest
|
||||
import com.google.android.gms.fitness.request.SessionStartRequest
|
||||
import com.google.android.gms.fitness.request.SessionStopRequest
|
||||
import com.google.android.gms.fitness.request.SessionUnregistrationRequest
|
||||
import org.microg.gms.BaseService
|
||||
import org.microg.gms.common.GmsService
|
||||
import org.microg.gms.utils.warnOnTransactionIssues
|
||||
|
||||
private const val TAG = "FitSessionsBroker"
|
||||
|
||||
class FitSessionsBroker : BaseService(TAG, GmsService.FITNESS_SESSIONS) {
|
||||
override fun handleServiceRequest(callback: IGmsCallbacks, request: GetServiceRequest, service: GmsService) {
|
||||
callback.onPostInitCompleteWithConnectionInfo(CommonStatusCodes.SUCCESS, FitSessionsBrokerImpl(),
|
||||
ConnectionInfo().apply {
|
||||
features = FITNESS_FEATURES
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
class FitSessionsBrokerImpl : IGoogleFitSessionsApi.Stub() {
|
||||
override fun startRequest(startRequest: SessionStartRequest?) {
|
||||
Log.d(TAG, "Not implemented startRequest: $startRequest")
|
||||
}
|
||||
|
||||
override fun stopRequest(stopRequest: SessionStopRequest?) {
|
||||
Log.d(TAG, "Not implemented stopRequest: $stopRequest")
|
||||
}
|
||||
|
||||
override fun insertRequest(insetRequest: SessionInsertRequest?) {
|
||||
Log.d(TAG, "Not implemented insertRequest: $insetRequest")
|
||||
}
|
||||
|
||||
override fun readRequest(readRequest: SessionReadRequest?) {
|
||||
Log.d(TAG, "Not implemented readRequest: $readRequest")
|
||||
}
|
||||
|
||||
override fun registrationRequest(registrationRequest: SessionRegistrationRequest?) {
|
||||
Log.d(TAG, "Not implemented registrationRequest: $registrationRequest")
|
||||
}
|
||||
|
||||
override fun unRegistrationRequest(unRegistrationRequest: SessionUnregistrationRequest?) {
|
||||
Log.d(TAG, "Not implemented unRegistrationRequest: $unRegistrationRequest")
|
||||
}
|
||||
|
||||
override fun onTransact(code: Int, data: Parcel, reply: Parcel?, flags: Int): Boolean =
|
||||
warnOnTransactionIssues(code, reply, flags, TAG) { super.onTransact(code, data, reply, flags) }
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue