From cddfcba45015b91eeff6cbb6264b162632ded069 Mon Sep 17 00:00:00 2001
From: arcarum <134963929+arcarum@users.noreply.github.com>
Date: Mon, 18 Dec 2023 17:52:58 +0400
Subject: [PATCH 01/17] Added support for inline autofill
---
app/build.gradle | 1 +
app/src/main/AndroidManifest.xml | 2 +-
.../openboard/inputmethod/latin/LatinIME.java | 114 ++++++++++++++++++
.../suggestions/SuggestionStripView.java | 5 +
app/src/main/res/xml/method.xml | 5 +-
5 files changed, 125 insertions(+), 2 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index 58f5b82d7..a8a8e7dc7 100755
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -81,6 +81,7 @@ dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1" // why not working with 1.6.0?
implementation 'com.github.martin-stone:hsv-alpha-color-picker-android:3.1.0'
+ implementation 'androidx.autofill:autofill:1.1.0'
testImplementation 'junit:junit:4.13.2'
testImplementation 'org.mockito:mockito-core:3.12.4'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5acbd2444..2a6eeda06 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -56,7 +56,7 @@
-
+
presentationSpecs = new ArrayList<>();
+ presentationSpecs.add(new InlinePresentationSpec.Builder(new Size(LayoutParams.WRAP_CONTENT, height),
+ new Size(LayoutParams.MATCH_PARENT, height)).setStyle(stylesBundle).build());
+
+ return new InlineSuggestionsRequest.Builder(presentationSpecs)
+ .setMaxSuggestionCount(6)
+ .build();
+ }
+
+ private int toPixel(int dp) {
+ return (int) TypedValue.applyDimension(COMPLEX_UNIT_DIP, dp,
+ getResources().getDisplayMetrics());
+ }
+
+ @Override
+ @RequiresApi(api = Build.VERSION_CODES.R)
+ public boolean onInlineSuggestionsResponse(InlineSuggestionsResponse response) {
+ Log.d(TAG,"onInlineSuggestionsResponse called");
+ final int height = getResources().getDimensionPixelSize(R.dimen.config_suggestions_strip_height);
+
+ // A container to hold all views
+ LinearLayout container = new LinearLayout(mDisplayContext);
+
+ for (final InlineSuggestion s : response.getInlineSuggestions()) {
+ s.inflate(this, new Size(LayoutParams.WRAP_CONTENT, height), getMainExecutor(), (view) -> {
+ if (view != null)
+ container.addView(view);
+ });
+ }
+
+ HorizontalScrollView horizontalScrollView = new HorizontalScrollView(mDisplayContext);
+ horizontalScrollView.setLayoutParams(new ViewGroup.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ horizontalScrollView.setHorizontalScrollBarEnabled(false);
+
+ horizontalScrollView.addView(container);
+
+ // Delay required to show properly
+ new Handler().postDelayed(() -> mSuggestionStripView.addSuggestionView(horizontalScrollView), 200);
+
+ return true;
+ }
+
private void updateSoftInputWindowLayoutParameters() {
// Override layout parameters to expand {@link SoftInputWindow} to the entire screen.
// See {@link InputMethodService#setinputView(View)} and
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java
index 1f8c16619..9eb8e3674 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java
@@ -279,6 +279,11 @@ public void setSuggestions(final SuggestedWords suggestedWords, final boolean is
getContext(), mSuggestedWords, mSuggestionsStrip, this);
}
+ public void addSuggestionView(final View view) {
+ mSuggestionsStrip.addView(view);
+ }
+
+
public void setMoreSuggestionsHeight(final int remainingHeight) {
mLayoutHelper.setMoreSuggestionsHeight(remainingHeight);
}
diff --git a/app/src/main/res/xml/method.xml b/app/src/main/res/xml/method.xml
index 7cdfa197d..f620ec2b9 100644
--- a/app/src/main/res/xml/method.xml
+++ b/app/src/main/res/xml/method.xml
@@ -108,9 +108,12 @@
+ android:supportsSwitchingToNextInputMethod="true"
+ android:supportsInlineSuggestions="true"
+ tools:targetApi="r">
Date: Mon, 18 Dec 2023 21:39:13 +0400
Subject: [PATCH 02/17] Replace this with mDisplayContext
---
.../java/org/dslul/openboard/inputmethod/latin/LatinIME.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
index 74bbc4047..930be4c21 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
@@ -1368,7 +1368,7 @@ public InlineSuggestionsRequest onCreateInlineSuggestionsRequest(Bundle uiExtras
// Revert to default behaviour if show_suggestions is disabled
// (Maybe there is a better way to do this)
- boolean isShowSuggestionsEnabled = DeviceProtectedUtils.getSharedPreferences(this).getBoolean(Settings.PREF_SHOW_SUGGESTIONS, true);
+ boolean isShowSuggestionsEnabled = DeviceProtectedUtils.getSharedPreferences(mDisplayContext).getBoolean(Settings.PREF_SHOW_SUGGESTIONS, true);
if(!isShowSuggestionsEnabled){
return null;
}
From 22f6882cea65e68be745af25031535a451af1d8b Mon Sep 17 00:00:00 2001
From: arcarum <134963929+arcarum@users.noreply.github.com>
Date: Mon, 18 Dec 2023 22:20:54 +0400
Subject: [PATCH 03/17] Replace variable name horizontalscrollview with view
---
.../dslul/openboard/inputmethod/latin/LatinIME.java | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
index 930be4c21..78eb00a3c 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
@@ -1437,15 +1437,15 @@ public boolean onInlineSuggestionsResponse(InlineSuggestionsResponse response) {
});
}
- HorizontalScrollView horizontalScrollView = new HorizontalScrollView(mDisplayContext);
- horizontalScrollView.setLayoutParams(new ViewGroup.LayoutParams(
+ HorizontalScrollView view = new HorizontalScrollView(mDisplayContext);
+ view.setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
- horizontalScrollView.setHorizontalScrollBarEnabled(false);
+ view.setHorizontalScrollBarEnabled(false);
- horizontalScrollView.addView(container);
+ view.addView(container);
// Delay required to show properly
- new Handler().postDelayed(() -> mSuggestionStripView.addSuggestionView(horizontalScrollView), 200);
+ new Handler().postDelayed(() -> mSuggestionStripView.addSuggestionView(view), 200);
return true;
}
From 0c9728a1582608de2f33903e39f6ed74a55a50c0 Mon Sep 17 00:00:00 2001
From: arcarum <134963929+arcarum@users.noreply.github.com>
Date: Tue, 19 Dec 2023 12:08:21 +0400
Subject: [PATCH 04/17] Revert Manifest change and add
supportsInlineSuggestions in method_dummy
---
app/src/main/AndroidManifest.xml | 2 +-
app/src/main/res/xml/method_dummy.xml | 5 ++++-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2a6eeda06..5acbd2444 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -56,7 +56,7 @@
-
+
+ android:supportsSwitchingToNextInputMethod="true"
+ android:supportsInlineSuggestions="true"
+ tools:targetApi="r">
Date: Tue, 19 Dec 2023 13:42:03 +0400
Subject: [PATCH 05/17] Minor improvements
---
.../org/dslul/openboard/inputmethod/latin/LatinIME.java | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
index 78eb00a3c..78b34a292 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
@@ -112,12 +112,13 @@
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AlertDialog;
import androidx.autofill.inline.UiVersions;
+import androidx.autofill.inline.UiVersions.StylesBuilder;
import androidx.autofill.inline.common.ImageViewStyle;
import androidx.autofill.inline.common.TextViewStyle;
import androidx.autofill.inline.common.ViewStyle;
import androidx.autofill.inline.v1.InlineSuggestionUi;
+import androidx.autofill.inline.v1.InlineSuggestionUi.Style;
import androidx.core.content.ContextCompat;
-import androidx.autofill.inline.UiVersions.StylesBuilder;
/**
* Input method implementation for Qwerty'ish keyboard.
@@ -1376,17 +1377,17 @@ public InlineSuggestionsRequest onCreateInlineSuggestionsRequest(Bundle uiExtras
final int height = getResources().getDimensionPixelSize(R.dimen.config_suggestions_strip_height);
StylesBuilder stylesBuilder = UiVersions.newStylesBuilder();
- @SuppressLint("RestrictedApi") UiVersions.Style style = InlineSuggestionUi.newStyleBuilder()
+ @SuppressLint("RestrictedApi") Style style = InlineSuggestionUi.newStyleBuilder()
.setSingleIconChipStyle(
new ViewStyle.Builder()
.setBackground(
- Icon.createWithResource(this, androidx.autofill.R.drawable.autofill_inline_suggestion_chip_background))
+ Icon.createWithResource(mDisplayContext, androidx.autofill.R.drawable.autofill_inline_suggestion_chip_background))
.setPadding(0, 0, 0, 0)
.build())
.setChipStyle(
new ViewStyle.Builder()
.setBackground(
- Icon.createWithResource(this, androidx.autofill.R.drawable.autofill_inline_suggestion_chip_background))
+ Icon.createWithResource(mDisplayContext, androidx.autofill.R.drawable.autofill_inline_suggestion_chip_background))
.build())
.setStartIconStyle(new ImageViewStyle.Builder().setLayoutMargin(0, 0, 0, 0).build())
.setTitleStyle(
From 07358eb9250c76439617830000f2ec91bcf5ca99 Mon Sep 17 00:00:00 2001
From: arcarum <134963929+arcarum@users.noreply.github.com>
Date: Tue, 19 Dec 2023 14:10:03 +0400
Subject: [PATCH 06/17] Fix issue when rotating
---
.../openboard/inputmethod/latin/LatinIME.java | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
index 78b34a292..a1f49f2a4 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
@@ -1374,8 +1374,6 @@ public InlineSuggestionsRequest onCreateInlineSuggestionsRequest(Bundle uiExtras
return null;
}
- final int height = getResources().getDimensionPixelSize(R.dimen.config_suggestions_strip_height);
-
StylesBuilder stylesBuilder = UiVersions.newStylesBuilder();
@SuppressLint("RestrictedApi") Style style = InlineSuggestionUi.newStyleBuilder()
.setSingleIconChipStyle(
@@ -1409,8 +1407,8 @@ public InlineSuggestionsRequest onCreateInlineSuggestionsRequest(Bundle uiExtras
Bundle stylesBundle = stylesBuilder.build();
final ArrayList presentationSpecs = new ArrayList<>();
- presentationSpecs.add(new InlinePresentationSpec.Builder(new Size(LayoutParams.WRAP_CONTENT, height),
- new Size(LayoutParams.MATCH_PARENT, height)).setStyle(stylesBundle).build());
+ presentationSpecs.add(new InlinePresentationSpec.Builder(new Size(LayoutParams.WRAP_CONTENT, getHeight()),
+ new Size(LayoutParams.MATCH_PARENT, getHeight())).setStyle(stylesBundle).build());
return new InlineSuggestionsRequest.Builder(presentationSpecs)
.setMaxSuggestionCount(6)
@@ -1422,17 +1420,21 @@ private int toPixel(int dp) {
getResources().getDisplayMetrics());
}
+ private int getHeight() {
+ return getResources().getDimensionPixelSize(R.dimen.config_suggestions_strip_height);
+ }
+
@Override
@RequiresApi(api = Build.VERSION_CODES.R)
public boolean onInlineSuggestionsResponse(InlineSuggestionsResponse response) {
Log.d(TAG,"onInlineSuggestionsResponse called");
- final int height = getResources().getDimensionPixelSize(R.dimen.config_suggestions_strip_height);
// A container to hold all views
LinearLayout container = new LinearLayout(mDisplayContext);
for (final InlineSuggestion s : response.getInlineSuggestions()) {
- s.inflate(this, new Size(LayoutParams.WRAP_CONTENT, height), getMainExecutor(), (view) -> {
+ s.inflate(this, new Size(ViewGroup.LayoutParams.WRAP_CONTENT,
+ ViewGroup.LayoutParams.WRAP_CONTENT), getMainExecutor(), (view) -> {
if (view != null)
container.addView(view);
});
From 70d1175b3f771ca19e201a6e291c03f575becbae Mon Sep 17 00:00:00 2001
From: arcarum <134963929+arcarum@users.noreply.github.com>
Date: Tue, 19 Dec 2023 22:44:48 +0400
Subject: [PATCH 07/17] Hide Keys when displaying the suggestions
---
.../openboard/inputmethod/latin/LatinIME.java | 26 ++++++++++++++-----
.../suggestions/SuggestionStripView.java | 14 ++++++++++
2 files changed, 34 insertions(+), 6 deletions(-)
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
index a1f49f2a4..cae7d01b4 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
@@ -1364,7 +1364,7 @@ public void updateFullscreenMode() {
// with some modifications
@Override
@RequiresApi(api = Build.VERSION_CODES.R)
- public InlineSuggestionsRequest onCreateInlineSuggestionsRequest(Bundle uiExtras) {
+ public InlineSuggestionsRequest onCreateInlineSuggestionsRequest(@NonNull Bundle uiExtras) {
Log.d(TAG,"onCreateInlineSuggestionsRequest called");
// Revert to default behaviour if show_suggestions is disabled
@@ -1407,8 +1407,8 @@ public InlineSuggestionsRequest onCreateInlineSuggestionsRequest(Bundle uiExtras
Bundle stylesBundle = stylesBuilder.build();
final ArrayList presentationSpecs = new ArrayList<>();
- presentationSpecs.add(new InlinePresentationSpec.Builder(new Size(LayoutParams.WRAP_CONTENT, getHeight()),
- new Size(LayoutParams.MATCH_PARENT, getHeight())).setStyle(stylesBundle).build());
+ presentationSpecs.add(new InlinePresentationSpec.Builder(new Size(100, getHeight()),
+ new Size(740, getHeight())).setStyle(stylesBundle).build());
return new InlineSuggestionsRequest.Builder(presentationSpecs)
.setMaxSuggestionCount(6)
@@ -1429,11 +1429,21 @@ private int getHeight() {
public boolean onInlineSuggestionsResponse(InlineSuggestionsResponse response) {
Log.d(TAG,"onInlineSuggestionsResponse called");
+ final List inlineSuggestions = response.getInlineSuggestions();
+
+ if (inlineSuggestions.isEmpty()) {
+ return false;
+ }
+
+ final int totalSuggestionsCount = inlineSuggestions.size();
+
// A container to hold all views
LinearLayout container = new LinearLayout(mDisplayContext);
- for (final InlineSuggestion s : response.getInlineSuggestions()) {
- s.inflate(this, new Size(ViewGroup.LayoutParams.WRAP_CONTENT,
+ for (int i = 0; i < totalSuggestionsCount; i++) {
+ final InlineSuggestion inlineSuggestion = inlineSuggestions.get(i);
+
+ inlineSuggestion.inflate(this, new Size(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT), getMainExecutor(), (view) -> {
if (view != null)
container.addView(view);
@@ -1448,7 +1458,11 @@ public boolean onInlineSuggestionsResponse(InlineSuggestionsResponse response) {
view.addView(container);
// Delay required to show properly
- new Handler().postDelayed(() -> mSuggestionStripView.addSuggestionView(view), 200);
+ new Handler().postDelayed(() -> {
+ mSuggestionStripView.clear();
+ mSuggestionStripView.hideKeys();
+ mSuggestionStripView.addSuggestionView(view);
+ }, 200);
return true;
}
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java
index 9eb8e3674..a5da8a44a 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java
@@ -283,6 +283,16 @@ public void addSuggestionView(final View view) {
mSuggestionsStrip.addView(view);
}
+ public void hideKeys() {
+ mToolbarKey.setVisibility(GONE);
+ mPinnedKeys.setVisibility(GONE);
+ }
+
+ public void unhidekeys() {
+ mToolbarKey.setVisibility(VISIBLE);
+ mPinnedKeys.setVisibility(VISIBLE);
+ }
+
public void setMoreSuggestionsHeight(final int remainingHeight) {
mLayoutHelper.setMoreSuggestionsHeight(remainingHeight);
@@ -298,6 +308,10 @@ public void clear() {
for (final TextView word : mWordViews) {
word.setOnTouchListener(null);
}
+
+ if (mToolbarKey.getVisibility() != VISIBLE || mPinnedKeys.getVisibility() != VISIBLE){
+ unhidekeys();
+ }
}
private void removeAllDebugInfoViews() {
From f8aea1dbe750ae6d5215b7171852eb7ae8459d62 Mon Sep 17 00:00:00 2001
From: arcarum <134963929+arcarum@users.noreply.github.com>
Date: Wed, 20 Dec 2023 08:03:56 +0400
Subject: [PATCH 08/17] Fix Suggestions not showing
---
.../java/org/dslul/openboard/inputmethod/latin/LatinIME.java | 2 ++
1 file changed, 2 insertions(+)
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
index cae7d01b4..32af693a4 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
@@ -1409,6 +1409,8 @@ public InlineSuggestionsRequest onCreateInlineSuggestionsRequest(@NonNull Bundle
final ArrayList presentationSpecs = new ArrayList<>();
presentationSpecs.add(new InlinePresentationSpec.Builder(new Size(100, getHeight()),
new Size(740, getHeight())).setStyle(stylesBundle).build());
+ presentationSpecs.add(new InlinePresentationSpec.Builder(new Size(100, getHeight()),
+ new Size(740, getHeight())).setStyle(stylesBundle).build());
return new InlineSuggestionsRequest.Builder(presentationSpecs)
.setMaxSuggestionCount(6)
From 85240ee172b581bf5e8d41fbbc7b956a347632d1 Mon Sep 17 00:00:00 2001
From: arcarum <134963929+arcarum@users.noreply.github.com>
Date: Wed, 20 Dec 2023 08:28:40 +0400
Subject: [PATCH 09/17] Remove unhidekeys function
---
.../latin/suggestions/SuggestionStripView.java | 9 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java
index a5da8a44a..f1b1e50c5 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java
@@ -288,12 +288,6 @@ public void hideKeys() {
mPinnedKeys.setVisibility(GONE);
}
- public void unhidekeys() {
- mToolbarKey.setVisibility(VISIBLE);
- mPinnedKeys.setVisibility(VISIBLE);
- }
-
-
public void setMoreSuggestionsHeight(final int remainingHeight) {
mLayoutHelper.setMoreSuggestionsHeight(remainingHeight);
}
@@ -310,7 +304,8 @@ public void clear() {
}
if (mToolbarKey.getVisibility() != VISIBLE || mPinnedKeys.getVisibility() != VISIBLE){
- unhidekeys();
+ mToolbarKey.setVisibility(VISIBLE);
+ mPinnedKeys.setVisibility(VISIBLE);
}
}
From 95aaaf9c2ebf6167bd974d95e62b7e7d4f5a6663 Mon Sep 17 00:00:00 2001
From: arcarum <134963929+arcarum@users.noreply.github.com>
Date: Wed, 20 Dec 2023 16:12:58 +0400
Subject: [PATCH 10/17] Added theme support
---
.../openboard/inputmethod/latin/LatinIME.java | 21 ++++++++++++++-----
1 file changed, 16 insertions(+), 5 deletions(-)
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
index 32af693a4..c6141c650 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
@@ -13,6 +13,7 @@
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
+import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Color;
@@ -70,6 +71,7 @@
import org.dslul.openboard.inputmethod.keyboard.MainKeyboardView;
import org.dslul.openboard.inputmethod.latin.Suggest.OnGetSuggestedWordsCallback;
import org.dslul.openboard.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
+import org.dslul.openboard.inputmethod.latin.common.Colors;
import org.dslul.openboard.inputmethod.latin.common.Constants;
import org.dslul.openboard.inputmethod.latin.common.CoordinateUtils;
import org.dslul.openboard.inputmethod.latin.common.InputPointers;
@@ -1367,37 +1369,46 @@ public void updateFullscreenMode() {
public InlineSuggestionsRequest onCreateInlineSuggestionsRequest(@NonNull Bundle uiExtras) {
Log.d(TAG,"onCreateInlineSuggestionsRequest called");
+ final SharedPreferences pref = DeviceProtectedUtils.getSharedPreferences(mDisplayContext);
+
// Revert to default behaviour if show_suggestions is disabled
// (Maybe there is a better way to do this)
- boolean isShowSuggestionsEnabled = DeviceProtectedUtils.getSharedPreferences(mDisplayContext).getBoolean(Settings.PREF_SHOW_SUGGESTIONS, true);
+ boolean isShowSuggestionsEnabled = pref.getBoolean(Settings.PREF_SHOW_SUGGESTIONS, true);
if(!isShowSuggestionsEnabled){
return null;
}
+ assert mDisplayContext != null;
+ final Colors themeColors = Settings.getColorsForCurrentTheme(mDisplayContext, pref);
+
StylesBuilder stylesBuilder = UiVersions.newStylesBuilder();
@SuppressLint("RestrictedApi") Style style = InlineSuggestionUi.newStyleBuilder()
.setSingleIconChipStyle(
new ViewStyle.Builder()
.setBackground(
- Icon.createWithResource(mDisplayContext, androidx.autofill.R.drawable.autofill_inline_suggestion_chip_background))
+ Icon.createWithResource(mDisplayContext,
+ androidx.autofill.R.drawable.autofill_inline_suggestion_chip_background)
+ .setTint(themeColors.getBackground()))
.setPadding(0, 0, 0, 0)
.build())
.setChipStyle(
new ViewStyle.Builder()
.setBackground(
- Icon.createWithResource(mDisplayContext, androidx.autofill.R.drawable.autofill_inline_suggestion_chip_background))
+ Icon.createWithResource(mDisplayContext,
+ androidx.autofill.R.drawable.autofill_inline_suggestion_chip_background)
+ .setTint(themeColors.getBackground()))
.build())
.setStartIconStyle(new ImageViewStyle.Builder().setLayoutMargin(0, 0, 0, 0).build())
.setTitleStyle(
new TextViewStyle.Builder()
.setLayoutMargin(toPixel(4), 0, toPixel(4), 0)
- .setTextColor(Color.parseColor("#FF202124"))
+ .setTextColor(themeColors.getKeyText())
.setTextSize(12)
.build())
.setSubtitleStyle(
new TextViewStyle.Builder()
.setLayoutMargin(0, 0, toPixel(4), 0)
- .setTextColor(Color.parseColor("#99202124")) // 60% opacity
+ .setTextColor(themeColors.getKeyHintText())
.setTextSize(10)
.build())
.setEndIconStyle(new ImageViewStyle.Builder().setLayoutMargin(0, 0, 0, 0).build())
From d8f40a1a64c45cd03ea51620555cd7b158cef115 Mon Sep 17 00:00:00 2001
From: arcarum <134963929+arcarum@users.noreply.github.com>
Date: Sat, 23 Dec 2023 08:50:22 +0400
Subject: [PATCH 11/17] Removed theme support
---
.../openboard/inputmethod/latin/LatinIME.java | 14 ++++----------
1 file changed, 4 insertions(+), 10 deletions(-)
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
index c6141c650..360d4a4a6 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
@@ -71,7 +71,6 @@
import org.dslul.openboard.inputmethod.keyboard.MainKeyboardView;
import org.dslul.openboard.inputmethod.latin.Suggest.OnGetSuggestedWordsCallback;
import org.dslul.openboard.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
-import org.dslul.openboard.inputmethod.latin.common.Colors;
import org.dslul.openboard.inputmethod.latin.common.Constants;
import org.dslul.openboard.inputmethod.latin.common.CoordinateUtils;
import org.dslul.openboard.inputmethod.latin.common.InputPointers;
@@ -1378,37 +1377,32 @@ public InlineSuggestionsRequest onCreateInlineSuggestionsRequest(@NonNull Bundle
return null;
}
- assert mDisplayContext != null;
- final Colors themeColors = Settings.getColorsForCurrentTheme(mDisplayContext, pref);
-
StylesBuilder stylesBuilder = UiVersions.newStylesBuilder();
@SuppressLint("RestrictedApi") Style style = InlineSuggestionUi.newStyleBuilder()
.setSingleIconChipStyle(
new ViewStyle.Builder()
.setBackground(
Icon.createWithResource(mDisplayContext,
- androidx.autofill.R.drawable.autofill_inline_suggestion_chip_background)
- .setTint(themeColors.getBackground()))
+ androidx.autofill.R.drawable.autofill_inline_suggestion_chip_background))
.setPadding(0, 0, 0, 0)
.build())
.setChipStyle(
new ViewStyle.Builder()
.setBackground(
Icon.createWithResource(mDisplayContext,
- androidx.autofill.R.drawable.autofill_inline_suggestion_chip_background)
- .setTint(themeColors.getBackground()))
+ androidx.autofill.R.drawable.autofill_inline_suggestion_chip_background))
.build())
.setStartIconStyle(new ImageViewStyle.Builder().setLayoutMargin(0, 0, 0, 0).build())
.setTitleStyle(
new TextViewStyle.Builder()
.setLayoutMargin(toPixel(4), 0, toPixel(4), 0)
- .setTextColor(themeColors.getKeyText())
+ .setTextColor(Color.parseColor("#FF202124"))
.setTextSize(12)
.build())
.setSubtitleStyle(
new TextViewStyle.Builder()
.setLayoutMargin(0, 0, toPixel(4), 0)
- .setTextColor(themeColors.getKeyHintText())
+ .setTextColor(Color.parseColor("#99202124"))
.setTextSize(10)
.build())
.setEndIconStyle(new ImageViewStyle.Builder().setLayoutMargin(0, 0, 0, 0).build())
From a052eab0ea9d6ff93eae201602316ceaa25f2abf Mon Sep 17 00:00:00 2001
From: arcarum <134963929+arcarum@users.noreply.github.com>
Date: Mon, 25 Dec 2023 08:04:22 +0400
Subject: [PATCH 12/17] Moved some code to the newly created
InlineAutofillUtils
---
.../openboard/inputmethod/latin/LatinIME.java | 92 +-------------
.../latin/utils/InlineAutofillUtils.java | 117 ++++++++++++++++++
2 files changed, 120 insertions(+), 89 deletions(-)
create mode 100644 app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/InlineAutofillUtils.java
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
index 360d4a4a6..9b3db954f 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
@@ -6,9 +6,6 @@
package org.dslul.openboard.inputmethod.latin;
-import static android.util.TypedValue.COMPLEX_UNIT_DIP;
-
-import android.annotation.SuppressLint;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
@@ -17,7 +14,6 @@
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Color;
-import android.graphics.drawable.Icon;
import android.inputmethodservice.InputMethodService;
import android.media.AudioManager;
import android.os.Build;
@@ -31,13 +27,10 @@
import android.util.Log;
import android.util.PrintWriterPrinter;
import android.util.Printer;
-import android.util.Size;
import android.util.SparseArray;
-import android.util.TypedValue;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.View;
-import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.view.Window;
import android.view.WindowManager;
@@ -49,8 +42,6 @@
import android.view.inputmethod.InputMethodInfo;
import android.view.inputmethod.InputMethodSubtype;
import android.widget.HorizontalScrollView;
-import android.widget.LinearLayout;
-import android.widget.inline.InlinePresentationSpec;
import org.dslul.openboard.inputmethod.accessibility.AccessibilityUtils;
import org.dslul.openboard.inputmethod.annotations.UsedForTesting;
@@ -96,6 +87,7 @@
import org.dslul.openboard.inputmethod.latin.utils.StatsUtilsManager;
import org.dslul.openboard.inputmethod.latin.utils.SubtypeLocaleUtils;
import org.dslul.openboard.inputmethod.latin.utils.ViewLayoutUtils;
+import org.dslul.openboard.inputmethod.latin.utils.InlineAutofillUtils;
import java.io.FileDescriptor;
import java.io.PrintWriter;
@@ -112,13 +104,6 @@
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AlertDialog;
-import androidx.autofill.inline.UiVersions;
-import androidx.autofill.inline.UiVersions.StylesBuilder;
-import androidx.autofill.inline.common.ImageViewStyle;
-import androidx.autofill.inline.common.TextViewStyle;
-import androidx.autofill.inline.common.ViewStyle;
-import androidx.autofill.inline.v1.InlineSuggestionUi;
-import androidx.autofill.inline.v1.InlineSuggestionUi.Style;
import androidx.core.content.ContextCompat;
/**
@@ -1377,58 +1362,7 @@ public InlineSuggestionsRequest onCreateInlineSuggestionsRequest(@NonNull Bundle
return null;
}
- StylesBuilder stylesBuilder = UiVersions.newStylesBuilder();
- @SuppressLint("RestrictedApi") Style style = InlineSuggestionUi.newStyleBuilder()
- .setSingleIconChipStyle(
- new ViewStyle.Builder()
- .setBackground(
- Icon.createWithResource(mDisplayContext,
- androidx.autofill.R.drawable.autofill_inline_suggestion_chip_background))
- .setPadding(0, 0, 0, 0)
- .build())
- .setChipStyle(
- new ViewStyle.Builder()
- .setBackground(
- Icon.createWithResource(mDisplayContext,
- androidx.autofill.R.drawable.autofill_inline_suggestion_chip_background))
- .build())
- .setStartIconStyle(new ImageViewStyle.Builder().setLayoutMargin(0, 0, 0, 0).build())
- .setTitleStyle(
- new TextViewStyle.Builder()
- .setLayoutMargin(toPixel(4), 0, toPixel(4), 0)
- .setTextColor(Color.parseColor("#FF202124"))
- .setTextSize(12)
- .build())
- .setSubtitleStyle(
- new TextViewStyle.Builder()
- .setLayoutMargin(0, 0, toPixel(4), 0)
- .setTextColor(Color.parseColor("#99202124"))
- .setTextSize(10)
- .build())
- .setEndIconStyle(new ImageViewStyle.Builder().setLayoutMargin(0, 0, 0, 0).build())
- .build();
- stylesBuilder.addStyle(style);
-
- Bundle stylesBundle = stylesBuilder.build();
-
- final ArrayList presentationSpecs = new ArrayList<>();
- presentationSpecs.add(new InlinePresentationSpec.Builder(new Size(100, getHeight()),
- new Size(740, getHeight())).setStyle(stylesBundle).build());
- presentationSpecs.add(new InlinePresentationSpec.Builder(new Size(100, getHeight()),
- new Size(740, getHeight())).setStyle(stylesBundle).build());
-
- return new InlineSuggestionsRequest.Builder(presentationSpecs)
- .setMaxSuggestionCount(6)
- .build();
- }
-
- private int toPixel(int dp) {
- return (int) TypedValue.applyDimension(COMPLEX_UNIT_DIP, dp,
- getResources().getDisplayMetrics());
- }
-
- private int getHeight() {
- return getResources().getDimensionPixelSize(R.dimen.config_suggestions_strip_height);
+ return InlineAutofillUtils.createInlineSuggestionRequest(mDisplayContext);
}
@Override
@@ -1442,27 +1376,7 @@ public boolean onInlineSuggestionsResponse(InlineSuggestionsResponse response) {
return false;
}
- final int totalSuggestionsCount = inlineSuggestions.size();
-
- // A container to hold all views
- LinearLayout container = new LinearLayout(mDisplayContext);
-
- for (int i = 0; i < totalSuggestionsCount; i++) {
- final InlineSuggestion inlineSuggestion = inlineSuggestions.get(i);
-
- inlineSuggestion.inflate(this, new Size(ViewGroup.LayoutParams.WRAP_CONTENT,
- ViewGroup.LayoutParams.WRAP_CONTENT), getMainExecutor(), (view) -> {
- if (view != null)
- container.addView(view);
- });
- }
-
- HorizontalScrollView view = new HorizontalScrollView(mDisplayContext);
- view.setLayoutParams(new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
- view.setHorizontalScrollBarEnabled(false);
-
- view.addView(container);
+ HorizontalScrollView view = InlineAutofillUtils.createView(inlineSuggestions, mDisplayContext);
// Delay required to show properly
new Handler().postDelayed(() -> {
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/InlineAutofillUtils.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/InlineAutofillUtils.java
new file mode 100644
index 000000000..028ed4c50
--- /dev/null
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/InlineAutofillUtils.java
@@ -0,0 +1,117 @@
+package org.dslul.openboard.inputmethod.latin.utils;
+
+import static android.util.TypedValue.COMPLEX_UNIT_DIP;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.graphics.Color;
+import android.graphics.drawable.Icon;
+import android.os.Build;
+import android.os.Bundle;
+import android.util.Size;
+import android.util.TypedValue;
+import android.view.ViewGroup;
+import android.view.inputmethod.InlineSuggestion;
+import android.view.inputmethod.InlineSuggestionsRequest;
+import android.widget.HorizontalScrollView;
+import android.widget.LinearLayout;
+import android.widget.inline.InlinePresentationSpec;
+
+import androidx.annotation.RequiresApi;
+import androidx.autofill.inline.UiVersions;
+import androidx.autofill.inline.common.ImageViewStyle;
+import androidx.autofill.inline.common.TextViewStyle;
+import androidx.autofill.inline.common.ViewStyle;
+import androidx.autofill.inline.v1.InlineSuggestionUi;
+
+import org.dslul.openboard.inputmethod.latin.R;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@RequiresApi(api = Build.VERSION_CODES.R)
+public class InlineAutofillUtils {
+
+ private static int toPixel(int dp, Context context) {
+ return (int) TypedValue.applyDimension(COMPLEX_UNIT_DIP, dp,
+ context.getResources().getDisplayMetrics());
+ }
+
+ private static int getHeight(Context context) {
+ return context.getResources().getDimensionPixelSize(R.dimen.config_suggestions_strip_height);
+ }
+
+ public static InlineSuggestionsRequest createInlineSuggestionRequest(Context context) {
+
+ UiVersions.StylesBuilder stylesBuilder = UiVersions.newStylesBuilder();
+ @SuppressLint("RestrictedApi") InlineSuggestionUi.Style style = InlineSuggestionUi.newStyleBuilder()
+ .setSingleIconChipStyle(
+ new ViewStyle.Builder()
+ .setBackground(
+ Icon.createWithResource(context,
+ androidx.autofill.R.drawable.autofill_inline_suggestion_chip_background))
+ .setPadding(0, 0, 0, 0)
+ .build())
+ .setChipStyle(
+ new ViewStyle.Builder()
+ .setBackground(
+ Icon.createWithResource(context,
+ androidx.autofill.R.drawable.autofill_inline_suggestion_chip_background))
+ .build())
+ .setStartIconStyle(new ImageViewStyle.Builder().setLayoutMargin(0, 0, 0, 0).build())
+ .setTitleStyle(
+ new TextViewStyle.Builder()
+ .setLayoutMargin(toPixel(4, context), 0, toPixel(4, context), 0)
+ .setTextColor(Color.parseColor("#FF202124"))
+ .setTextSize(12)
+ .build())
+ .setSubtitleStyle(
+ new TextViewStyle.Builder()
+ .setLayoutMargin(0, 0, toPixel(4, context), 0)
+ .setTextColor(Color.parseColor("#99202124"))
+ .setTextSize(10)
+ .build())
+ .setEndIconStyle(new ImageViewStyle.Builder().setLayoutMargin(0, 0, 0, 0).build())
+ .build();
+ stylesBuilder.addStyle(style);
+
+ Bundle stylesBundle = stylesBuilder.build();
+
+ final ArrayList presentationSpecs = new ArrayList<>();
+ presentationSpecs.add(new InlinePresentationSpec.Builder(new Size(100, getHeight(context)),
+ new Size(740, getHeight(context))).setStyle(stylesBundle).build());
+ presentationSpecs.add(new InlinePresentationSpec.Builder(new Size(100, getHeight(context)),
+ new Size(740, getHeight(context))).setStyle(stylesBundle).build());
+
+ return new InlineSuggestionsRequest.Builder(presentationSpecs)
+ .setMaxSuggestionCount(6)
+ .build();
+ }
+
+ public static HorizontalScrollView createView(List inlineSuggestions, Context context) {
+
+ final int totalSuggestionsCount = inlineSuggestions.size();
+
+ // A container to hold all views
+ LinearLayout container = new LinearLayout(context);
+
+ for (int i = 0; i < totalSuggestionsCount; i++) {
+ final InlineSuggestion inlineSuggestion = inlineSuggestions.get(i);
+
+ inlineSuggestion.inflate(context, new Size(ViewGroup.LayoutParams.WRAP_CONTENT,
+ ViewGroup.LayoutParams.WRAP_CONTENT), context.getMainExecutor(), (view) -> {
+ if (view != null)
+ container.addView(view);
+ });
+ }
+
+ HorizontalScrollView view = new HorizontalScrollView(context);
+ view.setLayoutParams(new ViewGroup.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ view.setHorizontalScrollBarEnabled(false);
+
+ view.addView(container);
+
+ return view;
+ }
+}
From e89ddc95bc2a896585a950cbeddfadee6735717e Mon Sep 17 00:00:00 2001
From: arcarum <134963929+arcarum@users.noreply.github.com>
Date: Mon, 25 Dec 2023 08:08:32 +0400
Subject: [PATCH 13/17] Moved location of an import statement
---
.../java/org/dslul/openboard/inputmethod/latin/LatinIME.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
index 9b3db954f..adfc51005 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
@@ -80,6 +80,7 @@
import org.dslul.openboard.inputmethod.latin.utils.ApplicationUtils;
import org.dslul.openboard.inputmethod.latin.utils.ColorUtilKt;
import org.dslul.openboard.inputmethod.latin.utils.DeviceProtectedUtils;
+import org.dslul.openboard.inputmethod.latin.utils.InlineAutofillUtils;
import org.dslul.openboard.inputmethod.latin.utils.InputMethodPickerKt;
import org.dslul.openboard.inputmethod.latin.utils.JniUtils;
import org.dslul.openboard.inputmethod.latin.utils.LeakGuardHandlerWrapper;
@@ -87,7 +88,6 @@
import org.dslul.openboard.inputmethod.latin.utils.StatsUtilsManager;
import org.dslul.openboard.inputmethod.latin.utils.SubtypeLocaleUtils;
import org.dslul.openboard.inputmethod.latin.utils.ViewLayoutUtils;
-import org.dslul.openboard.inputmethod.latin.utils.InlineAutofillUtils;
import java.io.FileDescriptor;
import java.io.PrintWriter;
From 12102c2f1d9878c7465ef5f644bdd82b754d034a Mon Sep 17 00:00:00 2001
From: arcarum <134963929+arcarum@users.noreply.github.com>
Date: Mon, 25 Dec 2023 22:29:39 +0400
Subject: [PATCH 14/17] Replace SharedPreferences with mSettings
---
.../org/dslul/openboard/inputmethod/latin/LatinIME.java | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
index adfc51005..e1bd4a9b0 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
@@ -10,7 +10,6 @@
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
-import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Color;
@@ -79,7 +78,6 @@
import org.dslul.openboard.inputmethod.latin.touchinputconsumer.GestureConsumer;
import org.dslul.openboard.inputmethod.latin.utils.ApplicationUtils;
import org.dslul.openboard.inputmethod.latin.utils.ColorUtilKt;
-import org.dslul.openboard.inputmethod.latin.utils.DeviceProtectedUtils;
import org.dslul.openboard.inputmethod.latin.utils.InlineAutofillUtils;
import org.dslul.openboard.inputmethod.latin.utils.InputMethodPickerKt;
import org.dslul.openboard.inputmethod.latin.utils.JniUtils;
@@ -1353,12 +1351,9 @@ public void updateFullscreenMode() {
public InlineSuggestionsRequest onCreateInlineSuggestionsRequest(@NonNull Bundle uiExtras) {
Log.d(TAG,"onCreateInlineSuggestionsRequest called");
- final SharedPreferences pref = DeviceProtectedUtils.getSharedPreferences(mDisplayContext);
-
// Revert to default behaviour if show_suggestions is disabled
// (Maybe there is a better way to do this)
- boolean isShowSuggestionsEnabled = pref.getBoolean(Settings.PREF_SHOW_SUGGESTIONS, true);
- if(!isShowSuggestionsEnabled){
+ if(!mSettings.getCurrent().isSuggestionsEnabledPerUserSettings()){
return null;
}
From 9e0fe9fb54877c7d0a43696d84bbfb6904097948 Mon Sep 17 00:00:00 2001
From: arcarum <134963929+arcarum@users.noreply.github.com>
Date: Tue, 26 Dec 2023 22:06:11 +0400
Subject: [PATCH 15/17] Potential fix for 1Password
---
.../openboard/inputmethod/latin/utils/InlineAutofillUtils.java | 2 ++
1 file changed, 2 insertions(+)
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/InlineAutofillUtils.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/InlineAutofillUtils.java
index 028ed4c50..98b1aa43b 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/InlineAutofillUtils.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/InlineAutofillUtils.java
@@ -82,6 +82,8 @@ public static InlineSuggestionsRequest createInlineSuggestionRequest(Context con
new Size(740, getHeight(context))).setStyle(stylesBundle).build());
presentationSpecs.add(new InlinePresentationSpec.Builder(new Size(100, getHeight(context)),
new Size(740, getHeight(context))).setStyle(stylesBundle).build());
+ presentationSpecs.add(new InlinePresentationSpec.Builder(new Size(100, getHeight(context)),
+ new Size(740, getHeight(context))).setStyle(stylesBundle).build());
return new InlineSuggestionsRequest.Builder(presentationSpecs)
.setMaxSuggestionCount(6)
From ffd6dce92638f77c02d10770a270e261a86746d5 Mon Sep 17 00:00:00 2001
From: arcarum <134963929+arcarum@users.noreply.github.com>
Date: Fri, 29 Dec 2023 08:48:28 +0400
Subject: [PATCH 16/17] Add min and max variables
---
.../latin/utils/InlineAutofillUtils.java | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/InlineAutofillUtils.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/InlineAutofillUtils.java
index 98b1aa43b..531d953c2 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/InlineAutofillUtils.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/InlineAutofillUtils.java
@@ -8,6 +8,7 @@
import android.graphics.drawable.Icon;
import android.os.Build;
import android.os.Bundle;
+import android.util.Log;
import android.util.Size;
import android.util.TypedValue;
import android.view.ViewGroup;
@@ -77,13 +78,15 @@ public static InlineSuggestionsRequest createInlineSuggestionRequest(Context con
Bundle stylesBundle = stylesBuilder.build();
+ Size min = new Size(100, getHeight(context));
+ Size max = new Size(740, getHeight(context));
+
final ArrayList presentationSpecs = new ArrayList<>();
- presentationSpecs.add(new InlinePresentationSpec.Builder(new Size(100, getHeight(context)),
- new Size(740, getHeight(context))).setStyle(stylesBundle).build());
- presentationSpecs.add(new InlinePresentationSpec.Builder(new Size(100, getHeight(context)),
- new Size(740, getHeight(context))).setStyle(stylesBundle).build());
- presentationSpecs.add(new InlinePresentationSpec.Builder(new Size(100, getHeight(context)),
- new Size(740, getHeight(context))).setStyle(stylesBundle).build());
+ presentationSpecs.add(new InlinePresentationSpec.Builder(min, max).setStyle(stylesBundle).build());
+ presentationSpecs.add(new InlinePresentationSpec.Builder(min, max).setStyle(stylesBundle).build());
+ presentationSpecs.add(new InlinePresentationSpec.Builder(min, max).setStyle(stylesBundle).build());
+
+ Log.d("LatinIME","onCreateInlineSuggestionsRequest exited");
return new InlineSuggestionsRequest.Builder(presentationSpecs)
.setMaxSuggestionCount(6)
From cfa386b8ec660621386eb061248be7612876d7df Mon Sep 17 00:00:00 2001
From: arcarum <134963929+arcarum@users.noreply.github.com>
Date: Fri, 29 Dec 2023 08:52:51 +0400
Subject: [PATCH 17/17] Add license header
---
.../org/dslul/openboard/inputmethod/latin/LatinIME.java | 2 --
.../inputmethod/latin/utils/InlineAutofillUtils.java | 9 +++++++--
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
index e1bd4a9b0..30d8eeb92 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
@@ -1344,8 +1344,6 @@ public void updateFullscreenMode() {
updateSoftInputWindowLayoutParameters();
}
- // Code from https://android.googlesource.com/platform/development/+/master/samples/AutofillKeyboard/
- // with some modifications
@Override
@RequiresApi(api = Build.VERSION_CODES.R)
public InlineSuggestionsRequest onCreateInlineSuggestionsRequest(@NonNull Bundle uiExtras) {
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/InlineAutofillUtils.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/InlineAutofillUtils.java
index 531d953c2..4155e595c 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/InlineAutofillUtils.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/InlineAutofillUtils.java
@@ -1,3 +1,9 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ * modified
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
package org.dslul.openboard.inputmethod.latin.utils;
import static android.util.TypedValue.COMPLEX_UNIT_DIP;
@@ -30,6 +36,7 @@
import java.util.ArrayList;
import java.util.List;
+// Modified code from https://android.googlesource.com/platform/development/+/master/samples/AutofillKeyboard/
@RequiresApi(api = Build.VERSION_CODES.R)
public class InlineAutofillUtils {
@@ -86,8 +93,6 @@ public static InlineSuggestionsRequest createInlineSuggestionRequest(Context con
presentationSpecs.add(new InlinePresentationSpec.Builder(min, max).setStyle(stylesBundle).build());
presentationSpecs.add(new InlinePresentationSpec.Builder(min, max).setStyle(stylesBundle).build());
- Log.d("LatinIME","onCreateInlineSuggestionsRequest exited");
-
return new InlineSuggestionsRequest.Builder(presentationSpecs)
.setMaxSuggestionCount(6)
.build();