packages/apps/Settings
Révision | 6caf0976f62450cc5e0f8fe5b8d494d75319342c (tree) |
---|---|
l'heure | 2017-12-27 15:35:37 |
Auteur | Fan Zhang <zhfan@goog...> |
Commiter | Chih-Wei Huang |
Catch exception when checking WifiDisplay availability
Change-Id: Ic2f17905babf43e92a825b8b5b4f8aac7d8ff001
Fixes: 68013053
Test: robotests
@@ -36,6 +36,7 @@ import android.net.wifi.p2p.WifiP2pManager.Channel; | ||
36 | 36 | import android.os.Bundle; |
37 | 37 | import android.os.Handler; |
38 | 38 | import android.os.Looper; |
39 | +import android.os.ServiceManager; | |
39 | 40 | import android.provider.Settings; |
40 | 41 | import android.support.v14.preference.SwitchPreference; |
41 | 42 | import android.support.v7.preference.ListPreference; |
@@ -212,8 +213,13 @@ public final class WifiDisplaySettings extends SettingsPreferenceFragment { | ||
212 | 213 | } |
213 | 214 | |
214 | 215 | 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 | + } | |
217 | 223 | } |
218 | 224 | |
219 | 225 | private void scheduleUpdate(int changes) { |
@@ -16,16 +16,23 @@ | ||
16 | 16 | |
17 | 17 | package com.android.settings.wfd; |
18 | 18 | |
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 | + | |
19 | 25 | import android.app.Activity; |
20 | 26 | import android.content.Context; |
21 | 27 | import android.hardware.display.DisplayManager; |
22 | 28 | import android.media.MediaRouter; |
23 | 29 | import android.net.wifi.p2p.WifiP2pManager; |
30 | +import android.os.ServiceManager; | |
24 | 31 | |
25 | 32 | import com.android.settings.R; |
26 | -import com.android.settings.testutils.SettingsRobolectricTestRunner; | |
27 | 33 | import com.android.settings.TestConfig; |
28 | 34 | import com.android.settings.dashboard.SummaryLoader; |
35 | +import com.android.settings.testutils.SettingsRobolectricTestRunner; | |
29 | 36 | |
30 | 37 | import org.junit.Before; |
31 | 38 | import org.junit.Test; |
@@ -34,12 +41,6 @@ import org.mockito.Mock; | ||
34 | 41 | import org.mockito.MockitoAnnotations; |
35 | 42 | import org.robolectric.annotation.Config; |
36 | 43 | |
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 | - | |
43 | 44 | @RunWith(SettingsRobolectricTestRunner.class) |
44 | 45 | @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) |
45 | 46 | public class WifiDisplaySettingsTest { |
@@ -89,7 +90,15 @@ public class WifiDisplaySettingsTest { | ||
89 | 90 | public void isAvailable_noService_shouldReturnFalse() { |
90 | 91 | assertThat(WifiDisplaySettings.isAvailable(mActivity)) |
91 | 92 | .isFalse(); |
93 | + } | |
92 | 94 | |
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(); | |
93 | 102 | } |
94 | 103 | |
95 | 104 | @Test |