From 9a28c433f2a37315c828741d13605fc995046360 Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Tue, 6 Nov 2018 13:46:03 -0800 Subject: [PATCH] Update proto for contextual_card_list. Bug: 118842350 Test: rebuild Change-Id: I838738f56c8793a8e4d6adf43bc812777edbcd88 --- libs/contextualcards.aar | Bin 2862 -> 5481 bytes protos/contextual_card_list.proto | 24 +++++++++++++----- .../SettingsContextualCardProvider.java | 7 +++-- .../SettingsContextualCardProviderTest.java | 20 ++++++++++++--- 4 files changed, 37 insertions(+), 14 deletions(-) diff --git a/libs/contextualcards.aar b/libs/contextualcards.aar index 5e855fa0dec7120b31ca996bd877b25e3dd86ad6..892a6be26e64e6681cc0efd4cd6a3807a877e2e1 100755 GIT binary patch delta 4998 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 Q08Nt+3m67;6aWAK0OicGwg3PC delta 2371 zcmV-J3B2~{Dy|l=3ITt;mIqK%*&fCdnjsJ#O_U}CLWxL%f(l3xSy&;28bv9=Ktc$F zViG_?kq6QgK?q6{ktQX8NGB``0!vqHC^i%B~=gyhA=g#;2 z{^y=^@0rgQ#mff<06>7%1~mYD)dT^20JIs#MAO3B9J$g90N8(WNIzkQclWQ}t#!%O z{zZy5v9>TbbHE_b=4hNB$&)~(X&xj{s3dfae zd=KWg<>t;Z`fk>`t^18F2>^jW0N^^d(?4dLei@stj!l18zhI(2B?RF?#!;y;wrHE{ zdqs1^@*?v;XuiFumNeU$tyUhRV`BO6dN@4Wv!^<{)>-NJK(ukI0^vLbAOhRs8T7P2 zdm!}PJN6<3fDD*xJP65#2KGpkd_OcDApksjp%`x;_H? zX5)|JCt~U;@Jl<=wN>a&vV9dWd5}$eYP;lp_}C+$P|QYFIaaKUX%FAGq%iqFJ+qvY zC&kYgTofJc*ml_4s*KOKUt9V0woOBpIj^iz-HU(lTWLxesWsq7B|O)f^`sKcnC+q)HhMI+ML z=dI#yCvJBAFxaohp8golrh6{4bB#aoJX2bRKMMj& zj5enHpdBMMWUm{!2%9YokO}U5-okekr~7}C3rX`{-%O_^({-y(?~GI3uzUB=1#jmp zZ!b?bUsk=}`%RlwQRgNavnDEiV!Nb8r0yT=t?Ts(VxC^6*SU~tnHm+AW9E4n3-@T~ zN|E2>?9SM6tB4#E_+dkyjIs$;x3|0YJoY2WM+;$@OzEktic>8}%wsiHdlh!dDcgU0 zqb%`&*SDLu2cQ$x=obo=b4pP zdzi1z&5lckx9Mm)QUiMp+J~L?jzNC}&drF=%wA!QO2>9@%7bav;Hd*IcZ^_OKG05n z^hnrQ8yMB&8aObtX_vW%;Z|uBT;a%)j^mV*Gm%1(JW}?R4SE%iXjqdeRXo{ig=+Wc(}`n~W{O4J;7PE=}_K z^&PG-n452_%Dp)v#mKA)N~W+F1t~Z9&6_HTk1#NgP;8_zzOhPodg5*3=2vCa1ziVj zrW0gm?T+&%J{8#D!fc$GkMi|du(tJ_mo=kbh8P4VFB}4mnA>S#mu*bo z#S?60lpDg%d(>1{n38`SBo=?kh($CuV|#?Y@0xIkNhr-9VZiJrdd8)*!-4M^n2_{{ zG5cd8bGQ8IC6P-esq2rNKNYSh|{MZK%`crNK;!gdQrn@ZShJ3@@C6L~tW z^=WFA-Uz!&9qE8jPCcTeB#1zzYBWwVbh-}-?iYu`8dQ49b2GHWQ(E_*X)P(tPPAk_ zNh4H6BEx&xh2nog>I`UFFzjV#-jM7ln0Z0*rn*UavxruhS)h#mo0btHDsubLIevS` zv*hJpMO3e~Ck)H~MBTYdo(*xhV;SVFUmqR4r`t-yxK~gdap6q;5=no{po?Ll9*NPM zTw>U4a!0;6^75FEbgPSKs~nhewWDnOHCaR@O)!K!*gzgIfP0eUZ0m9*r*(a@ z{Ih8QzMV7wsyJt9IPh~;8b;2flp zzag#5dfZj92o9_&&-Z6P?rb9tHs!n7|D6SaJd%JvL&Vqd!il5SjelJ0ud?C#d3^oX zaLyy0?|&I>Y*G9IYgL3+uY6trU_W?m^dC@52MCw}WoEVr0000Ek>4DXGYUNr0{~D< z2M7QF0006200000lX4VO3YY<9X0`|b000h?&lE`r&Ao00000 p00000000043IG67E_8TwP)h{{000001ONm8-v9srISK#(007`yY6<`V 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