From ee2677365d6f843a6597993043d06b889b5ec1ae Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 1 Jun 2012 10:46:39 +0200 Subject: [PATCH] Fix numpad/call insensitive buttons if drawer locked --- res/layout/dialer.xml | 4 +-- src/org/linphone/DialerActivity.java | 3 ++ .../linphone/ui/LockableSlidingDrawer.java | 35 +++++++++++++++++++ 3 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 src/org/linphone/ui/LockableSlidingDrawer.java diff --git a/res/layout/dialer.xml b/res/layout/dialer.xml index 95ac8b49d..5b80a9f8c 100644 --- a/res/layout/dialer.xml +++ b/res/layout/dialer.xml @@ -76,7 +76,7 @@ - - + diff --git a/src/org/linphone/DialerActivity.java b/src/org/linphone/DialerActivity.java index 352fc3c9d..bade61e03 100644 --- a/src/org/linphone/DialerActivity.java +++ b/src/org/linphone/DialerActivity.java @@ -49,7 +49,9 @@ import android.os.Bundle; import android.preference.PreferenceManager; import android.view.KeyEvent; import android.view.LayoutInflater; +import android.view.MotionEvent; import android.view.View; +import android.view.View.OnTouchListener; import android.view.WindowManager; import android.view.View.OnClickListener; import android.widget.Adapter; @@ -265,6 +267,7 @@ public class DialerActivity extends Activity implements LinphoneGuiListener { boolean disable_sliding_drawer = getResources().getBoolean(R.bool.disable_dialer_sliding_drawer); if (disable_sliding_drawer) { + drawer.close(); drawer.lock(); } else { drawer.setOnDrawerScrollListener(new OnDrawerScrollListener() { diff --git a/src/org/linphone/ui/LockableSlidingDrawer.java b/src/org/linphone/ui/LockableSlidingDrawer.java new file mode 100644 index 000000000..07460fc99 --- /dev/null +++ b/src/org/linphone/ui/LockableSlidingDrawer.java @@ -0,0 +1,35 @@ +package org.linphone.ui; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.MotionEvent; +import android.widget.SlidingDrawer; + +public class LockableSlidingDrawer extends SlidingDrawer { + private boolean locked = false; + + public LockableSlidingDrawer(Context context) { + super(context, null, 0); + } + + public LockableSlidingDrawer(Context context, AttributeSet attrs) { + super(context, attrs, 0); + } + + public LockableSlidingDrawer(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + if (this.locked) { + return false; + } + + return super.onTouchEvent(event); + } + + public void lock() { + this.locked = true; + } +} \ No newline at end of file