[AWARE] Restructure debugging flags to enable dynamic updates
Restructure the debugging flags to allow dynamic updates of the debug
flag. Each class has a static VDBG and a dynamically updated mDbg.
Note: there are no (or minimal changes) to the actual debugging - all
of which is gated by VDBG. A subsequent CL will move some messages to
the lower-level mDbg.
Bug: 69432628
Test: builds, runs, toggle debug flag
Change-Id: I61df2a0bb790832c7136aa1ad67a745eb388b1da
diff --git a/service/java/com/android/server/wifi/aware/WifiAwareClientState.java b/service/java/com/android/server/wifi/aware/WifiAwareClientState.java
index 987d49e..d951257 100644
--- a/service/java/com/android/server/wifi/aware/WifiAwareClientState.java
+++ b/service/java/com/android/server/wifi/aware/WifiAwareClientState.java
@@ -43,8 +43,8 @@
*/
public class WifiAwareClientState {
private static final String TAG = "WifiAwareClientState";
- private static final boolean DBG = false;
private static final boolean VDBG = false; // STOPSHIP if true
+ /* package */ boolean mDbg = false;
/* package */ static final int CLUSTER_CHANGE_EVENT_STARTED = 0;
/* package */ static final int CLUSTER_CHANGE_EVENT_JOINED = 1;
diff --git a/service/java/com/android/server/wifi/aware/WifiAwareDataPathStateManager.java b/service/java/com/android/server/wifi/aware/WifiAwareDataPathStateManager.java
index 82bc2c4..8088d6e 100644
--- a/service/java/com/android/server/wifi/aware/WifiAwareDataPathStateManager.java
+++ b/service/java/com/android/server/wifi/aware/WifiAwareDataPathStateManager.java
@@ -76,9 +76,8 @@
*/
public class WifiAwareDataPathStateManager {
private static final String TAG = "WifiAwareDataPathStMgr";
-
- private static final boolean DBG = false;
private static final boolean VDBG = false; // STOPSHIP if true
+ /* package */ boolean mDbg = false;
private static final String AWARE_INTERFACE_PREFIX = "aware_data";
private static final String NETWORK_TAG = "WIFI_AWARE_FACTORY";
@@ -350,8 +349,8 @@
if (nnri == null) {
Log.w(TAG, "onDataPathRequest: can't find a request with specified pubSubId=" + pubSubId
+ ", mac=" + String.valueOf(HexEncoding.encode(mac)));
- if (DBG) {
- Log.d(TAG, "onDataPathRequest: network request cache = " + mNetworkRequestsCache);
+ if (VDBG) {
+ Log.v(TAG, "onDataPathRequest: network request cache = " + mNetworkRequestsCache);
}
mMgr.respondToDataPathRequest(false, ndpId, "", null, null, false);
return null;
@@ -408,8 +407,8 @@
if (nnri == null) {
Log.w(TAG, "onRespondToDataPathRequest: can't find a request with specified ndpId="
+ ndpId);
- if (DBG) {
- Log.d(TAG, "onRespondToDataPathRequest: network request cache = "
+ if (VDBG) {
+ Log.v(TAG, "onRespondToDataPathRequest: network request cache = "
+ mNetworkRequestsCache);
}
return;
@@ -531,8 +530,8 @@
nnri.startTimestamp = SystemClock.elapsedRealtime(); // update time-stamp for duration
mAwareMetrics.recordNdpCreation(nnri.uid, mNetworkRequestsCache);
} else {
- if (DBG) {
- Log.d(TAG, "onDataPathConfirm: data-path for networkSpecifier=" + networkSpecifier
+ if (VDBG) {
+ Log.v(TAG, "onDataPathConfirm: data-path for networkSpecifier=" + networkSpecifier
+ " rejected - reason=" + reason);
}
mNetworkRequestsCache.remove(networkSpecifier);
@@ -555,8 +554,8 @@
Map.Entry<WifiAwareNetworkSpecifier, AwareNetworkRequestInformation> nnriE =
getNetworkRequestByNdpId(ndpId);
if (nnriE == null) {
- if (DBG) {
- Log.d(TAG, "onDataPathEnd: network request not found for ndpId=" + ndpId);
+ if (VDBG) {
+ Log.v(TAG, "onDataPathEnd: network request not found for ndpId=" + ndpId);
}
return;
}
@@ -594,8 +593,8 @@
AwareNetworkRequestInformation nnri = mNetworkRequestsCache.remove(networkSpecifier);
if (nnri == null) {
- if (DBG) {
- Log.d(TAG,
+ if (VDBG) {
+ Log.v(TAG,
"handleDataPathTimeout: network request not found for networkSpecifier="
+ networkSpecifier);
}
@@ -660,8 +659,8 @@
// look up specifier - are we being called again?
AwareNetworkRequestInformation nnri = mNetworkRequestsCache.get(networkSpecifier);
if (nnri != null) {
- if (DBG) {
- Log.d(TAG, "WifiAwareNetworkFactory.acceptRequest: request=" + request
+ if (VDBG) {
+ Log.v(TAG, "WifiAwareNetworkFactory.acceptRequest: request=" + request
+ " - already in cache with state=" + nnri.state);
}
@@ -728,8 +727,8 @@
}
if (nnri.state != AwareNetworkRequestInformation.STATE_IDLE) {
- if (DBG) {
- Log.d(TAG, "WifiAwareNetworkFactory.needNetworkFor: networkRequest="
+ if (VDBG) {
+ Log.v(TAG, "WifiAwareNetworkFactory.needNetworkFor: networkRequest="
+ networkRequest + " - already in progress");
// TODO: understand how/when can be called again/while in progress (seems
// to be related to score re-calculation after a network agent is created)
diff --git a/service/java/com/android/server/wifi/aware/WifiAwareDiscoverySessionState.java b/service/java/com/android/server/wifi/aware/WifiAwareDiscoverySessionState.java
index 3358a4a..062b5d9 100644
--- a/service/java/com/android/server/wifi/aware/WifiAwareDiscoverySessionState.java
+++ b/service/java/com/android/server/wifi/aware/WifiAwareDiscoverySessionState.java
@@ -38,8 +38,8 @@
*/
public class WifiAwareDiscoverySessionState {
private static final String TAG = "WifiAwareDiscSessState";
- private static final boolean DBG = false;
private static final boolean VDBG = false; // STOPSHIP if true
+ /* package */ boolean mDbg = false;
private int mNextPeerIdToBeAllocated = 100; // used to create a unique peer ID
@@ -296,8 +296,8 @@
PeerInfo newPeerInfo = new PeerInfo(requestorInstanceId, peerMac);
mPeerInfoByRequestorInstanceId.put(newPeerId, newPeerInfo);
- if (DBG) {
- Log.d(TAG, "New peer info: peerId=" + newPeerId + ", peerInfo=" + newPeerInfo);
+ if (VDBG) {
+ Log.v(TAG, "New peer info: peerId=" + newPeerId + ", peerInfo=" + newPeerInfo);
}
return newPeerId;
diff --git a/service/java/com/android/server/wifi/aware/WifiAwareMetrics.java b/service/java/com/android/server/wifi/aware/WifiAwareMetrics.java
index c45c6dc..4f5f46b 100644
--- a/service/java/com/android/server/wifi/aware/WifiAwareMetrics.java
+++ b/service/java/com/android/server/wifi/aware/WifiAwareMetrics.java
@@ -40,7 +40,8 @@
*/
public class WifiAwareMetrics {
private static final String TAG = "WifiAwareMetrics";
- private static final boolean DBG = false;
+ private static final boolean VDBG = false;
+ /* package */ boolean mDbg = false;
// Histogram: 8 buckets (i=0, ..., 7) of 9 slots in range 10^i -> 10^(i+1)
// Buckets:
diff --git a/service/java/com/android/server/wifi/aware/WifiAwareNativeApi.java b/service/java/com/android/server/wifi/aware/WifiAwareNativeApi.java
index c8b5fce..f3ada5d 100644
--- a/service/java/com/android/server/wifi/aware/WifiAwareNativeApi.java
+++ b/service/java/com/android/server/wifi/aware/WifiAwareNativeApi.java
@@ -56,8 +56,8 @@
*/
public class WifiAwareNativeApi implements WifiAwareShellCommand.DelegatedShellCommand {
private static final String TAG = "WifiAwareNativeApi";
- private static final boolean DBG = false;
private static final boolean VDBG = false; // STOPSHIP if true
+ /* package */ boolean mDbg = false;
private static final String SERVICE_NAME_FOR_OOB_DATA_PATH = "Wi-Fi Aware Data Path";
diff --git a/service/java/com/android/server/wifi/aware/WifiAwareNativeCallback.java b/service/java/com/android/server/wifi/aware/WifiAwareNativeCallback.java
index b45978b..396187b 100644
--- a/service/java/com/android/server/wifi/aware/WifiAwareNativeCallback.java
+++ b/service/java/com/android/server/wifi/aware/WifiAwareNativeCallback.java
@@ -46,8 +46,8 @@
public class WifiAwareNativeCallback extends IWifiNanIfaceEventCallback.Stub implements
WifiAwareShellCommand.DelegatedShellCommand {
private static final String TAG = "WifiAwareNativeCallback";
- private static final boolean DBG = false;
private static final boolean VDBG = false;
+ /* package */ boolean mDbg = false;
private final WifiAwareStateManager mWifiAwareStateManager;
diff --git a/service/java/com/android/server/wifi/aware/WifiAwareNativeManager.java b/service/java/com/android/server/wifi/aware/WifiAwareNativeManager.java
index f0a86bb..a82abbb 100644
--- a/service/java/com/android/server/wifi/aware/WifiAwareNativeManager.java
+++ b/service/java/com/android/server/wifi/aware/WifiAwareNativeManager.java
@@ -36,7 +36,8 @@
*/
public class WifiAwareNativeManager {
private static final String TAG = "WifiAwareNativeManager";
- private static final boolean DBG = false;
+ private static final boolean VDBG = false;
+ /* package */ boolean mDbg = false;
// to be used for synchronizing access to any of the WifiAwareNative objects
private final Object mLock = new Object();
@@ -71,7 +72,7 @@
new HalDeviceManager.ManagerStatusListener() {
@Override
public void onStatusChanged() {
- if (DBG) Log.d(TAG, "onStatusChanged");
+ if (VDBG) Log.v(TAG, "onStatusChanged");
// only care about isStarted (Wi-Fi started) not isReady - since if not
// ready then Wi-Fi will also be down.
if (mHalDeviceManager.isStarted()) {
@@ -107,7 +108,7 @@
*/
private void tryToGetAware() {
synchronized (mLock) {
- if (DBG) Log.d(TAG, "tryToGetAware: mWifiNanIface=" + mWifiNanIface);
+ if (VDBG) Log.v(TAG, "tryToGetAware: mWifiNanIface=" + mWifiNanIface);
if (mWifiNanIface != null) {
return;
@@ -115,9 +116,9 @@
IWifiNanIface iface = mHalDeviceManager.createNanIface(mInterfaceDestroyedListener,
mHandler);
if (iface == null) {
- if (DBG) Log.d(TAG, "Was not able to obtain an IWifiNanIface");
+ if (VDBG) Log.v(TAG, "Was not able to obtain an IWifiNanIface");
} else {
- if (DBG) Log.d(TAG, "Obtained an IWifiNanIface");
+ if (VDBG) Log.v(TAG, "Obtained an IWifiNanIface");
try {
WifiStatus status = iface.registerEventCallback(mWifiAwareNativeCallback);
@@ -140,7 +141,7 @@
private void awareIsDown() {
synchronized (mLock) {
- if (DBG) Log.d(TAG, "awareIsDown: mWifiNanIface=" + mWifiNanIface);
+ if (VDBG) Log.v(TAG, "awareIsDown: mWifiNanIface=" + mWifiNanIface);
if (mWifiNanIface != null) {
mWifiNanIface = null;
mWifiAwareStateManager.disableUsage();
@@ -152,7 +153,7 @@
HalDeviceManager.InterfaceDestroyedListener {
@Override
public void onDestroyed(@NonNull String ifaceName) {
- if (DBG) Log.d(TAG, "Interface was destroyed");
+ if (VDBG) Log.v(TAG, "Interface was destroyed");
awareIsDown();
}
}
@@ -161,7 +162,7 @@
HalDeviceManager.InterfaceAvailableForRequestListener {
@Override
public void onAvailableForRequest() {
- if (DBG) Log.d(TAG, "Interface is possibly available");
+ if (VDBG) Log.v(TAG, "Interface is possibly available");
tryToGetAware();
}
}
diff --git a/service/java/com/android/server/wifi/aware/WifiAwareService.java b/service/java/com/android/server/wifi/aware/WifiAwareService.java
index e210d3e..40b2e39 100644
--- a/service/java/com/android/server/wifi/aware/WifiAwareService.java
+++ b/service/java/com/android/server/wifi/aware/WifiAwareService.java
@@ -69,7 +69,8 @@
HandlerThread awareHandlerThread = wifiInjector.getWifiAwareHandlerThread();
mImpl.start(awareHandlerThread, wifiAwareStateManager, wifiAwareShellCommand,
wifiInjector.getWifiMetrics().getWifiAwareMetrics(),
- wifiInjector.getWifiPermissionsWrapper());
+ wifiInjector.getWifiPermissionsWrapper(), wifiInjector.getFrameworkFacade(),
+ wifiAwareNativeManager, wifiAwareNativeApi, wifiAwareNativeCallback);
} else if (phase == SystemService.PHASE_BOOT_COMPLETED) {
mImpl.startLate();
}
diff --git a/service/java/com/android/server/wifi/aware/WifiAwareServiceImpl.java b/service/java/com/android/server/wifi/aware/WifiAwareServiceImpl.java
index e609c86..8990557 100644
--- a/service/java/com/android/server/wifi/aware/WifiAwareServiceImpl.java
+++ b/service/java/com/android/server/wifi/aware/WifiAwareServiceImpl.java
@@ -19,6 +19,7 @@
import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
+import android.database.ContentObserver;
import android.hardware.wifi.V1_0.NanStatusType;
import android.net.wifi.aware.Characteristics;
import android.net.wifi.aware.ConfigRequest;
@@ -30,15 +31,19 @@
import android.net.wifi.aware.PublishConfig;
import android.net.wifi.aware.SubscribeConfig;
import android.os.Binder;
+import android.os.Handler;
import android.os.HandlerThread;
import android.os.IBinder;
import android.os.RemoteException;
import android.os.ResultReceiver;
import android.os.ShellCallback;
+import android.provider.Settings;
import android.util.Log;
import android.util.SparseArray;
import android.util.SparseIntArray;
+import com.android.server.wifi.FrameworkFacade;
+import com.android.server.wifi.WifiInjector;
import com.android.server.wifi.util.WifiPermissionsWrapper;
import java.io.FileDescriptor;
@@ -53,8 +58,8 @@
*/
public class WifiAwareServiceImpl extends IWifiAwareManager.Stub {
private static final String TAG = "WifiAwareService";
- private static final boolean DBG = false;
private static final boolean VDBG = false; // STOPSHIP if true
+ /* package */ boolean mDbg = false;
private Context mContext;
private WifiAwareStateManager mStateManager;
@@ -84,12 +89,54 @@
*/
public void start(HandlerThread handlerThread, WifiAwareStateManager awareStateManager,
WifiAwareShellCommand awareShellCommand, WifiAwareMetrics awareMetrics,
- WifiPermissionsWrapper permissionsWrapper) {
+ WifiPermissionsWrapper permissionsWrapper, FrameworkFacade frameworkFacade,
+ WifiAwareNativeManager wifiAwareNativeManager, WifiAwareNativeApi wifiAwareNativeApi,
+ WifiAwareNativeCallback wifiAwareNativeCallback) {
Log.i(TAG, "Starting Wi-Fi Aware service");
mStateManager = awareStateManager;
mShellCommand = awareShellCommand;
mStateManager.start(mContext, handlerThread.getLooper(), awareMetrics, permissionsWrapper);
+
+ frameworkFacade.registerContentObserver(mContext,
+ Settings.Global.getUriFor(Settings.Global.WIFI_VERBOSE_LOGGING_ENABLED), true,
+ new ContentObserver(new Handler(handlerThread.getLooper())) {
+ @Override
+ public void onChange(boolean selfChange) {
+ enableVerboseLogging(frameworkFacade.getIntegerSetting(mContext,
+ Settings.Global.WIFI_VERBOSE_LOGGING_ENABLED, 0), awareStateManager,
+ wifiAwareNativeManager, wifiAwareNativeApi,
+ wifiAwareNativeCallback);
+ }
+ });
+ enableVerboseLogging(frameworkFacade.getIntegerSetting(mContext,
+ Settings.Global.WIFI_VERBOSE_LOGGING_ENABLED, 0), awareStateManager,
+ wifiAwareNativeManager, wifiAwareNativeApi, wifiAwareNativeCallback);
+ }
+
+ private void enableVerboseLogging(int verbose, WifiAwareStateManager awareStateManager,
+ WifiAwareNativeManager wifiAwareNativeManager, WifiAwareNativeApi wifiAwareNativeApi,
+ WifiAwareNativeCallback wifiAwareNativeCallback) {
+ boolean dbg;
+
+ if (verbose > 0) {
+ dbg = true;
+ } else {
+ dbg = false;
+ }
+ if (VDBG) {
+ dbg = true; // just override
+ }
+
+ mDbg = dbg;
+ awareStateManager.mDbg = dbg;
+ if (awareStateManager.mDataPathMgr != null) { // needed for unit tests
+ awareStateManager.mDataPathMgr.mDbg = dbg;
+ WifiInjector.getInstance().getWifiMetrics().getWifiAwareMetrics().mDbg = dbg;
+ }
+ wifiAwareNativeCallback.mDbg = dbg;
+ wifiAwareNativeManager.mDbg = dbg;
+ wifiAwareNativeApi.mDbg = dbg;
}
/**
@@ -156,7 +203,7 @@
IBinder.DeathRecipient dr = new IBinder.DeathRecipient() {
@Override
public void binderDied() {
- if (DBG) Log.d(TAG, "binderDied: clientId=" + clientId);
+ if (VDBG) Log.v(TAG, "binderDied: clientId=" + clientId);
binder.unlinkToDeath(this, 0);
synchronized (mLock) {
diff --git a/service/java/com/android/server/wifi/aware/WifiAwareStateManager.java b/service/java/com/android/server/wifi/aware/WifiAwareStateManager.java
index 89d9a90..6c7f39b 100644
--- a/service/java/com/android/server/wifi/aware/WifiAwareStateManager.java
+++ b/service/java/com/android/server/wifi/aware/WifiAwareStateManager.java
@@ -69,8 +69,8 @@
*/
public class WifiAwareStateManager implements WifiAwareShellCommand.DelegatedShellCommand {
private static final String TAG = "WifiAwareStateManager";
- private static final boolean DBG = false;
private static final boolean VDBG = false; // STOPSHIP if true
+ /* package */ boolean mDbg = false;
@VisibleForTesting
public static final String HAL_COMMAND_TIMEOUT_TAG = TAG + " HAL Command Timeout";
@@ -344,7 +344,7 @@
mContext = context;
mAwareMetrics = awareMetrics;
mSm = new WifiAwareStateMachine(TAG, looper);
- mSm.setDbg(DBG);
+ mSm.setDbg(VDBG);
mSm.start();
mDataPathMgr = new WifiAwareDataPathStateManager(this);
@@ -1338,8 +1338,8 @@
int retryCount = sentMessage.getData()
.getInt(MESSAGE_BUNDLE_KEY_RETRY_COUNT);
if (retryCount > 0 && reason == NanStatusType.NO_OTA_ACK) {
- if (DBG) {
- Log.d(TAG,
+ if (VDBG) {
+ Log.v(TAG,
"NOTIFICATION_TYPE_ON_MESSAGE_SEND_FAIL: transactionId="
+ transactionId + ", reason=" + reason
+ ": retransmitting - retryCount=" + retryCount);
@@ -2051,6 +2051,7 @@
WifiAwareClientState client = new WifiAwareClientState(mContext, clientId, uid, pid,
callingPackage, callback, configRequest, notifyIdentityChange,
SystemClock.elapsedRealtime());
+ client.mDbg = mDbg;
client.onInterfaceAddressChange(mCurrentDiscoveryInterfaceMac);
mClients.append(clientId, client);
mAwareMetrics.recordAttachSession(uid, notifyIdentityChange, mClients);
@@ -2399,6 +2400,7 @@
WifiAwareClientState client = new WifiAwareClientState(mContext, clientId, uid, pid,
callingPackage, callback, configRequest, notifyIdentityChange,
SystemClock.elapsedRealtime());
+ client.mDbg = mDbg;
mClients.put(clientId, client);
mAwareMetrics.recordAttachSession(uid, notifyIdentityChange, mClients);
try {
@@ -2514,6 +2516,7 @@
WifiAwareDiscoverySessionState session = new WifiAwareDiscoverySessionState(
mWifiAwareNativeApi, sessionId, pubSubId, callback, isPublish,
SystemClock.elapsedRealtime());
+ session.mDbg = mDbg;
client.addSession(session);
mAwareMetrics.recordDiscoverySession(client.getUid(),
@@ -2689,8 +2692,8 @@
}
if (success) {
- if (DBG) {
- Log.d(TAG, "onCreateDataPathInterfaceResponseLocal: successfully created interface "
+ if (VDBG) {
+ Log.v(TAG, "onCreateDataPathInterfaceResponseLocal: successfully created interface "
+ command.obj);
}
mDataPathMgr.onInterfaceCreated((String) command.obj);
@@ -2710,8 +2713,8 @@
}
if (success) {
- if (DBG) {
- Log.d(TAG, "onDeleteDataPathInterfaceResponseLocal: successfully deleted interface "
+ if (VDBG) {
+ Log.v(TAG, "onDeleteDataPathInterfaceResponseLocal: successfully deleted interface "
+ command.obj);
}
mDataPathMgr.onInterfaceDeleted((String) command.obj);
diff --git a/tests/wifitests/src/com/android/server/wifi/aware/WifiAwareServiceImplTest.java b/tests/wifitests/src/com/android/server/wifi/aware/WifiAwareServiceImplTest.java
index a0abf16..2d17751 100644
--- a/tests/wifitests/src/com/android/server/wifi/aware/WifiAwareServiceImplTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/aware/WifiAwareServiceImplTest.java
@@ -19,9 +19,11 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.mock;
@@ -41,10 +43,12 @@
import android.os.HandlerThread;
import android.os.IBinder;
import android.os.RemoteException;
+import android.os.test.TestLooper;
import android.test.suitebuilder.annotation.SmallTest;
import android.util.SparseArray;
import android.util.SparseIntArray;
+import com.android.server.wifi.FrameworkFacade;
import com.android.server.wifi.util.WifiPermissionsWrapper;
import org.junit.Before;
@@ -68,6 +72,7 @@
private WifiAwareServiceImplSpy mDut;
private int mDefaultUid = 1500;
+ private TestLooper mMockLooper;
@Mock
private Context mContextMock;
@@ -87,6 +92,8 @@
private IWifiAwareDiscoverySessionCallback mSessionCallbackMock;
@Mock private WifiAwareMetrics mAwareMetricsMock;
@Mock private WifiPermissionsWrapper mPermissionsWrapperMock;
+ @Mock
+ FrameworkFacade mFrameworkFacade;
/**
* Using instead of spy to avoid native crash failures - possibly due to
@@ -115,6 +122,11 @@
@Before
public void setup() throws Exception {
MockitoAnnotations.initMocks(this);
+ mMockLooper = new TestLooper();
+
+ when(mHandlerThreadMock.getLooper()).thenReturn(mMockLooper.getLooper());
+ doNothing().when(mFrameworkFacade).registerContentObserver(eq(mContextMock), any(),
+ anyBoolean(), any());
when(mContextMock.getApplicationContext()).thenReturn(mContextMock);
when(mContextMock.getPackageManager()).thenReturn(mPackageManagerMock);
@@ -127,7 +139,9 @@
mDut = new WifiAwareServiceImplSpy(mContextMock);
mDut.fakeUid = mDefaultUid;
mDut.start(mHandlerThreadMock, mAwareStateManagerMock, mWifiAwareShellCommandMock,
- mAwareMetricsMock, mPermissionsWrapperMock);
+ mAwareMetricsMock, mPermissionsWrapperMock, mFrameworkFacade,
+ mock(WifiAwareNativeManager.class), mock(WifiAwareNativeApi.class),
+ mock(WifiAwareNativeCallback.class));
verify(mAwareStateManagerMock).start(eq(mContextMock), any(), eq(mAwareMetricsMock),
eq(mPermissionsWrapperMock));
}