mirror of https://github.com/YTVanced/VancedMicroG
54 lines
2.5 KiB
Kotlin
54 lines
2.5 KiB
Kotlin
/*
|
|
* SPDX-FileCopyrightText: 2022 microG Project Team
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
package org.microg.gms.usagereporting
|
|
|
|
import android.os.Bundle
|
|
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.GetServiceRequest
|
|
import com.google.android.gms.common.internal.IGmsCallbacks
|
|
import com.google.android.gms.usagereporting.UsageReportingOptInOptions
|
|
import com.google.android.gms.usagereporting.internal.IUsageReportingCallbacks
|
|
import com.google.android.gms.usagereporting.internal.IUsageReportingOptInOptionsChangedListener
|
|
import com.google.android.gms.usagereporting.internal.IUsageReportingService
|
|
import org.microg.gms.BaseService
|
|
import org.microg.gms.common.GmsService
|
|
import org.microg.gms.utils.warnOnTransactionIssues
|
|
|
|
private const val TAG = "UsageReportingService"
|
|
|
|
class UsageReportingService : BaseService(TAG, GmsService.USAGE_REPORTING) {
|
|
override fun handleServiceRequest(callback: IGmsCallbacks, request: GetServiceRequest, service: GmsService) {
|
|
callback.onPostInitComplete(CommonStatusCodes.SUCCESS, UsageReportingServiceImpl(), Bundle())
|
|
}
|
|
}
|
|
|
|
class UsageReportingServiceImpl : IUsageReportingService.Stub() {
|
|
override fun getOptInOptions(callbacks: IUsageReportingCallbacks) {
|
|
// Don't log to prevent log spam
|
|
callbacks.onOptInOptions(Status.SUCCESS, UsageReportingOptInOptions().apply { optInUsageReporting = 2 })
|
|
}
|
|
|
|
override fun setOptInOptions(options: UsageReportingOptInOptions, callbacks: IUsageReportingCallbacks) {
|
|
Log.d(TAG, "setOptInOptions($options)")
|
|
callbacks.onOptInOptionsSet(Status.SUCCESS)
|
|
}
|
|
|
|
override fun addOptInOptionsChangedListener(listener: IUsageReportingOptInOptionsChangedListener, callbacks: IUsageReportingCallbacks) {
|
|
Log.d(TAG, "addOptInOptionsChangedListener($listener)")
|
|
callbacks.onOptInOptionsChangedListenerAdded(Status.SUCCESS)
|
|
}
|
|
|
|
override fun removeOptInOptionsChangedListener(listener: IUsageReportingOptInOptionsChangedListener, callbacks: IUsageReportingCallbacks) {
|
|
Log.d(TAG, "removeOptInOptionsChangedListener($listener)")
|
|
callbacks.onOptInOptionsChangedListenerRemoved(Status.SUCCESS)
|
|
}
|
|
|
|
override fun onTransact(code: Int, data: Parcel, reply: Parcel?, flags: Int): Boolean = warnOnTransactionIssues(code, reply, flags) { super.onTransact(code, data, reply, flags) }
|
|
}
|