Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ec4e0d30 authored by Fan Zhang's avatar Fan Zhang Committed by Gerrit Code Review
Browse files

Merge "2nd attempt to fix crash when getting unavailable service"

parents 6e6b1e20 54291e10
Loading
Loading
Loading
Loading
+4 −7
Original line number Diff line number Diff line
@@ -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.getPackageManager().hasSystemFeature(PackageManager.FEATURE_WIFI_DIRECT)
                && context.getSystemService(Context.WIFI_P2P_SERVICE) != null;
        } catch (Exception e) {
            // Service is not registered, so this is definitely not available.
            return false;
        }
    }

    private void scheduleUpdate(int changes) {
+9 −4
Original line number Diff line number Diff line
@@ -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();