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

Commit 0d1f7933 authored by Ruchi Kandoi's avatar Ruchi Kandoi Committed by Gerrit Code Review
Browse files

Merge "Add an Executor for the onConnectedListener"

parents 644d5ea6 cf8bc65b
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -37030,7 +37030,7 @@ package android.se.omapi {
  }
  public final class SEService {
    ctor public SEService(android.content.Context, android.se.omapi.SEService.OnConnectedListener);
    ctor public SEService(android.content.Context, java.util.concurrent.Executor, android.se.omapi.SEService.OnConnectedListener);
    method public android.se.omapi.Reader[] getReaders();
    method public java.lang.String getVersion();
    method public boolean isConnected();
@@ -37038,7 +37038,7 @@ package android.se.omapi {
  }
  public static abstract interface SEService.OnConnectedListener {
    method public abstract void onServiceConnected();
    method public abstract void onConnected();
  }
  public final class Session {
+20 −9
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import android.os.RemoteException;
import android.util.Log;

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

/**
 * The SEService realises the communication to available Secure Elements on the
@@ -66,7 +67,7 @@ public final class SEService {
        /**
         * Called by the framework when the service is connected.
         */
        void onServiceConnected();
        void onConnected();
    }

    /**
@@ -75,15 +76,21 @@ public final class SEService {
     */
    private class SEListener extends ISecureElementListener.Stub {
        public OnConnectedListener mListener = null;
        public Executor mExecutor = null;

        @Override
        public IBinder asBinder() {
            return this;
        }

        public void onServiceConnected() {
            if (mListener != null) {
                mListener.onServiceConnected();
        public void onConnected() {
            if (mListener != null && mExecutor != null) {
                mExecutor.execute(new Runnable() {
                    @Override
                    public void run() {
                        mListener.onConnected();
                    }
                });
            }
        }
    }
@@ -116,22 +123,26 @@ public final class SEService {
     * the specified listener is called or if isConnected() returns
     * <code>true</code>. <br>
     * The call-back object passed as a parameter will have its
     * onServiceConnected() method called when the connection actually happen.
     * onConnected() method called when the connection actually happen.
     *
     * @param context
     *            the context of the calling application. Cannot be
     *            <code>null</code>.
     * @param listener
     *            a OnConnectedListener object.
     * @param executor
     *            an Executor which will be used when invoking the callback.
     */
    public SEService(@NonNull Context context, @NonNull OnConnectedListener listener) {
    public SEService(@NonNull Context context, @NonNull Executor executor,
            @NonNull OnConnectedListener listener) {

        if (context == null) {
            throw new NullPointerException("context must not be null");
        if (context == null || listener == null || executor == null) {
            throw new NullPointerException("Arguments must not be null");
        }

        mContext = context;
        mSEListener.mListener = listener;
        mSEListener.mExecutor = executor;

        mConnection = new ServiceConnection() {

@@ -140,7 +151,7 @@ public final class SEService {

                mSecureElementService = ISecureElementService.Stub.asInterface(service);
                if (mSEListener != null) {
                    mSEListener.onServiceConnected();
                    mSEListener.onConnected();
                }
                Log.i(TAG, "Service onServiceConnected");
            }