From c3ff274a6aad7579af97f155ece36a7d6f6cd7fd Mon Sep 17 00:00:00 2001 From: Feng Cao Date: Mon, 3 Feb 2020 14:37:41 -0800 Subject: [PATCH] Sample AF app: Return static icon in the InlineFillService Test: manual Bug: 147394280 Change-Id: I311a3aac05f874c42e400eea2ee343ae0eb01da5 --- .../res/drawable/ic_settings.png | Bin 0 -> 869 bytes .../src/foo/bar/inline/InlineFillService.java | 22 ++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 samples/InlineFillService/res/drawable/ic_settings.png diff --git a/samples/InlineFillService/res/drawable/ic_settings.png b/samples/InlineFillService/res/drawable/ic_settings.png new file mode 100644 index 0000000000000000000000000000000000000000..eaf1d4758a9e80b806ad4f5534fd85ce56bc6602 GIT binary patch literal 869 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAk#;Q*fyS0L@s`o*yggq&KwIJAFs zYW?ce3TAhGaR!Qm*q@zSKZ69@zBmI(Fmh=41Y|h0d~;}c<<$Dwq2;SHNEuMUXUCSW zF3n)|tzR7){yVjOb#D9W2xPZ{6o7QKeFEAAWH^FJpc-c=7pMz}zzzVK17-lVxU_t7 zX#Wm01S|!Tb!d1Ga&6}~p!072FSrKuhGR*PUoeBg?){rpKL39%5%1ody}bYQ`|BdV zEqJDzgr7g|?{K-AV{-aoo#Jwh?(f^@vqawyo_%}qdhgfyHVVo0s~-!r%Q!PU{Kd_{ zz$D=5;uuoF`1ZPMQMRE7%LTJ-GbJa@m}xlYZ~m*r-l?A7B~89bc1b>X`taa$evN|y zb6OAC2zMR|?U`i}qq@TLP-xdIlbF;MoQFcE&61IMx>EZ<;KVk8yil(vr$pz3WSd-( zw#ZyIZ(jU^wMXrZ-U>A&^)~s5JM5eOSiZJGO5}(Cju@GsuovdRi-T8b?CGhT&S`U` za=DVrWtsOO?JJJ&KC5sdy>hz;=Qbl*m4ugK8nd?F>UAxWT$mxUtMHYv?;Mk`DQgmM zb*$zOSeD5(&EPConI&(=q%9)bHXJE8d6Vc7y}7L6!Hk7!43|q%mvlIN+4RIxUWa#{ zwBJKjvt671DTf^5j=8Y>6VJg(r?g$Z733*;1igGbiE}C!3%6GOcCjbT3ktIxPivdk z{=U|9Z^ajdjJp;$Zm-!RH`Q{ghj837&Uu@E>G53FOU-&)(z{s zzJ0TJ=iErYBCzh#w{u04mpo%%*Tp)I)BR!2?pfOYqBb@aKX{F&`>hBtoooS2XbhgN KelF{r5}E+ke4Ic4 literal 0 HcmV?d00001 diff --git a/samples/InlineFillService/src/foo/bar/inline/InlineFillService.java b/samples/InlineFillService/src/foo/bar/inline/InlineFillService.java index ac97bdaaa..2b688e8d0 100644 --- a/samples/InlineFillService/src/foo/bar/inline/InlineFillService.java +++ b/samples/InlineFillService/src/foo/bar/inline/InlineFillService.java @@ -35,6 +35,7 @@ import android.service.autofill.SaveInfo; import android.service.autofill.SaveRequest; import android.util.ArrayMap; import android.util.Log; +import android.util.Size; import android.view.autofill.AutofillId; import android.view.autofill.AutofillValue; import android.view.inline.InlinePresentationSpec; @@ -104,6 +105,15 @@ public class InlineFillService extends AutofillService { response.addDataset(unlockedDataset); } + if(inlineRequest != null) { + // Reuse the first spec's height for the inline action size, as there isn't dedicated + // value from the request for this. + final int height = inlineRequest.getPresentationSpecs().get(0).getMinSize().getHeight(); + final Size actionIconSize = new Size(height, height); + response.addInlineAction( + newInlineAction(context, actionIconSize, R.drawable.ic_settings)); + } + // 2.Add save info Collection ids = fields.values(); AutofillId[] requiredIds = new AutofillId[ids.size()]; @@ -116,6 +126,18 @@ public class InlineFillService extends AutofillService { return response.build(); } + static InlinePresentation newInlineAction(@NonNull Context context, + @NonNull Size size, int drawable) { + final Slice suggestionSlice = new Slice.Builder(Uri.parse("inline.slice"), + new SliceSpec("InlinePresentation", 1)) + .addIcon(Icon.createWithResource(context, drawable), null, + Collections.singletonList("")) + .build(); + final InlinePresentationSpec currentSpec = new InlinePresentationSpec.Builder(size, + size).build(); + return new InlinePresentation(suggestionSlice, currentSpec, /** pined= */ true); + } + static Dataset newUnlockedDataset(@NonNull Context context, @NonNull Map fields, @NonNull String packageName, int i, @Nullable InlineSuggestionsRequest inlineRequest) {