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

Commit 98a96a40 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Do not call to SecureElement Service if device does not support any OMAPI readers"

parents edf7ce4f 3fd7f894
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -22,11 +22,14 @@

package android.se.omapi;

import android.app.ActivityThread;
import android.annotation.NonNull;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.content.pm.IPackageManager;
import android.content.pm.PackageManager;
import android.os.IBinder;
import android.os.RemoteException;
import android.util.Log;
@@ -140,6 +143,10 @@ public final class SEService {
            throw new NullPointerException("Arguments must not be null");
        }

        if (!hasOMAPIReaders()) {
            throw new UnsupportedOperationException("Device does not support any OMAPI reader");
        }

        mContext = context;
        mSEListener.mListener = listener;
        mSEListener.mExecutor = executor;
@@ -270,4 +277,23 @@ public final class SEService {
            throw new IllegalStateException(e.getMessage());
        }
    }

    /**
     * Helper to check if this device support any OMAPI readers
     */
    private static boolean hasOMAPIReaders() {
        IPackageManager pm = ActivityThread.getPackageManager();
        if (pm == null) {
            Log.e(TAG, "Cannot get package manager, assuming OMAPI readers supported");
            return true;
        }
        try {
            return pm.hasSystemFeature(PackageManager.FEATURE_SE_OMAPI_UICC, 0)
                || pm.hasSystemFeature(PackageManager.FEATURE_SE_OMAPI_ESE, 0)
                || pm.hasSystemFeature(PackageManager.FEATURE_SE_OMAPI_SD, 0);
        } catch (RemoteException e) {
            Log.e(TAG, "Package manager query failed, assuming OMAPI readers supported", e);
            return true;
        }
    }
}