Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7dc03f96 authored by Jonathan Klee's avatar Jonathan Klee
Browse files

fix crash for legacy AdLoader fallback for old mobile Ads sdk apps

parent 09b47bb9
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@ private const val TAG = "AdLoaderBuilder"
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
        return LegacyAdLoaderBuilder()
    }

    override fun onTransact(code: Int, data: Parcel, reply: Parcel?, flags: Int): Boolean = warnOnTransactionIssues(code, reply, flags, TAG) { super.onTransact(code, data, reply, flags) }
+29 −0
Original line number Diff line number Diff line
/*
 * SPDX-FileCopyrightText: 2026 microG Project Team
 * SPDX-License-Identifier: Apache-2.0
 */
package com.google.android.gms.ads

import android.os.IBinder
import android.util.Log
import com.google.android.gms.ads.internal.AdRequestParcel
import com.google.android.gms.ads.internal.client.IAdLoader
import com.google.android.gms.ads.internal.client.IAdLoaderBuilder

private const val TAG = "LegacyAdLoader"

internal class LegacyAdLoaderBuilder : IAdLoaderBuilder.Stub() {
    override fun build(): IAdLoader = LegacyAdLoader
    override fun setAdListener(listener: IBinder?) = Unit
    override fun setUnifiedNativeAdLoadedListener(listener: IBinder?) = Unit
}

private object LegacyAdLoader : IAdLoader.Stub() {
    override fun load(request: AdRequestParcel?) {
        Log.w(TAG, "Serving lightweight AdLoader fallback to avoid legacy writable-dex signals path")
    }
    override fun isLoading(): Boolean = false
    override fun loadAds(request: AdRequestParcel?, count: Int) {
        Log.w(TAG, "Serving lightweight AdLoader fallback to avoid legacy writable-dex signals path")
    }
}
+9 −0
Original line number Diff line number Diff line
package com.google.android.gms.ads.internal.client;

import com.google.android.gms.ads.internal.AdRequestParcel;

interface IAdLoader {
    void load(in AdRequestParcel request) = 0;
    boolean isLoading() = 2;
    void loadAds(in AdRequestParcel request, int count) = 4;
}
+9 −0
Original line number Diff line number Diff line
package com.google.android.gms.ads.internal.client;

import com.google.android.gms.ads.internal.client.IAdLoader;

interface IAdLoaderBuilder {
    IAdLoader build() = 0;
    void setAdListener(IBinder listener) = 1;
    void setUnifiedNativeAdLoadedListener(IBinder listener) = 9;
}