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,42 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
apply plugin: 'com.android.library'
apply plugin: 'maven-publish'
apply plugin: 'signing'
android {
namespace "com.google.android.gms.ads"
compileSdkVersion androidCompileSdk
buildToolsVersion "$androidBuildVersionTools"
buildFeatures {
aidl = true
}
defaultConfig {
versionName version
minSdkVersion androidMinSdk
targetSdkVersion androidTargetSdk
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
apply from: '../gradle/publish-android.gradle'
description = 'microG implementation of play-services-ads-lite'
dependencies {
api 'androidx.work:work-runtime:2.7.0'
api project(':play-services-ads-base')
api project(':play-services-basement')
// api project(':play-services-measurement-sdk-api')
// api project(':user-messaging-platform')
}

View file

@ -0,0 +1,38 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
dependencies {
api project(':play-services-ads-lite')
implementation project(':play-services-base-core')
}
android {
namespace "org.microg.gms.ads"
compileSdkVersion androidCompileSdk
buildToolsVersion "$androidBuildVersionTools"
defaultConfig {
versionName version
minSdkVersion androidMinSdk
targetSdkVersion androidTargetSdk
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
compileOptions {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}
kotlinOptions {
jvmTarget = 1.8
}
}

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?><!--
~ SPDX-FileCopyrightText: 2023 microG Project Team
~ SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
</manifest>

View file

@ -0,0 +1,26 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.ads
import android.os.IBinder
import android.os.Parcel
import android.util.Log
import androidx.annotation.Keep
import com.google.android.gms.ads.internal.client.IAdLoaderBuilderCreator
import com.google.android.gms.ads.internal.mediation.client.IAdapterCreator
import com.google.android.gms.dynamic.IObjectWrapper
import org.microg.gms.utils.warnOnTransactionIssues
private const val TAG = "AdLoaderBuilder"
@Keep
class AdLoaderBuilderCreatorImpl : IAdLoaderBuilderCreator.Stub() {
override fun newAdLoaderBuilder(context: IObjectWrapper?, adUnitId: String, adapterCreator: IAdapterCreator?, clientVersion: Int): IBinder? {
Log.d(TAG, "newAdLoaderBuilder: adUnitId=$adUnitId clientVersion=$clientVersion")
return null
}
override fun onTransact(code: Int, data: Parcel, reply: Parcel?, flags: Int): Boolean = warnOnTransactionIssues(code, reply, flags, TAG) { super.onTransact(code, data, reply, flags) }
}

View file

@ -0,0 +1,17 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.ads
import android.os.Parcel
import androidx.annotation.Keep
import org.microg.gms.utils.warnOnTransactionIssues
private const val TAG = "AdManager"
@Keep
class AdManagerCreatorImpl : AdManagerCreator.Stub() {
override fun onTransact(code: Int, data: Parcel, reply: Parcel?, flags: Int): Boolean =
warnOnTransactionIssues(code, reply, flags, TAG) { super.onTransact(code, data, reply, flags) }
}

View file

@ -0,0 +1,29 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.ads
import android.content.Context
import android.os.IBinder
import android.os.Parcel
import android.util.Log
import androidx.annotation.Keep
import com.google.android.gms.ads.internal.client.IMobileAdsSettingManagerCreator
import com.google.android.gms.dynamic.IObjectWrapper
import com.google.android.gms.dynamic.ObjectWrapper
import org.microg.gms.ads.MobileAdsSettingManagerImpl
import org.microg.gms.utils.warnOnTransactionIssues
private const val TAG = "AdsSettingManager"
@Keep
class MobileAdsSettingManagerCreatorImpl : IMobileAdsSettingManagerCreator.Stub() {
override fun getMobileAdsSettingManager(context: IObjectWrapper?, clientVersion: Int): IBinder {
Log.d(TAG, "getMobileAdsSettingManager($clientVersion)")
return MobileAdsSettingManagerImpl(ObjectWrapper.unwrap(context) as Context)
}
override fun onTransact(code: Int, data: Parcel, reply: Parcel?, flags: Int): Boolean = warnOnTransactionIssues(code, reply, flags, TAG) { super.onTransact(code, data, reply, flags) }
}

View file

@ -0,0 +1,24 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.ads.measurement
import android.os.Parcel
import android.util.Log
import androidx.annotation.Keep
import com.google.android.gms.dynamic.IObjectWrapper
import org.microg.gms.utils.warnOnTransactionIssues
private const val TAG = "DynamiteMeasurement"
@Keep
class DynamiteMeasurementManager : IMeasurementManager.Stub() {
override fun initialize(context: IObjectWrapper?, proxy: IAppMeasurementProxy?) {
Log.d(TAG, "Not yet implemented: initialize")
}
override fun onTransact(code: Int, data: Parcel, reply: Parcel?, flags: Int): Boolean =
warnOnTransactionIssues(code, reply, flags, TAG) { super.onTransact(code, data, reply, flags) }
}

View file

@ -0,0 +1,26 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.ads.rewarded
import android.content.Context
import android.os.IBinder
import android.util.Log
import androidx.annotation.Keep
import com.google.android.gms.ads.internal.mediation.client.IAdapterCreator
import com.google.android.gms.ads.internal.rewarded.client.IRewardedAdCreator
import com.google.android.gms.dynamic.IObjectWrapper
import com.google.android.gms.dynamic.ObjectWrapper
import org.microg.gms.ads.rewarded.RewardedAdImpl
private const val TAG = "RewardedAd"
@Keep
class ChimeraRewardedAdCreatorImpl : IRewardedAdCreator.Stub() {
override fun newRewardedAd(context: IObjectWrapper, str: String, adapterCreator: IAdapterCreator, clientVersion: Int): IBinder {
Log.d(TAG, "newRewardedAd($str, $clientVersion)")
return RewardedAdImpl(ObjectWrapper.unwrap(context) as Context?, str, adapterCreator, clientVersion)
}
}

View file

@ -0,0 +1,110 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package org.microg.gms.ads
import android.content.Context
import android.os.Handler
import android.os.Looper
import android.os.Parcel
import android.os.RemoteException
import android.util.Log
import com.google.android.gms.ads.internal.AdapterStatusParcel
import com.google.android.gms.ads.internal.RequestConfigurationParcel
import com.google.android.gms.ads.internal.client.IMobileAdsSettingManager
import com.google.android.gms.ads.internal.client.IOnAdInspectorClosedListener
import com.google.android.gms.ads.internal.initialization.IInitializationCallback
import com.google.android.gms.ads.internal.mediation.client.IAdapterCreator
import com.google.android.gms.dynamic.IObjectWrapper
import org.microg.gms.utils.warnOnTransactionIssues
private const val TAG = "AdsSettingManager"
class MobileAdsSettingManagerImpl(private val context: Context?) : IMobileAdsSettingManager.Stub() {
private var initialized = false
private val initializationCallbacks = mutableListOf<IInitializationCallback>()
private var muted = false
private var volume = 1.0f
override fun initialize() {
Log.d(TAG, "initialize")
if (initialized) return
initialized = true
for (callback in initializationCallbacks) {
runCatching { callback.onInitialized(emptyList()) }
}
}
override fun setAppVolume(volume: Float) {
this.volume = volume
}
override fun fetchAppSettings(appId: String?) {
fetchAppSettingsV2(appId, null)
}
override fun setAppMuted(muted: Boolean) {
this.muted = muted
}
override fun openDebugMenu(context: IObjectWrapper?, adUnitId: String?) {
Log.d(TAG, "openDebugMenu($adUnitId)")
}
override fun fetchAppSettingsV2(appId: String?, runnable: IObjectWrapper?) {
Log.d(TAG, "fetchAppSettings($appId)")
}
override fun getAdVolume(): Float {
return volume
}
override fun isAdMuted(): Boolean {
return muted
}
override fun getVersionString(): String {
return ""
}
override fun registerRtbAdapter(className: String?) {
Log.d(TAG, "registerRtbAdapter($className)")
}
override fun setAdapterCreator(iAdapterCreator: IAdapterCreator?) {
Log.d(TAG, "Not yet implemented: setAdapterCreator")
}
override fun addInitializationCallback(callback: IInitializationCallback?) {
Log.d(TAG, "addInitializationCallback")
callback?.let { initializationCallbacks.add(it) }
}
override fun getAdapterStatus(): List<AdapterStatusParcel> {
Log.d(TAG, "getAdapterStatus")
return arrayListOf(AdapterStatusParcel("com.google.android.gms.ads.MobileAds", true, 0, "Dummy"))
}
override fun setRequestConfiguration(configuration: RequestConfigurationParcel?) {
Log.d(TAG, "setRequestConfiguration")
}
override fun disableMediationAdapterInitialization() {
Log.d(TAG, "disableMediationAdapterInitialization")
}
override fun openAdInspector(listener: IOnAdInspectorClosedListener?) {
Log.d(TAG, "openAdInspector")
}
override fun enableSameAppKey(enabled: Boolean) {
Log.d(TAG, "enableSameAppKey($enabled)")
}
override fun setPlugin(plugin: String?) {
Log.d(TAG, "setPlugin($plugin)")
}
override fun onTransact(code: Int, data: Parcel, reply: Parcel?, flags: Int): Boolean = warnOnTransactionIssues(code, reply, flags, TAG) { super.onTransact(code, data, reply, flags) }
}

View file

@ -0,0 +1,40 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package org.microg.gms.ads.rewarded
import android.os.Bundle
import android.util.Log
import com.google.android.gms.ads.internal.AdapterResponseInfoParcel
import com.google.android.gms.ads.internal.client.IResponseInfo
private const val TAG = "RewardedAdResponseInfo"
class ResponseInfoImpl : IResponseInfo.Stub() {
override fun getMediationAdapterClassName(): String? {
Log.d(TAG, "getMediationAdapterClassName")
return null
}
override fun getResponseId(): String? {
Log.d(TAG, "getResponseId")
return null
}
override fun getAdapterResponseInfo(): List<AdapterResponseInfoParcel> {
Log.d(TAG, "getAdapterResponseInfo")
return arrayListOf()
}
override fun getLoadedAdapterResponse(): AdapterResponseInfoParcel? {
Log.d(TAG, "getLoadedAdapterResponse")
return null
}
override fun getResponseExtras(): Bundle {
Log.d(TAG, "getResponseExtras")
return Bundle()
}
}

View file

@ -0,0 +1,108 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package org.microg.gms.ads.rewarded
import android.content.Context
import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.os.RemoteException
import android.util.Log
import com.google.android.gms.ads.internal.AdErrorParcel
import com.google.android.gms.ads.internal.AdRequestParcel
import com.google.android.gms.ads.internal.ServerSideVerificationOptionsParcel
import com.google.android.gms.ads.internal.client.IOnAdMetadataChangedListener
import com.google.android.gms.ads.internal.client.IOnPaidEventListener
import com.google.android.gms.ads.internal.client.IResponseInfo
import com.google.android.gms.ads.internal.mediation.client.IAdapterCreator
import com.google.android.gms.ads.internal.rewarded.client.*
import com.google.android.gms.common.api.CommonStatusCodes
import com.google.android.gms.dynamic.IObjectWrapper
private const val TAG = "RewardedAd"
class RewardedAdImpl(context: Context?, str: String?, adapterCreator: IAdapterCreator?, clientVersion: Int) : IRewardedAd.Stub() {
private var immersive: Boolean = false
private fun load(request: AdRequestParcel, callback: IRewardedAdLoadCallback, interstitial: Boolean) {
Handler(Looper.getMainLooper()).post {
try {
callback.onAdLoadError(AdErrorParcel().apply { code = CommonStatusCodes.INTERNAL_ERROR; message = "Not supported" })
} catch (e: RemoteException) {
Log.w(TAG, e)
}
}
}
override fun load(request: AdRequestParcel, callback: IRewardedAdLoadCallback) {
Log.d(TAG, "load")
load(request, callback, false)
}
override fun setCallback(callback: IRewardedAdCallback) {
Log.d(TAG, "setCallback")
}
override fun canBeShown(): Boolean {
Log.d(TAG, "canBeShown")
return false
}
override fun getMediationAdapterClassName(): String {
Log.d(TAG, "getMediationAdapterClassName")
return responseInfo.mediationAdapterClassName
}
override fun show(activity: IObjectWrapper) {
Log.d(TAG, "show")
showWithImmersive(activity, immersive)
}
override fun setRewardedAdSkuListener(listener: IRewardedAdSkuListener?) {
Log.d(TAG, "setRewardedAdSkuListener")
}
override fun setServerSideVerificationOptions(options: ServerSideVerificationOptionsParcel) {
Log.d(TAG, "setServerSideVerificationOptions")
}
override fun setOnAdMetadataChangedListener(listener: IOnAdMetadataChangedListener) {
Log.d(TAG, "setOnAdMetadataChangedListener")
}
override fun getAdMetadata(): Bundle {
Log.d(TAG, "getAdMetadata")
return Bundle()
}
override fun showWithImmersive(activity: IObjectWrapper?, immersive: Boolean) {
Log.d(TAG, "showWithBoolean")
}
override fun getRewardItem(): IRewardItem? {
Log.d(TAG, "getRewardItem")
return null
}
override fun getResponseInfo(): IResponseInfo {
Log.d(TAG, "getResponseInfo")
return ResponseInfoImpl()
}
override fun setOnPaidEventListener(listener: IOnPaidEventListener) {
Log.d(TAG, "setOnPaidEventListener")
}
override fun loadInterstitial(request: AdRequestParcel, callback: IRewardedAdLoadCallback) {
Log.d(TAG, "loadInterstitial")
load(request, callback, true)
}
override fun setImmersiveMode(enabled: Boolean) {
Log.d(TAG, "setImmersiveMode($enabled)")
}
}

View file

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?><!--
~ SPDX-FileCopyrightText: 2023 microG Project Team
~ SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.google.android.gms.permission.AD_ID" />
<queries>
<!-- Website links -->
<intent>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" />
</intent>
<!-- Custom tabs -->
<intent>
<action
android:name="android.support.customtabs.action.CustomTabsService" />
</intent>
</queries>
<application />
</manifest>

View file

@ -0,0 +1,4 @@
package com.google.android.gms.ads;
interface AdManagerCreator {
}

View file

@ -0,0 +1,3 @@
package com.google.android.gms.ads.internal;
parcelable AdErrorParcel;

View file

@ -0,0 +1,3 @@
package com.google.android.gms.ads.internal;
parcelable AdRequestParcel;

View file

@ -0,0 +1,3 @@
package com.google.android.gms.ads.internal;
parcelable AdapterResponseInfoParcel;

View file

@ -0,0 +1,3 @@
package com.google.android.gms.ads.internal;
parcelable AdapterStatusParcel;

View file

@ -0,0 +1,3 @@
package com.google.android.gms.ads.internal;
parcelable RequestConfigurationParcel;

View file

@ -0,0 +1,3 @@
package com.google.android.gms.ads.internal;
parcelable ServerSideVerificationOptionsParcel;

View file

@ -0,0 +1,8 @@
package com.google.android.gms.ads.internal.client;
import com.google.android.gms.ads.internal.mediation.client.IAdapterCreator;
import com.google.android.gms.dynamic.IObjectWrapper;
interface IAdLoaderBuilderCreator {
IBinder newAdLoaderBuilder(IObjectWrapper context, String adUnitId, IAdapterCreator adapterCreator, int clientVersion);
}

View file

@ -0,0 +1,29 @@
package com.google.android.gms.ads.internal.client;
import com.google.android.gms.ads.internal.AdapterStatusParcel;
import com.google.android.gms.ads.internal.RequestConfigurationParcel;
import com.google.android.gms.ads.internal.client.IOnAdInspectorClosedListener;
import com.google.android.gms.ads.internal.initialization.IInitializationCallback;
import com.google.android.gms.ads.internal.mediation.client.IAdapterCreator;
import com.google.android.gms.dynamic.IObjectWrapper;
interface IMobileAdsSettingManager {
void initialize() = 0;
void setAppVolume(float volume) = 1;
void fetchAppSettings(String appId) = 2;
void setAppMuted(boolean muted) = 3;
void openDebugMenu(IObjectWrapper context, String adUnitId) = 4;
void fetchAppSettingsV2(String appId, IObjectWrapper runnable) = 5;
float getAdVolume() = 6;
boolean isAdMuted() = 7;
String getVersionString() = 8;
void registerRtbAdapter(String className) = 9;
void setAdapterCreator(IAdapterCreator iAdapterCreator) = 10;
void addInitializationCallback(IInitializationCallback callback) = 11;
List<AdapterStatusParcel> getAdapterStatus() = 12;
void setRequestConfiguration(in RequestConfigurationParcel configuration) = 13;
void disableMediationAdapterInitialization() = 14;
void openAdInspector(IOnAdInspectorClosedListener listener) = 15;
void enableSameAppKey(boolean enabled) = 16;
void setPlugin(String plugin) = 17;
}

View file

@ -0,0 +1,7 @@
package com.google.android.gms.ads.internal.client;
import com.google.android.gms.dynamic.IObjectWrapper;
interface IMobileAdsSettingManagerCreator {
IBinder getMobileAdsSettingManager(IObjectWrapper context, int clientVersion);
}

View file

@ -0,0 +1,7 @@
package com.google.android.gms.ads.internal.client;
import com.google.android.gms.ads.internal.AdErrorParcel;
interface IOnAdInspectorClosedListener {
void onAdInspectorClosed(in @nullable AdErrorParcel adErrorParcel);
}

View file

@ -0,0 +1,6 @@
package com.google.android.gms.ads.internal.client;
import com.google.android.gms.ads.internal.AdErrorParcel;
interface IOnAdMetadataChangedListener {
}

View file

@ -0,0 +1,6 @@
package com.google.android.gms.ads.internal.client;
import com.google.android.gms.ads.internal.AdErrorParcel;
interface IOnPaidEventListener {
}

View file

@ -0,0 +1,11 @@
package com.google.android.gms.ads.internal.client;
import com.google.android.gms.ads.internal.AdapterResponseInfoParcel;
interface IResponseInfo {
String getMediationAdapterClassName() = 0;
String getResponseId() = 1;
List<AdapterResponseInfoParcel> getAdapterResponseInfo() = 2;
AdapterResponseInfoParcel getLoadedAdapterResponse() = 3;
Bundle getResponseExtras() = 4;
}

View file

@ -0,0 +1,7 @@
package com.google.android.gms.ads.internal.initialization;
import com.google.android.gms.ads.internal.AdapterStatusParcel;
interface IInitializationCallback {
void onInitialized(in List<AdapterStatusParcel> status);
}

View file

@ -0,0 +1,5 @@
package com.google.android.gms.ads.internal.mediation.client;
interface IAdapterCreator {
}

View file

@ -0,0 +1,4 @@
package com.google.android.gms.ads.internal.rewarded.client;
interface IRewardItem {
}

View file

@ -0,0 +1,30 @@
package com.google.android.gms.ads.internal.rewarded.client;
import com.google.android.gms.ads.internal.AdRequestParcel;
import com.google.android.gms.ads.internal.ServerSideVerificationOptionsParcel;
import com.google.android.gms.ads.internal.client.IOnPaidEventListener;
import com.google.android.gms.ads.internal.client.IOnAdMetadataChangedListener;
import com.google.android.gms.ads.internal.client.IResponseInfo;
import com.google.android.gms.ads.internal.rewarded.client.IRewardedAdCallback;
import com.google.android.gms.ads.internal.rewarded.client.IRewardedAdLoadCallback;
import com.google.android.gms.ads.internal.rewarded.client.IRewardedAdSkuListener;
import com.google.android.gms.ads.internal.rewarded.client.IRewardItem;
import com.google.android.gms.dynamic.IObjectWrapper;
interface IRewardedAd {
void load(in AdRequestParcel request, IRewardedAdLoadCallback callback) = 0;
void setCallback(IRewardedAdCallback callback) = 1;
boolean canBeShown() = 2;
String getMediationAdapterClassName() = 3;
void show(IObjectWrapper activity) = 4;
void setRewardedAdSkuListener(IRewardedAdSkuListener listener) = 5;
void setServerSideVerificationOptions(in ServerSideVerificationOptionsParcel options) = 6;
void setOnAdMetadataChangedListener(IOnAdMetadataChangedListener listener) = 7;
Bundle getAdMetadata() = 8;
void showWithImmersive(IObjectWrapper activity, boolean immersive) = 9;
IRewardItem getRewardItem() = 10;
IResponseInfo getResponseInfo() = 11;
void setOnPaidEventListener(IOnPaidEventListener listener) = 12;
void loadInterstitial(in AdRequestParcel request, IRewardedAdLoadCallback callback) = 13;
void setImmersiveMode(boolean enabled) = 14;
}

View file

@ -0,0 +1,4 @@
package com.google.android.gms.ads.internal.rewarded.client;
interface IRewardedAdCallback {
}

View file

@ -0,0 +1,8 @@
package com.google.android.gms.ads.internal.rewarded.client;
import com.google.android.gms.ads.internal.mediation.client.IAdapterCreator;
import com.google.android.gms.dynamic.IObjectWrapper;
interface IRewardedAdCreator {
IBinder newRewardedAd(IObjectWrapper context, String str, IAdapterCreator adapterCreator, int clientVersion);
}

View file

@ -0,0 +1,9 @@
package com.google.android.gms.ads.internal.rewarded.client;
import com.google.android.gms.ads.internal.AdErrorParcel;
interface IRewardedAdLoadCallback {
void onAdLoaded() = 0;
void onAdLoadErrorCode(int code) = 1;
void onAdLoadError(in AdErrorParcel error) = 2;
}

View file

@ -0,0 +1,6 @@
package com.google.android.gms.ads.internal.rewarded.client;
import com.google.android.gms.ads.internal.AdErrorParcel;
interface IRewardedAdSkuListener {
}

View file

@ -0,0 +1,5 @@
package com.google.android.gms.ads.measurement;
interface IAppMeasurementProxy {
}

View file

@ -0,0 +1,8 @@
package com.google.android.gms.ads.measurement;
import com.google.android.gms.ads.measurement.IAppMeasurementProxy;
import com.google.android.gms.dynamic.IObjectWrapper;
interface IMeasurementManager {
void initialize(IObjectWrapper context, IAppMeasurementProxy proxy) = 1;
}

View file

@ -0,0 +1,11 @@
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: CC-BY-4.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
/**
* Contains classes for Google Ad Manager.
*/
package com.google.android.gms.ads.admanager;

View file

@ -0,0 +1,11 @@
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: CC-BY-4.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
/**
* Contains classes for H5 ads.
*/
package com.google.android.gms.ads.h5;

View file

@ -0,0 +1,11 @@
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: CC-BY-4.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
/**
* Contains classes related to SDK initialization.
*/
package com.google.android.gms.ads.initialization;

View file

@ -0,0 +1,12 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.ads.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class AdDataParcel extends AutoSafeParcelable {
public static final Creator<AdDataParcel> CREATOR = new AutoCreator<>(AdDataParcel.class);
}

View file

@ -0,0 +1,23 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.ads.internal;
import com.google.android.gms.ads.internal.client.IResponseInfo;
import org.microg.safeparcel.AutoSafeParcelable;
public class AdErrorParcel extends AutoSafeParcelable {
@Field(1)
public int code;
@Field(2)
public String message;
@Field(3)
public String domain;
@Field(4)
public AdErrorParcel cause;
@Field(5)
public IResponseInfo responseInfo;
public static final Creator<AdErrorParcel> CREATOR = new AutoCreator<>(AdErrorParcel.class);
}

View file

@ -0,0 +1,62 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.ads.internal;
import android.location.Location;
import android.os.Bundle;
import org.microg.safeparcel.AutoSafeParcelable;
import java.util.ArrayList;
import java.util.List;
public class AdRequestParcel extends AutoSafeParcelable {
@Field(1)
private int versionCode = 8;
@Field(2)
public long birthday;
@Field(3)
public Bundle adMobNetworkExtras = new Bundle();
@Field(4)
public int gender;
@Field(5)
public ArrayList<String> keywords;
@Field(6)
public boolean isTestDevice;
@Field(7)
public int taggedForChildDirectedTreatment;
@Field(9)
public String publisherProvidedId;
@Field(10)
public SearchAdRequestParcel searchAdRequest;
@Field(11)
public Location location;
@Field(12)
public String contentUrl;
@Field(13)
public Bundle networkExtrasBundles = new Bundle();
@Field(14)
public Bundle customTargeting;
@Field(15)
public List<String> categoryExclusion;
@Field(16)
public String requestAgent;
@Field(18)
public boolean designedForFamilies;
@Field(19)
public AdDataParcel adData;
@Field(20)
public int tagForUnderAgeOfConsent;
@Field(21)
public String maxAdContentRating;
@Field(22)
public List<String> neighboringContentUrls;
@Field(23)
public int httpTimeoutMillis;
@Field(24)
public String adString;
public static final Creator<AdRequestParcel> CREATOR = new AutoCreator<>(AdRequestParcel.class);
}

View file

@ -0,0 +1,30 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.ads.internal;
import android.os.Bundle;
import org.microg.safeparcel.AutoSafeParcelable;
public class AdapterResponseInfoParcel extends AutoSafeParcelable {
@Field(1)
public String adapterClassName;
@Field(2)
public long latencyMillis;
@Field(3)
public AdErrorParcel error;
@Field(4)
public Bundle credentials;
@Field(5)
public String adSourceName;
@Field(6)
public String adSourceId;
@Field(7)
public String adSourceInstanceName;
@Field(8)
public String adSourceInstanceId;
public static final Creator<AdapterResponseInfoParcel> CREATOR = new AutoCreator<>(AdapterResponseInfoParcel.class);
}

View file

@ -0,0 +1,30 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.ads.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class AdapterStatusParcel extends AutoSafeParcelable {
@Field(1)
public String className;
@Field(2)
public boolean isReady;
@Field(3)
public int latency;
@Field(4)
public String description;
public AdapterStatusParcel() {}
public AdapterStatusParcel(String className, boolean isReady, int latency, String description) {
this.className = className;
this.isReady = isReady;
this.latency = latency;
this.description = description;
}
public static final Creator<AdapterStatusParcel> CREATOR = new AutoCreator<>(AdapterStatusParcel.class);
}

View file

@ -0,0 +1,12 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.ads.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class RequestConfigurationParcel extends AutoSafeParcelable {
public static final Creator<RequestConfigurationParcel> CREATOR = new AutoCreator<>(RequestConfigurationParcel.class);
}

View file

@ -0,0 +1,14 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.ads.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class SearchAdRequestParcel extends AutoSafeParcelable {
@Field(15)
public String query;
public static final Creator<SearchAdRequestParcel> CREATOR = new AutoCreator<>(SearchAdRequestParcel.class);
}

View file

@ -0,0 +1,16 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.ads.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class ServerSideVerificationOptionsParcel extends AutoSafeParcelable {
@Field(1)
public String userId;
@Field(2)
public String customData;
public static final Creator<ServerSideVerificationOptionsParcel> CREATOR = new AutoCreator<>(ServerSideVerificationOptionsParcel.class);
}

View file

@ -0,0 +1,11 @@
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: CC-BY-4.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
/**
* Contains classes for Interstitial Ads.
*/
package com.google.android.gms.ads.interstitial;

View file

@ -0,0 +1,11 @@
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: CC-BY-4.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
/**
* Contains classes for Google Mobile Ads mediation custom events.
*/
package com.google.android.gms.ads.mediation.customevent;

View file

@ -0,0 +1,11 @@
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: CC-BY-4.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
/**
* Contains classes for Google Mobile Ads mediation adapters.
*/
package com.google.android.gms.ads.mediation;

View file

@ -0,0 +1,11 @@
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: CC-BY-4.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
/**
* Contains classes for Google Mobile Ads RTB mediation adapters.
*/
package com.google.android.gms.ads.mediation.rtb;

View file

@ -0,0 +1,12 @@
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: CC-BY-4.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
/**
* Contains classes for native ads functionality within Google Mobile
Ads.
*/
package com.google.android.gms.ads.nativead;

View file

@ -0,0 +1,11 @@
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: CC-BY-4.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
/**
* Contains classes for Google Mobile Ads.
*/
package com.google.android.gms.ads;

View file

@ -0,0 +1,11 @@
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: CC-BY-4.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
/**
* Contains classes for Rewarded Ads.
*/
package com.google.android.gms.ads.rewarded;

View file

@ -0,0 +1,11 @@
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: CC-BY-4.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
/**
* Contains classes for Rewarded Interstitial Ads.
*/
package com.google.android.gms.ads.rewardedinterstitial;

View file

@ -0,0 +1,11 @@
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: CC-BY-4.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
/**
* Contains classes for Search Ads for Apps.
*/
package com.google.android.gms.ads.search;