From 111d55658bce1bcc3eb61b4aeaa4d8a256165b02 Mon Sep 17 00:00:00 2001 From: Erik Kline Date: Fri, 19 Feb 2016 15:48:22 +0900 Subject: [PATCH] Add WaitForProvisioningCallback This centralizes code that is shared by both bluetooth and ethernet transport layers. Bug: 26991160 Change-Id: I8e2dd8580c29c86394119768e3a5529850b4b859 --- .../net/java/android/net/ip/IpManager.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/services/net/java/android/net/ip/IpManager.java b/services/net/java/android/net/ip/IpManager.java index f3bbbb5b617f2..2a90c60656ab7 100644 --- a/services/net/java/android/net/ip/IpManager.java +++ b/services/net/java/android/net/ip/IpManager.java @@ -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