diff --git a/app/src/main/java/com/keylesspalace/tusky/ComposeActivity.java b/app/src/main/java/com/keylesspalace/tusky/ComposeActivity.java index 720b221ea..ea736bbed 100644 --- a/app/src/main/java/com/keylesspalace/tusky/ComposeActivity.java +++ b/app/src/main/java/com/keylesspalace/tusky/ComposeActivity.java @@ -47,6 +47,7 @@ import android.text.TextWatcher; import android.text.style.URLSpan; import android.util.DisplayMetrics; import android.util.Log; +import android.view.KeyEvent; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; @@ -539,6 +540,8 @@ public final class ComposeActivity } }); + textEditor.setOnKeyListener((view, keyCode, event) -> this.onKeyDown(keyCode, event)); + textEditor.setAdapter( new ComposeAutoCompleteAdapter(this)); textEditor.setTokenizer(new ComposeTokenizer()); @@ -1624,6 +1627,7 @@ public final class ComposeActivity return super.onOptionsItemSelected(item); } + @Override public void onBackPressed() { // Acting like a teen: deliberately ignoring parent. @@ -1639,6 +1643,21 @@ public final class ComposeActivity handleCloseButton(); } + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + Log.d(TAG, event.toString()); + if (event.isCtrlPressed()) { + if (keyCode == KeyEvent.KEYCODE_ENTER) { + // send toot by pressing CTRL + ENTER + this.onSendClicked(); + return true; + } + } + + return super.onKeyDown(keyCode, event); + } + private void handleCloseButton() { CharSequence contentText = textEditor.getText(); diff --git a/app/src/main/java/com/keylesspalace/tusky/MainActivity.java b/app/src/main/java/com/keylesspalace/tusky/MainActivity.java index 993113072..90b35d5ff 100644 --- a/app/src/main/java/com/keylesspalace/tusky/MainActivity.java +++ b/app/src/main/java/com/keylesspalace/tusky/MainActivity.java @@ -280,6 +280,19 @@ public final class MainActivity extends BottomSheetActivity implements ActionBut return true; } } + + if (event.isCtrlPressed() || event.isShiftPressed()) { + // FIXME: blackberry keyONE raises SHIFT key event even CTRL IS PRESSED + switch (keyCode) { + case KeyEvent.KEYCODE_N: { + // open compose activity by pressing SHIFT + N (or CTRL + N) + Intent composeIntent = new Intent(getApplicationContext(), ComposeActivity.class); + startActivity(composeIntent); + return true; + } + } + } + return super.onKeyDown(keyCode, event); }