Merge changes from topic 'undo_do_not_merge' into stage-aosp-master

* changes:
  Give WakeupMessage the ability to transport an object as well.
  [NAN] Add transport type for NAN.
This commit is contained in:
Etan Cohen
2016-09-16 18:41:31 +00:00
committed by Android (Google) Code Review
3 changed files with 24 additions and 6 deletions

View File

@@ -405,8 +405,15 @@ public final class NetworkCapabilities implements Parcelable {
*/ */
public static final int TRANSPORT_VPN = 4; 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 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. * 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_BLUETOOTH: transports += "BLUETOOTH"; break;
case TRANSPORT_ETHERNET: transports += "ETHERNET"; break; case TRANSPORT_ETHERNET: transports += "ETHERNET"; break;
case TRANSPORT_VPN: transports += "VPN"; break; case TRANSPORT_VPN: transports += "VPN"; break;
case TRANSPORT_WIFI_NAN: transports += "WIFI_NAN"; break;
} }
if (++i < types.length) transports += "|"; if (++i < types.length) transports += "|";
} }

View File

@@ -45,24 +45,32 @@ public class WakeupMessage implements AlarmManager.OnAlarmListener {
protected final String mCmdName; protected final String mCmdName;
@VisibleForTesting @VisibleForTesting
protected final int mCmd, mArg1, mArg2; protected final int mCmd, mArg1, mArg2;
@VisibleForTesting
protected final Object mObj;
private boolean mScheduled; private boolean mScheduled;
public WakeupMessage(Context context, Handler handler, 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); mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
mHandler = handler; mHandler = handler;
mCmdName = cmdName; mCmdName = cmdName;
mCmd = cmd; mCmd = cmd;
mArg1 = arg1; mArg1 = arg1;
mArg2 = arg2; mArg2 = arg2;
mObj = obj;
} }
public WakeupMessage(Context context, Handler handler, String cmdName, int cmd, int arg1) { 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) { 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; mScheduled = false;
} }
if (stillScheduled) { if (stillScheduled) {
Message msg = mHandler.obtainMessage(mCmd, mArg1, mArg2); Message msg = mHandler.obtainMessage(mCmd, mArg1, mArg2, mObj);
mHandler.handleMessage(msg); mHandler.handleMessage(msg);
msg.recycle(); msg.recycle();
} }

View File

@@ -45,6 +45,7 @@ public class WakeupMessageTest {
private static final int TEST_CMD = 18; private static final int TEST_CMD = 18;
private static final int TEST_ARG1 = 33; private static final int TEST_ARG1 = 33;
private static final int TEST_ARG2 = 182; private static final int TEST_ARG2 = 182;
private static final Object TEST_OBJ = "hello";
@Mock AlarmManager mAlarmManager; @Mock AlarmManager mAlarmManager;
WakeupMessage mMessage; WakeupMessage mMessage;
@@ -92,7 +93,7 @@ public class WakeupMessageTest {
mListenerCaptor.capture(), any(Handler.class)); mListenerCaptor.capture(), any(Handler.class));
mMessage = new WakeupMessage(context, mHandler, TEST_CMD_NAME, TEST_CMD, TEST_ARG1, 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("what", TEST_CMD, mHandler.getLastMessage().what);
assertEquals("arg1", TEST_ARG1, mHandler.getLastMessage().arg1); assertEquals("arg1", TEST_ARG1, mHandler.getLastMessage().arg1);
assertEquals("arg2", TEST_ARG2, mHandler.getLastMessage().arg2); assertEquals("arg2", TEST_ARG2, mHandler.getLastMessage().arg2);
assertEquals("obj", TEST_OBJ, mHandler.getLastMessage().obj);
} }
/** /**