Android-x86
Fork
Faire un don

  • R/O
  • HTTP
  • SSH
  • HTTPS

packages-apps-Settings: Commit

packages/apps/Settings


Commit MetaInfo

Révision6caf0976f62450cc5e0f8fe5b8d494d75319342c (tree)
l'heure2017-12-27 15:35:37
AuteurFan Zhang <zhfan@goog...>
CommiterChih-Wei Huang

Message de Log

Catch exception when checking WifiDisplay availability

Change-Id: Ic2f17905babf43e92a825b8b5b4f8aac7d8ff001
Fixes: 68013053
Test: robotests

Change Summary

Modification

--- a/src/com/android/settings/wfd/WifiDisplaySettings.java
+++ b/src/com/android/settings/wfd/WifiDisplaySettings.java
@@ -36,6 +36,7 @@ import android.net.wifi.p2p.WifiP2pManager.Channel;
3636 import android.os.Bundle;
3737 import android.os.Handler;
3838 import android.os.Looper;
39+import android.os.ServiceManager;
3940 import android.provider.Settings;
4041 import android.support.v14.preference.SwitchPreference;
4142 import android.support.v7.preference.ListPreference;
@@ -212,8 +213,13 @@ public final class WifiDisplaySettings extends SettingsPreferenceFragment {
212213 }
213214
214215 public static boolean isAvailable(Context context) {
215- return context.getSystemService(Context.DISPLAY_SERVICE) != null
216- && context.getSystemService(Context.WIFI_P2P_SERVICE) != null;
216+ try {
217+ return context.getSystemService(Context.DISPLAY_SERVICE) != null
218+ && context.getSystemService(Context.WIFI_P2P_SERVICE) != null;
219+ } catch (Exception e) {
220+ // Service is not registered, so this is definitely not available.
221+ return false;
222+ }
217223 }
218224
219225 private void scheduleUpdate(int changes) {
--- a/tests/robotests/src/com/android/settings/wfd/WifiDisplaySettingsTest.java
+++ b/tests/robotests/src/com/android/settings/wfd/WifiDisplaySettingsTest.java
@@ -16,16 +16,23 @@
1616
1717 package com.android.settings.wfd;
1818
19+import static com.google.common.truth.Truth.assertThat;
20+import static org.mockito.Mockito.mock;
21+import static org.mockito.Mockito.never;
22+import static org.mockito.Mockito.verify;
23+import static org.mockito.Mockito.when;
24+
1925 import android.app.Activity;
2026 import android.content.Context;
2127 import android.hardware.display.DisplayManager;
2228 import android.media.MediaRouter;
2329 import android.net.wifi.p2p.WifiP2pManager;
30+import android.os.ServiceManager;
2431
2532 import com.android.settings.R;
26-import com.android.settings.testutils.SettingsRobolectricTestRunner;
2733 import com.android.settings.TestConfig;
2834 import com.android.settings.dashboard.SummaryLoader;
35+import com.android.settings.testutils.SettingsRobolectricTestRunner;
2936
3037 import org.junit.Before;
3138 import org.junit.Test;
@@ -34,12 +41,6 @@ import org.mockito.Mock;
3441 import org.mockito.MockitoAnnotations;
3542 import org.robolectric.annotation.Config;
3643
37-import static com.google.common.truth.Truth.assertThat;
38-import static org.mockito.Mockito.mock;
39-import static org.mockito.Mockito.never;
40-import static org.mockito.Mockito.verify;
41-import static org.mockito.Mockito.when;
42-
4344 @RunWith(SettingsRobolectricTestRunner.class)
4445 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
4546 public class WifiDisplaySettingsTest {
@@ -89,7 +90,15 @@ public class WifiDisplaySettingsTest {
8990 public void isAvailable_noService_shouldReturnFalse() {
9091 assertThat(WifiDisplaySettings.isAvailable(mActivity))
9192 .isFalse();
93+ }
9294
95+ @Test
96+ public void isAvailable_throwException_shouldReturnFalse() {
97+ when(mActivity.getSystemService(Context.WIFI_P2P_SERVICE))
98+ .thenThrow(new IllegalStateException());
99+
100+ assertThat(WifiDisplaySettings.isAvailable(mActivity))
101+ .isFalse();
93102 }
94103
95104 @Test
Afficher sur ancien navigateur de dépôt.