diff --git a/libs/contextualcards.aar b/libs/contextualcards.aar index 5e855fa0dec..892a6be26e6 100755 Binary files a/libs/contextualcards.aar and b/libs/contextualcards.aar differ diff --git a/protos/contextual_card_list.proto b/protos/contextual_card_list.proto index 89e6c138640..ea82408d893 100644 --- a/protos/contextual_card_list.proto +++ b/protos/contextual_card_list.proto @@ -8,12 +8,24 @@ message ContextualCardList { } message ContextualCard { - // Slice uri of the contextual card + + /** + * The category of a card: this is a hint for how a card should be collected, + * ranked, and presented + */ + enum Category { + DEFAULT = 0; + SUGGESTION = 1; + POSSIBLE = 2; + IMPORTANT = 3; + EXCLUSIVE = 4; + } + + /** Slice uri of the contextual card */ optional string sliceUri = 1; - // {@link ContextualCardCategory}. - optional int32 category = 2; - - // Name of the card. It should be identical in every app + /** Name of the card. It should be identical in every app */ optional string cardName = 3; -} \ No newline at end of file + + optional Category card_category = 4; +} diff --git a/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java b/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java index 59c9ba95b77..c736c4d1487 100644 --- a/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java +++ b/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java @@ -26,7 +26,6 @@ import com.android.settings.intelligence.ContextualCardProto.ContextualCard; import com.android.settings.intelligence.ContextualCardProto.ContextualCardList; import com.android.settings.wifi.WifiSlice; -import com.google.android.settings.intelligence.libs.contextualcards.ContextualCardCategory; import com.google.android.settings.intelligence.libs.contextualcards.ContextualCardProvider; /** Provides dynamic card for SettingsIntelligence. */ @@ -41,19 +40,19 @@ public class SettingsContextualCardProvider extends ContextualCardProvider { ContextualCard.newBuilder() .setSliceUri(WifiSlice.WIFI_URI.toString()) .setCardName(KEY_WIFI) - .setCategory(ContextualCardCategory.IMPORTANT) + .setCardCategory(ContextualCard.Category.IMPORTANT) .build(); final ContextualCard batteryInfoCard = ContextualCard.newBuilder() .setSliceUri(BatterySlice.BATTERY_CARD_URI.toString()) .setCardName(BatterySlice.PATH_BATTERY_INFO) - .setCategory(ContextualCardCategory.DEFAULT) + .setCardCategory(ContextualCard.Category.DEFAULT) .build(); final ContextualCard connectedDeviceCard = ContextualCard.newBuilder() .setSliceUri(ConnectedDeviceSlice.CONNECTED_DEVICE_URI.toString()) .setCardName(ConnectedDeviceSlice.PATH_CONNECTED_DEVICE) - .setCategory(ContextualCardCategory.IMPORTANT) + .setCardCategory(ContextualCard.Category.IMPORTANT) .build(); final ContextualCardList cards = ContextualCardList.newBuilder() .addCard(wifiCard) diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProviderTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProviderTest.java index 8b541c6455e..6b1f8b12da3 100644 --- a/tests/robotests/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProviderTest.java +++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProviderTest.java @@ -19,7 +19,12 @@ package com.android.settings.homepage.contextualcards; import static com.google.common.truth.Truth.assertThat; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.spy; + +import android.app.slice.SliceManager; import android.content.ContentResolver; +import android.content.Context; import android.net.Uri; import android.os.Bundle; @@ -28,30 +33,37 @@ import com.android.settings.intelligence.ContextualCardProto.ContextualCardList; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.wifi.WifiSlice; -import com.google.android.settings.intelligence.libs.contextualcards.ContextualCardCategory; import com.google.android.settings.intelligence.libs.contextualcards.ContextualCardProvider; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; import org.robolectric.Robolectric; import org.robolectric.RuntimeEnvironment; @RunWith(SettingsRobolectricTestRunner.class) public class SettingsContextualCardProviderTest { + @Mock + private SliceManager mSliceManager; private ContentResolver mResolver; private Uri mUri; private SettingsContextualCardProvider mProvider; @Before public void setUp() { + MockitoAnnotations.initMocks(this); mResolver = RuntimeEnvironment.application.getContentResolver(); mUri = new Uri.Builder() .scheme(ContentResolver.SCHEME_CONTENT) .authority(SettingsContextualCardProvider.CARD_AUTHORITY) .build(); - mProvider = Robolectric.setupContentProvider(SettingsContextualCardProvider.class); + mProvider = spy(Robolectric.setupContentProvider(SettingsContextualCardProvider.class)); + final Context context = spy(RuntimeEnvironment.application); + doReturn(mSliceManager).when(context).getSystemService(SliceManager.class); + doReturn(context).when(mProvider).getContext(); } @Test @@ -59,7 +71,7 @@ public class SettingsContextualCardProviderTest { final int actualNo = mProvider.getContextualCards().getCardCount(); final Bundle returnValue = - mResolver.call(mUri, ContextualCardProvider.METHOD_GET_CARD_LIST, "", null); + mProvider.call(ContextualCardProvider.METHOD_GET_CARD_LIST, "", null); final ContextualCardList cards = ContextualCardList.parseFrom( returnValue.getByteArray(ContextualCardProvider.BUNDLE_CARD_LIST)); @@ -76,6 +88,6 @@ public class SettingsContextualCardProviderTest { } } - assertThat(wifiCard.getCategory()).isEqualTo(ContextualCardCategory.IMPORTANT); + assertThat(wifiCard.getCardCategory()).isEqualTo(ContextualCard.Category.IMPORTANT); } } \ No newline at end of file