From 305ea28a43fbd441ba84e66aca135a002e37ccfb Mon Sep 17 00:00:00 2001 From: Etan Cohen Date: Mon, 20 Jun 2016 09:27:12 -0700 Subject: [PATCH 1/2] [NAN] Add transport type for NAN. Add TRANSPORT_WIFI_NAN - specifies a peer-to-peer Wi-Fi NAN data connectivity request. While NAN uses Wi-Fi L1 PHY and part of the MAC - it is a different protocol and constitutes a different transport. (cherry-pick of commit 7b84987a6acf2f0a950c334a17a6ee085db3ba4f) (cherry-pick of commit bd9fdbe02275f51c1e24a451aecd40038c4a20e1) Bug: 26564277 Change-Id: I975ebc72d8f97a592d18038b3d6465b7a40efa75 --- core/java/android/net/NetworkCapabilities.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/core/java/android/net/NetworkCapabilities.java b/core/java/android/net/NetworkCapabilities.java index 6243f467016ae..ebb9601a759e2 100644 --- a/core/java/android/net/NetworkCapabilities.java +++ b/core/java/android/net/NetworkCapabilities.java @@ -405,8 +405,15 @@ public final class NetworkCapabilities implements Parcelable { */ public static final int TRANSPORT_VPN = 4; + /** + * Indicates this network uses a Wi-Fi NAN transport. + * + * @hide PROPOSED_NAN_API + */ + public static final int TRANSPORT_WIFI_NAN = 5; + private static final int MIN_TRANSPORT = TRANSPORT_CELLULAR; - private static final int MAX_TRANSPORT = TRANSPORT_VPN; + private static final int MAX_TRANSPORT = TRANSPORT_WIFI_NAN; /** * Adds the given transport type to this {@code NetworkCapability} instance. @@ -862,6 +869,7 @@ public final class NetworkCapabilities implements Parcelable { case TRANSPORT_BLUETOOTH: transports += "BLUETOOTH"; break; case TRANSPORT_ETHERNET: transports += "ETHERNET"; break; case TRANSPORT_VPN: transports += "VPN"; break; + case TRANSPORT_WIFI_NAN: transports += "WIFI_NAN"; break; } if (++i < types.length) transports += "|"; } From 302c37008f1c3aa4a62448411f1ceba5af56dc34 Mon Sep 17 00:00:00 2001 From: Lorenzo Colitti Date: Tue, 7 Jun 2016 16:27:10 +0900 Subject: [PATCH 2/2] Give WakeupMessage the ability to transport an object as well. (cherry-pick of commit eab17da5882e59caff25c73aa6bcd0587aca9dd4) (cherry-pick of commit 4171cdf303c24704c2412653fd0eccb21a487e8e) Bug: 23113288 Change-Id: Ic98e3bcb3ea8b0b28a309bd647fb4178311c46a3 --- .../com/android/internal/util/WakeupMessage.java | 16 ++++++++++++---- .../android/internal/util/WakeupMessageTest.java | 4 +++- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/core/java/com/android/internal/util/WakeupMessage.java b/core/java/com/android/internal/util/WakeupMessage.java index 26537451992c6..7d222c74ac3be 100644 --- a/core/java/com/android/internal/util/WakeupMessage.java +++ b/core/java/com/android/internal/util/WakeupMessage.java @@ -45,24 +45,32 @@ public class WakeupMessage implements AlarmManager.OnAlarmListener { protected final String mCmdName; @VisibleForTesting protected final int mCmd, mArg1, mArg2; + @VisibleForTesting + protected final Object mObj; private boolean mScheduled; public WakeupMessage(Context context, Handler handler, - String cmdName, int cmd, int arg1, int arg2) { + String cmdName, int cmd, int arg1, int arg2, Object obj) { mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); mHandler = handler; mCmdName = cmdName; mCmd = cmd; mArg1 = arg1; mArg2 = arg2; + mObj = obj; } public WakeupMessage(Context context, Handler handler, String cmdName, int cmd, int arg1) { - this(context, handler, cmdName, cmd, arg1, 0); + this(context, handler, cmdName, cmd, arg1, 0, null); + } + + public WakeupMessage(Context context, Handler handler, + String cmdName, int cmd, int arg1, int arg2) { + this(context, handler, cmdName, cmd, arg1, arg2, null); } public WakeupMessage(Context context, Handler handler, String cmdName, int cmd) { - this(context, handler, cmdName, cmd, 0, 0); + this(context, handler, cmdName, cmd, 0, 0, null); } /** @@ -99,7 +107,7 @@ public class WakeupMessage implements AlarmManager.OnAlarmListener { mScheduled = false; } if (stillScheduled) { - Message msg = mHandler.obtainMessage(mCmd, mArg1, mArg2); + Message msg = mHandler.obtainMessage(mCmd, mArg1, mArg2, mObj); mHandler.handleMessage(msg); msg.recycle(); } diff --git a/core/tests/utiltests/src/com/android/internal/util/WakeupMessageTest.java b/core/tests/utiltests/src/com/android/internal/util/WakeupMessageTest.java index da8bc1d0945d9..7935880d12a91 100644 --- a/core/tests/utiltests/src/com/android/internal/util/WakeupMessageTest.java +++ b/core/tests/utiltests/src/com/android/internal/util/WakeupMessageTest.java @@ -45,6 +45,7 @@ public class WakeupMessageTest { private static final int TEST_CMD = 18; private static final int TEST_ARG1 = 33; private static final int TEST_ARG2 = 182; + private static final Object TEST_OBJ = "hello"; @Mock AlarmManager mAlarmManager; WakeupMessage mMessage; @@ -92,7 +93,7 @@ public class WakeupMessageTest { mListenerCaptor.capture(), any(Handler.class)); mMessage = new WakeupMessage(context, mHandler, TEST_CMD_NAME, TEST_CMD, TEST_ARG1, - TEST_ARG2); + TEST_ARG2, TEST_OBJ); } /** @@ -114,6 +115,7 @@ public class WakeupMessageTest { assertEquals("what", TEST_CMD, mHandler.getLastMessage().what); assertEquals("arg1", TEST_ARG1, mHandler.getLastMessage().arg1); assertEquals("arg2", TEST_ARG2, mHandler.getLastMessage().arg2); + assertEquals("obj", TEST_OBJ, mHandler.getLastMessage().obj); } /**