Migrate to new APIs utilizing

android.widget.inline.InlinePreesntationSpecs.

Bug: 151262653
Test: manual verification
Change-Id: Ia03d463d6e7b18c34de95a9cde639bb307c301ef
This commit is contained in:
Adam He
2020-03-26 15:49:14 -07:00
parent 3219aad274
commit d60f629802
2 changed files with 22 additions and 16 deletions

View File

@@ -26,7 +26,7 @@ import android.util.Size;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.inline.InlinePresentationSpec; import android.widget.inline.InlinePresentationSpec;
import android.view.inputmethod.EditorInfo; import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InlineSuggestion; import android.view.inputmethod.InlineSuggestion;
import android.view.inputmethod.InlineSuggestionsRequest; import android.view.inputmethod.InlineSuggestionsRequest;
@@ -164,7 +164,7 @@ public class AutofillImeService extends InputMethodService {
for (int i=0; i<totalSuggestionsCount; i++) { for (int i=0; i<totalSuggestionsCount; i++) {
final int index = i; final int index = i;
InlineSuggestion inlineSuggestion = inlineSuggestions.get(index); InlineSuggestion inlineSuggestion = inlineSuggestions.get(index);
Size size = inlineSuggestion.getInfo().getPresentationSpec().getMaxSize(); Size size = inlineSuggestion.getInfo().getInlinePresentationSpec().getMaxSize();
inlineSuggestion.inflate(this, size, inlineSuggestion.inflate(this, size,
AsyncTask.THREAD_POOL_EXECUTOR, AsyncTask.THREAD_POOL_EXECUTOR,
suggestionView -> { suggestionView -> {

View File

@@ -40,7 +40,7 @@ import android.util.Log;
import android.util.Size; import android.util.Size;
import android.view.autofill.AutofillId; import android.view.autofill.AutofillId;
import android.view.autofill.AutofillValue; import android.view.autofill.AutofillValue;
import android.view.inline.InlinePresentationSpec; import android.widget.inline.InlinePresentationSpec;
import android.view.inputmethod.InlineSuggestionsRequest; import android.view.inputmethod.InlineSuggestionsRequest;
import android.widget.RemoteViews; import android.widget.RemoteViews;
import android.widget.Toast; import android.widget.Toast;
@@ -112,7 +112,7 @@ public class InlineFillService extends AutofillService {
if (inlineRequest != null) { if (inlineRequest != null) {
final Slice authSlice = new InlinePresentationBuilder("Tap to auth respones") final Slice authSlice = new InlinePresentationBuilder("Tap to auth respones")
.build(); .build();
final List<InlinePresentationSpec> specs = inlineRequest.getPresentationSpecs(); final List<InlinePresentationSpec> specs = inlineRequest.getInlinePresentationSpecs();
final int specsSize = specs.size(); final int specsSize = specs.size();
final InlinePresentationSpec currentSpec = specsSize > 0 ? specs.get(0) : null; final InlinePresentationSpec currentSpec = specsSize > 0 ? specs.get(0) : null;
inlinePresentation = new InlinePresentation(authSlice, currentSpec, inlinePresentation = new InlinePresentation(authSlice, currentSpec,
@@ -157,7 +157,7 @@ public class InlineFillService extends AutofillService {
final Slice authSlice = new InlinePresentationBuilder( final Slice authSlice = new InlinePresentationBuilder(
"Tap to auth " + value).build(); "Tap to auth " + value).build();
final List<InlinePresentationSpec> specs final List<InlinePresentationSpec> specs
= inlineRequest.getPresentationSpecs(); = inlineRequest.getInlinePresentationSpecs();
final int specsSize = specs.size(); final int specsSize = specs.size();
final InlinePresentationSpec currentSpec = final InlinePresentationSpec currentSpec =
specsSize > 0 ? specs.get(0) : null; specsSize > 0 ? specs.get(0) : null;
@@ -176,15 +176,15 @@ public class InlineFillService extends AutofillService {
} }
} }
if (inlineRequest != null) { // if (inlineRequest != null) {
// Reuse the first spec's height for the inline action size, as there isn't dedicated // // Reuse the first spec's height for the inline action size, as there isn't dedicated
// value from the request for this. // // value from the request for this.
final int height = inlineRequest.getPresentationSpecs().get(0).getMinSize().getHeight(); // final int height = inlineRequest.getPresentationSpecs().get(0).getMinSize().getHeight();
final Size actionIconSize = new Size(height, height); // final Size actionIconSize = new Size(height, height);
response.addDataset( // response.addDataset(
newInlineActionDataset(context, actionIconSize, R.drawable.ic_settings, // newInlineActionDataset(context, actionIconSize, R.drawable.ic_settings,
fields)); // fields));
} // }
// 2.Add save info // 2.Add save info
Collection<AutofillId> ids = fields.values(); Collection<AutofillId> ids = fields.values();
@@ -206,6 +206,7 @@ public class InlineFillService extends AutofillService {
PendingIntent.FLAG_UPDATE_CURRENT); PendingIntent.FLAG_UPDATE_CURRENT);
final Slice suggestionSlice = new InlinePresentationBuilder() final Slice suggestionSlice = new InlinePresentationBuilder()
.setStartIcon(Icon.createWithResource(context, drawable)) .setStartIcon(Icon.createWithResource(context, drawable))
.setAttribution(pendingIntent)
.build(); .build();
final InlinePresentationSpec currentSpec = new InlinePresentationSpec.Builder(size, final InlinePresentationSpec currentSpec = new InlinePresentationSpec.Builder(size,
size).build(); size).build();
@@ -239,9 +240,14 @@ public class InlineFillService extends AutofillService {
if (inlineRequest != null) { if (inlineRequest != null) {
Log.d(TAG, "Found InlineSuggestionsRequest in FillRequest: " + inlineRequest); Log.d(TAG, "Found InlineSuggestionsRequest in FillRequest: " + inlineRequest);
final Slice suggestionSlice = new InlinePresentationBuilder(value).build(); Intent intent = new Intent().setComponent(
new ComponentName(context.getPackageName(), SettingsActivity.class.getName()));
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
final Slice suggestionSlice = new InlinePresentationBuilder(value)
.setAttribution(pendingIntent).build();
final List<InlinePresentationSpec> specs = inlineRequest.getPresentationSpecs(); final List<InlinePresentationSpec> specs = inlineRequest.getInlinePresentationSpecs();
final int specsSize = specs.size(); final int specsSize = specs.size();
final InlinePresentationSpec currentSpec = i - 1 < specsSize final InlinePresentationSpec currentSpec = i - 1 < specsSize
? specs.get(i - 1) ? specs.get(i - 1)