Merge "Fix 6441282: confine search gesture region on tablet navbar" into jb-dev

This commit is contained in:
Jim Miller
2012-05-17 21:00:32 -07:00
committed by Android (Google) Code Review
2 changed files with 25 additions and 7 deletions

View File

@@ -33,11 +33,7 @@ public class DelegateViewHelper {
private float mTriggerThreshhold;
public DelegateViewHelper(View sourceView) {
mSourceView = sourceView;
if (mSourceView != null) {
mTriggerThreshhold = mSourceView.getContext().getResources()
.getDimension(R.dimen.navbar_search_up_threshhold);
}
setSourceView(sourceView);
}
public void setDelegateView(View view) {
@@ -92,4 +88,12 @@ public class DelegateViewHelper {
}
return false;
}
public void setSourceView(View view) {
mSourceView = view;
if (mSourceView != null) {
mTriggerThreshhold = mSourceView.getContext().getResources()
.getDimension(R.dimen.navbar_search_up_threshhold);
}
}
}

View File

@@ -16,6 +16,7 @@
package com.android.systemui.statusbar.tablet;
import com.android.systemui.R;
import com.android.systemui.statusbar.BaseStatusBar;
import com.android.systemui.statusbar.DelegateViewHelper;
@@ -37,8 +38,7 @@ public class TabletStatusBarView extends FrameLayout {
private DelegateViewHelper mDelegateHelper;
public TabletStatusBarView(Context context) {
super(context);
mDelegateHelper = new DelegateViewHelper(this);
this(context, null);
}
public TabletStatusBarView(Context context, AttributeSet attrs) {
@@ -54,6 +54,20 @@ public class TabletStatusBarView extends FrameLayout {
mDelegateHelper.setBar(phoneStatusBar);
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
// Find the view we wish to grab events from in order to detect search gesture.
// Depending on the device, this will be one of the id's listed below.
// If we don't find one, we'll use the view provided in the constructor above (this view).
View view = null;
if ((view = findViewById(R.id.navigationArea)) != null) {
mDelegateHelper.setSourceView(view);
} else if ((view = findViewById(R.id.nav_buttons)) != null) {
mDelegateHelper.setSourceView(view);
}
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if (ev.getAction() == MotionEvent.ACTION_DOWN) {