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

Commit 77dc8405 authored by Hai Shalom's avatar Hai Shalom
Browse files

[DPP] Use Executor instead of Handler in Easy Connect API

Following API Council review, use Executor instead of Handler
in all Easy Connect API.

Bug: 122984003
Test: atest com.google.android.gts.setupwizard.DppHostTest
Test: atest DppManagerTest
Test: act.py -c ../WifiDppConfig.json -tc WifiDppTest
Change-Id: I58f61929e4b8792d43fc495ddaa51f766737b743
parent 16789e75
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -4161,8 +4161,8 @@ package android.net.wifi {
    method public void save(android.net.wifi.WifiConfiguration, android.net.wifi.WifiManager.ActionListener);
    method public void save(android.net.wifi.WifiConfiguration, android.net.wifi.WifiManager.ActionListener);
    method public void setDeviceMobilityState(int);
    method public void setDeviceMobilityState(int);
    method public boolean setWifiApConfiguration(android.net.wifi.WifiConfiguration);
    method public boolean setWifiApConfiguration(android.net.wifi.WifiConfiguration);
    method public void startEasyConnectAsConfiguratorInitiator(java.lang.String, int, int, android.os.Handler, android.net.wifi.EasyConnectStatusCallback);
    method public void startEasyConnectAsConfiguratorInitiator(java.lang.String, int, int, java.util.concurrent.Executor, android.net.wifi.EasyConnectStatusCallback);
    method public void startEasyConnectAsEnrolleeInitiator(java.lang.String, android.os.Handler, android.net.wifi.EasyConnectStatusCallback);
    method public void startEasyConnectAsEnrolleeInitiator(java.lang.String, java.util.concurrent.Executor, android.net.wifi.EasyConnectStatusCallback);
    method public boolean startScan(android.os.WorkSource);
    method public boolean startScan(android.os.WorkSource);
    method public void stopEasyConnectSession();
    method public void stopEasyConnectSession();
    method public void unregisterNetworkRequestMatchCallback(android.net.wifi.WifiManager.NetworkRequestMatchCallback);
    method public void unregisterNetworkRequestMatchCallback(android.net.wifi.WifiManager.NetworkRequestMatchCallback);
+17 −17
Original line number Original line Diff line number Diff line
@@ -20,6 +20,7 @@ import static android.Manifest.permission.ACCESS_COARSE_LOCATION;
import static android.Manifest.permission.ACCESS_WIFI_STATE;
import static android.Manifest.permission.ACCESS_WIFI_STATE;
import static android.Manifest.permission.READ_WIFI_CREDENTIAL;
import static android.Manifest.permission.READ_WIFI_CREDENTIAL;


import android.annotation.CallbackExecutor;
import android.annotation.IntDef;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.Nullable;
@@ -68,6 +69,7 @@ import java.util.List;
import java.util.Map;
import java.util.Map;
import java.util.Set;
import java.util.Set;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Executor;


/**
/**
 * This class provides the primary API for managing all aspects of Wi-Fi
 * This class provides the primary API for managing all aspects of Wi-Fi
@@ -4622,8 +4624,7 @@ public class WifiManager {
     * @param selectedNetworkId   Selected network ID to be sent to the peer
     * @param selectedNetworkId   Selected network ID to be sent to the peer
     * @param enrolleeNetworkRole The network role of the enrollee
     * @param enrolleeNetworkRole The network role of the enrollee
     * @param callback            Callback for status updates
     * @param callback            Callback for status updates
     * @param handler             The handler on whose thread to execute the callbacks. Null for
     * @param executor            The Executor on which to run the callback.
     *                            main thread.
     * @hide
     * @hide
     */
     */
    @SystemApi
    @SystemApi
@@ -4632,12 +4633,12 @@ public class WifiManager {
            android.Manifest.permission.NETWORK_SETUP_WIZARD})
            android.Manifest.permission.NETWORK_SETUP_WIZARD})
    public void startEasyConnectAsConfiguratorInitiator(@NonNull String enrolleeUri,
    public void startEasyConnectAsConfiguratorInitiator(@NonNull String enrolleeUri,
            int selectedNetworkId, @EasyConnectNetworkRole int enrolleeNetworkRole,
            int selectedNetworkId, @EasyConnectNetworkRole int enrolleeNetworkRole,
            @Nullable Handler handler, @NonNull EasyConnectStatusCallback callback) {
            @NonNull @CallbackExecutor Executor executor,
        Looper looper = (handler == null) ? Looper.getMainLooper() : handler.getLooper();
            @NonNull EasyConnectStatusCallback callback) {
        Binder binder = new Binder();
        Binder binder = new Binder();
        try {
        try {
            mService.startDppAsConfiguratorInitiator(binder, enrolleeUri, selectedNetworkId,
            mService.startDppAsConfiguratorInitiator(binder, enrolleeUri, selectedNetworkId,
                    enrolleeNetworkRole, new EasyConnectCallbackProxy(looper, callback));
                    enrolleeNetworkRole, new EasyConnectCallbackProxy(executor, callback));
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
        }
        }
@@ -4650,8 +4651,7 @@ public class WifiManager {
     *
     *
     * @param configuratorUri URI of the Configurator obtained separately (e.g. QR code scanning)
     * @param configuratorUri URI of the Configurator obtained separately (e.g. QR code scanning)
     * @param callback        Callback for status updates
     * @param callback        Callback for status updates
     * @param handler         The handler on whose thread to execute the callbacks. Null for main
     * @param executor        The Executor on which to run the callback.
     *                        thread.
     * @hide
     * @hide
     */
     */
    @SystemApi
    @SystemApi
@@ -4659,12 +4659,12 @@ public class WifiManager {
            android.Manifest.permission.NETWORK_SETTINGS,
            android.Manifest.permission.NETWORK_SETTINGS,
            android.Manifest.permission.NETWORK_SETUP_WIZARD})
            android.Manifest.permission.NETWORK_SETUP_WIZARD})
    public void startEasyConnectAsEnrolleeInitiator(@NonNull String configuratorUri,
    public void startEasyConnectAsEnrolleeInitiator(@NonNull String configuratorUri,
            @Nullable Handler handler, @NonNull EasyConnectStatusCallback callback) {
            @NonNull @CallbackExecutor Executor executor,
        Looper looper = (handler == null) ? Looper.getMainLooper() : handler.getLooper();
            @NonNull EasyConnectStatusCallback callback) {
        Binder binder = new Binder();
        Binder binder = new Binder();
        try {
        try {
            mService.startDppAsEnrolleeInitiator(binder, configuratorUri,
            mService.startDppAsEnrolleeInitiator(binder, configuratorUri,
                    new EasyConnectCallbackProxy(looper, callback));
                    new EasyConnectCallbackProxy(executor, callback));
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
        }
        }
@@ -4698,19 +4698,19 @@ public class WifiManager {
     */
     */
    @SystemApi
    @SystemApi
    private static class EasyConnectCallbackProxy extends IDppCallback.Stub {
    private static class EasyConnectCallbackProxy extends IDppCallback.Stub {
        private final Handler mHandler;
        private final Executor mExecutor;
        private final EasyConnectStatusCallback mEasyConnectStatusCallback;
        private final EasyConnectStatusCallback mEasyConnectStatusCallback;


        EasyConnectCallbackProxy(Looper looper,
        EasyConnectCallbackProxy(Executor executor,
                EasyConnectStatusCallback easyConnectStatusCallback) {
                EasyConnectStatusCallback easyConnectStatusCallback) {
            mHandler = new Handler(looper);
            mExecutor = executor;
            mEasyConnectStatusCallback = easyConnectStatusCallback;
            mEasyConnectStatusCallback = easyConnectStatusCallback;
        }
        }


        @Override
        @Override
        public void onSuccessConfigReceived(int newNetworkId) {
        public void onSuccessConfigReceived(int newNetworkId) {
            Log.d(TAG, "Easy Connect onSuccessConfigReceived callback");
            Log.d(TAG, "Easy Connect onSuccessConfigReceived callback");
            mHandler.post(() -> {
            mExecutor.execute(() -> {
                mEasyConnectStatusCallback.onEnrolleeSuccess(newNetworkId);
                mEasyConnectStatusCallback.onEnrolleeSuccess(newNetworkId);
            });
            });
        }
        }
@@ -4718,7 +4718,7 @@ public class WifiManager {
        @Override
        @Override
        public void onSuccess(int status) {
        public void onSuccess(int status) {
            Log.d(TAG, "Easy Connect onSuccess callback");
            Log.d(TAG, "Easy Connect onSuccess callback");
            mHandler.post(() -> {
            mExecutor.execute(() -> {
                mEasyConnectStatusCallback.onConfiguratorSuccess(status);
                mEasyConnectStatusCallback.onConfiguratorSuccess(status);
            });
            });
        }
        }
@@ -4726,7 +4726,7 @@ public class WifiManager {
        @Override
        @Override
        public void onFailure(int status) {
        public void onFailure(int status) {
            Log.d(TAG, "Easy Connect onFailure callback");
            Log.d(TAG, "Easy Connect onFailure callback");
            mHandler.post(() -> {
            mExecutor.execute(() -> {
                mEasyConnectStatusCallback.onFailure(status);
                mEasyConnectStatusCallback.onFailure(status);
            });
            });
        }
        }
@@ -4734,7 +4734,7 @@ public class WifiManager {
        @Override
        @Override
        public void onProgress(int status) {
        public void onProgress(int status) {
            Log.d(TAG, "Easy Connect onProgress callback");
            Log.d(TAG, "Easy Connect onProgress callback");
            mHandler.post(() -> {
            mExecutor.execute(() -> {
                mEasyConnectStatusCallback.onProgress(status);
                mEasyConnectStatusCallback.onProgress(status);
            });
            });
        }
        }