Disable wifi display API when the adapter is not registered.
Bug: 7132341
Change-Id: I46d859082077afd2c8adc829ad285977dff80d07
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java
index e9dd70a..b0e7a9e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java
@@ -22,18 +22,15 @@
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.CursorLoader;
-import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.Loader;
import android.content.res.Resources;
import android.database.Cursor;
-import android.database.DataSetObserver;
import android.graphics.drawable.ClipDrawable;
import android.hardware.display.DisplayManager;
import android.hardware.display.WifiDisplay;
import android.hardware.display.WifiDisplayStatus;
-import android.hardware.input.KeyboardLayout;
import android.net.Uri;
import android.provider.ContactsContract;
import android.provider.Settings;
@@ -44,12 +41,8 @@
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
-import android.widget.CheckedTextView;
import android.widget.ListView;
-import android.widget.RadioButton;
import android.widget.TextView;
-import android.widget.Toast;
-import android.widget.ListAdapter;
import java.util.ArrayList;
import java.util.Comparator;
diff --git a/services/java/com/android/server/display/DisplayManagerService.java b/services/java/com/android/server/display/DisplayManagerService.java
index e11d454..39f2418 100644
--- a/services/java/com/android/server/display/DisplayManagerService.java
+++ b/services/java/com/android/server/display/DisplayManagerService.java
@@ -352,7 +352,9 @@
final long token = Binder.clearCallingIdentity();
try {
synchronized (mSyncRoot) {
- mWifiDisplayAdapter.requestScanLocked();
+ if (mWifiDisplayAdapter != null) {
+ mWifiDisplayAdapter.requestScanLocked();
+ }
}
} finally {
Binder.restoreCallingIdentity(token);
@@ -372,7 +374,9 @@
final long token = Binder.clearCallingIdentity();
try {
synchronized (mSyncRoot) {
- mWifiDisplayAdapter.requestConnectLocked(address);
+ if (mWifiDisplayAdapter != null) {
+ mWifiDisplayAdapter.requestConnectLocked(address);
+ }
}
} finally {
Binder.restoreCallingIdentity(token);
@@ -389,7 +393,9 @@
final long token = Binder.clearCallingIdentity();
try {
synchronized (mSyncRoot) {
- mWifiDisplayAdapter.requestDisconnectLocked();
+ if (mWifiDisplayAdapter != null) {
+ mWifiDisplayAdapter.requestDisconnectLocked();
+ }
}
} finally {
Binder.restoreCallingIdentity(token);
@@ -406,7 +412,11 @@
final long token = Binder.clearCallingIdentity();
try {
synchronized (mSyncRoot) {
- return mWifiDisplayAdapter.getWifiDisplayStatusLocked();
+ if (mWifiDisplayAdapter != null) {
+ return mWifiDisplayAdapter.getWifiDisplayStatusLocked();
+ } else {
+ return new WifiDisplayStatus();
+ }
}
} finally {
Binder.restoreCallingIdentity(token);