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

Commit a2f18d1b authored by Jack Yu's avatar Jack Yu
Browse files

Do not throw exception when there is no omapi reader supported

Add cts tests to make sure the result of getReaders() aligns omapi feature
flags. Do not throw exception when there is no omapi readers.

Bug: 131062577
Test: atest CtsOmapiTestCases
Change-Id: I2ad0057adb975ffcbf9bd5d6a9788bc79bd860e3
parent d0319471
Loading
Loading
Loading
Loading
+0 −26
Original line number Diff line number Diff line
@@ -22,14 +22,11 @@

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;
@@ -143,10 +140,6 @@ 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;
@@ -277,23 +270,4 @@ 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;
        }
    }
}