diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 2852b6b0b34..11fd8ac9000 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -766,9 +766,9 @@ android:icon="@drawable/ic_settings_notifications" android:exported="true" android:taskAffinity=""> - + - + @@ -792,7 +792,7 @@ android:label="@string/wallpaper_settings_title" android:icon="@drawable/ic_wallpaper" android:theme="@android:style/Theme.NoDisplay"> - + @@ -1561,10 +1561,10 @@ android:icon="@drawable/ic_suggestion_fingerprint"> - + + android:value="4,8,30" /> - + @@ -3082,10 +3082,16 @@ android:label="@string/camera_lift_trigger_title" android:icon="@drawable/ic_settings_camera" android:enabled="@bool/config_cameraLiftTriggerAvailable"> - + + + + + + + exclusive="true" /> + + multiple="true" /> + multiple="true" /> + multiple="true" /> diff --git a/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java b/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java index f3f8af92f81..01097bc7d99 100644 --- a/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java +++ b/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java @@ -78,7 +78,6 @@ public class SuggestionFeatureProviderImpl implements SuggestionFeatureProvider suggestion.intent.getComponent(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); - parser.markCategoryDone(suggestion.category); } @Override diff --git a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java index 6183acca6e5..9eddd047bf3 100644 --- a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java +++ b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java @@ -111,9 +111,9 @@ public class SuggestionFeatureProviderImplTest { public void getSuggestionIdentifier_nullContext_shouldNotCrash() { final Tile suggestion = new Tile(); suggestion.intent = new Intent() - .setClassName(RuntimeEnvironment.application.getPackageName(), "123"); + .setClassName(RuntimeEnvironment.application.getPackageName(), "123"); assertThat(mProvider.getSuggestionIdentifier(null, suggestion)) - .isNotEmpty(); + .isNotEmpty(); } @Test @@ -152,6 +152,5 @@ public class SuggestionFeatureProviderImplTest { .setComponentEnabledSetting(mSuggestion.intent.getComponent(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); - verify(mSuggestionParser).markCategoryDone(mSuggestion.category); } } diff --git a/tests/robotests/src/com/android/settings/suggestions/SettingsSuggestionsTest.java b/tests/robotests/src/com/android/settings/suggestions/SettingsSuggestionsTest.java index ad035bd2b32..86f3bd612b6 100644 --- a/tests/robotests/src/com/android/settings/suggestions/SettingsSuggestionsTest.java +++ b/tests/robotests/src/com/android/settings/suggestions/SettingsSuggestionsTest.java @@ -16,17 +16,13 @@ package com.android.settings.suggestions; -import static com.android.settings.TestConfig.MANIFEST_PATH; -import static com.google.common.truth.Truth.assertThat; - import android.annotation.StringRes; import android.content.Context; + import com.android.settings.R; import com.android.settings.SettingsRobolectricTestRunner; import com.android.settings.TestConfig; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; + import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RuntimeEnvironment; @@ -36,59 +32,78 @@ import org.robolectric.manifest.AndroidManifest; import org.robolectric.manifest.IntentFilterData; import org.robolectric.shadows.ShadowApplication; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import static com.android.settings.TestConfig.MANIFEST_PATH; +import static com.google.common.truth.Truth.assertThat; + @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) public class SettingsSuggestionsTest { - @Test - public void zenModeAutomationSuggestion_isValid() { - assertSuggestionEquals("Settings$ZenModeAutomationSuggestionActivity", - R.string.zen_mode_automation_suggestion_title, - R.string.zen_mode_automation_suggestion_summary); - } + private static final String CATEGORY_FIRST_IMPRESSION = + "com.android.settings.suggested.category.FIRST_IMPRESSION"; - @Test - public void wallpaperSuggestion_isValid() { - assertSuggestionEquals("com.android.settings.wallpaper.WallpaperSuggestionActivity", - R.string.wallpaper_suggestion_title, R.string.wallpaper_suggestion_summary); - } + private static final String CATEGORY_SETTINGS_ONLY = + "com.android.settings.suggested.category.SETTINGS_ONLY"; - @Test - public void fingerprintSuggestion_isValid() { - assertSuggestionEquals("com.android.settings.Settings$FingerprintSuggestionActivity", - R.string.suggestion_additional_fingerprints, - R.string.suggestion_additional_fingerprints_summary); - } - - @Test - public void wifiCallingSuggestion_isValid() { - assertSuggestionEquals("Settings$WifiCallingSuggestionActivity", - R.string.wifi_calling_suggestion_title, R.string.wifi_calling_suggestion_summary); - } - - private void assertSuggestionEquals(String activityName, @StringRes int title, - @StringRes int summary) { - final AndroidManifest androidManifest = ShadowApplication.getInstance().getAppManifest(); - final ActivityData activityData = androidManifest.getActivityData(activityName); - final Map metaData = activityData.getMetaData().getValueMap(); - final Context context = RuntimeEnvironment.application; - final String expectedTitle = context.getString(title); - final String expectedSummary = context.getString(summary); - - final String pName= context.getPackageName(); - final String actualTitle = context.getString(context.getResources().getIdentifier( - ((String) metaData.get("com.android.settings.title")).substring(8), "string", pName)); - final String actualSummary = context.getString(context.getResources().getIdentifier( - ((String) metaData.get("com.android.settings.summary")).substring(8), "string", pName)); - assertThat(actualTitle).isEqualTo(expectedTitle); - assertThat(actualSummary).isEqualTo(expectedSummary); - - final List intentFilters = activityData.getIntentFilters(); - final List categories = new ArrayList<>(); - for (IntentFilterData intentFilter : intentFilters) { - categories.addAll(intentFilter.getCategories()); + @Test + public void zenModeAutomationSuggestion_isValid() { + assertSuggestionEquals("Settings$ZenModeAutomationSuggestionActivity", + CATEGORY_FIRST_IMPRESSION, + R.string.zen_mode_automation_suggestion_title, + R.string.zen_mode_automation_suggestion_summary); } - assertThat(categories).contains("com.android.settings.suggested.category.SETTINGS_ONLY"); - } + @Test + public void wallpaperSuggestion_isValid() { + assertSuggestionEquals("com.android.settings.wallpaper.WallpaperSuggestionActivity", + CATEGORY_SETTINGS_ONLY, + R.string.wallpaper_suggestion_title, R.string.wallpaper_suggestion_summary); + } + + @Test + public void fingerprintSuggestion_isValid() { + assertSuggestionEquals("com.android.settings.Settings$FingerprintSuggestionActivity", + CATEGORY_FIRST_IMPRESSION, + R.string.suggestion_additional_fingerprints, + R.string.suggestion_additional_fingerprints_summary); + } + + @Test + public void wifiCallingSuggestion_isValid() { + assertSuggestionEquals("Settings$WifiCallingSuggestionActivity", + CATEGORY_FIRST_IMPRESSION, + R.string.wifi_calling_suggestion_title, R.string.wifi_calling_suggestion_summary); + } + + private void assertSuggestionEquals(String activityName, String category, @StringRes int title, + @StringRes int summary) { + final AndroidManifest androidManifest = ShadowApplication.getInstance().getAppManifest(); + final ActivityData activityData = androidManifest.getActivityData(activityName); + final Map metaData = activityData.getMetaData().getValueMap(); + final Context context = RuntimeEnvironment.application; + final String expectedTitle = context.getString(title); + final String expectedSummary = context.getString(summary); + + final String pName = context.getPackageName(); + final String actualTitle = context.getString(context.getResources().getIdentifier( + ((String) metaData.get("com.android.settings.title")).substring(8), "string", + pName)); + final String actualSummary = context.getString(context.getResources().getIdentifier( + ((String) metaData.get("com.android.settings.summary")).substring(8), "string", + pName)); + assertThat(actualTitle).isEqualTo(expectedTitle); + assertThat(actualSummary).isEqualTo(expectedSummary); + + final List intentFilters = activityData.getIntentFilters(); + final List categories = new ArrayList<>(); + for (IntentFilterData intentFilter : intentFilters) { + categories.addAll(intentFilter.getCategories()); + } + + assertThat(categories).contains(category); + } }