Make sample IME support styling
Test: manual Bug: 146454892 Change-Id: Idf173ae7fc0c3fe83736d73e7a3ab6953ae868aa
This commit is contained in:
BIN
samples/AutofillKeyboard/res/font/just_another_hand.ttf
Normal file
BIN
samples/AutofillKeyboard/res/font/just_another_hand.ttf
Normal file
Binary file not shown.
@@ -61,4 +61,27 @@
|
|||||||
<item name="android:layout_weight">5</item>
|
<item name="android:layout_weight">5</item>
|
||||||
<item name="android:textColor">#FF333333</item>
|
<item name="android:textColor">#FF333333</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="YellowText" parent="@android:style/TextAppearance">
|
||||||
|
<item name="android:textColor">#FFFF00</item>
|
||||||
|
<item name="android:background">#88FF00FF</item>
|
||||||
|
<!-- This theme will be invalid -->
|
||||||
|
<item name="android:fontFamily">@font/just_another_hand</item>
|
||||||
|
</style>
|
||||||
|
<style name="GreenText" parent="@android:style/TextAppearance">
|
||||||
|
<item name="android:textColor">#00FF00</item>
|
||||||
|
<item name="android:fontFamily">monospace</item>
|
||||||
|
</style>
|
||||||
|
<style name="PinkBackground">
|
||||||
|
<item name="android:background">#33FF00FF</item>
|
||||||
|
</style>
|
||||||
|
<style name="YellowTheme" parent="@android:style/Theme.AutofillInlineSuggestion">
|
||||||
|
<item name="android:autofillInlineSuggestionTitle">@style/YellowText</item>
|
||||||
|
<item name="android:autofillInlineSuggestionSubtitle">@style/YellowText</item>
|
||||||
|
</style>
|
||||||
|
<style name="GreenTheme" parent="@android:style/Theme.AutofillInlineSuggestion">
|
||||||
|
<item name="android:autofillInlineSuggestionChip">@style/PinkBackground</item>
|
||||||
|
<item name="android:autofillInlineSuggestionTitle">@style/GreenText</item>
|
||||||
|
<item name="android:autofillInlineSuggestionSubtitle">@style/GreenText</item>
|
||||||
|
</style>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package com.example.android.autofillkeyboard;
|
package com.example.android.autofillkeyboard;
|
||||||
|
|
||||||
|
import android.content.res.Resources;
|
||||||
import android.inputmethodservice.InputMethodService;
|
import android.inputmethodservice.InputMethodService;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
@@ -93,9 +94,11 @@ public class AutofillImeService extends InputMethodService {
|
|||||||
Log.d(TAG, "onCreateInlineSuggestionsRequest() called");
|
Log.d(TAG, "onCreateInlineSuggestionsRequest() called");
|
||||||
final ArrayList<InlinePresentationSpec> presentationSpecs = new ArrayList<>();
|
final ArrayList<InlinePresentationSpec> presentationSpecs = new ArrayList<>();
|
||||||
presentationSpecs.add(new InlinePresentationSpec.Builder(new Size(100, 100),
|
presentationSpecs.add(new InlinePresentationSpec.Builder(new Size(100, 100),
|
||||||
new Size(400, 100)).build());
|
new Size(400, 100)).setStyle(
|
||||||
|
getResources().getResourceName(R.style.YellowTheme)).build());
|
||||||
presentationSpecs.add(new InlinePresentationSpec.Builder(new Size(100, 100),
|
presentationSpecs.add(new InlinePresentationSpec.Builder(new Size(100, 100),
|
||||||
new Size(400, 100)).build());
|
new Size(400, 100)).setStyle(
|
||||||
|
getResources().getResourceName(R.style.GreenTheme)).build());
|
||||||
|
|
||||||
return new InlineSuggestionsRequest.Builder(presentationSpecs)
|
return new InlineSuggestionsRequest.Builder(presentationSpecs)
|
||||||
.setMaxSuggestionCount(2)
|
.setMaxSuggestionCount(2)
|
||||||
@@ -122,6 +125,9 @@ public class AutofillImeService extends InputMethodService {
|
|||||||
mSuggestionStrip.removeAllViews();
|
mSuggestionStrip.removeAllViews();
|
||||||
final int size = mSuggestionViews.size();
|
final int size = mSuggestionViews.size();
|
||||||
for (int i = 0; i < size; i++) {
|
for (int i = 0; i < size; i++) {
|
||||||
|
if(mSuggestionViews.get(i) == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(
|
ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(
|
||||||
mSuggestionViewSizes.get(i).getWidth(),
|
mSuggestionViewSizes.get(i).getWidth(),
|
||||||
mSuggestionViewSizes.get(i).getHeight());
|
mSuggestionViewSizes.get(i).getHeight());
|
||||||
@@ -160,13 +166,15 @@ public class AutofillImeService extends InputMethodService {
|
|||||||
AsyncTask.THREAD_POOL_EXECUTOR,
|
AsyncTask.THREAD_POOL_EXECUTOR,
|
||||||
suggestionView -> {
|
suggestionView -> {
|
||||||
Log.d(TAG, "new inline suggestion view ready");
|
Log.d(TAG, "new inline suggestion view ready");
|
||||||
suggestionViews[index] = suggestionView;
|
if(suggestionView != null) {
|
||||||
sizes[index] = size;
|
suggestionViews[index] = suggestionView;
|
||||||
suggestionView.setOnTouchListener((v, event) -> {
|
sizes[index] = size;
|
||||||
Toast.makeText(AutofillImeService.this, "hello",
|
suggestionView.setOnTouchListener((v, event) -> {
|
||||||
Toast.LENGTH_LONG).show();
|
Toast.makeText(AutofillImeService.this, "hello",
|
||||||
return false;
|
Toast.LENGTH_LONG).show();
|
||||||
});
|
return false;
|
||||||
|
});
|
||||||
|
}
|
||||||
if (suggestionsCount.decrementAndGet() == 0) {
|
if (suggestionsCount.decrementAndGet() == 0) {
|
||||||
updateSuggestionViews(suggestionViews, sizes);
|
updateSuggestionViews(suggestionViews, sizes);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user