Loading core/java/com/android/internal/policy/PhoneWindow.java +4 −3 Original line number Diff line number Diff line Loading @@ -3376,9 +3376,8 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { mFloatingActionMode.finish(); } cleanupFloatingActionModeViews(); mFloatingToolbar = new FloatingToolbar(mContext, PhoneWindow.this); final FloatingActionMode mode = new FloatingActionMode( mContext, callback, originatingView, mFloatingToolbar); final FloatingActionMode mode = new FloatingActionMode(mContext, callback, originatingView); mFloatingActionModeOriginatingView = originatingView; mFloatingToolbarPreDrawListener = new OnPreDrawListener() { Loading @@ -3393,6 +3392,8 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { private void setHandledFloatingActionMode(ActionMode mode) { mFloatingActionMode = mode; mFloatingToolbar = new FloatingToolbar(mContext, PhoneWindow.this); ((FloatingActionMode) mFloatingActionMode).setFloatingToolbar(mFloatingToolbar); mFloatingActionMode.invalidate(); mFloatingToolbar.show(); mFloatingActionModeOriginatingView.getViewTreeObserver() Loading core/java/com/android/internal/view/FloatingActionMode.java +15 −9 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import com.android.internal.util.Preconditions; import com.android.internal.view.menu.MenuBuilder; import com.android.internal.widget.FloatingToolbar; Loading @@ -32,20 +33,28 @@ public class FloatingActionMode extends ActionMode { private final Context mContext; private final ActionMode.Callback2 mCallback; private final MenuBuilder mMenu; private final FloatingToolbar mFloatingToolbar; private final Rect mContentRect; private final Rect mContentRectOnWindow; private final Rect mPreviousContentRectOnWindow; private final int[] mViewPosition; private final View mOriginatingView; private FloatingToolbar mFloatingToolbar; public FloatingActionMode( Context context, ActionMode.Callback2 callback, View originatingView, FloatingToolbar floatingToolbar) { Context context, ActionMode.Callback2 callback, View originatingView) { mContext = context; mCallback = callback; mMenu = new MenuBuilder(context).setDefaultShowAsAction( MenuItem.SHOW_AS_ACTION_IF_ROOM); setType(ActionMode.TYPE_FLOATING); mContentRect = new Rect(); mContentRectOnWindow = new Rect(); mPreviousContentRectOnWindow = new Rect(); mViewPosition = new int[2]; mOriginatingView = originatingView; } public void setFloatingToolbar(FloatingToolbar floatingToolbar) { mFloatingToolbar = floatingToolbar .setMenu(mMenu) .setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { Loading @@ -54,12 +63,6 @@ public class FloatingActionMode extends ActionMode { return mCallback.onActionItemClicked(FloatingActionMode.this, item); } }); setType(ActionMode.TYPE_FLOATING); mContentRect = new Rect(); mContentRectOnWindow = new Rect(); mPreviousContentRectOnWindow = new Rect(); mViewPosition = new int[2]; mOriginatingView = originatingView; } @Override Loading @@ -79,6 +82,7 @@ public class FloatingActionMode extends ActionMode { @Override public void invalidate() { Preconditions.checkNotNull(mFloatingToolbar); mCallback.onPrepareActionMode(this, mMenu); mFloatingToolbar.updateLayout(); invalidateContentRect(); Loading @@ -86,11 +90,13 @@ public class FloatingActionMode extends ActionMode { @Override public void invalidateContentRect() { Preconditions.checkNotNull(mFloatingToolbar); mCallback.onGetContentRect(this, mOriginatingView, mContentRect); repositionToolbar(); } public void updateViewLocationInWindow() { Preconditions.checkNotNull(mFloatingToolbar); mOriginatingView.getLocationInWindow(mViewPosition); repositionToolbar(); } Loading Loading
core/java/com/android/internal/policy/PhoneWindow.java +4 −3 Original line number Diff line number Diff line Loading @@ -3376,9 +3376,8 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { mFloatingActionMode.finish(); } cleanupFloatingActionModeViews(); mFloatingToolbar = new FloatingToolbar(mContext, PhoneWindow.this); final FloatingActionMode mode = new FloatingActionMode( mContext, callback, originatingView, mFloatingToolbar); final FloatingActionMode mode = new FloatingActionMode(mContext, callback, originatingView); mFloatingActionModeOriginatingView = originatingView; mFloatingToolbarPreDrawListener = new OnPreDrawListener() { Loading @@ -3393,6 +3392,8 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { private void setHandledFloatingActionMode(ActionMode mode) { mFloatingActionMode = mode; mFloatingToolbar = new FloatingToolbar(mContext, PhoneWindow.this); ((FloatingActionMode) mFloatingActionMode).setFloatingToolbar(mFloatingToolbar); mFloatingActionMode.invalidate(); mFloatingToolbar.show(); mFloatingActionModeOriginatingView.getViewTreeObserver() Loading
core/java/com/android/internal/view/FloatingActionMode.java +15 −9 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import com.android.internal.util.Preconditions; import com.android.internal.view.menu.MenuBuilder; import com.android.internal.widget.FloatingToolbar; Loading @@ -32,20 +33,28 @@ public class FloatingActionMode extends ActionMode { private final Context mContext; private final ActionMode.Callback2 mCallback; private final MenuBuilder mMenu; private final FloatingToolbar mFloatingToolbar; private final Rect mContentRect; private final Rect mContentRectOnWindow; private final Rect mPreviousContentRectOnWindow; private final int[] mViewPosition; private final View mOriginatingView; private FloatingToolbar mFloatingToolbar; public FloatingActionMode( Context context, ActionMode.Callback2 callback, View originatingView, FloatingToolbar floatingToolbar) { Context context, ActionMode.Callback2 callback, View originatingView) { mContext = context; mCallback = callback; mMenu = new MenuBuilder(context).setDefaultShowAsAction( MenuItem.SHOW_AS_ACTION_IF_ROOM); setType(ActionMode.TYPE_FLOATING); mContentRect = new Rect(); mContentRectOnWindow = new Rect(); mPreviousContentRectOnWindow = new Rect(); mViewPosition = new int[2]; mOriginatingView = originatingView; } public void setFloatingToolbar(FloatingToolbar floatingToolbar) { mFloatingToolbar = floatingToolbar .setMenu(mMenu) .setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { Loading @@ -54,12 +63,6 @@ public class FloatingActionMode extends ActionMode { return mCallback.onActionItemClicked(FloatingActionMode.this, item); } }); setType(ActionMode.TYPE_FLOATING); mContentRect = new Rect(); mContentRectOnWindow = new Rect(); mPreviousContentRectOnWindow = new Rect(); mViewPosition = new int[2]; mOriginatingView = originatingView; } @Override Loading @@ -79,6 +82,7 @@ public class FloatingActionMode extends ActionMode { @Override public void invalidate() { Preconditions.checkNotNull(mFloatingToolbar); mCallback.onPrepareActionMode(this, mMenu); mFloatingToolbar.updateLayout(); invalidateContentRect(); Loading @@ -86,11 +90,13 @@ public class FloatingActionMode extends ActionMode { @Override public void invalidateContentRect() { Preconditions.checkNotNull(mFloatingToolbar); mCallback.onGetContentRect(this, mOriginatingView, mContentRect); repositionToolbar(); } public void updateViewLocationInWindow() { Preconditions.checkNotNull(mFloatingToolbar); mOriginatingView.getLocationInWindow(mViewPosition); repositionToolbar(); } Loading