diff options
Diffstat (limited to 'app/src')
-rw-r--r-- | app/src/main/java/org/connectbot/ConsoleActivity.java | 36 |
1 files changed, 27 insertions, 9 deletions
diff --git a/app/src/main/java/org/connectbot/ConsoleActivity.java b/app/src/main/java/org/connectbot/ConsoleActivity.java index 4f8d301..6a6aa32 100644 --- a/app/src/main/java/org/connectbot/ConsoleActivity.java +++ b/app/src/main/java/org/connectbot/ConsoleActivity.java @@ -261,11 +261,11 @@ public class ConsoleActivity extends AppCompatActivity implements BridgeDisconne return (true); case MotionEvent.ACTION_CANCEL: - keyRepeatHandler.removeCallbacks(this); + mHandler.removeCallbacks(this); return (true); case MotionEvent.ACTION_UP: - keyRepeatHandler.removeCallbacks(this); + mHandler.removeCallbacks(this); if (!mDown) { onEmulatedKeyClicked(mView); } @@ -403,10 +403,12 @@ public class ConsoleActivity extends AppCompatActivity implements BridgeDisconne booleanPromptGroup.setVisibility(View.GONE); } - private void showEmulatedKeys() { + private void showEmulatedKeys(boolean showActionBar) { keyboardGroup.startAnimation(keyboard_fade_in); keyboardGroup.setVisibility(View.VISIBLE); - actionBar.show(); + if (showActionBar) { + actionBar.show(); + } autoHideEmulatedKeys(); } @@ -601,10 +603,10 @@ public class ConsoleActivity extends AppCompatActivity implements BridgeDisconne } }); + final HorizontalScrollView keyboardScroll = (HorizontalScrollView) findViewById(R.id.keyboard_hscroll); if (!hardKeyboard) { // Show virtual keyboard and scroll back and forth - final HorizontalScrollView keyboardScroll = (HorizontalScrollView) findViewById(R.id.keyboard_hscroll); - showEmulatedKeys(); + showEmulatedKeys(false); keyboardScroll.postDelayed(new Runnable() { @Override public void run() { @@ -621,11 +623,27 @@ public class ConsoleActivity extends AppCompatActivity implements BridgeDisconne } keyboardScroll.smoothScrollBy(-xscroll, 0); } - }, 1000); + }, 500); } - }, 1000); + }, 500); } + // Reset keyboard auto-hide timer when scrolling + keyboardScroll.setOnTouchListener( + new OnTouchListener() { + public boolean onTouch(View v, MotionEvent event) { + switch (event.getAction()) { + case MotionEvent.ACTION_MOVE: + autoHideEmulatedKeys(); + break; + case MotionEvent.ACTION_UP: + v.performClick(); + return (true); + } + return (false); + } + }); + tabs = (TabLayout) findViewById(R.id.tabs); if (tabs != null) setupTabLayoutWithViewPager(); @@ -793,7 +811,7 @@ public class ConsoleActivity extends AppCompatActivity implements BridgeDisconne && event.getEventTime() - event.getDownTime() < CLICK_TIME && Math.abs(event.getX() - lastX) < MAX_CLICK_DISTANCE && Math.abs(event.getY() - lastY) < MAX_CLICK_DISTANCE) { - showEmulatedKeys(); + showEmulatedKeys(true); } // pass any touch events back to detector |