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

Commit 111d5565 authored by Erik Kline's avatar Erik Kline
Browse files

Add WaitForProvisioningCallback

This centralizes code that is shared by both bluetooth and ethernet
transport layers.

Bug: 26991160
Change-Id: I8e2dd8580c29c86394119768e3a5529850b4b859
parent d0e843b8
Loading
Loading
Loading
Loading
+29 −0
Original line number Diff line number Diff line
@@ -109,6 +109,35 @@ public class IpManager extends StateMachine {
        public void onQuit() {}
    }

    public static class WaitForProvisioningCallback extends Callback {
        private LinkProperties mCallbackLinkProperties;

        public LinkProperties waitForProvisioning() {
            synchronized (this) {
                try {
                    wait();
                } catch (InterruptedException e) {}
                return mCallbackLinkProperties;
            }
        }

        @Override
        public void onProvisioningSuccess(LinkProperties newLp) {
            synchronized (this) {
                mCallbackLinkProperties = newLp;
                notify();
            }
        }

        @Override
        public void onProvisioningFailure(LinkProperties newLp) {
            synchronized (this) {
                mCallbackLinkProperties = null;
                notify();
            }
        }
    }

    /**
     * This class encapsulates parameters to be passed to
     * IpManager#startProvisioning(). A defensive copy is made by IpManager