private void forgetWifiDisplayInternal(String address) {
   synchronized (mSyncRoot) {
     if (mWifiDisplayAdapter != null) {
       mWifiDisplayAdapter.requestForgetLocked(address);
     }
   }
 }
 private void renameWifiDisplayInternal(String address, String alias) {
   synchronized (mSyncRoot) {
     if (mWifiDisplayAdapter != null) {
       mWifiDisplayAdapter.requestRenameLocked(address, alias);
     }
   }
 }
 private void disconnectWifiDisplayInternal() {
   synchronized (mSyncRoot) {
     if (mWifiDisplayAdapter != null) {
       mWifiDisplayAdapter.requestDisconnectLocked();
     }
   }
 }
 private void resumeWifiDisplayInternal() {
   synchronized (mSyncRoot) {
     if (mWifiDisplayAdapter != null) {
       mWifiDisplayAdapter.requestResumeLocked();
     }
   }
 }
 private WifiDisplayStatus getWifiDisplayStatusInternal() {
   synchronized (mSyncRoot) {
     if (mWifiDisplayAdapter != null) {
       return mWifiDisplayAdapter.getWifiDisplayStatusLocked();
     }
     return new WifiDisplayStatus();
   }
 }
 private void startWifiDisplayScanLocked(CallbackRecord record) {
   if (!record.mWifiDisplayScanRequested) {
     record.mWifiDisplayScanRequested = true;
     if (mWifiDisplayScanRequestCount++ == 0) {
       if (mWifiDisplayAdapter != null) {
         mWifiDisplayAdapter.requestStartScanLocked();
       }
     }
   }
 }
 @Override // Binder call
 public void disconnectWifiDisplay() {
   final long token = Binder.clearCallingIdentity();
   try {
     synchronized (mSyncRoot) {
       if (mWifiDisplayAdapter != null) {
         mWifiDisplayAdapter.requestDisconnectLocked();
       }
     }
   } finally {
     Binder.restoreCallingIdentity(token);
   }
 }
 private void stopWifiDisplayScanLocked(CallbackRecord record) {
   if (record.mWifiDisplayScanRequested) {
     record.mWifiDisplayScanRequested = false;
     if (--mWifiDisplayScanRequestCount == 0) {
       if (mWifiDisplayAdapter != null) {
         mWifiDisplayAdapter.requestStopScanLocked();
       }
     } else if (mWifiDisplayScanRequestCount < 0) {
       Log.wtf(
           TAG, "mWifiDisplayScanRequestCount became negative: " + mWifiDisplayScanRequestCount);
       mWifiDisplayScanRequestCount = 0;
     }
   }
 }
 @Override // Binder call
 public WifiDisplayStatus getWifiDisplayStatus() {
   final long token = Binder.clearCallingIdentity();
   try {
     synchronized (mSyncRoot) {
       if (mWifiDisplayAdapter != null) {
         return mWifiDisplayAdapter.getWifiDisplayStatusLocked();
       } else {
         return new WifiDisplayStatus();
       }
     }
   } finally {
     Binder.restoreCallingIdentity(token);
   }
 }
  @Override // Binder call
  public void connectWifiDisplay(String address) {
    if (address == null) {
      throw new IllegalArgumentException("address must not be null");
    }

    final boolean trusted = canCallerConfigureWifiDisplay();
    final long token = Binder.clearCallingIdentity();
    try {
      synchronized (mSyncRoot) {
        if (mWifiDisplayAdapter != null) {
          mWifiDisplayAdapter.requestConnectLocked(address, trusted);
        }
      }
    } finally {
      Binder.restoreCallingIdentity(token);
    }
  }
  @Override // Binder call
  public void forgetWifiDisplay(String address) {
    if (address == null) {
      throw new IllegalArgumentException("address must not be null");
    }
    if (!canCallerConfigureWifiDisplay()) {
      throw new SecurityException(
          "Requires CONFIGURE_WIFI_DISPLAY permission to " + "forget a wifi display.");
    }

    final long token = Binder.clearCallingIdentity();
    try {
      synchronized (mSyncRoot) {
        if (mWifiDisplayAdapter != null) {
          mWifiDisplayAdapter.requestForgetLocked(address);
        }
      }
    } finally {
      Binder.restoreCallingIdentity(token);
    }
  }