OSDN Git Service

Suppress some gesture search when there is no hardware
authorFan Zhang <zhfan@google.com>
Mon, 18 Jun 2018 20:58:31 +0000 (13:58 -0700)
committerFan Zhang <zhfan@google.com>
Mon, 18 Jun 2018 20:58:31 +0000 (13:58 -0700)
Change-Id: I780fe337da25d144b6966a098e95de52b1513e39
Fixes: 110250839
Test: robotests

src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java
src/com/android/settings/gestures/SwipeToNotificationSettings.java
tests/robotests/src/com/android/settings/gestures/SwipeToNotificationSettingsTest.java

index 4498225..4917663 100755 (executable)
@@ -33,7 +33,6 @@ import android.net.Uri;
 import android.os.Bundle;
 import android.os.UserHandle;
 import android.os.UserManager;
-import androidx.annotation.VisibleForTesting;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.Menu;
@@ -46,7 +45,6 @@ import com.android.settings.SettingsActivity;
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.applications.manageapplications.ManageApplications;
 import com.android.settings.core.SubSettingLauncher;
-import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settingslib.RestrictedLockUtils;
 import com.android.settingslib.applications.AppUtils;
@@ -59,6 +57,8 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
+import androidx.annotation.VisibleForTesting;
+
 /**
  * Dashboard fragment to display application information from Settings. This activity presents
  * extended information associated with a package like code, data, total size, permissions
index 7ae8644..6090eb2 100644 (file)
@@ -72,5 +72,10 @@ public class SwipeToNotificationSettings extends DashboardFragment {
                     sir.xmlResId = R.xml.swipe_to_notification_settings;
                     return Arrays.asList(sir);
                 }
+
+                @Override
+                protected boolean isPageSearchEnabled(Context context) {
+                    return SwipeToNotificationPreferenceController.isAvailable(context);
+                }
             };
 }
index 78e8603..de7b73c 100644 (file)
@@ -23,28 +23,33 @@ import android.provider.SearchIndexableResource;
 
 import com.android.settings.R;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
-import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settings.testutils.shadow.ShadowUtils;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 
 import java.util.List;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 public class SwipeToNotificationSettingsTest {
 
-    @Mock
     private Context mContext;
     private SwipeToNotificationSettings mFragment;
 
     @Before
     public void setUp() {
-        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
         mFragment = new SwipeToNotificationSettings();
+        ShadowUtils.reset();
+    }
+
+    @After
+    public void tearDown() {
+        ShadowUtils.reset();
     }
 
     @Test
@@ -56,10 +61,22 @@ public class SwipeToNotificationSettingsTest {
     @Test
     public void testSearchIndexProvider_shouldIndexResource() {
         final List<SearchIndexableResource> indexRes =
-            SwipeToNotificationSettings.SEARCH_INDEX_DATA_PROVIDER
-                .getXmlResourcesToIndex(RuntimeEnvironment.application, true /* enabled */);
+                SwipeToNotificationSettings.SEARCH_INDEX_DATA_PROVIDER
+                        .getXmlResourcesToIndex(mContext, true /* enabled */);
 
         assertThat(indexRes).isNotNull();
         assertThat(indexRes.get(0).xmlResId).isEqualTo(mFragment.getPreferenceScreenResId());
     }
+
+    @Test
+    @Config(shadows = ShadowUtils.class)
+    public void getNonIndexableKeys_noFingerprintHardware_shouldSuppressPage() {
+        ShadowUtils.setFingerprintManager(null);
+
+        final List<String> niks = SwipeToNotificationSettings.SEARCH_INDEX_DATA_PROVIDER
+                .getNonIndexableKeys(mContext);
+
+        assertThat(niks).isNotEmpty();
+    }
+
 }