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

Commit 7c48fe6c authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 8348513 from 07978fe5 to gki13-boot-release

Change-Id: I737af6e192305d3cc16db45da4e7effe3d0d87a7
parents 434d66af 07978fe5
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -165,6 +165,9 @@ java_library {
    srcs: [
        "apishim/33/**/*.java",
    ],
    static_libs: [
        "net-utils-framework-common",
    ],
    libs: [
        "NetworkStackShimsCommon",
        "NetworkStackApi29Shims",
+21 −11
Original line number Diff line number Diff line
@@ -16,9 +16,11 @@

package com.android.networkstack.apishim;

import static com.android.net.module.util.CollectionUtils.toIntArray;

import android.os.Build;
import android.telephony.TelephonyManager;
import android.telephony.TelephonyManager.CarrierPrivilegesListener;
import android.telephony.TelephonyManager.CarrierPrivilegesCallback;

import androidx.annotation.RequiresApi;

@@ -27,6 +29,7 @@ import com.android.networkstack.apishim.common.UnsupportedApiLevelException;

import java.util.HashMap;
import java.util.List;
import java.util.Set;
import java.util.concurrent.Executor;

/**
@@ -35,34 +38,41 @@ import java.util.concurrent.Executor;
@RequiresApi(Build.VERSION_CODES.TIRAMISU)
public class TelephonyManagerShimImpl extends
        com.android.networkstack.apishim.api31.TelephonyManagerShimImpl {
    private HashMap<CarrierPrivilegesListenerShim, CarrierPrivilegesListener> mListenerMap =
    private HashMap<CarrierPrivilegesListenerShim, CarrierPrivilegesCallback> mListenerMap =
            new HashMap<>();
    public TelephonyManagerShimImpl(TelephonyManager telephonyManager) {
        super(telephonyManager);
    }

    /** See android.telephony.TelephonyManager#addCarrierPrivilegesListener */
    /** See android.telephony.TelephonyManager#registerCarrierPrivilegesCallback */
    public void addCarrierPrivilegesListener(
            int logicalSlotIndex,
            Executor executor,
            CarrierPrivilegesListenerShim listener)
            throws UnsupportedApiLevelException {
        CarrierPrivilegesListener carrierPrivilegesListener = new CarrierPrivilegesListener() {
        CarrierPrivilegesCallback carrierPrivilegesCallback = new CarrierPrivilegesCallback() {
            public void onCarrierPrivilegesChanged(
                    List<String> privilegedPackageNames,
                    int[] privilegedUids) {
                listener.onCarrierPrivilegesChanged(privilegedPackageNames, privilegedUids);
                    Set<String> privilegedPackageNames,
                    Set<Integer> privilegedUids) {
                // TODO(b/221306368): Rebuild thoroughly based on onCarrierServiceChanged interface
                // This is the minimum change to remove the dependency on the obsoleted API in
                // CarrierPrivilegesListener. A follow-up CL should refactor Connectivity modules
                // with carrier service change API instead.
                List<String> pkgNames = List.copyOf(privilegedPackageNames);
                int[] pkgUids = toIntArray(privilegedUids);
                listener.onCarrierPrivilegesChanged(pkgNames, pkgUids);
            }
        };
        mTm.addCarrierPrivilegesListener(logicalSlotIndex, executor, carrierPrivilegesListener);
        mListenerMap.put(listener, carrierPrivilegesListener);
        mTm.registerCarrierPrivilegesCallback(logicalSlotIndex, executor,
                carrierPrivilegesCallback);
        mListenerMap.put(listener, carrierPrivilegesCallback);
    }

    /** See android.telephony.TelephonyManager#addCarrierPrivilegesListener */
    /** See android.telephony.TelephonyManager#unregisterCarrierPrivilegesCallback */
    public void removeCarrierPrivilegesListener(
            CarrierPrivilegesListenerShim listener)
            throws UnsupportedApiLevelException {
        mTm.removeCarrierPrivilegesListener(mListenerMap.get(listener));
        mTm.unregisterCarrierPrivilegesCallback(mListenerMap.get(listener));
        mListenerMap.remove(listener);
    }