aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main
diff options
context:
space:
mode:
authorRyan Hansberry <rhansby@gmail.com>2015-10-05 12:31:04 -0700
committerRyan Hansberry <rhansby@gmail.com>2015-10-07 10:28:29 -0700
commit3d440c282b7f5286a79a87b0a6bae2158e331230 (patch)
tree0faa36d71c9faee893d926a650b0349b305db396 /app/src/main
parent427ddb21a56ef0f85303ff7de64cbef2cdb5e472 (diff)
downloadconnectbot-3d440c282b7f5286a79a87b0a6bae2158e331230.tar.gz
connectbot-3d440c282b7f5286a79a87b0a6bae2158e331230.tar.bz2
connectbot-3d440c282b7f5286a79a87b0a6bae2158e331230.zip
Disable ViewPager paging when mouse is dragging.
Diffstat (limited to 'app/src/main')
-rw-r--r--app/src/main/java/org/connectbot/ConsoleActivity.java8
-rw-r--r--app/src/main/java/org/connectbot/TerminalView.java27
-rw-r--r--app/src/main/java/org/connectbot/util/TerminalViewPager.java54
-rw-r--r--app/src/main/res/layout-large/act_console.xml2
-rw-r--r--app/src/main/res/layout/act_console.xml2
5 files changed, 75 insertions, 18 deletions
diff --git a/app/src/main/java/org/connectbot/ConsoleActivity.java b/app/src/main/java/org/connectbot/ConsoleActivity.java
index fd91ad0..ba97f45 100644
--- a/app/src/main/java/org/connectbot/ConsoleActivity.java
+++ b/app/src/main/java/org/connectbot/ConsoleActivity.java
@@ -29,6 +29,7 @@ import org.connectbot.service.TerminalBridge;
import org.connectbot.service.TerminalKeyListener;
import org.connectbot.service.TerminalManager;
import org.connectbot.util.PreferenceConstants;
+import org.connectbot.util.TerminalViewPager;
import android.app.AlertDialog;
import android.app.Dialog;
@@ -53,7 +54,6 @@ import android.support.design.widget.TabLayout;
import android.support.v4.app.ActivityCompat;
import android.support.v4.view.MenuItemCompat;
import android.support.v4.view.PagerAdapter;
-import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
@@ -99,7 +99,7 @@ public class ConsoleActivity extends AppCompatActivity implements BridgeDisconne
private static final int KEYBOARD_REPEAT = 100;
private static final String STATE_SELECTED_URI = "selectedUri";
- protected ViewPager pager = null;
+ protected TerminalViewPager pager = null;
protected TabLayout tabs = null;
protected Toolbar toolbar = null;
@Nullable
@@ -490,10 +490,10 @@ public class ConsoleActivity extends AppCompatActivity implements BridgeDisconne
toolbar = (Toolbar) findViewById(R.id.toolbar);
- pager = (ViewPager) findViewById(R.id.console_flip);
+ pager = (TerminalViewPager) findViewById(R.id.console_flip);
pager.addOnPageChangeListener(
- new ViewPager.SimpleOnPageChangeListener() {
+ new TerminalViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
setTitle(adapter.getPageTitle(position));
diff --git a/app/src/main/java/org/connectbot/TerminalView.java b/app/src/main/java/org/connectbot/TerminalView.java
index 42ab843..0c9ec54 100644
--- a/app/src/main/java/org/connectbot/TerminalView.java
+++ b/app/src/main/java/org/connectbot/TerminalView.java
@@ -25,6 +25,7 @@ import org.connectbot.bean.SelectionArea;
import org.connectbot.service.FontSizeChangedListener;
import org.connectbot.service.TerminalBridge;
import org.connectbot.service.TerminalKeyListener;
+import org.connectbot.util.TerminalViewPager;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
@@ -44,7 +45,6 @@ import android.net.Uri;
import android.os.AsyncTask;
import android.os.Build;
import android.support.v4.view.MotionEventCompat;
-import android.support.v4.view.ViewPager;
import android.text.ClipboardManager;
import android.view.ActionMode;
import android.view.GestureDetector;
@@ -77,7 +77,7 @@ public class TerminalView extends TextView implements FontSizeChangedListener {
private final Context context;
public final TerminalBridge bridge;
- private final ViewPager viewPager;
+ private final TerminalViewPager viewPager;
private GestureDetector gestureDetector;
private ClipboardManager clipboard;
@@ -114,7 +114,7 @@ public class TerminalView extends TextView implements FontSizeChangedListener {
private static final String SCREENREADER_INTENT_ACTION = "android.accessibilityservice.AccessibilityService";
private static final String SCREENREADER_INTENT_CATEGORY = "android.accessibilityservice.category.FEEDBACK_SPOKEN";
- public TerminalView(Context context, TerminalBridge bridge, ViewPager pager) {
+ public TerminalView(Context context, TerminalBridge bridge, TerminalViewPager pager) {
super(context);
this.context = context;
@@ -292,6 +292,7 @@ public class TerminalView extends TextView implements FontSizeChangedListener {
if (onMouseEvent(event, bridge)) {
return true;
}
+ viewPager.setPagingEnabled(true);
}
super.onTouchEvent(event);
@@ -327,24 +328,26 @@ public class TerminalView extends TextView implements FontSizeChangedListener {
}
}
} else if (event.getAction() == MotionEvent.ACTION_DOWN) {
+ viewPager.setPagingEnabled(false);
((vt320) bridge.buffer).mousePressed(
- col, row, mouseEventToJavaModifiers(event));
+ col, row, mouseEventToJavaModifiers(event));
return true;
} else if (event.getAction() == MotionEvent.ACTION_UP) {
+ viewPager.setPagingEnabled(true);
((vt320) bridge.buffer).mouseReleased(col, row);
return true;
} else if (event.getAction() == MotionEvent.ACTION_MOVE) {
int buttonState = event.getButtonState();
int button = (buttonState & MotionEvent.BUTTON_PRIMARY) != 0 ? 0 :
- (buttonState & MotionEvent.BUTTON_SECONDARY) != 0 ? 1 :
- (buttonState & MotionEvent.BUTTON_TERTIARY) != 0 ? 2 : 3;
+ (buttonState & MotionEvent.BUTTON_SECONDARY) != 0 ? 1 :
+ (buttonState & MotionEvent.BUTTON_TERTIARY) != 0 ? 2 : 3;
((vt320) bridge.buffer).mouseMoved(
- button,
- col,
- row,
- (meta & KeyEvent.META_CTRL_ON) != 0,
- (meta & KeyEvent.META_SHIFT_ON) != 0,
- (meta & KeyEvent.META_META_ON) != 0);
+ button,
+ col,
+ row,
+ (meta & KeyEvent.META_CTRL_ON) != 0,
+ (meta & KeyEvent.META_SHIFT_ON) != 0,
+ (meta & KeyEvent.META_META_ON) != 0);
return true;
}
diff --git a/app/src/main/java/org/connectbot/util/TerminalViewPager.java b/app/src/main/java/org/connectbot/util/TerminalViewPager.java
new file mode 100644
index 0000000..b3b63b7
--- /dev/null
+++ b/app/src/main/java/org/connectbot/util/TerminalViewPager.java
@@ -0,0 +1,54 @@
+/*
+ * ConnectBot: simple, powerful, open-source SSH client for Android
+ * Copyright 2015 Kenny Root, Jeffrey Sharkey
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.connectbot.util;
+
+import android.content.Context;
+import android.support.v4.view.ViewPager;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+
+public class TerminalViewPager extends ViewPager {
+ private boolean enabled;
+
+ public TerminalViewPager(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ this.enabled = true;
+ }
+
+ @Override
+ public boolean onTouchEvent(MotionEvent event) {
+ if (this.enabled) {
+ return super.onTouchEvent(event);
+ }
+
+ return false;
+ }
+
+ @Override
+ public boolean onInterceptTouchEvent(MotionEvent event) {
+ if (this.enabled) {
+ return super.onInterceptTouchEvent(event);
+ }
+
+ return false;
+ }
+
+ public void setPagingEnabled(boolean enabled) {
+ this.enabled = enabled;
+ }
+}
diff --git a/app/src/main/res/layout-large/act_console.xml b/app/src/main/res/layout-large/act_console.xml
index 6e7ab14..297d0b1 100644
--- a/app/src/main/res/layout-large/act_console.xml
+++ b/app/src/main/res/layout-large/act_console.xml
@@ -53,7 +53,7 @@
android:text="@string/terminal_no_hosts_connected"
android:textAppearance="?android:attr/textAppearanceMedium"/>
- <android.support.v4.view.ViewPager
+ <org.connectbot.util.TerminalViewPager
android:id="@+id/console_flip"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
diff --git a/app/src/main/res/layout/act_console.xml b/app/src/main/res/layout/act_console.xml
index 34f1d42..fea3a00 100644
--- a/app/src/main/res/layout/act_console.xml
+++ b/app/src/main/res/layout/act_console.xml
@@ -33,7 +33,7 @@
android:text="@string/terminal_no_hosts_connected"
android:textAppearance="?android:attr/textAppearanceMedium"/>
- <android.support.v4.view.ViewPager
+ <org.connectbot.util.TerminalViewPager
android:id="@+id/console_flip"
android:layout_width="fill_parent"
android:layout_height="fill_parent"