Fix 6441282: confine search gesture region on tablet navbar
Depending on the device, this will be one of the id's in the navbar view hierarchy used in the source. It will default to the navbar view if one isn't found. Change-Id: I388412d4f247f7d2d102768708237711d722de3d
This commit is contained in:
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
@ -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) {
|
||||
|
Reference in New Issue
Block a user