Merge "2nd attempt to fix crash when getting unavailable service"
This commit is contained in:
@@ -22,6 +22,7 @@ import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.database.ContentObserver;
|
||||
import android.hardware.display.DisplayManager;
|
||||
import android.hardware.display.WifiDisplay;
|
||||
@@ -213,13 +214,9 @@ public final class WifiDisplaySettings extends SettingsPreferenceFragment {
|
||||
}
|
||||
|
||||
public static boolean isAvailable(Context context) {
|
||||
try {
|
||||
return context.getSystemService(Context.DISPLAY_SERVICE) != null
|
||||
&& context.getSystemService(Context.WIFI_P2P_SERVICE) != null;
|
||||
} catch (Exception e) {
|
||||
// Service is not registered, so this is definitely not available.
|
||||
return false;
|
||||
}
|
||||
return context.getSystemService(Context.DISPLAY_SERVICE) != null
|
||||
&& context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_WIFI_DIRECT)
|
||||
&& context.getSystemService(Context.WIFI_P2P_SERVICE) != null;
|
||||
}
|
||||
|
||||
private void scheduleUpdate(int changes) {
|
||||
|
@@ -24,6 +24,7 @@ import static org.mockito.Mockito.when;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.hardware.display.DisplayManager;
|
||||
import android.media.MediaRouter;
|
||||
import android.net.wifi.p2p.WifiP2pManager;
|
||||
@@ -51,6 +52,8 @@ public class WifiDisplaySettingsTest {
|
||||
private SummaryLoader mSummaryLoader;
|
||||
@Mock
|
||||
private MediaRouter mMediaRouter;
|
||||
@Mock
|
||||
private PackageManager mPackageManager;
|
||||
|
||||
private SummaryLoader.SummaryProvider mSummaryProvider;
|
||||
|
||||
@@ -59,6 +62,8 @@ public class WifiDisplaySettingsTest {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
when(mActivity.getSystemService(Context.MEDIA_ROUTER_SERVICE))
|
||||
.thenReturn(mMediaRouter);
|
||||
when(mActivity.getPackageManager()).thenReturn(mPackageManager);
|
||||
when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_WIFI_DIRECT)).thenReturn(true);
|
||||
|
||||
mSummaryProvider = WifiDisplaySettings.SUMMARY_PROVIDER_FACTORY.createSummaryProvider(
|
||||
mActivity, mSummaryLoader);
|
||||
@@ -87,15 +92,15 @@ public class WifiDisplaySettingsTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isAvailable_noService_shouldReturnFalse() {
|
||||
public void isAvailable_nullService_shouldReturnFalse() {
|
||||
assertThat(WifiDisplaySettings.isAvailable(mActivity))
|
||||
.isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isAvailable_throwException_shouldReturnFalse() {
|
||||
when(mActivity.getSystemService(Context.WIFI_P2P_SERVICE))
|
||||
.thenThrow(new IllegalStateException());
|
||||
public void isAvailable_noWifiDirectFeature_shouldReturnFalse() {
|
||||
when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_WIFI_DIRECT))
|
||||
.thenReturn(false);
|
||||
|
||||
assertThat(WifiDisplaySettings.isAvailable(mActivity))
|
||||
.isFalse();
|
||||
|
Reference in New Issue
Block a user