Merge "Minimal change to ensure events are propagated to the right DividerView." into oc-dev

This commit is contained in:
TreeHugger Robot
2017-06-13 01:18:45 +00:00
committed by Android (Google) Code Review
2 changed files with 16 additions and 1 deletions

View File

@@ -25,6 +25,8 @@ import android.view.View;
import com.android.systemui.R;
import com.android.systemui.SystemUI;
import com.android.systemui.recents.Recents;
import com.android.systemui.recents.events.EventBus;
import com.android.systemui.recents.events.ui.RecentsDrawnEvent;
import com.android.systemui.recents.misc.SystemServicesProxy;
import static android.content.res.Configuration.ORIENTATION_LANDSCAPE;
@@ -56,6 +58,7 @@ public class Divider extends SystemUI {
SystemServicesProxy ssp = Recents.getSystemServices();
ssp.registerDockedStackListener(mDockDividerVisibilityListener);
mForcedResizableController = new ForcedResizableInfoActivityController(mContext);
EventBus.getDefault().register(this);
}
@Override
@@ -153,6 +156,18 @@ public class Divider extends SystemUI {
mWindowManager.setTouchable((mHomeStackResizable || !mMinimized) && !mAdjustedForIme);
}
/**
* Workaround for b/62528361, at the time RecentsDrawnEvent is sent, it may happen before a
* configuration change to the Divider, and internally, the event will be posted to the
* subscriber, or DividerView, which has been removed and prevented from resizing. Instead,
* register the event handler here and proxy the event to the current DividerView.
*/
public final void onBusEvent(RecentsDrawnEvent drawnEvent) {
if (mView != null) {
mView.onRecentsDrawn();
}
}
@Override
public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
pw.print(" mVisible="); pw.println(mVisible);

View File

@@ -1222,7 +1222,7 @@ public class DividerView extends FrameLayout implements OnTouchListener,
mSnapAlgorithm.getMiddleTarget());
}
public final void onBusEvent(RecentsDrawnEvent drawnEvent) {
public void onRecentsDrawn() {
if (mState.animateAfterRecentsDrawn) {
mState.animateAfterRecentsDrawn = false;
updateDockSide();