added a hack for sending with OK in Google Chat
This commit is contained in:
parent
89eaf0eedd
commit
6b95c6b9d1
14 changed files with 88 additions and 31 deletions
|
|
@ -59,6 +59,14 @@ public class AppHacks {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private boolean isGoogleChat() {
|
||||||
|
return isAppField(
|
||||||
|
"com.google.android.apps.dynamite",
|
||||||
|
EditorInfo.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE | EditorInfo.TYPE_TEXT_FLAG_CAP_SENTENCES | EditorInfo.TYPE_TEXT_FLAG_AUTO_CORRECT
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* isAppField
|
* isAppField
|
||||||
* Detects a particular input field of a particular application.
|
* Detects a particular input field of a particular application.
|
||||||
|
|
@ -114,6 +122,8 @@ public class AppHacks {
|
||||||
return true;
|
return true;
|
||||||
} else if (isMessenger()) {
|
} else if (isMessenger()) {
|
||||||
return onEnterFbMessenger();
|
return onEnterFbMessenger();
|
||||||
|
} else if (isGoogleChat()) {
|
||||||
|
return onEnterGoogleChat();
|
||||||
}
|
}
|
||||||
|
|
||||||
return onEnterDefault();
|
return onEnterDefault();
|
||||||
|
|
@ -161,28 +171,46 @@ public class AppHacks {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* onEnterFbMessenger
|
* onEnterFbMessenger
|
||||||
* Once we have detected the chat message field we apply the appropriate key combo to send the message.
|
* Messenger responds only to ENTER, but not DPAD_CENTER, so we make sure to send the correct code,
|
||||||
|
* no matter how the hardware key is implemented. In case the hack is disabled, we just type a new line,
|
||||||
|
* as one would expect.
|
||||||
*/
|
*/
|
||||||
private boolean onEnterFbMessenger() {
|
private boolean onEnterFbMessenger() {
|
||||||
if (textField == null) {
|
if (inputConnection == null || textField == null || !textField.isThereText()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// in case the setting is disabled, just type a new line as one would expect
|
if (settings.getFbMessengerHack()) {
|
||||||
if (!settings.getFbMessengerHack()) {
|
|
||||||
inputConnection.commitText("\n", 1);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// do not send any commands if the user has not typed anything or the field is invalid
|
|
||||||
if (!textField.isThereText()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isMessenger()) {
|
|
||||||
// Messenger responds only to ENTER, but not DPAD_CENTER, so we make sure to send the correct code,
|
|
||||||
// no matter how the hardware key is implemented.
|
|
||||||
sendDownUpKeyEvents(KeyEvent.KEYCODE_ENTER);
|
sendDownUpKeyEvents(KeyEvent.KEYCODE_ENTER);
|
||||||
|
} else {
|
||||||
|
// in case the setting is disabled, just type a new line as one would expect
|
||||||
|
inputConnection.commitText("\n", 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* onEnterGoogleChat
|
||||||
|
* Google Chat does not seem to respond consistently to ENTER. So we trick it by selecting
|
||||||
|
* the send button it, then going back to the text field, so that one can continue typing.
|
||||||
|
* If the hack is disabled, we just type a new line.
|
||||||
|
*/
|
||||||
|
private boolean onEnterGoogleChat() {
|
||||||
|
if (inputConnection == null || textField == null || !textField.isThereText()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (settings.getGoogleChatHack()) {
|
||||||
|
sendDownUpKeyEvents(KeyEvent.KEYCODE_TAB);
|
||||||
|
sendDownUpKeyEvents(KeyEvent.KEYCODE_TAB);
|
||||||
|
sendDownUpKeyEvents(KeyEvent.KEYCODE_ENTER);
|
||||||
|
sendDownUpKeyEvents(KeyEvent.KEYCODE_TAB, true);
|
||||||
|
sendDownUpKeyEvents(KeyEvent.KEYCODE_TAB, true);
|
||||||
|
sendDownUpKeyEvents(KeyEvent.KEYCODE_TAB, true);
|
||||||
|
sendDownUpKeyEvents(KeyEvent.KEYCODE_TAB, true);
|
||||||
|
} else {
|
||||||
|
inputConnection.commitText("\n", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -190,9 +218,16 @@ public class AppHacks {
|
||||||
|
|
||||||
|
|
||||||
private void sendDownUpKeyEvents(int keyCode) {
|
private void sendDownUpKeyEvents(int keyCode) {
|
||||||
|
sendDownUpKeyEvents(keyCode, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void sendDownUpKeyEvents(int keyCode, boolean shift) {
|
||||||
if (inputConnection != null) {
|
if (inputConnection != null) {
|
||||||
inputConnection.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, keyCode));
|
KeyEvent downEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN, keyCode, 0, shift ? KeyEvent.META_SHIFT_ON : 0);
|
||||||
inputConnection.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, keyCode));
|
KeyEvent upEvent = new KeyEvent(0, 0, KeyEvent.ACTION_UP, keyCode, 0, shift ? KeyEvent.META_SHIFT_ON : 0);
|
||||||
|
inputConnection.sendKeyEvent(downEvent);
|
||||||
|
inputConnection.sendKeyEvent(upEvent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -300,4 +300,8 @@ public class SettingsStore {
|
||||||
public boolean getFbMessengerHack() {
|
public boolean getFbMessengerHack() {
|
||||||
return prefs.getBoolean("pref_hack_fb_messenger", false);
|
return prefs.getBoolean("pref_hack_fb_messenger", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean getGoogleChatHack() {
|
||||||
|
return prefs.getBoolean("pref_hack_google_chat", false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,8 +28,8 @@
|
||||||
<string name="pref_category_hacks">Съвместимост</string>
|
<string name="pref_category_hacks">Съвместимост</string>
|
||||||
<string name="pref_category_appearance">Облик</string>
|
<string name="pref_category_appearance">Облик</string>
|
||||||
<string name="pref_category_function_keys">Бутони за бърз достъп</string>
|
<string name="pref_category_function_keys">Бутони за бърз достъп</string>
|
||||||
<string name="pref_hack_fb_messenger">Изпращай съобщения с ОК в Messenger</string>
|
<string name="pref_hack_fb_messenger">Изпращай с „ОК“ във Facebook Messenger</string>
|
||||||
<string name="pref_hack_fb_messenger_summary">Позволява изпращането на съобщения с бутона ОК във Facebook Messenger.</string>
|
<string name="pref_hack_google_chat">Изпращай съобщения с „ОК“ в Google Chat</string>
|
||||||
<string name="pref_show_soft_function_keys">Бутони на екрана</string>
|
<string name="pref_show_soft_function_keys">Бутони на екрана</string>
|
||||||
<string name="key_back">Назад</string>
|
<string name="key_back">Назад</string>
|
||||||
<string name="key_call">Зелена слушалка</string>
|
<string name="key_call">Зелена слушалка</string>
|
||||||
|
|
|
||||||
|
|
@ -32,4 +32,6 @@
|
||||||
<string name="pref_dark_theme_auto">Automatisch</string>
|
<string name="pref_dark_theme_auto">Automatisch</string>
|
||||||
<string name="donate_title">Spenden</string>
|
<string name="donate_title">Spenden</string>
|
||||||
<string name="donate_summary">Wenn Ihnen %1$s gefällt, könnten Sie die Entwicklung auf %2$s unterstützen.</string>
|
<string name="donate_summary">Wenn Ihnen %1$s gefällt, könnten Sie die Entwicklung auf %2$s unterstützen.</string>
|
||||||
|
<string name="pref_hack_fb_messenger">Mit \"OK\" in Facebook Messenger senden</string>
|
||||||
|
<string name="pref_hack_google_chat">Nachrichten mit \"OK\" in Google Chat senden</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -76,4 +76,6 @@
|
||||||
<string name="pref_dark_theme_auto">Automática</string>
|
<string name="pref_dark_theme_auto">Automática</string>
|
||||||
<string name="donate_title">Donar</string>
|
<string name="donate_title">Donar</string>
|
||||||
<string name="donate_summary">Si te gusta %1$s, podrías apoyar su desarrollo en: %2$s.</string>
|
<string name="donate_summary">Si te gusta %1$s, podrías apoyar su desarrollo en: %2$s.</string>
|
||||||
|
<string name="pref_hack_fb_messenger">Enviar con «OK» en Facebook Messenger</string>
|
||||||
|
<string name="pref_hack_google_chat">Enviar mensajes con «OK» en Google Chat</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -28,8 +28,8 @@
|
||||||
<string name="pref_category_appearance">Apparance</string>
|
<string name="pref_category_appearance">Apparance</string>
|
||||||
<string name="dictionary_load_bad_char">Echec du chargement. Mot inadmissible «%1$s» à la ligne %2$d de langue «%3$s».</string>
|
<string name="dictionary_load_bad_char">Echec du chargement. Mot inadmissible «%1$s» à la ligne %2$d de langue «%3$s».</string>
|
||||||
<string name="dictionary_truncated">Le dictionaire est supprimé avec succès.</string>
|
<string name="dictionary_truncated">Le dictionaire est supprimé avec succès.</string>
|
||||||
<string name="pref_hack_fb_messenger">Envoyer des messages avec OK dans Messenger</string>
|
<string name="pref_hack_fb_messenger">Envoyer avec «OK» dans Facebook Messenger</string>
|
||||||
<string name="pref_hack_fb_messenger_summary">La touche OK servira pour envoyer des messages dans Facebook Messenger.</string>
|
<string name="pref_hack_google_chat">Envoyer des messages avec «OK» dans Google Chat</string>
|
||||||
<string name="pref_show_soft_function_keys">Boutons à l\'écran</string>
|
<string name="pref_show_soft_function_keys">Boutons à l\'écran</string>
|
||||||
<string name="dictionary_loading_indeterminate">Chargement du dictionnaire</string>
|
<string name="dictionary_loading_indeterminate">Chargement du dictionnaire</string>
|
||||||
<string name="dictionary_load_cancelled">Chargement est annulé.</string>
|
<string name="dictionary_load_cancelled">Chargement est annulé.</string>
|
||||||
|
|
|
||||||
|
|
@ -41,5 +41,7 @@
|
||||||
<string name="pref_dark_theme_auto">Automatica</string>
|
<string name="pref_dark_theme_auto">Automatica</string>
|
||||||
<string name="donate_title">Donare</string>
|
<string name="donate_title">Donare</string>
|
||||||
<string name="donate_summary">Se ti piace %1$s, potresti supportarne lo sviluppo su: %2$s.</string>
|
<string name="donate_summary">Se ti piace %1$s, potresti supportarne lo sviluppo su: %2$s.</string>
|
||||||
|
<string name="pref_hack_fb_messenger">Inviare con \"OK\" su Facebook Messenger</string>
|
||||||
|
<string name="pref_hack_google_chat">Inviare messaggi con \"OK\" su Google Chat</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -69,4 +69,6 @@
|
||||||
<string name="pref_dark_theme_auto">אוטומטי</string>
|
<string name="pref_dark_theme_auto">אוטומטי</string>
|
||||||
<string name="donate_title">לִתְרוֹם</string>
|
<string name="donate_title">לִתְרוֹם</string>
|
||||||
<string name="donate_summary">אם אתה אוהב את %1$s, תוכל לתמוך בפיתוח שלו בכתובת: %2$s</string>
|
<string name="donate_summary">אם אתה אוהב את %1$s, תוכל לתמוך בפיתוח שלו בכתובת: %2$s</string>
|
||||||
|
<string name="pref_hack_fb_messenger">שלח עם \"OK\" ב-Facebook Messenger.</string>
|
||||||
|
<string name="pref_hack_google_chat">שלח הודעות עם \"OK\" ב-Google Chat</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -32,4 +32,6 @@
|
||||||
<string name="pref_dark_theme_auto">Automatisch</string>
|
<string name="pref_dark_theme_auto">Automatisch</string>
|
||||||
<string name="donate_title">Doneer</string>
|
<string name="donate_title">Doneer</string>
|
||||||
<string name="donate_summary">Als je %1$s leuk vindt, zou je de ontwikkeling kunnen ondersteunen op: %2$s.</string>
|
<string name="donate_summary">Als je %1$s leuk vindt, zou je de ontwikkeling kunnen ondersteunen op: %2$s.</string>
|
||||||
|
<string name="pref_hack_fb_messenger">Verstuur met \"OK\" in Facebook Messenger</string>
|
||||||
|
<string name="pref_hack_google_chat">Stuur berichten met \"OK\" in Google Chat</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -65,4 +65,6 @@
|
||||||
<string name="pref_dark_theme_auto">Automático</string>
|
<string name="pref_dark_theme_auto">Automático</string>
|
||||||
<string name="donate_title">Doar</string>
|
<string name="donate_title">Doar</string>
|
||||||
<string name="donate_summary">Se você gosta de %1$s, você poderia apoiar o seu desenvolvimento em: %2$s.</string>
|
<string name="donate_summary">Se você gosta de %1$s, você poderia apoiar o seu desenvolvimento em: %2$s.</string>
|
||||||
|
<string name="pref_hack_fb_messenger">Enviar com \"OK\" no Facebook Messenger</string>
|
||||||
|
<string name="pref_hack_google_chat">Enviar mensagens com \"OK\" no Google Chat</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -42,8 +42,7 @@
|
||||||
<string name="pref_auto_text_case">Авто заглавные буквы</string>
|
<string name="pref_auto_text_case">Авто заглавные буквы</string>
|
||||||
<string name="pref_auto_text_case_summary">Автоматически начинать предложение с заглавной буквы.</string>
|
<string name="pref_auto_text_case_summary">Автоматически начинать предложение с заглавной буквы.</string>
|
||||||
<string name="pref_double_zero_char">Символ при двойном нажатии клавиши 0</string>
|
<string name="pref_double_zero_char">Символ при двойном нажатии клавиши 0</string>
|
||||||
<string name="pref_hack_fb_messenger">Отправка сообщения с «ОК» в Messenger</string>
|
<string name="pref_hack_fb_messenger">Отправка с «ОК» в Messenger</string>
|
||||||
<string name="pref_hack_fb_messenger_summary">Позволяет отправлять сообщения с помощью кнопки «ОК» в Facebook Messenger.</string>
|
|
||||||
<string name="pref_show_soft_function_keys">Кнопки на экране</string>
|
<string name="pref_show_soft_function_keys">Кнопки на экране</string>
|
||||||
<string name="dictionary_load_bad_char">Не удалось загрузить словарь. Проблема в слове «%1$s» в строке %2$d для языка «%3$s».</string>
|
<string name="dictionary_load_bad_char">Не удалось загрузить словарь. Проблема в слове «%1$s» в строке %2$d для языка «%3$s».</string>
|
||||||
<string name="dictionary_missing_go_load_it">Отсутствует словарь для языка «%1$s». Вы можете загрузить его в Настройках.</string>
|
<string name="dictionary_missing_go_load_it">Отсутствует словарь для языка «%1$s». Вы можете загрузить его в Настройках.</string>
|
||||||
|
|
@ -82,4 +81,5 @@
|
||||||
<string name="add_word_confirm">Добавить слово «%1$s» в %2$s?</string>
|
<string name="add_word_confirm">Добавить слово «%1$s» в %2$s?</string>
|
||||||
<string name="donate_title">Поддержать</string>
|
<string name="donate_title">Поддержать</string>
|
||||||
<string name="donate_summary">Если вам нравится %1$s, вы можете поддержать его разработку по: %2$s.</string>
|
<string name="donate_summary">Если вам нравится %1$s, вы можете поддержать его разработку по: %2$s.</string>
|
||||||
|
<string name="pref_hack_google_chat">Отправка сообщения с «ОК» в Google Chat</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -41,8 +41,7 @@
|
||||||
<string name="pref_auto_text_case">Авто заголовні букви</string>
|
<string name="pref_auto_text_case">Авто заголовні букви</string>
|
||||||
<string name="pref_auto_text_case_summary">Автоматично починати речення з заголовної букви.</string>
|
<string name="pref_auto_text_case_summary">Автоматично починати речення з заголовної букви.</string>
|
||||||
<string name="pref_double_zero_char">Символ при подвійному натисканні клавіші 0</string>
|
<string name="pref_double_zero_char">Символ при подвійному натисканні клавіші 0</string>
|
||||||
<string name="pref_hack_fb_messenger">Надсилати повідомлення з «ОК» до Messenger</string>
|
<string name="pref_hack_fb_messenger">Надсилати з «ОК» до Messenger</string>
|
||||||
<string name="pref_hack_fb_messenger_summary">Дозволяє надсилати повідомлення за допомогою клавіші «ОК» у Facebook Messenger.</string>
|
|
||||||
<string name="pref_show_soft_function_keys">Кнопки на екрані</string>
|
<string name="pref_show_soft_function_keys">Кнопки на екрані</string>
|
||||||
<string name="key_back">Назад</string>
|
<string name="key_back">Назад</string>
|
||||||
<string name="key_call">Виклик</string>
|
<string name="key_call">Виклик</string>
|
||||||
|
|
@ -82,4 +81,5 @@
|
||||||
<string name="add_word_confirm">Додати слово «%1$s» до %2$s?</string>
|
<string name="add_word_confirm">Додати слово «%1$s» до %2$s?</string>
|
||||||
<string name="donate_title">Підтримуйте</string>
|
<string name="donate_title">Підтримуйте</string>
|
||||||
<string name="donate_summary">Якщо вам подобається %1$s, ви можете підтримати його розробку за: %2$s.</string>
|
<string name="donate_summary">Якщо вам подобається %1$s, ви можете підтримати його розробку за: %2$s.</string>
|
||||||
|
<string name="pref_hack_google_chat">Надсилати повідомлення з «ОК» до Google Chat</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -45,8 +45,8 @@
|
||||||
<string name="pref_dark_theme_no">No</string>
|
<string name="pref_dark_theme_no">No</string>
|
||||||
<string name="pref_dark_theme_auto">Auto</string>
|
<string name="pref_dark_theme_auto">Auto</string>
|
||||||
<string name="pref_double_zero_char">Character for Double 0-key Press</string>
|
<string name="pref_double_zero_char">Character for Double 0-key Press</string>
|
||||||
<string name="pref_hack_fb_messenger">Send messages with OK in Messenger</string>
|
<string name="pref_hack_google_chat">Send messages with \"OK\" in Google Chat</string>
|
||||||
<string name="pref_hack_fb_messenger_summary">Allows sending messages with the OK key in Facebook Messenger.</string>
|
<string name="pref_hack_fb_messenger">Send with \"OK\" in Facebook Messenger</string>
|
||||||
<string name="pref_show_soft_function_keys">Show On-Screen Keys</string>
|
<string name="pref_show_soft_function_keys">Show On-Screen Keys</string>
|
||||||
<string name="pref_show_soft_numpad">Show On-Screen Numpad</string>
|
<string name="pref_show_soft_numpad">Show On-Screen Numpad</string>
|
||||||
<string name="pref_show_soft_numpad_summary" translatable="false">(BETA)</string>
|
<string name="pref_show_soft_numpad_summary" translatable="false">(BETA)</string>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto"
|
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
app:layout="@layout/pref_text"
|
app:layout="@layout/pref_text"
|
||||||
app:orderingFromXml="true">
|
app:orderingFromXml="true">
|
||||||
<Preference
|
<Preference
|
||||||
|
|
@ -24,12 +25,17 @@
|
||||||
app:title="@string/pref_alternative_suggestion_scrolling"
|
app:title="@string/pref_alternative_suggestion_scrolling"
|
||||||
app:summary="@string/pref_alternative_suggestion_scrolling_summary"/>
|
app:summary="@string/pref_alternative_suggestion_scrolling_summary"/>
|
||||||
|
|
||||||
|
<SwitchPreferenceCompat
|
||||||
|
app:defaultValue="false"
|
||||||
|
app:key="pref_hack_google_chat"
|
||||||
|
app:layout="@layout/pref_switch"
|
||||||
|
app:title="@string/pref_hack_google_chat"/>
|
||||||
|
|
||||||
<SwitchPreferenceCompat
|
<SwitchPreferenceCompat
|
||||||
app:defaultValue="false"
|
app:defaultValue="false"
|
||||||
app:key="pref_hack_fb_messenger"
|
app:key="pref_hack_fb_messenger"
|
||||||
app:layout="@layout/pref_switch"
|
app:layout="@layout/pref_switch"
|
||||||
app:title="@string/pref_hack_fb_messenger"
|
app:title="@string/pref_hack_fb_messenger"/>
|
||||||
app:summary="@string/pref_hack_fb_messenger_summary"/>
|
|
||||||
|
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue