@Override
  public void onCreate() {
    super.onCreate();

    cNeighborsDataSource = new CNeighborsDataSource(this);
    cNeighborsDataSource.open();

    startRequestingLocationUpdates();

    /** NEW * */
    intentFilter.addAction(WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION);
    intentFilter.addAction(WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION);
    intentFilter.addAction(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION);
    intentFilter.addAction(WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION);

    manager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
    channel =
        manager.initialize(
            this,
            getMainLooper(),
            new WifiP2pManager.ChannelListener() {
              @Override
              public void onChannelDisconnected() {
                quickLog("Channel disconnected");
              }
            });

    startOrRestartRegistrationAndDiscovery();

    wifiDirectBroadcastReceiver = new WifiDirectBroadcastReceiverMode2(manager, channel);
    registerReceiver(wifiDirectBroadcastReceiver, intentFilter);
    /** NEW * */
  }